diff options
author | Oren Hurvitz | 2012-12-25 10:50:03 +0200 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-04 21:47:32 +0000 |
commit | eeeb787f36f77a5c391cd88bca5932d36193e0fe (patch) | |
tree | d547d4d0eb06dcf6f954eafb9ebee13072ea03ad | |
parent | Change nant distbin target to also remove ThirdParty/ source code when making... (diff) | |
download | opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.zip opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.tar.gz opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.tar.bz2 opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.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'.
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 6 |
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 e85b7a2..bad7205 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 |