aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-08-19 14:43:18 -0400
committerTeravus Ovares (Dan Olivares)2009-08-19 14:43:18 -0400
commit289439c8329d992251769aa83e3d7809f651de26 (patch)
tree8a1e596190f197fa5f70f21a8c968d2c55004cde /OpenSim/Region/ScriptEngine
parentAdd Border (a virtual border management class) (diff)
parentAdded MoveItems, which is most useful upon viewer-delete inventory operation.... (diff)
downloadopensim-SC_OLD-289439c8329d992251769aa83e3d7809f651de26.zip
opensim-SC_OLD-289439c8329d992251769aa83e3d7809f651de26.tar.gz
opensim-SC_OLD-289439c8329d992251769aa83e3d7809f651de26.tar.bz2
opensim-SC_OLD-289439c8329d992251769aa83e3d7809f651de26.tar.xz
Merge branch 'master' of ssh://MyConnection/var/git/opensim
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs26
1 files changed, 25 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 2dbbf70..4e665e9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1978,6 +1978,30 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1978 return new LSL_Rotation(q.X, q.Y, q.Z, q.W); 1978 return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
1979 } 1979 }
1980 1980
1981 private LSL_Rotation GetPartRot( SceneObjectPart part )
1982 {
1983 Quaternion q;
1984 if (part.LinkNum == 0 || part.LinkNum == 1) // unlinked or root prim
1985 {
1986 if (part.ParentGroup.RootPart.AttachmentPoint != 0)
1987 {
1988 ScenePresence avatar = World.GetScenePresence(part.AttachedAvatar);
1989 if (avatar != null)
1990 if ((avatar.AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) != 0)
1991 q = avatar.CameraRotation; // Mouselook
1992 else
1993 q = avatar.Rotation; // Currently infrequently updated so may be inaccurate
1994 else
1995 q = part.ParentGroup.GroupRotation; // Likely never get here but just in case
1996 }
1997 else
1998 q = part.ParentGroup.GroupRotation; // just the group rotation
1999 return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
2000 }
2001 q = part.GetWorldRotation();
2002 return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
2003 }
2004
1981 public LSL_Rotation llGetLocalRot() 2005 public LSL_Rotation llGetLocalRot()
1982 { 2006 {
1983 m_host.AddScriptLPS(1); 2007 m_host.AddScriptLPS(1);
@@ -7299,7 +7323,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7299 break; 7323 break;
7300 7324
7301 case (int)ScriptBaseClass.PRIM_ROTATION: 7325 case (int)ScriptBaseClass.PRIM_ROTATION:
7302 res.Add(llGetRot()); 7326 res.Add(GetPartRot(part));
7303 break; 7327 break;
7304 7328
7305 case (int)ScriptBaseClass.PRIM_TYPE: 7329 case (int)ScriptBaseClass.PRIM_TYPE: