aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs19
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs3
-rwxr-xr-xOpenSim/Region/Framework/Scenes/SceneGraph.cs4
3 files changed, 19 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index c49edd1..fc90d60 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -377,8 +377,21 @@ namespace OpenSim.Region.Framework.Scenes
377 if (part == null) 377 if (part == null)
378 return; 378 return;
379 379
380 SceneObjectGroup obj = part.ParentGroup; 380 SceneObjectGroup group = part.ParentGroup;
381 if(group == null || group.IsDeleted)
382 return;
383
384 if (Permissions.CanMoveObject(group.UUID, remoteClient.AgentId))// && PermissionsMngr.)
385 {
386 group.GrabMovement(objectID, offset, pos, remoteClient);
387 }
381 388
389 // This is outside the above permissions condition
390 // so that if the object is locked the client moving the object
391 // get's it's position on the simulator even if it was the same as before
392 // This keeps the moving user's client in sync with the rest of the world.
393 group.SendGroupTerseUpdate();
394
382 SurfaceTouchEventArgs surfaceArg = null; 395 SurfaceTouchEventArgs surfaceArg = null;
383 if (surfaceArgs != null && surfaceArgs.Count > 0) 396 if (surfaceArgs != null && surfaceArgs.Count > 0)
384 surfaceArg = surfaceArgs[0]; 397 surfaceArg = surfaceArgs[0];
@@ -391,9 +404,9 @@ namespace OpenSim.Region.Framework.Scenes
391 // or if we're meant to pass on touches anyway. Don't send to root prim 404 // or if we're meant to pass on touches anyway. Don't send to root prim
392 // if prim touched is the root prim as we just did it 405 // if prim touched is the root prim as we just did it
393 if (((part.ScriptEvents & scriptEvents.touch) == 0) || 406 if (((part.ScriptEvents & scriptEvents.touch) == 0) ||
394 (part.PassTouches && (part.LocalId != obj.RootPart.LocalId))) 407 (part.PassTouches && (part.LocalId != group.RootPart.LocalId)))
395 { 408 {
396 EventManager.TriggerObjectGrabbing(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg); 409 EventManager.TriggerObjectGrabbing(group.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
397 } 410 }
398 } 411 }
399 412
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 7b1b3c9..88416e4 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3329,7 +3329,6 @@ namespace OpenSim.Region.Framework.Scenes
3329 client.OnObjectRequest += RequestPrim; 3329 client.OnObjectRequest += RequestPrim;
3330 client.OnObjectSelect += SelectPrim; 3330 client.OnObjectSelect += SelectPrim;
3331 client.OnObjectDeselect += DeselectPrim; 3331 client.OnObjectDeselect += DeselectPrim;
3332 client.OnGrabUpdate += m_sceneGraph.MoveObject;
3333 client.OnSpinStart += m_sceneGraph.SpinStart; 3332 client.OnSpinStart += m_sceneGraph.SpinStart;
3334 client.OnSpinUpdate += m_sceneGraph.SpinObject; 3333 client.OnSpinUpdate += m_sceneGraph.SpinObject;
3335 client.OnDeRezObject += DeRezObjects; 3334 client.OnDeRezObject += DeRezObjects;
@@ -3457,7 +3456,6 @@ namespace OpenSim.Region.Framework.Scenes
3457 client.OnObjectRequest -= RequestPrim; 3456 client.OnObjectRequest -= RequestPrim;
3458 client.OnObjectSelect -= SelectPrim; 3457 client.OnObjectSelect -= SelectPrim;
3459 client.OnObjectDeselect -= DeselectPrim; 3458 client.OnObjectDeselect -= DeselectPrim;
3460 client.OnGrabUpdate -= m_sceneGraph.MoveObject;
3461 client.OnSpinStart -= m_sceneGraph.SpinStart; 3459 client.OnSpinStart -= m_sceneGraph.SpinStart;
3462 client.OnSpinUpdate -= m_sceneGraph.SpinObject; 3460 client.OnSpinUpdate -= m_sceneGraph.SpinObject;
3463 client.OnDeRezObject -= DeRezObjects; 3461 client.OnDeRezObject -= DeRezObjects;
@@ -3472,6 +3470,7 @@ namespace OpenSim.Region.Framework.Scenes
3472 client.OnRequestObjectPropertiesFamily -= m_sceneGraph.RequestObjectPropertiesFamily; 3470 client.OnRequestObjectPropertiesFamily -= m_sceneGraph.RequestObjectPropertiesFamily;
3473 client.OnObjectPermissions -= HandleObjectPermissionsUpdate; 3471 client.OnObjectPermissions -= HandleObjectPermissionsUpdate;
3474 client.OnGrabObject -= ProcessObjectGrab; 3472 client.OnGrabObject -= ProcessObjectGrab;
3473 client.OnGrabUpdate -= ProcessObjectGrabUpdate;
3475 client.OnDeGrabObject -= ProcessObjectDeGrab; 3474 client.OnDeGrabObject -= ProcessObjectDeGrab;
3476 client.OnUndo -= m_sceneGraph.HandleUndo; 3475 client.OnUndo -= m_sceneGraph.HandleUndo;
3477 client.OnRedo -= m_sceneGraph.HandleRedo; 3476 client.OnRedo -= m_sceneGraph.HandleRedo;
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index b65d168..0e5720f 100755
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1674,7 +1674,7 @@ namespace OpenSim.Region.Framework.Scenes
1674 } 1674 }
1675 } 1675 }
1676 } 1676 }
1677 1677/* moved to scene ProcessObjectGrabUpdate
1678 /// <summary> 1678 /// <summary>
1679 /// Move the given object 1679 /// Move the given object
1680 /// </summary> 1680 /// </summary>
@@ -1699,7 +1699,7 @@ namespace OpenSim.Region.Framework.Scenes
1699 group.SendGroupTerseUpdate(); 1699 group.SendGroupTerseUpdate();
1700 } 1700 }
1701 } 1701 }
1702 1702*/
1703 /// <summary> 1703 /// <summary>
1704 /// Start spinning the given object 1704 /// Start spinning the given object
1705 /// </summary> 1705 /// </summary>