diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 16 |
2 files changed, 14 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index f7fd767..fa90ef4 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1495,7 +1495,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1495 | // Objects queue their updates onto all scene presences | 1495 | // Objects queue their updates onto all scene presences |
1496 | if (Frame % m_update_objects == 0) | 1496 | if (Frame % m_update_objects == 0) |
1497 | m_sceneGraph.UpdateObjectGroups(); | 1497 | m_sceneGraph.UpdateObjectGroups(); |
1498 | 1498 | ||
1499 | // Run through all ScenePresences looking for updates | 1499 | // Run through all ScenePresences looking for updates |
1500 | // Presence updates and queued object updates for each presence are sent to clients | 1500 | // Presence updates and queued object updates for each presence are sent to clients |
1501 | if (Frame % m_update_presences == 0) | 1501 | if (Frame % m_update_presences == 0) |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index d4af9fc..c8971c4 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3084,9 +3084,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
3084 | if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn) | 3084 | if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn) |
3085 | SendAvatarDataToAllAgents(); | 3085 | SendAvatarDataToAllAgents(); |
3086 | 3086 | ||
3087 | if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || | 3087 | // Allow any updates for sitting avatars to that llSetPrimitiveLinkParams() can work for very |
3088 | !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || | 3088 | // small increments (e.g. sit position adjusters). An alternative may be to eliminate the tolerance |
3089 | !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE)) | 3089 | // checks on all updates but the ramifications of this would need careful consideration. |
3090 | bool updateClients | ||
3091 | = IsSatOnObject && (Rotation != m_lastRotation || Velocity != m_lastVelocity || m_pos != m_lastPosition); | ||
3092 | |||
3093 | if (!updateClients) | ||
3094 | updateClients | ||
3095 | = !Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) | ||
3096 | || !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) | ||
3097 | || !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE); | ||
3098 | |||
3099 | if (updateClients) | ||
3090 | { | 3100 | { |
3091 | SendTerseUpdateToAllClients(); | 3101 | SendTerseUpdateToAllClients(); |
3092 | 3102 | ||