aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-10-06 06:08:45 +0000
committerMelanie Thielker2008-10-06 06:08:45 +0000
commit1b678f062a0129fb2bb457666a67361f8bc218f0 (patch)
tree20de00417c6b860a599088b66962a62026f6b65c
parentRemove an unnecessary perms check. This caused prim movement to be disabled (diff)
downloadopensim-SC_OLD-1b678f062a0129fb2bb457666a67361f8bc218f0.zip
opensim-SC_OLD-1b678f062a0129fb2bb457666a67361f8bc218f0.tar.gz
opensim-SC_OLD-1b678f062a0129fb2bb457666a67361f8bc218f0.tar.bz2
opensim-SC_OLD-1b678f062a0129fb2bb457666a67361f8bc218f0.tar.xz
Fix a number of errors in transfer of objects
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs19
3 files changed, 16 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 04076da..ecc6180 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -2352,6 +2352,7 @@ namespace OpenSim.Region.Environment.Scenes
2352 if (part != null && part.ParentGroup != null) 2352 if (part != null && part.ParentGroup != null)
2353 { 2353 {
2354 part.ParentGroup.SetOwnerId(ownerID); 2354 part.ParentGroup.SetOwnerId(ownerID);
2355 part.ChangeInventoryOwner(ownerID);
2355 part.ParentGroup.SetGroup(groupID, remoteClient); 2356 part.ParentGroup.SetGroup(groupID, remoteClient);
2356 } 2357 }
2357 } 2358 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 735de7e..b6c9754 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -4116,6 +4116,7 @@ namespace OpenSim.Region.Environment.Scenes
4116 { 4116 {
4117 foreach (SceneObjectPart child in partList) 4117 foreach (SceneObjectPart child in partList)
4118 { 4118 {
4119 child.ChangeInventoryOwner(remoteClient.AgentId);
4119 child.OwnerMask &= child.NextOwnerMask; 4120 child.OwnerMask &= child.NextOwnerMask;
4120 child.GroupMask &= child.NextOwnerMask; 4121 child.GroupMask &= child.NextOwnerMask;
4121 child.EveryoneMask &= child.NextOwnerMask; 4122 child.EveryoneMask &= child.NextOwnerMask;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 80c4259..91249f9 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -3026,23 +3026,32 @@ namespace OpenSim.Region.Environment.Scenes
3026 public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF) 3026 public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF)
3027 { 3027 {
3028 bool set = addRemTF == 1; 3028 bool set = addRemTF == 1;
3029 bool god = m_parentGroup.Scene.ExternalChecks.ExternalChecksCanBeGodLike(AgentID);
3030
3031 uint baseMask = _baseMask;
3032 if (god)
3033 baseMask = 0x7ffffff0;
3029 3034
3030 // Are we the owner? 3035 // Are we the owner?
3031 if (AgentID == _ownerID) 3036 if ((AgentID == _ownerID) || god)
3032 { 3037 {
3033 switch (field) 3038 switch (field)
3034 { 3039 {
3035 case 2: 3040 case 2:
3036 _ownerMask = ApplyMask(_ownerMask, set, mask); 3041 _ownerMask = ApplyMask(_ownerMask, set, mask) &
3042 baseMask;
3037 break; 3043 break;
3038 case 4: 3044 case 4:
3039 _groupMask = ApplyMask(_groupMask, set, mask); 3045 _groupMask = ApplyMask(_groupMask, set, mask) &
3046 baseMask;
3040 break; 3047 break;
3041 case 8: 3048 case 8:
3042 _everyoneMask = ApplyMask(_everyoneMask, set, mask); 3049 _everyoneMask = ApplyMask(_everyoneMask, set, mask) &
3050 baseMask;
3043 break; 3051 break;
3044 case 16: 3052 case 16:
3045 _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask); 3053 _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) &
3054 baseMask;
3046 break; 3055 break;
3047 } 3056 }
3048 SendFullUpdateToAllClients(); 3057 SendFullUpdateToAllClients();