aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs
diff options
context:
space:
mode:
authorMelanie2012-05-08 00:07:13 +0100
committerMelanie2012-05-08 00:07:13 +0100
commit900afbd53e419fe1bf9cc6ae801e4fc64d719157 (patch)
tree44d3003e49a3acf9ab8dbdf6afe45dc9a6c2e2af /OpenSim/Region/Framework/Scenes/SceneGraph.cs
parentMerge branch 'master' into careminster (diff)
parentMerge branch 'ubitwork' into avination (diff)
downloadopensim-SC-900afbd53e419fe1bf9cc6ae801e4fc64d719157.zip
opensim-SC-900afbd53e419fe1bf9cc6ae801e4fc64d719157.tar.gz
opensim-SC-900afbd53e419fe1bf9cc6ae801e4fc64d719157.tar.bz2
opensim-SC-900afbd53e419fe1bf9cc6ae801e4fc64d719157.tar.xz
Merge branch 'avination' into careminster
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 982913a..debb164 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1276,9 +1276,36 @@ namespace OpenSim.Region.Framework.Scenes
1276 { 1276 {
1277 if (m_parentScene.Permissions.CanEditObject(grp.UUID, remoteClient.AgentId)) 1277 if (m_parentScene.Permissions.CanEditObject(grp.UUID, remoteClient.AgentId))
1278 { 1278 {
1279 // These two are exceptions SL makes in the interpretation
1280 // of the change flags. Must check them here because otherwise
1281 // the group flag (see below) would be lost
1282 if (data.change == ObjectChangeType.groupS)
1283 data.change = ObjectChangeType.primS;
1284 if (data.change == ObjectChangeType.groupPS)
1285 data.change = ObjectChangeType.primPS;
1279 part.StoreUndoState(data.change); // lets test only saving what we changed 1286 part.StoreUndoState(data.change); // lets test only saving what we changed
1280 grp.doChangeObject(part, (ObjectChangeData)data); 1287 grp.doChangeObject(part, (ObjectChangeData)data);
1281 } 1288 }
1289 else
1290 {
1291 // Is this any kind of group operation?
1292 if ((data.change & ObjectChangeType.Group) != 0)
1293 {
1294 // Is a move and/or rotation requested?
1295 if ((data.change & (ObjectChangeType.Position | ObjectChangeType.Rotation)) != 0)
1296 {
1297 // Are we allowed to move it?
1298 if (m_parentScene.Permissions.CanMoveObject(grp.UUID, remoteClient.AgentId))
1299 {
1300 // Strip all but move and rotation from request
1301 data.change &= (ObjectChangeType.Group | ObjectChangeType.Position | ObjectChangeType.Rotation);
1302
1303 part.StoreUndoState(data.change);
1304 grp.doChangeObject(part, (ObjectChangeData)data);
1305 }
1306 }
1307 }
1308 }
1282 } 1309 }
1283 } 1310 }
1284 } 1311 }