mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 18:55:58 +08:00
RemoveAvatar called from scene.cs; implemented in ODE. Still issues with multi-region; see bug 410
This commit is contained in:
@@ -825,6 +825,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||||||
{
|
{
|
||||||
presence.CoarseLocationChange(avatar);
|
presence.CoarseLocationChange(avatar);
|
||||||
presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId);
|
presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId);
|
||||||
|
if (presence.PhysActor != null)
|
||||||
|
{
|
||||||
|
phyScene.RemoveAvatar(presence.PhysActor);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
lock (Avatars)
|
lock (Avatars)
|
||||||
|
|||||||
@@ -152,6 +152,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||||||
|
|
||||||
public override void RemoveAvatar(PhysicsActor actor)
|
public override void RemoveAvatar(PhysicsActor actor)
|
||||||
{
|
{
|
||||||
|
OdeCharacter och = (OdeCharacter)actor;
|
||||||
|
d.BodyDestroy(och.BoundingCapsule);
|
||||||
|
_characters.Remove(och);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void RemovePrim(PhysicsActor prim)
|
public override void RemovePrim(PhysicsActor prim)
|
||||||
@@ -278,7 +281,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||||||
private PhysicsVector _acceleration;
|
private PhysicsVector _acceleration;
|
||||||
private bool flying = false;
|
private bool flying = false;
|
||||||
//private float gravityAccel;
|
//private float gravityAccel;
|
||||||
private IntPtr BoundingCapsule;
|
public IntPtr BoundingCapsule;
|
||||||
private OdeScene _parent_scene;
|
private OdeScene _parent_scene;
|
||||||
public IntPtr capsule_geom;
|
public IntPtr capsule_geom;
|
||||||
public d.Mass capsule_mass;
|
public d.Mass capsule_mass;
|
||||||
|
|||||||
Reference in New Issue
Block a user