diff options
author | Teravus Ovares | 2008-04-23 15:32:19 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-04-23 15:32:19 +0000 |
commit | 2a3bdde0fa78c5a59c530e6d974dfd6709aa1519 (patch) | |
tree | d2857d6fc06cde42bef42a731e115caf60add086 /OpenSim/Region/ScriptEngine/Common | |
parent | Two small changes: (diff) | |
download | opensim-SC_OLD-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.zip opensim-SC_OLD-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.tar.gz opensim-SC_OLD-2a3bdde0fa78c5a59c530e6d974dfd6709aa1519.tar.bz2 opensim-SC_OLD-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.cs | 16 |
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 | ||