Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
KartSub.hh
1
#pragma once
2
3
#include "game/kart/KartMove.hh"
4
5
namespace
Kinoko::Kart
{
6
7
class
KartObject
;
8
11
class
KartSub : KartObjectProxy {
12
public
:
13
KartSub();
14
~KartSub();
15
16
void
createSubsystems(
bool
isBike,
const
KartParam::Stats
&stats);
17
void
copyPointers
(
KartAccessor
&pointers);
18
19
void
init();
20
void
initAABB(
KartAccessor
&accessor, KartObject *
object
);
21
void
initPhysicsValues();
22
void
resetPhysics();
23
24
void
calcPass0
();
25
void
calcPass1
();
26
void
resizeAABB(f32 radiusScale);
27
void
addFloor(
const
CollisionData
&,
bool
);
28
void
updateSuspOvertravel(
const
EGG::Vector3f
&suspOvertravel);
29
void
tryEndHWG();
30
void
calcMovingObj();
31
void
calcMovingWater();
32
34
[[nodiscard]] f32 someScale() {
35
return
m_someScale;
36
}
38
39
private
:
40
KartMove
*m_move;
41
KartAction
*m_action;
42
KartCollide
*m_collide;
43
KartState
*m_state;
44
EGG::Vector3f
m_maxSuspOvertravel;
45
EGG::Vector3f
m_minSuspOvertravel;
46
u16 m_floorCollisionCount;
47
u16 m_movingObjCollisionCount;
48
u16 m_movingWaterCollisionCount;
49
EGG::Vector3f
m_objVel;
50
s16
m_sideCollisionTimer
;
51
f32
m_colPerpendicularity
;
52
f32 m_someScale;
53
54
static
constexpr
f32
DT
= 1.0f;
55
};
56
57
}
// namespace Kinoko::Kart
Kinoko::Kart::KartAction
Definition
KartAction.hh:26
Kinoko::Kart::KartCollide
Manages body+wheel collision and its influence on position/velocity/etc.
Definition
KartCollide.hh:49
Kinoko::Kart::KartMove
Responsible for reacting to player inputs and moving the kart.
Definition
KartMove.hh:19
Kinoko::Kart::KartObject
The highest level abstraction for a kart.
Definition
KartObject.hh:11
Kinoko::Kart::KartState
Houses various flags and other variables to preserve the kart's state.
Definition
KartState.hh:13
Kinoko::Kart::KartSub::calcPass0
void calcPass0()
The first phase of physics computations on each frame.
Definition
KartSub.cc:102
Kinoko::Kart::KartSub::m_sideCollisionTimer
s16 m_sideCollisionTimer
Number of frames to apply movement from wall collision.
Definition
KartSub.hh:50
Kinoko::Kart::KartSub::copyPointers
void copyPointers(KartAccessor &pointers)
Called during static construction of KartObject to synchronize the pointers.
Definition
KartSub.cc:43
Kinoko::Kart::KartSub::m_colPerpendicularity
f32 m_colPerpendicularity
Dot product between floor and colliding wall normals.
Definition
KartSub.hh:51
Kinoko::Kart::KartSub::calcPass1
void calcPass1()
The second phase of physics computations on each frame.Handles the second-half of physics calculation...
Definition
KartSub.cc:176
Kinoko::Kart::KartSub::DT
static constexpr f32 DT
Delta time.
Definition
KartSub.hh:54
Kinoko::Kart
Pertains to kart-related functionality.
Definition
BoxColManager.hh:14
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
Kinoko::Kart::CollisionData
Information about the current collision and its properties.
Definition
CollisionGroup.hh:17
Kinoko::Kart::KartAccessor
Shared between classes who inherit KartObjectProxy so they can access one another.
Definition
KartObjectProxy.hh:53
Kinoko::Kart::KartParam::Stats
Various character/vehicle-related handling and speed stats.
Definition
KartParam.hh:79
game
kart
KartSub.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0