39 [[nodiscard]]
u32 loadFlags()
const override {
46 void enterDespawned();
48 void enterHighBounce();
51 void enterDespawning() {}
53 void calcDespawned() {}
55 void calcHighBounce();
58 void calcDespawning() {}
62 void calcBounce(f32 initialVel);
64 bool isCollisionEnabled()
const {
65 return m_currentStateId == 2 || m_currentStateId == 3 || m_currentStateId == 4;
68 std::array<ObjectFireSnakeKid *, 2> m_kids;
82 static constexpr std::array<StateManagerEntry<ObjectFireSnake>, 6> STATE_ENTRIES = {{
83 {0, &ObjectFireSnake::enterDespawned, &ObjectFireSnake::calcDespawned},
84 {1, &ObjectFireSnake::enterFalling, &ObjectFireSnake::calcFalling},
85 {2, &ObjectFireSnake::enterHighBounce, &ObjectFireSnake::calcHighBounce},
86 {3, &ObjectFireSnake::enterRest, &ObjectFireSnake::calcRest},
87 {4, &ObjectFireSnake::enterBounce, &ObjectFireSnake::calcBounce},
88 {5, &ObjectFireSnake::enterDespawning, &ObjectFireSnake::calcDespawning},
91 static constexpr f32 GRAVITY = 3.0f;