#include <ObjectDossunTsuibiHolder.hh>
The manager class for the pair of Thwomps in the long hallway on rBC.
Definition at line 12 of file ObjectDossunTsuibiHolder.hh.
Public Member Functions | |
| ObjectDossunTsuibiHolder (const System::MapdataGeoObj ¶ms) | |
| void | init () override |
| void | calc () override |
| void | calcModel () override |
| LoadFlags | loadFlags () const override |
| Returns a bitmask indicating which lifecycle hooks should be called for the object. | |
| void | loadGraphics () override |
| void | createCollision () override |
| void | startStill () |
| Public Member Functions inherited from Kinoko::Field::ObjectCollidable | |
| 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 |
| f32 | getCollisionRadius () const override |
| Finds the radius that fits fully in a BoxColUnit. | |
| 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 Kart::Reaction | onCollision (Kart::KartObject *, Kart::Reaction reactionOnKart, Kart::Reaction, EGG::Vector3f &) |
| 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 |
| Public Member Functions inherited from Kinoko::Field::ObjectBase | |
| ObjectBase (const System::MapdataGeoObj ¶ms) | |
| ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
| virtual const char * | getResources () const |
| virtual void | loadAnims () |
| virtual void | loadRail () |
| virtual const char * | getName () const |
| virtual const char * | getKclName () const |
| virtual void | resize (f32 radius, f32 maxSpeed) |
| virtual void | unregisterCollision () |
| virtual void | disableCollision () const |
| virtual void | enableCollision () const |
| virtual const BoxColUnit * | getUnit () const |
| const RailInterpolator * | railInterpolator () const |
| virtual const EGG::Vector3f & | getPosition () const |
| virtual ObjectId | id () const |
| void | setPos (const EGG::Vector3f &pos) |
| void | addPos (const EGG::Vector3f &v) |
| void | subPos (const EGG::Vector3f &v) |
| void | setScale (const EGG::Vector3f &scale) |
| void | setScale (f32 scale) |
| void | setRot (const EGG::Vector3f &rot) |
| void | setRotNoFlag (const EGG::Vector3f &rot) |
| void | addRot (const EGG::Vector3f &v) |
| void | subRot (const EGG::Vector3f &v) |
| void | setTransform (const EGG::Matrix34f &mat) |
| const EGG::Vector3f & | pos () const |
| const EGG::Vector3f & | scale () const |
| const EGG::Vector3f & | rot () const |
| const EGG::Matrix34f & | transform () |
Private Types | |
| enum class | State { Still = 0 , Forward = 1 , StartStomp = 2 , Stomping = 3 , Backward = 4 , SillRotating = 5 } |
Private Member Functions | |
| void | calcStill () |
| void | calcForward () |
| void | calcStartStomp () |
| void | calcStomp () |
| void | calcBackwards () |
| void | calcStillRotating () |
| void | calcRot () |
| void | calcForwardRail () |
| void | calcForwardOscillation () |
| void | updatePos (const EGG::Vector3f &pos) |
| void | updateRot (f32 yaw) |
Private Attributes | |
| std::array< ObjectDossunTsuibi *, 2 > | m_dossuns |
| State | m_state |
| EGG::Vector3f | m_initPos |
| u32 | m_stillTimer |
| bool | m_movingForward |
| u32 | m_forwardTimer |
| bool | m_movingSideways |
| Whether the Thwomps should move along the z-axis. | |
| u32 | m_flipSideways |
| Inverts which direction the thwomps move along the z-axis. | |
| u32 | m_sidewaysPhase |
| bool | m_facingBackwards |
| f32 | m_lastStompZ |
| Z-position of the last stomp. | |
| f32 | m_resetZVel |
| Speed required to move from m_lastStompZ to the home's Z in 36 frames. | |
| f32 | m_vel |
| f32 | m_initRotY |
| f32 | m_resetAngVel |
| Rotational speed of Thwomps after returning home. | |
| u32 | m_backwardsCounter |
| const f32 | m_forwardVel |
| Rail velocity. | |
| const u32 | m_stillDuration |
| How long Thwomps remain at their home for. | |
Static Private Attributes | |
| static constexpr u32 | HOME_RESET_FRAMES = 36 |
| How long Thwomps take to reset after returning to home. | |
| static constexpr f32 | DOSSUN_POS_OFFSET = 500.0f |
Additional Inherited Members | |
| Public Types inherited from Kinoko::Field::ObjectBase | |
| enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
| enum class | eLoadFlags { Calc = 0 , Draw = 1 , AlwaysRecalc = 2 } |
| Describes whether the object needs to be updated every frame. More... | |
| typedef EGG::TBitFlag< u16, eFlags > | Flags |
| typedef EGG::TBitFlag< u8, eLoadFlags > | LoadFlags |
| A bitfield of eLoadFlags that represents the update requirements of the object. | |
| Protected Member Functions inherited from Kinoko::Field::ObjectCollidable | |
| virtual const EGG::Vector3f & | collisionCenter () const |
| void | registerManagedObject () |
| Protected Member Functions inherited from Kinoko::Field::ObjectBase | |
| void | calcTransform () |
| void | calcRotLock () |
| void | linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types) |
| void | setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
| void | setMatrixFromOrthonormalBasisAndPos (const EGG::Vector3f &v) |
| Static Protected Member Functions inherited from Kinoko::Field::ObjectBase | |
| static f32 | CheckPointAgainstLineSegment (const EGG::Vector3f &point, const EGG::Vector3f &a, const EGG::Vector3f &b) |
| Calculates on what side of line segment ab point lies. | |
| static EGG::Vector3f | RotateXZByYaw (f32 angle, const EGG::Vector3f &v) |
| Rotates a vector around the Y-axis and returns the XZ-plane portion of the vector. | |
| 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 | AdjustVecForward (f32 sidewaysScalar, f32 forwardScalar, f32 minSpeed, const EGG::Vector3f &src, EGG::Vector3f forward) |
| static f32 | CalcParabolicDisplacement (f32 initVel, f32 accel, u32 frame) |
| Solves the standard kinematic equation \(y(t) = v_0\, t - \frac{1}{2} a t^{2}\). | |
| static EGG::Vector3f | Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1) |
| Protected Attributes inherited from Kinoko::Field::ObjectCollidable | |
| ObjectCollisionBase * | m_collision |
| Protected Attributes inherited from Kinoko::Field::ObjectBase | |
| Render::DrawMdl * | m_drawMdl |
| Abstract::g3d::ResFile * | m_resFile |
| ObjectId | m_id |
| RailInterpolator * | m_railInterpolator |
| BoxColUnit * | m_boxColUnit |
| const System::MapdataGeoObj * | m_mapObj |
|
strongprivate |
Definition at line 65 of file ObjectDossunTsuibiHolder.hh.
|
0x807614D0 |
Definition at line 8 of file ObjectDossunTsuibiHolder.cc.
|
overridedefault0x80764BC8 |
|
overridevirtual0x8076198C |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 43 of file ObjectDossunTsuibiHolder.cc.
|
private0x80762EEC |
Definition at line 121 of file ObjectDossunTsuibiHolder.cc.
|
private0x807624F0 |
Definition at line 78 of file ObjectDossunTsuibiHolder.cc.
|
private0x807634C0 |
Definition at line 183 of file ObjectDossunTsuibiHolder.cc.
|
private0x8076321C |
Definition at line 169 of file ObjectDossunTsuibiHolder.cc.
|
inlineoverridevirtual0x80764A1C |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 21 of file ObjectDossunTsuibiHolder.hh.
|
private0x807625F0 |
Definition at line 137 of file ObjectDossunTsuibiHolder.cc.
|
private |
Definition at line 97 of file ObjectDossunTsuibiHolder.cc.
|
inlineprivate0x807623AC |
Definition at line 41 of file ObjectDossunTsuibiHolder.hh.
|
inlineprivate0x807630D0 |
Definition at line 54 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 114 of file ObjectDossunTsuibiHolder.cc.
|
inlineoverridevirtual0x80764A24 |
Reimplemented from Kinoko::Field::ObjectCollidable.
Definition at line 32 of file ObjectDossunTsuibiHolder.hh.
|
overridevirtual0x80761744 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 22 of file ObjectDossunTsuibiHolder.cc.
|
inlinenodiscardoverridevirtual0x80764A30 |
Returns a bitmask indicating which lifecycle hooks should be called for the object.
In Kinoko, the only effective behavior of this bitmask is to determine whether calc() should be called. The other bits are unused.
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 24 of file ObjectDossunTsuibiHolder.hh.
|
inlineoverridevirtual0x80764A2C |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 29 of file ObjectDossunTsuibiHolder.hh.
|
inline |
Definition at line 34 of file ObjectDossunTsuibiHolder.hh.
|
private0x80762054 |
Definition at line 206 of file ObjectDossunTsuibiHolder.cc.
|
private0x80762190 |
Definition at line 213 of file ObjectDossunTsuibiHolder.cc.
|
staticconstexprprivate |
Definition at line 98 of file ObjectDossunTsuibiHolder.hh.
|
staticconstexprprivate |
How long Thwomps take to reset after returning to home.
Definition at line 97 of file ObjectDossunTsuibiHolder.hh.
|
private |
Ticks up every frame the Thwomps are facing backwards, or are resetting after returning home.
Definition at line 89 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 74 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 83 of file ObjectDossunTsuibiHolder.hh.
|
private |
Inverts which direction the thwomps move along the z-axis.
Definition at line 81 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 79 of file ObjectDossunTsuibiHolder.hh.
|
private |
Rail velocity.
Definition at line 93 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 76 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 87 of file ObjectDossunTsuibiHolder.hh.
|
private |
Z-position of the last stomp.
Definition at line 84 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 78 of file ObjectDossunTsuibiHolder.hh.
|
private |
Whether the Thwomps should move along the z-axis.
Definition at line 80 of file ObjectDossunTsuibiHolder.hh.
|
private |
Rotational speed of Thwomps after returning home.
Definition at line 88 of file ObjectDossunTsuibiHolder.hh.
|
private |
Speed required to move from m_lastStompZ to the home's Z in 36 frames.
Definition at line 85 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 82 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 75 of file ObjectDossunTsuibiHolder.hh.
|
private |
How long Thwomps remain at their home for.
Definition at line 94 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 77 of file ObjectDossunTsuibiHolder.hh.
|
private |
Definition at line 86 of file ObjectDossunTsuibiHolder.hh.