From 3a047b2bdb610ae11ccb38ffea6b9d6d7e6adeee Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 15 Oct 2011 02:42:43 +0100 Subject: [PATCH] Restore [Startup] physical_prim flag which can stop any prims being subject to physics This had stopped working. However, at the moment it still allows the physics flag to be set even though this has no effect. This needs to be fixed. Default for this flag is true as previously. --- OpenSim/Framework/ConfigSettings.cs | 6 ++++++ OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 7 ++++++- bin/OpenSimDefaults.ini | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/OpenSim/Framework/ConfigSettings.cs b/OpenSim/Framework/ConfigSettings.cs index b0bdebe7fc..6ee7feeaa3 100644 --- a/OpenSim/Framework/ConfigSettings.cs +++ b/OpenSim/Framework/ConfigSettings.cs @@ -34,7 +34,13 @@ namespace OpenSim.Framework public bool See_into_region_from_neighbor { get; set; } public string StorageDll { get; set; } public string ClientstackDll { get; set; } + + /// + /// Controls whether physics can be applied to prims. Even if false, prims still have entries in a + /// PhysicsScene in order to perform collision detection + /// public bool PhysicalPrim { get; set; } + public string LibrariesXMLFile { get; set; } public const uint DefaultRegionHttpPort = 9000; diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index d9d5ba893c..a0079758bb 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -1551,7 +1551,9 @@ namespace OpenSim.Region.Framework.Scenes /// public void ApplyPhysics(uint rootObjectFlags, bool VolumeDetectActive, bool m_physicalPrim) { -// m_log.DebugFormat("[SCENE OBJECT PART]: Applying physics to {0} {1} {2}", Name, LocalId, UUID); +// m_log.DebugFormat( +// "[SCENE OBJECT PART]: Applying physics to {0} {1}, m_physicalPrim {2}", +// Name, LocalId, UUID, m_physicalPrim); bool isPhysical = (((rootObjectFlags & (uint) PrimFlags.Physics) != 0) && m_physicalPrim); bool isPhantom = ((rootObjectFlags & (uint) PrimFlags.Phantom) != 0); @@ -1816,6 +1818,9 @@ namespace OpenSim.Region.Framework.Scenes /// public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew) { + if (!ParentGroup.Scene.m_physicalPrim && UsePhysics) + return; + if (IsJoint()) { DoPhysicsPropertyUpdateForNinjaJoint(UsePhysics, isNew); diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 83f5d8ab0d..cd4690aa17 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -173,7 +173,8 @@ ; ## PHYSICS ; ## - ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true. + ; If true then prims can be made subject to physics (gravity, pushing, etc.). + ; If false then physics flag can be set but it is not honoured. However, prims are still solid for the purposes of collision direction physical_prim = true ; Select a mesher here.