aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-03-13 00:22:38 +0000
committerJustin Clarke Casey2008-03-13 00:22:38 +0000
commita4304fb9e6ec94b9a2aa70db85a68b9b102d4c33 (patch)
tree0b98401a00ff68bebdf2f7de385386e6a5060fff /OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
parent* Updated LibSL _packets_.cs to latest revision. AKA New Packets. (diff)
downloadopensim-SC-a4304fb9e6ec94b9a2aa70db85a68b9b102d4c33.zip
opensim-SC-a4304fb9e6ec94b9a2aa70db85a68b9b102d4c33.tar.gz
opensim-SC-a4304fb9e6ec94b9a2aa70db85a68b9b102d4c33.tar.bz2
opensim-SC-a4304fb9e6ec94b9a2aa70db85a68b9b102d4c33.tar.xz
* Fix Mantis 761 (linking and delinking prims rapidly caused prims to 'disappear')
* Root cause was that if two updates occurred in the same second of time, the second one was never sent * Linking/delinking appears to be okay now
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs22
1 files changed, 17 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index f20a638..b708d04 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -132,7 +132,12 @@ namespace OpenSim.Region.Environment.Scenes
132 [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn 132 [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn
133 133
134 /// <summary> 134 /// <summary>
135 /// Only used internally to schedule client updates 135 /// Only used internally to schedule client updates.
136 /// 0 - no update is scheduled
137 /// 1 - terse update scheduled
138 /// 2 - full update scheduled
139 ///
140 /// TODO - This should be an enumeration
136 /// </summary> 141 /// </summary>
137 private byte m_updateFlag; 142 private byte m_updateFlag;
138 143
@@ -1090,7 +1095,7 @@ namespace OpenSim.Region.Environment.Scenes
1090 #region Update Scheduling 1095 #region Update Scheduling
1091 1096
1092 /// <summary> 1097 /// <summary>
1093 /// 1098 /// Clear all pending updates
1094 /// </summary> 1099 /// </summary>
1095 private void ClearUpdateSchedule() 1100 private void ClearUpdateSchedule()
1096 { 1101 {
@@ -1098,7 +1103,7 @@ namespace OpenSim.Region.Environment.Scenes
1098 } 1103 }
1099 1104
1100 /// <summary> 1105 /// <summary>
1101 /// 1106 /// Schedules this prim for a full update
1102 /// </summary> 1107 /// </summary>
1103 public void ScheduleFullUpdate() 1108 public void ScheduleFullUpdate()
1104 { 1109 {
@@ -1107,6 +1112,7 @@ namespace OpenSim.Region.Environment.Scenes
1107 m_parentGroup.HasGroupChanged = true; 1112 m_parentGroup.HasGroupChanged = true;
1108 m_parentGroup.QueueForUpdateCheck(); 1113 m_parentGroup.QueueForUpdateCheck();
1109 } 1114 }
1115
1110 TimeStampFull = (uint) Util.UnixTimeSinceEpoch(); 1116 TimeStampFull = (uint) Util.UnixTimeSinceEpoch();
1111 m_updateFlag = 2; 1117 m_updateFlag = 2;
1112 } 1118 }
@@ -1156,7 +1162,7 @@ namespace OpenSim.Region.Environment.Scenes
1156 } 1162 }
1157 1163
1158 /// <summary> 1164 /// <summary>
1159 /// 1165 /// Tell all the prims which have had updates scheduled
1160 /// </summary> 1166 /// </summary>
1161 public void SendScheduledUpdates() 1167 public void SendScheduledUpdates()
1162 { 1168 {
@@ -1688,7 +1694,10 @@ namespace OpenSim.Region.Environment.Scenes
1688 } 1694 }
1689 1695
1690 #region Client Update Methods 1696 #region Client Update Methods
1691 1697
1698 /// <summary>
1699 /// Tell all scene presences that they should send updates for this part to their clients
1700 /// </summary>
1692 public void AddFullUpdateToAllAvatars() 1701 public void AddFullUpdateToAllAvatars()
1693 { 1702 {
1694 List<ScenePresence> avatars = m_parentGroup.GetScenePresences(); 1703 List<ScenePresence> avatars = m_parentGroup.GetScenePresences();
@@ -1697,6 +1706,7 @@ namespace OpenSim.Region.Environment.Scenes
1697 avatars[i].QueuePartForUpdate(this); 1706 avatars[i].QueuePartForUpdate(this);
1698 } 1707 }
1699 } 1708 }
1709
1700 public void SendFullUpdateToAllClientsExcept(LLUUID agentID) 1710 public void SendFullUpdateToAllClientsExcept(LLUUID agentID)
1701 { 1711 {
1702 List<ScenePresence> avatars = m_parentGroup.GetScenePresences(); 1712 List<ScenePresence> avatars = m_parentGroup.GetScenePresences();
@@ -1710,6 +1720,8 @@ namespace OpenSim.Region.Environment.Scenes
1710 } 1720 }
1711 } 1721 }
1712 } 1722 }
1723
1724
1713 public void AddFullUpdateToAvatar(ScenePresence presence) 1725 public void AddFullUpdateToAvatar(ScenePresence presence)
1714 { 1726 {
1715 presence.QueuePartForUpdate(this); 1727 presence.QueuePartForUpdate(this);