diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 5aef892..7f91de2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -11313,17 +11313,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
11313 | ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z)); | 11313 | ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z)); |
11314 | break; | 11314 | break; |
11315 | case ScriptBaseClass.OBJECT_ROT: | 11315 | case ScriptBaseClass.OBJECT_ROT: |
11316 | Quaternion rot = Quaternion.Identity; | ||
11317 | |||
11318 | if (obj.ParentGroup.IsAttachment) | ||
11316 | { | 11319 | { |
11317 | Quaternion rot = Quaternion.Identity; | 11320 | ScenePresence sp = World.GetScenePresence(obj.ParentGroup.AttachedAvatar); |
11318 | 11321 | ||
11322 | if (sp != null) | ||
11323 | rot = sp.GetWorldRotation(); | ||
11324 | } | ||
11325 | else | ||
11326 | { | ||
11319 | if (obj.ParentGroup.RootPart == obj) | 11327 | if (obj.ParentGroup.RootPart == obj) |
11320 | rot = obj.ParentGroup.GroupRotation; | 11328 | rot = obj.ParentGroup.GroupRotation; |
11321 | else | 11329 | else |
11322 | rot = obj.GetWorldRotation(); | 11330 | rot = obj.GetWorldRotation(); |
11323 | |||
11324 | LSL_Rotation objrot = new LSL_Rotation(rot); | ||
11325 | ret.Add(objrot); | ||
11326 | } | 11331 | } |
11332 | |||
11333 | LSL_Rotation objrot = new LSL_Rotation(rot); | ||
11334 | ret.Add(objrot); | ||
11335 | |||
11327 | break; | 11336 | break; |
11328 | case ScriptBaseClass.OBJECT_VELOCITY: | 11337 | case ScriptBaseClass.OBJECT_VELOCITY: |
11329 | ret.Add(new LSL_Vector(obj.Velocity)); | 11338 | ret.Add(new LSL_Vector(obj.Velocity)); |