aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2012-04-17 23:39:41 +0200
committerMelanie2012-04-17 23:39:41 +0200
commit0fe0b2ceec2440ff284d7a494d090ce43449fd97 (patch)
treea4ccaf9e24262ec26f624d34b9011456380b4a54 /OpenSim/Region
parentMerge branch 'ubitwork' (diff)
downloadopensim-SC-0fe0b2ceec2440ff284d7a494d090ce43449fd97.zip
opensim-SC-0fe0b2ceec2440ff284d7a494d090ce43449fd97.tar.gz
opensim-SC-0fe0b2ceec2440ff284d7a494d090ce43449fd97.tar.bz2
opensim-SC-0fe0b2ceec2440ff284d7a494d090ce43449fd97.tar.xz
Prevent objects rezzed in sim from being seen as attachments and becoming uneditable or crashers. (Foxtail of death)
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs6
2 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 74701a5..f41e89e 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -768,6 +768,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
768 { 768 {
769 g.RootPart.AttachPoint = g.RootPart.Shape.State; 769 g.RootPart.AttachPoint = g.RootPart.Shape.State;
770 g.RootPart.AttachOffset = g.AbsolutePosition; 770 g.RootPart.AttachOffset = g.AbsolutePosition;
771 g.RootPart.Shape.State = 0;
771 } 772 }
772 773
773 objlist.Add(g); 774 objlist.Add(g);
@@ -800,6 +801,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
800 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml); 801 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml);
801 g.RootPart.AttachPoint = g.RootPart.Shape.State; 802 g.RootPart.AttachPoint = g.RootPart.Shape.State;
802 g.RootPart.AttachOffset = g.AbsolutePosition; 803 g.RootPart.AttachOffset = g.AbsolutePosition;
804 g.RootPart.Shape.State = 0;
803 805
804 objlist.Add(g); 806 objlist.Add(g);
805 XmlElement el = (XmlElement)n; 807 XmlElement el = (XmlElement)n;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3fd1f5e..47020af 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1941,6 +1941,12 @@ namespace OpenSim.Region.Framework.Scenes
1941// "[SCENE]: Storing {0}, {1} in {2}", 1941// "[SCENE]: Storing {0}, {1} in {2}",
1942// Name, UUID, m_scene.RegionInfo.RegionName); 1942// Name, UUID, m_scene.RegionInfo.RegionName);
1943 1943
1944 if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0)
1945 {
1946 RootPart.Shape.State = 0;
1947 ScheduleGroupForFullUpdate();
1948 }
1949
1944 SceneObjectGroup backup_group = Copy(false); 1950 SceneObjectGroup backup_group = Copy(false);
1945 backup_group.RootPart.Velocity = RootPart.Velocity; 1951 backup_group.RootPart.Velocity = RootPart.Velocity;
1946 backup_group.RootPart.Acceleration = RootPart.Acceleration; 1952 backup_group.RootPart.Acceleration = RootPart.Acceleration;