diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 19e557f..0a1a226 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -924,13 +924,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
924 | 924 | ||
925 | string uuid = reader.GetAttribute("UUID"); | 925 | string uuid = reader.GetAttribute("UUID"); |
926 | 926 | ||
927 | // Even if there is no UUID attribute for some strange reason, we must always read the inner XML | ||
928 | // so we don't continually keep checking the same SavedScriptedState element. | ||
929 | string innerXml = reader.ReadInnerXml(); | ||
930 | |||
927 | if (uuid != null) | 931 | if (uuid != null) |
928 | { | 932 | { |
929 | // m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name); | 933 | // m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name); |
930 | 934 | ||
931 | UUID itemid = new UUID(uuid); | 935 | UUID itemid = new UUID(uuid); |
932 | if (itemid != UUID.Zero) | 936 | if (itemid != UUID.Zero) |
933 | m_savedScriptState[itemid] = reader.ReadInnerXml(); | 937 | m_savedScriptState[itemid] = innerXml; |
934 | } | 938 | } |
935 | else | 939 | else |
936 | { | 940 | { |
@@ -2943,6 +2947,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
2943 | uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify); | 2947 | uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify); |
2944 | uint lockBit = RootPart.OwnerMask & (uint)(PermissionMask.Move | PermissionMask.Modify); | 2948 | uint lockBit = RootPart.OwnerMask & (uint)(PermissionMask.Move | PermissionMask.Modify); |
2945 | RootPart.OwnerMask = (RootPart.OwnerMask & lockBit) | ((newOwnerMask | foldedPerms) & lockMask); | 2949 | RootPart.OwnerMask = (RootPart.OwnerMask & lockBit) | ((newOwnerMask | foldedPerms) & lockMask); |
2950 | |||
2951 | // m_log.DebugFormat( | ||
2952 | // "[SCENE OBJECT GROUP]: RootPart.OwnerMask now {0} for {1} in {2}", | ||
2953 | // (OpenMetaverse.PermissionMask)RootPart.OwnerMask, Name, Scene.Name); | ||
2954 | |||
2946 | RootPart.ScheduleFullUpdate(); | 2955 | RootPart.ScheduleFullUpdate(); |
2947 | } | 2956 | } |
2948 | 2957 | ||