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

Description

Definition at line 25 of file ObjectDirector.hh.

Inheritance diagram for Kinoko::Field::ObjectDirector:

Public Member Functions

void init ()
void calc ()
void addObject (ObjectCollidable *obj)
void addObjectNoImpl (ObjectBase *obj)
void addManagedObject (ObjectCollidable *obj)
size_t checkKartObjectCollision (Kart::KartObject *kartObj, ObjectCollisionConvexHull *convexHull)
const ObjectFlowTable & flowTable () const
const ObjectHitTable & hitTableKart () const
const ObjectCollidable * collidingObject (size_t idx) const
Kart::Reaction reaction (size_t idx) const
const EGG::Vector3f & hitDepth (size_t idx) const
fixed_vector< ObjectCollidable * > & managedObjects ()
const fixed_vector< ObjectCollidable * > & managedObjects () const
void setPsea (ObjectPsea *psea)
ObjectPsea * psea () const
f32 distAboveRisingWater (f32 offset) const
f32 risingWaterKillPlaneHeight () const

Static Public Member Functions

static f32 WanwanMaxPitch ()
static ObjectDirector * CreateInstance ()
static void DestroyInstance ()
static ObjectDirector * Instance ()

Private Member Functions

void createObjects ()
ObjectBase * createObject (const System::MapdataGeoObj &params)

Private Attributes

ObjectFlowTable m_flowTable
ObjectHitTable m_hitTableKart
ObjectHitTable m_hitTableKartObject
fixed_vector< ObjectBase * > m_objects
 All objects live here.
fixed_vector< ObjectBase * > m_calcObjects
 Objects needing calc() live here too.
fixed_vector< ObjectBase * > m_collisionObjects
 Objects having collision live here too.
std::array< ObjectCollidable *, MAX_UNIT_COUNT > m_collidingObjects
 Objects we are currently colliding with.
std::array< EGG::Vector3f, MAX_UNIT_COUNT > m_hitDepths
std::array< Kart::Reaction, MAX_UNIT_COUNT > m_reactions
ObjectPsea * m_psea
fixed_vector< ObjectCollidable * > m_managedObjects

Static Private Attributes

static constexpr size_t MAX_UNIT_COUNT = 0x100
static f32 s_wanwanMaxPitch
static constexpr size_t MAX_MANAGED_OBJECTS = 400
 Maximum number of managed objects.
static ObjectDirector * s_instance = nullptr

Additional Inherited Members

Static Private Member Functions inherited from Kinoko::EGG::Disposer
static constexpr u16 getLinkOffset ()

Constructor & Destructor Documentation

◆ ObjectDirector()

Kinoko::Field::ObjectDirector::ObjectDirector ( )
private0x8082A38C

Definition at line 148 of file ObjectDirector.cc.

Member Function Documentation

◆ ~ObjectDirector()

Kinoko::Field::ObjectDirector::~ObjectDirector ( )
overrideprivate0x8082A694

Definition at line 155 of file ObjectDirector.cc.

◆ addManagedObject()

void Kinoko::Field::ObjectDirector::addManagedObject ( ObjectCollidable * obj)
0x806C4ED4

Definition at line 63 of file ObjectDirector.cc.

◆ addObject()

void Kinoko::Field::ObjectDirector::addObject ( ObjectCollidable * obj)
0x8082B0E8

Definition at line 38 of file ObjectDirector.cc.

◆ addObjectNoImpl()

void Kinoko::Field::ObjectDirector::addObjectNoImpl ( ObjectBase * obj)

Definition at line 58 of file ObjectDirector.cc.

◆ calc()

void Kinoko::Field::ObjectDirector::calc ( )
0x8082A8F4

Definition at line 25 of file ObjectDirector.cc.

◆ checkKartObjectCollision()

size_t Kinoko::Field::ObjectDirector::checkKartObjectCollision ( Kart::KartObject * kartObj,
ObjectCollisionConvexHull * convexHull )
0x8082AB04

Definition at line 68 of file ObjectDirector.cc.

◆ collidingObject()

const ObjectCollidable * Kinoko::Field::ObjectDirector::collidingObject ( size_t idx) const
inlinenodiscard

Definition at line 46 of file ObjectDirector.hh.

◆ CreateInstance()

ObjectDirector * Kinoko::Field::ObjectDirector::CreateInstance ( )
static0x8082A784

Definition at line 126 of file ObjectDirector.cc.

◆ createObject()

ObjectBase * Kinoko::Field::ObjectDirector::createObject ( const System::MapdataGeoObj & params)
nodiscardprivate0x80821E14

Definition at line 238 of file ObjectDirector.cc.

◆ createObjects()

void Kinoko::Field::ObjectDirector::createObjects ( )
private0x80826E8C

Definition at line 167 of file ObjectDirector.cc.

◆ DestroyInstance()

void Kinoko::Field::ObjectDirector::DestroyInstance ( )
static0x8082A824

Definition at line 138 of file ObjectDirector.cc.

◆ distAboveRisingWater()

f32 Kinoko::Field::ObjectDirector::distAboveRisingWater ( f32 offset) const
nodiscard0x8082B3EC

Definition at line 114 of file ObjectDirector.cc.

◆ flowTable()

const ObjectFlowTable & Kinoko::Field::ObjectDirector::flowTable ( ) const
inlinenodiscard

Definition at line 38 of file ObjectDirector.hh.

◆ hitDepth()

const EGG::Vector3f & Kinoko::Field::ObjectDirector::hitDepth ( size_t idx) const
inlinenodiscard

Definition at line 56 of file ObjectDirector.hh.

◆ hitTableKart()

const ObjectHitTable & Kinoko::Field::ObjectDirector::hitTableKart ( ) const
inlinenodiscard

Definition at line 42 of file ObjectDirector.hh.

◆ init()

void Kinoko::Field::ObjectDirector::init ( )
0x8082A2B4

Definition at line 15 of file ObjectDirector.cc.

◆ Instance()

ObjectDirector * Kinoko::Field::ObjectDirector::Instance ( )
inlinestaticnodiscard

Definition at line 88 of file ObjectDirector.hh.

◆ managedObjects() [1/2]

fixed_vector< ObjectCollidable * > & Kinoko::Field::ObjectDirector::managedObjects ( )
inlinenodiscard

Definition at line 61 of file ObjectDirector.hh.

◆ managedObjects() [2/2]

const fixed_vector< ObjectCollidable * > & Kinoko::Field::ObjectDirector::managedObjects ( ) const
inlinenodiscard

Definition at line 65 of file ObjectDirector.hh.

◆ psea()

ObjectPsea * Kinoko::Field::ObjectDirector::psea ( ) const
inlinenodiscard

Definition at line 73 of file ObjectDirector.hh.

◆ reaction()

Kart::Reaction Kinoko::Field::ObjectDirector::reaction ( size_t idx) const
inlinenodiscard

Definition at line 51 of file ObjectDirector.hh.

◆ risingWaterKillPlaneHeight()

f32 Kinoko::Field::ObjectDirector::risingWaterKillPlaneHeight ( ) const
nodiscard0x808C70E80x8082B400

Definition at line 120 of file ObjectDirector.cc.

◆ setPsea()

void Kinoko::Field::ObjectDirector::setPsea ( ObjectPsea * psea)
inline

Definition at line 69 of file ObjectDirector.hh.

◆ WanwanMaxPitch()

f32 Kinoko::Field::ObjectDirector::WanwanMaxPitch ( )
inlinestaticnodiscard

Definition at line 81 of file ObjectDirector.hh.

Member Data Documentation

◆ m_calcObjects

fixed_vector<ObjectBase *> Kinoko::Field::ObjectDirector::m_calcObjects
private

Objects needing calc() live here too.

Definition at line 106 of file ObjectDirector.hh.

◆ m_collidingObjects

std::array<ObjectCollidable *, MAX_UNIT_COUNT> Kinoko::Field::ObjectDirector::m_collidingObjects
private

Objects we are currently colliding with.

Definition at line 112 of file ObjectDirector.hh.

◆ m_collisionObjects

fixed_vector<ObjectBase *> Kinoko::Field::ObjectDirector::m_collisionObjects
private

Objects having collision live here too.

Definition at line 107 of file ObjectDirector.hh.

◆ m_flowTable

ObjectFlowTable Kinoko::Field::ObjectDirector::m_flowTable
private

Definition at line 101 of file ObjectDirector.hh.

◆ m_hitDepths

std::array<EGG::Vector3f, MAX_UNIT_COUNT> Kinoko::Field::ObjectDirector::m_hitDepths
private

Definition at line 113 of file ObjectDirector.hh.

◆ m_hitTableKart

ObjectHitTable Kinoko::Field::ObjectDirector::m_hitTableKart
private

Definition at line 102 of file ObjectDirector.hh.

◆ m_hitTableKartObject

ObjectHitTable Kinoko::Field::ObjectDirector::m_hitTableKartObject
private

Definition at line 103 of file ObjectDirector.hh.

◆ m_managedObjects

fixed_vector<ObjectCollidable *> Kinoko::Field::ObjectDirector::m_managedObjects
private

Definition at line 116 of file ObjectDirector.hh.

◆ m_objects

fixed_vector<ObjectBase *> Kinoko::Field::ObjectDirector::m_objects
private

All objects live here.

Definition at line 105 of file ObjectDirector.hh.

◆ m_psea

ObjectPsea* Kinoko::Field::ObjectDirector::m_psea
private

Definition at line 115 of file ObjectDirector.hh.

◆ m_reactions

std::array<Kart::Reaction, MAX_UNIT_COUNT> Kinoko::Field::ObjectDirector::m_reactions
private

Definition at line 114 of file ObjectDirector.hh.

◆ MAX_MANAGED_OBJECTS

size_t Kinoko::Field::ObjectDirector::MAX_MANAGED_OBJECTS = 400
staticconstexprprivate

Maximum number of managed objects.

Definition at line 120 of file ObjectDirector.hh.

◆ MAX_UNIT_COUNT

size_t Kinoko::Field::ObjectDirector::MAX_UNIT_COUNT = 0x100
staticconstexprprivate

Definition at line 109 of file ObjectDirector.hh.

◆ s_instance

ObjectDirector * Kinoko::Field::ObjectDirector::s_instance = nullptr
staticprivate0x809C4330

Definition at line 122 of file ObjectDirector.hh.

◆ s_wanwanMaxPitch

f32 Kinoko::Field::ObjectDirector::s_wanwanMaxPitch
staticprivate0x808C70E8

Definition at line 118 of file ObjectDirector.hh.