aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorOren Hurvitz2012-12-25 10:50:03 +0200
committerJustin Clark-Casey (justincc)2013-01-02 23:00:23 +0000
commit24e486e9dfd5838b1ce1085586f84998aec3aae3 (patch)
treefaa853902408aaf59b716667d9f4152bfd7ef837 /OpenSim/Region
parentAdded locking in NullRegionData. (diff)
downloadopensim-SC-24e486e9dfd5838b1ce1085586f84998aec3aae3.zip
opensim-SC-24e486e9dfd5838b1ce1085586f84998aec3aae3.tar.gz
opensim-SC-24e486e9dfd5838b1ce1085586f84998aec3aae3.tar.bz2
opensim-SC-24e486e9dfd5838b1ce1085586f84998aec3aae3.tar.xz
Fixed: the AvatarEnteringNewParcel event wasn't triggered in some cases
If an avatar moved between regions: A -> B -> A, then when returning to region A the AvatarEnteringNewParcel wasn't triggered. This happened because the ScenePresence in region A still remembered its previous 'currentParcelUUID', so it appeared as if the avatar didn't change parcels. Now, however, when a ScenePresence becomes a child presence we clear its 'currentParcelUUID'.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs6
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 6e0c007..dbf5138 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -133,6 +133,7 @@ namespace OpenSim.Region.CoreModules.World.Land
133 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy; 133 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy;
134 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy; 134 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy;
135 m_scene.EventManager.OnNewClient += EventManagerOnNewClient; 135 m_scene.EventManager.OnNewClient += EventManagerOnNewClient;
136 m_scene.EventManager.OnMakeChildAgent += EventMakeChildAgent;
136 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement; 137 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement;
137 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage; 138 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage;
138 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; 139 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage;
@@ -218,6 +219,11 @@ namespace OpenSim.Region.CoreModules.World.Land
218 } 219 }
219 } 220 }
220 221
222 public void EventMakeChildAgent(ScenePresence avatar)
223 {
224 avatar.currentParcelUUID = UUID.Zero;
225 }
226
221 void ClientOnPreAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData) 227 void ClientOnPreAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData)
222 { 228 {
223 //If we are forcing a position for them to go 229 //If we are forcing a position for them to go