Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectBird.hh
1
#pragma once
2
3
#include "game/field/obj/ObjectCollidable.hh"
4
5
#include "game/system/RaceManager.hh"
6
7
namespace
Kinoko::Field
{
8
9
class
ObjectBirdLeader
;
10
class
ObjectBirdFollower
;
11
15
class
ObjectBird final :
public
ObjectCollidable {
16
public
:
17
ObjectBird(
const
System::MapdataGeoObj
¶ms);
18
~ObjectBird()
override
;
19
20
void
calc()
override
;
21
23
[[nodiscard]] u32 loadFlags()
const override
{
24
return
1;
25
}
26
28
void
loadGraphics()
override
{}
29
31
void
createCollision()
override
{}
32
34
void
loadRail
()
override
{}
35
36
[[nodiscard]]
const
ObjectBirdLeader
*leader()
const
{
37
return
m_leader;
38
}
39
40
[[nodiscard]]
const
auto
&followers()
const
{
41
return
m_followers;
42
}
43
44
protected
:
45
ObjectBirdLeader *m_leader;
46
owning_span<ObjectBirdFollower *> m_followers;
47
};
48
50
class
ObjectBirdLeader :
public
ObjectCollidable {
51
public
:
52
ObjectBirdLeader(
const
System::MapdataGeoObj
¶ms,
ObjectBird
*bird);
53
~ObjectBirdLeader()
override
;
54
55
void
init()
override
;
56
void
calc()
override
;
57
59
[[nodiscard]] u32 loadFlags()
const override
{
60
return
1;
61
}
62
63
void
loadAnims()
override
;
64
66
void
createCollision
()
override
{}
67
68
protected
:
69
ObjectBird
*m_bird;
70
};
71
77
class
ObjectBirdFollower final :
public
ObjectBirdLeader {
78
public
:
79
ObjectBirdFollower(
const
System::MapdataGeoObj
¶ms,
ObjectBird
*bird, u32 idx);
80
~ObjectBirdFollower()
override
;
81
82
void
init()
override
;
83
void
calc()
override
;
84
85
private
:
86
void
calcPos();
87
88
const
u32 m_idx;
89
EGG::Vector3f
m_velocity;
90
f32 m_baseSpeed;
91
};
92
93
}
// namespace Kinoko::Field
Kinoko::Field::ObjectBirdFollower
Represents all but one of the birds in an @ObjectBird group.
Definition
ObjectBird.hh:77
Kinoko::Field::ObjectBirdLeader
The main bird within an ObjectBird. Other birds follow this leader.
Definition
ObjectBird.hh:50
Kinoko::Field::ObjectBirdLeader::createCollision
void createCollision() override
Not overridden in the base game, but collision mode 0 will cause our assert to fail.
Definition
ObjectBird.hh:66
Kinoko::Field::ObjectBird
Represents a group of birds.
Definition
ObjectBird.hh:15
Kinoko::Field::ObjectBird::loadRail
void loadRail() override
@ADDR{0X8077CCE0}
Definition
ObjectBird.hh:34
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
ObjectBird.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0