Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectBulldozer.hh
1
#pragma once
2
3
#include "game/field/obj/ObjectKCL.hh"
4
5
namespace
Kinoko::Field
{
6
9
class
ObjectBulldozer final :
public
ObjectKCL {
10
public
:
11
ObjectBulldozer(
const
System::MapdataGeoObj
¶ms);
12
~ObjectBulldozer()
override
;
13
14
void
calc()
override
;
15
17
[[nodiscard]] u32 loadFlags()
const override
{
18
return
1;
19
}
20
22
[[nodiscard]] f32 colRadiusAdditionalLength()
const override
{
23
return
static_cast<
f32
>
(m_amplitude);
24
}
25
26
void
initCollision()
override
;
27
28
[[nodiscard]]
const
EGG::Matrix34f
&getUpdatedMatrix(u32 timeOffset)
override
;
29
30
[[nodiscard]]
bool
checkCollision(f32 radius,
const
EGG::Vector3f
&pos,
31
const
EGG::Vector3f
&prevPos, KCLTypeMask mask,
CollisionInfo
*info,
32
KCLTypeMask *maskOut, u32 timeOffset)
override
;
33
[[nodiscard]]
bool
checkCollisionCached(f32 radius,
const
EGG::Vector3f
&pos,
34
const
EGG::Vector3f
&prevPos, KCLTypeMask mask,
CollisionInfo
*info,
35
KCLTypeMask *maskOut, u32 timeOffset)
override
;
36
37
[[nodiscard]] f32 calcStateAndPosition(u32 timeOffset)
const
;
38
39
const
EGG::Vector3f
m_initialPos;
40
const
EGG::Vector3f
m_initialRot;
41
u16 m_timeOffset;
42
u16 m_periodDenom;
43
u16
m_restFrames
;
44
u16
m_fullPeriod
;
45
u16 m_amplitude;
46
bool
m_left
;
47
f32 m_period;
48
u16 m_halfPeriod;
49
EGG::Matrix34f
m_rtMat
;
50
};
51
52
}
// namespace Kinoko::Field
Kinoko::EGG::Matrix34f
A 3 x 4 matrix.
Definition
Matrix.hh:10
Kinoko::Field::ObjectBulldozer::m_left
bool m_left
Flips the sin wave direction.
Definition
ObjectBulldozer.hh:46
Kinoko::Field::ObjectBulldozer::m_restFrames
u16 m_restFrames
How long bulldozers stop moving for.
Definition
ObjectBulldozer.hh:43
Kinoko::Field::ObjectBulldozer::m_rtMat
EGG::Matrix34f m_rtMat
Exists solely so getUpdatedMatrix can return a reference.
Definition
ObjectBulldozer.hh:49
Kinoko::Field::ObjectBulldozer::m_fullPeriod
u16 m_fullPeriod
m_periodDenom + 2 * m_restFrames
Definition
ObjectBulldozer.hh:44
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
Kinoko::Field::CollisionInfo
Definition
KColData.hh:23
game
field
obj
ObjectBulldozer.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0