#include <CollisionDirector.hh>
Manages the caching of colliding KCL triangles and exposes queries for collision checks.
Definition at line 21 of file CollisionDirector.hh.
Classes | |
struct | CollisionEntry |
Public Types | |
enum class | eCollisionAttribute { Trickable = 13 , RejectRoad = 14 , Soft = 15 } |
Collision Entry Attribute fields. More... | |
typedef EGG::TBitFlag< u16, eCollisionAttribute > | CollisionAttribute |
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, CollisionAttribute 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 () |
Definition at line 33 of file CollisionDirector.hh.
|
strong |
Collision Entry Attribute fields.
| 0 - 4 | 5 - 7 | 8 | 9 | 10 | 11 - 12 | 13 | 14 | 15 | | BaseType | Variant | | | | Intensity | Trickable | Offroad | Soft |
Definition at line 28 of file CollisionDirector.hh.
|
private0x8078E33C |
Definition at line 264 of file CollisionDirector.cc.
|
overrideprivate0x8078E454 |
Definition at line 271 of file CollisionDirector.cc.
|
0x8078E4F0 |
Definition at line 8 of file CollisionDirector.cc.
|
nodiscard0x807907F8 |
Definition at line 166 of file CollisionDirector.cc.
|
nodiscard0x807901F0 |
Definition at line 96 of file CollisionDirector.cc.
|
nodiscard0x807903BC |
Definition at line 136 of file CollisionDirector.cc.
|
nodiscard0x8078F500 |
Definition at line 15 of file CollisionDirector.cc.
|
nodiscard0x8078F784 |
Definition at line 55 of file CollisionDirector.cc.
|
inlinenodiscard |
Definition at line 97 of file CollisionDirector.hh.
|
static0x8078DFE8 |
Definition at line 249 of file CollisionDirector.cc.
|
static0x8078E124 |
Definition at line 256 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 232 of file CollisionDirector.cc.
|
inlinestaticnodiscard |
Definition at line 105 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 218 of file CollisionDirector.cc.
|
0x807BDA7C |
Definition at line 206 of file CollisionDirector.cc.
|
inline0x807BDBC4 |
Definition at line 88 of file CollisionDirector.hh.
|
inline0x807BDB5C |
Definition at line 82 of file CollisionDirector.hh.
|
private |
Definition at line 113 of file CollisionDirector.hh.
|
private |
Definition at line 115 of file CollisionDirector.hh.
|
private |
Definition at line 114 of file CollisionDirector.hh.
|
staticprivate0x809C2F44 |
Definition at line 117 of file CollisionDirector.hh.