SHOW:
|
|
- or go back to the newest paste.
| 1 | - | function fixed clampFixed (fixed number, fixed min, fixed max) {
|
| 1 | + | function int clamp (int x, int min, int max) {
|
| 2 | - | fixed realMin = min; |
| 2 | + | int realMin = min; |
| 3 | - | fixed realMax = max; |
| 3 | + | int realMax = max; |
| 4 | ||
| 5 | if (min > max) {
| |
| 6 | realMax = min; | |
| 7 | realMin = max; | |
| 8 | } | |
| 9 | ||
| 10 | - | if (number > realMax) |
| 10 | + | if (x > realMax) |
| 11 | return realMax; | |
| 12 | - | else if (number < realMin) |
| 12 | + | else if (x < realMin) |
| 13 | return realMin; | |
| 14 | else | |
| 15 | - | return number; |
| 15 | + | return x; |
| 16 | } | |
| 17 | ||
| 18 | - | script "S7_RecoilPitch" (fixed pitch) { // Called like this in code: AMGG BC 1 acs_namedExecuteAlways ("S7_RecoilPitch", 0, 0.5 * 65535)
|
| 18 | + | function int scaleValue (int x, int fromMin, int fromMax, int toMin, int toMax) {
|
| 19 | return (x - fromMin) * (toMax - toMin) / (fromMax - fromMin) + toMin; | |
| 20 | - | fixed newPitch = clampFixed (oldPitch - pitch, -25.0, 25.0); |
| 20 | + | |
| 21 | ||
| 22 | function fixed scaleValueFixed (fixed x, fixed fromMin, fixed fromMax, fixed toMin, fixed toMax) {
| |
| 23 | return fixedDiv (fixedMul (x - fromMin, toMax - toMin), fromMax - fromMin) + toMin; | |
| 24 | } | |
| 25 | ||
| 26 | script "S7_RecoilPitch" (fixed offset) { // Called like this in code: TNT1 A 0 acs_namedExecuteAlways ("S7_RecoilPitch", 0, 0.5 * 65535)
| |
| 27 | fixed oldPitch = getActorPitch (0); | |
| 28 | fixed scaledoffset = scaleValueFixed (offset, -90.0, 90.0, -0.25, 0.25); | |
| 29 | fixed newPitch = clamp (oldPitch - scaledoffset, -0.25, 0.25); | |
| 30 | ||
| 31 | setActorPitch (0, newPitch); | |
| 32 | } |