41 void calcVehicleSpeed();
42 bool start(Action action);
46 m_hitDepth = hitDepth;
53 [[nodiscard]]
const Flags &flags()
const {
66 f32 initialAngleIncrement;
67 f32 minAngleIncrement;
69 f32 initialMultiplierDecrement;
70 f32 slowdownThreshold;
77 typedef void (
KartAction::*EndActionFunc)(
bool arg);
79 void calcSideFromHitDepth();
80 void calcSideFromHitDepthAndTranslation();
85 void calcEndAction(
bool endArg);
89 void startLaunch(f32 extVelScalar, f32 extVelKart, f32 extVelBike, f32 numRotations,
91 void activateCrush(
u16 timer);
93 void applyStartSpeed();
94 void setRotation(
size_t idx);
106 void startLargeFlipAction();
108 void startLongPressAction();
109 void startShortPressAction();
110 void startSpinShrinkAction();
118 bool calcLaunchAction();
120 bool calcLargeFlipAction();
121 bool calcPressAction();
127 void endStub(
bool arg);
128 void endAction1(
bool arg);
129 void endLaunchAction(
bool arg);
132 Action m_currentAction;
133 f32 m_rotationDirection;
143 s32 m_groundStartLaunchTimer;
145 StartActionFunc m_onStart;
146 CalcActionFunc m_onCalc;
147 EndActionFunc m_onEnd;
155 f32 m_angleIncrement;
157 f32 m_multiplierDecrement;
161 u16 m_framesFlipping;
164 static constexpr size_t MAX_ACTION =
static_cast<size_t>(Action::Max);
166 static const std::array<ActionParams, MAX_ACTION> s_actionParams;
167 static const std::array<RotationParams, 5> s_rotationParams;
169 static const std::array<StartActionFunc, MAX_ACTION> s_onStart;
170 static const std::array<CalcActionFunc, MAX_ACTION> s_onCalc;
171 static const std::array<EndActionFunc, MAX_ACTION> s_onEnd;