| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include "Library/LiveActor/LiveActor.h" |
| 4 | |
| 5 | namespace al { |
| 6 | class JointSpringControllerHolder; |
| 7 | } |
| 8 | class Shine; |
| 9 | |
| 10 | class Mummy : public al::LiveActor { |
| 11 | public: |
| 12 | Mummy(const char* name); |
| 13 | |
| 14 | void init(const al::ActorInitInfo& info) override; |
| 15 | |
| 16 | inline void setupEffectMatrix(); |
| 17 | inline void checkEffects(); |
| 18 | inline void adjustVelocity(); |
| 19 | inline bool isAsleep() const; |
| 20 | |
| 21 | void startSleep(); |
| 22 | void attackSensor(al::HitSensor* other, al::HitSensor* self) override; |
| 23 | bool isHide(); |
| 24 | bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other, |
| 25 | al::HitSensor* self) override; |
| 26 | void control() override; |
| 27 | |
| 28 | void setKnuckleMode(); |
| 29 | void appearWithTrans(const sead::Vector3f& trans); |
| 30 | void setupEffect(); |
| 31 | void appearByTreasureBox(const sead::Vector3f& trans); |
| 32 | void startWalkByTreasureBox(); |
| 33 | |
| 34 | void sleep(); |
| 35 | void exeSleepShineStop(); |
| 36 | void exeSleepShine(); |
| 37 | void exeSleep(); |
| 38 | void exeWait(); |
| 39 | void exeAppear(); |
| 40 | void exeAppearAir(); |
| 41 | void exeWalkStart(); |
| 42 | void walk(); |
| 43 | void exeWalk(); |
| 44 | inline bool isOnSpecialGround() const; |
| 45 | bool isHideByTimeLimit() const; |
| 46 | void exeHeadLost(); |
| 47 | void exeHalfReaction(); |
| 48 | void exeHideStart(); |
| 49 | void exeHide(); |
| 50 | void exeBlowDown(); |
| 51 | |
| 52 | private: |
| 53 | al::JointSpringControllerHolder* mJointSpringControllerHolder = nullptr; |
| 54 | Shine* mShineActor = nullptr; |
| 55 | f32 mWalkDirectionOffset = 0.0f; |
| 56 | s32 mWalkDirectionChangeTimer = 60; |
| 57 | s32 mHeadRegenTimer = 0; |
| 58 | s32 mEffectTimer = 0; |
| 59 | s32 mTimeLimit = 0; |
| 60 | s32 mInvulnerableTimer = 0; |
| 61 | sead::Matrix34f mEffectMatrix = sead::Matrix34f::ident; |
| 62 | bool mIsHeadLost = false; |
| 63 | bool mHasCoin = false; |
| 64 | bool mIsTreasureBoxSpawned = false; |
| 65 | bool mIsNoHitStop = false; |
| 66 | }; |
| 67 |