aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Common
diff options
context:
space:
mode:
authorTeravus Ovares2008-04-23 15:32:19 +0000
committerTeravus Ovares2008-04-23 15:32:19 +0000
commit2a3bdde0fa78c5a59c530e6d974dfd6709aa1519 (patch)
treed2857d6fc06cde42bef42a731e115caf60add086 /OpenSim/Region/ScriptEngine/Common
parentTwo small changes: (diff)
downloadopensim-SC-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.zip
opensim-SC-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.tar.gz
opensim-SC-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.tar.bz2
opensim-SC-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.tar.xz
* Adds llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z,TF)
* Currently if you apply that to only one or two axis you get unpredictable and sometimes explosive results. * Three axis works well enough to play with it anyway. More work is needed here. * Fixed an incorrectly named method in ODE.NET
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common')
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 3dff98f..09cd4af 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -692,6 +692,9 @@ namespace OpenSim.Region.ScriptEngine.Common
692 public void llSetStatus(int status, int value) 692 public void llSetStatus(int status, int value)
693 { 693 {
694 m_host.AddScriptLPS(1); 694 m_host.AddScriptLPS(1);
695
696 int statusrotationaxis = 0;
697
695 if ((status & BuiltIn_Commands_BaseClass.STATUS_PHYSICS) == BuiltIn_Commands_BaseClass.STATUS_PHYSICS) 698 if ((status & BuiltIn_Commands_BaseClass.STATUS_PHYSICS) == BuiltIn_Commands_BaseClass.STATUS_PHYSICS)
696 { 699 {
697 if (value == 1) 700 if (value == 1)
@@ -713,15 +716,16 @@ namespace OpenSim.Region.ScriptEngine.Common
713 } 716 }
714 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) 717 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X)
715 { 718 {
716 NotImplemented("llSetStatus - STATUS_ROTATE_X"); 719 statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_X;
720
717 } 721 }
718 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) 722 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y)
719 { 723 {
720 NotImplemented("llSetStatus - STATUS_ROTATE_Y"); 724 statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y;
721 } 725 }
722 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) 726 if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z)
723 { 727 {
724 NotImplemented("llSetStatus - STATUS_ROTATE_Z"); 728 statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z;
725 } 729 }
726 if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) 730 if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB)
727 { 731 {
@@ -739,7 +743,11 @@ namespace OpenSim.Region.ScriptEngine.Common
739 { 743 {
740 NotImplemented("llSetStatus - STATUS_SANDBOX"); 744 NotImplemented("llSetStatus - STATUS_SANDBOX");
741 } 745 }
742 746 if (statusrotationaxis != 0)
747 {
748 m_host.SetAxisRotation(statusrotationaxis, value);
749
750 }
743 return; 751 return;
744 } 752 }
745 753