#include <CollisionDirector.hh>
Manages the caching of colliding KCL triangles and exposes queries for collision checks.
Definition at line 15 of file CollisionDirector.hh.
Classes | |
struct | CollisionEntry |
Public Member Functions | |
void | checkCourseColNarrScLocal (f32 radius, const EGG::Vector3f &pos, KCLTypeMask mask, u32 timeOffset) |
bool | checkSphereFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
bool | checkSphereFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
bool | checkSphereCachedPartial (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask typeMask, CollisionInfoPartial *info, KCLTypeMask *typeMaskOut, u32 timeOffset) |
bool | checkSphereCachedPartialPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask typeMask, CollisionInfoPartial *info, KCLTypeMask *typeMaskOut, u32 timeOffset) |
bool | checkSphereCachedFullPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask typeMask, CollisionInfo *info, KCLTypeMask *typeMaskOut, u32 timeOffset) |
void | resetCollisionEntries (KCLTypeMask *ptr) |
void | pushCollisionEntry (f32 dist, KCLTypeMask *typeMask, KCLTypeMask kclTypeBit, u16 attribute) |
Called when we find a piece of collision we are touching and want to save it temporarily. | |
void | setCurrentCollisionVariant (u16 attribute) |
void | setCurrentCollisionTrickable (bool trickable) |
bool | findClosestCollisionEntry (KCLTypeMask *typeMask, KCLTypeMask type) |
Finds the closest KCL triangle out of the list of tris we are colliding with. | |
Static Public Member Functions | |
static CollisionDirector * | CreateInstance () |
static void | DestroyInstance () |
static CollisionDirector * | Instance () |
Getters | |
const CollisionEntry * | closestCollisionEntry () const |
Private Attributes | |
const CollisionEntry * | m_closestCollisionEntry |
std::array< CollisionEntry, COLLISION_ARR_LENGTH > | m_entries |
size_t | m_collisionEntryCount |
Static Private Attributes | |
static CollisionDirector * | s_instance = nullptr |
Additional Inherited Members | |
![]() | |
![]() | |
static constexpr u16 | getLinkOffset () |
|
private0x8078E33C |
Definition at line 278 of file CollisionDirector.cc.
|
overrideprivate0x8078E454 |
Definition at line 285 of file CollisionDirector.cc.
|
0x8078E4F0 |
Definition at line 8 of file CollisionDirector.cc.
|
nodiscard0x807907F8 |
Definition at line 175 of file CollisionDirector.cc.
|
nodiscard0x807901F0 |
Definition at line 105 of file CollisionDirector.cc.
|
nodiscard0x807903BC |
Definition at line 145 of file CollisionDirector.cc.
|
nodiscard0x8078F500 |
Definition at line 15 of file CollisionDirector.cc.
|
nodiscard0x8078F784 |
Definition at line 60 of file CollisionDirector.cc.
|
inlinenodiscard |
Definition at line 70 of file CollisionDirector.hh.
|
static0x8078DFE8 |
Definition at line 263 of file CollisionDirector.cc.
|
static0x8078E124 |
Definition at line 270 of file CollisionDirector.cc.
|
0x807BD96C |
Finds the closest KCL triangle out of the list of tris we are colliding with.
type | Filters the result for particular KCL types |
Definition at line 246 of file CollisionDirector.cc.
|
inlinestaticnodiscard |
Definition at line 78 of file CollisionDirector.hh.
|
0x807BDA9C |
Called when we find a piece of collision we are touching and want to save it temporarily.
dist | Distance from player to the KCL traingle center |
typeMask | Updated to include kclTypeBit |
kclTypeBit | The attribute and additional info about the tri we are colliding with |
attribute | The base type of the tri we are colliding with |
Definition at line 232 of file CollisionDirector.cc.
|
0x807BDA7C |
Definition at line 220 of file CollisionDirector.cc.
|
inline0x807BDBC4 |
Definition at line 57 of file CollisionDirector.hh.
|
inline0x807BDB5C |
Definition at line 48 of file CollisionDirector.hh.
|
private |
Definition at line 86 of file CollisionDirector.hh.
|
private |
Definition at line 88 of file CollisionDirector.hh.
|
private |
Definition at line 87 of file CollisionDirector.hh.
|
staticprivate0x809C2F44 |
Definition at line 90 of file CollisionDirector.hh.