Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectWLWallGC.hh
1
#pragma once
2
3
#include "game/field/obj/ObjectKCL.hh"
4
5
namespace
Kinoko::Field
{
6
7
class
ObjectWLWallGC :
public
ObjectKCL {
8
public
:
9
ObjectWLWallGC(
const
System::MapdataGeoObj
¶ms);
10
~ObjectWLWallGC()
override
;
11
12
void
init()
override
;
13
void
calc()
override
;
14
16
[[nodiscard]] u32 loadFlags()
const override
{
17
return
1;
18
}
19
20
[[nodiscard]]
const
EGG::Matrix34f
&getUpdatedMatrix(u32 timeOffset)
override
;
21
23
[[nodiscard]] f32 colRadiusAdditionalLength()
const override
{
24
return
(m_initialPos - m_targetPos).length();
25
}
26
27
[[nodiscard]]
bool
checkCollision(f32 radius,
const
EGG::Vector3f
&pos,
28
const
EGG::Vector3f
&prevPos, KCLTypeMask mask,
CollisionInfo
*info,
29
KCLTypeMask *maskOut, u32 timeOffset)
override
;
30
[[nodiscard]]
bool
checkCollisionCached(f32 radius,
const
EGG::Vector3f
&pos,
31
const
EGG::Vector3f
&prevPos, KCLTypeMask mask,
CollisionInfo
*info,
32
KCLTypeMask *maskOut, u32 timeOffset)
override
;
33
34
private
:
36
[[nodiscard]] u32 cycleFrame(s32 t)
const
{
37
u32 time = t < m_startFrame ? 0 : t - m_startFrame;
38
return
time % m_cycleDuration;
39
}
40
41
s32 m_extendedDuration;
42
u32 m_moveDuration;
43
s32 m_startFrame;
44
s32 m_hiddenDuration;
45
s32 m_extendedFrame;
46
s32 m_retractingFrame;
47
s32 m_cycleDuration;
48
EGG::Vector3f
m_initialPos;
49
EGG::Vector3f
m_targetPos;
50
EGG::Matrix34f
m_currTransform;
51
};
52
53
}
// namespace Kinoko::Field
Kinoko::EGG::Matrix34f
A 3 x 4 matrix.
Definition
Matrix.hh:10
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
ObjectWLWallGC.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0