A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kart Namespace Reference

Detailed Description

Pertains to kart-related functionality.

Classes

struct  BSP
 Houses hitbox and wheel positions, radii, and suspension info. More...
 
struct  CannonParameter
 
struct  CollisionData
 Information about the current collision and its properties. More...
 
class  CollisionGroup
 Houses hitbox and collision info for an object (body or wheel). More...
 
class  Hitbox
 Represents a hitbox for the kart body or a wheel. More...
 
struct  KartAccessor
 Shared between classes who inherit KartObjectProxy so they can access one another. More...
 
class  KartAction
 
class  KartBody
 
class  KartBodyBike
 
class  KartBodyKart
 
class  KartBodyQuacker
 
class  KartBoost
 State management for boosts (start boost, mushrooms, mini-turbos) More...
 
class  KartBurnout
 Calculates the duration of burnout and rotation induced when holding acceleration too long during the race countdown. More...
 
class  KartCollide
 Manages body+wheel collision and its influence on position/velocity/etc. More...
 
class  KartDynamics
 State management for most components of a kart's physics. More...
 
class  KartDynamicsBike
 State management for most components of a bike's physics. More...
 
class  KartHalfPipe
 Handles the physics and boosts associated with zippers. More...
 
class  KartJump
 Manages trick inputs and state. More...
 
class  KartJumpBike
 
class  KartMove
 Responsible for reacting to player inputs and moving the kart. More...
 
class  KartMoveBike
 Responsible for reacting to player inputs and moving the bike. More...
 
class  KartObject
 The highest level abstraction for a kart. More...
 
class  KartObjectBike
 The highest level abstraction for a bike. More...
 
class  KartObjectManager
 Responsible for the lifecycle and calculation of KartObjects. More...
 
class  KartObjectProxy
 Base class for most kart-related objects. More...
 
class  KartParam
 Houses stats regarding a given character/vehicle combo. More...
 
class  KartParamFileManager
 Abstraction for the process of retrieving kart parameters from files. More...
 
class  KartPhysics
 Manages the lifecycle of KartDynamics, handles moving floors and trick rotation. More...
 
class  KartReject
 Pertains to handling reject road. More...
 
class  KartState
 Houses various flags and other variables to preserve the kart's state. More...
 
class  KartSub
 Hosts a few classes and the high level per-frame calc functions. More...
 
class  KartSuspension
 Doesn't do much besides hold a pointer to KartSuspensionPhysics. More...
 
class  KartSuspensionFrontBike
 
class  KartSuspensionPhysics
 Physics for a single wheel's suspension. More...
 
class  KartSuspensionRearBike
 
class  KartTire
 A holder for a wheel's physics data. More...
 
class  KartTireFront
 A holder for a kart's front tire's physics data. More...
 
class  KartTireFrontBike
 A holder for a bike's front tire's physics data. More...
 
class  KartTireRearBike
 A holder for a bike's rear tire's physics data. More...
 
struct  StartBoostEntry
 
class  WheelPhysics
 Manages wheel physics and collision checks. More...
 

Enumerations

enum class  Action {
  None = -1 ,
  UNK_0 = 0 ,
  UNK_1 = 1 ,
  UNK_2 = 2 ,
  UNK_3 = 3 ,
  UNK_4 = 4 ,
  UNK_5 = 5 ,
  UNK_6 = 6 ,
  UNK_7 = 7 ,
  UNK_8 = 8 ,
  UNK_9 = 9 ,
  UNK_12 = 12 ,
  UNK_14 = 14 ,
  UNK_16 = 16 ,
  Max = 18
}
 
enum class  Reaction {
  None = 0 ,
  UNK_3 = 3 ,
  UNK_4 = 4 ,
  UNK_5 = 5 ,
  UNK_7 = 7 ,
  WallAllSpeed = 8 ,
  SpinAllSpeed = 9 ,
  SpinSomeSpeed = 10 ,
  FireSpin = 11 ,
  ClipThroughSomeSpeed = 12 ,
  SmallLaunch = 13 ,
  KnockbackSomeSpeedLoseItem = 14 ,
  LaunchSpinLoseItem = 15 ,
  KnockbackBumpLoseItem = 16 ,
  LongCrushLoseItem = 17 ,
  SmallBump = 18 ,
  BigBump = 19 ,
  SpinShrink = 20 ,
  HighLaunchLoseItem = 21 ,
  SpinHitSomeSpeed = 22 ,
  WeakWall = 23 ,
  Wall = 24 ,
  LaunchSpin = 25 ,
  WallSpark = 26 ,
  RubberWall = 27 ,
  Wall2 = 28 ,
  UntrickableJumpPad = 29 ,
  ShortCrushLoseItem = 30 ,
  CrushRespawn = 31 ,
  ExplosionLoseItem = 32
}
 
enum class  SurfaceVariant {
  DoubleFlipTrick = 0 ,
  SingleFlipTrick = 1 ,
  StuntTrick = 2
}
 Determined by the KCL, this represents the variation of the trick that will be performed. More...
 
enum class  TrickType {
  StuntTrickBasic = 0 ,
  BikeFlipTrickNose = 1 ,
  BikeFlipTrickTail = 2 ,
  FlipTrickYLeft = 3 ,
  FlipTrickYRight = 4 ,
  KartFlipTrickZ = 5 ,
  BikeSideStuntTrick = 6
}
 Represents the type of trick that will be performed based on kart and player input. More...
 

Functions

 STATIC_ASSERT (sizeof(BSP)==0x25c)
 

Variables

static constexpr std::array< CannonParameter, 3 > CANNON_PARAMETERS
 

Enumeration Type Documentation

◆ Action

enum class Kart::Action
strong

Definition at line 7 of file KartAction.hh.

◆ Reaction

enum class Kart::Reaction
strong

Definition at line 13 of file KartCollide.hh.

◆ SurfaceVariant

enum class Kart::SurfaceVariant
strong

Determined by the KCL, this represents the variation of the trick that will be performed.

This is also directly used to determine the duration of the trick boost.

Enumerator
DoubleFlipTrick 

RR ramps before figure-8 and last turn.

SingleFlipTrick 

BC starting ramp.

StuntTrick 

Think rMR ramp and pipe, MH after first turn, mushrooms, etc.

Definition at line 10 of file KartJump.hh.

◆ TrickType

enum class Kart::TrickType
strong

Represents the type of trick that will be performed based on kart and player input.

Some of these types are only available for bikes.

Enumerator
StuntTrickBasic 

An up/down StuntTrick with kart/bike.

BikeFlipTrickNose 

An up trick with bike.

BikeFlipTrickTail 

A down trick with bike.

FlipTrickYLeft 

A left trick with kart/bike.

FlipTrickYRight 

A right trick with kart/bike.

KartFlipTrickZ 

An up/down trick with a kart.

BikeSideStuntTrick 

A side StuntTrick with a bike.

Definition at line 18 of file KartJump.hh.

Variable Documentation

◆ CANNON_PARAMETERS

std::array<CannonParameter, 3> Kart::CANNON_PARAMETERS
staticconstexpr
Initial value:
= {{
{500.0f, 0.0f, 6000.0f, -1.0f},
{500.0f, 5000.0f, 6000.0f, -1.0f},
{120.0f, 2000.0f, 1000.0f, 45.0f},
}}

Definition at line 34 of file KartMove.cc.