aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authordan miller2007-09-18 02:38:10 +0000
committerdan miller2007-09-18 02:38:10 +0000
commit04e7fcd0e93300ec25758727ab5cfbb80942e97f (patch)
tree3efa4058696f97aa6d9a05b7f77e2a6dc3db51f8 /OpenSim/Region
parentfixed typo in README (diff)
downloadopensim-SC-04e7fcd0e93300ec25758727ab5cfbb80942e97f.zip
opensim-SC-04e7fcd0e93300ec25758727ab5cfbb80942e97f.tar.gz
opensim-SC-04e7fcd0e93300ec25758727ab5cfbb80942e97f.tar.bz2
opensim-SC-04e7fcd0e93300ec25758727ab5cfbb80942e97f.tar.xz
RemoveAvatar called from scene.cs; implemented in ODE. Still issues with multi-region; see bug 410
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs4
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs5
2 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index f69aabf..09992fd 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -825,6 +825,10 @@ namespace OpenSim.Region.Environment.Scenes
825 { 825 {
826 presence.CoarseLocationChange(avatar); 826 presence.CoarseLocationChange(avatar);
827 presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId); 827 presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId);
828 if (presence.PhysActor != null)
829 {
830 phyScene.RemoveAvatar(presence.PhysActor);
831 }
828 }); 832 });
829 833
830 lock (Avatars) 834 lock (Avatars)
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index a6834d4..8b49f70 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -152,6 +152,9 @@ namespace OpenSim.Region.Physics.OdePlugin
152 152
153 public override void RemoveAvatar(PhysicsActor actor) 153 public override void RemoveAvatar(PhysicsActor actor)
154 { 154 {
155 OdeCharacter och = (OdeCharacter)actor;
156 d.BodyDestroy(och.BoundingCapsule);
157 _characters.Remove(och);
155 } 158 }
156 159
157 public override void RemovePrim(PhysicsActor prim) 160 public override void RemovePrim(PhysicsActor prim)
@@ -278,7 +281,7 @@ namespace OpenSim.Region.Physics.OdePlugin
278 private PhysicsVector _acceleration; 281 private PhysicsVector _acceleration;
279 private bool flying = false; 282 private bool flying = false;
280 //private float gravityAccel; 283 //private float gravityAccel;
281 private IntPtr BoundingCapsule; 284 public IntPtr BoundingCapsule;
282 private OdeScene _parent_scene; 285 private OdeScene _parent_scene;
283 public IntPtr capsule_geom; 286 public IntPtr capsule_geom;
284 public d.Mass capsule_mass; 287 public d.Mass capsule_mass;