Definition at line 144 of file ObjectHanachan.hh.
Public Member Functions | |
| ObjectHanachan (const System::MapdataGeoObj ¶ms) | |
| void | init () override |
| void | calc () override |
| u32 | loadFlags () const override |
| void | loadGraphics () override |
| void | createCollision () override |
Public Member Functions inherited from 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 Field::ObjectBase | |
| 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 | 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 |
| const EGG::Vector3f & | pos () const |
| void | setPos (const EGG::Vector3f &pos) |
| void | setScale (const EGG::Vector3f &scale) |
| void | setTransform (const EGG::Matrix34f &mat) |
| const EGG::Vector3f & | scale () const |
Private Types | |
| enum class | RailAlignment { Aligned = -1 , Unknown = 0 , MisalignedLeft = 1 , MisalignedRight = 2 } |
Private Member Functions | |
| void | initWalk () |
| void | initWait () |
| void | calcWalk () |
| void | calcWait () |
| void | onSegmentEnd () |
| void | calcRail () |
| void | calcBody () |
| void | initBody () |
| void | initChain () |
| void | clearChain () |
| void | calcRailAlignmentMotion () |
| If the wiggler has moved out of alignment of the rail, then applies a lateral adjustment to the wiggler's body part segments. | |
| void | calcSlowMotion () |
| void | calcFastMotion (s32 frame) |
| void | calcLateralMotion (f32 amplitude, f32 period, f32 wavelength, s16 frame) |
| RailAlignment | calcRailAlignment () const |
| bool | shouldStartMoving () const |
| void | setMovingVel () |
| ObjectHanachanHead *& | headPart () |
| std::span< ObjectHanachanPart * > | bodyParts () |
Private Attributes | |
| std::array< ObjectHanachanPart *, 7 > | m_parts |
| HanachanChainManager | m_chain |
| const f32 | m_movingVel |
| std::array< float, 7 > | m_partDisplacement |
| Total distance between a given part and the head. | |
| u16 | m_stillDuration |
| f32 | m_stillAngVel |
| Affects body part swaying when coming to a standstill. | |
| bool | m_still |
| u16 | m_leftMisalignFrame |
| Frame at which the wiggler became left-misaligned from the rail. | |
| EGG::Vector3f | m_right |
| RailAlignment | m_railAlignment |
| Captures when the wiggle takes sharp turns. | |
| RailAlignment | m_prevRailAlignment |
Static Private Attributes | |
| static constexpr std::array< f32, 6 > | BODY_PART_DISTANCES |
| The distance between each body part link in the chain. | |
| static constexpr std::array< StateManagerEntry, 2 > | STATE_ENTRIES |
Additional Inherited Members | |
Public Types inherited from Field::ObjectBase | |
| enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
| typedef EGG::TBitFlag< u16, eFlags > | Flags |
Protected Member Functions inherited from Field::ObjectCollidable | |
| virtual const EGG::Vector3f & | collisionCenter () const |
| void | registerManagedObject () |
Protected Member Functions inherited from 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) |
Protected Member Functions inherited from Field::StateManager | |
| StateManager (void *obj, const std::span< const StateManagerEntry > &entries) | |
| void | calc () |
Static Protected Member Functions inherited from 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::Matrix34f | RailOrthonormalBasis (const RailInterpolator &railInterpolator) |
| 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 Field::ObjectCollidable | |
| ObjectCollisionBase * | m_collision |
Protected Attributes inherited from Field::ObjectBase | |
| 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_scale |
| EGG::Vector3f | m_rot |
| bool | m_rotLock |
| EGG::Matrix34f | m_transform |
| const System::MapdataGeoObj * | m_mapObj |
Protected Attributes inherited from Field::StateManager | |
| u16 | m_currentStateId |
| s32 | m_nextStateId |
| u32 | m_currentFrame |
| std::span< u16 > | m_entryIds |
| std::span< const StateManagerEntry > | m_entries |
| void * | m_obj |
|
strongprivate |
Definition at line 170 of file ObjectHanachan.hh.
|
0x806C8A5C |
Definition at line 120 of file ObjectHanachan.cc.
|
inlinenodiscardprivate |
Definition at line 227 of file ObjectHanachan.hh.
|
inlineoverridevirtual0x806C9860 |
Reimplemented from Field::ObjectBase.
Definition at line 152 of file ObjectHanachan.hh.
|
private0x806CA2F0 |
Definition at line 247 of file ObjectHanachan.cc.
|
inlineprivate0x806CAC94 |
Definition at line 202 of file ObjectHanachan.hh.
|
private0x806CACD0 |
Definition at line 313 of file ObjectHanachan.cc.
|
private0x806CA27C |
Definition at line 238 of file ObjectHanachan.cc.
|
nodiscardprivate0x806CAFB8 |
Definition at line 330 of file ObjectHanachan.cc.
|
private0x806CAB5C |
If the wiggler has moved out of alignment of the rail, then applies a lateral adjustment to the wiggler's body part segments.
Definition at line 293 of file ObjectHanachan.cc.
|
inlineprivate0x806CAC74 |
Definition at line 194 of file ObjectHanachan.hh.
|
private0x806C9F98 |
Definition at line 206 of file ObjectHanachan.cc.
|
private0x806C9D38 |
Definition at line 189 of file ObjectHanachan.cc.
|
private0x806CAAD0 |
Definition at line 284 of file ObjectHanachan.cc.
|
inlineoverridevirtual0x806CC9F4 |
Reimplemented from Field::ObjectCollidable.
Definition at line 167 of file ObjectHanachan.hh.
|
inlinenodiscardprivate |
Definition at line 223 of file ObjectHanachan.hh.
|
overridevirtual0x806C9630 |
Reimplemented from Field::ObjectBase.
Definition at line 162 of file ObjectHanachan.cc.
|
private0x806CA72C |
Definition at line 264 of file ObjectHanachan.cc.
|
private0x806CA9AC |
Definition at line 275 of file ObjectHanachan.cc.
|
inlineprivate0x806C9EC8 |
Definition at line 180 of file ObjectHanachan.hh.
|
private0x806C9BC0 |
Definition at line 181 of file ObjectHanachan.cc.
|
inlinenodiscardoverridevirtual0x806CC9FC |
Reimplemented from Field::ObjectBase.
Definition at line 159 of file ObjectHanachan.hh.
|
inlineoverridevirtual0x806CC9F8 |
Reimplemented from Field::ObjectBase.
Definition at line 164 of file ObjectHanachan.hh.
|
private0x806CA24C |
Definition at line 229 of file ObjectHanachan.cc.
|
inlineprivate0x806CBE2C |
Definition at line 219 of file ObjectHanachan.hh.
|
inlinenodiscardprivate0x806CAF9C |
Definition at line 214 of file ObjectHanachan.hh.
|
staticconstexprprivate |
The distance between each body part link in the chain.
Definition at line 244 of file ObjectHanachan.hh.
|
private |
Definition at line 232 of file ObjectHanachan.hh.
|
private |
Frame at which the wiggler became left-misaligned from the rail.
Definition at line 238 of file ObjectHanachan.hh.
|
private |
Definition at line 233 of file ObjectHanachan.hh.
|
private |
Total distance between a given part and the head.
Definition at line 234 of file ObjectHanachan.hh.
|
private |
Definition at line 231 of file ObjectHanachan.hh.
|
private |
Definition at line 241 of file ObjectHanachan.hh.
|
private |
Captures when the wiggle takes sharp turns.
Definition at line 240 of file ObjectHanachan.hh.
|
private |
Definition at line 239 of file ObjectHanachan.hh.
|
private |
Definition at line 237 of file ObjectHanachan.hh.
|
private |
Affects body part swaying when coming to a standstill.
Definition at line 236 of file ObjectHanachan.hh.
|
private |
Definition at line 235 of file ObjectHanachan.hh.
|
staticconstexprprivate |
Definition at line 253 of file ObjectHanachan.hh.