diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 73d0984..c0fd437 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1064,14 +1064,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1064 | } | 1064 | } |
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | /// <summary> | ||
1068 | /// Clear all pending updates of parts to clients | ||
1069 | /// </summary> | ||
1070 | private void ClearUpdateSchedule() | ||
1071 | { | ||
1072 | m_updateFlag = 0; | ||
1073 | } | ||
1074 | |||
1075 | private void SendObjectPropertiesToClient(UUID AgentID) | 1067 | private void SendObjectPropertiesToClient(UUID AgentID) |
1076 | { | 1068 | { |
1077 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 1069 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
@@ -2387,8 +2379,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2387 | { | 2379 | { |
2388 | const float ROTATION_TOLERANCE = 0.01f; | 2380 | const float ROTATION_TOLERANCE = 0.01f; |
2389 | const float VELOCITY_TOLERANCE = 0.001f; | 2381 | const float VELOCITY_TOLERANCE = 0.001f; |
2390 | const float POSITION_TOLERANCE = 0.05f; | 2382 | const float POSITION_TOLERANCE = 0.05f; // I don't like this, but I suppose it's necessary |
2391 | const int TIME_MS_TOLERANCE = 3000; | 2383 | const int TIME_MS_TOLERANCE = 200; //llSetPos has a 200ms delay. This should NOT be 3 seconds. |
2392 | 2384 | ||
2393 | if (m_updateFlag == 1) | 2385 | if (m_updateFlag == 1) |
2394 | { | 2386 | { |
@@ -2401,7 +2393,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2401 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) | 2393 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) |
2402 | { | 2394 | { |
2403 | AddTerseUpdateToAllAvatars(); | 2395 | AddTerseUpdateToAllAvatars(); |
2404 | ClearUpdateSchedule(); | 2396 | |
2405 | 2397 | ||
2406 | // This causes the Scene to 'poll' physical objects every couple of frames | 2398 | // This causes the Scene to 'poll' physical objects every couple of frames |
2407 | // bad, so it's been replaced by an event driven method. | 2399 | // bad, so it's been replaced by an event driven method. |
@@ -2419,13 +2411,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2419 | m_lastAngularVelocity = AngularVelocity; | 2411 | m_lastAngularVelocity = AngularVelocity; |
2420 | m_lastTerseSent = Environment.TickCount; | 2412 | m_lastTerseSent = Environment.TickCount; |
2421 | } | 2413 | } |
2414 | //Moved this outside of the if clause so updates don't get blocked.. *sigh* | ||
2415 | m_updateFlag = 0; //Why were we calling a function to do this? Inefficient! *screams* | ||
2422 | } | 2416 | } |
2423 | else | 2417 | else |
2424 | { | 2418 | { |
2425 | if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes | 2419 | if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes |
2426 | { | 2420 | { |
2427 | AddFullUpdateToAllAvatars(); | 2421 | AddFullUpdateToAllAvatars(); |
2428 | ClearUpdateSchedule(); | 2422 | m_updateFlag = 0; //Same here |
2429 | } | 2423 | } |
2430 | } | 2424 | } |
2431 | } | 2425 | } |