Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectBasabasa.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
ObjectBasabasaDummy final :
public
ObjectCollidable,
public
StateManager {
10
public
:
11
ObjectBasabasaDummy(
const
System::MapdataGeoObj
¶ms);
12
~ObjectBasabasaDummy()
override
;
13
14
void
init()
override
;
15
17
void
calc()
override
{
18
StateManager::calc();
19
}
20
22
[[nodiscard]] u32 loadFlags()
const override
{
23
return
3;
24
}
25
27
[[nodiscard]]
virtual
const
char
*getKclName()
const override
{
28
return
"basabasa"
;
29
}
30
31
Kart::Reaction onCollision(
Kart::KartObject
*kartObj, Kart::Reaction reactionOnKart,
32
Kart::Reaction reactionOnObj,
EGG::Vector3f
&hitDepth)
override
;
33
34
void
setActive(
bool
isSet) {
35
m_active
= isSet;
36
}
37
38
[[nodiscard]]
bool
active()
const
{
39
return
m_active
;
40
}
41
42
private
:
44
void
enterState0() {}
45
48
void
enterState1
() {}
49
50
void
calcState0();
51
54
void
calcState1
() {}
55
56
const
bool
m_bigBump
;
57
EGG::Vector3f
m_initialPos
;
58
bool
m_active
;
59
60
static
constexpr
std::array<StateManagerEntry, 2> STATE_ENTRIES = {{
61
{StateEntry<ObjectBasabasaDummy, &ObjectBasabasaDummy::enterState0,
62
&ObjectBasabasaDummy::calcState0>(0)},
63
{StateEntry<ObjectBasabasaDummy, &
ObjectBasabasaDummy::enterState1
,
64
&
ObjectBasabasaDummy::calcState1
>(1)},
65
}};
66
};
67
71
class
ObjectBasabasa final :
public
ObjectCollidable {
72
friend
class
Host::Context
;
73
74
public
:
75
ObjectBasabasa(
const
System::MapdataGeoObj
¶ms);
76
~ObjectBasabasa()
override
;
77
78
void
init()
override
;
79
void
calc()
override
;
80
82
[[nodiscard]] u32 loadFlags()
const override
{
83
return
3;
84
}
85
87
void
createCollision()
override
{}
88
90
void
loadRail()
override
{}
91
92
[[nodiscard]]
static
f32 initialXRange() {
93
return
s_initialXRange;
94
}
95
96
[[nodiscard]]
static
f32 initialYRange() {
97
return
s_initialYRange;
98
}
99
100
private
:
101
owning_span<ObjectBasabasaDummy *>
m_bats
;
102
const
u32
m_initialTimer
;
103
const
u32
m_batsPerGroup
;
104
const
u32
m_startFrame
;
105
const
u32
m_batSpacing
;
106
u32
m_cycleTimer
;
107
u32
m_batsActive
;
108
109
static
f32 s_initialXRange;
110
static
f32 s_initialYRange;
111
};
112
113
}
// namespace Kinoko::Field
Kinoko::Field::ObjectBasabasaDummy::enterState1
void enterState1()
This is run when a bat is hit with a start or other item. We can ignore for Kinoko.
Definition
ObjectBasabasa.hh:48
Kinoko::Field::ObjectBasabasaDummy::m_active
bool m_active
Whether or not this bat is currently spawned.
Definition
ObjectBasabasa.hh:58
Kinoko::Field::ObjectBasabasaDummy::calcState1
void calcState1()
This is run when a bat is hit with a start or other item. We can ignore for Kinoko.
Definition
ObjectBasabasa.hh:54
Kinoko::Field::ObjectBasabasaDummy::m_bigBump
const bool m_bigBump
Affects the severity of the "push" when colliding with bat.
Definition
ObjectBasabasa.hh:56
Kinoko::Field::ObjectBasabasaDummy::m_initialPos
EGG::Vector3f m_initialPos
RNG-based starting position for the bat.
Definition
ObjectBasabasa.hh:57
Kinoko::Field::ObjectBasabasa::m_initialTimer
const u32 m_initialTimer
The m_cycleTimer starts and resets to this value.
Definition
ObjectBasabasa.hh:102
Kinoko::Field::ObjectBasabasa::m_bats
owning_span< ObjectBasabasaDummy * > m_bats
The array of individual bats.
Definition
ObjectBasabasa.hh:101
Kinoko::Field::ObjectBasabasa::m_startFrame
const u32 m_startFrame
Initial delay before the spawner will start calculating.
Definition
ObjectBasabasa.hh:104
Kinoko::Field::ObjectBasabasa::m_cycleTimer
u32 m_cycleTimer
Used to determine when to spawn next bat.
Definition
ObjectBasabasa.hh:106
Kinoko::Field::ObjectBasabasa::m_batSpacing
const u32 m_batSpacing
How many frames in between bat spawns.
Definition
ObjectBasabasa.hh:105
Kinoko::Field::ObjectBasabasa::m_batsActive
u32 m_batsActive
The number of bats currently spawned.
Definition
ObjectBasabasa.hh:107
Kinoko::Field::ObjectBasabasa::m_batsPerGroup
const u32 m_batsPerGroup
Number of bats that will spawn before resetting the m_cycleTimer.
Definition
ObjectBasabasa.hh:103
Kinoko::Host::Context
Contexts can be used to restore a previous memory state for the current session.
Definition
Context.hh:71
Kinoko::Kart::KartObject
The highest level abstraction for a kart.
Definition
KartObject.hh:11
Kinoko::System::MapdataGeoObj
Definition
MapdataGeoObj.hh:9
Kinoko::owning_span
A contiguous storage container that manages the lifecycle of a buffer of a given size.
Definition
Types.hh:31
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
game
field
obj
ObjectBasabasa.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0