diff options
author | Justin Clarke Casey | 2008-03-13 00:22:38 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-03-13 00:22:38 +0000 |
commit | a4304fb9e6ec94b9a2aa70db85a68b9b102d4c33 (patch) | |
tree | 0b98401a00ff68bebdf2f7de385386e6a5060fff /OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |
parent | * Updated LibSL _packets_.cs to latest revision. AKA New Packets. (diff) | |
download | opensim-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.cs | 22 |
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); |