diff options
author | dan miller | 2007-09-18 02:38:10 +0000 |
---|---|---|
committer | dan miller | 2007-09-18 02:38:10 +0000 |
commit | 04e7fcd0e93300ec25758727ab5cfbb80942e97f (patch) | |
tree | 3efa4058696f97aa6d9a05b7f77e2a6dc3db51f8 /OpenSim | |
parent | fixed typo in README (diff) | |
download | opensim-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 '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 5 |
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; |