aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs8
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs6
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs18
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs2
5 files changed, 25 insertions, 11 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
index 1945fac..7b3ce5a 100644
--- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
+++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
@@ -181,7 +181,7 @@ namespace OpenSim.Region.Environment.Scenes
181 { 181 {
182 SceneObjectGroup obj = new SceneObjectGroup(xmlData); 182 SceneObjectGroup obj = new SceneObjectGroup(xmlData);
183 183
184 scene.AddSceneObjectFromStorage(obj); 184 scene.AddRestoredSceneObject(obj, true);
185 } 185 }
186 186
187 public static void SavePrimsToXml2(Scene scene, string fileName) 187 public static void SavePrimsToXml2(Scene scene, string fileName)
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 87c4226..c7068fa 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -192,7 +192,11 @@ namespace OpenSim.Region.Environment.Scenes
192 /// Add an object into the scene that has come from storage 192 /// Add an object into the scene that has come from storage
193 /// </summary> 193 /// </summary>
194 /// <param name="sceneObject"></param> 194 /// <param name="sceneObject"></param>
195 protected internal void AddSceneObjectFromStorage(SceneObjectGroup sceneObject) 195 /// <param name="attachToBackup">
196 /// If true, changes to the object will be reflected in its persisted data
197 /// If false, the persisted data will not be changed even if the object in the scene is changed
198 /// </param>
199 protected internal void AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
196 { 200 {
197 sceneObject.RegionHandle = m_regInfo.RegionHandle; 201 sceneObject.RegionHandle = m_regInfo.RegionHandle;
198 sceneObject.SetScene(m_parentScene); 202 sceneObject.SetScene(m_parentScene);
@@ -204,7 +208,7 @@ namespace OpenSim.Region.Environment.Scenes
204 208
205 sceneObject.UpdateParentIDs(); 209 sceneObject.UpdateParentIDs();
206 210
207 AddSceneObject(sceneObject, true); 211 AddSceneObject(sceneObject, attachToBackup);
208 } 212 }
209 213
210 /// <summary> 214 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index c7de419..ecb54e6 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1470,7 +1470,7 @@ namespace OpenSim.Region.Environment.Scenes
1470 List<SceneObjectGroup> PrimsFromDB = m_storageManager.DataStore.LoadObjects(regionID); 1470 List<SceneObjectGroup> PrimsFromDB = m_storageManager.DataStore.LoadObjects(regionID);
1471 foreach (SceneObjectGroup group in PrimsFromDB) 1471 foreach (SceneObjectGroup group in PrimsFromDB)
1472 { 1472 {
1473 AddSceneObjectFromStorage(group); 1473 AddRestoredSceneObject(group, true);
1474 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1474 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1475 rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted; 1475 rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted;
1476 rootPart.TrimPermissions(); 1476 rootPart.TrimPermissions();
@@ -1651,9 +1651,9 @@ namespace OpenSim.Region.Environment.Scenes
1651 /// Add an object into the scene that has come from storage 1651 /// Add an object into the scene that has come from storage
1652 /// </summary> 1652 /// </summary>
1653 /// <param name="sceneObject"></param> 1653 /// <param name="sceneObject"></param>
1654 public void AddSceneObjectFromStorage(SceneObjectGroup sceneObject) 1654 public void AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
1655 { 1655 {
1656 m_innerScene.AddSceneObjectFromStorage(sceneObject); 1656 m_innerScene.AddRestoredSceneObject(sceneObject, attachToBackup);
1657 } 1657 }
1658 1658
1659 /// <summary> 1659 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index b8f52ec..5236014 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -94,6 +94,7 @@ namespace OpenSim.Region.Environment.Scenes
94 /// since the group's last persistent backup 94 /// since the group's last persistent backup
95 /// </summary> 95 /// </summary>
96 public bool HasGroupChanged = false; 96 public bool HasGroupChanged = false;
97
97 public float scriptScore = 0f; 98 public float scriptScore = 0f;
98 99
99 private LLVector3 lastPhysGroupPos; 100 private LLVector3 lastPhysGroupPos;
@@ -1530,7 +1531,7 @@ namespace OpenSim.Region.Environment.Scenes
1530 } 1531 }
1531 1532
1532 /// <summary> 1533 /// <summary>
1533 /// Schedule a full update for every part in this object 1534 /// Schedule a full update for this scene object
1534 /// </summary> 1535 /// </summary>
1535 public void ScheduleGroupForFullUpdate() 1536 public void ScheduleGroupForFullUpdate()
1536 { 1537 {
@@ -1546,7 +1547,7 @@ namespace OpenSim.Region.Environment.Scenes
1546 } 1547 }
1547 1548
1548 /// <summary> 1549 /// <summary>
1549 /// 1550 /// Schedule a terse update for this scene object
1550 /// </summary> 1551 /// </summary>
1551 public void ScheduleGroupForTerseUpdate() 1552 public void ScheduleGroupForTerseUpdate()
1552 { 1553 {
@@ -1562,7 +1563,7 @@ namespace OpenSim.Region.Environment.Scenes
1562 } 1563 }
1563 1564
1564 /// <summary> 1565 /// <summary>
1565 /// 1566 /// Immediately send a full update for this scene object.
1566 /// </summary> 1567 /// </summary>
1567 public void SendGroupFullUpdate() 1568 public void SendGroupFullUpdate()
1568 { 1569 {
@@ -1583,7 +1584,7 @@ namespace OpenSim.Region.Environment.Scenes
1583 } 1584 }
1584 1585
1585 /// <summary> 1586 /// <summary>
1586 /// 1587 /// Immediately send a terse update for this scene object.
1587 /// </summary> 1588 /// </summary>
1588 public void SendGroupTerseUpdate() 1589 public void SendGroupTerseUpdate()
1589 { 1590 {
@@ -2100,7 +2101,7 @@ namespace OpenSim.Region.Environment.Scenes
2100 #region Resize 2101 #region Resize
2101 2102
2102 /// <summary> 2103 /// <summary>
2103 /// 2104 /// Resize the given part
2104 /// </summary> 2105 /// </summary>
2105 /// <param name="scale"></param> 2106 /// <param name="scale"></param>
2106 /// <param name="localID"></param> 2107 /// <param name="localID"></param>
@@ -2531,6 +2532,12 @@ namespace OpenSim.Region.Environment.Scenes
2531 } 2532 }
2532 } 2533 }
2533 } 2534 }
2535
2536 /// <summary>
2537 /// Set the user group to which this scene object belongs.
2538 /// </summary>
2539 /// <param name="GroupID"></param>
2540 /// <param name="client"></param>
2534 public void SetGroup(LLUUID GroupID, IClientAPI client) 2541 public void SetGroup(LLUUID GroupID, IClientAPI client)
2535 { 2542 {
2536 lock (m_parts) 2543 lock (m_parts)
@@ -2540,6 +2547,7 @@ namespace OpenSim.Region.Environment.Scenes
2540 part.SetGroup(GroupID, client); 2547 part.SetGroup(GroupID, client);
2541 } 2548 }
2542 } 2549 }
2550
2543 ScheduleGroupForFullUpdate(); 2551 ScheduleGroupForFullUpdate();
2544 } 2552 }
2545 } 2553 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 6009206..85e098d 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -3125,12 +3125,14 @@ namespace OpenSim.Region.Environment.Scenes
3125 ParentGroup.RootPart.BaseMask); 3125 ParentGroup.RootPart.BaseMask);
3126 3126
3127 } 3127 }
3128
3128 public void SetGroup(LLUUID groupID, IClientAPI client) 3129 public void SetGroup(LLUUID groupID, IClientAPI client)
3129 { 3130 {
3130 GroupID = groupID; 3131 GroupID = groupID;
3131 GetProperties(client); 3132 GetProperties(client);
3132 m_updateFlag = 2; 3133 m_updateFlag = 2;
3133 } 3134 }
3135
3134 private void handleTimerAccounting(uint localID, double interval) 3136 private void handleTimerAccounting(uint localID, double interval)
3135 { 3137 {
3136 if (localID == LocalId) 3138 if (localID == LocalId)