ubOde revert making vehicle hover height disable hover. This at least breaks current scripts. wikis say it should, but makes no sense with vehicle type parameters defaults. Hover it again only disabled with timescale >300; handle llSameGroup on attachments

LSLKeyTest
UbitUmarov 2016-08-06 05:21:15 +01:00
parent 17cc238b44
commit f7419ad52d
2 changed files with 20 additions and 16 deletions

View File

@ -828,7 +828,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde
} }
// hover // hover
if (m_VhoverTimescale < 300 && m_VhoverHeight >0 && rootPrim.prim_geom != IntPtr.Zero) if (m_VhoverTimescale < 300 && rootPrim.prim_geom != IntPtr.Zero)
{ {
// d.Vector3 pos = d.BodyGetPosition(Body); // d.Vector3 pos = d.BodyGetPosition(Body);
d.Vector3 pos = d.GeomGetPosition(rootPrim.prim_geom); d.Vector3 pos = d.GeomGetPosition(rootPrim.prim_geom);

View File

@ -6861,9 +6861,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (uuid == m_host.ParentGroup.RootPart.GroupID) if (uuid == m_host.ParentGroup.RootPart.GroupID)
return new LSL_Integer(1); return new LSL_Integer(1);
// We got passed a UUID.Zero // Handle object case
if (uuid == UUID.Zero) SceneObjectPart part = World.GetSceneObjectPart(uuid);
if (part != null)
{
if(part.ParentGroup.IsAttachment)
{
uuid = part.ParentGroup.AttachedAvatar;
}
else
{
// This will handle both deed and non-deed and also the no
// group case
if (part.ParentGroup.RootPart.GroupID == m_host.ParentGroup.RootPart.GroupID)
return new LSL_Integer(1);
return new LSL_Integer(0); return new LSL_Integer(0);
}
}
// Handle the case where id names an avatar // Handle the case where id names an avatar
ScenePresence presence = World.GetScenePresence(uuid); ScenePresence presence = World.GetScenePresence(uuid);
@ -6879,18 +6895,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return new LSL_Integer(0); return new LSL_Integer(0);
} }
// Handle object case
SceneObjectPart part = World.GetSceneObjectPart(uuid);
if (part != null)
{
// This will handle both deed and non-deed and also the no
// group case
if (part.ParentGroup.RootPart.GroupID == m_host.ParentGroup.RootPart.GroupID)
return new LSL_Integer(1);
return new LSL_Integer(0);
}
return new LSL_Integer(0); return new LSL_Integer(0);
} }