Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectRock.hh
1
#pragma once
2
3
#include "game/field/obj/ObjectCollidable.hh"
4
5
namespace
Kinoko::Field
{
6
8
class
ObjectRock
:
public
ObjectCollidable {
9
public
:
10
ObjectRock
(
const
System::MapdataGeoObj
¶ms);
11
~ObjectRock
()
override
;
12
13
void
init()
override
;
14
void
calc()
override
;
15
17
[[nodiscard]] u32 loadFlags()
const override
{
18
return
1;
19
}
20
22
[[nodiscard]]
const
EGG::Vector3f
&getCollisionTranslation()
const override
{
23
return
m_colTranslate;
24
}
25
26
[[nodiscard]] Kart::Reaction onCollision(
Kart::KartObject
*kartObj,
27
Kart::Reaction reactionOnKart, Kart::Reaction reactionOnObj,
28
EGG::Vector3f
&hitDepth)
override
;
29
30
private
:
31
enum class
State {
32
Tangible = 0,
33
Intangible
= 1,
34
};
35
36
void
calcTangible();
37
void
calcIntangible();
38
void
calcTangibleSub();
39
40
void
checkSphereFull();
41
void
breakRock();
42
43
State m_state;
44
f32 m_startYPos;
45
EGG::Vector3f
m_colTranslate;
46
f32 m_angSpd;
47
int
m_cooldownTimer;
48
f32 m_angRad;
49
50
static
constexpr
f32 INITIAL_ANGULAR_SPEED = 3.0f;
51
};
52
53
}
// namespace Kinoko::Field
Kinoko::Field::ObjectRock::ObjectRock
ObjectRock(const System::MapdataGeoObj ¶ms)
@addr {0x8076F2E0}
Definition
ObjectRock.cc:10
Kinoko::Kart::KartObject
The highest level abstraction for a kart.
Definition
KartObject.hh:11
Kinoko::System::MapdataGeoObj
Definition
MapdataGeoObj.hh:9
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
Kinoko::Field::eBoxColFlag::Intangible
@ Intangible
Ignore collision with the unit.
Definition
BoxColManager.hh:33
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
game
field
obj
ObjectRock.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0