1#include "Game/Util/NerveUtil.hpp"
2#include "Game/Util.hpp"
6 return pExecutor->getNerveStep() == step;
10 return MR::isStep(pExecutor, 0);
14 return pExecutor->getNerveStep() < step;
17 bool isLessEqualStep(
const NerveExecutor *pExecutor, s32 step) {
18 return pExecutor->getNerveStep() <= step;
21 bool isGreaterStep(
const NerveExecutor *pExecutor, s32 step) {
22 return pExecutor->getNerveStep() > step;
25 bool isGreaterEqualStep(
const NerveExecutor *pExecutor, s32 step) {
26 return pExecutor->getNerveStep() >= step;
29 bool isIntervalStep(
const NerveExecutor *pExecutor, s32 step) {
30 s32 curStep = pExecutor->getNerveStep();
31 s32 ratio = curStep / step;
32 s32 mult = ratio * step;
33 return mult == curStep;
37 return pExecutor->getNerveStep() < 0;
46 rate = MR::clamp((f32)pExecutor->getNerveStep() / (f32)a2, 0.0f, 1.0f);
52 f32 calcNerveEaseInRate(
const NerveExecutor *pExecutor, s32 a2) {
58 rate = MR::clamp((f32)pExecutor->getNerveStep() / (f32)a2, 0.0f, 1.0f);
61 return MR::getEaseInValue(rate, 0.0f, 1.0f, 1.0f);
64 f32 calcNerveEaseOutRate(
const NerveExecutor *pExecutor, s32 a2) {
70 rate = MR::clamp((f32)pExecutor->getNerveStep() / (f32)a2, 0.0f, 1.0f);
73 return MR::getEaseOutValue(rate, 0.0f, 1.0f, 1.0f);
76 f32 calcNerveValue(
const NerveExecutor *pExecutor, s32 a2, f32 a3, f32 a4) {
82 rate = MR::clamp((f32)pExecutor->getNerveStep() / (f32)a2, 0.0f, 1.0f);
85 return MR::getLinerValue(rate, a3, a4, 1.0f);
88 f32 calcNerveEaseInOutValue(
const NerveExecutor *pExecutor, s32 a2, f32 a3, f32 a4) {
94 rate = MR::clamp((f32)pExecutor->getNerveStep() / (f32)a2, 0.0f, 1.0f);
97 return MR::getEaseInOutValue(rate, a3, a4, 1.0f);
100 f32 calcNerveEaseInOutValue(
const NerveExecutor *pExecutor, s32 a2, s32 a3, f32 a4, f32 a5) {
101 f32 norm = MR::normalize(pExecutor->getNerveStep(), a2, a3);
102 f32 clamp = MR::clamp(norm, 0.0f, 1.0f);
103 return MR::getEaseInOutValue(clamp, a4, a5, 1.0f);
107 if (step == pExecutor->getNerveStep()) {
108 pExecutor->setNerve(pNerve);
Used for executing states of a LiveActor.