17 [[nodiscard]] u32 loadFlags()
const override {
22 [[nodiscard]]
const char *getResources()
const override {
27 [[nodiscard]]
const char *getKclName()
const override {
28 return "FlamePoleEff";
33 void enterBeforeErupting() {
38 void enterErupting() {
44 void enterErupted() {}
47 void enterLowering() {
48 m_loweringStartOffsetY = m_currOffsetY;
58 void calcBeforeErupting() {
79 if (m_currentFrame >=
static_cast<u32
>(m_dormantFrames)) {
87 f32 doublePeak = 2.0f * maxHeight;
88 initVel = doublePeak / t;
89 accel = initVel * initVel / doublePeak;
92 const u32 m_initDelay;
93 const s32 m_cycleDuration;
94 const s32 m_dormantFrames;
95 const f32 m_scaleFactor;
99 f32 m_initEruptingVel;
103 f32 m_loweringStartOffsetY;
109 static constexpr std::array<StateManagerEntry, 5> STATE_ENTRIES = {{
111 &ObjectFlamePoleV::calcBeforeErupting>(0)},
113 &ObjectFlamePoleV::calcErupting>(1)},
115 &ObjectFlamePoleV::calcErupted>(2)},
117 &ObjectFlamePoleV::calcLowering>(3)},
119 &ObjectFlamePoleV::calcDormant>(4)},