diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 19 | ||||
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/Scene.cs | 3 | ||||
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 4 |
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> |