1#include <game/sLib/s_lib.hpp>
3float sLib::addCalc(
float *value,
float target,
float smoothing,
float maxStep,
float minStep) {
4 if (*value != target) {
5 float dist = target - *value;
6 float step = smoothing * dist;
8 if (step >= minStep || step <= -minStep) {
12 if (step < -maxStep) {
18 }
else if (step > 0.0f) {
21 if (*value > target) {
27 if (step > -minStep) {
29 if (*value < target) {
37 float dist = target - *value;
38 return (dist > 0.0f) ? dist : -dist;
43 T dist = target - *value;
44 if (*value != target) {
45 T step = dist / smoothing;
47 if (step > minStep || step < -minStep) {
51 else if (step < -maxStep) {
57 }
else if (dist >= 0) {
59 dist = target - *value;
66 dist = target - *value;
73 return target - *value;
82 T dist = target - *value;
83 T step = dist / smoothing;
87 }
else if (step < -maxStep) {
100 if (*value == target) {
105 if (*value > target) {
110 if (step * (*value - target) >= 0) {
136 if (*value == target) {
141 s16 dist = *value - target;
147 dist = *value - target;
149 if (step * dist >= 0) {
159 if (*value == target) {
164 s16 increment = step;
168 step = (step == 0x8000) ? 0x7fff : (s16)-step;
172 s16 dist = *value - target;
181 if (increment * step > 0) {
182 s16 dist = *value - target;
183 if (increment * dist >= 0) {
T addCalcAngleT(T *value, T target, T smoothing, T maxStep, T minStep)
Smoothly moves value towards target using proportional scaling.
BOOL chaseT(T *value, T target, T step)
Moves value towards target by a fixed step amount.
float addCalc(float *value, float target, float smoothing, float maxStep, float minStep)
Smoothly moves value towards target using proportional scaling.
s16 addCalcAngle(s16 *value, s16 target, s16 smoothing, s16 maxStep, s16 minStep)
Smoothly moves value towards target using proportional scaling.
BOOL chaseAngleByRotDir(s16 *value, s16 target, s16 step)
Moves value towards target by a fixed step amount.
BOOL chaseAngle(s16 *value, s16 target, s16 step)
Moves value towards target by a fixed step amount.
BOOL chase(s16 *value, s16 target, s16 step)
Moves value towards target by a fixed step amount.