A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kinoko::Field::JugemUnit Class Reference

#include <JugemUnit.hh>

Description

Represents a single Lakitu and houses some state management members.

Definition at line 112 of file JugemUnit.hh.

Inheritance diagram for Kinoko::Field::JugemUnit:

Public Member Functions

 JugemUnit (const Kart::KartObject *kartObj)
 
void createSwitchRace ()
 
void init ()
 
void calc ()
 

Private Types

enum class  State {
  Away = 0 ,
  Descending = 1 ,
  Stay = 2 ,
  Ascending = 3
}
 

Private Member Functions

void enterIdle ()
 
void enterReverse ()
 
void calcIdle ()
 
void calcReverse ()
 
void calcSwitches ()
 
void setPosFromTransform (const EGG::Matrix34f &mat)
 
EGG::Vector3f transformLocalToWorldUpright (const EGG::Vector3f &v) const
 
void calcCollision ()
 

Static Private Member Functions

static EGG::Vector3f Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1)
 

Private Attributes

const Kart::KartObjectm_kartObj
 
EGG::Vector3f m_pos
 
State m_state
 
u32 m_ascendTimer
 How long Lakitu has been disappearing/ascending for.
 
JugemSwitchm_switchReverse
 
JugemMovem_move
 
JugemInterpm_interp
 

Static Private Attributes

static constexpr std::array< StateManagerEntry, 2 > STATE_ENTRIES
 

Additional Inherited Members

- Protected Member Functions inherited from Kinoko::Field::StateManager
 StateManager (void *obj, const std::span< const StateManagerEntry > &entries)
 
void calc ()
 
- Protected Attributes inherited from Kinoko::Field::StateManager
u16 m_currentStateId
 
s32 m_nextStateId
 
u32 m_currentFrame
 
std::span< u16m_entryIds
 
std::span< const StateManagerEntrym_entries
 
void * m_obj
 

Member Enumeration Documentation

◆ State

enum class Kinoko::Field::JugemUnit::State
strongprivate

Definition at line 131 of file JugemUnit.hh.

Constructor & Destructor Documentation

◆ JugemUnit()

Kinoko::Field::JugemUnit::JugemUnit ( const Kart::KartObject * kartObj)
0x80721514

Definition at line 13 of file JugemUnit.cc.

◆ ~JugemUnit()

Kinoko::Field::JugemUnit::~JugemUnit ( )
0x80721D2C

Definition at line 20 of file JugemUnit.cc.

Member Function Documentation

◆ calc()

void Kinoko::Field::JugemUnit::calc ( )
0x807221C4

Definition at line 27 of file JugemUnit.cc.

◆ calcCollision()

void Kinoko::Field::JugemUnit::calcCollision ( )
private0x807232E4

Definition at line 151 of file JugemUnit.cc.

◆ calcIdle()

void Kinoko::Field::JugemUnit::calcIdle ( )
inlineprivate0x807234A4

Definition at line 147 of file JugemUnit.hh.

◆ calcReverse()

void Kinoko::Field::JugemUnit::calcReverse ( )
private0x80724880

Definition at line 53 of file JugemUnit.cc.

◆ calcSwitches()

void Kinoko::Field::JugemUnit::calcSwitches ( )
inlineprivate0x80722ED8

Definition at line 156 of file JugemUnit.hh.

◆ createSwitchRace()

void Kinoko::Field::JugemUnit::createSwitchRace ( )
inline0x80721EC0

Definition at line 118 of file JugemUnit.hh.

◆ enterIdle()

void Kinoko::Field::JugemUnit::enterIdle ( )
inlineprivate0x80723458

Definition at line 139 of file JugemUnit.hh.

◆ enterReverse()

void Kinoko::Field::JugemUnit::enterReverse ( )
private0x80724794

Definition at line 40 of file JugemUnit.cc.

◆ init()

void Kinoko::Field::JugemUnit::init ( )
inline0x80722100

Definition at line 123 of file JugemUnit.hh.

◆ Interpolate()

static EGG::Vector3f Kinoko::Field::JugemUnit::Interpolate ( f32 t,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1 )
inlinestaticnodiscardprivate

Definition at line 179 of file JugemUnit.hh.

◆ setPosFromTransform()

void Kinoko::Field::JugemUnit::setPosFromTransform ( const EGG::Matrix34f & mat)
inlineprivate0x80722F6C

Definition at line 163 of file JugemUnit.hh.

◆ transformLocalToWorldUpright()

EGG::Vector3f Kinoko::Field::JugemUnit::transformLocalToWorldUpright ( const EGG::Vector3f & v) const
nodiscardprivate0x807230D4

Definition at line 122 of file JugemUnit.cc.

Member Data Documentation

◆ m_ascendTimer

u32 Kinoko::Field::JugemUnit::m_ascendTimer
private

How long Lakitu has been disappearing/ascending for.

Definition at line 174 of file JugemUnit.hh.

◆ m_interp

JugemInterp* Kinoko::Field::JugemUnit::m_interp
private

Definition at line 177 of file JugemUnit.hh.

◆ m_kartObj

const Kart::KartObject* Kinoko::Field::JugemUnit::m_kartObj
private

Definition at line 171 of file JugemUnit.hh.

◆ m_move

JugemMove* Kinoko::Field::JugemUnit::m_move
private

Definition at line 176 of file JugemUnit.hh.

◆ m_pos

EGG::Vector3f Kinoko::Field::JugemUnit::m_pos
private

Definition at line 172 of file JugemUnit.hh.

◆ m_state

State Kinoko::Field::JugemUnit::m_state
private

Definition at line 173 of file JugemUnit.hh.

◆ m_switchReverse

JugemSwitch* Kinoko::Field::JugemUnit::m_switchReverse
private

Definition at line 175 of file JugemUnit.hh.

◆ STATE_ENTRIES

std::array<StateManagerEntry, 2> Kinoko::Field::JugemUnit::STATE_ENTRIES
staticconstexprprivate
Initial value:
= {{
StateEntry<JugemUnit, &JugemUnit::enterIdle, &JugemUnit::calcIdle>(0),
StateEntry<JugemUnit, &JugemUnit::enterReverse, &JugemUnit::calcReverse>(1),
}}

Definition at line 184 of file JugemUnit.hh.