#include <ObjectPress.hh>
Represents the Toad's Factory stompers.
This is also a base class for item boxes that get squished by stompers.
Definition at line 9 of file ObjectPress.hh.
Public Member Functions | |
ObjectPress (const System::MapdataGeoObj ¶ms) | |
void | init () override |
void | calc () override |
u32 | loadFlags () const override |
void | loadAnims () override |
void | createCollision () override |
f32 | getCollisionRadius () const override |
Finds the radius that fits fully in a BoxColUnit. | |
Kart::Reaction | onCollision (Kart::KartObject *kartObj, Kart::Reaction reactionOnKart, Kart::Reaction reactionOnObj, EGG::Vector3f &hitDepth) override |
virtual void | calcRaised () |
![]() | |
ObjectCollidable (const System::MapdataGeoObj ¶ms) | |
ObjectCollidable (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
void | load () override |
void | calcCollisionTransform () override |
virtual void | loadAABB (f32 maxSpeed) |
virtual void | loadAABB (f32 radius, f32 maxSpeed) |
virtual void | processKartReactions (Kart::KartObject *kartObj, Kart::Reaction &reactionOnKart, Kart::Reaction &reactionOnObj) |
virtual void | onWallCollision (Kart::KartObject *, const EGG::Vector3f &) |
virtual void | onObjectCollision (Kart::KartObject *) |
virtual bool | checkCollision (ObjectCollisionBase *lhs, EGG::Vector3f &dist) |
virtual const EGG::Vector3f & | getCollisionTranslation () const |
virtual ObjectCollisionBase * | collision () const |
![]() | |
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 | 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) |
Protected Types | |
enum class | State { Raised , WindUp , Lowering , Lowered , Raising } |
Protected Attributes | |
State | m_state |
u32 | m_windUpTimer |
Number of frames remaining in windup state. | |
![]() | |
ObjectCollisionBase * | m_collision |
![]() | |
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 |
Private Member Functions | |
void | calcWindUp () |
void | calcLowering () |
void | checkCollisionLowering () |
void | calcLowered () |
void | calcRaising () |
Private Attributes | |
bool | m_startingRise |
Used to delay state change by 1 frame. | |
u32 | m_raisedTimer |
Number of frames remaining in raised state. | |
u32 | m_anmDuration |
f32 | m_loweringVelocity |
f32 | m_raisedHeight |
f32 | m_loweredHeight |
bool | m_startedLowered |
Used to induce crush effect even if it hit floor this frame. | |
Static Private Attributes | |
static constexpr f32 | ANM_RATE = 2.0f |
Additional Inherited Members | |
![]() | |
enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
typedef EGG::TBitFlag< u16, eFlags > | Flags |
![]() | |
virtual const EGG::Vector3f & | collisionCenter () const |
void | registerManagedObject () |
![]() | |
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) |
|
strongprotected |
Enumerator | |
---|---|
WindUp | Rising up a bit before stomping down. |
Lowering | Stomping down. |
Lowered | Contacting the floor. |
Definition at line 35 of file ObjectPress.hh.
|
0x80777564 |
Definition at line 11 of file ObjectPress.cc.
|
overridevirtual0x8077788C |
Reimplemented from Field::ObjectBase.
Definition at line 55 of file ObjectPress.cc.
|
private |
Definition at line 166 of file ObjectPress.cc.
|
private0x80777B90 |
Definition at line 156 of file ObjectPress.cc.
|
virtual0x80777A90 |
Definition at line 135 of file ObjectPress.cc.
|
private |
Definition at line 183 of file ObjectPress.cc.
|
private |
Definition at line 144 of file ObjectPress.cc.
|
private0x80777D10 |
Definition at line 200 of file ObjectPress.cc.
|
overridevirtual0x8077840C |
Reimplemented from Field::ObjectCollidable.
Definition at line 91 of file ObjectPress.cc.
|
inlinenodiscardoverridevirtual |
Finds the radius that fits fully in a BoxColUnit.
We refer to the collision parameters as a box due to its use of axes. This does not imply that all collidable objects are boxes!
Reimplemented from Field::ObjectCollidable.
Definition at line 25 of file ObjectPress.hh.
|
overridevirtual0x8077763C |
Reimplemented from Field::ObjectBase.
Definition at line 18 of file ObjectPress.cc.
|
overridevirtual0x807786E4 |
Reimplemented from Field::ObjectBase.
Definition at line 78 of file ObjectPress.cc.
|
inlinenodiscardoverridevirtual0x807787E8 |
Reimplemented from Field::ObjectBase.
Definition at line 18 of file ObjectPress.hh.
|
overridevirtual0x807782D4 |
Reimplemented from Field::ObjectCollidable.
Definition at line 116 of file ObjectPress.cc.
|
staticconstexprprivate |
Definition at line 61 of file ObjectPress.hh.
|
private |
Definition at line 55 of file ObjectPress.hh.
|
private |
Definition at line 58 of file ObjectPress.hh.
|
private |
Definition at line 56 of file ObjectPress.hh.
|
private |
Definition at line 57 of file ObjectPress.hh.
|
private |
Number of frames remaining in raised state.
Definition at line 54 of file ObjectPress.hh.
|
private |
Used to induce crush effect even if it hit floor this frame.
Definition at line 59 of file ObjectPress.hh.
|
private |
Used to delay state change by 1 frame.
Definition at line 53 of file ObjectPress.hh.
|
protected |
Definition at line 43 of file ObjectPress.hh.
|
protected |
Number of frames remaining in windup state.
Definition at line 44 of file ObjectPress.hh.