Definition at line 150 of file ObjectHanachan.hh.
Public Member Functions | |
| ObjectHanachan (const System::MapdataGeoObj ¶ms) | |
| void | init () override |
| void | calc () override |
| LoadFlags | loadFlags () const override |
| Returns a bitmask indicating which lifecycle hooks should be called for the object. | |
| void | loadGraphics () override |
| void | createCollision () override |
| 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 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 |
| 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 | 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 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) |
| Protected Member Functions inherited from Kinoko::Field::StateManager | |
| StateManager (void *obj, const std::span< const StateManagerEntry > &entries) | |
| void | calc () |
| 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 |
| Protected Attributes inherited from Kinoko::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 176 of file ObjectHanachan.hh.
|
0x806C8A5C |
Definition at line 107 of file ObjectHanachan.cc.
|
overridedefault0x806C9598 |
|
inlinenodiscardprivate |
Definition at line 233 of file ObjectHanachan.hh.
|
inlineoverridevirtual0x806C9860 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 158 of file ObjectHanachan.hh.
|
private0x806CA2F0 |
Definition at line 234 of file ObjectHanachan.cc.
|
inlineprivate0x806CAC94 |
Definition at line 208 of file ObjectHanachan.hh.
|
private0x806CACD0 |
Definition at line 300 of file ObjectHanachan.cc.
|
private0x806CA27C |
Definition at line 225 of file ObjectHanachan.cc.
|
nodiscardprivate0x806CAFB8 |
Definition at line 317 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 280 of file ObjectHanachan.cc.
|
inlineprivate0x806CAC74 |
Definition at line 200 of file ObjectHanachan.hh.
|
private0x806C9F98 |
Definition at line 193 of file ObjectHanachan.cc.
|
private0x806C9D38 |
Definition at line 176 of file ObjectHanachan.cc.
|
private0x806CAAD0 |
Definition at line 271 of file ObjectHanachan.cc.
|
inlineoverridevirtual0x806CC9F4 |
Reimplemented from Kinoko::Field::ObjectCollidable.
Definition at line 173 of file ObjectHanachan.hh.
|
inlinenodiscardprivate |
Definition at line 229 of file ObjectHanachan.hh.
|
overridevirtual0x806C9630 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 149 of file ObjectHanachan.cc.
|
private0x806CA72C |
Definition at line 251 of file ObjectHanachan.cc.
|
private0x806CA9AC |
Definition at line 262 of file ObjectHanachan.cc.
|
inlineprivate0x806C9EC8 |
Definition at line 186 of file ObjectHanachan.hh.
|
private0x806C9BC0 |
Definition at line 168 of file ObjectHanachan.cc.
|
inlinenodiscardoverridevirtual0x806CC9FC |
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 165 of file ObjectHanachan.hh.
|
inlineoverridevirtual0x806CC9F8 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 170 of file ObjectHanachan.hh.
|
private0x806CA24C |
Definition at line 216 of file ObjectHanachan.cc.
|
inlineprivate0x806CBE2C |
Definition at line 225 of file ObjectHanachan.hh.
|
inlinenodiscardprivate0x806CAF9C |
Definition at line 220 of file ObjectHanachan.hh.
|
staticconstexprprivate |
The distance between each body part link in the chain.
Definition at line 250 of file ObjectHanachan.hh.
|
private |
Definition at line 238 of file ObjectHanachan.hh.
|
private |
Frame at which the wiggler became left-misaligned from the rail.
Definition at line 244 of file ObjectHanachan.hh.
|
private |
Definition at line 239 of file ObjectHanachan.hh.
|
private |
Total distance between a given part and the head.
Definition at line 240 of file ObjectHanachan.hh.
|
private |
Definition at line 237 of file ObjectHanachan.hh.
|
private |
Definition at line 247 of file ObjectHanachan.hh.
|
private |
Captures when the wiggle takes sharp turns.
Definition at line 246 of file ObjectHanachan.hh.
|
private |
Definition at line 245 of file ObjectHanachan.hh.
|
private |
Definition at line 243 of file ObjectHanachan.hh.
|
private |
Affects body part swaying when coming to a standstill.
Definition at line 242 of file ObjectHanachan.hh.
|
private |
Definition at line 241 of file ObjectHanachan.hh.
|
staticconstexprprivate |
Definition at line 259 of file ObjectHanachan.hh.