Definition at line 7 of file ObjectAmi.hh.
Public Member Functions | |
ObjectAmi (const System::MapdataGeoObj ¶ms) | |
void | init () override |
void | calc () override |
u32 | loadFlags () const override |
void | createCollision () override |
void | calcCollisionTransform () override |
f32 | getCollisionRadius () const override |
bool | checkPointPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkSpherePartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSpherePartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSphereFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSphereFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkPointCachedPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointCachedPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointCachedFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkPointCachedFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
bool | checkSphereCachedPartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSphereCachedPartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSphereCachedFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
bool | checkSphereCachedFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
![]() | |
ObjectDrivable (const System::MapdataGeoObj ¶ms) | |
void | load () override |
f32 | getCollisionRadius () const override |
virtual void | initCollision () |
virtual void | loadAABB (f32 radius) |
virtual void | narrScLocal (f32, const EGG::Vector3f &, KCLTypeMask, u32) |
![]() | |
ObjectBase (const System::MapdataGeoObj ¶ms) | |
ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
virtual void | calcModel () |
virtual const char * | getResources () const |
virtual void | loadGraphics () |
virtual void | loadAnims () |
virtual void | loadRail () |
virtual const char * | getName () const |
virtual const char * | getKclName () const |
virtual const EGG::Vector3f & | getPosition () const |
virtual ObjectId | id () const |
const EGG::Vector3f & | pos () const |
void | setPos (const EGG::Vector3f &pos) |
Private Member Functions | |
bool | checkSpherePartialImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
bool | checkSpherePartialPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
bool | checkSphereFullImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
bool | checkSphereFullPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
template<typename T > requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial> | |
bool | checkSphereImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, bool push) |
Helper function which contains frequently re-used code. Behavior branches depending on whether it is a full or partial check (call CollisionInfo::updateFloor) or push (push entry in the CollisionDirector). | |
bool | checkCollision (f32 radius, const EGG::Vector3f &vel, u32 time, EGG::Vector3f &bbox, EGG::Vector3f &fnrm, f32 &dist) |
Static Private Member Functions | |
static f32 | SpatialSin (f32 phase) |
Computes a spatial sine wave as a function of the z-axis phase. | |
static f32 | TemporalSin (u32 t) |
Not emitted by the game, but computes a sine wave as a function of time. | |
Static Private Attributes | |
static constexpr EGG::Vector3f | DIMS = EGG::Vector3f(2600.0f, 2000.0f, 13800.0f) |
Additional Inherited Members | |
![]() | |
enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
typedef EGG::TBitFlag< u16, eFlags > | Flags |
![]() | |
void | calcTransform () |
void | linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types) |
void | setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
![]() | |
static EGG::Vector3f | RotateAxisAngle (f32 angle, const EGG::Vector3f &axis, const EGG::Vector3f &v1) |
static void | SetRotTangentHorizontal (EGG::Matrix34f &mat, const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
static EGG::Matrix34f | OrthonormalBasis (const EGG::Vector3f &v) |
static EGG::Vector3f | Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1) |
![]() | |
Render::DrawMdl * | m_drawMdl |
Abstract::g3d::ResFile * | m_resFile |
ObjectId | m_id |
RailInterpolator * | m_railInterpolator |
BoxColUnit * | m_boxColUnit |
Flags | m_flags |
EGG::Vector3f | m_pos |
EGG::Vector3f | m_rot |
EGG::Vector3f | m_scale |
EGG::Matrix34f | m_transform |
const System::MapdataGeoObj * | m_mapObj |
|
0x80807ED0 |
Definition at line 12 of file ObjectAmi.cc.
|
inlineoverridevirtual0x80807FF4 |
Reimplemented from Field::ObjectBase.
Definition at line 16 of file ObjectAmi.hh.
|
inlineoverridevirtual0x80808850 |
Implements Field::ObjectBase.
Definition at line 27 of file ObjectAmi.hh.
|
nodiscardprivate0x80808308 |
Definition at line 201 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087D0 |
Implements Field::ObjectDrivable.
Definition at line 78 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087E0 |
Implements Field::ObjectDrivable.
Definition at line 84 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087B0 |
Implements Field::ObjectDrivable.
Definition at line 66 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087C0 |
Implements Field::ObjectDrivable.
Definition at line 72 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x80808820 |
Implements Field::ObjectDrivable.
Definition at line 30 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x80808830 |
Implements Field::ObjectDrivable.
Definition at line 36 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x80808800 |
Implements Field::ObjectDrivable.
Definition at line 18 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x80808810 |
Implements Field::ObjectDrivable.
Definition at line 24 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087A8 |
Implements Field::ObjectDrivable.
Definition at line 104 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087AC |
Implements Field::ObjectDrivable.
Definition at line 110 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087A0 |
Implements Field::ObjectDrivable.
Definition at line 90 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087A4 |
Implements Field::ObjectDrivable.
Definition at line 97 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087F8 |
Implements Field::ObjectDrivable.
Definition at line 54 of file ObjectAmi.cc.
|
nodiscardprivate0x80808CA8 |
Definition at line 130 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087FC |
Implements Field::ObjectDrivable.
Definition at line 60 of file ObjectAmi.cc.
|
nodiscardprivate0x80809060 |
Definition at line 136 of file ObjectAmi.cc.
|
nodiscardprivate |
Helper function which contains frequently re-used code. Behavior branches depending on whether it is a full or partial check (call CollisionInfo::updateFloor) or push (push entry in the CollisionDirector).
T | The CollisionInfo object type, either CollisionInfoPartial or CollisionInfo. |
push | Whether to push a collision entry |
Definition at line 149 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087F0 |
Implements Field::ObjectDrivable.
Definition at line 42 of file ObjectAmi.cc.
|
nodiscardprivate0x808088A0 |
Definition at line 117 of file ObjectAmi.cc.
|
nodiscardoverridevirtual0x808087F4 |
Implements Field::ObjectDrivable.
Definition at line 48 of file ObjectAmi.cc.
|
nodiscardprivate0x80808A8C |
Definition at line 123 of file ObjectAmi.cc.
|
inlineoverridevirtual0x80808854 |
Implements Field::ObjectBase.
Definition at line 24 of file ObjectAmi.hh.
|
inlinenodiscardoverridevirtual0x80808840 |
Reimplemented from Field::ObjectBase.
Definition at line 30 of file ObjectAmi.hh.
|
inlineoverridevirtual0x80807F40 |
Reimplemented from Field::ObjectBase.
Definition at line 13 of file ObjectAmi.hh.
|
inlinenodiscardoverridevirtual0x80808858 |
Reimplemented from Field::ObjectBase.
Definition at line 19 of file ObjectAmi.hh.
|
staticnodiscardprivate0x80808578 |
Computes a spatial sine wave as a function of the z-axis phase.
The behavior is such that the net bounce is the most extreme when in the middle of the net and dampened as you approach the beginning or end along the z-axis.
Definition at line 230 of file ObjectAmi.cc.
|
staticnodiscardprivate |
Not emitted by the game, but computes a sine wave as a function of time.
This computes the up/down motion of the net, with a period of 70 frames.
Definition at line 236 of file ObjectAmi.cc.
|
staticconstexprprivate |
Definition at line 100 of file ObjectAmi.hh.