Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectWoodboxW.cc
1
#include "ObjectWoodboxW.hh"
2
3
#include "game/field/obj/ObjectWoodboxWSub.hh"
4
5
namespace
Kinoko::Field
{
6
8
ObjectWoodboxW::ObjectWoodboxW(
const
System::MapdataGeoObj ¶ms) :
ObjectCollidable
(params) {
9
constexpr
u16 DEFAULT_BOX_COUNT = 5;
10
11
ObjectCollidable::init();
12
13
u16 boxCount = params.setting(6);
14
15
if
(boxCount == 0) {
16
boxCount = DEFAULT_BOX_COUNT;
17
}
18
19
m_boxes = owning_span<ObjectWoodboxWSub *>(boxCount);
20
21
for
(
auto
*&box : m_boxes) {
22
box = EGG::egg_new<ObjectWoodboxWSub>(params);
23
box->load();
24
}
25
}
26
28
ObjectWoodboxW::~ObjectWoodboxW() =
default
;
29
31
void
ObjectWoodboxW::init() {
32
ASSERT(m_mapObj);
33
u32 frames = m_mapObj->setting(4);
34
if
(frames == 0) {
35
frames = m_mapObj->setting(5);
36
}
37
38
m_framesUntilSpawn = frames;
39
m_nextBoxIdx = 0;
40
}
41
43
void
ObjectWoodboxW::calc() {
44
if
(--m_framesUntilSpawn >= 1) {
45
return
;
46
}
47
48
ASSERT(m_mapObj);
49
m_framesUntilSpawn = m_mapObj->setting(5);
50
m_boxes[m_nextBoxIdx]->enableCollision();
51
m_nextBoxIdx = (m_nextBoxIdx + 1) % m_boxes.size();
52
}
53
54
}
// namespace Kinoko::Field
Kinoko::Field::ObjectCollidable
Definition
ObjectCollidable.hh:18
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
game
field
obj
ObjectWoodboxW.cc
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0