diff options
added experimental method of trying to relieve missing prim problem (by adding a limit of the number of prim update packets sent in each update loop).
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 65a995a..dec017e 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -391,14 +391,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
391 | { | 391 | { |
392 | if (m_updateFlag == 1) //some change has been made so update the clients | 392 | if (m_updateFlag == 1) //some change has been made so update the clients |
393 | { | 393 | { |
394 | SendTerseUpdateToAllClients(); | 394 | AddTerseUpdateToAllAvatars(); |
395 | ClearUpdateSchedule(); | 395 | ClearUpdateSchedule(); |
396 | } | 396 | } |
397 | else | 397 | else |
398 | { | 398 | { |
399 | if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes | 399 | if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes |
400 | { | 400 | { |
401 | SendFullUpdateToAllClients(); | 401 | AddFullUpdateToAllAvatars(); |
402 | ClearUpdateSchedule(); | 402 | ClearUpdateSchedule(); |
403 | } | 403 | } |
404 | } | 404 | } |
@@ -603,6 +603,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
603 | #endregion | 603 | #endregion |
604 | 604 | ||
605 | #region Client Update Methods | 605 | #region Client Update Methods |
606 | public void AddFullUpdateToAllAvatars() | ||
607 | { | ||
608 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | ||
609 | for (int i = 0; i < avatars.Count; i++) | ||
610 | { | ||
611 | avatars[i].AddFullPart(this); | ||
612 | } | ||
613 | } | ||
614 | |||
615 | public void AddFullUpdateToAvatar(ScenePresence presence) | ||
616 | { | ||
617 | presence.AddFullPart(this); | ||
618 | } | ||
619 | |||
606 | /// <summary> | 620 | /// <summary> |
607 | /// | 621 | /// |
608 | /// </summary> | 622 | /// </summary> |
@@ -649,6 +663,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
649 | m_text, ParentID, this.m_particleSystem, lRot); | 663 | m_text, ParentID, this.m_particleSystem, lRot); |
650 | } | 664 | } |
651 | 665 | ||
666 | /// Terse updates | ||
667 | |||
668 | public void AddTerseUpdateToAllAvatars() | ||
669 | { | ||
670 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | ||
671 | for (int i = 0; i < avatars.Count; i++) | ||
672 | { | ||
673 | avatars[i].AddTersePart(this); | ||
674 | } | ||
675 | } | ||
676 | |||
677 | public void AddTerseUpdateToAvatar(ScenePresence presence) | ||
678 | { | ||
679 | presence.AddTersePart(this); | ||
680 | } | ||
681 | |||
652 | /// <summary> | 682 | /// <summary> |
653 | /// | 683 | /// |
654 | /// </summary> | 684 | /// </summary> |