diff options
-rw-r--r-- | OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | 31 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 15 |
2 files changed, 23 insertions, 23 deletions
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index a4bcbad..f4b54aa 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
58 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 58 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
59 | 59 | ||
60 | private static readonly string DEFAULT_WORLD_MAP_EXPORT_PATH = "exportmap.jpg"; | 60 | private static readonly string DEFAULT_WORLD_MAP_EXPORT_PATH = "exportmap.jpg"; |
61 | 61 | private static readonly UUID STOP_UUID = UUID.Random(); | |
62 | private static readonly string m_mapLayerPath = "0001/"; | 62 | private static readonly string m_mapLayerPath = "0001/"; |
63 | 63 | ||
64 | private OpenSim.Framework.BlockingQueue<MapRequestState> requests = new OpenSim.Framework.BlockingQueue<MapRequestState>(); | 64 | private OpenSim.Framework.BlockingQueue<MapRequestState> requests = new OpenSim.Framework.BlockingQueue<MapRequestState>(); |
@@ -349,7 +349,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
349 | private void StopThread() | 349 | private void StopThread() |
350 | { | 350 | { |
351 | MapRequestState st = new MapRequestState(); | 351 | MapRequestState st = new MapRequestState(); |
352 | st.agentID=UUID.Zero; | 352 | st.agentID=STOP_UUID; |
353 | st.EstateID=0; | 353 | st.EstateID=0; |
354 | st.flags=0; | 354 | st.flags=0; |
355 | st.godlike=false; | 355 | st.godlike=false; |
@@ -437,25 +437,26 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
437 | { | 437 | { |
438 | while (true) | 438 | while (true) |
439 | { | 439 | { |
440 | MapRequestState st = requests.Dequeue(); | 440 | MapRequestState st = requests.Dequeue(1000); |
441 | 441 | ||
442 | // end gracefully | 442 | // end gracefully |
443 | if (st.agentID == UUID.Zero) | 443 | if (st.agentID == STOP_UUID) |
444 | { | ||
445 | break; | 444 | break; |
446 | } | ||
447 | 445 | ||
448 | bool dorequest = true; | 446 | if (st.agentID != UUID.Zero) |
449 | lock (m_rootAgents) | ||
450 | { | 447 | { |
451 | if (!m_rootAgents.Contains(st.agentID)) | 448 | bool dorequest = true; |
452 | dorequest = false; | 449 | lock (m_rootAgents) |
453 | } | 450 | { |
451 | if (!m_rootAgents.Contains(st.agentID)) | ||
452 | dorequest = false; | ||
453 | } | ||
454 | 454 | ||
455 | if (dorequest) | 455 | if (dorequest) |
456 | { | 456 | { |
457 | OSDMap response = RequestMapItemsAsync("", st.agentID, st.flags, st.EstateID, st.godlike, st.itemtype, st.regionhandle); | 457 | OSDMap response = RequestMapItemsAsync("", st.agentID, st.flags, st.EstateID, st.godlike, st.itemtype, st.regionhandle); |
458 | RequestMapItemsCompleted(response); | 458 | RequestMapItemsCompleted(response); |
459 | } | ||
459 | } | 460 | } |
460 | 461 | ||
461 | Watchdog.UpdateThread(); | 462 | Watchdog.UpdateThread(); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index cfd3fcc..ccfffe7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2417,7 +2417,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2417 | pos.Z -= m_appearance.HipOffset; | 2417 | pos.Z -= m_appearance.HipOffset; |
2418 | 2418 | ||
2419 | remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_regionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, | 2419 | remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_regionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, |
2420 | pos, m_velocity, Vector3.Zero, m_rotation, Vector4.Zero, m_uuid, null, GetUpdatePriority(remoteClient))); | 2420 | pos, m_velocity, Vector3.Zero, m_bodyRot, Vector4.UnitW, m_uuid, null, GetUpdatePriority(remoteClient))); |
2421 | 2421 | ||
2422 | m_scene.StatsReporter.AddAgentTime(Environment.TickCount - m_perfMonMS); | 2422 | m_scene.StatsReporter.AddAgentTime(Environment.TickCount - m_perfMonMS); |
2423 | m_scene.StatsReporter.AddAgentUpdates(1); | 2423 | m_scene.StatsReporter.AddAgentUpdates(1); |
@@ -2522,7 +2522,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2522 | 2522 | ||
2523 | remoteAvatar.m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, | 2523 | remoteAvatar.m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, |
2524 | LocalId, pos, m_appearance.Texture.GetBytes(), | 2524 | LocalId, pos, m_appearance.Texture.GetBytes(), |
2525 | m_parentID, m_rotation)); | 2525 | m_parentID, m_bodyRot)); |
2526 | m_scene.StatsReporter.AddAgentUpdates(1); | 2526 | m_scene.StatsReporter.AddAgentUpdates(1); |
2527 | } | 2527 | } |
2528 | 2528 | ||
@@ -2585,14 +2585,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
2585 | // the inventory arrives | 2585 | // the inventory arrives |
2586 | // m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); | 2586 | // m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); |
2587 | 2587 | ||
2588 | // Note: because Quaternion is a struct, it can't be null | ||
2589 | Quaternion rot = m_bodyRot; | ||
2590 | |||
2591 | Vector3 pos = m_pos; | 2588 | Vector3 pos = m_pos; |
2592 | pos.Z -= m_appearance.HipOffset; | 2589 | pos.Z -= m_appearance.HipOffset; |
2593 | 2590 | ||
2594 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, | 2591 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, |
2595 | m_pos, m_appearance.Texture.GetBytes(), m_parentID, rot)); | 2592 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); |
2596 | 2593 | ||
2597 | if (!m_isChildAgent) | 2594 | if (!m_isChildAgent) |
2598 | { | 2595 | { |
@@ -2697,9 +2694,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
2697 | m_startAnimationSet = true; | 2694 | m_startAnimationSet = true; |
2698 | } | 2695 | } |
2699 | 2696 | ||
2700 | Quaternion rot = m_bodyRot; | 2697 | Vector3 pos = m_pos; |
2698 | pos.Z -= m_appearance.HipOffset; | ||
2699 | |||
2701 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, | 2700 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, |
2702 | m_pos, m_appearance.Texture.GetBytes(), m_parentID, rot)); | 2701 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); |
2703 | 2702 | ||
2704 | } | 2703 | } |
2705 | 2704 | ||