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

#include <KartCollide.hh>

Description

Manages body+wheel collision and its influence on position/velocity/etc.

Definition at line 49 of file KartCollide.hh.

Inheritance diagram for Kinoko::Kart::KartCollide:

Public Types

enum class  eSurfaceFlags {
  Wall = 0 ,
  SolidOOB = 1 ,
  ObjectWall = 2 ,
  ObjectWall3 = 3 ,
  BoostRamp = 4 ,
  Offroad = 6 ,
  GroundBoostPanelOrRamp = 7 ,
  Trickable = 11 ,
  NotTrickable = 12 ,
  StopHalfPipeState = 16
}
typedef EGG::TBitFlag< u32, eSurfaceFlagsSurfaceFlags

Public Member Functions

void init ()
void resetHitboxes ()
void calcHitboxes ()
 On each frame, calculates the positions for each hitbox.
void findCollision ()
void FUN_80572F4C ()
void FUN_805B72B8 (f32 param_1, f32 param_2, bool lockXZ, bool addExtVelY)
 Affects velocity when landing from airtime.
void calcBodyCollision (f32 totalScale, f32 sinkDepth, const EGG::Quatf &rot, const EGG::Vector3f &scale)
 Checks and acts on collision for each kart hitbox.
void calcFloorEffect ()
void calcTriggers (Field::KCLTypeMask *mask, const EGG::Vector3f &pos, bool twoPoint)
void handleTriggers (Field::KCLTypeMask *mask)
void calcFallBoundary (Field::KCLTypeMask *mask, bool shortBoundary)
void calcBeforeRespawn ()
void activateOob (bool detachCamera, Field::KCLTypeMask *mask, bool somethingCPU, bool somethingBullet)
void calcWheelCollision (u16 wheelIdx, CollisionGroup *hitboxGroup, const EGG::Vector3f &colVel, const EGG::Vector3f &center, f32 radius)
 Checks wheel hitbox collision and stores position/velocity info.
void calcSideCollision (CollisionData &collisionData, Hitbox &hitbox, Field::CollisionInfo *colInfo)
void calcBoundingRadius ()
void calcObjectCollision ()
void calcPoleTimer ()
void processWheel (CollisionData &collisionData, Hitbox &hitbox, Field::CollisionInfo *colInfo, Field::KCLTypeMask *maskOut)
 Processes moving water and floor collision effects.
void processBody (CollisionData &collisionData, Hitbox &hitbox, Field::CollisionInfo *colInfo, Field::KCLTypeMask *maskOut)
void processMovingWater (CollisionData &collisionData, Field::KCLTypeMask *maskOut)
bool processWall (CollisionData &collisionData, Field::KCLTypeMask *maskOut)
void processFloor (CollisionData &collisionData, Hitbox &hitbox, Field::CollisionInfo *colInfo, Field::KCLTypeMask *maskOut, bool wheel)
 Processes the floor triangles' attributes.
void processCannon (Field::KCLTypeMask *maskOut)
 Checks if we are colliding with a cannon trigger and sets the state flag if so.
void applySomeFloorMoment (f32 down, f32 rate, CollisionGroup *hitboxGroup, const EGG::Vector3f &forward, const EGG::Vector3f &nextDir, const EGG::Vector3f &speed, bool b1, bool b2, bool b3)
 Applies external and angular velocity based on the collision with the floor.
bool FUN_805B6A9C (CollisionData &collisionData, const Hitbox &hitbox, EGG::BoundBox3f &minMax, EGG::Vector3f &relPos, s32 &count, const Field::KCLTypeMask &maskOut, const Field::CollisionInfo &colInfo)
 Called on collision of a new KCL type??? This only happens after airtime so far.
void applyBodyCollision (CollisionData &collisionData, const EGG::Vector3f &movement, const EGG::Vector3f &posRel, s32 count)
 Saves collision info when vehicle body collision occurs.
void startFloorMomentRate ()
void calcFloorMomentRate ()
Action handleReactNone (size_t idx)
 Object collision functions.
Action handleReactWallAllSpeed (size_t idx)
Action handleReactSpinAllSpeed (size_t idx)
Action handleReactSpinSomeSpeed (size_t idx)
Action handleReactFireSpin (size_t idx)
Action handleReactSmallLaunch (size_t idx)
Action handleReactKnockbackSomeSpeedLoseItem (size_t idx)
Action handleReactLaunchSpinLoseItem (size_t idx)
Action handleReactKnockbackBumpLoseItem (size_t idx)
Action handleReactLongCrushLoseItem (size_t idx)
Action handleReactSmallBump (size_t idx)
Action handleReactSpinShrink (size_t idx)
Action handleReactHighLaunchLoseItem (size_t idx)
Action handleReactWeakWall (size_t idx)
Action handleReactOffroad (size_t idx)
Action handleReactLaunchSpin (size_t idx)
Action handleReactWallSpark (size_t idx)
Action handleReactRubberWall (size_t idx)
Action handleReactUntrickableJumpPad (size_t idx)
Action handleReactShortCrushLoseItem (size_t idx)
Action handleReactCrushRespawn (size_t idx)
Action handleReactExplosionLoseItem (size_t idx)

Setters

void setFloorColInfo (CollisionData &collisionData, const EGG::Vector3f &relPos, const EGG::Vector3f &vel, const EGG::Vector3f &floorNrm)
void setTangentOff (const EGG::Vector3f &v)
void setMovement (const EGG::Vector3f &v)

Getters

KartPullPathpullPath ()
const KartPullPathpullPath () const
f32 boundingRadius () const
f32 floorMomentRate () const
const SurfaceFlags & surfaceFlags () const
const EGG::Vector3ftangentOff () const
const EGG::Vector3fmovement () const
f32 sumHitboxBottomHeightSoftWall () const
u16 numSoftWallCollisions () const
f32 sumHitboxBottomHeightFloorOnly () const
u16 numFloorOnlyCollisions () const
f32 colPerpendicularity () const

Private Types

typedef Action(KartCollide::* ObjectCollisionHandler) (size_t idx)

Private Attributes

KartPullPath m_pullPath
f32 m_boundingRadius
f32 m_floorMomentRate
EGG::Vector3f m_totalReactionWallNrm
SurfaceFlags m_surfaceFlags
EGG::Vector3f m_tangentOff
EGG::Vector3f m_movement
s16 m_respawnTimer
s16 m_solidOobTimer
s16 m_shrinkTimer
f32 m_smoothedBack
f32 m_sumHitboxBottomHeightSoftWall
u16 m_numSoftWallCollisions
f32 m_sumHitboxBottomHeightFloorOnly
u16 m_numFloorOnlyCollisions
s16 m_poleAngVelTimer
f32 m_poleYaw
f32 m_colPerpendicularity

Static Private Attributes

static std::array< ObjectCollisionHandler, 33 > s_objectCollisionHandlers

Additional Inherited Members

void setPos (const EGG::Vector3f &pos)
void setRot (const EGG::Quatf &q)
void setInertiaScale (const EGG::Vector3f &scale)
KartActionaction ()
const KartActionaction () const
KartBodybody ()
const KartBodybody () const
KartCollidecollide ()
const KartCollidecollide () const
CollisionGroupcollisionGroup ()
const CollisionGroupcollisionGroup () const
KartMovemove ()
const KartMovemove () const
KartHalfPipehalfPipe ()
const KartHalfPipehalfPipe () const
KartScalekartScale ()
const KartScalekartScale () const
KartJumpjump ()
const KartJumpjump () const
KartParamparam ()
const KartParamparam () const
const BSPbsp () const
KartPhysicsphysics ()
const KartPhysicsphysics () const
KartDynamicsdynamics ()
const KartDynamicsdynamics () const
KartStatestate ()
const KartStatestate () const
KartSubsub ()
const KartSubsub () const
KartSuspensionsuspension (u16 suspIdx)
const KartSuspensionsuspension (u16 suspIdx) const
KartSuspensionPhysicssuspensionPhysics (u16 suspIdx)
const KartSuspensionPhysicssuspensionPhysics (u16 suspIdx) const
KartTiretire (u16 tireIdx)
const KartTiretire (u16 tireIdx) const
WheelPhysicstirePhysics (u16 tireIdx)
const WheelPhysicstirePhysics (u16 tireIdx) const
CollisionDatacollisionData ()
const CollisionDatacollisionData () const
CollisionDatacollisionData (u16 tireIdx)
const CollisionDatacollisionData (u16 tireIdx) const
const System::KPadinputs () const
Render::KartModelmodel ()
const Render::KartModelmodel () const
Field::ObjectCollisionKartobjectCollisionKart ()
const Field::ObjectCollisionKartobjectCollisionKart () const
Field::BoxColUnitboxColUnit ()
const Field::BoxColUnitboxColUnit () const
const EGG::Vector3fscale () const
const EGG::Matrix34fpose () 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::Vector3fcomponentXAxis () const
const EGG::Vector3fcomponentYAxis () const
const EGG::Vector3fcomponentZAxis () const
const EGG::Vector3fpos () const
const EGG::Vector3fprevPos () const
const EGG::QuatffullRot () const
const EGG::Vector3fextVel () const
const EGG::Vector3fintVel () const
const EGG::Vector3fvelocity () const
f32 speed () const
f32 acceleration () const
f32 softSpeedLimit () const
const EGG::QuatfmainRot () const
const EGG::Vector3fangVel2 () const
bool isBike () const
u16 suspCount () const
u16 tireCount () const
bool hasFloorCollision (const WheelPhysics *wheelPhysics) const
std::pair< EGG::Vector3f, EGG::Vector3fgetCannonPosRot ()
f32 speedRatio () const
f32 speedRatioCapped () const
bool isInRespawn () const
Field::KCLTypeMask wallKclType () const
u32 wallKclVariant () const
Status & status ()
const Status & status () const
const EGG::Vector3fwheelPos (u16 idx) const
const EGG::Vector3fwheelEdgePos (u16 idx) const
f32 cameraDistY () const
s32 hopStickX () const
KartParam::Stats::DriftType vehicleType () const
void apply (size_t idx)
static std::list< KartObjectProxy *, EGG::Allocator< KartObjectProxy * > > & proxyList ()

Member Typedef Documentation

◆ ObjectCollisionHandler

typedef Action(KartCollide::* Kinoko::Kart::KartCollide::ObjectCollisionHandler) (size_t idx)
private

Definition at line 209 of file KartCollide.hh.

◆ SurfaceFlags

typedef EGG::TBitFlag<u32, eSurfaceFlags> Kinoko::Kart::KartCollide::SurfaceFlags

Definition at line 63 of file KartCollide.hh.

Member Enumeration Documentation

◆ eSurfaceFlags

Enumerator
Offroad 

[Unused]

Definition at line 51 of file KartCollide.hh.

Constructor & Destructor Documentation

◆ KartCollide()

Kinoko::Kart::KartCollide::KartCollide ( )
0x8056E56C

Definition at line 18 of file KartCollide.cc.

◆ ~KartCollide()

Kinoko::Kart::KartCollide::~KartCollide ( )
default0x80573FF0

Member Function Documentation

◆ activateOob()

void Kinoko::Kart::KartCollide::activateOob ( bool detachCamera,
Field::KCLTypeMask * mask,
bool somethingCPU,
bool somethingBullet )
0x80573B00

Definition at line 418 of file KartCollide.cc.

◆ applyBodyCollision()

void Kinoko::Kart::KartCollide::applyBodyCollision ( CollisionData & collisionData,
const EGG::Vector3f & movement,
const EGG::Vector3f & posRel,
s32 count )
0x805B6D48

Saves collision info when vehicle body collision occurs.

Stage: 2

Additionally may apply a change in position for certain KCL types.

Definition at line 977 of file KartCollide.cc.

◆ applySomeFloorMoment()

void Kinoko::Kart::KartCollide::applySomeFloorMoment ( f32 down,
f32 rate,
CollisionGroup * hitboxGroup,
const EGG::Vector3f & forward,
const EGG::Vector3f & nextDir,
const EGG::Vector3f & speed,
bool b1,
bool b2,
bool b3 )
0x805B7928

Applies external and angular velocity based on the collision with the floor.

Stage: All
Parameters
downAlways 0.1f
rateDownward velocity? Related to suspension stiffness
hitboxGroupUsed to retrieve CollisionData reference
forwardCurrent world facing direction of the kart
nextDirUpdated facing direction of the kart
speedTire speed

Definition at line 824 of file KartCollide.cc.

◆ boundingRadius()

f32 Kinoko::Kart::KartCollide::boundingRadius ( ) const
inlinenodiscard

Definition at line 167 of file KartCollide.hh.

◆ calcBeforeRespawn()

void Kinoko::Kart::KartCollide::calcBeforeRespawn ( )
0x80573ED4

Definition at line 397 of file KartCollide.cc.

◆ calcBodyCollision()

void Kinoko::Kart::KartCollide::calcBodyCollision ( f32 totalScale,
f32 sinkDepth,
const EGG::Quatf & rot,
const EGG::Vector3f & scale )
0x805B6724

Checks and acts on collision for each kart hitbox.

Stage: All
Parameters
totalScale
rot
scale

Definition at line 216 of file KartCollide.cc.

◆ calcBoundingRadius()

void Kinoko::Kart::KartCollide::calcBoundingRadius ( )
0x8056E70C

Definition at line 553 of file KartCollide.cc.

◆ calcFallBoundary()

void Kinoko::Kart::KartCollide::calcFallBoundary ( Field::KCLTypeMask * mask,
bool shortBoundary )
0x80571D98

Definition at line 372 of file KartCollide.cc.

◆ calcFloorEffect()

void Kinoko::Kart::KartCollide::calcFloorEffect ( )
0x80571634

Definition at line 273 of file KartCollide.cc.

◆ calcFloorMomentRate()

void Kinoko::Kart::KartCollide::calcFloorMomentRate ( )
0x805713FC

Definition at line 1013 of file KartCollide.cc.

◆ calcHitboxes()

void Kinoko::Kart::KartCollide::calcHitboxes ( )
0x8056EE24

On each frame, calculates the positions for each hitbox.

Stage: All

Definition at line 56 of file KartCollide.cc.

◆ calcObjectCollision()

void Kinoko::Kart::KartCollide::calcObjectCollision ( )
0x80571F10

Definition at line 558 of file KartCollide.cc.

◆ calcPoleTimer()

void Kinoko::Kart::KartCollide::calcPoleTimer ( )
Inlined in 0x80571F10

Definition at line 612 of file KartCollide.cc.

◆ calcSideCollision()

void Kinoko::Kart::KartCollide::calcSideCollision ( CollisionData & collisionData,
Hitbox & hitbox,
Field::CollisionInfo * colInfo )
0x8056F26C
Stage: 2

Definition at line 501 of file KartCollide.cc.

◆ calcTriggers()

void Kinoko::Kart::KartCollide::calcTriggers ( Field::KCLTypeMask * mask,
const EGG::Vector3f & pos,
bool twoPoint )
0x805718D4

Definition at line 317 of file KartCollide.cc.

◆ calcWheelCollision()

void Kinoko::Kart::KartCollide::calcWheelCollision ( u16 wheelIdx,
CollisionGroup * hitboxGroup,
const EGG::Vector3f & colVel,
const EGG::Vector3f & center,
f32 radius )
0x805B6F4C

Checks wheel hitbox collision and stores position/velocity info.

Stage: All
Parameters
hitboxGroupThe wheel's collision information
colVelThe wheel's velocity. In the base game, it is always \(\vec{v} = \begin{bmatrix} 0 \\ -13 \\ 0 \end{bmatrix}\)
centerThe wheel's position
radiusThe wheel's size

Definition at line 442 of file KartCollide.cc.

◆ colPerpendicularity()

f32 Kinoko::Kart::KartCollide::colPerpendicularity ( ) const
inlinenodiscard

Definition at line 203 of file KartCollide.hh.

◆ findCollision()

void Kinoko::Kart::KartCollide::findCollision ( )
0x80572C20
Stage: All

Definition at line 66 of file KartCollide.cc.

◆ floorMomentRate()

f32 Kinoko::Kart::KartCollide::floorMomentRate ( ) const
inlinenodiscard

Definition at line 171 of file KartCollide.hh.

◆ FUN_80572F4C()

void Kinoko::Kart::KartCollide::FUN_80572F4C ( )
0x80572F4C
Stage: 2
Note
This object is labeled as having a poor name. It should be renamed to better represent its purpose.

Definition at line 101 of file KartCollide.cc.

◆ FUN_805B6A9C()

bool Kinoko::Kart::KartCollide::FUN_805B6A9C ( CollisionData & collisionData,
const Hitbox & hitbox,
EGG::BoundBox3f & minMax,
EGG::Vector3f & relPos,
s32 & count,
const Field::KCLTypeMask & maskOut,
const Field::CollisionInfo & colInfo )
nodiscard0x805B6A9C

Called on collision of a new KCL type??? This only happens after airtime so far.

Stage: All
Note
This object is labeled as having a poor name. It should be renamed to better represent its purpose.

Definition at line 922 of file KartCollide.cc.

◆ FUN_805B72B8()

void Kinoko::Kart::KartCollide::FUN_805B72B8 ( f32 param_1,
f32 param_2,
bool lockXZ,
bool addExtVelY )
0x805B72B8

Affects velocity when landing from airtime.

Stage: All

Every frame, this function checks the player's velocity relative to the floor collision and applies external velocity and angular velocity. This is mostly relevant when you were midair and just landed.

Note
This object is labeled as having a poor name. It should be renamed to better represent its purpose.

Definition at line 128 of file KartCollide.cc.

◆ handleReactCrushRespawn()

Action Kinoko::Kart::KartCollide::handleReactCrushRespawn ( size_t idx)
0x805735DC

Definition at line 1145 of file KartCollide.cc.

◆ handleReactExplosionLoseItem()

Action Kinoko::Kart::KartCollide::handleReactExplosionLoseItem ( size_t idx)
0x805735E4

Definition at line 1150 of file KartCollide.cc.

◆ handleReactFireSpin()

Action Kinoko::Kart::KartCollide::handleReactFireSpin ( size_t idx)
0x805735AC

Definition at line 1044 of file KartCollide.cc.

◆ handleReactHighLaunchLoseItem()

Action Kinoko::Kart::KartCollide::handleReactHighLaunchLoseItem ( size_t idx)
0x805733E4

Definition at line 1085 of file KartCollide.cc.

◆ handleReactKnockbackBumpLoseItem()

Action Kinoko::Kart::KartCollide::handleReactKnockbackBumpLoseItem ( size_t idx)
0x805733EC

Definition at line 1064 of file KartCollide.cc.

◆ handleReactKnockbackSomeSpeedLoseItem()

Action Kinoko::Kart::KartCollide::handleReactKnockbackSomeSpeedLoseItem ( size_t idx)
0x805733DC

Definition at line 1054 of file KartCollide.cc.

◆ handleReactLaunchSpin()

Action Kinoko::Kart::KartCollide::handleReactLaunchSpin ( size_t idx)
0x805733F4

Definition at line 1103 of file KartCollide.cc.

◆ handleReactLaunchSpinLoseItem()

Action Kinoko::Kart::KartCollide::handleReactLaunchSpinLoseItem ( size_t idx)
0x8057353C

Definition at line 1059 of file KartCollide.cc.

◆ handleReactLongCrushLoseItem()

Action Kinoko::Kart::KartCollide::handleReactLongCrushLoseItem ( size_t idx)
0x805735B4

Definition at line 1069 of file KartCollide.cc.

◆ handleReactNone()

Action Kinoko::Kart::KartCollide::handleReactNone ( size_t idx)
0x8056E564

Object collision functions.

Definition at line 1021 of file KartCollide.cc.

◆ handleReactOffroad()

Action Kinoko::Kart::KartCollide::handleReactOffroad ( size_t idx)
0x80573790

Definition at line 1096 of file KartCollide.cc.

◆ handleReactRubberWall()

Action Kinoko::Kart::KartCollide::handleReactRubberWall ( size_t idx)
0x80573A2C

Definition at line 1117 of file KartCollide.cc.

◆ handleReactShortCrushLoseItem()

Action Kinoko::Kart::KartCollide::handleReactShortCrushLoseItem ( size_t idx)
0x805735D4

Definition at line 1140 of file KartCollide.cc.

◆ handleReactSmallBump()

Action Kinoko::Kart::KartCollide::handleReactSmallBump ( size_t idx)
0x805737B8

Definition at line 1074 of file KartCollide.cc.

◆ handleReactSmallLaunch()

Action Kinoko::Kart::KartCollide::handleReactSmallLaunch ( size_t idx)
0x805733C4

Definition at line 1049 of file KartCollide.cc.

◆ handleReactSpinAllSpeed()

Action Kinoko::Kart::KartCollide::handleReactSpinAllSpeed ( size_t idx)
0x805733CC

Definition at line 1034 of file KartCollide.cc.

◆ handleReactSpinShrink()

Action Kinoko::Kart::KartCollide::handleReactSpinShrink ( size_t idx)
0x805735BC

Definition at line 1080 of file KartCollide.cc.

◆ handleReactSpinSomeSpeed()

Action Kinoko::Kart::KartCollide::handleReactSpinSomeSpeed ( size_t idx)
0x805733D4

Definition at line 1039 of file KartCollide.cc.

◆ handleReactUntrickableJumpPad()

Action Kinoko::Kart::KartCollide::handleReactUntrickableJumpPad ( size_t idx)
0x805735EC

Definition at line 1132 of file KartCollide.cc.

◆ handleReactWallAllSpeed()

Action Kinoko::Kart::KartCollide::handleReactWallAllSpeed ( size_t idx)
0x8057363C

Definition at line 1026 of file KartCollide.cc.

◆ handleReactWallSpark()

Action Kinoko::Kart::KartCollide::handleReactWallSpark ( size_t idx)
0x805736C8

Definition at line 1109 of file KartCollide.cc.

◆ handleReactWeakWall()

Action Kinoko::Kart::KartCollide::handleReactWeakWall ( size_t idx)
0x80573754

Definition at line 1090 of file KartCollide.cc.

◆ handleTriggers()

void Kinoko::Kart::KartCollide::handleTriggers ( Field::KCLTypeMask * mask)
0x8056F510

Definition at line 355 of file KartCollide.cc.

◆ init()

void Kinoko::Kart::KartCollide::init ( )
0x8056E624

Definition at line 27 of file KartCollide.cc.

◆ movement()

const EGG::Vector3f & Kinoko::Kart::KartCollide::movement ( ) const
inlinenodiscard

Definition at line 183 of file KartCollide.hh.

◆ numFloorOnlyCollisions()

u16 Kinoko::Kart::KartCollide::numFloorOnlyCollisions ( ) const
inlinenodiscard

Definition at line 199 of file KartCollide.hh.

◆ numSoftWallCollisions()

u16 Kinoko::Kart::KartCollide::numSoftWallCollisions ( ) const
inlinenodiscard

Definition at line 191 of file KartCollide.hh.

◆ processBody()

void Kinoko::Kart::KartCollide::processBody ( CollisionData & collisionData,
Hitbox & hitbox,
Field::CollisionInfo * colInfo,
Field::KCLTypeMask * maskOut )
0x8056E764

Definition at line 632 of file KartCollide.cc.

◆ processCannon()

void Kinoko::Kart::KartCollide::processCannon ( Field::KCLTypeMask * maskOut)
0x8056F490

Checks if we are colliding with a cannon trigger and sets the state flag if so.

Definition at line 807 of file KartCollide.cc.

◆ processFloor()

void Kinoko::Kart::KartCollide::processFloor ( CollisionData & collisionData,
Hitbox & hitbox,
Field::CollisionInfo * colInfo,
Field::KCLTypeMask * maskOut,
bool wheel )
0x8056EA04

Processes the floor triangles' attributes.

Stage: All
Parameters
collisionDataStores the resulting speed and handling info
maskOutStores the flags from the floor KCL
wheelDifferentiates between body and wheel floor collision (boost panels)

Definition at line 714 of file KartCollide.cc.

◆ processMovingWater()

void Kinoko::Kart::KartCollide::processMovingWater ( CollisionData & collisionData,
Field::KCLTypeMask * maskOut )
0x8056E930

Definition at line 648 of file KartCollide.cc.

◆ processWall()

bool Kinoko::Kart::KartCollide::processWall ( CollisionData & collisionData,
Field::KCLTypeMask * maskOut )
nodiscard0x8056F184

Definition at line 682 of file KartCollide.cc.

◆ processWheel()

void Kinoko::Kart::KartCollide::processWheel ( CollisionData & collisionData,
Hitbox & hitbox,
Field::CollisionInfo * colInfo,
Field::KCLTypeMask * maskOut )
0x8056E8D4

Processes moving water and floor collision effects.

Stage: All

Definition at line 625 of file KartCollide.cc.

◆ pullPath() [1/2]

KartPullPath & Kinoko::Kart::KartCollide::pullPath ( )
inlinenodiscard

Definition at line 159 of file KartCollide.hh.

◆ pullPath() [2/2]

const KartPullPath & Kinoko::Kart::KartCollide::pullPath ( ) const
inlinenodiscard

Definition at line 163 of file KartCollide.hh.

◆ resetHitboxes()

void Kinoko::Kart::KartCollide::resetHitboxes ( )
0x805730D4

Definition at line 46 of file KartCollide.cc.

◆ setFloorColInfo()

void Kinoko::Kart::KartCollide::setFloorColInfo ( CollisionData & collisionData,
const EGG::Vector3f & relPos,
const EGG::Vector3f & vel,
const EGG::Vector3f & floorNrm )
inline

Definition at line 142 of file KartCollide.hh.

◆ setMovement()

void Kinoko::Kart::KartCollide::setMovement ( const EGG::Vector3f & v)
inline

Definition at line 153 of file KartCollide.hh.

◆ setTangentOff()

void Kinoko::Kart::KartCollide::setTangentOff ( const EGG::Vector3f & v)
inline

Definition at line 150 of file KartCollide.hh.

◆ startFloorMomentRate()

void Kinoko::Kart::KartCollide::startFloorMomentRate ( )
0x805713D8

Definition at line 1008 of file KartCollide.cc.

◆ sumHitboxBottomHeightFloorOnly()

f32 Kinoko::Kart::KartCollide::sumHitboxBottomHeightFloorOnly ( ) const
inlinenodiscard

Definition at line 195 of file KartCollide.hh.

◆ sumHitboxBottomHeightSoftWall()

f32 Kinoko::Kart::KartCollide::sumHitboxBottomHeightSoftWall ( ) const
inlinenodiscard

Definition at line 187 of file KartCollide.hh.

◆ surfaceFlags()

const SurfaceFlags & Kinoko::Kart::KartCollide::surfaceFlags ( ) const
inlinenodiscard

Definition at line 175 of file KartCollide.hh.

◆ tangentOff()

const EGG::Vector3f & Kinoko::Kart::KartCollide::tangentOff ( ) const
inlinenodiscard

Definition at line 179 of file KartCollide.hh.

Member Data Documentation

◆ m_boundingRadius

f32 Kinoko::Kart::KartCollide::m_boundingRadius
private

Definition at line 212 of file KartCollide.hh.

◆ m_colPerpendicularity

f32 Kinoko::Kart::KartCollide::m_colPerpendicularity
private

Definition at line 228 of file KartCollide.hh.

◆ m_floorMomentRate

f32 Kinoko::Kart::KartCollide::m_floorMomentRate
private

Definition at line 213 of file KartCollide.hh.

◆ m_movement

EGG::Vector3f Kinoko::Kart::KartCollide::m_movement
private

Definition at line 217 of file KartCollide.hh.

◆ m_numFloorOnlyCollisions

u16 Kinoko::Kart::KartCollide::m_numFloorOnlyCollisions
private

Definition at line 225 of file KartCollide.hh.

◆ m_numSoftWallCollisions

u16 Kinoko::Kart::KartCollide::m_numSoftWallCollisions
private

Definition at line 223 of file KartCollide.hh.

◆ m_poleAngVelTimer

s16 Kinoko::Kart::KartCollide::m_poleAngVelTimer
private

Definition at line 226 of file KartCollide.hh.

◆ m_poleYaw

f32 Kinoko::Kart::KartCollide::m_poleYaw
private

Definition at line 227 of file KartCollide.hh.

◆ m_pullPath

KartPullPath Kinoko::Kart::KartCollide::m_pullPath
private

Definition at line 211 of file KartCollide.hh.

◆ m_respawnTimer

s16 Kinoko::Kart::KartCollide::m_respawnTimer
private

Definition at line 218 of file KartCollide.hh.

◆ m_shrinkTimer

s16 Kinoko::Kart::KartCollide::m_shrinkTimer
private

Definition at line 220 of file KartCollide.hh.

◆ m_smoothedBack

f32 Kinoko::Kart::KartCollide::m_smoothedBack
private

Definition at line 221 of file KartCollide.hh.

◆ m_solidOobTimer

s16 Kinoko::Kart::KartCollide::m_solidOobTimer
private

Definition at line 219 of file KartCollide.hh.

◆ m_sumHitboxBottomHeightFloorOnly

f32 Kinoko::Kart::KartCollide::m_sumHitboxBottomHeightFloorOnly
private

Definition at line 224 of file KartCollide.hh.

◆ m_sumHitboxBottomHeightSoftWall

f32 Kinoko::Kart::KartCollide::m_sumHitboxBottomHeightSoftWall
private

Definition at line 222 of file KartCollide.hh.

◆ m_surfaceFlags

SurfaceFlags Kinoko::Kart::KartCollide::m_surfaceFlags
private

Definition at line 215 of file KartCollide.hh.

◆ m_tangentOff

EGG::Vector3f Kinoko::Kart::KartCollide::m_tangentOff
private

Definition at line 216 of file KartCollide.hh.

◆ m_totalReactionWallNrm

EGG::Vector3f Kinoko::Kart::KartCollide::m_totalReactionWallNrm
private

Definition at line 214 of file KartCollide.hh.

◆ s_objectCollisionHandlers

std::array< KartCollide::ObjectCollisionHandler, 33 > Kinoko::Kart::KartCollide::s_objectCollisionHandlers
staticprivate

Definition at line 230 of file KartCollide.hh.