aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-07-25 17:48:58 +0000
committerJustin Clarke Casey2008-07-25 17:48:58 +0000
commitd954f46a0a8792d7d855c698ea45e8b67c0a421d (patch)
tree1f133bf5df52ef8b84eb4905e7d0de3859a4e4a6 /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
parentoops. forgot to add addin.xml for GridInfoPlugin. also, slight (diff)
downloadopensim-SC-d954f46a0a8792d7d855c698ea45e8b67c0a421d.zip
opensim-SC-d954f46a0a8792d7d855c698ea45e8b67c0a421d.tar.gz
opensim-SC-d954f46a0a8792d7d855c698ea45e8b67c0a421d.tar.bz2
opensim-SC-d954f46a0a8792d7d855c698ea45e8b67c0a421d.tar.xz
* Stop the HasGroupChanged flag being reverted for newly restored prims which need to be persisted to the db
* This should stop the problem where linked prims loaded via an archive did not survive server restart * It may address mantis 1819 though the symptoms don't look consistent
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs35
1 files changed, 18 insertions, 17 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 23490fc..abd24a2 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -512,8 +512,8 @@ namespace OpenSim.Region.Environment.Scenes
512 { 512 {
513 if (InSceneBackup) 513 if (InSceneBackup)
514 { 514 {
515// m_log.DebugFormat( 515 //m_log.DebugFormat(
516// "[SCENE OBJECT GROUP]: Attaching object {0} to scene presistence sweep", UUID); 516 // "[SCENE OBJECT GROUP]: Attaching object {0} {1} to scene presistence sweep", Name, UUID);
517 517
518 m_scene.EventManager.OnBackup += ProcessBackup; 518 m_scene.EventManager.OnBackup += ProcessBackup;
519 } 519 }
@@ -873,11 +873,15 @@ namespace OpenSim.Region.Environment.Scenes
873 return m_scene.MaxUndoCount; 873 return m_scene.MaxUndoCount;
874 return 5; 874 return 5;
875 } 875 }
876 public void ResetChildPrimPhysicsPositions() 876
877 { 877 // justincc: I don't believe this hack is needed any longer, especially since the physics
878 AbsolutePosition = AbsolutePosition; 878 // parts of set AbsolutePosition were already commented out. By changing HasGroupChanged to false
879 HasGroupChanged = false; 879 // this method was preventing proper reload of scene objects.
880 } 880 //public void ResetChildPrimPhysicsPositions()
881 //{
882 // AbsolutePosition = AbsolutePosition;
883 // HasGroupChanged = false;
884 //}
881 885
882 public LLUUID GetPartsFullID(uint localID) 886 public LLUUID GetPartsFullID(uint localID)
883 { 887 {
@@ -1061,8 +1065,9 @@ namespace OpenSim.Region.Environment.Scenes
1061 { 1065 {
1062 part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_physicalPrim); 1066 part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_physicalPrim);
1063 } 1067 }
1068
1064 // Hack to get the physics scene geometries in the right spot 1069 // Hack to get the physics scene geometries in the right spot
1065 ResetChildPrimPhysicsPositions(); 1070 //ResetChildPrimPhysicsPositions();
1066 } 1071 }
1067 } 1072 }
1068 else 1073 else
@@ -1095,15 +1100,15 @@ namespace OpenSim.Region.Environment.Scenes
1095 /// </summary> 1100 /// </summary>
1096 /// <param name="datastore"></param> 1101 /// <param name="datastore"></param>
1097 public void ProcessBackup(IRegionDataStore datastore) 1102 public void ProcessBackup(IRegionDataStore datastore)
1098 { 1103 {
1099 // don't backup while it's selected or you're asking for changes mid stream.
1100 if (HasGroupChanged) 1104 if (HasGroupChanged)
1101 { 1105 {
1106 // don't backup while it's selected or you're asking for changes mid stream.
1102 if ((!IsSelected) && (RootPart != null)) 1107 if ((!IsSelected) && (RootPart != null))
1103 { 1108 {
1104 m_log.InfoFormat( 1109 m_log.InfoFormat(
1105 "[SCENE]: Storing object {0}, {1} in {2}", 1110 "[SCENE]: Storing object {0}, {1} in {2}",
1106 m_rootPart.Name, UUID, m_scene.RegionInfo.RegionName); 1111 Name, UUID, m_scene.RegionInfo.RegionName);
1107 1112
1108 SceneObjectGroup backup_group = Copy(OwnerID, GroupID, false); 1113 SceneObjectGroup backup_group = Copy(OwnerID, GroupID, false);
1109 1114
@@ -1117,14 +1122,10 @@ namespace OpenSim.Region.Environment.Scenes
1117// else 1122// else
1118// { 1123// {
1119// m_log.DebugFormat( 1124// m_log.DebugFormat(
1120// "[SCENE OBJECT GROUP]: Did not update persistence of object {0} since it was still selected by an avatar during the backup sweep", UUID); 1125// "[SCENE]: Did not update persistence of object {0} {1}, selected = {2}",
1126// Name, UUID, IsSelected);
1121// } 1127// }
1122 } 1128 }
1123
1124 // Why is storing the inventory outside of HasGroupChanged?
1125
1126
1127 //ForEachPart(delegate(SceneObjectPart part) { part.ProcessInventoryBackup(datastore); });
1128 } 1129 }
1129 1130
1130 #endregion 1131 #endregion