diff options
Diffstat (limited to 'include/d/d_player_act.h')
| -rw-r--r-- | include/d/d_player_act.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/include/d/d_player_act.h b/include/d/d_player_act.h index 2a948aa8..4d3b9dc2 100644 --- a/include/d/d_player_act.h +++ b/include/d/d_player_act.h @@ -413,7 +413,7 @@ public: /* vt 0x2A8 */ virtual void lookTowardItem() {} /* vt 0x2AC */ virtual void vt_0x2AC() {} /* vt 0x2B0 */ virtual void vt_0x2B0() {} - /* vt 0x2B4 */ virtual void triggerMoveEventMaybe(u32, u32, u32, mVec3_c &, const mAng &, u32, u32) {} + /* vt 0x2B4 */ virtual void triggerMoveEventMaybe(u32, u32, u32, const mVec3_c *, const mAng&, u32, u32) {} /* vt 0x2B8 */ virtual void setActorRef9() {} /* vt 0x2BC */ virtual void unlinkActorRef9() {} /* vt 0x2C0 */ virtual bool vt_0x2C0() { @@ -463,6 +463,19 @@ public: ATTACK_FINAL_BLOW = 11, }; + enum SpecificPlayerAttackDirection_e { + /* 0x000 */ ATTACK_DIRECTION_NONE = 0, + /* 0x001 */ ATTACK_DIRECTION_DOWN = 1 << 0, + /* 0x002 */ ATTACK_DIRECTION_DOWNRIGHT = 1 << 1, + /* 0x004 */ ATTACK_DIRECTION_RIGHT = 1 << 2, + /* 0x008 */ ATTACK_DIRECTION_UPRIGHT = 1 << 3, + /* 0x010 */ ATTACK_DIRECTION_UP = 1 << 4, + /* 0x020 */ ATTACK_DIRECTION_UPLEFT = 1 << 5, + /* 0x040 */ ATTACK_DIRECTION_LEFT = 1 << 6, + /* 0x080 */ ATTACK_DIRECTION_DOWNLEFT = 1 << 7, + /* 0x100 */ ATTACK_DIRECTION_STAB = 1 << 8, + }; + enum ModelUpdateFlags_e { UPDATE_MODEL_SWORD = 0x20, UPDATE_MODEL_SHIELD = 0x40, @@ -625,6 +638,14 @@ public: return mAttackDirection != ATTACK_NONE; } + bool isAttackingJumpSlash() const { + return mAttackDirection == ATTACK_JUMP_SLASH; + } + + u16 getSpecificAttackDirection() const { + return mSpecificAttackDirection; + } + inline bool hasvt_0x1C0() const { return vt_0x1C0() != nullptr; } @@ -637,6 +658,9 @@ public: bool isAttackingStab() const; bool isAttackingSpinHorizontal() const; bool isAttackingSpinVertical() const; + bool isAttackingSpin() const { + return isAttackingSpinHorizontal() || isAttackingSpinVertical(); + } void setBonkRelatedAnimFlag(bool b); void setPosYRot(const mVec3_c &pos, mAng rot, bool force = false, UNKWORD = 0, UNKWORD = 0); void setTransform(const mMtx_c &mtx, bool force, UNKWORD, UNKWORD); @@ -668,7 +692,8 @@ protected: /* 0x334 */ f32 field_0x334; /* 0x338 */ u8 mAttackDirection; /* 0x339 */ u8 mRidingActorType; - /* 0x33A */ u8 unk_0x33A[0x340 - 0x33A]; + /* 0x33A */ u16 mSpecificAttackDirection; + /* 0x33C */ u8 unk_0x33C[0x340 - 0x33C]; /* 0x340 */ u32 someFlags_0x340; /* 0x344 */ u32 mFaceUpdateFlags; /* 0x348 */ u32 mSwordAndMoreStates; |
