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

#include <KartPullPath.hh>

Description

Manages areas pulling the kart along a given path.

This implementation merges the base class with the water derived class.

Definition at line 56 of file KartPullPath.hh.

Inheritance diagram for Kinoko::Kart::KartPullPath:

Public Member Functions

void init ()
void reset ()
void calc ()
void changePoint (s16 idx, f32 distance)
void resetDistance ()
s16 incomingIdx () const
const EGG::Vector3f & pullDirection () const
f32 pullSpeed () const
f32 maxPullSpeed () const
f32 roadSpeedDecay () const

Private Member Functions

bool calcArea ()
void calcPointChange ()
void calcTrackers ()
EGG::Vector3f getPullUnitNormal () const
void setTrackerPointInfo (System::MapdataPointInfo *info)
void setPos (const EGG::Vector3f &pos)
void setRot (const EGG::Quatf &q)
void setInertiaScale (const EGG::Vector3f &scale)
KartAction * action ()
const KartAction * action () const
KartBody * body ()
const KartBody * body () const
KartCollide * collide ()
const KartCollide * collide () const
CollisionGroup * collisionGroup ()
const CollisionGroup * collisionGroup () const
KartMove * move ()
const KartMove * move () const
KartHalfPipe * halfPipe ()
const KartHalfPipe * halfPipe () const
KartScale * kartScale ()
const KartScale * kartScale () const
KartJump * jump ()
const KartJump * jump () const
KartParam * param ()
const KartParam * param () const
const BSP & bsp () const
KartPhysics * physics ()
const KartPhysics * physics () const
KartDynamics * dynamics ()
const KartDynamics * dynamics () const
KartState * state ()
const KartState * state () const
KartSub * sub ()
const KartSub * sub () const
KartSuspension * suspension (u16 suspIdx)
const KartSuspension * suspension (u16 suspIdx) const
KartSuspensionPhysics * suspensionPhysics (u16 suspIdx)
const KartSuspensionPhysics * suspensionPhysics (u16 suspIdx) const
KartTire * tire (u16 tireIdx)
const KartTire * tire (u16 tireIdx) const
WheelPhysics * tirePhysics (u16 tireIdx)
const WheelPhysics * tirePhysics (u16 tireIdx) const
CollisionData & collisionData ()
const CollisionData & collisionData () const
CollisionData & collisionData (u16 tireIdx)
const CollisionData & collisionData (u16 tireIdx) const
const System::KPad * inputs () const
Render::KartModel * model ()
const Render::KartModel * model () const
Field::ObjectCollisionKart * objectCollisionKart ()
const Field::ObjectCollisionKart * objectCollisionKart () const
Field::BoxColUnit * boxColUnit ()
const Field::BoxColUnit * boxColUnit () const
const EGG::Vector3f & scale () const
const EGG::Matrix34f & pose () const
EGG::Vector3f bodyFront () const
 Returns the third column of the rotation matrix, which is the facing vector.
EGG::Vector3f bodyForward () const
 Returns the first column of the rotation matrix, which is the "right" direction.
EGG::Vector3f bodyUp () const
 Returns the second column of the rotation matrix, which is the "up" direction.
const EGG::Vector3f & componentXAxis () const
const EGG::Vector3f & componentYAxis () const
const EGG::Vector3f & componentZAxis () const
const EGG::Vector3f & pos () const
const EGG::Vector3f & prevPos () const
const EGG::Quatf & fullRot () const
const EGG::Vector3f & extVel () const
const EGG::Vector3f & intVel () const
const EGG::Vector3f & velocity () const
f32 speed () const
f32 acceleration () const
f32 softSpeedLimit () const
const EGG::Quatf & mainRot () const
const EGG::Vector3f & angVel2 () const
bool isBike () const
u16 suspCount () const
u16 tireCount () const
bool hasFloorCollision (const WheelPhysics *wheelPhysics) const
std::pair< EGG::Vector3f, EGG::Vector3f > getCannonPosRot ()
f32 speedRatio () const
f32 speedRatioCapped () const
bool isInRespawn () const
Field::KCLTypeMask wallKclType () const
u32 wallKclVariant () const
Status & status ()
const Status & status () const
const EGG::Vector3f & wheelPos (u16 idx) const
const EGG::Vector3f & wheelEdgePos (u16 idx) const
f32 cameraDistY () const
s32 hopStickX () const
KartParam::Stats::DriftType vehicleType () const
void apply (size_t idx)

Private Attributes

f32 m_distance
System::MapdataPointInfo * m_pointInfo
s16 m_incomingIdx
s16 m_currentIdx
EGG::Vector3f m_pullDirection
f32 m_pullSpeed
f32 m_maxPullSpeed
KartPullPathTracker m_globalTracker
KartPullPathTracker m_regionalTracker
f32 m_roadSpeedDecay
s16 m_areaId

Additional Inherited Members

static std::list< KartObjectProxy *, EGG::Allocator< KartObjectProxy * > > & proxyList ()

Constructor & Destructor Documentation

◆ KartPullPath()

Kinoko::Kart::KartPullPath::KartPullPath ( )
0x80593FA4

Definition at line 142 of file KartPullPath.cc.

◆ ~KartPullPath()

Kinoko::Kart::KartPullPath::~KartPullPath ( )
default0x80594094

Member Function Documentation

◆ calc()

void Kinoko::Kart::KartPullPath::calc ( )
0x80594134

Definition at line 171 of file KartPullPath.cc.

◆ calcArea()

bool Kinoko::Kart::KartPullPath::calcArea ( )
private0x805941BC

Definition at line 195 of file KartPullPath.cc.

◆ calcPointChange()

void Kinoko::Kart::KartPullPath::calcPointChange ( )
private0x80593E18

Definition at line 230 of file KartPullPath.cc.

◆ calcTrackers()

void Kinoko::Kart::KartPullPath::calcTrackers ( )
private0x80593D54

Definition at line 260 of file KartPullPath.cc.

◆ changePoint()

void Kinoko::Kart::KartPullPath::changePoint ( s16 idx,
f32 distance )
0x80593DBC

Definition at line 183 of file KartPullPath.cc.

◆ getPullUnitNormal()

EGG::Vector3f Kinoko::Kart::KartPullPath::getPullUnitNormal ( ) const
nodiscardprivate0x805AEAD8

This isn't a part of KartPullPath, but is only called from this class.

Definition at line 267 of file KartPullPath.cc.

◆ incomingIdx()

s16 Kinoko::Kart::KartPullPath::incomingIdx ( ) const
inlinenodiscard

Definition at line 71 of file KartPullPath.hh.

◆ init()

void Kinoko::Kart::KartPullPath::init ( )
0x805940D4

Definition at line 152 of file KartPullPath.cc.

◆ maxPullSpeed()

f32 Kinoko::Kart::KartPullPath::maxPullSpeed ( ) const
inlinenodiscard

Definition at line 83 of file KartPullPath.hh.

◆ pullDirection()

const EGG::Vector3f & Kinoko::Kart::KartPullPath::pullDirection ( ) const
inlinenodiscard

Definition at line 75 of file KartPullPath.hh.

◆ pullSpeed()

f32 Kinoko::Kart::KartPullPath::pullSpeed ( ) const
inlinenodiscard

Definition at line 79 of file KartPullPath.hh.

◆ reset()

void Kinoko::Kart::KartPullPath::reset ( )
0x80593CB8

This was the init function in the base class, but it gets inlined in calcArea.

Definition at line 160 of file KartPullPath.cc.

◆ resetDistance()

void Kinoko::Kart::KartPullPath::resetDistance ( )
inline0x80593E08

Definition at line 67 of file KartPullPath.hh.

◆ roadSpeedDecay()

f32 Kinoko::Kart::KartPullPath::roadSpeedDecay ( ) const
inlinenodiscard

Definition at line 87 of file KartPullPath.hh.

◆ setTrackerPointInfo()

void Kinoko::Kart::KartPullPath::setTrackerPointInfo ( System::MapdataPointInfo * info)
private0x80593D1C

Definition at line 280 of file KartPullPath.cc.

Member Data Documentation

◆ m_areaId

s16 Kinoko::Kart::KartPullPath::m_areaId
private

Definition at line 108 of file KartPullPath.hh.

◆ m_currentIdx

s16 Kinoko::Kart::KartPullPath::m_currentIdx
private

Definition at line 101 of file KartPullPath.hh.

◆ m_distance

f32 Kinoko::Kart::KartPullPath::m_distance
private

Definition at line 98 of file KartPullPath.hh.

◆ m_globalTracker

KartPullPathTracker Kinoko::Kart::KartPullPath::m_globalTracker
private

Definition at line 105 of file KartPullPath.hh.

◆ m_incomingIdx

s16 Kinoko::Kart::KartPullPath::m_incomingIdx
private

Definition at line 100 of file KartPullPath.hh.

◆ m_maxPullSpeed

f32 Kinoko::Kart::KartPullPath::m_maxPullSpeed
private

Definition at line 104 of file KartPullPath.hh.

◆ m_pointInfo

System::MapdataPointInfo* Kinoko::Kart::KartPullPath::m_pointInfo
private

Definition at line 99 of file KartPullPath.hh.

◆ m_pullDirection

EGG::Vector3f Kinoko::Kart::KartPullPath::m_pullDirection
private

Definition at line 102 of file KartPullPath.hh.

◆ m_pullSpeed

f32 Kinoko::Kart::KartPullPath::m_pullSpeed
private

Definition at line 103 of file KartPullPath.hh.

◆ m_regionalTracker

KartPullPathTracker Kinoko::Kart::KartPullPath::m_regionalTracker
private

Definition at line 106 of file KartPullPath.hh.

◆ m_roadSpeedDecay

f32 Kinoko::Kart::KartPullPath::m_roadSpeedDecay
private

Definition at line 107 of file KartPullPath.hh.