diff options
Added RemoveAvatar() method to physics plugins, should be called on log out (needs doing) and when downgrading a client to a child-avatar (should be working)
Diffstat (limited to 'OpenSim.RegionServer')
-rw-r--r-- | OpenSim.RegionServer/world/Avatar.cs | 4 | ||||
-rw-r--r-- | OpenSim.RegionServer/world/World.cs | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs index f8a1a5a..c684c45 100644 --- a/OpenSim.RegionServer/world/Avatar.cs +++ b/OpenSim.RegionServer/world/Avatar.cs | |||
@@ -72,6 +72,10 @@ namespace OpenSim.world | |||
72 | { | 72 | { |
73 | this._physActor = value; | 73 | this._physActor = value; |
74 | } | 74 | } |
75 | get | ||
76 | { | ||
77 | return _physActor; | ||
78 | } | ||
75 | } | 79 | } |
76 | 80 | ||
77 | public override void addForces() | 81 | public override void addForces() |
diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index e89f8f4..4dfe0e9 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs | |||
@@ -600,6 +600,10 @@ namespace OpenSim.world | |||
600 | { | 600 | { |
601 | Avatars.Remove(agentClient.AgentID); | 601 | Avatars.Remove(agentClient.AgentID); |
602 | } | 602 | } |
603 | if (agentClient.ClientAvatar.PhysActor != null) | ||
604 | { | ||
605 | this.phyScene.RemoveAvatar(agentClient.ClientAvatar.PhysActor); | ||
606 | } | ||
603 | } | 607 | } |
604 | catch (Exception e) | 608 | catch (Exception e) |
605 | { | 609 | { |