38 void calcVehicleSpeed();
39 bool start(Action action);
43 m_hitDepth = hitDepth;
50 [[nodiscard]]
const Flags &flags()
const {
63 f32 initialAngleIncrement;
64 f32 minAngleIncrement;
66 f32 initialMultiplierDecrement;
67 f32 slowdownThreshold;
74 typedef void (
KartAction::*EndActionFunc)(
bool arg);
76 void calcSideFromHitDepth();
77 void calcSideFromHitDepthAndTranslation();
82 void calcEndAction(
bool endArg);
86 void startLaunch(f32 extVelScalar, f32 extVelKart, f32 extVelBike, f32 numRotations,
88 void activateCrush(
u16 timer);
90 void applyStartSpeed();
91 void setRotation(
size_t idx);
101 void startLongPressAction();
102 void startShortPressAction();
111 bool calcPressAction();
117 void endStub(
bool arg);
118 void endAction1(
bool arg);
119 void endAction5(
bool arg);
122 Action m_currentAction;
123 f32 m_rotationDirection;
129 StartActionFunc m_onStart;
130 CalcActionFunc m_onCalc;
131 EndActionFunc m_onEnd;
139 f32 m_angleIncrement;
141 f32 m_multiplierDecrement;
147 static constexpr size_t MAX_ACTION =
static_cast<size_t>(Action::Max);
149 static const std::array<ActionParams, MAX_ACTION> s_actionParams;
150 static const std::array<RotationParams, 5> s_rotationParams;
152 static const std::array<StartActionFunc, MAX_ACTION> s_onStart;
153 static const std::array<CalcActionFunc, MAX_ACTION> s_onCalc;
154 static const std::array<EndActionFunc, MAX_ACTION> s_onEnd;