From e59999a43f29a120f1d9d336962b618fb2555e4f Mon Sep 17 00:00:00 2001 From: onefang Date: Mon, 6 Sep 2021 20:52:50 +1000 Subject: Allow different speeds of movement. --- .1AOor2.settings.txt | 1 + .1ring.theme.txt | 3 +++ 1AOor2.lsl | 33 +++++++++++++++++++++++++++++++++ ~1AOor2.command.data.txt | 10 ++++++++-- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/.1AOor2.settings.txt b/.1AOor2.settings.txt index bcf4439..603d6ef 100644 --- a/.1AOor2.settings.txt +++ b/.1AOor2.settings.txt @@ -1,5 +1,6 @@ AO=1 SUPER=0 +SPEED=1.0 OSANIM=1 OSSIT=1 OSSPEED=1 diff --git a/.1ring.theme.txt b/.1ring.theme.txt index c7ef112..0e6c330 100644 --- a/.1ring.theme.txt +++ b/.1ring.theme.txt @@ -73,6 +73,9 @@ MENU moves | movement menu | MORE TOMENU Follow | CHOOSE_ALL TOMENU Go to | CHOOSE_ALL TOMENU Sit | CHOOSE_ALL +BUTTON slower - | 1AOor2.SLOWER_- +BUTTON normal | 1AOor2.NORMAL_SPEED +BUTTON faster + | 1AOor2.FASTER_+ TOGGLE free BUTTON stop | STOP BUTTON Stand | STAND diff --git a/1AOor2.lsl b/1AOor2.lsl index 360b702..f9cae44 100644 --- a/1AOor2.lsl +++ b/1AOor2.lsl @@ -269,6 +269,26 @@ integer doThing(key id, string button, string fr, string cmd, string data, integ Smile = llList2String(Smiles, (integer) llFrand(2.5)); addEvent(3.0 + llFrand(5.0), cmd); animBegin(llGetOwner(), Smile); + else if ("SLOWER_-" == cmd) + { + integer sp = llListFindList(AOspeeds, [getSetting("SPEED")]); + if (sp > 0) sp--; else sp = 0; + setSetting(id, "SPEED", llList2String(AOspeeds, sp), fMENU); + s("Now moving at " + llList2String(AOspeedNames, sp) + " speed."); + } + else if ("NORMAL_SPEED" == cmd) + { + setSetting(id, "SPEED", "1.0", fMENU); + s("Now moving at normal speed."); + } + else if ("FASTER_+" == cmd) + { + integer sp = llListFindList(AOspeeds, [getSetting("SPEED")]); + integer l = llGetListLength(AOspeeds) - 1; + if (sp < l) sp++; else sp = l; + setSetting(id, "SPEED", llList2String(AOspeeds, sp), fMENU); + s("Now moving at " + llList2String(AOspeedNames, sp) + " speed."); + } } else if ("LESS_-" == cmd) { @@ -651,6 +671,18 @@ integer Swimming; integer Bobbing; float Tick = 0.2; float AOspeed = 1.0; +list AOspeeds = ["0.1", "0.5", "1.0", "2.0", "5.0", "10.0", "20.0", "50.0"]; // Strings coz LSL can't find floats. +list AOspeedNames = +[ + "snail", + "slow", + "normal", + "fast", + "light", + "ridiculous", + "ludicrous", + "plaid" +]; list flyStates; list initialStates; // "Taking Off", "hover_up", list ANIMATIONS; @@ -1631,6 +1663,7 @@ checkAO() else AOspeed = 4.0; } else AOspeed = 1.0; + AOspeed = AOspeed * (float) getSetting("speed"); if (0.0 < AOspeed) speed(Owner, AOspeed + ((AOspeed / 2) * (fast + (2 * (integer) getSetting("super"))))); else AOspeed = 1.0; for (f = 0; f < l; f += pSTRIDE) diff --git a/~1AOor2.command.data.txt b/~1AOor2.command.data.txt index 80c413b..0d40b21 100644 --- a/~1AOor2.command.data.txt +++ b/~1AOor2.command.data.txt @@ -58,9 +58,15 @@ h 1AOor2.MORE_+ 31 -1AOor2.TEXTS +1AOor2.SLOWER_- -31 +9 +1AOor2.NORMAL_SPEED + +9 +1AOor2.FASTER_+ + +9 1AOor2.SAVE 9 -- cgit v1.1