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);
103 void startLongPressAction();
104 void startShortPressAction();
112 bool calcLaunchAction();
113 bool calcPressAction();
119 void endStub(
bool arg);
120 void endAction1(
bool arg);
121 void endLaunchAction(
bool arg);
124 Action m_currentAction;
125 f32 m_rotationDirection;
131 StartActionFunc m_onStart;
132 CalcActionFunc m_onCalc;
133 EndActionFunc m_onEnd;
141 f32 m_angleIncrement;
143 f32 m_multiplierDecrement;
149 static constexpr size_t MAX_ACTION =
static_cast<size_t>(Action::Max);
151 static const std::array<ActionParams, MAX_ACTION> s_actionParams;
152 static const std::array<RotationParams, 5> s_rotationParams;
154 static const std::array<StartActionFunc, MAX_ACTION> s_onStart;
155 static const std::array<CalcActionFunc, MAX_ACTION> s_onCalc;
156 static const std::array<EndActionFunc, MAX_ACTION> s_onEnd;