A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectFireSnakeV.hh
1#pragma once
2
3#include "game/field/obj/ObjectFireSnake.hh"
4
5namespace Field {
6
7class ObjectFireSnakeV final : public ObjectFireSnake {
8public:
10 ~ObjectFireSnakeV() override;
11
12 void init() override;
13 void calc() override;
14
15private:
16 void calcSub();
17
19 void enterDespawned() {
20 ObjectFireSnake::enterDespawned();
21 }
22
23 void enterFalling();
24
26 void enterHighBounce() {}
27
28 void enterRest() {
29 ObjectFireSnake::enterRest();
30 }
31
32 void enterBounce() {
33 ObjectFireSnake::enterBounce();
34 }
35
36 void enterDespawning() {
37 ObjectFireSnake::enterDespawning();
38 }
39
41 void calcDespawned() {}
42
43 void calcFalling();
44 void calcHighBounce();
45
46 void calcRest() {
47 ObjectFireSnake::calcRest();
48 }
49
50 void calcBounce() {
51 ObjectFireSnake::calcBounce();
52 }
53
54 void calcDespawning() {
55 ObjectFireSnake::calcDespawning();
56 }
57
58 static constexpr std::array<StateManagerEntry, 6> STATE_ENTRIES = {{
59 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterDespawned,
60 &ObjectFireSnakeV::calcDespawned>(0)},
61 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterFalling,
62 &ObjectFireSnakeV::calcFalling>(1)},
63 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterHighBounce,
64 &ObjectFireSnakeV::calcHighBounce>(2)},
65 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterRest,
66 &ObjectFireSnakeV::calcRest>(3)},
67 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterBounce,
68 &ObjectFireSnakeV::calcBounce>(4)},
69 {StateEntry<ObjectFireSnakeV, &ObjectFireSnakeV::enterDespawning,
70 &ObjectFireSnakeV::calcDespawning>(5)},
71 }};
72
73 const u16 m_cycleDuration;
74 const f32 m_distFromPipe;
75 f32 m_fallSpeed;
76
77 static constexpr f32 RADIUS = 130.0f;
78 static constexpr f32 GRAVITY = 3.0f;
79
81 static constexpr u32 COL_CHECK_DELAY_FRAMES = 10;
82};
83
84} // namespace Field
static constexpr u32 COL_CHECK_DELAY_FRAMES
How many frames the snake falls before starting to check against floor collision.
Pertains to collision.