diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 02614bd2f4..9b7374c048 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2176,7 +2176,6 @@ namespace OpenSim.Region.Framework.Scenes // Apply physics to the root prim m_rootPart.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_rootPart.VolumeDetectActive, true); - for (int i = 0; i < parts.Length; i++) { SceneObjectPart part = parts[i]; diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index f7f18351e1..dd20a2ffb3 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2162,13 +2162,6 @@ namespace OpenSim.Region.Framework.Scenes { AddToPhysics(isPhysical, isPhantom, building, isPhysical); UpdatePhysicsSubscribedEvents(); // not sure if appliable here - if(!_VolumeDetectActive && - m_vehicleParams != null && - m_vehicleParams.CameraDecoupled && - m_localId == ParentGroup.RootPart.LocalId) - AddFlag(PrimFlags.CameraDecoupled); - else - RemFlag(PrimFlags.CameraDecoupled); } else { @@ -4673,11 +4666,6 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter if (ParentGroup != null) { - if(UsePhysics && !SetPhantom && m_localId == ParentGroup.RootPart.LocalId && - m_vehicleParams != null && m_vehicleParams.CameraDecoupled) - AddFlag(PrimFlags.CameraDecoupled); - else - RemFlag(PrimFlags.CameraDecoupled); ParentGroup.HasGroupChanged = true; ScheduleFullUpdate(); } diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 2dc6f486b7..914644ab73 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1239,6 +1239,14 @@ namespace OpenSim.Region.Framework.Scenes ParentPart = part; m_pos = PrevSitOffset; pos = part.GetWorldPosition(); + PhysicsActor partPhysActor = part.PhysActor; + if(partPhysActor != null) + { + partPhysActor.OnPhysicsRequestingCameraData -= + physActor_OnPhysicsRequestingCameraData; + partPhysActor.OnPhysicsRequestingCameraData += + physActor_OnPhysicsRequestingCameraData; + } } ParentUUID = UUID.Zero; }