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

Description

Definition at line 21 of file ObjectDirector.hh.

Inheritance diagram for Field::ObjectDirector:

Public Member Functions

void init ()
 
void calc ()
 
void addObject (ObjectCollidable *obj)
 
void addObjectNoImpl (ObjectNoImpl *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 * > & managedObjects ()
 
const std::vector< ObjectCollidable * > & managedObjects () const
 
void setPsea (ObjectPsea *psea)
 
ObjectPseapsea () const
 
f32 distAboveRisingWater (f32 offset) const
 
f32 risingWaterKillPlaneHeight () const
 

Static Public Member Functions

static ObjectDirectorCreateInstance ()
 
static void DestroyInstance ()
 
static ObjectDirectorInstance ()
 

Private Member Functions

void createObjects ()
 
ObjectBasecreateObject (const System::MapdataGeoObj &params)
 
- Private Member Functions inherited from EGG::Disposer

Private Attributes

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

Static Private Attributes

static constexpr size_t MAX_UNIT_COUNT = 0x100
 
static ObjectDirectors_instance = nullptr
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ ObjectDirector()

Field::ObjectDirector::ObjectDirector ( )
private0x8082A38C

Definition at line 148 of file ObjectDirector.cc.

Member Function Documentation

◆ ~ObjectDirector()

Field::ObjectDirector::~ObjectDirector ( )
overrideprivate0x8082A694

Definition at line 153 of file ObjectDirector.cc.

◆ addManagedObject()

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

Definition at line 63 of file ObjectDirector.cc.

◆ addObject()

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

Definition at line 38 of file ObjectDirector.cc.

◆ addObjectNoImpl()

void Field::ObjectDirector::addObjectNoImpl ( ObjectNoImpl * obj)

Definition at line 58 of file ObjectDirector.cc.

◆ calc()

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

Definition at line 25 of file ObjectDirector.cc.

◆ checkKartObjectCollision()

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

Definition at line 68 of file ObjectDirector.cc.

◆ collidingObject()

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

Definition at line 42 of file ObjectDirector.hh.

◆ CreateInstance()

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

Definition at line 126 of file ObjectDirector.cc.

◆ createObject()

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

Definition at line 239 of file ObjectDirector.cc.

◆ createObjects()

void Field::ObjectDirector::createObjects ( )
private0x80826E8C

Definition at line 165 of file ObjectDirector.cc.

◆ DestroyInstance()

void Field::ObjectDirector::DestroyInstance ( )
static0x8082A824

Definition at line 138 of file ObjectDirector.cc.

◆ distAboveRisingWater()

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

Definition at line 114 of file ObjectDirector.cc.

◆ flowTable()

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

Definition at line 34 of file ObjectDirector.hh.

◆ hitDepth()

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

Definition at line 52 of file ObjectDirector.hh.

◆ hitTableKart()

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

Definition at line 38 of file ObjectDirector.hh.

◆ init()

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

Definition at line 15 of file ObjectDirector.cc.

◆ Instance()

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

Definition at line 79 of file ObjectDirector.hh.

◆ managedObjects() [1/2]

std::vector< ObjectCollidable * > & Field::ObjectDirector::managedObjects ( )
inlinenodiscard

Definition at line 57 of file ObjectDirector.hh.

◆ managedObjects() [2/2]

const std::vector< ObjectCollidable * > & Field::ObjectDirector::managedObjects ( ) const
inlinenodiscard

Definition at line 61 of file ObjectDirector.hh.

◆ psea()

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

Definition at line 69 of file ObjectDirector.hh.

◆ reaction()

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

Definition at line 47 of file ObjectDirector.hh.

◆ risingWaterKillPlaneHeight()

f32 Field::ObjectDirector::risingWaterKillPlaneHeight ( ) const
nodiscard0x8082B400

Definition at line 120 of file ObjectDirector.cc.

◆ setPsea()

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

Definition at line 65 of file ObjectDirector.hh.

Member Data Documentation

◆ m_calcObjects

std::vector<ObjectBase *> Field::ObjectDirector::m_calcObjects
private

Objects needing calc() live here too.

Definition at line 95 of file ObjectDirector.hh.

◆ m_collidingObjects

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

Objects we are currently colliding with.

Definition at line 101 of file ObjectDirector.hh.

◆ m_collisionObjects

std::vector<ObjectBase *> Field::ObjectDirector::m_collisionObjects
private

Objects having collision live here too.

Definition at line 96 of file ObjectDirector.hh.

◆ m_flowTable

ObjectFlowTable Field::ObjectDirector::m_flowTable
private

Definition at line 90 of file ObjectDirector.hh.

◆ m_hitDepths

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

Definition at line 102 of file ObjectDirector.hh.

◆ m_hitTableKart

ObjectHitTable Field::ObjectDirector::m_hitTableKart
private

Definition at line 91 of file ObjectDirector.hh.

◆ m_hitTableKartObject

ObjectHitTable Field::ObjectDirector::m_hitTableKartObject
private

Definition at line 92 of file ObjectDirector.hh.

◆ m_managedObjects

std::vector<ObjectCollidable *> Field::ObjectDirector::m_managedObjects
private

Definition at line 105 of file ObjectDirector.hh.

◆ m_objects

std::vector<ObjectBase *> Field::ObjectDirector::m_objects
private

All objects live here.

Definition at line 94 of file ObjectDirector.hh.

◆ m_psea

ObjectPsea* Field::ObjectDirector::m_psea
private

Definition at line 104 of file ObjectDirector.hh.

◆ m_reactions

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

Definition at line 103 of file ObjectDirector.hh.

◆ MAX_UNIT_COUNT

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

Definition at line 98 of file ObjectDirector.hh.

◆ s_instance

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

Definition at line 107 of file ObjectDirector.hh.