diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 34 |
2 files changed, 20 insertions, 16 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs index be7cfea..d8a2272 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEDynamics.cs | |||
@@ -828,7 +828,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
828 | } | 828 | } |
829 | 829 | ||
830 | // hover | 830 | // hover |
831 | if (m_VhoverTimescale < 300 && m_VhoverHeight >0 && rootPrim.prim_geom != IntPtr.Zero) | 831 | if (m_VhoverTimescale < 300 && rootPrim.prim_geom != IntPtr.Zero) |
832 | { | 832 | { |
833 | // d.Vector3 pos = d.BodyGetPosition(Body); | 833 | // d.Vector3 pos = d.BodyGetPosition(Body); |
834 | d.Vector3 pos = d.GeomGetPosition(rootPrim.prim_geom); | 834 | d.Vector3 pos = d.GeomGetPosition(rootPrim.prim_geom); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index cf61943..ce0e59c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -6861,9 +6861,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6861 | if (uuid == m_host.ParentGroup.RootPart.GroupID) | 6861 | if (uuid == m_host.ParentGroup.RootPart.GroupID) |
6862 | return new LSL_Integer(1); | 6862 | return new LSL_Integer(1); |
6863 | 6863 | ||
6864 | // We got passed a UUID.Zero | 6864 | // Handle object case |
6865 | if (uuid == UUID.Zero) | 6865 | SceneObjectPart part = World.GetSceneObjectPart(uuid); |
6866 | return new LSL_Integer(0); | 6866 | if (part != null) |
6867 | { | ||
6868 | |||
6869 | if(part.ParentGroup.IsAttachment) | ||
6870 | { | ||
6871 | uuid = part.ParentGroup.AttachedAvatar; | ||
6872 | } | ||
6873 | else | ||
6874 | { | ||
6875 | // This will handle both deed and non-deed and also the no | ||
6876 | // group case | ||
6877 | if (part.ParentGroup.RootPart.GroupID == m_host.ParentGroup.RootPart.GroupID) | ||
6878 | return new LSL_Integer(1); | ||
6879 | |||
6880 | return new LSL_Integer(0); | ||
6881 | } | ||
6882 | } | ||
6867 | 6883 | ||
6868 | // Handle the case where id names an avatar | 6884 | // Handle the case where id names an avatar |
6869 | ScenePresence presence = World.GetScenePresence(uuid); | 6885 | ScenePresence presence = World.GetScenePresence(uuid); |
@@ -6879,18 +6895,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6879 | return new LSL_Integer(0); | 6895 | return new LSL_Integer(0); |
6880 | } | 6896 | } |
6881 | 6897 | ||
6882 | // Handle object case | ||
6883 | SceneObjectPart part = World.GetSceneObjectPart(uuid); | ||
6884 | if (part != null) | ||
6885 | { | ||
6886 | // This will handle both deed and non-deed and also the no | ||
6887 | // group case | ||
6888 | if (part.ParentGroup.RootPart.GroupID == m_host.ParentGroup.RootPart.GroupID) | ||
6889 | return new LSL_Integer(1); | ||
6890 | |||
6891 | return new LSL_Integer(0); | ||
6892 | } | ||
6893 | |||
6894 | return new LSL_Integer(0); | 6898 | return new LSL_Integer(0); |
6895 | } | 6899 | } |
6896 | 6900 | ||