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 ObjectFlowTableflowTable () const
const ObjectHitTablehitTableKart () const
const ObjectCollidablecollidingObject (size_t idx) const
Kart::Reaction reaction (size_t idx) const
const EGG::Vector3fhitDepth (size_t idx) const
std::vector< ObjectCollidable *, EGG::Allocator< ObjectCollidable * > > & managedObjects ()
const std::vector< ObjectCollidable *, EGG::Allocator< ObjectCollidable * > > & managedObjects () const
void setPsea (ObjectPsea *psea)
ObjectPseapsea () 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 ()
ObjectBasecreateObject (const System::MapdataGeoObj &params)

Private Attributes

ObjectFlowTable m_flowTable
ObjectHitTable m_hitTableKart
ObjectHitTable m_hitTableKartObject
std::vector< ObjectBase *, EGG::Allocator< ObjectBase * > > m_objects
 All objects live here.
std::vector< ObjectBase *, EGG::Allocator< ObjectBase * > > m_calcObjects
 Objects needing calc() live here too.
std::vector< ObjectBase *, EGG::Allocator< 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
ObjectPseam_psea
std::vector< ObjectCollidable *, EGG::Allocator< ObjectCollidable * > > m_managedObjects

Static Private Attributes

static constexpr size_t MAX_UNIT_COUNT = 0x100
static f32 s_wanwanMaxPitch
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 153 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 243 of file ObjectDirector.cc.

◆ createObjects()

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

Definition at line 165 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 90 of file ObjectDirector.hh.

◆ managedObjects() [1/2]

std::vector< ObjectCollidable *, EGG::Allocator< ObjectCollidable * > > & Kinoko::Field::ObjectDirector::managedObjects ( )
inlinenodiscard

Definition at line 62 of file ObjectDirector.hh.

◆ managedObjects() [2/2]

const std::vector< ObjectCollidable *, EGG::Allocator< ObjectCollidable * > > & Kinoko::Field::ObjectDirector::managedObjects ( ) const
inlinenodiscard

Definition at line 67 of file ObjectDirector.hh.

◆ psea()

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

Definition at line 75 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 71 of file ObjectDirector.hh.

◆ WanwanMaxPitch()

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

Definition at line 83 of file ObjectDirector.hh.

Member Data Documentation

◆ m_calcObjects

std::vector<ObjectBase *, EGG::Allocator<ObjectBase *> > Kinoko::Field::ObjectDirector::m_calcObjects
private

Objects needing calc() live here too.

Definition at line 109 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 116 of file ObjectDirector.hh.

◆ m_collisionObjects

std::vector<ObjectBase *, EGG::Allocator<ObjectBase *> > Kinoko::Field::ObjectDirector::m_collisionObjects
private

Objects having collision live here too.

Definition at line 111 of file ObjectDirector.hh.

◆ m_flowTable

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

Definition at line 103 of file ObjectDirector.hh.

◆ m_hitDepths

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

Definition at line 117 of file ObjectDirector.hh.

◆ m_hitTableKart

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

Definition at line 104 of file ObjectDirector.hh.

◆ m_hitTableKartObject

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

Definition at line 105 of file ObjectDirector.hh.

◆ m_managedObjects

std::vector<ObjectCollidable *, EGG::Allocator<ObjectCollidable *> > Kinoko::Field::ObjectDirector::m_managedObjects
private

Definition at line 120 of file ObjectDirector.hh.

◆ m_objects

std::vector<ObjectBase *, EGG::Allocator<ObjectBase *> > Kinoko::Field::ObjectDirector::m_objects
private

All objects live here.

Definition at line 107 of file ObjectDirector.hh.

◆ m_psea

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

Definition at line 119 of file ObjectDirector.hh.

◆ m_reactions

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

Definition at line 118 of file ObjectDirector.hh.

◆ MAX_UNIT_COUNT

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

Definition at line 113 of file ObjectDirector.hh.

◆ s_instance

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

Definition at line 124 of file ObjectDirector.hh.

◆ s_wanwanMaxPitch

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

Definition at line 122 of file ObjectDirector.hh.