Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectHeyho.hh
1
#pragma once
2
3
#include "game/field/StateManager.hh"
4
#include "game/field/obj/ObjectCollidable.hh"
5
6
namespace
Kinoko::Field
{
7
9
class
ObjectHeyho :
public
ObjectCollidable,
public
StateManager {
10
public
:
11
ObjectHeyho(
const
System::MapdataGeoObj
¶ms);
12
~ObjectHeyho()
override
;
13
14
void
init()
override
;
15
void
calc()
override
;
16
void
loadAnims()
override
;
17
void
calcCollisionTransform()
override
;
18
20
[[nodiscard]] u32 loadFlags()
const override
{
21
return
3;
22
}
23
24
private
:
25
enum class
Animation {
26
Move = 1,
27
Jump = 2,
28
Jumped = 3,
29
};
30
31
void
changeAnimation(Animation anim) {
32
m_drawMdl->anmMgr()->playAnim(0.0f, 1.0f,
static_cast<
size_t
>
(anim));
33
m_currentAnim = anim;
34
}
35
36
// State methods
37
39
void
enterMove() {}
40
42
void
enterJump() {
43
m_spinFrame = 0;
44
}
45
46
void
calcMove();
47
void
calcJump();
48
49
void
calcStateTransition();
50
void
calcMotion();
51
void
calcInterp();
52
53
const
s32 m_color;
54
f32 m_apex;
55
EGG::Vector3f
m_midpoint;
56
EGG::Vector3f
m_transformOffset;
57
f32 m_currentVel;
58
f32 m_accel;
59
f32 m_maxVelSq;
60
EGG::Vector3f
m_up;
61
EGG::Vector3f
m_forward;
62
EGG::Vector3f
m_floorNrm;
63
bool
m_floorCollision;
64
Animation m_currentAnim;
65
bool
m_freeFall;
66
f32 m_launchVel;
67
s16 m_spinFrame;
68
69
static
constexpr
std::array<StateManagerEntry, 2> STATE_ENTRIES = {{
70
{StateEntry<ObjectHeyho, &ObjectHeyho::enterMove, &ObjectHeyho::calcMove>(0)},
71
{StateEntry<ObjectHeyho, &ObjectHeyho::enterJump, &ObjectHeyho::calcJump>(1)},
72
}};
73
74
static
constexpr
EGG::Vector3f
COLLISION_OFFSET =
EGG::Vector3f
(0.0f, 10.0f, 0.0f);
75
static
constexpr
f32 COLLISION_RADIUS = 100.0f;
76
};
77
78
}
// namespace Kinoko::Field
Kinoko::System::MapdataGeoObj
Definition
MapdataGeoObj.hh:9
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
game
field
obj
ObjectHeyho.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0