diff --git a/config/RZDE01_02/symbols.txt b/config/RZDE01_02/symbols.txt index bb699751bf..9822431b82 100644 --- a/config/RZDE01_02/symbols.txt +++ b/config/RZDE01_02/symbols.txt @@ -32765,7 +32765,7 @@ j3dDefaultColInfo = .sdata2:0x80526310; // type:object size:0x4 data:byte j3dDefaultAmbInfo = .sdata2:0x80526314; // type:object size:0x4 data:byte j3dDefaultNumChans = .sdata2:0x80526318; // type:object size:0x1 data:byte j3dDefaultTevOrderInfoNull = .sdata2:0x80526319; // type:object size:0x4 data:4byte -j3dDefaultIndTexOrderNull = .sdata2:0x8052631D; // type:object size:0x4 +j3dDefaultIndTexOrderNull = .sdata2:0x8052631D; // type:object size:0x4 data:4byte j3dDefaultTevColor = .sdata2:0x80526322; // type:object size:0x8 scope:global align:2 data:2byte j3dDefaultTevKColor = .sdata2:0x8052632A; // type:object size:0x4 data:byte j3dDefaultTevSwapModeTable = .sdata2:0x8052632E; // type:object size:0x4 diff --git a/config/ShieldD/symbols.txt b/config/ShieldD/symbols.txt index f8feb186b6..8dd1951290 100644 --- a/config/ShieldD/symbols.txt +++ b/config/ShieldD/symbols.txt @@ -64510,21 +64510,21 @@ l_HIO_before = .sbss:0x8074C880; // type:object size:0x4 scope:global data:4byte l_HIO_top = .sbss:0x8074C884; // type:object size:0x4 scope:global data:4byte hash:0xCA8DD4EC l_debugMode = .sbss:0x8074C888; // type:object size:0x4 scope:local data:4byte hash:0x5F325704 l_jumpTop = .sbss:0x8074C88C; // type:object size:0x4 scope:global align:4 data:float hash:0xEC66737F -lbl_8074C890 = .sbss:0x8074C890; // type:object size:0x1 data:byte hash:0xB74E392C dhash:0xBD2F6E4C -lbl_8074C891 = .sbss:0x8074C891; // type:object size:0x1 data:byte hash:0xC3C1301D dhash:0xBD2F6E4C -lbl_8074C892 = .sbss:0x8074C892; // type:object size:0x1 data:byte hash:0xC3C1345F dhash:0xBD2F6E4C -lbl_8074C893 = .sbss:0x8074C893; // type:object size:0x1 data:byte hash:0xC3C1491D dhash:0xBD2F6E4C +@GUARD@setGrabItemPos__9daAlink_cFv@grabCarryOffset0 = .sbss:0x8074C890; // type:object size:0x1 data:byte hash:0xB74E392C dhash:0xBD2F6E4C +@GUARD@setGrabItemPos__9daAlink_cFv@grabCarryOffset1@0 = .sbss:0x8074C891; // type:object size:0x1 data:byte hash:0xC3C1301D dhash:0xBD2F6E4C +@GUARD@setGrabItemPos__9daAlink_cFv@grabCarryOffset2@1 = .sbss:0x8074C892; // type:object size:0x1 data:byte hash:0xC3C1345F dhash:0xBD2F6E4C +@GUARD@setGrabItemPos__9daAlink_cFv@grabCarryOffset3@2 = .sbss:0x8074C893; // type:object size:0x1 data:byte hash:0xC3C1491D dhash:0xBD2F6E4C @GUARD@daAlink_c_getDemoIDData__FP13dDemo_actor_cPiPiPiPUsPiPi@dummy = .sbss:0x8074C894; // type:object size:0x1 data:byte hash:0x2C9C4113 dhash:0xC335850F @GUARD@daAlink_c_getDemoIDData__FP13dDemo_actor_cPiPiPiPUsPiPi@it@0 = .sbss:0x8074C895; // type:object size:0x1 data:byte hash:0xABFECE16 dhash:0xC335850F @LOCAL@daAlink_c_getDemoIDData__FP13dDemo_actor_cPiPiPiPUsPiPi@it@0 = .sbss:0x8074C898; // type:object size:0x4 scope:local hash:0x7C41017E dhash:0x7A3314A7 -lbl_8074C89C = .sbss:0x8074C89C; // type:object size:0x1 data:byte hash:0x91B5CF4E dhash:0x3C2D8E6B -lbl_8074C89D = .sbss:0x8074C89D; // type:object size:0x1 data:byte hash:0x1F6B40C0 dhash:0x3C2D8E6B -lbl_8074C89E = .sbss:0x8074C89E; // type:object size:0x1 data:byte hash:0xD59F6F35 dhash:0x3C2D8E6B -lbl_8074C89F = .sbss:0x8074C89F; // type:object size:0x1 data:byte hash:0xBFD7E77E dhash:0x3C2D8E6B -lbl_8074C8A0 = .sbss:0x8074C8A0; // type:object size:0x1 data:byte hash:0x884DAA68 dhash:0xBFFC4EEF -lbl_8074C8A1 = .sbss:0x8074C8A1; // type:object size:0x1 data:byte hash:0x928CCDC6 dhash:0xB10E2121 +@GUARD@setCutTurnEffect__9daAlink_cFv@leftRotNormal@4 = .sbss:0x8074C89C; // type:object size:0x1 data:byte hash:0x91B5CF4E dhash:0x3C2D8E6B +@GUARD@setCutTurnEffect__9daAlink_cFv@leftRotLight@7 = .sbss:0x8074C89D; // type:object size:0x1 data:byte hash:0x1F6B40C0 dhash:0x3C2D8E6B +@GUARD@setCutTurnEffect__9daAlink_cFv@leftRotLarge@10 = .sbss:0x8074C89E; // type:object size:0x1 data:byte hash:0xD59F6F35 dhash:0x3C2D8E6B +@GUARD@setCutTurnEffect__9daAlink_cFv@leftRotWater@13 = .sbss:0x8074C89F; // type:object size:0x1 data:byte hash:0xBFD7E77E dhash:0x3C2D8E6B +m_eye_move_flg__16daAlink_matAnm_c = .sbss:0x8074C8A0; // type:object size:0x1 data:byte hash:0x884DAA68 dhash:0xBFFC4EEF +m_morf_frame__16daAlink_matAnm_c = .sbss:0x8074C8A1; // type:object size:0x1 data:byte hash:0x928CCDC6 dhash:0xB10E2121 @LOCAL@create__9daAlink_cFv@bgWaitFlg = .sbss:0x8074C8A4; // type:object size:0x4 scope:local data:4byte hash:0xFEC9AC5E dhash:0x74C6C5AD -lbl_8074C8A8 = .sbss:0x8074C8A8; // type:object size:0x1 data:byte hash:0xCB96DED7 dhash:0x895D6088 +@GUARD@setAtCollision__9daAlink_cFv@rodTopOffset@0 = .sbss:0x8074C8A8; // type:object size:0x1 data:byte hash:0xCB96DED7 dhash:0x895D6088 sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> = .sbss:0x8074C8AC; // type:object size:0x4 scope:global data:4byte hash:0x5128911C dhash:0xCE3C9FF9 l_HIO = .sbss:0x8074C8B0; // type:object size:0x8 scope:local hash:0x0A6D83D8 lbl_8074C8B8 = .sbss:0x8074C8B8; // type:object size:0x1 data:byte hash:0x98E99A3B diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 9e0dc7c712..ced12d318e 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -28,6 +28,94 @@ class daAlinkHIO_anm_c; class daScex_c; class fopEn_enemy_c; +class daAlink_c; +typedef int (daAlink_c::*daAlink_procFunc)(); +typedef void (daAlink_c::*EffParamProc)(); + +class daAlinkHIO_c; + +class daAlink_matAnm_c : public J3DMaterialAnm { +public: + daAlink_matAnm_c() { init(); } + + void init(); + void offSetFlg() { mSetFlag = FALSE; } + + virtual ~daAlink_matAnm_c() {} + virtual void calc(J3DMaterial* i_material) const; + + static void decMorfFrame() { cLib_calcTimer(&m_morf_frame); } + static void setMorfFrame(u8 i_frame) { m_morf_frame = i_frame; } + static u8 getMorfFrame() { return m_morf_frame; } + + static void onEyeMoveFlg() { m_eye_move_flg = true; } + static void offEyeMoveFlg() { m_eye_move_flg = false; } + static bool getEyeMoveFlg() { return m_eye_move_flg; } + + f32* getNowOffsetXP() { return &mNowOffsetX; } + f32* getNowOffsetYP() { return &mNowOffsetY; } + void setNowOffsetX(f32 i_offset) { mNowOffsetX = i_offset; } + void setNowOffsetY(f32 i_offset) { mNowOffsetY = i_offset; } + + static bool m_eye_move_flg; + static u8 m_morf_frame; + + /* 0x0F4 */ mutable f32 field_0xf4; + /* 0x0F8 */ mutable f32 field_0xf8; + /* 0x0FC */ mutable f32 mNowOffsetX; + /* 0x100 */ mutable f32 mNowOffsetY; + /* 0x104 */ mutable int mSetFlag; +}; + +class daAlink_blur_c : public J3DPacket { +public: + daAlink_blur_c() {} + void initBlur(f32, int, cXyz const*, cXyz const*, cXyz const*); + void copyBlur(cXyz const*, cXyz const*, cXyz const*); + void traceBlur(cXyz const*, cXyz const*, s16); + + virtual void draw(); + virtual ~daAlink_blur_c() {} + + // private: + /* 0x010 */ ResTIMG* m_blurTex; + /* 0x014 */ int field_0x14; + /* 0x018 */ u8 field_0x18[4]; + /* 0x01C */ int field_0x1c; + /* 0x020 */ int field_0x20; + /* 0x024 */ f32 field_0x24; + /* 0x028 */ u8 field_0x28[4]; + /* 0x02C */ cXyz field_0x2c; + /* 0x038 */ cXyz field_0x38[60]; + /* 0x308 */ cXyz field_0x308[60]; +}; // Size = 0x5D8 + +class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack { +public: + dAlink_bottleWaterPcallBack_c() { initialize(0.0f); } + virtual void execute(JPABaseEmitter*, JPABaseParticle*); + virtual ~dAlink_bottleWaterPcallBack_c() {} + + void initialize(f32 minY) { + mHitFlg = 0; + mAppearFlg = 0; + mKeepMinY = minY; + } + + s16 getAppearFlg() const { return mAppearFlg; } + s16 getHitFlg() const { return mHitFlg; } + cXyz& getHitPos() { return mHitPos; } + f32 getKeepMinY() { return mKeepMinY; } + + void onAppearFlg() { mAppearFlg = true; } + +private: + /* 0x04 */ s16 mHitFlg; + /* 0x06 */ s16 mAppearFlg; + /* 0x08 */ f32 mKeepMinY; + /* 0x0C */ cXyz mHitPos; +}; // Size = 0x18 + class daAlink_lockCursor_c : public dDlst_base_c { public: daAlink_lockCursor_c() {} @@ -86,55 +174,6 @@ public: /* 0x50 */ daAlink_lockCursor_c mLockCursor; }; -class daAlink_blur_c : public J3DPacket { -public: - daAlink_blur_c() {} - void initBlur(f32, int, cXyz const*, cXyz const*, cXyz const*); - void copyBlur(cXyz const*, cXyz const*, cXyz const*); - void traceBlur(cXyz const*, cXyz const*, s16); - - virtual void draw(); - virtual ~daAlink_blur_c() {} - - // private: - /* 0x010 */ ResTIMG* m_blurTex; - /* 0x014 */ int field_0x14; - /* 0x018 */ u8 field_0x18[4]; - /* 0x01C */ int field_0x1c; - /* 0x020 */ int field_0x20; - /* 0x024 */ f32 field_0x24; - /* 0x028 */ u8 field_0x28[4]; - /* 0x02C */ cXyz field_0x2c; - /* 0x038 */ cXyz field_0x38[60]; - /* 0x308 */ cXyz field_0x308[60]; -}; // Size = 0x5D8 - -class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack { -public: - dAlink_bottleWaterPcallBack_c() { initialize(0.0f); } - virtual void execute(JPABaseEmitter*, JPABaseParticle*); - virtual ~dAlink_bottleWaterPcallBack_c() {} - - void initialize(f32 minY) { - mHitFlg = 0; - mAppearFlg = 0; - mKeepMinY = minY; - } - - s16 getAppearFlg() const { return mAppearFlg; } - s16 getHitFlg() const { return mHitFlg; } - cXyz& getHitPos() { return mHitPos; } - f32 getKeepMinY() { return mKeepMinY; } - - void onAppearFlg() { mAppearFlg = true; } - -private: - /* 0x04 */ s16 mHitFlg; - /* 0x06 */ s16 mAppearFlg; - /* 0x08 */ f32 mKeepMinY; - /* 0x0C */ cXyz mHitPos; -}; // Size = 0x18 - class daAlink_footData_c { public: /* 0x00 */ u8 field_0x0; @@ -148,39 +187,6 @@ public: STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4); -class daAlink_matAnm_c : public J3DMaterialAnm { -public: - daAlink_matAnm_c() { init(); } - - void init(); - void offSetFlg() { mSetFlag = FALSE; } - - virtual ~daAlink_matAnm_c() {} - virtual void calc(J3DMaterial* i_material) const; - - static void decMorfFrame() { cLib_calcTimer(&m_morf_frame); } - static void setMorfFrame(u8 i_frame) { m_morf_frame = i_frame; } - static u8 getMorfFrame() { return m_morf_frame; } - - static void onEyeMoveFlg() { m_eye_move_flg = true; } - static void offEyeMoveFlg() { m_eye_move_flg = false; } - static bool getEyeMoveFlg() { return m_eye_move_flg; } - - f32* getNowOffsetXP() { return &mNowOffsetX; } - f32* getNowOffsetYP() { return &mNowOffsetY; } - void setNowOffsetX(f32 i_offset) { mNowOffsetX = i_offset; } - void setNowOffsetY(f32 i_offset) { mNowOffsetY = i_offset; } - - static bool m_eye_move_flg; - static u8 m_morf_frame; - - /* 0x0F4 */ mutable f32 field_0xf4; - /* 0x0F8 */ mutable f32 field_0xf8; - /* 0x0FC */ mutable f32 mNowOffsetX; - /* 0x100 */ mutable f32 mNowOffsetY; - /* 0x104 */ mutable int mSetFlag; -}; - // this class is mostly a complete guess class daAlink_hsChainLight_c : public dKy_tevstr_c { public: @@ -213,6 +219,4336 @@ struct daAlink_WlAnmData { /* 0x4 */ s8 m_voiceFrames[4]; }; // Size: 0x8 +struct daAlink_procInitTable { + /* 0x0 */ daAlink_procFunc m_procFunc; + /* 0xC */ u32 m_mode; +}; // Size: 0x10 + +class daAlink_c : public daPy_py_c { +public: + enum daAlink_ANM { + /* 0x000 */ ANM_ATN_RETURN_FROM_WALK, + /* 0x001 */ ANM_ATN_RETURN_FROM_RUN, + /* 0x002 */ ANM_ATN_BACK_WALK, + /* 0x003 */ ANM_ATN_BACK_RUN, + /* 0x004 */ ANM_ATN_LOCK_BACK_WALK, + /* 0x005 */ ANM_ATN_LOCK_BACK_RUN, + /* 0x006 */ ANM_ATN_WALK_LEFT, + /* 0x007 */ ANM_ATN_LOCK_WALK_LEFT, + /* 0x008 */ ANM_ATN_WALK_RIGHT, + /* 0x009 */ ANM_ATN_LOCK_WALK_RIGHT, + /* 0x00A */ ANM_ATN_RUN_LEFT, + /* 0x00B */ ANM_ATN_LOCK_RUN_LEFT, + /* 0x00C */ ANM_ATN_RUN_RIGHT, + /* 0x00D */ ANM_ATN_LOCK_RUN_RIGHT, + /* 0x00E */ ANM_WALK_HEAVY, + /* 0x00F */ ANM_ATN_BACK_WALK_HEAVY, + /* 0x010 */ ANM_ATN_WAIT_LEFT, + /* 0x011 */ ANM_ATN_WAIT_RIGHT, + /* 0x012 */ ANM_WALK, + /* 0x013 */ ANM_RUN, + /* 0x014 */ ANM_SWIM_WAIT, + /* 0x015 */ ANM_STEP_TURN, + /* 0x016 */ ANM_SMALL_GUARD, + /* 0x017 */ ANM_STEP_TURN_TIRED, + /* 0x018 */ ANM_SMALL_GUARD_TIRED, + /* 0x019 */ ANM_WAIT, + /* 0x01A */ ANM_WAIT_B, + /* 0x01B */ ANM_WAIT_B_TO_A, + /* 0x01C */ ANM_RUN_B, + /* 0x01D */ ANM_SIDE_JUMP_LEFT, + /* 0x01E */ ANM_SIDE_JUMP_RIGHT, + /* 0x01F */ ANM_SIDE_JUMP_LEFT_LAND, + /* 0x020 */ ANM_SIDE_JUMP_RIGHT_LAND, + /* 0x021 */ ANM_BACK_JUMP, + /* 0x022 */ ANM_BACK_JUMP_LAND, + /* 0x023 */ ANM_FRONT_ROLL, + /* 0x024 */ ANM_ROLL_CRASH, + /* 0x025 */ ANM_BARRIER_RECOIL, // ? + /* 0x026 */ ANM_BACKFLIP, + /* 0x027 */ ANM_BACKFLIP_LAND, + /* 0x028 */ ANM_SLIP, + /* 0x029 */ ANM_CROUCH, + /* 0x02A */ ANM_CROUCH_START, + /* 0x02B */ ANM_GUARD_LEFT, + /* 0x02C */ ANM_GUARD_RIGHT, + /* 0x02D */ ANM_CROUCH_DEF, // ? + /* 0x02E */ ANM_SHIELD_ATTACK, + /* 0x02F */ ANM_SHIELD_ATTACK_RECOIL, + /* 0x030 */ ANM_GUARD_BREAK, + /* 0x031 */ ANM_JUMP_START, + /* 0x032 */ ANM_JUMP, + /* 0x033 */ ANM_JUMP_LAND, + /* 0x034 */ ANM_CRAWL_START, + /* 0x035 */ ANM_CRAWL, + /* 0x036 */ ANM_WAIT_PUSH_PULL, + /* 0x037 */ ANM_PUSH_LIGHT, + /* 0x038 */ ANM_PUSH_START, + /* 0x039 */ ANM_PUSH, + /* 0x03A */ ANM_PULL_LIGHT, + /* 0x03B */ ANM_PULL_START, + /* 0x03C */ ANM_PULL, + /* 0x03D */ ANM_HORSE_MOUNT_LEFT, + /* 0x03E */ ANM_HORSE_MOUNT_RIGHT, + /* 0x03F */ ANM_HORSE_MOUNT_BACK, + /* 0x040 */ ANM_HORSE_GETOFF_LEFT, + /* 0x041 */ ANM_HORSE_GETOFF_RIGHT, + /* 0x042 */ ANM_HORSE_STOP, + /* 0x043 */ ANM_HORSE_STOP_TO_STAND, + /* 0x044 */ ANM_HORSE_STAND, + /* 0x045 */ ANM_HORSE_JUMP_START, + /* 0x046 */ ANM_HORSE_JUMP, + /* 0x047 */ ANM_HORSE_JUMP_LAND, + /* 0x048 */ ANM_HORSE_WAIT, + /* 0x049 */ ANM_HORSE_WALK_A, + /* 0x04A */ ANM_HORSE_WALK_B, + /* 0x04B */ ANM_HORSE_DASH_A, + /* 0x04C */ ANM_HORSE_DASH_B, + /* 0x04D */ ANM_WSTARTH, // ? + /* 0x04E */ ANM_HORSE_DASH_START, + /* 0x04F */ ANM_HORSE_LASH, + /* 0x050 */ ANM_HORSE_CUT_TURN, + /* 0x051 */ ANM_HORSE_WAIT_A, + /* 0x052 */ ANM_HORSE_WAIT_B, + /* 0x053 */ ANM_HORSE_DIE_RECOVER, + /* 0x054 */ ANM_HORSE_TURN_B, + /* 0x055 */ ANM_HORSE_CROUCH, + /* 0x056 */ ANM_HORSE_DMG_LEFT, + /* 0x057 */ ANM_HORSE_DMG_RIGHT, + /* 0x058 */ ANM_HORSE_HANG_LEFT, + /* 0x059 */ ANM_HORSE_HANG_RIGHT, + /* 0x05A */ ANM_HORSE_TURN_LEFT, + /* 0x05B */ ANM_HORSE_TURN_RIGHT, + /* 0x05C */ ANM_HORSE_RIDE_LEFT, + /* 0x05D */ ANM_HORSE_RIDE_RIGHT, + /* 0x05E */ ANM_HORSE_FALL_LEFT, + /* 0x05F */ ANM_HORSE_FALL_RIGHT, + /* 0x060 */ ANM_HORSE_TAME_WAIT_B, + /* 0x061 */ ANM_HORSE_TAME_WAIT_A_TO_B, + /* 0x062 */ ANM_CUT_NM_VERTICAL, + /* 0x063 */ ANM_CUT_NM_LEFT, + /* 0x064 */ ANM_CUT_NM_RIGHT, + /* 0x065 */ ANM_CUT_COMBO_STAB, + /* 0x066 */ ANM_CUT_NM_STAB, + /* 0x067 */ ANM_CUT_FINISH_LEFT, + /* 0x068 */ ANM_CUT_FINISH_VERTICAL, + /* 0x069 */ ANM_CUT_FINISH_STAB, + /* 0x06A */ ANM_CUT_MORTAL_DRAW_A, + /* 0x06B */ ANM_CUT_MORTAL_DRAW_B, + /* 0x06C */ ANM_CUT_FINISH_RIGHT, + /* 0x06D */ ANM_CUT_TWIRL, + /* 0x06E */ ANM_CUT_TWIRL_LAND, + /* 0x06F */ ANM_CUT_RECOIL_A, + /* 0x070 */ ANM_CUT_RECOIL_B, + /* 0x071 */ ANM_CUT_JUMP, + /* 0x072 */ ANM_CUT_JUMP_LAND, + /* 0x073 */ ANM_CUT_TURN_LEFT, + /* 0x074 */ ANM_CUT_TURN_RIGHT, + /* 0x075 */ ANM_CUT_TURN_CHARGE_START, + /* 0x076 */ ANM_CUT_TURN_CHARGE, + /* 0x077 */ ANM_CUT_TURN_CHARGE_MOVE, + /* 0x078 */ ANM_CUT_FINISHING_BLOW_JUMP, + /* 0x079 */ ANM_CUT_FINISHING_BLOW_FALL, + /* 0x07A */ ANM_CUT_FINISHING_BLOW_STAB, + /* 0x07B */ ANM_CUT_FINISHING_BLOW_MISS, + /* 0x07C */ ANM_CUT_HEAD_JUMP, + /* 0x07D */ ANM_CUT_HEAD, + /* 0x07E */ ANM_CUT_HEAD_LAND, + /* 0x07F */ ANM_DMG_SMALL_A, + /* 0x080 */ ANM_DMG_SMALL_B, + /* 0x081 */ ANM_DMG_SMALL_LEFT, + /* 0x082 */ ANM_DMG_SMALL_RIGHT, + /* 0x083 */ ANM_DMG_AIR_FRONT, + /* 0x084 */ ANM_DMG_LARGE, + /* 0x085 */ ANM_DMG_AIR_LEFT, + /* 0x086 */ ANM_DMG_AIR_RIGHT, + /* 0x087 */ ANM_DMG_AIR_LAND, + /* 0x088 */ ANM_DMG_LARGE_LAND, + /* 0x089 */ ANM_DMG_AIR_LEFT_LAND, + /* 0x08A */ ANM_DMG_AIR_RIGHT_LAND, + /* 0x08B */ ANM_DMG, + /* 0x08C */ ANM_DMG_FALL, + /* 0x08D */ ANM_DMG_FALL_RECOVER, + /* 0x08E */ ANM_FINISH, + /* 0x08F */ ANM_FINISH_END, + /* 0x090 */ ANM_SERVICE_WAIT, + /* 0x091 */ ANM_CLIMB_JUMP, + /* 0x092 */ ANM_HANG_READY, + /* 0x093 */ ANM_CLIMB_TOP_SMALL, + /* 0x094 */ ANM_HANG_CLIMB_TOP, + /* 0x095 */ ANM_HANG_ONE_HAND, + /* 0x096 */ ANM_HANG_ONE_HAND_MOVE, + /* 0x097 */ ANM_HANG_MOVE_LEFT, + /* 0x098 */ ANM_HANG_MOVE_RIGHT, + /* 0x099 */ ANM_LADDER_UP_START, + /* 0x09A */ ANM_LADDER_UP_END_LEFT, + /* 0x09B */ ANM_LADDER_UP_END_RIGHT, + /* 0x09C */ ANM_LADDER_DOWN_START, + /* 0x09D */ ANM_LADDER_DOWN_END_LEFT, + /* 0x09E */ ANM_LADDER_DOWN_END_RIGHT, + /* 0x09F */ ANM_LADDER_RIGHT_TO_LEFT, + /* 0x0A0 */ ANM_LADDER_LEFT_TO_RIGHT, + /* 0x0A1 */ ANM_CLIMB_HANG, + /* 0x0A2 */ ANM_CLIMB_START, + /* 0x0A3 */ ANM_CLIMB_LEFT, + /* 0x0A4 */ ANM_CLIMB_RIGHT, + /* 0x0A5 */ ANM_CLIMB_SLIDE_LEFT, + /* 0x0A6 */ ANM_CLIMB_SLIDE_RIGHT, + /* 0x0A7 */ ANM_CLIMB_HANG_MISS, + /* 0x0A8 */ ANM_ROOF_UP, + /* 0x0A9 */ ANM_ROOF_HANG_WAIT, + /* 0x0AA */ ANM_ROOF_HANG_MOVE, + /* 0x0AB */ ANM_ROOF_HANG_LEFT, + /* 0x0AC */ ANM_ROOF_HANG_RIGHT, + /* 0x0AD */ ANM_ROOF_HANG_TURN, + /* 0x0AE */ ANM_ROOF_HANG, + /* 0x0AF */ ANM_GRAB_UP_START, + /* 0x0B0 */ ANM_GRAB_UP, + /* 0x0B1 */ ANM_THROW, + /* 0x0B2 */ ANM_THROW_HEAVY, + /* 0x0B3 */ ANM_PICK_UP_LARGE_START, + /* 0x0B4 */ ANM_PICK_UP_LARGE, + /* 0x0B5 */ ANM_CARRY, + /* 0x0B6 */ ANM_WAIT_TIRED, + /* 0x0B7 */ ANM_WAIT_TO_TIRED, + /* 0x0B8 */ ANM_TALK, + /* 0x0B9 */ ANM_WAIT_START, + /* 0x0BA */ ANM_FROZEN_FREE, // ? + /* 0x0BB */ ANM_BOOMERANG_CATCH, + /* 0x0BC */ ANM_WALK_SLOPE, + /* 0x0BD */ ANM_SLIDE_FORWARD, + /* 0x0BE */ ANM_SLIDE_BACKWARD, + /* 0x0BF */ ANM_SLIDE_FORWARD_END, + /* 0x0C0 */ ANM_SLIDE_BACKWARD_END, + /* 0x0C1 */ ANM_SWIM_A, + /* 0x0C2 */ ANM_SWIM_RESURFACE, + /* 0x0C3 */ ANM_ATN_SWIM_LEFT, + /* 0x0C4 */ ANM_ATN_SWIM_RIGHT, + /* 0x0C5 */ ANM_ATN_SWIM_BACK, + /* 0x0C6 */ ANM_SWIM_DASH, + /* 0x0C7 */ ANM_SWIM_DIVE, + /* 0x0C8 */ ANM_SWIM_ZORA_START, + /* 0x0C9 */ ANM_SWIM_C, + /* 0x0CA */ ANM_SWIM_DMG_FRONT, + /* 0x0CB */ ANM_SWIM_DMG_BACK, + /* 0x0CC */ ANM_SWIM_DMG_LEFT, + /* 0x0CD */ ANM_SWIM_DMG_RIGHT, + /* 0x0CE */ ANM_SWIM_DMG_FREEZE, + /* 0x0CF */ ANM_TRES_OPEN_SMALL, + /* 0x0D0 */ ANM_TRES_OPEN_KICK, + /* 0x0D1 */ ANM_TRES_OPEN_BIG, + /* 0x0D2 */ ANM_GET_A, + /* 0x0D3 */ ANM_GET_A_WAIT, + /* 0x0D4 */ ANM_GET_A_WAIT2, // same under anm, upper anm (0x26A) + /* 0x0D5 */ ANM_GET_HOLDOUT, + /* 0x0D6 */ ANM_TURN_BACK, + /* 0x0D7 */ ANM_VJUMP_START, + /* 0x0D8 */ ANM_WAIT_SIT, + /* 0x0D9 */ ANM_WAIT_CANOE_LEFT, + /* 0x0DA */ ANM_WAIT_CANOE_RIGHT, + /* 0x0DB */ ANM_CANOE_ROW_LEFT, + /* 0x0DC */ ANM_CANOE_ROW_RIGHT, + /* 0x0DD */ ANM_CANOE_ROW_LEFT_BACK, + /* 0x0DE */ ANM_CANOE_ROW_RIGHT_BACK, + /* 0x0DF */ ANM_CANOE_CHANGE_HAND, + /* 0x0E0 */ ANM_CANOE_FISH_LEFT, + /* 0x0E1 */ ANM_CANOE_FISH_RIGHT, + /* 0x0E2 */ ANM_CANOE_REEL, + /* 0x0E3 */ ANM_CANOE_RELEASE, + /* 0x0E4 */ ANM_CANOE_PADDLE_TO_ROD, + /* 0x0E5 */ ANM_REEL, + /* 0x0E6 */ ANM_REEL_LEFT_RIGHT, + /* 0x0E7 */ ANM_LAND_UP, // ? + /* 0x0E8 */ ANM_DOOR_OPEN_LEFT, + /* 0x0E9 */ ANM_DOOR_OPEN_RIGHT, + /* 0x0EA */ ANM_DOOR_OPEN_LOCK_LEFT, + /* 0x0EB */ ANM_DOOR_OPEN_LOCK_RIGHT, + /* 0x0EC */ ANM_DOOR_OPEN_ROLL, + /* 0x0ED */ ANM_DOOR_OPEN_SLIDE, + /* 0x0EE */ ANM_PICK_UP, + /* 0x0EF */ ANM_ROLL_JUMP, + /* 0x0F0 */ ANM_SIDE_ROLL_LEFT, + /* 0x0F1 */ ANM_SIDE_ROLL_RIGHT, + /* 0x0F2 */ ANM_RIDE_WAIT, + /* 0x0F3 */ ANM_RIDE_FRONT, + /* 0x0F4 */ ANM_RIDE_CROUCH, + /* 0x0F5 */ ANM_RIDE_STOP, + /* 0x0F6 */ ANM_RIDE_JUMP_START, + /* 0x0F7 */ ANM_RIDE_JUMP, + /* 0x0F8 */ ANM_RIDE_JUMP_LAND, + /* 0x0F9 */ ANM_RIDE_KICK, + /* 0x0FA */ ANM_RIDE_CUT_TURN_CHARGE, + /* 0x0FB */ ANM_RIDE_CUT_TURN, + /* 0x0FC */ ANM_ROPE_SWING, // monkey swing? + /* 0x0FD */ ANM_TRANSFORM_TO_WOLF, + /* 0x0FE */ ANM_TRANSFORM_TO_HUMAN, + /* 0x0FF */ ANM_WAIT_WIND, + /* 0x100 */ ANM_BOTTLE_DRINK_START, + /* 0x101 */ ANM_BOTTLE_DRINK, + /* 0x102 */ ANM_BOTTLE_DRINK_END, + /* 0x103 */ ANM_BOTTLE_DRINK_NASTY, + /* 0x104 */ ANM_BOTTLE_OPEN, + /* 0x105 */ ANM_BOTTLE_POUR, + /* 0x106 */ ANM_BOTTLE_FAIRY, + /* 0x107 */ ANM_BOTTLE_SWING, + /* 0x108 */ ANM_BOTTLE_SWING_DOWN, + /* 0x109 */ ANM_BOTTLE_GET, + /* 0x10A */ ANM_BOTTLE_SCOOP, + /* 0x10B */ ANM_LANTERN_SWING, + /* 0x10C */ ANM_OIL_BOTTLE_POUR_START, + /* 0x10D */ ANM_OIL_BOTTLE_POUR, + /* 0x10E */ ANM_OIL_BOTTLE_POUR_END, + /* 0x10F */ ANM_GRASS_WHISTLE_START, + /* 0x110 */ ANM_GRASS_WHISTLE_PLAY, + /* 0x111 */ ANM_HAWK_CATCH, + /* 0x112 */ ANM_HAWK_WAIT, + /* 0x113 */ ANM_WAIT_D_B, // ghost rats? + /* 0x114 */ ANM_HORSE_WAIT_D_B, // ? + /* 0x115 */ ANM_MG_KICK, // ? + /* 0x116 */ ANM_DIE, + /* 0x117 */ ANM_HORSE_DIE, + /* 0x118 */ ANM_SWIM_DIE, + /* 0x119 */ ANM_SWIM_DROWN, + /* 0x11A */ ANM_ATN_COW, + /* 0x11B */ ANM_COW_CATCH_START, + /* 0x11C */ ANM_COW_CATCH, + /* 0x11D */ ANM_COW_A_D, // ? + /* 0x11E */ ANM_COW_PRESS, + /* 0x11F */ ANM_COW_THROW_LEFT, + /* 0x120 */ ANM_COW_THROW_RIGHT, + /* 0x121 */ ANM_ATN_RIGHT, + /* 0x122 */ ANM_COW_MOVE_LEFT_RIGHT, + /* 0x123 */ ANM_COW_STROKE, + /* 0x124 */ ANM_ENTRANCE, + /* 0x125 */ ANM_FALL, + /* 0x126 */ ANM_APPEARANCE, + /* 0x127 */ ANM_S_JUMP_START, // ? + /* 0x128 */ ANM_S_JUMP_END, // ? + /* 0x129 */ ANM_HOOKSHOT_FLY_LEFT, + /* 0x12A */ ANM_HOOKSHOT_FLY_RIGHT, + /* 0x12B */ ANM_HOOKSHOT_SHOOT, + /* 0x12C */ ANM_HOOKSHOT_HANG_END_LEFT, + /* 0x12D */ ANM_HOOKSHOT_HANG_END_RIGHT, + /* 0x12E */ ANM_HOOKSHOT_HANG_LEFT, + /* 0x12F */ ANM_HOOKSHOT_HANG_RIGHT, + /* 0x130 */ ANM_HOOKSHOT_HANG_WAIT_LEFT, + /* 0x131 */ ANM_HOOKSHOT_HANG_WAIT_RIGHT, + /* 0x132 */ ANM_HOOKSHOT_HANG_SHOOT_LEFT, + /* 0x133 */ ANM_HOOKSHOT_HANG_SHOOT_RIGHT, + /* 0x134 */ ANM_HOOKSHOT_HANG_LEFT_START, + /* 0x135 */ ANM_HOOKSHOT_HANG_RIGHT_START, + /* 0x136 */ ANM_HOOKSHOT_WALL_END_LEFT, + /* 0x137 */ ANM_HOOKSHOT_WALL_END_RIGHT, + /* 0x138 */ ANM_HOOKSHOT_WALL_LEFT, + /* 0x139 */ ANM_HOOKSHOT_WALL_RIGHT, + /* 0x13A */ ANM_HOOKSHOT_WALL_WAIT_LEFT, + /* 0x13B */ ANM_HOOKSHOT_WALL_WAIT_RIGHT, + /* 0x13C */ ANM_HOOKSHOT_WALL_SHOOT_LEFT, + /* 0x13D */ ANM_HOOKSHOT_WALL_SHOOT_RIGHT, + /* 0x13E */ ANM_HVY_BOOTS_PUT_ON, + /* 0x13F */ ANM_SUMOU_MIAU, // ? + /* 0x140 */ ANM_SUMOU_HAKEYOI, // ? + /* 0x141 */ ANM_SUMOU_FIGHT_WAIT, + /* 0x142 */ ANM_SUMOU_FIGHT_STEP_LEFT, + /* 0x143 */ ANM_SUMOU_FIGHT_STEP_RIGHT, + /* 0x144 */ ANM_SUMOU_FIGHT_STEP, + /* 0x145 */ ANM_SUMOU_TACKLE, + /* 0x146 */ ANM_SUMOU_TACKLE_GORON, // ? + /* 0x147 */ ANM_SUMOU_DODGE_TACKLE, + /* 0x148 */ ANM_SUMOU_TACKLE_MISS, + /* 0x149 */ ANM_SUMOU_TACKLE_SHOCK, + /* 0x14A */ ANM_SUMOU_TACKLE_WAIT, + /* 0x14B */ ANM_SUMOU_TACKLE_WAIT_GORON, // ? + /* 0x14C */ ANM_SUMOU_TACKLE_STAGGER, + /* 0x14D */ ANM_SUMOU_TACKLE_STAGGER_GORON, // ? + /* 0x14E */ ANM_SUMOU_TACKLE_SHOCK_RETURN, + /* 0x14F */ ANM_SUMOU_PUNCH, + /* 0x150 */ ANM_SUMOU_PUNCH_MISS_SHOCK, + /* 0x151 */ ANM_SUMOU_PUNCH_MISS_SHOCK_RETURN, + /* 0x152 */ ANM_SUMOU_PUNCH_SHOCK, + /* 0x153 */ ANM_SUMOU_STAGGER, + /* 0x154 */ ANM_SUMOU_PUSH_BACK, + /* 0x155 */ ANM_SUMOU_PULL_BACK, + /* 0x156 */ ANM_SUMOU_PULL_BACK_GORON, // ? + /* 0x157 */ ANM_SUMOU_WIN, + /* 0x158 */ ANM_SUMOU_WIN_GORON, + /* 0x159 */ ANM_SUMOU_LOSE, + /* 0x15A */ ANM_SUMOU_LOSE_GORON, + /* 0x15B */ ANM_SUMOU_KNOCKED_DOWN, + /* 0x15C */ ANM_SUMOU_GET_UP, + /* 0x15D */ ANM_SUMOU_SHIKO, + /* 0x15E */ ANM_SUMOU_SHIKO_WAIT, + /* 0x15F */ ANM_DMG_FBW, // ? + /* 0x160 */ ANM_IRONBALL_WAIT, + /* 0x161 */ ANM_IRONBALL_WALK, + /* 0x162 */ ANM_IRONBALL_ATTACK, + /* 0x163 */ ANM_IRONBALL_TURN, + /* 0x164 */ ANM_IRONBALL_THROW, + /* 0x165 */ ANM_IRONBALL_PULL, + /* 0x166 */ ANM_IRONBALL_CATCH, + /* 0x167 */ ANM_IRONBALL_DEF, + /* 0x168 */ ANM_MORPHEEL_HANG, + /* 0x169 */ ANM_MORPHEEL_HANG_MISS, + /* 0x16A */ ANM_MORPHEEL_HANG_WAIT, + /* 0x16B */ ANM_MORPHEEL_HANG_WAIT_B, + /* 0x16C */ ANM_MORPHEEL_CUT, + /* 0x16D */ ANM_MORPHEEL_CUT_B, // final hit of cycles 1 and 2 + /* 0x16E */ ANM_MORPHEEL_CUT_FINAL, + /* 0x16F */ ANM_MORPHEEL_SPIT_OUT, + /* 0x170 */ ANM_DRAGON_HANG_LEFT, + /* 0x171 */ ANM_DRAGON_HANG_RIGHT, + /* 0x172 */ ANM_DRAGON_HANG, + /* 0x173 */ ANM_DRAGON_HANG_WAIT, + /* 0x174 */ ANM_DRAGON_HANG_WAIT_B, + /* 0x175 */ ANM_DRAGON_CUT, + /* 0x176 */ ANM_DRAGON_CUT_B, // final hit of cycles 1 and 2 + /* 0x177 */ ANM_DRAGON_CUT_FINAL, + /* 0x178 */ ANM_COPYROD_SWING, + /* 0x179 */ ANM_COPYROD_SWING_LARGE, + /* 0x17A */ ANM_GET_MASTER_SWORD, // ? + /* 0x17B */ ANM_WAIT_F, + /* 0x17C */ ANM_ELEC_STUN_GND, + /* 0x17D */ ANM_ELEC_STUN_AIR, + /* 0x17E */ ANM_KEY_CATCH, + /* 0x17F */ ANM_HORSE_GET_ITEM, + /* 0x180 */ ANM_TWGATE_PULLED_IN, + /* 0x181 */ ANM_CHAIN_PICK_UP, + /* 0x182 */ ANM_CHAIN_PULL, + /* 0x183 */ ANM_CHAIN_PULL_FYRUS, + /* 0x184 */ ANM_CHAIN_PULL_END, + /* 0x185 */ ANM_WAIT_INSECT, + /* 0x186 */ ANM_DEMO_MHOP, // ? + /* 0x187 */ ANM_PULL_IRONBALL_SWITCH, + /* 0x188 */ ANM_TRADE_ITEM_PULL_OUT, + /* 0x189 */ ANM_TRADE_ITEM_WAIT, + /* 0x18A */ ANM_DEMO_KAMAE, // ? + /* 0x18B */ ANM_CUT_JUMP_LARGE_CHARGE, + /* 0x18C */ ANM_CUT_JUMP_LARGE_START, + /* 0x18D */ ANM_CUT_JUMP_LARGE, + /* 0x18E */ ANM_CUT_JUMP_LARGE_LAND, + /* 0x18F */ ANM_DEMO_MASTER_SWORD_STICK, + /* 0x190 */ ANM_DEMO_MASTER_SWORD_WAIT, + /* 0x191 */ ANM_DEMO_MASTER_SWORD_PULL, + /* 0x192 */ ANM_GANON_CHANCE, + /* 0x193 */ ANM_GANON_CHANCE_LOSING, + /* 0x194 */ ANM_GANON_CHANCE_WINNING, + /* 0x195 */ ANM_GANON_CHANCE_WIN, + /* 0x196 */ ANM_GANON_CHANCE_LOSE, + /* 0x197 */ ANM_GANON_FINISH, + /* 0x198 */ ANM_GANON_FINISH_WAIT, + /* 0x199 */ ANM_GANON_ON_HORSE, + /* 0x19A */ ANM_DIVE_START, + /* 0x19B */ ANM_DIVE, + /* 0x19C */ ANM_ODOROKU, // ? + /* 0x19D */ ANM_ASHIMOTO, // ? + /* 0x19E */ ANM_MAX, + }; + + enum daAlink_UPPER { + UPPER_0, + UPPER_1, + UPPER_2, + }; + + enum daAlink_UNDER { + UNDER_0, + UNDER_1, + UNDER_2, + }; + + enum daAlink_FTANM { + FTANM_0, + FTANM_MABA01, + FTANM_MABA02, + FTANM_MABA03, + FTANM_MABA01_L, + FTANM_MABA01_R, + FTANM_MABAGOMA, + FTANM_DAM01, + FTANM_FINISHA, + FTANM_ARELORD, + FTANM_ARELORDTAME, + FTANM_PUSHW, + FTANM_PULLW, + FTANM_WAITST, + FTANM_CUTST, + FTANM_A_WAITST, + FTANM_WAITHDB, + FTANM_WAITWATOWB, + FTANM_CUTUNG, + FTANM_CUTDL, + FTANM_CUTDR, + FTANM_SWIMINGA, + FTANM_SWIMP, + FTANM_SWIMDIVE, + FTANM_GRABP, + FTANM_GRABUP, + FTANM_HEAVYTHROW, + FTANM_GRABNG, + FTANM_SWAITA, + FTANM_PICKUP, + FTANM_DOOROPA, + FTANM_DOOROPB, + FTANM_CUTHLA, + FTANM_CUTHLB, + FTANM_CUTHRA, + FTANM_CUTHRB, + FTANM_CUTHTB, + FTANM_TURNBS, + FTANM_ROLLFGOOD, + FTANM_B_A, + FTANM_C_A, + FTANM_TURNBACK, + FTANM_DAMFFUP, + FTANM_DAMFBUP, + FTANM_DAMFRLUP, + FTANM_WAITATOS, + FTANM_CUTA, + FTANM_CUTL, + FTANM_CUTR, + FTANM_CUTF, + FTANM_CUTEA, + FTANM_CUTEB, + FTANM_CUTEG, + FTANM_CHANGEATOW, + FTANM_CHANGEWTOA, + FTANM_SWAITHA, + FTANM_SWIATHB, + FTANM_DASHWIND, + FTANM_CUTTB, + FTANM_CUTT, + FTANM_CUTJST, + FTANM_CUTJED, + FTANM_BINDRINKST, + FTANM_BINDRINK, + FTANM_BINDRINKED, + FTANM_BINBAD, + FTANM_BINOP, + FTANM_BINOUT, + FTANM_BINFAIRY, + FTANM_BINSWINGS, + FTANM_BINSWINGU, + FTANM_BINGET, + FTANM_I_BINGET, + FTANM_K_BINGET, + FTANM_GRASSAST, + FTANM_CATCHTAKA, + FTANM_E_A, + FTANM_BOXOPSHORT, + FTANM_BOXOPKICK, + FTANM_BOXOP, + FTANM_DIE, + FTANM_DIEH, + FTANM_SWIMDIEA, + FTANM_SWIMDIEP, + FTANM_ENTRANCE, + FTANM_COWCATCHST, + FTANM_COWTHROW_L, + FTANM_COWTHROW_R, + FTANM_DIEHUP, + FTANM_CUTRE, + FTANM_CUTU, + FTANM_CUTUED, + FTANM_CLIMBHANGMISS, + FTANM_DAMFBW, + FTANM_UNK_94, + FTANM_UNK_95, + FTANM_UNK_96, + FTANM_UNK_97, + FTANM_UNK_98, + FTANM_UNK_99, + FTANM_UNK_100, + FTANM_UNK_101, + FTANM_UNK_102, + FTANM_UNK_103, + FTANM_UNK_104, + FTANM_UNK_105, + FTANM_UNK_106, + FTANM_UNK_107, + FTANM_UNK_108, + FTANM_SPILLH, + FTANM_HANGH, + FTANM_RODSWING, + FTANM_RODSWINGL, + FTANM_GETSWL, + FTANM_TURNLS, + FTANM_TURNRS, + FTANM_KEYCATCHH, + FTANM_DEMOTALKA, + FTANM_DEMOTALKB, + FTANM_DEMOTALKC, + FTANM_CANORELEASE, + FTANM_WAITINSECT, + FTANM_I_A, + FTANM_J_A, + FTANM_K_A, + FTANM_ATDEFNG, + FTANM_DEMOMHOP, + FTANM_CUTEHST, + FTANM_CUTEH, + FTANM_CUTTJP, + FTANM_CUTTJST, + FTANM_CUTTJ, + FTANM_CUTTJED, + FTANM_UNK_133, + FTANM_UNK_134, + FTANM_UNK_135, + FTANM_ODOROKU, + FTANM_ASHIMOTO, + FTANM_UNAZUKU, + FTANM_WL_MABA01, + FTANM_WL_MABA02, + FTANM_WL_SWAITA, + FTANM_WL_SWIMP, + FTANM_WL_SWAITB, + FTANM_WL_DAM, + FTANM_WL_B_A, + FTANM_WL_DAMFFBUP, + FTANM_WL_DAMFLRUP, + FTANM_WL_WAITST, + FTANM_WL_LANDDAMA, + FTANM_WL_LANDDAMAST, + FTANM_WL_ATTACKUNG, + FTANM_WL_DASHWIND, + FTANM_WL_THROUGH, + FTANM_WL_ATTACKREST, + FTANM_WL_ATTACKREED, + FTANM_WL_DIE, + FTANM_WL_SWIMDIEA, + FTANM_WL_SWIMDIEP, + FTANM_WL_MDSHOCK, + FTANM_WL_ENTRANCE, + FTANM_WL_HOWLC, + FTANM_WL_C_A, + }; + + enum daAlink_WARP_MAT_MODE { + WARP_MAT_MODE_0, + WARP_MAT_MODE_1, + }; + + enum daAlink_WANM { + /* 0x00 */ WANM_WAIT, + /* 0x01 */ WANM_WALK_A, + /* 0x02 */ WANM_WALK_B, + /* 0x03 */ WANM_DASH_A, + /* 0x04 */ WANM_JUMP_ATTACK_START, + /* 0x05 */ WANM_JUMP_ATTACK, + /* 0x06 */ WANM_JUMP_ATTACK_END, + /* 0x07 */ WANM_WAIT_PP, // ? + /* 0x08 */ WANM_PUSH_LIGHT, + /* 0x09 */ WANM_PUSH_START, + /* 0x0A */ WANM_PUSH, + /* 0x0B */ WANM_SIT, + /* 0x0C */ WANM_CROUCH, + /* 0x0D */ WANM_CROUCH_WALK, + /* 0x0E */ WANM_WAIT_SIT, + /* 0x0F */ WANM_TRES_OPEN, + /* 0x10 */ WANM_VJMP_START, + /* 0x11 */ WANM_BUMP_START, + /* 0x12 */ WANM_BUMP_END, + /* 0x13 */ WANM_VJMP_CLIMB, + /* 0x14 */ WANM_VJMP_CLIMB_HANG, + /* 0x15 */ WANM_TURN_BACK, + /* 0x16 */ WANM_DMG_SMALL, + /* 0x17 */ WANM_WAIT_TIRED, + /* 0x18 */ WANM_WAIT_TO_TIRED, + /* 0x19 */ WANM_HANG, + /* 0x1A */ WANM_SLIP, + /* 0x1B */ WANM_TURN, + /* 0x1C */ WANM_ATN, + /* 0x1D */ WANM_WALK_SLOPE, + /* 0x1E */ WANM_SLIDE_BACKWARD, + /* 0x1F */ WANM_SLIDE_BACKWARD_END, + /* 0x20 */ WANM_SLIDE_FORWARD_START, + /* 0x21 */ WANM_ROPE_WALK, + /* 0x22 */ WANM_ROPE_CLIMB_LEFT, + /* 0x23 */ WANM_ROPE_CLIMB_RIGHT, + /* 0x24 */ WANM_ROPE_TURN, + /* 0x25 */ WANM_ROPE_WAIT, + /* 0x26 */ WANM_ROPE_FALTER, + /* 0x27 */ WANM_DASH_B, + /* 0x28 */ WANM_DMG_AIR_FRONT, + /* 0x29 */ WANM_DMG_AIR_BACK, + /* 0x2A */ WANM_DMG_AIR_LEFT, + /* 0x2B */ WANM_DMG_AIR_RIGHT, + /* 0x2C */ WANM_DMG_AIR_FRONT_GETUP, + /* 0x2D */ WANM_DMG_AIR_BACK_GETUP, + /* 0x2E */ WANM_DMG_AIR_LEFT_GETUP, + /* 0x2F */ WANM_DMG_AIR_RIGHT_GETUP, + /* 0x30 */ WANM_SERVICE_WAIT_A, + /* 0x31 */ WANM_WAIT_B, + /* 0x32 */ WANM_JUMP_B_START, + /* 0x33 */ WANM_JUMP_B_TURN_START, + /* 0x34 */ WANM_JUMP_B, + /* 0x35 */ WANM_JUMP_B_END, + /* 0x36 */ WANM_SWIM_RESURFACE, + /* 0x37 */ WANM_SWIM_WAIT, + /* 0x38 */ WANM_SWIM, + /* 0x39 */ WANM_SWIM_DASH, + /* 0x3A */ WANM_WAIT_SHAKE, + /* 0x3B */ WANM_WAIT_START, + /* 0x3C */ WANM_DMG_FRONT, + /* 0x3D */ WANM_DMG_BACK, + /* 0x3E */ WANM_DMG_LEFT, + /* 0x3F */ WANM_DMG_RIGHT, + /* 0x40 */ WANM_ATTACK_B_LEFT, + /* 0x41 */ WANM_ATTACK_B_RIGHT, + /* 0x42 */ WANM_ATTACK_B_FRONT, + /* 0x43 */ WANM_ATTACK_B_TAIL, + /* 0x44 */ WANM_ATN_LOCK_WALK_BACK, + /* 0x45 */ WANM_ATN_LOCK_WALK_FRONT, + /* 0x46 */ WANM_ATN_LOCK_RUN, + /* 0x47 */ WANM_PICKUP_A, + /* 0x48 */ WANM_SIDE_JUMP_LEFT_START, + /* 0x49 */ WANM_SIDE_JUMP_LEFT_END, + /* 0x4A */ WANM_SIDE_JUMP_RIGHT_START, + /* 0x4B */ WANM_SIDE_JUMP_RIGHT_END, + /* 0x4C */ WANM_BACK_JUMP_START, + /* 0x4D */ WANM_BACK_JUMP_END, + /* 0x4E */ WANM_PICKUP_B, + /* 0x4F */ WANM_PICKUP_THROW, + /* 0x50 */ WANM_ATTACK_A_START, + /* 0x51 */ WANM_ATTACK_A, + /* 0x52 */ WANM_ATTACK_A_END, + /* 0x53 */ WANM_ATTACK_A_END_FRONT, + /* 0x54 */ WANM_ATTACK_A_END_BACK, + /* 0x55 */ WANM_ATTACK_T_START, + /* 0x56 */ WANM_ATTACK_T, + /* 0x57 */ WANM_HANDLE_HANG, + /* 0x58 */ WANM_HANDLE_HANG_WAIT, + /* 0x59 */ WANM_HANDLE_HANG_SW, // ? + /* 0x5A */ WANM_CUT_TURN_LEFT, + /* 0x5B */ WANM_CUT_TURN_RIGHT, + /* 0x5C */ WANM_HOWL, + /* 0x5D */ WANM_HOWL_SIT, + /* 0x5E */ WANM_HOWL_SUCCESS, + /* 0x5F */ WANM_HOWL_END, + /* 0x60 */ WANM_FALL_LAND, + /* 0x61 */ WANM_FALL_LAND_START, + /* 0x62 */ WANM_ATTACK_POE_START, + /* 0x63 */ WANM_ATTACK_POE, + /* 0x64 */ WANM_ATTACK_POE_END, + /* 0x65 */ WANM_ATTACK_POE_MISS, + /* 0x66 */ WANM_BACKFLIP_START, + /* 0x67 */ WANM_BACKFLIP_END, + /* 0x68 */ WANM_DIG, + /* 0x69 */ WANM_DIG_IN, + /* 0x6A */ WANM_DIG_UNDER, + /* 0x6B */ WANM_SLIDE_W, // ? + /* 0x6C */ WANM_JUMP_KICK, + /* 0x6D */ WANM_PULL_OUT, + /* 0x6E */ WANM_CUT_TURN_CHARGE, + /* 0x6F */ WANM_TRANSFORM_TO_WOLF, + /* 0x70 */ WANM_TRANSFORM_TO_HUMAN, + /* 0x71 */ WANM_WAIT_WIND, + /* 0x72 */ WANM_SMELL, + /* 0x73 */ WANM_DASH_START, + /* 0x74 */ WANM_ATTACK_RECOIL_START, + /* 0x75 */ WANM_ATTACK_RECOIL_END, + /* 0x76 */ WANM_FLING_LEFT, + /* 0x77 */ WANM_FLING_RIGHT, + /* 0x78 */ WANM_CATCH_START, + /* 0x79 */ WANM_CATCH, + /* 0x7A */ WANM_ATTACK_RECOIL_GROUND, + /* 0x7B */ WANM_DIE, + /* 0x7C */ WANM_SWIM_DIE, + /* 0x7D */ WANM_SWIM_DROWN, + /* 0x7E */ WANM_WAIT_STUNNED, // ? + /* 0x7F */ WANM_WAIT_A_TO_S, // ? + /* 0x80 */ WANM_SERVICE_WAIT_D, + /* 0x81 */ WANM_MIDNA_SHOCK, + /* 0x82 */ WANM_ENTRANCE, + /* 0x83 */ WANM_GET_A, + /* 0x84 */ WANM_GET, + /* 0x85 */ WANM_WAIT_KARGOROK, + /* 0x86 */ WANM_CATCH_KARGOROK, + /* 0x87 */ WANM_DMG_ELEC_GROUND, + /* 0x88 */ WANM_DMG_ELEC_AIR, + /* 0x89 */ WANM_TWGATE_PULL, + /* 0x8A */ WANM_CHAIN_PULL, + /* 0x8B */ WANM_CHAIN_PULL_END, + /* 0x8C */ WANM_LISTEN, + /* 0x8D */ WANM_PIG_GANON_CATCH_ST, + /* 0x8E */ WANM_PIG_GANON_CATCH_END, + /* 0x8F */ WANM_PIG_GANON_THROW_LEFT_START, + /* 0x90 */ WANM_PIG_GANON_THROW_LEFT_END, + /* 0x91 */ WANM_PIG_GANON_THROW_RIGHT_START, + /* 0x92 */ WANM_PIG_GANON_THROW_RIGHT_END, + WANM_MAX, + }; + + enum MODE_FLG { + /* 0x00000001 */ MODE_IDLE = (1 << 0), + /* 0x00000002 */ MODE_JUMP = (1 << 1), + /* 0x00000004 */ MODE_DISABLE_ITEMS = (1 << 2), // ? + /* 0x00000008 */ MODE_HIT_STUN = (1 << 3), + /* 0x00000010 */ MODE_CLIMB = (1 << 4), // ? + /* 0x00000020 */ MODE_UNK_20 = 0x20, // related to wolf? + /* 0x00000040 */ MODE_NO_COLLISION = 0x40, // disables wall col checks + /* 0x00000080 */ MODE_GUARD_ENABLED = 0x80, + /* 0x00000100 */ MODE_UNK_100 = 0x100, + /* 0x00000400 */ MODE_RIDING = 0x400, + /* 0x00000800 */ MODE_UNK_800 = 0x800, + /* 0x00001000 */ MODE_UNK_1000 = + 0x1000, // affects things like anim set when controlling rod statue + /* 0x00002000 */ MODE_UNK_2000 = 0x2000, + /* 0x00004000 */ MODE_UNK_4000 = 0x4000, + /* 0x00008000 */ MODE_UNK_8000 = 0x8000, + /* 0x00010000 */ MODE_VINE_CLIMB = 0x10000, // used for vine climbing + /* 0x00020000 */ MODE_ROPE_WALK = 0x20000, + /* 0x00040000 */ MODE_SWIMMING = 0x40000, // this might be more than swimming + /* 0x00100000 */ MODE_GRAB_PLACE = 0x100000, + /* 0x00800000 */ MODE_UNK_800000 = 0x800000, // moves camera down + /* 0x01000000 */ MODE_UNK_1000000 = 0x1000000, // attention related? + /* 0x02000000 */ MODE_UNK_2000000 = 0x2000000, // maybe related to snow/sand? + /* 0x04000000 */ MODE_UNK_4000000 = 0x4000000, + /* 0x08000000 */ MODE_UNK_8000000 = 0x8000000, + /* 0x10000000 */ MODE_UNK_10000000 = 0x10000000, // catch boomerang? + /* 0x20000000 */ MODE_UNK_20000000 = 0x20000000, + /* 0x40000000 */ MODE_UNK_40000000 = 0x40000000, + MODE_PLAYER_FLY = 0x70C52, + }; + + enum daAlink_PROC { + /* 0x000 */ PROC_PREACTION_UNEQUIP, + /* 0x001 */ PROC_SERVICE_WAIT, + /* 0x002 */ PROC_TIRED_WAIT, + /* 0x003 */ PROC_WAIT, + /* 0x004 */ PROC_MOVE, + /* 0x005 */ PROC_ATN_MOVE, + /* 0x006 */ PROC_ATN_ACTOR_WAIT, + /* 0x007 */ PROC_ATN_ACTOR_MOVE, + /* 0x008 */ PROC_WAIT_TURN, + /* 0x009 */ PROC_MOVE_TURN, + /* 0x00A */ PROC_SIDESTEP, + /* 0x00B */ PROC_SIDESTEP_LAND, + /* 0x00C */ PROC_SLIDE, + /* 0x00D */ PROC_SLIDE_LAND, + /* 0x00E */ PROC_FRONT_ROLL, + /* 0x00F */ PROC_FRONT_ROLL_CRASH, + /* 0x010 */ PROC_FRONT_ROLL_SUCCESS, + /* 0x011 */ PROC_SIDE_ROLL, + /* 0x012 */ PROC_BACK_JUMP, + /* 0x013 */ PROC_BACK_JUMP_LAND, + /* 0x014 */ PROC_SLIP, + /* 0x015 */ PROC_AUTO_JUMP, + /* 0x016 */ PROC_DIVE_JUMP, + /* 0x017 */ PROC_ROLL_JUMP, + /* 0x018 */ PROC_FALL, + /* 0x019 */ PROC_LAND, + /* 0x01A */ PROC_SMALL_JUMP, + /* 0x01B */ PROC_STEP_MOVE, + /* 0x01C */ PROC_CROUCH, + /* 0x01D */ PROC_GUARD_SLIP, + /* 0x01E */ PROC_GUARD_ATTACK, + /* 0x01F */ PROC_GUARD_BREAK, + /* 0x020 */ PROC_TURN_MOVE, + /* 0x021 */ PROC_CUT_NORMAL, + /* 0x022 */ PROC_CUT_FINISH, + /* 0x023 */ PROC_CUT_FINISH_JUMP_UP, + /* 0x024 */ PROC_CUT_FINISH_JUMP_UP_LAND, + /* 0x025 */ PROC_CUT_REVERSE, + /* 0x026 */ PROC_CUT_JUMP, + /* 0x027 */ PROC_CUT_JUMP_LAND, + /* 0x028 */ PROC_CUT_TURN, + /* 0x029 */ PROC_CUT_TURN_CHARGE, + /* 0x02A */ PROC_CUT_TURN_MOVE, + /* 0x02B */ PROC_CUT_DOWN, + /* 0x02C */ PROC_CUT_DOWN_LAND, + /* 0x02D */ PROC_CUT_HEAD, + /* 0x02E */ PROC_CUT_HEAD_LAND, + /* 0x02F */ PROC_CUT_LARGE_JUMP_CHARGE, + /* 0x030 */ PROC_CUT_LARGE_JUMP, + /* 0x031 */ PROC_CUT_LARGE_JUMP_LAND, + /* 0x032 */ PROC_DAMAGE, + /* 0x033 */ PROC_LARGE_DAMAGE_UP, + /* 0x034 */ PROC_LAND_DAMAGE, + /* 0x035 */ PROC_CRAWL_START, + /* 0x036 */ PROC_CRAWL_MOVE, + /* 0x037 */ PROC_CRAWL_AUTO_MOVE, + /* 0x038 */ PROC_CRAWL_END, + /* 0x039 */ PROC_PULL_MOVE, + /* 0x03A */ PROC_HORSE_RIDE, + /* 0x03B */ PROC_HORSE_GETOFF, + /* 0x03C */ PROC_HORSE_WAIT, + /* 0x03D */ PROC_HORSE_TURN, + /* 0x03E */ PROC_HORSE_JUMP, + /* 0x03F */ PROC_HORSE_LAND, + /* 0x040 */ PROC_HORSE_SUBJECTIVITY, + /* 0x041 */ PROC_HORSE_CUT, + /* 0x042 */ PROC_HORSE_CUT_CHARGE_READY, + /* 0x043 */ PROC_HORSE_CUT_TURN, + /* 0x044 */ PROC_HORSE_DAMAGE, + /* 0x045 */ PROC_HORSE_BOW_SUBJECT, + /* 0x046 */ PROC_HORSE_BOW_MOVE, + /* 0x047 */ PROC_HORSE_GRAB_MOVE, + /* 0x048 */ PROC_HORSE_BOOMERANG_SUBJECT, + /* 0x049 */ PROC_HORSE_BOOMERANG_MOVE, + /* 0x04A */ PROC_HORSE_HOOKSHOT_SUBJECT, + /* 0x04B */ PROC_HORSE_HOOKSHOT_MOVE, + /* 0x04C */ PROC_HORSE_BOTTLE_DRINK, + /* 0x04D */ PROC_HORSE_COMEBACK, + /* 0x04E */ PROC_HORSE_KANDELAAR_POUR, + /* 0x04F */ PROC_HORSE_RUN, + /* 0x050 */ PROC_HORSE_HANG, + /* 0x051 */ PROC_HORSE_GET_KEY, + /* 0x052 */ PROC_HORSE_LOOK_DOWN, + /* 0x053 */ PROC_BOAR_RUN, + /* 0x054 */ PROC_SWORD_UNEQUIP_SP, + /* 0x055 */ PROC_HANG_START, + /* 0x056 */ PROC_HANG_FALL_START, + /* 0x057 */ PROC_HANG_UP, + /* 0x058 */ PROC_HANG_WAIT, + /* 0x059 */ PROC_HANG_MOVE, + /* 0x05A */ PROC_HANG_CLIMB, + /* 0x05B */ PROC_HANG_WALL_CATCH, + /* 0x05C */ PROC_HANG_READY, + /* 0x05D */ PROC_HANG_LEVER_DOWN, + /* 0x05E */ PROC_BOW_SUBJECT, + /* 0x05F */ PROC_BOW_MOVE, + /* 0x060 */ PROC_BOOMERANG_SUBJECT, + /* 0x061 */ PROC_BOOMERANG_MOVE, + /* 0x062 */ PROC_BOOMERANG_CATCH, + /* 0x063 */ PROC_COPY_ROD_SUBJECT, + /* 0x064 */ PROC_COPY_ROD_MOVE, + /* 0x065 */ PROC_COPY_ROD_SWING, + /* 0x066 */ PROC_COPY_ROD_REVIVE, + /* 0x067 */ PROC_LADDER_UP_START, + /* 0x068 */ PROC_LADDER_UP_END, + /* 0x069 */ PROC_LADDER_DOWN_START, + /* 0x06A */ PROC_LADDER_DOWN_END, + /* 0x06B */ PROC_LADDER_MOVE, + /* 0x06C */ PROC_GRAB_READY, + /* 0x06D */ PROC_GRAB_UP, + /* 0x06E */ PROC_GRAB_MISS, + /* 0x06F */ PROC_GRAB_THROW, + /* 0x070 */ PROC_GRAB_PUT, + /* 0x071 */ PROC_GRAB_WAIT, + /* 0x072 */ PROC_GRAB_REBOUND, + /* 0x073 */ PROC_GRAB_STAND, + /* 0x074 */ PROC_INSECT_CATCH, + /* 0x075 */ PROC_PICK_UP, + /* 0x076 */ PROC_PICK_PUT, + /* 0x077 */ PROC_HUMAN_ST_ESCAPE, + /* 0x078 */ PROC_DK_CAUGHT, + /* 0x079 */ PROC_SWIM_UP, + /* 0x07A */ PROC_SWIM_WAIT, + /* 0x07B */ PROC_SWIM_MOVE, + /* 0x07C */ PROC_SWIM_DIVE, + /* 0x07D */ PROC_SWIM_HOOKSHOT_SUBJECT, + /* 0x07E */ PROC_SWIM_HOOKSHOT_MOVE, + /* 0x07F */ PROC_SWIM_DAMAGE, + /* 0x080 */ PROC_CLIMB_UP_START, + /* 0x081 */ PROC_CLIMB_DOWN_START, + /* 0x082 */ PROC_CLIMB_MOVE_UPDOWN, + /* 0x083 */ PROC_CLIMB_MOVE_SIDE, + /* 0x084 */ PROC_CLIMB_WAIT, + /* 0x085 */ PROC_CLIMB_TO_ROOF, + /* 0x086 */ PROC_ROOF_HANG_START, + /* 0x087 */ PROC_ROOF_HANG_WAIT, + /* 0x088 */ PROC_ROOF_HANG_FRONT_MOVE, + /* 0x089 */ PROC_ROOF_HANG_SIDE_MOVE, + /* 0x08A */ PROC_ROOF_HANG_TURN, + /* 0x08B */ PROC_ROOF_SWITCH_HANG, + /* 0x08C */ PROC_CANOE_RIDE, + /* 0x08D */ PROC_CANOE_JUMP_RIDE, + /* 0x08E */ PROC_CANOE_GETOFF, + /* 0x08F */ PROC_CANOE_WAIT, + /* 0x090 */ PROC_CANOE_ROW, + /* 0x091 */ PROC_CANOE_PADDLE_SHIFT, + /* 0x092 */ PROC_CANOE_PADDLE_PUT, + /* 0x093 */ PROC_CANOE_PADDLE_GRAB, + /* 0x094 */ PROC_CANOE_ROD_GRAB, + /* 0x095 */ PROC_CANOE_FISHING_WAIT, + /* 0x096 */ PROC_CANOE_FISHING_REEL, + /* 0x097 */ PROC_CANOE_FISHING_GET, + /* 0x098 */ PROC_CANOE_SUBJECTIVITY, + /* 0x099 */ PROC_CANOE_BOW_SUBJECT, + /* 0x09A */ PROC_CANOE_BOW_MOVE, + /* 0x09B */ PROC_CANOE_GRAB_MOVE, + /* 0x09C */ PROC_CANOE_BOOMERANG_SUBJECT, + /* 0x09D */ PROC_CANOE_BOOMERANG_MOVE, + /* 0x09E */ PROC_CANOE_HOOKSHOT_SUBJECT, + /* 0x09F */ PROC_CANOE_HOOKSHOT_MOVE, + /* 0x0A0 */ PROC_CANOE_BOTTLE_DRINK, + /* 0x0A1 */ PROC_CANOE_KANDELAAR_POUR, + /* 0x0A2 */ PROC_FISHING_CAST, + /* 0x0A3 */ PROC_FISHING_FOOD, + /* 0x0A4 */ PROC_SPINNER_READY, + /* 0x0A5 */ PROC_SPINNER_WAIT, + /* 0x0A6 */ PROC_BOARD_RIDE, + /* 0x0A7 */ PROC_BOARD_WAIT, + /* 0x0A8 */ PROC_BOARD_ROW, + /* 0x0A9 */ PROC_BOARD_TURN, + /* 0x0AA */ PROC_BOARD_JUMP, + /* 0x0AB */ PROC_BOARD_SUBJECTIVITY, + /* 0x0AC */ PROC_BOARD_CUT, + /* 0x0AD */ PROC_BOARD_CUT_TURN, + /* 0x0AE */ PROC_CHAIN_UP, + /* 0x0AF */ PROC_CHAIN_STRONG_PULL, + /* 0x0B0 */ PROC_DOOR_OPEN, + /* 0x0B1 */ PROC_MONKEY_MOVE, + /* 0x0B2 */ PROC_DEMO_BOOMERANG_CATCH, + /* 0x0B3 */ PROC_BOTTLE_DRINK, + /* 0x0B4 */ PROC_BOTTLE_OPEN, + /* 0x0B5 */ PROC_BOTTLE_SWING, + /* 0x0B6 */ PROC_BOTTLE_GET, + /* 0x0B7 */ PROC_KANDELAAR_SWING, + /* 0x0B8 */ PROC_KANDELAAR_POUR, + /* 0x0B9 */ PROC_GRASS_WHISTLE_GET, + /* 0x0BA */ PROC_GRASS_WHISTLE_WAIT, + /* 0x0BB */ PROC_HAWK_CATCH, + /* 0x0BC */ PROC_HAWK_SUBJECT, + /* 0x0BD */ PROC_FLOOR_DOWN_REBOUND, + /* 0x0BE */ PROC_GORON_RIDE_WAIT, + /* 0x0BF */ PROC_GOAT_MOVE, + /* 0x0C0 */ PROC_GOAT_CATCH, + /* 0x0C1 */ PROC_GOAT_STROKE, + /* 0x0C2 */ PROC_GORON_MOVE, + /* 0x0C3 */ PROC_BOSS_ATN_WAIT, + /* 0x0C4 */ PROC_HOOKSHOT_SUBJECT, + /* 0x0C5 */ PROC_HOOKSHOT_MOVE, + /* 0x0C6 */ PROC_HOOKSHOT_FLY, + /* 0x0C7 */ PROC_HOOKSHOT_ROOF_WAIT, + /* 0x0C8 */ PROC_HOOKSHOT_ROOF_SHOOT, + /* 0x0C9 */ PROC_HOOKSHOT_ROOF_BOOTS, + /* 0x0CA */ PROC_HOOKSHOT_WALL_WAIT, + /* 0x0CB */ PROC_HOOKSHOT_WALL_SHOOT, + /* 0x0CC */ PROC_MAGNE_BOOTS_FLY, + /* 0x0CD */ PROC_BOOTS_EQUIP, + /* 0x0CE */ PROC_SUMOU_READY, + /* 0x0CF */ PROC_SUMOU_MOVE, + /* 0x0D0 */ PROC_SUMOU_SIDE_MOVE, + /* 0x0D1 */ PROC_SUMOU_ACTION, + /* 0x0D2 */ PROC_SUMOU_STAGGER, + /* 0x0D3 */ PROC_SUMOU_WIN_LOSE, + /* 0x0D4 */ PROC_SUMOU_SHIKO, + /* 0x0D5 */ PROC_LOOK_UP, + /* 0x0D6 */ PROC_LOOK_UP_TO_GET_ITEM, + /* 0x0D7 */ PROC_HAND_PAT, + /* 0x0D8 */ PROC_IRON_BALL_SUBJECT, + /* 0x0D9 */ PROC_IRON_BALL_MOVE, + /* 0x0DA */ PROC_IRON_BALL_THROW, + /* 0x0DB */ PROC_IRON_BALL_RETURN, + /* 0x0DC */ PROC_BOSS_BODY_HANG, + /* 0x0DD */ PROC_OCTAIEAL_SPIT, + /* 0x0DE */ PROC_SCREAM_WAIT, + /* 0x0DF */ PROC_GOAT_STOP_READY, + /* 0x0E0 */ PROC_ZORA_MOVE, + /* 0x0E1 */ PROC_LOOK_AROUND_TURN, + /* 0x0E2 */ PROC_TRADE_ITEM_OUT, + /* 0x0E3 */ PROC_NOT_USE_ITEM, + /* 0x0E4 */ PROC_SWORD_READY, + /* 0x0E5 */ PROC_SWORD_PUSH, + /* 0x0E6 */ PROC_GANON_FINISH, + /* 0x0E7 */ PROC_CUT_FAST_READY, + /* 0x0E8 */ PROC_MASTER_SWORD_STICK, + /* 0x0E9 */ PROC_MASTER_SWORD_PULL, + /* 0x0EA */ PROC_DUNGEON_WARP_READY, + /* 0x0EB */ PROC_DUNGEON_WARP, + /* 0x0EC */ PROC_DUNGEON_WARP_SCN_START, + /* 0x0ED */ PROC_WOLF_HOWL_DEMO, + /* 0x0EE */ PROC_WOLF_SERVICE_WAIT, + /* 0x0EF */ PROC_WOLF_TIRED_WAIT, + /* 0x0F0 */ PROC_WOLF_MIDNA_RIDE_SHOCK, + /* 0x0F1 */ PROC_WOLF_WAIT, + /* 0x0F2 */ PROC_WOLF_MOVE, + /* 0x0F3 */ PROC_WOLF_DASH, + /* 0x0F4 */ PROC_WOLF_DASH_REVERSE, + /* 0x0F5 */ PROC_WOLF_WAIT_TURN, + /* 0x0F6 */ PROC_WOLF_ATN_AC_MOVE, + /* 0x0F7 */ PROC_WOLF_SIDESTEP, + /* 0x0F8 */ PROC_WOLF_SIDESTEP_LAND, + /* 0x0F9 */ PROC_WOLF_BACKJUMP, + /* 0x0FA */ PROC_WOLF_BACKJUMP_LAND, + /* 0x0FB */ PROC_WOLF_HOWL, + /* 0x0FC */ PROC_WOLF_AUTO_JUMP, + /* 0x0FD */ PROC_WOLF_FALL, + /* 0x0FE */ PROC_WOLF_LAND, + /* 0x0FF */ PROC_WOLF_SIT, + /* 0x100 */ PROC_WOLF_LIE_START, + /* 0x101 */ PROC_WOLF_LIE_MOVE, + /* 0x102 */ PROC_WOLF_LIE_AUTO_MOVE, + /* 0x103 */ PROC_WOLF_HANG_READY, + /* 0x104 */ PROC_WOLF_STEP_MOVE, + /* 0x105 */ PROC_WOLF_HANG_WALL_CATCH, + /* 0x106 */ PROC_WOLF_HANG_FALL_START, + /* 0x107 */ PROC_WOLF_DAMAGE, + /* 0x108 */ PROC_WOLF_LARGE_DAMAGE_UP, + /* 0x109 */ PROC_WOLF_LAND_DAMAGE, + /* 0x10A */ PROC_WOLF_SCREAM_WAIT, + /* 0x10B */ PROC_WOLF_SLIP, + /* 0x10C */ PROC_WOLF_SLIP_TURN, + /* 0x10D */ PROC_WOLF_SLIP_TURN_LAND, + /* 0x10E */ PROC_WOLF_SLIDE_READY, + /* 0x10F */ PROC_WOLF_SLIDE, + /* 0x110 */ PROC_WOLF_SLIDE_LAND, + /* 0x111 */ PROC_WOLF_WAIT_SLIP, + /* 0x112 */ PROC_WOLF_SLOPE_START, + /* 0x113 */ PROC_WOLF_ROPE_MOVE, + /* 0x114 */ PROC_WOLF_ROPE_HANG, + /* 0x115 */ PROC_WOLF_ROPE_TURN, + /* 0x116 */ PROC_WOLF_ROPE_STAGGER, + /* 0x117 */ PROC_WOLF_ROPE_SUBJECTIVITY, + /* 0x118 */ PROC_WOLF_TAG_JUMP, + /* 0x119 */ PROC_WOLF_TAG_JUMP_LAND, + /* 0x11A */ PROC_WOLF_ROLL_ATTACK_CHARGE, + /* 0x11B */ PROC_WOLF_ROLL_ATTACK_MOVE, + /* 0x11C */ PROC_WOLF_JUMP_ATTACK, + /* 0x11D */ PROC_WOLF_JUMP_AT_KICK, + /* 0x11E */ PROC_WOLF_JUMP_AT_SLIDE_LAND, + /* 0x11F */ PROC_WOLF_JUMP_AT_NORMAL_LAND, + /* 0x120 */ PROC_WOLF_WAIT_ATTACK, + /* 0x121 */ PROC_WOLF_ROLL_ATTACK, + /* 0x122 */ PROC_WOLF_DOWN_ATTACK, + /* 0x123 */ PROC_WOLF_DOWN_AT_LAND, + /* 0x124 */ PROC_WOLF_DOWN_AT_MISS_LAND, + /* 0x125 */ PROC_WOLF_LOCK_ATTACK, + /* 0x126 */ PROC_WOLF_LOCK_ATTACK_TURN, + /* 0x127 */ PROC_WOLF_SWIM_UP, + /* 0x128 */ PROC_WOLF_SWIM_WAIT, + /* 0x129 */ PROC_WOLF_SWIM_MOVE, + /* 0x12A */ PROC_WOLF_SWIM_END_WAIT, + /* 0x12B */ PROC_WOLF_GRAB_UP, + /* 0x12C */ PROC_WOLF_GRAB_PUT, + /* 0x12D */ PROC_WOLF_GRAB_THROW, + /* 0x12E */ PROC_WOLF_CHAIN_UP, + /* 0x12F */ PROC_WOLF_PUSH, + /* 0x130 */ PROC_WOLF_CHAIN_READY, + /* 0x131 */ PROC_WOLF_CHAIN_WAIT, + /* 0x132 */ PROC_WOLF_DIG, + /* 0x133 */ PROC_WOLF_DIG_THROUGH, + /* 0x134 */ PROC_WOLF_ATTACK_REVERSE, + /* 0x135 */ PROC_WOLF_ENEMY_THROW, + /* 0x136 */ PROC_WOLF_ENEMY_HANG_BITE, + /* 0x137 */ PROC_WOLF_GIANT_PUZZLE, + /* 0x138 */ PROC_WOLF_CARGO_CARRY, + /* 0x139 */ PROC_WOLF_GET_SMELL, + /* 0x13A */ PROC_WOLF_SMELL_WAIT, + /* 0x13B */ PROC_WOLF_SNOW_ESCAPE, + /* 0x13C */ PROC_WOLF_GANON_CATCH, + /* 0x13D */ PROC_TOOL_DEMO, + /* 0x13E */ PROC_SUBJECTIVITY, + /* 0x13F */ PROC_SWIM_SUBJECTIVITY, + /* 0x140 */ PROC_PEEP_SUBJECTIVITY, + /* 0x141 */ PROC_POLY_DAMAGE, + /* 0x142 */ PROC_ELEC_DAMAGE, + /* 0x143 */ PROC_PUSH_PULL_WAIT, + /* 0x144 */ PROC_PUSH_MOVE, + /* 0x145 */ PROC_TALK, + /* 0x146 */ PROC_OPEN_TREASURE, + /* 0x147 */ PROC_UNEQUIP, + /* 0x148 */ PROC_GET_ITEM, + /* 0x149 */ PROC_TURN_BACK, + /* 0x14A */ PROC_LOOK_WAIT, + /* 0x14B */ PROC_DEMO_PUSH_PULL_WAIT, + /* 0x14C */ PROC_DEMO_PUSH_MOVE, + /* 0x14D */ PROC_METAMORPHOSE, + /* 0x14E */ PROC_METAMORPHOSE_ONLY, + /* 0x14F */ PROC_WARP, + /* 0x150 */ PROC_DEAD, + /* 0x151 */ PROC_FOG_DEAD, + /* 0x152 */ PROC_LOOK_AROUND, + /* 0x153 */ PROC_CAUGHT, + /* 0x154 */ PROC_SAND_WALL_HIT, + /* 0x155 */ PROC_LAVA_RETURN, + /* 0x156 */ PROC_SWIM_FREEZE_RETURN, + /* 0x157 */ PROC_GET_READY_SIT, + /* 0x158 */ PROC_TW_GATE, + /* 0x159 */ PROC_LARGE_DAMAGE, + /* 0x15A */ PROC_LARGE_DAMAGE_WALL, + /* 0x15B */ PROC_NOD, + /* 0x15C */ PROC_EYE_AWAY, + /* 0x15D */ PROC_GLARE, + /* 0x15E */ PROC_HORSE_CALL_WAIT, + /* 0x15F */ PROC_QUAKE_WAIT, + + PROC_MAX, + }; + + enum daAlink_ITEM_BTN { + /* 0x01 */ BTN_X = (1 << 0), + /* 0x02 */ BTN_Y = (1 << 1), + /* 0x04 */ BTN_Z = (1 << 2), + /* 0x08 */ BTN_B = (1 << 3), + /* 0x10 */ BTN_A = (1 << 4), + /* 0x20 */ BTN_L = (1 << 5), + /* 0x40 */ BTN_R = (1 << 6), + }; + + /** + * Moving direction calculated from an angle + */ + enum daAlink_DIR { + /* 0x0 */ DIR_FORWARD, + /* 0x1 */ DIR_BACKWARD, + /* 0x2 */ DIR_LEFT, + /* 0x3 */ DIR_RIGHT, + /* 0x4 */ DIR_NONE, + }; + + enum daAlink_EFFPROC { + EFFPROC_FRONT_ROLL, + EFFPROC_SLIP, + EFFPROC_SMALL_LAND, + EFFPROC_RUN, + EFFPROC_LAND, + EFFPROC_SUMOU, + EFFPROC_NONE, + }; + + enum daAlink_RIDETYPE { + RIDETYPE_HORSE = 1, + RIDETYPE_BOAR, + RIDETYPE_CANOE, + RIDETYPE_BOARD, + RIDETYPE_SPINNER, + }; + + class firePointEff_c { + public: + /* 0x00 */ u8 field_0x0; + /* 0x02 */ u16 field_0x2; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 field_0x8; + /* 0x0C */ cXyz field_0xc; + /* 0x18 */ cXyz field_0x18; + /* 0x24 */ cXyz field_0x24; + }; + + class hsChainShape_c : public J3DPacket { + public: + hsChainShape_c() {} + virtual void draw(); + virtual ~hsChainShape_c() {} + }; // Size: 0x10 + + static BOOL getE3Zhint(); + static const char* getAlinkArcName(); + static bool checkStageName(char const* i_stageName); + void tgHitCallback(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_tgObjInf, dCcD_GObjInf* i_atObjInf); + void coHitCallback(fopAc_ac_c* i_coHitActor, dCcD_GObjInf* i_coHitObj); + void setMatrixWorldAxisRot(MtxP i_mtx, s16 i_rotX, s16 i_rotY, s16 i_rotZ, BOOL, cXyz const*); + int jointControll(int i_jointNo); + void setUpperFront(); + void changeBlendRate(int i_jointNo); + void resetRootMtx(); + bool modelCallBack(int i_jointNo); + int headModelCallBack(int i_jointNo); + int wolfModelCallBack(int i_jointNo); + void setHatAngle(); + void calcHairAngle(s16* o_angle); + void setHairAngle(cXyz*, f32, f32); + void setLookPosFromOut(cXyz* i_pos); + bool checkAttentionPosAngle(cXyz*); + bool checkActorPosAngle(fopAc_ac_c* i_actor, cXyz** o_ppos); + cXyz* getNeckAimPos(cXyz*, int*, int); + s16 getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*); + void setEyeMove(cXyz*, s16, s16); + void setNeckAngle(); + bool commonLineCheck(cXyz* i_startPos, cXyz* i_endPos); + static s16 getMoveBGActorName(cBgS_PolyInfo& i_polyinf, BOOL i_forceCheck); + fopAc_ac_c* checkGoronRide(); + void setMoveSlantAngle(); + int setArmMatrix(); + int setFootMatrix(); + void setMatrixOffset(f32*, f32); + int setLegAngle(f32, daAlink_footData_c*, s16*, s16*, int); + void footBgCheck(); + void handBgCheck(); + JKRHeap* setItemHeap(); + void setIdxMask(u16* o_arcNo, u16* o_resIdx); + J3DAnmTransform* getAnimeResource(daPy_anmHeap_c* i_anmHeap, u16 i_resIdx, u32 i_bufSize); + J3DModel* initModel(J3DModelData* i_modelData, u32 i_mdlFlags, u32 i_diffFlags); + J3DModel* initModel(u16 i_resIdx, u32 i_diffFlags); + J3DModel* initModelEnv(u16 i_resIdx, u32 i_diffFlags); + int initDemoModel(J3DModel** i_ppmodel, char const* i_resName, u32 i_diffFlags); + static int initDemoBck(mDoExt_bckAnm** i_ppbck, char const* i_resName); + int createHeap(); + void setSelectEquipItem(BOOL); + BOOL checkBoarStart(); + BOOL checkCanoeStart(); + void playerInit(); + BOOL checkHorseStart(u32 i_lastMode, int i_startMode); + int setStartProcInit(); + int create(); + int setRoomInfo(); + void setShapeAngleOnGround(); + void setStepsOffset(); + void iceSlipBgCheck(); + void setIceSlipSpeed(); + void setPolygonSpeed(); + bool checkWindSpeedOnAngle() const; + bool checkWindSpeedOnAngleAnime(int) const; + bool checkDashAnime() const; + f32 checkWindWallRate(cXyz const&); + void setWindSpeed(); + void setBodyPartPos(); + void setAttentionPos(); + void setMatrix(); + static int simpleAnmPlay(J3DAnmBase* i_anm); + void setSwordPos(); + void setItemMatrix(int); + void setWolfItemMatrix(); + void setHandIndex(daAlink_c::daAlink_ANM); + void setSwordAtCollision(int); + BOOL checkNoCollisionCorret(); + void decSwordBlur(); + void resetWolfAtCollision(); + void setWolfAtCollision(); + void resetAtCollision(int); + void setAtCollision(); + void setWolfCollisionPos(); + void initLockAt(); + void cancelLockAt(); + void setCollisionPos(); + void setCollision(); + void setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s16 i_end, + f32 i_rate, f32 i_frame); + const daAlink_BckData* getMainBckData(daAlink_c::daAlink_ANM i_anmID) const; + BOOL checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; + BOOL checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; + int getUnderUpperAnime(daAlink_c::daAlink_ANM i_anmID, J3DAnmTransform** i_underBck, + J3DAnmTransform** i_upperBck, int i_anmPackID, u32 i_bufSize); + void setDoubleAnimeBlendRatio(f32 i_ratio); + void commonDoubleAnime(J3DAnmTransform* i_underBck1, J3DAnmTransform* i_upperBck1, + J3DAnmTransform* i_underBck2, J3DAnmTransform* i_upperBck2, + f32 i_blendRatio, f32 i_anmSpeed1, f32 i_anmSpeed2, int); + int setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, + daAlink_c::daAlink_ANM i_anmA, daAlink_c::daAlink_ANM i_anmB, + int param_5, f32 i_morf); + void commonSingleAnime(J3DAnmTransform* i_underBck, J3DAnmTransform* i_upperBck, + f32 i_speed, f32 i_startF, s16 i_endF); + int setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID); + int setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 i_morf); + int setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_morf); + int setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_startF, s16 i_endF, + f32 i_morf); + int setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, const daAlinkHIO_anm_c* i_anmParams); + void animePlay(J3DAnmTransform* i_anm, daPy_frameCtrl_c* i_frameCtrl); + void allAnimePlay(); + void setUpperAnimeMorf(f32 i_morf); + void setUpperAnimeBase(u16 i_anmResIdx); + void setUpperAnimeBaseMorf(u16 i_anmResIdx, f32 i_morf); + void setUpperAnimeBaseSpeed(u16 i_anmResIdx, f32 i_speed, f32 i_morf); + int setUpperAnime(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, f32 i_speed, + f32 i_startFrame, s16 i_endFrame, f32 i_morf); + void setUpperAnimeParam(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, + const daAlinkHIO_anm_c* i_anmParam); + int resetUpperAnime(daAlink_c::daAlink_UPPER i_upperIdx, f32 i_morf); + void setUnderAnimeMorf(f32 i_morf); + int setUnderAnime(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, f32 i_speed, + f32 i_startF, s16 i_endF, f32 i_morf); + int setUnderAnimeParam(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, + const daAlinkHIO_anm_c* i_anmParam); + int resetUnderAnime(daAlink_c::daAlink_UNDER i_underIdx, f32 i_morf); + void setOldRootQuaternion(s16, s16, s16); + BOOL checkAtnLeftAnime(); + BOOL checkAtnRightAnime(); + f32 getMoveGroundAngleSpeedRate(); + void setBlendMoveAnime(f32 i_morf); + void setBlendAtnMoveAnime(f32 i_morf); + void setBlendAtnBackMoveAnime(f32 i_morf); + void setFaceBck(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + void setFaceBtp(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + void setFaceBtk(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + daAlink_FTANM setFaceBasicTexture(daAlink_c::daAlink_FTANM i_ftanm); + void setFaceBasicAnime(daAlink_c::daAlink_ANM i_anm); + void setFacePriTexture(daAlink_c::daAlink_FTANM i_ftanm); + void setFacePriAnime(daAlink_c::daAlink_ANM i_anm); + void resetFacePriBck(); + void resetFacePriBtp(); + void resetFacePriBtk(); + void resetFacePriTexture(); + void resetFacePriAnime(); + void playFaceTextureAnime(); + s16 getGroundAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); + s16 getRoofAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); + BOOL getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz* o_outVec, int); + void setFrontWallType(); + BOOL checkWaterPolygonUnder(); + void setWaterY(); + void setHangWaterY(); + void setSandDownBgCheckWallH(); + void setBgCheckParam(); + BOOL checkNotJumpSinkLimit(); + BOOL checkNotItemSinkLimit(); + void setSandShapeOffset(); + bool checkLv2MiddleBossBgRide(s16 i_procName); + bool getSlidePolygon(cM3dGPla* o_tripla); + BOOL checkSlope() const; + BOOL itemTriggerCheck(u8 i_btnFlag); + BOOL itemButtonCheck(u8 i_btnFlag); + BOOL itemButton(); + BOOL itemTrigger(); + BOOL spActionButton(); + BOOL spActionTrigger(); + BOOL midnaTalkTrigger() const; + BOOL swordSwingTrigger(); + void setItemActionButtonStatus(u8 i_status); + BOOL itemActionTrigger(); + void setStickData(); + void setAtnList(); + void setRStatus(u8 i_status); + void setRStatusEmphasys(u8 i_status); + void setDoStatus(u8 i_status); + void setDoStatusEmphasys(u8 i_status); + void setDoStatusContinuation(u8 i_status); + void setBStatus(u8 i_status); + BOOL checkAtnWaitAnime(); + void setTiredVoice(daPy_frameCtrl_c* i_frameCtrl); + BOOL checkRestHPAnime(); + static int getDirectionFromAngle(s16 i_angle); + bool checkAttentionState(); + s16 getShapeAngleYAtnActor(); + bool setShapeAngleToAtnActor(int); + void initServiceWaitTime(); + bool checkZeroSpeedF() const; + void setNormalSpeedF(f32 i_speed, f32 i_deceleration); + f32 getStickAngleDistanceRate(); + void setSpeedAndAngleNormal(); + void setSpeedAndAngleAtn(); + int checkRequestTalkActor(dAttList_c* i_attList, fopAc_ac_c* i_actor); + bool checkServiceWaitMode(); + void setJumpMode(); + f32 getMetamorphoseNearDis() const; + f32 getMetamorphoseFarDis() const; + s16 getMetamorphoseFarAngle() const; + void setMidnaMsg(); + BOOL notTalk(); + BOOL setTalkStatus(); + f32 getFrontRollRate(); + void decideCommonDoStatus(); + void decideDoStatus(); + BOOL checkWaitAction(); + void setFallVoice(); + void setLandPassiveData(); + void setStepLandVibration(); + BOOL checkLandAction(int); + BOOL checkSlideAction(); + BOOL checkAutoJumpAction(); + BOOL checkCutJumpInFly(); + BOOL checkFrontWallTypeAction(); + int checkItemActionInitStart(); + int checkItemChangeAutoAction(); + void setFastShotTimer(); + void cancelItemUseQuake(int); + int cancelUpperItemReadyAnime(int); + BOOL checkItemActorPointer(); + bool checkSwordTwirlAction(); + BOOL checkUpperItemActionFly(); + void checkItemButtonChange(); + BOOL checkUpperItemAction(); + void orderPeep(); + int orderTalk(int); + int orderZTalk(); + int checkNormalAction(); + bool checkReadyItem(); + BOOL checkItemAction(); + BOOL checkRAction(); + BOOL checkMoveDoAction(); + BOOL checkSideRollAction(int); + BOOL checkNoUpperAnime() const; + BOOL checkOneHandItemEquipAnime() const; + BOOL checkItemEquipAnime() const; + BOOL checkEquipAnime() const; + BOOL checkWindDashAnime() const; + BOOL checkSwordTwirlAnime() const; + void swordEquip(int); + void swordUnequip(); + void itemEquip(u16 i_itemID); + void itemUnequip(u16 i_itemID, f32 i_playSpeed); + bool checkFastUnequip(); + void allUnequip(int); + BOOL checkItemChangeFromButton(); + BOOL checkNextActionFromButton(); + BOOL checkGroundSpecialMode(); + int commonCheckNextAction(int); + int checkNextAction(int); + void commonChangeItem(); + void setItemAction(); + BOOL checkNextActionFromCrouch(int); + int checkUpperReadyThrowAnime() const; + void getBodyAngleXBasePos(cXyz* o_pos); + s16 getBodyAngleXAtnActor(int); + void setBodyAngleXReadyAnime(int); + void setMagicArmorBrk(int i_status); + BOOL checkMagicArmorHeavy() const; + BOOL checkHeavyStateOn(BOOL, BOOL); + void initGravity(); + void setSpecialGravity(f32 i_gravity, f32 i_speed, BOOL i_isOffFlag); + void transAnimeProc(cXyz*, f32, f32); + void setFootSpeed(); + void posMove(); + void autoGroundHit(); + bool startPeepChange(); + void setLastSceneDamage(int i_dmgAmount, u32* o_mode); + void setLastSceneMode(u32*); + int startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, BOOL i_isEventRun); + BOOL checkCoachGuardGame(); + void checkRoofRestart(); + BOOL checkRestartRoom(); + s16 getSceneExitMoveAngle(); + int checkSceneChange(int i_exitID); + void voiceStartLevel(u32 i_soundID); + void seStartSwordCut(u32 i_soundID); + void seStartMapInfo(u32 i_soundID); + void seStartMapInfoLevel(u32 i_soundID); + void setBasAnime(daAlink_c::daAlink_UNDER i_underIdx); + void initBasAnime(); + void resetBasAnime(); + BOOL checkSightLine(f32 i_maxDist, cXyz* o_sightPos); + void setMetamorphoseModel(BOOL i_isChangeToWolf); + void keepItemData(); + void returnKeepItemData(); + BOOL setItemModel(); + BOOL setItemActor(); + void makeItemType(); + BOOL checkZoraWearAbility() const; + BOOL checkMagicArmorWearAbility() const; + J3DModelData* loadAramBmd(u16 i_resIdx, u32 i_bufSize); + void* loadAram(u16 i_resIdx, u32 i_bufSize); + J3DAnmTevRegKey* loadAramItemBrk(u16 i_resIdx, J3DModel* i_model); + J3DAnmTextureSRTKey* loadAramItemBtk(u16 i_resIdx, J3DModel* i_model); + J3DAnmTexPattern* loadAramItemBtp(u16 i_resIdx, J3DModel* i_model); + void changeItemBck(u16 i_resIdx, f32); + BOOL checkGroupItem(int i_itemNo, int i_selItem) const; + int checkSetItemTrigger(int i_itemNo); + int checkItemSetButton(int i_itemNo); + static bool checkField(); + static bool checkBossRoom(); + static bool checkDungeon(); + static bool checkCastleTown(); + static bool checkCloudSea(); + static bool checkRoomOnly(); + static bool checkLv2DungeonRoomSpecial(); + static bool checkRoomSpecial(); + static bool checkRoom(); + static bool checkNotBattleStage(); + static bool checkNotHeavyBootsStage(); + static bool checkNotAutoJumpStage(); + static bool checkCastleTownUseItem(u16 i_itemNo); + int changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType); + int checkNewItemChange(u8 i_selItemIdx); + void deleteEquipItem(BOOL i_isPlaySound, BOOL i_isDeleteKantera); + void setLight(); + void setFrontRollCrashShock(u8); + void changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE i_matMode); + void commonProcInit(daAlink_c::daAlink_PROC i_procID); + BOOL commonProcInitNotSameProc(daAlink_PROC i_procID); + int procPreActionUnequipInit(int i_procAfter, fopAc_ac_c*); + int procPreActionUnequip(); + int procServiceWaitInit(); + int procServiceWait(); + int procTiredWaitInit(); + int procTiredWait(); + int procWaitInit(); + int procWait(); + int procMoveInit(); + int procMove(); + int procAtnMoveInit(); + int procAtnMove(); + int procAtnActorWaitInit(); + int procAtnActorWait(); + int procAtnActorMoveInit(); + int procAtnActorMove(); + int procWaitTurnInit(); + int procWaitTurn(); + int procMoveTurnInit(int); + int procMoveTurn(); + int procSideStepInit(int i_jumpDirection); + int procSideStep(); + int procSideStepLandInit(); + int procSideStepLand(); + int procSlideInit(s16); + int procSlide(); + int procSlideLandInit(int); + int procSlideLand(); + int procFrontRollInit(); + int procFrontRoll(); + int procFrontRollCrashInit(); + int procFrontRollCrash(); + int procFrontRollSuccessInit(); + int procFrontRollSuccess(); + int procSideRollInit(int); + int procSideRoll(); + void backJumpSpeedDec(); + int procBackJumpInit(int); + int procBackJump(); + int procBackJumpLandInit(int); + int procBackJumpLand(); + int procSlipInit(); + int procSlip(); + int procAutoJumpInit(int); + int procAutoJump(); + int procDiveJumpInit(); + int procDiveJump(); + int procRollJumpInit(); + int procRollJump(); + int procFallInit(int, f32 i_morf); + int procFall(); + int procLandInit(f32); + int procLand(); + int procSmallJumpInit(int); + int procSmallJump(); + int procStepMoveInit(); + int procStepMove(); + int procCrouchInit(); + int procCrouch(); + int procCoMetamorphoseInit(); + int procCoMetamorphose(); + int procCoMetamorphoseOnlyInit(); + int procCoMetamorphoseOnly(); + int procFloorDownReboundInit(); + int procFloorDownRebound(); + int procGoronRideWaitInit(fopAc_ac_c* i_goronActor); + int procGoronRideWait(); + int execute(); + void setDrawHand(); + bool checkSwordDraw(); + bool checkShieldDraw(); + bool checkItemDraw(); + int initShadowScaleLight(); + int moveShadowScaleLight(); + void shadowDraw(); + void modelCalc(J3DModel* i_model); + void basicModelDraw(J3DModel* i_model); + void modelDraw(J3DModel*, int); + void setWaterDropColor(J3DGXColorS10 const*); + void initTevCustomColor(); + int draw(); + ~daAlink_c(); + bool checkNoSubjectModeCamera(); + bool acceptSubjectModeChange(); + int checkSubjectAction(); + s16 checkBodyAngleX(s16 i_angle); + BOOL setBodyAngleToCamera(); + void setSubjectMode(); + BOOL subjectCancelTrigger(); + BOOL checkSubjectEnd(BOOL i_isPlaySe); + void searchPeepObj(fopAc_ac_c* i_actor, void* i_data); + int procCoSubjectivityInit(); + int procCoSubjectivity(); + int procCoSwimSubjectivityInit(); + int procCoSwimSubjectivity(); + int procCoPeepSubjectivityInit(); + int procCoPeepSubjectivity(); + daAlink_c(); + BOOL checkWolfEnemyThrowAnime() const { + return checkUpperAnime(0x2BD) || checkUpperAnime(0x2BE); + } + void setMidnaTalkStatus(u8 status) { dComIfGp_setZStatus(status, 0); } + void set3DStatus(u8 status, u8 direction) { + dComIfGp_set3DStatus(status, direction, 0); + } + void checkCutTurnCharge(); + void checkLightSwordMtrl(); + BOOL checkSwordEquipAnime() const; + BOOL checkCutDashAnime() const; + BOOL checkCutDashEnemyHit(dCcD_GObjInf&); + static u32 getSwordAtType(); + void initCutTurnAt(f32, int); + bool checkCutFinishJumpUp(); + void changeCutFast(); + bool checkCutFastReady(); + void setSwordModel(); + void offSwordModel(); + BOOL checkCutTypeNoBlur() const; + bool checkCutTurnInput() const; + int getCutTurnDirection() const; + void resetCombo(int i_resetRunCut); + void checkComboCnt(); + void setCutType(u8 i_type); + void setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, + f32 i_radius, f32 i_height); + void setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, + f32 param_4, f32 i_radius); + static BOOL notSwordHitVibActor(fopAc_ac_c* i_actor); + BOOL setSwordHitVibration(dCcD_GObjInf* i_gobj); + BOOL checkAtShieldHit(dCcD_GObjInf& i_gobj); + BOOL checkCutReverseAt(dCcD_GObjInf* i_gobj); + BOOL changeCutReverseProc(daAlink_c::daAlink_ANM i_anmID); + void setCutDash(int, int); + BOOL checkForceSwordSwing(); + void setComboReserb(); + BOOL checkComboReserb(); + int commonCutAction(); + void setSwordVoiceSe(u32 i_seID); + void setSwordChargeVoiceSe(); + void setSwordComboVoice(); + bool checkCutTurnInputTrigger(); + int checkCutAction(); + int getCutDirection(); + BOOL checkCutCancelNextMode(int); + BOOL checkDoCutAction(); + BOOL checkCutBackState(); + BOOL checkCutHeadState(); + BOOL checkDownAttackState(); + BOOL checkCutLargeTurnState() const; + void cancelCutCharge(); + void initCutAtnActorSearch(); + void checkCutAtnActorChange(); + void setCutJumpSpeed(BOOL i_isAirCut); + int procCutNormalInit(int i_type); + int procCutNormal(); + int procCutFinishInit(int i_type); + int procCutFinish(); + int procCutFinishJumpUpInit(); + int procCutFinishJumpUp(); + int procCutFinishJumpUpLandInit(); + int procCutFinishJumpUpLand(); + int procCutReverseInit(daAlink_c::daAlink_ANM i_anmID); + int procCutReverse(); + int procCutJumpInit(BOOL i_isAirCut); + int procCutJump(); + int procCutJumpLandInit(int); + int procCutJumpLand(); + int procCutTurnInit(int, int); + int procCutTurn(); + int procCutTurnChargeInit(); + int procCutTurnCharge(); + int procCutTurnMoveInit(int); + int procCutTurnMove(); + int procCutDownInit(); + int procCutDown(); + int procCutDownLandInit(fopEn_enemy_c* i_enemy); + int procCutDownLand(); + int procCutHeadInit(); + int procCutHead(); + int procCutHeadLandInit(); + int procCutHeadLand(); + int procCutLargeJumpChargeInit(); + int procCutLargeJumpCharge(); + int procCutLargeJumpInit(); + int procCutLargeJump(); + int procCutLargeJumpLandInit(int); + int procCutLargeJumpLand(); + int procSwordUnequipSpInit(); + int procSwordUnequipSp(); + s16 getFreezeR() const; + s16 getFreezeG() const; + s16 getFreezeB() const; + bool checkMiddleBossGoronRoom(); + void freezeTimerDamage(); + BOOL checkNoLandDamageSlidePolygon(); + void checkCutLandDamage(); + BOOL checkCaughtEscapeCutTurn(); + f32 damageMagnification(BOOL i_checkZoraMag, int); + int setDamagePoint(int i_dmgAmount, BOOL i_checkZoraMag, BOOL i_setDmgTimer, int); + int setDamagePointNormal(int i_dmgAmount); + int setLandDamagePoint(int i_dmgAmount); + cXyz* getDamageVec(dCcD_GObjInf*); + void setDashDamage(); + static BOOL checkIcePolygonDamage(cBgS_PolyInfo*); + BOOL checkMagicArmorNoDamage(); + int checkPolyDamage(); + BOOL checkElecReturnDamage(dCcD_GObjInf& i_obj, fopAc_ac_c** o_hitActor); + void damageTimerCount(); + bool checkHugeAttack(int i_atSpl) const; + bool checkLargeAttack(int i_atSpl) const; + BOOL checkDamageAction(); + int procDamageInit(dCcD_GObjInf* i_tgObj, int); + int procDamage(); + int procCoLargeDamageInit(int i_type, BOOL i_isLargeDmg, s16, s16, dCcD_GObjInf* i_hitObj, int); + int procCoLargeDamage(); + int procLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); + int procLargeDamageUp(); + int procCoLargeDamageWallInit(int i_type, BOOL i_isLargeDmg, s16, s16); + int procCoLargeDamageWall(); + int procCoPolyDamageInit(); + int procCoPolyDamage(); + int procLandDamageInit(int); + int procLandDamage(); + int procCoElecDamageInit(fopAc_ac_c* i_tgHitActor, dCcD_GObjInf* i_tgHitObj, int i_atSpl); + int procCoElecDamage(); + int procStEscapeInit(); + int procStEscape(); + int procDkCaughtInit(fpc_ProcID); + int procDkCaught(); + void setScreamWaitAnime(); + int procScreamWaitInit(); + int procScreamWait(); + int procCoSandWallHitInit(); + int procCoSandWallHit(); + int procCoLavaReturnInit(BOOL i_isSandReturn); + int procCoLavaReturn(); + int procCoSwimFreezeReturnInit(); + int procCoSwimFreezeReturn(); + static BOOL checkEnemyGroup(fopAc_ac_c*); + static BOOL checkSpecialNpc(fopAc_ac_c*); + BOOL checkShieldAttackEmphasys(); + BOOL checkGuardActionChange(); + void stickArrowIncrement(int); + void setArrowShieldActor(fopAc_ac_c*, int); + BOOL checkWoodShieldEquipNotIronBall() const; + void getArrowShieldOffset(cXyz const*, csXyz const*, cXyz*, cXyz*) const; + void setArrowShieldPos(cXyz*, csXyz*, cXyz const*, cXyz const*) const; + BOOL checkUpperGuardAnime() const; + BOOL checkPlayerGuardAndAttack() const; + BOOL checkGuardAccept(); + void setUpperGuardAnime(f32); + void setShieldGuard(); + void setGuardSe(dCcD_GObjInf* i_objinf); + void setSmallGuard(dCcD_GObjInf* i_objinf); + int procGuardSlipInit(int i_atSpl, dCcD_GObjInf* i_objinf); + int procGuardSlip(); + int procGuardAttackInit(); + int procGuardAttack(); + int procGuardBreakInit(); + int procGuardBreak(); + int procTurnMoveInit(int); + int procTurnMove(); + void getArrowFlyData(f32* o_distance, f32* o_speed, BOOL i_forceCharge) const; + f32 getArrowIncAtR() const; + s16 getBombArrowFlyExplodeTime() const; + f32 getArrowIncAtMaxStart() const; + f32 getArrowIncAtMax() const; + BOOL checkBowAndSlingItem(int i_itemNo); + void setSlingModel(); + cXyz* checkBowCameraArrowPosP(s16* o_angleX, s16* o_angleY); + BOOL checkBowReadyAnime() const; + BOOL checkBowAnime() const; + void makeArrow(); + void deleteArrow(); + void setBowOrSlingStatus(); + void changeArrowType(); + BOOL cancelBowMoveRideNotAtn(); + BOOL cancelBowMove(); + void setBowReadyAnime(); + void setBowReloadAnime(); + BOOL checkUpperItemActionBow(); + void checkUpperItemActionBowFly(); + int checkNextActionBow(); + void setBowModel(); + bool checkBowGrabLeftHand() const; + void setBowHangAnime(); + void setBowNormalAnime(); + void setBowSight(); + int procBowSubjectInit(); + int procBowSubject(); + int procBowMoveInit(); + int procBowMove(); + BOOL checkBoomerangLockAccept(); + f32 getBoomSpeed(); + f32 getBoomCatchSpeed() const; + f32 getBoomFlyMax() const; + f32 getBoomLockMax(); + s16 getBoomBgThroughTime() const; + bool checkBossBabaRoom(); + void cancelBoomerangLock(fopAc_ac_c*); + fopAc_ac_c* getBoomerangActor(); + bool checkBoomerangChargeEnd(); + BOOL checkBoomerangCarry(fopAc_ac_c*); + void initBoomerangUpperAnimeSpeed(int); + BOOL checkBoomerangAnime() const; + BOOL checkBoomerangThrowAnime() const; + void setBoomerangReadyQuake(); + void setBoomerangReadyAnime(); + void setThrowBoomerangAnime(); + void setBoomerangCatchAnime(); + void throwBoomerang(); + int returnBoomerang(int); + int checkUpperItemActionBoomerang(); + void checkUpperItemActionBoomerangFly(); + int checkNextActionBoomerang(); + int checkBoomerangCatchAction(); + void setBoomerangSight(); + int procBoomerangSubjectInit(); + int procBoomerangSubject(); + int procBoomerangMoveInit(); + int procBoomerangMove(); + int procBoomerangCatchInit(); + int procBoomerangCatch(); + static BOOL checkLv6BossRoom(); + f32 getCopyRodBallSpeed() const; + f32 getCopyRodBallReturnSpeed() const; + f32 getCopyRodBallDisMax() const; + fopAc_ac_c* getCopyRodControllActor(); + fopAc_ac_c* getCopyRodCameraActor(); + void initCopyRodUpperAnimeSpeed(int); + static BOOL checkForestOldCentury(); + int checkCopyRodAnime() const; + void setCopyRodControllAnime(); + void setCopyRodControllUpperSpeedRate(); + void setCopyRodModel(); + void setCopyRodReadyAnime(); + void throwCopyRod(); + int returnCopyRod(); + int checkUpperItemActionCopyRod(); + void checkUpperItemActionCopyRodFly(); + int checkNextActionCopyRod(); + void setCopyRodSight(); + int procCopyRodSubjectInit(); + int procCopyRodSubject(); + int procCopyRodMoveInit(); + int procCopyRodMove(); + int procCopyRodSwingInit(); + int procCopyRodSwing(); + int procCopyRodReviveInit(); + int procCopyRodRevive(); + void concatMagneBootMtx(); + void concatMagneBootInvMtx(); + void multVecMagneBootInvMtx(cXyz* o_dst); + bool commonMagneLineCheck(cXyz* i_start, cXyz* i_end); + BOOL checkBootsMoveAnime(int); + int setHeavyBoots(int); + s16 getMagneBootsLocalAngleY(s16, int); + void setMagneBootsMtx(cBgS_PolyInfo*, int); + int cancelMagneBootsOn(); + int checkMagneBootsFly(); + int procBootsEquipInit(); + int procBootsEquip(); + int procMagneBootsFlyInit(); + int procMagneBootsFly(); + s16 getBombExplodeTime() const; + f32 getBombGravity() const; + f32 getBombMaxFallSpeed() const; + f32 getBombBoundRate() const; + f32 getBombStopSpeedY() const; + f32 getBombMaxSpeedY() const; + f32 getBombEffScale() const; + f32 getBombAtR() const; + s16 getEnemyBombColorR() const; + f32 getBombWaterGravity() const; + f32 getBombWaterMaxFallSpeed() const; + f32 getBombExplodeWaterEffectLimit() const; + s16 getBombInsectLimitAngle() const; + BOOL checkGrabLineCheck(); + f32 getGrabThrowRate(); + BOOL checkGrabThrowAnime() const; + BOOL checkGrabAnime() const; + BOOL checkGrabAnimeAndThrow() const; + BOOL checkGrabCarryActor(); + BOOL checkGrabSlowMoveActor(); + BOOL checkGrabHeavyActor(); + BOOL checkGrabSideActor(); + void setGrabUpperAnime(f32); + BOOL checkGrabRooster(); + void setGrabItemPos(); + void freeGrabItem(); + void setGrabUpperSpeedRate(); + void setCarryArmAngle(f32, f32); + BOOL checkGrabNotThrow(); + BOOL checkNextActionGrab(); + void initGrabNextMode(); + void setGrabItemThrow(); + BOOL checkUpperGrabItemThrow(f32); + void putObjLineCheck(dBgS_LinChk& i_linchk, cXyz* i_endpos, fopAc_ac_c* i_objActor); + bool grabLineCheck(cXyz* i_start, cXyz* i_end); + void setGrabItemActor(fopAc_ac_c* i_actor); + int procGrabReadyInit(); + int procGrabReady(); + int procGrabUpInit(); + int procGrabUp(); + int procGrabMiss(); + int procGrabThrowInit(int); + int procGrabThrow(); + int procGrabPutInit(); + int procGrabPut(); + int procGrabWaitInit(); + int procGrabWait(); + int procGrabReboundInit(int); + int procGrabRebound(); + int procGrabStandInit(); + int procGrabStand(); + BOOL checkInsectActorName(fopAc_ac_c* i_insectActor); + int procInsectCatchInit(); + int procInsectCatch(); + int procPickUpInit(); + int procPickUp(); + int procPickPutInit(int); + int procPickPut(); + BOOL checkSetChainPullAnime(s16); + s16 getChainStickAngleY(s16) const; + u8 checkChainEmphasys(); + BOOL searchFmChainPos(); + BOOL setFmChainPosFromOut(fopAc_ac_c*, cXyz*, int); + int procFmChainUpInit(); + int procFmChainUp(); + int procFmChainStrongPullInit(); + int procFmChainStrongPull(); + void setWallGrabStatus(u8 i_status, u8 i_flag); + int getWallGrabStatus(); + BOOL wallGrabTrigger(); + BOOL wallGrabButton(); + int setPushPullKeepData(dBgW_Base::PushPullLabel i_label, BOOL); + BOOL checkPushPullTurnBlock(); + BOOL checkPullBehindWall(); + void offGoatStopGame(); + BOOL checkGoatCatchActor(fopAc_ac_c* i_actor); + f32 getGoatCatchDistance2(); + int endPushPull(); + f32 getPushPullAnimeSpeed(); + int procCoPushPullWaitInit(int); + int procCoPushPullWait(); + int procCoPushMoveInit(int, int); + int procCoPushMove(); + int procPullMoveInit(int); + int procPullMove(); + void setGoatStopGameFail(fopAc_ac_c* i_actor); + int procGoatMoveInit(); + int procGoatMove(); + int procGoatCatchInit(fopAc_ac_c* i_actor, f32); + int procGoatCatch(); + int procGoatStrokeInit(); + int procGoatStroke(); + int procGoronMoveInit(); + int procGoronMove(); + BOOL checkSumouVsActor(); + void cancelSumouMode(); + BOOL sumouPunchTrigger(); + void setSumouPunchStatus(); + int procSumouReadyInit(); + int procSumouReady(); + int procSumouMoveInit(); + int procSumouMove(); + int procSumouSideMoveInit(); + int procSumouSideMove(); + int procSumouActionInit(BOOL i_isDoTrigger, BOOL i_isPunchTrigger, int unused); + int procSumouAction(); + int procSumouStaggerInit(); + int procSumouStagger(); + int procSumouWinLoseInit(); + int procSumouWinLose(); + int procSumouShikoInit(); + int procSumouShiko(); + static BOOL checkHorseZeldaBowMode(); + static void setHorseZeldaDamage(); + static BOOL checkHorseDashAccept(); + static BOOL checkCowGame(); + int getReinRideDirection(); + int checkReinRideBgCheck(); + void commonInitForceRideRein(); + int initForceRideBoar(); + void initForceRideHorse(); + void rideGetOff(); + BOOL checkHorseNotDamageReaction() const; + BOOL checkHorseWaitLashAnime() const; + BOOL checkHorseReinLeftOnly() const; + int getReinHandType() const; + BOOL checkHorseLieAnime() const; + BOOL checkHorseSubjectivity() const; + void setHorseSwordUpAnime(); + void setHorseTurnUpperAnime(BOOL i_isTurnL); + BOOL checkHorseNoUpperAnime() const; + void getHorseReinHandPos(cXyz* o_handPosA, cXyz* o_handPosB); + BOOL checkHorseNotGrab() const; + void setHorseStirrup(); + void changeBoarRunRide(); + int setSyncHorsePos(); + int setSyncBoarPos(); + int setSyncBoarRunPos(); + BOOL setSyncRidePos(); + void setHorseTurnAnime(); + void getBaseHorseAnime(daAlink_c::daAlink_ANM* i_anmList); + int checkHorseSpecialProc(); + BOOL checkHorseServiceWaitAnime(); + int setSyncHorse(int); + int setSyncBoar(int); + int setSyncRide(int); + void setBaseHorseAnimeFrame(); + void setBaseBoarAnime(); + void setBaseRideAnime(); + bool checkHorseSwordUpSpped(); + void setHorseSwordUp(int); + int setRideSubjectAngle(s16); + void setBodyAngleRideReadyAnime(); + BOOL checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndPos, s16); + int checkHorseGetOffDirection(); + void boarForceGetOff(); + void horseGetOffEnd(); + int checkNextActionHorse(); + BOOL checkHorseGetOff(); + int checkHorseGetOffAndSetDoStatus(); + int setHorseGetOff(int); + int procHorseRideInit(); + int procHorseRide(); + int procHorseGetOffInit(int); + int procHorseGetOff(); + int procHorseWaitInit(); + int procHorseWait(); + int procHorseTurnInit(); + int procHorseTurn(); + int procHorseJumpInit(); + int procHorseJump(); + int procHorseLandInit(); + int procHorseLand(); + int procHorseSubjectivityInit(); + int procHorseSubjectivity(); + int procHorseCutInit(); + int procHorseCut(); + int procHorseCutChargeReadyInit(); + int procHorseCutChargeReady(); + int procHorseCutTurnInit(); + int procHorseCutTurn(); + int procHorseDamageInit(dCcD_GObjInf* i_hitObj); + int procHorseDamage(); + int procHorseBowSubjectInit(); + int procHorseBowSubject(); + int procHorseBowMoveInit(); + int procHorseBowMove(); + int procHorseGrabMoveInit(); + int procHorseGrabMove(); + int procHorseBoomerangSubjectInit(); + int procHorseBoomerangSubject(); + int procHorseBoomerangMoveInit(); + int procHorseBoomerangMove(); + int procHorseHookshotSubjectInit(); + int procHorseHookshotSubject(); + int procHorseHookshotMoveInit(); + int procHorseHookshotMove(); + int procHorseBottleDrinkInit(u16 i_itemNo); + int procHorseBottleDrink(); + int procHorseKandelaarPourInit(); + int procHorseKandelaarPour(); + int procHorseComebackInit(); + int procHorseComeback(); + int procHorseRunInit(); + int procHorseRun(); + int procHorseHangInit(dCcD_GObjInf* i_hitObj, BOOL i_isPlaySE); + int procHorseHang(); + int procHorseGetKeyInit(); + int procHorseGetKey(); + int procHorseLookDownInit(); + int procHorseLookDown(); + int procBoarRunInit(); + int procBoarRun(); + f32 getCanoeMaxSpeed() const; + f32 getCanoeBackMaxSpeed() const; + f32 getCanoeCres() const; + f32 getCanoeSpeedRate() const; + s16 getCanoeMaxRotSpeed() const; + static cXyz* getCanoeLocalPaddleTop(); + BOOL checkCanoeRideTandem(); + BOOL checkFishingRodAndLureItem() const; + void initFishingRodHand(); + MtxP getCanoePaddleMatrix(); + BOOL checkFishingRodGrab(fopAc_ac_c* i_actor) const; + BOOL checkCanoePaddleGrab(fopAc_ac_c* i_actor) const; + BOOL checkCanoeFishingRodGrabOrPut() const; + void initCanoeRide(); + BOOL checkCanoeJumpRide(); + void setArmReelAnime(); + void setFishingWaitAction(); + void setFishGetFace(); + void setRideCanoeBasePos(fopAc_ac_c* i_canoeActor); + void setSyncCanoePos(); + int canoeCommon(); + int checkNextActionCanoe(); + int procCanoeRideInit(); + int procCanoeRide(); + int procCanoeJumpRideInit(fopAc_ac_c* i_canoeActor); + int procCanoeJumpRide(); + int procCanoeGetOffInit(); + int procCanoeGetOff(); + int procCanoeWaitInit(int); + int procCanoeWait(); + int procCanoeRowInit(int); + int procCanoeRow(); + int procCanoePaddleShiftInit(int); + int procCanoePaddleShift(); + int procCanoePaddlePutInit(int); + int procCanoePaddlePut(); + int procCanoePaddleGrabInit(); + int procCanoePaddleGrab(); + int procCanoeRodGrabInit(); + int procCanoeRodGrab(); + int procCanoeFishingWaitInit(); + int procCanoeFishingWait(); + int procCanoeFishingReelInit(); + int procCanoeFishingReel(); + int procCanoeFishingGetInit(); + int procCanoeFishingGet(); + int procCanoeSubjectivityInit(); + int procCanoeSubjectivity(); + int procCanoeBowSubjectInit(); + int procCanoeBowSubject(); + int procCanoeBowMoveInit(); + int procCanoeBowMove(); + int procCanoeGrabMoveInit(); + int procCanoeGrabMove(); + int procCanoeBoomerangSubjectInit(); + int procCanoeBoomerangSubject(); + int procCanoeBoomerangMoveInit(); + int procCanoeBoomerangMove(); + int procCanoeHookshotSubjectInit(); + int procCanoeHookshotSubject(); + int procCanoeHookshotMoveInit(); + int procCanoeHookshotMove(); + int procCanoeBottleDrinkInit(u16 i_itemNo); + int procCanoeBottleDrink(); + int procCanoeKandelaarPourInit(); + int procCanoeKandelaarPour(); + void setGroundFishingRodActor(); + int procFishingCastInit(); + int procFishingCast(); + int procFishingFoodInit(); + int procFishingFood(); + f32 getCrawlMoveAnmSpeed(); + f32 getCrawlMoveSpeed(); + void setCrawlMoveDirectionArrow(); + BOOL changeCrawlAutoMoveProc(cXyz*); + int getCrawlMoveVec(cXyz*, cXyz*, cXyz*, int, int, u8*); + void crawlBgCheck(cXyz*, cXyz*, int); + BOOL checkCrawlSideWall(cXyz*, cXyz*, cXyz*, cXyz*, s16*, s16*); + void decideCrawlDoStatus(); + BOOL checkNotCrawlStand(cXyz*); + BOOL checkNotCrawlStand(cXyz*, cXyz*); + BOOL checkCrawlInHoll(cXyz*, cXyz*, cXyz*, int); + void setCrawlMoveHoll(); + void setCrawlMoveAngle(); + void stopHalfMoveAnime(f32 i_frame); + void setCrawlAutoMoveAimPos(); + int procCrawlStartInit(); + int procCrawlStart(); + int procCrawlMoveInit(s16 i_angleX, s16 i_angleZ); + int procCrawlMove(); + int procCrawlAutoMoveInit(int, cXyz*); + int procCrawlAutoMove(); + int procCrawlEndInit(int, s16 i_angleX, s16 i_angleZ); + int procCrawlEnd(); + f32 getHangMoveAnmSpeed(); + int getHangDirectionFromAngle(); + BOOL hangMoveBgCheck(s16, cXyz*); + BOOL changeHangMoveProc(int i_direction); + bool checkHangFootWall(); + void setHangGroundY(); + int changeHangEndProc(); + void checkHangStartSideWall(s16); + int procHangStartInit(); + int procHangStart(); + int procHangFallStartInit(cM3dGPla*); + int procHangFallStart(); + int procHangUpInit(int); + int procHangUp(); + int procHangWaitInit(); + int procHangWait(); + int procHangMoveInit(int); + int procHangMove(); + int procHangClimbInit(f32); + int procHangClimb(); + int procHangWallCatchInit(); + int procHangWallCatch(); + int procHangReadyInit(); + int procHangReady(); + int procHangLeverDownInit(); + int procHangLeverDown(); + int setDragonHangPos(); + int setOctaIealHangPos(); + int setBossBodyHangPos(); + int procBossBodyHangInit(fopAc_ac_c* i_actor); + int procBossBodyHang(); + int getLadderUnitCount() const; + int setLadderInit(); + void setLadderPosInit(); + void setLadderPos(int); + f32 getLadderMoveAnmSpeed(); + int changeLadderMoveProc(int); + int setMoveBGLadderCorrect(); + int checkLadderFall(); + int procLadderUpStartInit(); + int procLadderUpStart(); + int procLadderUpEndInit(int); + int procLadderUpEnd(); + int procLadderDownStartInit(); + int procLadderDownStart(); + int procLadderDownEndInit(int); + int procLadderDownEnd(); + int procLadderMoveInit(int, int, cXyz*); + int procLadderMove(); + f32 getClimbMoveUpDownAnmSpeed(); + f32 getClimbMoveSideAnmSpeed(); + BOOL checkClimbCode(cBgS_PolyInfo& i_polyinfo); + BOOL setClimbInit(); + void setClimbShapeOffset(); + int getClimbDirectionFromAngle(); + void changeClimbMoveProc(int); + BOOL checkClimbMoveUpDownProc(int i_direction); + BOOL checkClimbMoveSideProc(int i_direction); + int setMoveBGClimbCorrect(); + int checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos); + BOOL checkClimbRoof(f32); + int checkClimbGround(cXyz*, f32); + BOOL checkBgClimbMove(int i_direction); + int setClimbStartNotGround(); + int procClimbUpStartInit(int); + int procClimbUpStart(); + int procClimbDownStartInit(s16); + int procClimbDownStart(); + int procClimbMoveUpDownInit(int); + int procClimbMoveUpDown(); + int procClimbMoveSideInit(); + int procClimbMoveSide(); + int procClimbWaitInit(int, int); + int procClimbWait(); + int procClimbToRoofInit(); + int procClimbToRoof(); + f32 getRoofHangFMoveAnmSpeed() const; + f32 getRoofHangSMoveAnmSpeed() const; + void setRoofHangHandOnSE(cBgS_PolyInfo* unused); + int checkRoofHangMovePos(); + int commonRoofHangProc(); + int checkNextActionRoofHang(); + int procRoofHangStartInit(cBgS_PolyInfo const&, cXyz const&, int); + int procRoofHangStart(); + int procRoofHangWaitInit(int); + int procRoofHangWait(); + int procRoofHangFrontMoveInit(); + int procRoofHangFrontMove(); + int procRoofHangSideMoveInit(); + int procRoofHangSideMove(); + int procRoofHangTurnInit(); + int procRoofHangTurn(); + void setRoofHangSwitch(); + int procRoofSwitchHangInit(fopAc_ac_c* i_actor); + int procRoofSwitchHang(); + BOOL checkZoraWearMaskDraw(); + BOOL checkAcceptUseItemInWater(u16 i_itemNo) const; + void swimDeleteItem(); + bool getZoraSwim() const; + f32 getSwimFrontMaxSpeed() const; + f32 getSwimMaxFallSpeed() const; + void checkOxygenTimer(); + void offOxygenTimer(); + BOOL checkPossibleWaterInMode() const; + void setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate); + void swimBgCheck(f32); + void setSpeedAndAngleSwim(); + int checkNextActionSwim(); + int checkSwimAction(int); + int checkSwimUpAction(); + void swimOutAfter(int); + BOOL checkSwimFall(); + int checkSwimOutAction(); + void setSwimMoveAnime(); + bool checkSwimButtonAccept(); + bool checkUpSwimButtonAccept(); + BOOL checkSwimButtonMove(); + BOOL checkZoraSwimMove(); + BOOL checkSwimNeckUpDown() const; + void setSwimUpDownOffset(); + int procSwimUpInit(); + int procSwimUp(); + int procSwimWaitInit(int); + int procSwimWait(); + int procSwimMoveInit(); + int procSwimMove(); + int procSwimDiveInit(); + int procSwimDive(); + int procSwimHookshotSubjectInit(); + int procSwimHookshotSubject(); + int procSwimHookshotMoveInit(); + int procSwimHookshotMove(); + int procSwimDamageInit(dCcD_GObjInf* i_hitObj); + int procSwimDamage(); + int procOctaIealSpitInit(); + int procOctaIealSpit(); + bool checkSnowCode() const; + static bool checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo); + bool checkBoardRestart(); + int boardCommon(BOOL i_canMove); + void setCommonBoardAnime(BOOL i_isRideFront); + int checkNextActionBoard(); + int checkBoardSwordTriggerAction(); + int commonProcBoardInit(daAlink_c::daAlink_PROC i_procID); + f32 getBoardRowAnmSpeed(); + void setBoardLandAnime(); + int procBoardRideInit(); + int procBoardRide(); + int procBoardWaitInit(fopAc_ac_c* i_boardActor); + int procBoardWait(); + int procBoardRowInit(); + int procBoardRow(); + int procBoardTurnInit(); + int procBoardTurn(); + int procBoardJumpInit(f32 i_jumpSpeed, BOOL i_isNoSpeed); + int procBoardJump(); + int procBoardSubjectivityInit(); + int procBoardSubjectivity(); + int procBoardCutInit(); + int procBoardCut(); + int procBoardCutTurnInit(); + int procBoardCutTurn(); + void hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf); + void resetHookshotMode(); + BOOL setEnemyBombHookshot(fopAc_ac_c* i_actor); + bool checkLv7BossRoom(); + BOOL checkHookshotStickBG(cBgS_PolyInfo& i_polyinfo); + void cancelHookshotCarry(); + void changeHookshotDrawModel(); + BOOL checkHookshotRoofLv7Boss(); + BOOL checkChaseHookshot(); + BOOL checkOctaIealSpecialCollect(); + BOOL checkBossOctaIealRoom(); + BOOL checkHookshotWait() const; + void setHookshotCatchNow(); + void setHookshotModel(); + void setHookshotSight(); + void cancelHookshotShot(); + bool cancelHookshotMove(); + BOOL checkHookshotReadyMaterialOffMode() const; + void setHookshotReadyMaterial(); + int initHookshotUpperAnimeSpeed(BOOL); + void initHookshotReady(); + void setHookshotReadyAnime(); + int checkUpperItemActionHookshot(); + int checkNextActionHookshot(); + void setHookshotReturnEnd(); + int setHookshotHangMoveBGCollect(); + void setHookshotTopPosFly(); + void setHookshotPos(); + void setHookshotRoofWaitAnime(); + void setHookshotWallWaitAnime(); + void hookshotRoofTurn(); + void initHookshotRoofWaitActor(fopAc_ac_c* i_actor); + int checkNextHookPoint(); + int checkLandHookshotHang(); + int commonHookshotRoofWait(); + int commonHookshotWallWait(); + int procHookshotSubjectInit(); + int procHookshotSubject(); + int procHookshotMoveInit(); + int procHookshotMove(); + int procHookshotFlyInit(); + int procHookshotFly(); + int procHookshotRoofWaitInit(int, fopAc_ac_c*, int); + int procHookshotRoofWait(); + int procHookshotRoofShootInit(fopAc_ac_c*); + int procHookshotRoofShoot(); + int procHookshotRoofBootsInit(fopAc_ac_c*); + int procHookshotRoofBoots(); + int procHookshotWallWaitInit(int, s16, int); + int procHookshotWallWait(); + int procHookshotWallShootInit(); + int procHookshotWallShoot(); + f32 getSpinnerGravity() const; + f32 getSpinnerMaxFallSpeed() const; + f32 getSpinnerJumpRate() const; + s16 getSpinnerRideMoveTime(); + f32 getSpinnerRideSpeedF(); + f32 getSpinnerRideDecSpeedMax() const; + f32 getSpinnerRideDecSpeedMin() const; + f32 getSpinnerRideDecSpeedRate() const; + s16 getSpinnerRideRotAngleMax() const; + s16 getSpinnerRideRotAngleMin() const; + bool checkLv4BossRoom(); + void setSpinnerSyncPos(); + int procSpinnerReadyInit(); + int procSpinnerReady(); + void setSpinnerStatus(u8 i_status, u8 i_flag); + int procSpinnerWaitInit(); + int procSpinnerWait(); + int bottleModelCallBack(); + BOOL checkOilBottleItemNotGet(u16 i_itemNo); + void setBottleModel(u16 i_itemNo); + int commonBottleDrink(BOOL); + fopAc_ac_c* makeFairy(cXyz* i_pos, u32 i_params); + int procBottleDrinkInit(u16 i_itemNo); + int procBottleDrink(); + int procBottleOpenInit(u16 i_itemNo); + int procBottleOpen(); + int procBottleSwingInit(fopAc_ac_c* i_catchActor, int); + int procBottleSwing(); + int procBottleGetInit(BOOL); + int procBottleGet(); + BOOL checkWaterInKandelaarOffset(f32); + void checkWaterInKandelaar(f32); + void offKandelaarModel(); + int kandelaarModelCallBack(); + BOOL checkKandelaarEquipAnime() const; + void preKandelaarDraw(); + void setKandelaarModel(); + void resetOilBottleModel(); + void commonKandelaarPourInit(); + int commonKandelaarPour(int); + void initKandelaarSwing(); + int procKandelaarSwingInit(); + int procKandelaarSwing(); + int procKandelaarPourInit(); + int procKandelaarPour(); + void setGrassWhistleModel(int i_modelType); + void setHorseWhistleModel(); + int procGrassWhistleGetInit(); + int procGrassWhistleGet(); + int procGrassWhistleWaitInit(int, int, int, s16, cXyz*); + int procGrassWhistleWait(); + int procCoHorseCallWaitInit(int); + int procCoHorseCallWait(); + int procHawkCatchInit(); + int procHawkCatch(); + int procHawkSubjectInit(); + int procHawkSubject(); + bool checkIronBallThrowMode() const; + bool checkIronBallThrowReturnMode() const; + void setIronBallWaitUpperAnime(int); + void checkIronBallDelete(); + void setIronBallReturn(int); + void setIronBallBgCheckPos(); + void setIronBallModel(); + int setIronBallGroundVec(cXyz const*, cXyz*); + void setIronBallChainPos(); + BOOL checkIronBallReturnChange(); + void setIronBallPos(); + BOOL checkIronBallAnime() const; + void setIronBallReadyAnime(); + void setIronBallBaseAnime(); + BOOL checkUpperItemActionIronBall(); + int checkNextActionIronBall(); + int procIronBallSubjectInit(); + int procIronBallSubject(); + int procIronBallMoveInit(); + int procIronBallMove(); + int procIronBallThrowInit(); + int procIronBallThrow(); + int procIronBallReturnInit(); + int procIronBallReturn(); + BOOL checkEventRun() const; + void createNpcTks(cXyz* i_basePos, int i_roomNo, u32 i_parameters); + int checkDemoAction(); + bool checkDemoMoveMode(u32 i_mode) const; + void setDemoMoveData(u32* o_mode, cXyz const* i_goal); + void setNoDrawSwordShield(int, u16); + void setDemoData(); + void resetDemoBck(); + void endHighModel(); + void resetSpecialEvent(); + void endDemoMode(); + fopAc_ac_c* getDemoLookActor(); + BOOL checkFlyAtnWait(); + void setGetItemFace(u16 i_itemNo); + BOOL checkGrabTalkActor(fopAc_ac_c* i_actor); + int setTalkStartBack(cXyz*); + void setShapeAngleToTalkActor(); + void setTalkAnime(); + bool setTradeItemAnime(); + void setTradeItemOutHand(); + BOOL checkEndMessage(u32 i_msgIdx); + u8 setDemoRightHandIndex(u16); + u8 setDemoLeftHandIndex(u16); + void setDemoRide(u16); + void setDemoBodyBck(dDemo_actor_c* i_demoActor, u16 i_resIdx); + static BOOL checkFinalBattle(); + BOOL checkRestartDead(int i_dmgAmount, BOOL i_checkZoraMag); + void setDeadRideSyncPos(); + BOOL checkDeadHP(); + BOOL checkDeadAction(int); + void setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_resIdx); + void setHighModelFaceBtk(u16 i_resIdx); + void setDemoBrk(J3DAnmTevRegKey** o_ppbrk, J3DModel* i_model, u16 i_resIdx); + f32 setStickAnmData(J3DAnmBase* i_anm, int i_arg1, int i_arg2, u16 i_resIdx, + int i_stickDirection); + int procDemoCommon(); + int procCoToolDemoInit(); + int procCoToolDemo(); + int procCoTalkInit(); + int procCoTalk(); + int procCoOpenTreasureInit(); + int procCoOpenTreasure(); + int procCoUnequipInit(); + int procCoUnequip(); + void setGetSubBgm(int i_itemNo); + int procCoGetItemInit(); + int procCoGetItem(); + int procCoTurnBackInit(); + int procCoTurnBack(); + int procDoorOpenInit(); + int procDoorOpen(); + int procCoLookWaitInit(); + int procCoLookWait(); + int procCoDemoPushPullWaitInit(); + int procCoDemoPushMoveInit(); + void setMonkeyMoveAnime(); + int procMonkeyMoveInit(); + int procMonkeyMove(); + int procDemoBoomerangCatchInit(); + int procDemoBoomerangCatch(); + int procCoDeadInit(int); + int procCoDead(); + int procCoLookAroundInit(); + int procCoLookAround(); + int procBossAtnWaitInit(); + int procCoQuakeWaitInit(); + int procCoCaughtInit(); + int procLookUpInit(); + int procLookUp(); + int procLookUpToGetItemInit(); + int procLookUpToGetItem(); + int procHandPatInit(); + int procHandPat(); + int procCoFogDeadInit(); + int procCoFogDead(); + int procWolfSmellWaitInit(); + int procCoNodInit(); + int procCoNod(); + int procCoEyeAwayInit(); + int procCoGlareInit(); + int procCoGlare(); + int procGoatStopReadyInit(); + int procGoatStopReady(); + int procCoGetReadySitInit(); + int procCoGetReadySit(); + int procCoTwGateInit(); + int procCoTwGate(); + int procWolfSnowEscapeInit(); + int procWolfSnowEscape(); + int procZoraMoveInit(); + int procZoraMove(); + int procLookAroundTurnInit(); + int procLookAroundTurn(); + int procTradeItemOutInit(); + int procTradeItemOut(); + static BOOL checkLetterItem(int i_itemNo); + int procNotUseItemInit(int i_itemNo); + int procNotUseItem(); + int procSwordReadyInit(); + int procSwordReady(); + void setSwordPushAnime(); + int procSwordPushInit(); + int procSwordPush(); + int procGanonFinishInit(); + int procGanonFinish(); + int procCutFastReadyInit(); + int procCutFastReady(); + int procMasterSwordStickInit(); + int procMasterSwordStick(); + int procMasterSwordPullInit(); + int procMasterSwordPull(); + static BOOL checkLv7DungeonShop(); + int procDungeonWarpReadyInit(); + int procDungeonWarpReady(); + int procDungeonWarpInit(); + int procDungeonWarp(); + int procDungeonWarpSceneStartInit(); + int procDungeonWarpSceneStart(); + bool checkAcceptWarp(); + void dungeonReturnWarp(); + void checkWarpStart(); + int warpModelTexScroll(); + int procCoWarpInit(int, int); + int procCoWarp(); + int commonWaitTurnInit(); + int commonGrabPutInit(); + int commonLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); + int commonFallInit(int); + JPABaseEmitter* setEmitter(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation); + JPABaseEmitter* setEmitterPolyColor(u32* i_emitterId, u16 i_effName, cBgS_PolyInfo& i_polyinfo, cXyz const*, + csXyz const*); + JPABaseEmitter* setEmitterColor(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation); + void stopDrawParticle(u32 i_emitterId); + void setEffectFrontRollParam(); + void setEffectSlipParam(); + void setEffectRunParam(); + void setEffectSmallLandParam(); + void setEffectLandParam(); + void setEffectSumouParam(); + void setFootEffectProcType(int); + void setWolfFootOn(int); + void setFootMark(cXyz* i_pos, u16 i_mtxNo, int); + void setEffect(); + void setSumouEffect(); + void setWaterfallEffect(const cXyz* i_pos, u32* i_emitterId); + void setWaterfallEffect(); + void setMagneBootsEffect(); + void setSwordChargeEffect(); + void setElecDamageEffect(); + void clearCutTurnEffectID(); + void setCutTurnEffect(); + void setHorseCutTurnEffect(); + void setCutLargeJumpLandEffect(); + void setBootsLightEffect(); + void setLightningSwordEffect(); + void setWolfRollAttackEffect(); + void setWolfDigEffect(); + void setWolfSwimEndEffect(JPABaseEmitter**, JPABaseEmitter**); + void setWolfLockAttackEffect(); + void setWolfJumpAttackEffect(); + void setWolfBarrierHitEffect(dBgS_LinChk& i_linchk); + void setCutWaterDropEffect(); + void setWaterDropEffect(); + void setSwordUpColorEffect(); + void setSwordCutSplash(); + void setMetamorphoseEffectStartLink(); + void setMetamorphoseEffect(); + void setRunSplash(); + void resetFairyEffect(); + void setBottleEffect(); + void clearFirePointDamageEffect(int i_effNo); + void initFirePointDamageEffectAll(); + void initFirePointDamageEffect(cXyz const*, dCcD_GObjInf* i_hitObj); + void setFirePointDamageEffect(); + void setFreezeEffect(); + void setWoodShieldBurnEffect(); + void clearWoodShieldBurnEffect(); + void setWoodShieldBurnOutEffect(); + void changeCommon(); + void changeWolf(); + void changeLink(int); + void onWolfEyeUp(); + void offWolfEyeUp(); + BOOL wolfSenseTrigger(); + void setWolfSenceStatus(u8 i_status); + BOOL wolfClawTrigger(); + void setWolfDigStatus(u8 i_flag); + BOOL checkWolfShapeReverse() const; + BOOL checkWolfSideStep() const; + void setWolfTailAngle(); + BOOL checkWolfSlowDash(); + void setSpeedAndAngleWolf(); + void setSpeedAndAngleWolfAtn(); + BOOL checkWolfAtnWait(); + BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM i_anm) const; + void setBlendWolfMoveAnime(f32); + BOOL checkWolfAtnMoveBack(s16); + void setWolfAtnMoveDirection(); + void setBlendWolfAtnMoveAnime(f32); + void setBlendWolfAtnBackMoveAnime(f32); + int setDoubleAnimeWolf(f32, f32, f32, daAlink_c::daAlink_WANM, + daAlink_c::daAlink_WANM, int, f32); + void setSingleAnimeWolfBase(daAlink_c::daAlink_WANM i_anmID); + void setSingleAnimeWolfBaseMorf(daAlink_c::daAlink_WANM i_anmID, f32 i_morf); + void setSingleAnimeWolfBaseSpeed(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_morf); + int setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_start, + s16 i_endFrame, f32 i_morf); + void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM i_anmID, + daAlinkHIO_anm_c const* i_anmData); + int checkWolfLandAction(BOOL); + BOOL checkMidnaUseAbility() const; + void checkWolfUseAbility(); + int checkWolfGroundSpecialMode(); + int checkNextActionWolf(int); + BOOL wolfSideBgCheck(s16); + BOOL checkWolfAttackReverse(int); + int checkWolfBarrierHitReverse(); + BOOL checkWolfBarrierWallHit(cBgS_PolyInfo& i_polyinfo); + void wolfBgCheck(); + void changeWolfBlendRate(int); + void setWolfFootMatrix(); + void wolfFootBgCheck(); + BOOL checkWolfWaitSlipPolygon(); + f32 setWolfWaitSlip(); + void checkWolfAtnDoCharge(); + void setWolfChainPos(); + void setWolfAnmVoice(); + int procWolfServiceWaitInit(int); + int procWolfServiceWait(); + int procWolfTiredWaitInit(); + int procWolfTiredWait(); + int procWolfMidnaRideShockInit(); + int procWolfMidnaRideShock(); + int procWolfWaitInit(); + int procWolfWait(); + int procWolfMoveInit(); + int procWolfMove(); + int procWolfDashInit(); + int procWolfDash(); + int procWolfDashReverseInit(int); + int procWolfDashReverse(); + int procWolfAtnActorMoveInit(); + int procWolfAtnActorMove(); + int procWolfWaitTurnInit(); + int procWolfWaitTurn(); + int procWolfSideStepInit(int); + int procWolfSideStep(); + int procWolfSideStepLandInit(s16); + int procWolfSideStepLand(); + int procWolfBackJumpInit(int); + int procWolfBackJump(); + int procWolfBackJumpLandInit(s16, s16); + int procWolfBackJumpLand(); + int procWolfHowlInit(int); + int procWolfHowl(); + int procWolfAutoJumpInit(int); + int procWolfAutoJump(); + int procWolfFallInit(int, f32 i_morf); + int procWolfFall(); + int procWolfLandInit(); + int procWolfLand(); + int procWolfSitInit(int); + int procWolfSit(); + int procWolfStepMoveInit(); + int procWolfStepMove(); + int procWolfSlipInit(); + int procWolfSlip(); + int procWolfSlipTurnInit(int); + int procWolfSlipTurn(); + int procWolfSlipTurnLandInit(); + int procWolfSlipTurnLand(); + int procWolfSlideReadyInit(s16 i_angle, int); + int procWolfSlideReady(); + int procWolfSlideInit(s16 i_angle, int); + int procWolfSlide(); + int procWolfSlideLandInit(); + int procWolfSlideLand(); + int procWolfWaitSlipInit(); + int procWolfWaitSlip(); + int procWolfSlopeStartInit(int); + int procWolfSlopeStart(); + void setWolfHowlNotHappen(int); + int procWolfHowlDemoInit(); + int procWolfHowlDemo(); + fopAc_ac_c* checkWolfRopeHit(dCcD_GObjInf* i_collider, cXyz const*, int) const; + int checkWolfRopeJumpHang(); + f32 getWolfRopeMoveSpeed(); + int setWolfRopePosY(); + s16 initWolfRopeShapeAngle(); + void wolfRopeSwingInc(f32); + void setWolfRopeOffsetY(int); + int getDirectionRopeMove() const; + int procWolfRopeMoveInit(int, int); + int procWolfRopeMove(); + int procWolfRopeHangInit(int); + int procWolfRopeHang(); + int procWolfRopeTurnInit(); + int procWolfRopeTurn(); + int procWolfRopeStaggerInit(int); + int procWolfRopeStagger(); + int procWolfRopeSubjectivityInit(); + int procWolfRopeSubjectivity(); + int getWolfTagJumpTime() const; + const cXyz* checkMidnaLockJumpPoint() const; + int procWolfTagJumpInit(fopAc_ac_c* i_tag); + int procWolfTagJump(); + int procWolfTagJumpLandInit(fopAc_ac_c* i_tag); + int procWolfTagJumpLand(); + int procWolfGiantPuzzleInit(); + int procWolfGiantPuzzle(); + void setWolfHangGroundY(); + int changeWolfHangEndProc(); + int procWolfHangReadyInit(); + int procWolfHangReady(); + int procWolfHangWallCatchInit(int); + int procWolfHangWallCatch(); + int procWolfHangFallStartInit(cM3dGPla* i_tripla); + int procWolfHangFallStart(); + void setWolfHeadDamage(); + int procWolfDamageInit(dCcD_GObjInf* i_hitObj); + int procWolfDamage(); + int procWolfLargeDamageUpInit(int, int, s16, s16); + int procWolfLargeDamageUp(); + int procWolfLandDamageInit(int); + int procWolfLandDamage(); + void setWolfScreamWaitAnime(); + int procWolfScreamWaitInit(); + int procWolfScreamWait(); + f32 getWolfLieMoveAnmSpeed(); + f32 getWolfLieMoveSpeed(); + BOOL checkMidnaDisappearMode() const; + BOOL checkWolfLieContinue(int); + int checkNextActionWolfFromLie(); + void setWolfLieMoveVoice(int); + bool checkWolfLieCode(); + int procWolfLieStartInit(int); + int procWolfLieStart(); + int procWolfLieMoveInit(int); + int procWolfLieMove(); + int procWolfLieAutoMoveInit(int, cXyz*); + int procWolfLieAutoMove(); + void setSpeedAndAngleSwimWolf(); + f32 getWolfSwimMoveAnmSpeed(); + int decideDoStatusSwimWolf(); + int procWolfSwimUpInit(); + int procWolfSwimUp(); + int procWolfSwimWaitInit(int); + int procWolfSwimWait(); + int procWolfSwimMoveInit(); + int procWolfSwimMove(); + int procWolfSwimEndWaitInit(int); + int procWolfSwimEndWait(); + void resetWolfEnemyBiteAll(); + void checkWolfEnemyThrowAction(); + void setWolfLockDomeModel(); + void setWolfBallModel(); + void resetWolfBallGrab(); + void checkWolfLockData(); + fopAc_ac_c* getWolfLockActorEnd(); + void searchWolfLockEnemy(fopAc_ac_c* i_actor, void* i_data); + void checkWolfComboCnt(); + BOOL checkWolfAttackAction(); + void setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM i_anmID, f32); + BOOL setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy); + void setWolfBiteDamage(fopEn_enemy_c* i_enemy); + BOOL checkWolfLockAttackChargeState(); + int procWolfRollAttackChargeInit(); + int procWolfRollAttackCharge(); + int procWolfRollAttackMoveInit(); + int procWolfRollAttackMove(); + int procWolfJumpAttackInit(int); + int procWolfJumpAttack(); + int procWolfJumpAttackKickInit(); + int procWolfJumpAttackKick(); + int procWolfJumpAttackSlideLandInit(int, int, int); + int procWolfJumpAttackSlideLand(); + int procWolfJumpAttackNormalLandInit(int); + int procWolfJumpAttackNormalLand(); + int procWolfWaitAttackInit(int); + int procWolfWaitAttack(); + int procWolfRollAttackInit(int, int); + int procWolfRollAttack(); + int procWolfDownAttackInit(); + int procWolfDownAttack(); + int procWolfDownAtLandInit(fopEn_enemy_c* i_enemy); + int procWolfDownAtLand(); + int procWolfDownAtMissLandInit(); + int procWolfDownAtMissLand(); + int procWolfLockAttackInit(int); + int procWolfLockAttack(); + int procWolfLockAttackTurnInit(int); + int procWolfLockAttackTurn(); + int procWolfAttackReverseInit(); + int procWolfAttackReverse(); + int procWolfEnemyThrowInit(int); + int procWolfEnemyThrow(); + int procWolfEnemyHangBiteInit(); + int procWolfEnemyHangBite(); + int procWolfGrabUpInit(); + int procWolfGrabUp(); + int procWolfGrabPutInit(); + int procWolfGrabPut(); + int procWolfGrabThrowInit(); + int procWolfGrabThrow(); + int procWolfPushInit(); + int procWolfPush(); + int procWolfCargoCarryInit(); + int procWolfCargoCarry(); + int procWolfChainUpInit(); + int procWolfChainUp(); + int procWolfGanonCatchInit(); + int procWolfGanonCatch(); + int procWolfChainReadyInit(); + int procWolfChainReady(); + int procWolfChainWaitInit(); + int procWolfChainWait(); + int procWolfDigInit(); + int procWolfDig(); + int procWolfDigThroughInit(int); + int procWolfDigThrough(); + void setSmellSave(); + int procWolfGetSmellInit(); + int procWolfGetSmell(); + void setArcName(BOOL i_isWolf); + void setShieldArcName(); + void setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size); + void setShieldChange(); + int loadModelDVD(); + void setShieldModel(); + int loadShieldModelDVD(); + void changeModelDataDirect(int); + void changeModelDataDirectWolf(int); + void initStatusWindow(); + void statusWindowExecute(const cXyz* i_pos, s16 i_angle); + void statusWindowDraw(); + void resetStatusWindow(); + fopAc_ac_c* getChainGrabActor() { return field_0x2844.getActor(); } + bool checkCokkoGlide() const { + return mProcID == PROC_AUTO_JUMP && mProcVar2.field_0x300c != 0; + } + BOOL checkCameraLargeDamage() const { + return mProcID == PROC_LARGE_DAMAGE || mProcID == PROC_LARGE_DAMAGE_WALL || + mProcID == PROC_LARGE_DAMAGE_UP || mProcID == PROC_WOLF_LARGE_DAMAGE_UP; + } + const cXyz& getHsSubChainTopPos() const { return mIronBallBgChkPos; } + BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; } + fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); } + + virtual bool checkAcceptDungeonWarpAlink(int unused) { + UNUSED(unused); + return checkAcceptWarp(); + } + + virtual daSpinner_c* getSpinnerActor() { + if (checkSpinnerRide()) { + return (daSpinner_c*)mRideAcKeep.getActor(); + } else { + return NULL; + } + } + + virtual s16 getSumouCounter() const { return mProcVar2.field_0x300c; } + virtual s16 checkSumouWithstand() const { return mProcVar3.field_0x300e; } + virtual void setMidnaMsgNum(fopAc_ac_c* i_msgTag, u16 i_msgNum) { + mMidnaMsgNum = i_msgNum; + mMidnaMsg = (daTagMmsg_c*)i_msgTag; + } + virtual MtxP getModelMtx() { return mpLinkModel->getBaseTRMtx(); } + virtual MtxP getInvMtx() { return mInvMtx; } + virtual cXyz* getShadowTalkAtnPos() { return &field_0x375c; } + virtual MtxP getLeftItemMatrix(); + virtual MtxP getRightItemMatrix(); + virtual MtxP getLeftHandMatrix(); + virtual MtxP getRightHandMatrix(); + virtual MtxP getLinkBackBone1Matrix() { return mpLinkModel->getAnmMtx(1); } + virtual MtxP getWolfMouthMatrix() { return mpLinkModel->getAnmMtx(13); } + virtual MtxP getWolfBackbone2Matrix() { return mpLinkModel->getAnmMtx(2); } + virtual MtxP getBottleMtx() { + if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) { + return mHeldItemModel->getBaseTRMtx(); + } + return NULL; + } + + virtual MtxP getHeadMtx() { + return mpLinkModel->getAnmMtx(field_0x30b4); + } + virtual f32 getGroundY() { return mLinkAcch.GetGroundH(); } + virtual f32 getBaseAnimeFrameRate() const { return mUnderFrameCtrl[0].getRate(); } + virtual fpc_ProcID getAtnActorID() const { return mAtnActorID; } + virtual fpc_ProcID getItemID() const { return mItemAcKeep.getID(); } + virtual fpc_ProcID getGrabActorID() const { + if (mEquipItem == 0x102) { + return mItemAcKeep.getID(); + } else { + return mGrabItemAcKeep.getID(); + } + } + virtual void setForcePutPos(cXyz const& pPutPos) { + mForcePutPos = pPutPos; + onEndResetFlg1(ERFLG1_UNK_2000); + } + virtual BOOL checkPlayerGuard() const; + virtual u32 checkPlayerFly() const { + return checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | + MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP); + } + virtual BOOL checkFrontRoll() const { return mProcID == PROC_FRONT_ROLL; } + virtual BOOL checkWolfDash() const { return mProcID == PROC_WOLF_DASH; } + virtual BOOL checkAutoJump() const { + return mProcID == PROC_AUTO_JUMP || mProcID == PROC_WOLF_AUTO_JUMP; + } + virtual bool checkSideStep() const { + return (mProcID == PROC_SIDESTEP || mProcID == PROC_WOLF_SIDESTEP) && + mProcVar1.field_0x300a != 0; + } + virtual bool checkWolfTriggerJump() const { + return mProcID == PROC_WOLF_SIDESTEP || mProcID == PROC_WOLF_JUMP_ATTACK; + } + virtual BOOL checkGuardBreakMode() const { return mProcID == PROC_GUARD_BREAK; } + virtual bool checkLv3Slide() const { + return mProcID == PROC_SLIDE && mProcVar3.field_0x300e != 0; + } + virtual bool checkWolfHowlDemoMode() const { return mProcID == PROC_WOLF_HOWL_DEMO; } + virtual bool checkChainBlockPushPull(); + virtual BOOL checkElecDamage() const { return mProcID == PROC_ELEC_DAMAGE; } + virtual BOOL checkEmptyBottleSwing() const { + return mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && mProcID == PROC_BOTTLE_SWING; + } + virtual BOOL checkBottleSwingMode() const { return mProcID == PROC_BOTTLE_SWING; } + virtual BOOL checkHawkWait() const { return mProcID == PROC_HAWK_SUBJECT; } + virtual BOOL checkGoatThrow() const { + return mProcID == PROC_GOAT_CATCH && mProcVar2.field_0x300c != 0; + } + virtual BOOL checkGoatThrowAfter() const { + return mProcID == PROC_GOAT_CATCH && field_0x3478 > 0.0f; + } + virtual BOOL checkWolfTagLockJump() const { + return mProcID == PROC_WOLF_TAG_JUMP && field_0x3198 == 0; + } + virtual BOOL checkWolfTagLockJumpLand() const { return mProcID == PROC_WOLF_TAG_JUMP_LAND; } + virtual BOOL checkWolfRope(); + virtual BOOL checkWolfRopeHang() const { return mProcID == PROC_WOLF_ROPE_HANG; } + virtual BOOL checkRollJump() const { return mProcID == PROC_ROLL_JUMP; } + virtual BOOL checkGoronRideWait() const { return mProcID == PROC_GORON_RIDE_WAIT; } + virtual BOOL checkWolfChain() const { return mProcID == PROC_WOLF_CHAIN_WAIT; } + virtual BOOL checkWolfWait() const { return mProcID == PROC_WOLF_WAIT; } + virtual BOOL checkWolfJumpAttack() const { return mProcID == PROC_WOLF_JUMP_ATTACK; } + virtual BOOL checkWolfRSit() const { return mProcID == PROC_WOLF_SIT; } + virtual BOOL checkBottleDrinkEnd() const { + return mProcID == PROC_BOTTLE_DRINK && mProcVar3.field_0x300e != 0; + } + virtual BOOL checkWolfDig() const { return mProcID == PROC_WOLF_DIG; } + virtual BOOL checkCutCharge() const { return mProcID == PROC_CUT_TURN_MOVE; } + virtual BOOL checkCutTurnCharge() const { + return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c == 0; + } + virtual BOOL checkCutLargeJumpCharge() const { + return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c != 0; + } + virtual BOOL checkComboCutTurn() const { + return mProcID == PROC_CUT_TURN && mComboCutCount != 0; + } + virtual BOOL checkClimbMove() const { + return mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_LADDER_MOVE || + mProcID == PROC_CLIMB_MOVE_SIDE; + } + virtual BOOL checkGrassWhistle() const { return mProcID == PROC_GRASS_WHISTLE_WAIT; } + virtual BOOL checkBoarRun() const { return mProcID == PROC_BOAR_RUN; } + virtual BOOL checkHorseRideNotReady() const { + return checkHorseRide() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF; + } + virtual f32 getSearchBallScale() const { return mSearchBallScale; } + virtual int checkFastShotTime() { return mFastShotTime; } + virtual f32 getBaseAnimeFrame() const; + virtual void setAnimeFrame(f32 i_frame); + virtual BOOL checkWolfLock(fopAc_ac_c*) const; + virtual bool cancelWolfLock(fopAc_ac_c*); + virtual BOOL exchangeGrabActor(fopAc_ac_c* i_actor); + virtual BOOL setForceGrab(fopAc_ac_c* i_actor, BOOL, BOOL); + virtual u32 checkPlayerNoDraw(); + virtual void voiceStart(u32); + virtual void seStartOnlyReverb(u32); + virtual void seStartOnlyReverbLevel(u32); + virtual void setOutPower(f32, s16, int); + virtual void setGrabCollisionOffset(f32 i_offsetX, f32 i_offsetZ, cBgS_PolyInfo*); + virtual void onFrollCrashFlg(u8 i_flg, BOOL); + virtual MtxP getModelJointMtx(u16 i_jointNo); + virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*); + virtual BOOL checkCutJumpCancelTurn() const { + return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2; + } + virtual bool checkIronBallReturn() const; + virtual bool checkIronBallGroundStop() const; + virtual BOOL checkSingleBoarBattleSecondBowReady() const { + return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0; + } + virtual void setClothesChange(int); + virtual void setPlayerPosAndAngle(const cXyz* i_pos, s16 i_angle, BOOL); + virtual void setPlayerPosAndAngle(const cXyz* i_pos, const csXyz* i_angle); + virtual void setPlayerPosAndAngle(Mtx i_mtx); + virtual bool setThrowDamage(s16, f32, f32, int, int, int); + virtual bool checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int); + virtual int setRollJump(f32 i_speedH, f32 i_speedV, s16 i_angle); + virtual void cancelDungeonWarpReadyNeck() { + if (mProcID != PROC_DUNGEON_WARP_READY) { + return; + } + offModeFlg(MODE_UNK_100); + } + virtual void onSceneChangeArea(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc); + virtual void onSceneChangeAreaJump(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc) { + mExitID = i_exitID | 0x8000; + mExitDirection = i_exitDirection; + mpScnChg = (daScex_c*)i_scexAc; + } + virtual void onSceneChangeDead(u8 param_0, int param_1) { + if (mProcID != PROC_DEAD) { + return; + } + mProcVar5.field_0x3012 = param_0; + field_0x3198 = param_1; + } + virtual u32 checkHorseRide() const; + virtual u32 checkBoarRide() const; + virtual u32 checkCanoeRide() const; + virtual u32 checkBoardRide() const; + virtual u32 checkSpinnerRide() const; + virtual bool checkArrowChargeEnd() const; + virtual bool checkNoEquipItem() const { return mEquipItem == fpcNm_ITEM_NONE; } + virtual bool checkKandelaarSwing(int) const; + virtual s16 getBoardCutTurnOffsetAngleY() const { + if (mProcID == PROC_BOARD_CUT_TURN) { + return mProcVar5.field_0x3012; + } + return 0; + } + virtual cXyz* getMagneBootsTopVec() { return &mMagneBootsTopVec; } + virtual void setCargoCarry(fopAc_ac_c* i_actor) { + mMode = SMODE_CARGO_CARRY; + mCargoCarryAcKeep.setData(i_actor); + } + virtual void setGoronSideMove(fopAc_ac_c* i_actor) { + mMode = SMODE_GORON_THROW; + mCargoCarryAcKeep.setData(i_actor); + } + virtual void setSumouReady(fopAc_ac_c* i_actor) { + mMode = SMODE_SUMO_READY; + mCargoCarryAcKeep.setData(i_actor); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_1_e); + } + virtual void setSumouPushBackDirection(s16 param_0) { + if (mProcID != PROC_SUMOU_MOVE) { + return; + } + mProcVar4.field_0x3010 = param_0; + } + virtual void setSumouLoseHeadUp() { + if (mProcID != PROC_SUMOU_WIN_LOSE) { + return; + } + mMode = SMODE_SUMO_LOSE; + } + virtual cXyz* getKandelaarFlamePos(); + virtual bool checkUseKandelaar(int); + virtual void setDkCaught(fopAc_ac_c* i_dkActor); + virtual void onPressedDamage(cXyz const&, s16); + virtual bool checkPriActorOwn(fopAc_ac_c const* i_actor) const { + return field_0x27f4 == i_actor; + } + virtual bool onWolfEnemyBiteAll(fopAc_ac_c* i_enemy, daPy_py_c::daPy_FLG2 i_flag); + virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* i_actor) const { + return field_0x281c.getActorConst() == i_actor; + } + virtual void setWolfEnemyHangBiteAngle(s16 i_angle) { + if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) { + return; + } + mProcVar4.field_0x3010 = i_angle; + } + virtual void setSumouGraspCancelCount(int param_0) { + if (mProcID != PROC_SUMOU_MOVE) { + return; + } + mProcVar2.field_0x300c = param_0; + } + virtual bool checkItemSwordEquip() const { return mEquipItem == 0x103; } + virtual f32 getSinkShapeOffset() const { return mSinkShapeOffset; } + virtual BOOL checkSinkDead() const { return mGndPolyAtt1 == 0xFF; } + virtual BOOL checkCutJumpMode() const { return mProcID == PROC_CUT_JUMP; } + virtual s16 getGiantPuzzleAimAngle() const { return mProcVar2.mPuzzleAimAngle; } + virtual u8 getSwordChangeWaitTimer() const { return mSwordChangeWaitTimer; } + virtual BOOL checkMetamorphose() const { + return mProcID == PROC_METAMORPHOSE && mProcVar1.field_0x300a == 0; + } + virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; } + virtual cXyz* getMidnaAtnPos() const { return (cXyz*)&mMidnaAtnPos; } + virtual bool checkCopyRodEquip() const { return mEquipItem == fpcNm_ITEM_COPY_ROD; } + virtual void setKandelaarMtx(Mtx i_mtx, int, int); + virtual bool getStickAngleFromPlayerShape(s16* o_angle) const; + virtual bool checkSpinnerPathMove(); + virtual bool checkSpinnerTriggerAttack(); + virtual void onSpinnerPathForceRemove(); + virtual int getIronBallBgHit() const; + virtual cXyz* getIronBallCenterPos(); + virtual bool checkCanoeFishingGetLeft() const { + return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 0; + } + virtual bool checkCanoeFishingGetRight() const { + return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 1; + } + virtual u8 checkBeeChildDrink() const { return field_0x2fd3; } + virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return &mZ2WolfHowlMgr; } + virtual BOOL checkWolfHowlSuccessAnime() const { + return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); + } + virtual void skipPortalObjWarp(); + virtual BOOL checkTreasureRupeeReturn(int i_itemNo) const; + virtual void cancelGoronThrowEvent(); + virtual cXyz* getHookshotTopPos(); + virtual bool checkHookshotReturnMode() const; + virtual bool checkHookshotShootReturnMode() const; + virtual bool checkOctaIealHang() const { + return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc == 0; + } + virtual void cancelOctaIealHang() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar3.field_0x300e = 1; + } + virtual void cancelDragonHangBackJump() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar3.field_0x300e = -1; + } + virtual void setOctaIealWildHang() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar0.field_0x3008 = 1; + } + virtual bool checkDragonHangRide() const { + return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0; + } + virtual void playerStartCollisionSE(u32 i_hitID, u32 i_mapinfo) { + mZ2Link.startCollisionSE(i_hitID, i_mapinfo); + } + virtual void changeDragonActor(fopAc_ac_c* i_actor); + virtual u8 getClothesChangeWaitTimer() const { return mClothesChangeWaitTimer; } + virtual u8 getShieldChangeWaitTimer() const { return mShieldChangeWaitTimer; } + virtual BOOL checkBootsOrArmorHeavy() const; + virtual fpc_ProcID getBottleOpenAppearItem() const; + virtual BOOL checkHorseStart() { return checkHorseStart(getLastSceneMode(), getStartMode()); } + virtual BOOL checkCopyRodTopUse(); + + static BOOL checkDebugMoveInput(); + + u32 checkModeFlg(u32 i_flag) const { return mModeFlg & i_flag; } + + BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ATDEFS_e); } + BOOL checkFmChainGrabAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHAIN_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WL_CHAIN_e); } + + BOOL checkAttentionLock() { return mAttention->Lockon(); } + + bool checkUpperAnime(u16 i_resIdx) const { return mUpperAnmHeap[UPPER_2].getIdx() == i_resIdx; } + bool checkUnderAnime(u16 i_resIdx) const { return mUnderAnmHeap[UNDER_2].getIdx() == i_resIdx; } + + bool checkNoSetUpperAnime() const { return mUpperAnmHeap[UPPER_2].checkNoSetIdx(); } + bool checkSwimMoveHandAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_SWIMINGB_e); } + bool checkZoraSwimDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMSW_e); } + bool checkIronBallWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBWAIT_e); } + bool checkHorseTurnLAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNLS_e); } + bool checkHorseTurnRAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNRS_e); } + bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); } + bool checkHookshotShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSSHOOT_e); } + bool checkHookshotReadyAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSWAIT_e); } + BOOL checkHookshotAnime() const { + return checkHookshotReadyAnime() || checkHookshotShootAnime(); + } + BOOL checkBoomerangReadyAnime() const { + return (mEquipItem == fpcNm_ITEM_BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); + } + bool checkDkCaught2Anime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDB_e); } + BOOL checkCopyRodThrowAnime() const { + return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMTHROW_e); + } + BOOL checkCutDashChargeAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CUTDTP_e); } + BOOL checkBoomerangAnimeAndReturnWait() const { return checkBoomerangAnime(); } + BOOL checkTwoHandItemEquipAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TAKE_e); } + BOOL checkBarkAnime() const { return FALSE; } + bool checkWolfGrabAnimeObj() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPA_e); } + bool checkWolfGrabAnimeStick() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPB_e); } + BOOL checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); } + BOOL checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); } + bool checkKandelaarSwingAnime() const { return false; } + bool checkBowChargeWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORDTAME_e); } + bool checkBowReloadAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORD_e); } + bool checkBowShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOT_e); } + bool checkBowWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOTWAIT_e); } + BOOL checkGrabUpThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABTHROW_e); } + BOOL checkGrabSideThrowAnime() const { + return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBTHROW_e) || mUpperAnmHeap[0].getIdx() == dRes_ID_ALANM_BCK_BOMBTHROW_e; + } + BOOL checkGrabHeavyThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HEAVYTHROW_e); } + BOOL checkGrabAnimeUp() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABD_e); } + BOOL checkGrabAnimeSide() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBD_e); } + BOOL checkGrabAnimeCarry() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CARRYD_e); } + bool checkHorseUnderDashStartAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_DSTARTHS_e); } + bool checkHorseUnderLashAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_LASHS_e); } + bool checkUpperHorseLieAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHLIE_e); } + bool checkHorseTiredAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDS_e); } + bool checkHorseSwordUpAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DASHHBSUP_e); } + bool checkHorseUnderItemAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_ATH_e); } + BOOL checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); } + bool checkIronBallPreSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTHROW_e); } + bool checkIronBallSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTURN_e); } + bool checkDashDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMD_e); } + bool checkBoomerangCatchAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOOMCATCH_e); } + BOOL checkCopyRodReadyAnime() const { + return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); + } + BOOL checkCanoeFishingWaitAnime() const { + return checkUpperAnime(dRes_ID_ALANM_BCK_CANOEREELINGR_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WAITFISHR_e); + } + BOOL checkCopyRodControllAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_RODD_e); } + BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_DAM_e); } + BOOL checkExchangeRodAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHANGEROD_e); } + BOOL checkReelAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_REELINGARM_e); } + + int checkWolfEyeUp() const { return mWolfEyeUp; } + void onModeFlg(u32 flag) { mModeFlg |= flag; } + void offModeFlg(u32 flag) { mModeFlg &= ~flag; } + BOOL swordButton() { return itemButtonCheck(BTN_B); } + daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } + int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } + bool checkFisingRodLure() const { return mEquipItem == 0x105; } + BOOL doTrigger() const { return mItemTrigger & BTN_A; } + BOOL swordTrigger() { return itemTriggerCheck(BTN_B); } + BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); } + BOOL arrowChangeTrigger() { return itemActionTrigger(); } + BOOL peepSubjectCancelTrigger() { return itemTriggerCheck(BTN_B); } + int getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } + bool checkInputOnR() const { return mMoveValue > 0.05f; } + static u16 getSightBti() { return 0x5B; } + bool checkBoomerangChargeEndWait() const { + return mEquipItem != 0x102 && checkBoomerangAnime(); + } + J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) { + return mNowAnmPackUpper[param_0].getAnmTransform(); + } + void setFacePriBck(u16 i_resIdx) { setFaceBck(i_resIdx, TRUE, 0xFFFF); } + void setFacePriBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, TRUE, 0xFFFF); } + void setFacePriBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, TRUE, 0xFFFF); } + void setFaceBasicBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0xFFFF); } + void setFaceBasicBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0xFFFF); } + void setFaceBasicBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0xFFFF); } + void setFaceDemoBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0); } + void setFaceDemoBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0); } + void setFaceDemoBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0); } + + void setGrabStatus(u8 i_status, u8 i_flag) { setWallGrabStatus(i_status, i_flag); } + void setChainGrabStatus(u8 i_status) { setGrabStatus(i_status, BUTTON_STATUS_FLAG_EMPHASIS); } + + void cancelFmChainGrabFromOut() { + field_0x2fa3 = 0; + field_0x2844.clearData(); + } + + BOOL checkPlayerDemoMode() const { return mDemo.getDemoType() != 0; } + BOOL checkSpecialDemoMode() const { + return mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e; + } + static BOOL checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); } + u16 getMidnaMsgNum() const { return mMidnaMsgNum; } + u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; } + BOOL checkClimbFall() { return checkLadderFall(); } + + BOOL checkMidnaWolfDashAnime() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + BOOL checkMidnaClingAnime() const { return mMidnaAnm == 1; } + BOOL checkMidnaLowClingAnime() const { return mMidnaAnm == 2; } + BOOL checkMidnaLookAroundAnime() const { return mMidnaAnm == 3; } + BOOL checkMidnaPanicAnime() const { return mMidnaAnm == 5; } + BOOL checkMidnaWolfDeadAnime() const { return mMidnaAnm == 6; } + BOOL checkMidnaWolfSwimDeadAnime() const { return mMidnaAnm == 7; } + BOOL checkMidnaRopeWaitStaggerAnime() const { return mMidnaAnm == 8; } + BOOL checkMidnaRopeMoveStaggerAnime() const { return mMidnaAnm == 9; } + BOOL checkMidnaGanonCatchAnm() const { return mMidnaAnm == 10; } + BOOL checkMidnaGanonThrowLeftAnm() const { return mMidnaAnm == 11; } + BOOL checkMidnaGanonThrowRightAnm() const { return mMidnaAnm == 12; } + BOOL checkMidnaDigInAnime() const { return mMidnaAnm == 13; } + + void clearMidnaMsgNum() { + mMidnaMsgNum = 0xffff; + mMidnaMsg = NULL; + } + + void setEndGanonThrow() { mProcVar3.field_0x300e = 1; } + + s16 getProcNeckX() { return field_0x30a0; } + s16 getMidnaProcNeckY() { return field_0x30d4; } + f32 getEyeMoveRateY() { return field_0x33f4; } + f32 getMidnaEyeMoveRateX() { return field_0x33f8; } + + J3DModel* getMidnaModel() { + if (mClothesChangeWaitTimer != 0) { + return NULL; + } else { + return mpWlMidnaModel; + } + } + + J3DModel* getMidnaMaskModel() { return mpWlMidnaMaskModel; } + J3DModel* getMidnaHandModel() { return mpWlMidnaHandModel; } + J3DModel* getMidnaHairHandModel() { return mpWlMidnaHairModel; } + + cXyz* getMidnaHairAtnPos() { return &mMidnaHairAtnPos; } + + const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; } + const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { + return &m_faceTexDataTable[i_anmID]; + } + + s16 getCameraAngleX() const { return field_0x310a; } + s16 getCameraAngleY() const { return field_0x310c; } + cXyz* getSubjectEyePos() { return &field_0x3768; } + + u32 checkReinRide() const { return mRideStatus == RIDETYPE_HORSE || mRideStatus == RIDETYPE_BOAR; } + int getGrassHowlEventActor() const { return field_0x3198; } + MtxP getShieldMtx() const { return mShieldModel->getBaseTRMtx(); } + MtxP getMagneBootsMtx() { return mMagneBootMtx; } + MtxP getMagneBootsInvMtx() { return mMagneBootInvMtx; } + s16 getMagneBootsModelShapeAngle() const { return field_0x3118; } + + BOOL checkFishingCastMode() const { + return (mProcID == PROC_FISHING_CAST && !(mItemAcKeep.getActor() != NULL && mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt())) || + (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_FISHING_CAST_WAIT) != 0); + } + + BOOL setCanoeCast() { + if (mProcVar2.field_0x300c == 0 && checkCanoeFishingWaitAnime()) { + mProcVar2.field_0x300c = 1; + return TRUE; + } else { + return FALSE; + } + } + + bool checkFishingRodGrabLeft() const { return mItemVar0.field_0x3018 == 0; } + + void setCanoeFishingWaitAngle(s16 i_angle) { field_0x311a = i_angle; } + + void setFishingArnmAngle(s16 i_angle) { field_0x3160.set(0, 0, i_angle); } + void setFishingArm1Angle(const csXyz& i_angle) { mFishingArm1Angle = i_angle; } + void setFishingArm2Angle(const csXyz& i_angle) { field_0x3160 = i_angle; } + + void endFishingCastWait() { offNoResetFlg2(FLG2_FISHING_CAST_WAIT); } + + void startFishingCastWait() { + if (checkFishingRodItem(mEquipItem)) { + onNoResetFlg2(FLG2_FISHING_CAST_WAIT); + } + } + + f32 getFishingReelFrame() const { return mUpperFrameCtrl[2].getFrame(); } + + void changeFishGetFace(u8 param_0) { field_0x2fc8 = param_0; } + + BOOL checkSlideMode() { + return mProcID == PROC_SLIDE || mProcID == PROC_SLIDE_LAND || + mProcID == PROC_WOLF_SLIDE_READY || mProcID == PROC_WOLF_SLIDE_LAND || + mProcID == PROC_WOLF_SLIDE; + } + + BOOL checkHorseGetItem() const { + return (mProcID == PROC_GET_ITEM && checkHorseRide()) || mProcID == PROC_HORSE_GET_KEY; + } + + bool checkFisingRodJewl() const { + return (mEquipItem == fpcNm_ITEM_JEWEL_ROD || mEquipItem == fpcNm_ITEM_JEWEL_WORM_ROD) || mEquipItem == fpcNm_ITEM_JEWEL_BEE_ROD; + } + + bool checkFisingRodWorm() const { return mItemMode == fpcNm_ITEM_WORM; } + + bool checkFisingRodBee() const { return mItemMode == fpcNm_ITEM_BEE_CHILD; } + + void fishingCastWaitAnimeStart() { + if (mProcID == PROC_FISHING_CAST) { + mProcVar3.field_0x300e = 0; + } + } + + void fishingCastWaitAnimeStop() { + if (mProcID == PROC_FISHING_CAST) { + mProcVar3.field_0x300e = 1; + } + } + + MtxP getCopyRodMtx() { + if (mHeldItemModel != NULL) { + return mHeldItemModel->getAnmMtx(0); + } + return NULL; + } + + cXyz* getRootPosP() { return &field_0x3834; } + const cXyz& getBoomerangCatchPos() const { return field_0x3534; } + f32 getCopyRodBallDisFlyMax() const { return mSearchBallScale; } + + void clearIronBallActor() { field_0x173c.SetActor(this); } + BOOL checkCanoeRideOwn(const fopAc_ac_c* i_actor) const { + return checkCanoeRide() && mRideAcKeep.getActorConst() == i_actor; + } + BOOL checkBoarRideOwn(const fopAc_ac_c* i_actor) const { + return checkBoarRide() && mRideAcKeep.getActorConst() == i_actor; + } + u32 checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; } + + J3DModel* initModel(J3DModelData* i_modelData, u32 i_diffFlags) { + return initModel(i_modelData, 0x80000, i_diffFlags); + } + + J3DModel* initModelEnv(J3DModelData* i_modelData, u32 i_diffFlags) { + return initModel(i_modelData, 0, i_diffFlags); + } + + bool checkResetRootMtx(int param_0) const { return field_0x2f90 != 0 && param_0 == 1; } + + BOOL checkGrabGlide() { return checkGrabRooster(); } + + bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; } + bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; } + bool checkHorseHangMode() const { return mProcID == PROC_HORSE_HANG; } + bool checkHorseBackInput() const { return mProcID == PROC_HORSE_WAIT; } + bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; } + bool checkHorseTurnMode() const { return mProcID == PROC_HORSE_TURN; } + bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; } + s16 checkSpinnerRideWait() const { + return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0; + } + bool checkCopyRodSwingMode() { return mProcID == PROC_COPY_ROD_SWING; } + bool checkCopyRodSwingModeInit() { + return mProcID == PROC_COPY_ROD_SWING && mProcVar2.field_0x300c != 0; + } + float transAnimeMoveX() { return field_0x3464; } + float transAnimeMoveZ() { return field_0x3468; } + bool checkRoofSwitchHang() const { return mProcID == PROC_ROOF_SWITCH_HANG; } + bool checkCanoeWait() const { return mProcID == PROC_CANOE_WAIT; } + bool checkCanoeSubjectivity() const { return mProcID == PROC_CANOE_SUBJECTIVITY; } + + fopAc_ac_c* getCopyRodActor() { return mCopyRodAcKeep.getActor(); } + fopAc_ac_c* getHookshotRoofWaitActor() { return mCargoCarryAcKeep.getActor(); } + + BOOL checkRideOn() const { return mRideStatus != 0; } + + BOOL checkSwimDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + + BOOL talkTrigger() const { return mItemTrigger & BTN_A; } + J3DAnmTransform* getNowAnmPackUnder(daAlink_UNDER i_idx) { + return mNowAnmPackUnder[i_idx].getAnmTransform(); + } + BOOL doButton() const { return mItemButton & BTN_A; } + void setGrassCancelStatus(u8 i_status) { setBStatus(i_status); } + + void seStartSystem(u32 i_soundID) { mDoAud_seStart(i_soundID, NULL, 0, 0); } + bool checkIronBallEquip() const { return mEquipItem == fpcNm_ITEM_IRONBALL; } + BOOL checkFishingRodEquip() const { return checkFishingRodItem(mEquipItem); } + + f32 getAnmSpeedStickRate(f32 param_0, f32 param_1) const { + return param_0 + (mStickValue * (param_1 - param_0)); + } + + BOOL escapeTrigger() { + mUseButtonFlags |= (u8)BTN_B; + return mItemTrigger & (BTN_A | BTN_B); + } + + void clearComboReserb() { offNoResetFlg2(FLG2_COMBO_RESERB); } + + void setDamageColorTime() { mDamageColorTime = 32 - (mDamageTimer % 16); } + + BOOL setEnemyBomb(fopAc_ac_c* i_actor) { return exchangeGrabActor(i_actor); } + + void decrementBombCnt() { + if (mActiveBombNum != 0) { + mActiveBombNum--; + } + } + + void decrementInsectBombCnt() { + if (field_0x2fcf != 0) { + field_0x2fcf--; + } + } + + // Gets the cardinal direction of the Left Stick relative to player facing angle + int getDirectionFromShapeAngle() const { + return getDirectionFromAngle(mMoveAngle - shape_angle.y); + } + + // Gets the cardinal direction of the Left Stick relative to player angle + int getDirectionFromCurrentAngle() const { + return getDirectionFromAngle(mMoveAngle - current.angle.y); + } + + bool checkAnmEnd(daPy_frameCtrl_c* i_frameCtrl) { return i_frameCtrl->checkAnmEnd(); } + + BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.5f; } + + MtxP getWolfMidnaMatrix() { return mpLinkModel->getAnmMtx(0x19); } + s16 getIceDamageWaitTimer() const { return mIceDamageWaitTimer; } + const cXyz& getWindSpeed() const { return mWindSpeed; } + const cXyz& getHsChainTopPos() const { return mHookshotTopPos; } + const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; } + const cXyz& getHsSubChainRootPos() const { return field_0x3810; } + const csXyz& getHsAngle() const { return field_0x316c; } + + s16 getHookshotStopTime() const { return field_0x3026; } + bool getHookshotLeft() const { return field_0x3020 == 0; } + + static u16 getBallModelIdx() { return 0x25; } + static u16 getBallBtkIdx() { return 0x49; } + static u16 getBallBrkIdx() { return 0x41; } + + BOOL checkRootTransClearMode() { return field_0x2f99 & 7; } + BOOL checkRootTransZClearMode() { return field_0x2f99 & 4; } + BOOL checkRootTransXClearMode() { return field_0x2f99 & 1; } + BOOL checkRootTransYClearMode() { return field_0x2f99 & 2; } + BOOL checkRootTransClearContinueMode() { return field_0x2f99 & 8; } + s16 checkWindStoneHowl() { return mProcVar4.field_0x3010; } + u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); } + u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); } + u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); } + s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); } + Z2WolfHowlLine getCorrectLine(u8 i_lineIndex) { return mZ2WolfHowlMgr.getCorrectLine(i_lineIndex); } + void startWindStoneSound(s8 i_curveID, Vec* i_pos) { mZ2WolfHowlMgr.startWindStoneSound(i_curveID, i_pos); } + J3DModelData* getItemModelData() { return mpItemModelData; } + + cXyz* getIronBallChainPos() const { return mIronBallChainPos; } + csXyz* getIronBallChainAngle() const { return mIronBallChainAngle; } + s16 getIronBallHandChainNum() const { return mItemMode; } + const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; } + + fopAc_ac_c* getAtnActor() { return mTargetedActor; } + + void itemHitSE(u32 i_soundID, u32 i_mapinfo, Z2SoundObjBase* i_other) { + mZ2Link.startHitItemSE(i_soundID, i_mapinfo, i_other, -1.0f); + } + + BOOL checkStartFall() { return getStartMode() == 3; } + + u8 getBStatus() { return dComIfGp_getAStatus(); } + void setRStatus(u8 i_status, u8 i_flag) { dComIfGp_setRStatus(i_status, i_flag); } + + BOOL checkWindSpeedMoveXZ() const { return mWindSpeed.abs2XZ() > 1.0f; } + + BOOL checkHorseRideReady() const { return checkHorseRideOn() || checkHorseGetOffMode(); } + + void getHorseReinCenterLeftPos(cXyz* o_pos) { + mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftInSidePos, o_pos); + } + + void getHorseReinCenterRightPos(cXyz* o_pos) { + mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos); + } + + cXyz* getLineTopPosP() { return mSight.getPosP(); } + + cXyz* getBoomerangLockPosP() { return &mHeldItemRootPos; } + + BOOL boomerangLockTrigger() { return itemActionTrigger(); } + + bool checkBoomerangChargeNow() { return FALSE; } + + BOOL checkBoomerangLockTrigger() { return boomerangLockTrigger(); } + + BOOL checkDemoSpinnerKeep() const { + return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 1; + } + + BOOL checkDemoSpinnerKeepSpeed() const { + return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 2; + } + + bool checkSpinnerRideOwn(const fopAc_ac_c* i_actor) { + return checkSpinnerRide() && mRideAcKeep.getActorConst() == i_actor; + } + + BOOL checkSpinnerReady() const { return mProcID == PROC_SPINNER_READY; } + + BOOL checkGameOverWindow() const { return mProcID == PROC_DEAD && field_0x3478 < 0.01f; } + + f32 getSlideLimit() const { return field_0x3470; } + + bool checkWindSpeedOnXZ() const { return field_0x35b8.abs2XZ() > 1.0f; } + + inline void startRestartRoomFromOut(int, u32, int); + + u16 getReadyItem() { return dComIfGp_getSelectItem(mSelectItemId); } + + static u32 getOtherHeapSize() { return 0xF0A60; } + + static daAlink_BckData const m_mainBckShield[20]; + static daAlink_BckData const m_mainBckSword[5]; + static daAlink_BckData const m_mainBckFishing[28]; + static daAlink_AnmData const m_anmDataTable[ANM_MAX]; + static daAlink_WlAnmData const m_wlAnmDataTable[WANM_MAX]; + static daAlink_FaceTexData const m_faceTexDataTable[]; + static Vec const m_handLeftOutSidePos; + static Vec const m_handRightOutSidePos; + static Vec const m_handLeftInSidePos; + static Vec const m_handRightInSidePos; + + static const daAlink_procInitTable m_procInitTable[]; + static daAlink_procFunc m_demoInitTable[]; + static const EffParamProc m_fEffParamProc[]; + + /* 0x0062C */ request_of_phase_process_class mPhaseReq; + /* 0x00634 */ const char* mArcName; + /* 0x00638 */ JKRExpHeap* mpArcHeap; + /* 0x0063C */ request_of_phase_process_class mShieldPhaseReq; + /* 0x00644 */ const char* mShieldArcName; + /* 0x00648 */ JKRExpHeap* mpShieldArcHeap; + /* 0x0064C */ J3DModelData* field_0x064C; + /* 0x00650 */ J3DModel* mpLinkModel; + /* 0x00654 */ J3DModel* mpLinkFaceModel; + /* 0x00658 */ J3DModel* mpLinkHatModel; + /* 0x0065C */ J3DModel* mpLinkHandModel; + /* 0x00660 */ J3DModel* mpSwAModel; // Ordon Sword model + /* 0x00664 */ J3DModel* mpSwASheathModel; // Ordon Sword sheath model + /* 0x00668 */ J3DModel* mpSwMModel; // Master Sword model + /* 0x0066C */ J3DModel* mpSwMSheathModel; // Master Sword sheath model + /* 0x00670 */ J3DModel* mWoodSwordModel; + /* 0x00674 */ J3DModel* mpWlChangeModel; + /* 0x00678 */ J3DModel* mShieldModel; + /* 0x0067C */ J3DAnmTevRegKey* mMagicArmorBodyBrk; + /* 0x00680 */ J3DAnmTevRegKey* mMagicArmorHeadBrk; + /* 0x00684 */ J3DModel* mpDemoFCBlendModel; + /* 0x00688 */ J3DModel* mpDemoFCTongueModel; + /* 0x0068C */ J3DAnmTextureSRTKey* field_0x068c; + /* 0x00690 */ mDoExt_bckAnm* mpDemoFCTmpBck; + /* 0x00694 */ J3DDeformData* mpDemoFCTmpBls; + /* 0x00698 */ J3DAnmCluster* field_0x0698; + /* 0x0069C */ mDoExt_blkAnm* field_0x069c; + /* 0x006A0 */ J3DModel* mpDemoHLTmpModel; + /* 0x006A4 */ mDoExt_bckAnm* mpDemoHLTmpBck; + /* 0x006A8 */ J3DModel* mpDemoHRTmpModel; + /* 0x006AC */ mDoExt_bckAnm* mpDemoHRTmpBck; + /* 0x006B0 */ mDoExt_bckAnm* mpDemoHDTmpBck; + /* 0x006B4 */ J3DAnmTransform* field_0x06b4; + /* 0x006B8 */ J3DModel* mSwordModel; + /* 0x006BC */ J3DModel* mSheathModel; + /* 0x006C0 */ J3DModelData* field_0x06c0; + /* 0x006C4 */ J3DAnmTextureSRTKey* m_nSwordBtk; + /* 0x006C8 */ J3DAnmTextureSRTKey* m_mSwordBtk; + /* 0x006CC */ J3DAnmTevRegKey* m_mSwordBrk; + /* 0x006D0 */ J3DShape* field_0x06d0; + /* 0x006D4 */ J3DShape* field_0x06d4; + /* 0x006D8 */ J3DShape* field_0x06d8; + /* 0x006DC */ J3DShape* field_0x06dc; + /* 0x006E0 */ J3DShape* field_0x06e0; + /* 0x006E4 */ J3DShape* field_0x06e4; + /* 0x006E8 */ J3DShape* field_0x06e8; + /* 0x006EC */ J3DShape* field_0x06ec; + /* 0x006F0 */ J3DShape* field_0x06f0; + /* 0x006F4 */ J3DAnmTevRegKey* field_0x06f4; + /* 0x006F8 */ J3DAnmTevRegKey* field_0x06f8; + /* 0x006FC */ J3DModel* mpKanteraModel; + /* 0x00700 */ J3DModel* mpKanteraGlowModel; + /* 0x00704 */ J3DAnmTextureSRTKey* mpKanteraGlowBtk; + /* 0x00708 */ J3DModel* mHeldItemModel; + /* 0x0070C */ J3DModel* mpHookTipModel; // related to held item + /* 0x00710 */ J3DModel* field_0x0710; // related to held item + /* 0x00714 */ J3DModel* field_0x0714; // related to held item + /* 0x00718 */ J3DAnmTextureSRTKey* field_0x0718; + /* 0x0071C */ J3DAnmTextureSRTKey* field_0x071c; + /* 0x00720 */ J3DAnmTextureSRTKey* field_0x0720; + /* 0x00724 */ J3DAnmTevRegKey* field_0x0724; + /* 0x00728 */ J3DAnmBase* field_0x0728; + /* 0x0072C */ J3DAnmTexPattern* field_0x072c; + /* 0x00730 */ mDoExt_bckAnm mItemBck; + /* 0x0074C */ mDoExt_bckAnm mHookTipBck; + /* 0x00768 */ J3DModelData* mpItemModelData; + /* 0x0076C */ Z2SoundObjSimple* mpHookSound; + /* 0x00770 */ hsChainShape_c* mpHookChain; + /* 0x00774 */ dBgS_AcchCir* field_0x0774; + /* 0x00778 */ dBgS_ObjAcch* field_0x0778; + /* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk; + /* 0x00780 */ dBgS_ObjLinChk* field_0x780; + /* 0x00784 */ J3DModel* mpLinkBootModels[2]; + /* 0x0078C */ J3DModel* mpWlChainModels[4]; + /* 0x0079C */ J3DModel* mpWlMidnaModel; + /* 0x007A0 */ J3DModel* mpWlMidnaMaskModel; + /* 0x007A4 */ J3DModel* mpWlMidnaHandModel; + /* 0x007A8 */ J3DModel* mpWlMidnaHairModel; + /* 0x007AC */ J3DAnmTevRegKey* mpDMidnaBrk; + /* 0x007B0 */ J3DAnmTevRegKey* mpDMidnaMaskBrk; + /* 0x007B4 */ J3DAnmTevRegKey* mpDMidnaHandBrk; + /* 0x007B8 */ J3DAnmTevRegKey* mpDMidnaHairHandBrk; + /* 0x007BC */ mDoExt_bckAnm* m_sWindowBck; + /* 0x007C0 */ void* mpWarpTexData; + /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; + /* 0x00814 */ dCcD_Stts mCcStts; + /* 0x00850 */ dCcD_Cyl mTgCyls[3]; + /* 0x00C04 */ dCcD_Cyl mWindTgCyls[3]; + /* 0x00FB8 */ dCcD_Sph mAtSph; + /* 0x010F0 */ dCcD_Cyl mAtCyl; + /* 0x0122C */ dCcD_Cps mAtCps[3]; + /* 0x015F8 */ dCcD_Cps mGuardAtCps; + /* 0x0173C */ dCcD_Stts field_0x173c; // related to ball and chain + /* 0x01778 */ dCcD_Sph field_0x1778; + /* 0x018B0 */ dBgS_AcchCir mAcchCir[3]; + /* 0x01970 */ dBgS_LinkAcch mLinkAcch; + /* 0x01B48 */ dBgS_LinkLinChk mLinkLinChk; + /* 0x01BB8 */ dBgS_RopeLinChk mRopeLinChk; + /* 0x01C28 */ dBgS_BoomerangLinChk mBoomerangLinChk; + /* 0x01C98 */ dBgS_ArrowLinChk mArrowLinChk; + /* 0x01D08 */ dBgS_LinkGndChk mLinkGndChk; + /* 0x01D5C */ dBgS_LinkRoofChk mLinkRoofChk; + /* 0x01DAC */ dBgS_LinkLinChk mMagneLineChk; + /* 0x01E1C */ cBgS_PolyInfo mPolyInfo1; + /* 0x01E2C */ cBgS_PolyInfo mPolyInfo2; + /* 0x01E3C */ cBgS_PolyInfo mPolyInfo3; + /* 0x01E4C */ cBgS_PolyInfo mPolyInfo4; + /* 0x01E5C */ dBgS_ObjLinChk mObjLinChk; + /* 0x01ECC */ dBgS_ObjGndChk mObjGndChk; + /* 0x01F20 */ mDoExt_MtxCalcAnmBlendTbl* field_0x1f20; + /* 0x01F24 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f24; + /* 0x01F28 */ mDoExt_AnmRatioPack mNowAnmPackUnder[3]; + /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPackUpper[3]; + /* 0x01F58 */ daPy_anmHeap_c mUnderAnmHeap[3]; + /* 0x01F94 */ daPy_anmHeap_c mUpperAnmHeap[3]; + /* 0x01FD0 */ daPy_frameCtrl_c mUnderFrameCtrl[3]; + /* 0x02018 */ daPy_frameCtrl_c mUpperFrameCtrl[3]; + /* 0x02060 */ mDoExt_MtxCalcOldFrame* field_0x2060; + /* 0x02064 */ daAlink_sight_c mSight; +#if PLATFORM_WII + u8 unk_0x20f0[4]; +#endif + /* 0x020F0 */ daPy_anmHeap_c mAnmHeap3; + /* 0x02104 */ daPy_anmHeap_c mAnmHeap4; + /* 0x02118 */ daPy_anmHeap_c mFaceBtpHeap; + /* 0x0212C */ daPy_anmHeap_c mFaceBtkHeap; + /* 0x02140 */ daPy_anmHeap_c mFaceBckHeap; + /* 0x02154 */ J3DAnmTexPattern* mpFaceBtp; + /* 0x02158 */ J3DAnmTextureSRTKey* mpFaceBtk; + /* 0x0215C */ daPy_frameCtrl_c* field_0x215c; + /* 0x02160 */ const s8* field_0x2160; + /* 0x02164 */ mDoExt_bckAnm mFaceBck; + /* 0x02180 */ daAlink_matAnm_c* field_0x2180[2]; + /* 0x02188 */ dEyeHL_c mEyeHL1; + /* 0x0219C */ dEyeHL_c mEyeHL2; + /* 0x021B0 */ daPy_anmHeap_c mItemHeap[2]; + /* 0x021D8 */ daPy_anmHeap_c mAnmHeap9; + /* 0x021EC */ daAlinkHIO_c* mpHIO; + /* 0x021F0 */ daAlink_blur_c m_swordBlur; + /* 0x027C8 */ dAlink_bottleWaterPcallBack_c field_0x27c8; + /* 0x027E0 */ dAttention_c* mAttention; + /* 0x027E4 */ dAttList_c* mAttList; + /* 0x027E8 */ dAttList_c* mAttList2; + /* 0x027EC */ fopAc_ac_c* mTargetedActor; + /* 0x027F0 */ fopAc_ac_c* field_0x27f0; + /* 0x027F4 */ fopAc_ac_c* field_0x27f4; + /* 0x027F8 */ fopAc_ac_c* field_0x27f8; + /* 0x027FC */ fopAc_ac_c* field_0x27fc; + /* 0x02800 */ daTagMmsg_c* mMidnaMsg; + /* 0x02804 */ fopAc_ac_c* field_0x2804; + /* 0x02808 */ daScex_c* mpScnChg; + /* 0x0280C */ daPy_actorKeep_c field_0x280c; + /* 0x02814 */ daPy_actorKeep_c mRideAcKeep; + /* 0x0281C */ daPy_actorKeep_c field_0x281c; + /* 0x02824 */ daPy_actorKeep_c mItemAcKeep; // name might be wrong + /* 0x0282C */ daPy_actorKeep_c mGrabItemAcKeep; + /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangAcKeep; + /* 0x0283C */ daPy_actorKeep_c mCopyRodAcKeep; + /* 0x02844 */ daPy_actorKeep_c field_0x2844; + /* 0x0284C */ daPy_actorKeep_c mHookTargetAcKeep; + /* 0x02854 */ daPy_actorKeep_c mCargoCarryAcKeep; + /* 0x0285C */ daPy_actorKeep_c field_0x285c; + /* 0x02864 */ dMsgFlow_c mMsgFlow; + /* 0x028B0 */ fpc_ProcID mShieldArrowIDs[16]; + /* 0x028F0 */ fpc_ProcID mMsgClassID; + /* 0x028F4 */ fpc_ProcID mAtnActorID; + /* 0x028F8 */ fpc_ProcID field_0x28f8; + /* 0x028FC */ fpc_ProcID field_0x28fc; + /* 0x02900 */ fpc_ProcID mRideActorID; + /* 0x02904 */ daAlink_footData_c mFootData1[2]; + /* 0x02A4C */ daAlink_footData_c mFootData2[2]; + /* 0x02B94 */ f32 field_0x2b94; + /* 0x02B98 */ f32 field_0x2b98; + /* 0x02B98 */ f32 field_0x2b9c; + /* 0x02BA0 */ f32 field_0x2ba0; + /* 0x02BA4 */ f32 field_0x2ba4; + /* 0x02BA8 */ f32 mSinkShapeOffset; + /* 0x02BAC */ f32 mAcchCirWallH[3]; + /* 0x02BB8 */ Mtx mInvMtx; + /* 0x02BE8 */ Mtx field_0x2be8; + /* 0x02C18 */ Mtx mRootMtx; + /* 0x02C48 */ Mtx mMagneBootMtx; + /* 0x02C78 */ Mtx mMagneBootInvMtx; + /* 0x02CA8 */ Z2CreatureLink mZ2Link; + /* 0x02D78 */ u8* field_0x2d78; + /* 0x02D7C */ daPy_frameCtrl_c* field_0x2d7c; + /* 0x02D80 */ void* field_0x2d80; + /* 0x02D84 */ Z2WolfHowlMgr mZ2WolfHowlMgr; + /* 0x02E44 */ dJntCol_c field_0x2e44; + /* 0x02E54 */ dPaPoF_c field_0x2e54; + /* 0x02F1C */ dPaPo_c* field_0x2f1c; + /* 0x02F20 */ dPa_hermiteEcallBack_c field_0x2f20; + /* 0x02F38 */ dPa_hermiteEcallBack_c field_0x2f38; + /* 0x02F50 */ const Vec* field_0x2f50; + /* 0x02F54 */ const Vec* field_0x2f54; + /* 0x02F58 */ dPath* field_0x2f58; + /* 0x02F5C */ LIGHT_INFLUENCE mMagneBootsPlight; + /* 0x02F7C */ u8 field_0x2f7c[16]; + /* 0x02F8C */ u8 field_0x2f8c; + /* 0x02F8D */ u8 mItemTrigger; + /* 0x02F8E */ u8 mItemButton; + /* 0x02F8F */ u8 field_0x2f8f; + /* 0x02F90 */ u8 field_0x2f90; + /* 0x02F91 */ u8 field_0x2f91; + /* 0x02F92 */ u8 mLeftHandIndex; + /* 0x02F93 */ u8 mRightHandIndex; + /* 0x02F94 */ u8 field_0x2f94; + /* 0x02F95 */ u8 field_0x2f95; + /* 0x02F96 */ u8 field_0x2f96; + /* 0x02F97 */ u8 field_0x2f97; + /* 0x02F98 */ u8 field_0x2f98; + /* 0x02F99 */ u8 field_0x2f99; + /* 0x02F9A */ s8 mVoiceReverbIntensity; + /* 0x02F9B */ u8 mMidnaAnm; + /* 0x02F9C */ u8 mSelectItemId; + /* 0x02F9D */ u8 field_0x2f9d; + /* 0x02F9E */ u8 mEffProc; + /* 0x02F9F */ u8 field_0x2f9f; + /* 0x02FA0 */ u8 field_0x2fa0; + /* 0x02FA1 */ u8 mRunCutComboCount; + /* 0x02FA2 */ u8 mActiveBombNum; + /* 0x02FA3 */ u8 field_0x2fa3; + /* 0x02FA4 */ u8 mRollCrashFlg; + /* 0x02FA5 */ u8 mPolySound; + /* 0x02FA6 */ u8 field_0x2fa6; + /* 0x02FA7 */ u8 field_0x2fa7; + /* 0x02FA8 */ u8 mGndPolySpecialCode; + /* 0x02FA9 */ u8 mWolfEyeUpTimer; + /* 0x02FAA */ u8 mRideStatus; + /* 0x02FAB */ u8 field_0x2fab; + /* 0x02FAC */ u8 mExitDirection; + /* 0x02FAD */ u8 mPeepExitID; + /* 0x02FAE */ u8 mUseButtonFlags; + /* 0x02FAF */ u8 field_0x2faf; + /* 0x02FB0 */ u8 field_0x2fb0; + /* 0x02FB1 */ u8 mWolfLockNum; + /* 0x02FB2 */ u8 mMidnaTalkDelayTimer; + /* 0x02FB3 */ u8 field_0x2fb3; + /* 0x02FB4 */ u8 field_0x2fb4; + /* 0x02FB5 */ u8 mDamageColorTime; + /* 0x02FB6 */ u8 field_0x2fb6; + /* 0x02FB7 */ u8 field_0x2fb7; + /* 0x02FB8 */ u8 field_0x2fb8; + /* 0x02FB9 */ u8 field_0x2fb9; + /* 0x02FBA */ u8 mHotspringRecoverTimer; + /* 0x02FBB */ u8 mGndPolyAtt0; + /* 0x02FBC */ u8 field_0x2fbc; + /* 0x02FBD */ u8 mGndPolyAtt1; + /* 0x02FBE */ u8 field_0x2fbe; + /* 0x02FBF */ u8 mClothesChangeWaitTimer; + /* 0x02FC0 */ u8 field_0x2fc0; + /* 0x02FC1 */ u8 field_0x2fc1; + /* 0x02FC2 */ u8 field_0x2fc2; + /* 0x02FC3 */ u8 field_0x2fc3; + /* 0x02FC4 */ u8 field_0x2fc4; + /* 0x02FC5 */ u8 field_0x2fc5; + /* 0x02FC6 */ u8 field_0x2fc6; + /* 0x02FC7 */ u8 field_0x2fc7; + /* 0x02FC8 */ u8 field_0x2fc8; + /* 0x02FC9 */ u8 field_0x2fc9; + /* 0x02FCA */ u8 field_0x2fca; + /* 0x02FCB */ u8 field_0x2fcb; + /* 0x02FCC */ u8 field_0x2fcc; + /* 0x02FCD */ u8 field_0x2fcd; + /* 0x02FCE */ u8 field_0x2fce; + /* 0x02FCF */ u8 field_0x2fcf; + /* 0x02FD0 */ u8 field_0x2fd0; + /* 0x02FD1 */ u8 mShieldChangeWaitTimer; + /* 0x02FD2 */ u8 field_0x2fd2; + /* 0x02FD3 */ u8 field_0x2fd3; + /* 0x02FD4 */ u8 field_0x2fd4; + /* 0x02FD5 */ u8 field_0x2fd5; + /* 0x02FD6 */ u8 mSwordChangeWaitTimer; + /* 0x02FD7 */ u8 field_0x2fd7; + /* 0x02FD8 */ u8 field_0x2fd8; + /* 0x02FD9 */ u8 field_0x2fd9[3]; + /* 0x02FDC */ u16 mEquipItem; + /* 0x02FDE */ u16 field_0x2fde; + /* 0x02FE0 */ s16 mStickAngle; + /* 0x02FE2 */ s16 mMoveAngle; // related to current stick angle + /* 0x02FE4 */ s16 field_0x2fe4; + /* 0x02FE6 */ s16 mPrevAngleY; + /* 0x02FE8 */ u16 mProcID; + /* 0x02FEA */ u16 field_0x2fea; + /* 0x02FEC */ s16 field_0x2fec; + /* 0x02FEE */ s16 field_0x2fee; + /* 0x02FF0 */ s16 field_0x2ff0; + /* 0x02FF2 */ s16 field_0x2ff2; + /* 0x02FF4 */ s16 field_0x2ff4; + /* 0x02FF6 */ s16 field_0x2ff6; + /* 0x02FF8 */ s16 field_0x2ff8; + /* 0x02FFA */ s16 field_0x2ffa; + /* 0x02FFC */ s16 field_0x2ffc; + /* 0x02FFE */ s16 field_0x2ffe; + /* 0x03000 */ s16 field_0x3000; + /* 0x03002 */ s16 field_0x3002; + /* 0x03004 */ s16 field_0x3004; + /* 0x03006 */ s16 mIceDamageWaitTimer; + // `mProcVar`'s are variables that are context dependent for each `PROC` action. + // (The exact setup may need to be simplified later) + union { + s16 field_0x3008; + s16 mHowlExitID; + s16 mIceFreezeTimer; + } /* 0x03008 */ mProcVar0; + union { + s16 field_0x300a; + s16 mBoardSwordChargeTime; + s16 mDigActorName; + } /* 0x0300A */ mProcVar1; + union { + s16 field_0x300c; + s16 mPuzzleAimAngle; + s16 mDigType; + } /* 0x0300C */ mProcVar2; + union { + s16 field_0x300e; + s16 mDigChangeArea; + } /* 0x0300E */ mProcVar3; + union { + s16 field_0x3010; + s16 mDigExitID; + } /* 0x03010 */ mProcVar4; + union { + s16 field_0x3012; + s16 mCutTurnChargeCheckTimer; + } /* 0x03012 */ mProcVar5; + /* 0x03014 */ s16 mFallVoiceInit; + /* 0x03016 */ u8 field_0x3016[2]; + union { + s16 field_0x3018; + s16 mBottleItemHealAmount; + } /* 0x03018 */ mItemVar0; + /* 0x0301A */ s16 mItemMode; + /* 0x0301C */ s16 field_0x301c; + /* 0x0301E */ s16 field_0x301e; + /* 0x03020 */ s16 field_0x3020; + /* 0x03022 */ s16 field_0x3022; + /* 0x03024 */ s16 field_0x3024; + /* 0x03026 */ s16 field_0x3026; + /* 0x03028 */ s16 field_0x3028; + /* 0x0302A */ u8 field_0x302a[2]; + /* 0x0302C */ s16 field_0x302c[10]; + /* 0x03040 */ s16 field_0x3040[10]; + /* 0x03054 */ s16 field_0x3054[3]; + /* 0x0305A */ s16 field_0x305a[3]; + /* 0x03060 */ s16 field_0x3060; + /* 0x03062 */ s16 field_0x3062; + /* 0x03064 */ s16 field_0x3064; + /* 0x03066 */ s16 field_0x3066[3]; + /* 0x0306C */ s16 field_0x306c; + /* 0x0306E */ s16 field_0x306e; + /* 0x03070 */ s16 field_0x3070; + /* 0x03072 */ s16 field_0x3072; + /* 0x03074 */ s16 field_0x3074; + /* 0x03076 */ s16 field_0x3076; + /* 0x03078 */ s16 field_0x3078; + /* 0x0307A */ s16 mStickSpinTimer; + /* 0x0307C */ s16 mPrevStickAngle; + /* 0x0307E */ s16 field_0x307e; + /* 0x03080 */ s16 field_0x3080; + /* 0x03082 */ s16 field_0x3082; + /* 0x03084 */ u16 field_0x3084; + /* 0x03086 */ u16 field_0x3086; + /* 0x03088 */ s16 field_0x3088; + /* 0x0308A */ s16 field_0x308a; + /* 0x0308C */ s16 field_0x308c; + /* 0x0308E */ s16 mFastShotTime; + /* 0x03090 */ s16 field_0x3090; + /* 0x03092 */ s16 field_0x3092; + /* 0x03094 */ s16 field_0x3094[3]; + /* 0x0309A */ s16 field_0x309a[3]; + /* 0x030A0 */ s16 field_0x30a0; + /* 0x030A2 */ s16 field_0x30a2; + /* 0x030A4 */ s16 field_0x30a4; + /* 0x030A6 */ s16 field_0x30a6; + /* 0x030A8 */ u16 field_0x30a8; + /* 0x030AA */ u16 field_0x30aa; + /* 0x030AC */ s16 mWolfEyeUp; + /* 0x030AE */ s16 field_0x30ae; + /* 0x030B0 */ s16 field_0x30b0; + /* 0x030B2 */ s16 field_0x30b2; + /* 0x030B4 */ u16 field_0x30b4; + /* 0x030B6 */ u16 field_0x30b6; + /* 0x030B8 */ u16 mLeftHandJntNo; + /* 0x030BA */ u16 mRightHandJntNo; + /* 0x030BC */ u16 field_0x30bc; + /* 0x030BE */ u16 field_0x30be; + /* 0x030C0 */ u16 mLeftItemJntNo; + /* 0x030C2 */ u16 mRightItemJntNo; + /* 0x030C4 */ u16 field_0x30c4; + /* 0x030C6 */ u16 field_0x30c6; + /* 0x030C8 */ s16 field_0x30c8; + /* 0x030CA */ s16 field_0x30ca; + /* 0x030CC */ s16 field_0x30cc; + /* 0x030CE */ u16 mKeepItem; + /* 0x030D0 */ s16 field_0x30d0; + /* 0x030D2 */ s16 field_0x30d2; + /* 0x030D4 */ s16 field_0x30d4; + /* 0x030D6 */ s16 field_0x30d6; + /* 0x030D8 */ u8 field_0x30d8[0x14]; + /* 0x030EC */ s16 field_0x30ec; + /* 0x030EE */ s16 mRollJumpAngle; + /* 0x030F0 */ u16 field_0x30f0; + /* 0x030F2 */ u8 field_0x30f2[2]; + /* 0x030F4 */ s16 mSwordFlourishTimer; + /* 0x030F6 */ s16 field_0x30f6; + /* 0x030F8 */ s16 field_0x30f8; + /* 0x030FA */ s16 field_0x30fa; + /* 0x030FC */ u16 field_0x30fc; + /* 0x030FE */ u16 field_0x30fe; + /* 0x03100 */ s16 field_0x3100; + /* 0x03102 */ s16 field_0x3102; + /* 0x03104 */ s16 field_0x3104; + /* 0x03106 */ u16 field_0x3106; + /* 0x03108 */ s16 field_0x3108; + /* 0x0310A */ s16 field_0x310a; + /* 0x0310C */ s16 field_0x310c; + /* 0x0310E */ s16 field_0x310e; + /* 0x03110 */ s16 field_0x3110; + /* 0x03112 */ u16 mExitID; + /* 0x03114 */ s16 field_0x3114; + /* 0x03116 */ s16 field_0x3116; + /* 0x03118 */ s16 field_0x3118; + /* 0x0311A */ s16 field_0x311a; + /* 0x0311C */ s16 field_0x311c; + /* 0x0311E */ s16 field_0x311e; + /* 0x03120 */ u16 mMidnaMsgNum; + /* 0x03122 */ s16 field_0x3122; + /* 0x03124 */ csXyz field_0x3124; + /* 0x0312A */ csXyz field_0x312a[2]; + /* 0x03136 */ csXyz field_0x3136[2]; + /* 0x03142 */ csXyz field_0x3142[4]; + /* 0x0315A */ csXyz mFishingArm1Angle; + /* 0x03160 */ csXyz field_0x3160; + /* 0x03166 */ csXyz field_0x3166; + /* 0x0316C */ csXyz field_0x316c; + /* 0x03172 */ u8 field_0x3172[2]; + /* 0x03174 */ int mGroundCode; + /* 0x03178 */ int field_0x3178; + /* 0x0317C */ int field_0x317c; + /* 0x03180 */ int field_0x3180; + /* 0x03184 */ int mAlinkStaffId; + /* 0x03188 */ int mStartEventID; + /* 0x0318C */ int field_0x318c; + /* 0x03190 */ int field_0x3190; + /* 0x03194 */ int field_0x3194; + /* 0x03198 */ int field_0x3198; + /* 0x0319C */ int field_0x319c; + /* 0x031A0 */ u32 mModeFlg; + /* 0x031A4 */ int field_0x31a4; + /* 0x031A8 */ u32 field_0x31a8[2]; + /* 0x031B0 */ u32 field_0x31b0[3]; + /* 0x031BC */ u32 field_0x31bc; + /* 0x031C0 */ u32 field_0x31c0; + /* 0x031C4 */ u32 field_0x31c4; + /* 0x031C8 */ u32 field_0x31c8; + /* 0x031CC */ u32 field_0x31cc; + /* 0x031D0 */ u32 field_0x31d0; + /* 0x031D4 */ u32 field_0x31d4; + /* 0x031D8 */ u32 field_0x31d8[3]; + /* 0x031E4 */ u32 field_0x31e4; + /* 0x031E8 */ u32 field_0x31e8[4]; + /* 0x031F8 */ u32 field_0x31f8; + /* 0x031FC */ u32 field_0x31fc; + /* 0x03200 */ u32 field_0x3200; + /* 0x03204 */ u32 field_0x3204[6]; + /* 0x0321C */ u32 field_0x321c; + /* 0x03220 */ u32 field_0x3220; + /* 0x03224 */ u32 field_0x3224; + /* 0x03228 */ u32 field_0x3228[2][3]; + /* 0x03240 */ u32 field_0x3240[6]; + /* 0x03258 */ u32 field_0x3258; + /* 0x0325C */ u32 field_0x325c; + /* 0x03260 */ u32 field_0x3260[2]; + /* 0x03268 */ u32 field_0x3268; + /* 0x0326C */ u32 field_0x326c[4]; + /* 0x0327C */ u32 field_0x327c[3]; + /* 0x03288 */ u32 field_0x3288; + /* 0x0328C */ u32 field_0x328c; + /* 0x03290 */ u32 field_0x3290; + /* 0x03294 */ u32 field_0x3294; + /* 0x03298 */ u32 field_0x3298[2]; + /* 0x032A0 */ J3DGXColorS10 field_0x32a0[2]; + /* 0x032B0 */ J3DGXColorS10 field_0x32b0[2]; + /* 0x032C0 */ s16 field_0x32c0[2]; + /* 0x032C4 */ u16 field_0x32c4[2]; + /* 0x032C8 */ u32 field_0x32c8; + /* 0x032CC */ uintptr_t field_0x32cc; + /* 0x032D0 */ u32 field_0x32d0; + /* 0x032D4 */ u32 field_0x32d4; + /* 0x032D8 */ firePointEff_c field_0x32d8[4]; + /* 0x03398 */ f32 mNormalSpeed; + /* 0x0339C */ f32 mSpeedModifier; + /* 0x033A0 */ f32 field_0x33a0; + /* 0x033A4 */ f32 field_0x33a4; + /* 0x033A8 */ f32 mStickValue; + /* 0x033AC */ f32 mMoveValue; + /* 0x033B0 */ f32 field_0x33b0; + /* 0x033B4 */ f32 mWaterY; + /* 0x033B8 */ f32 field_0x33b8; + /* 0x033BC */ f32 field_0x33bc; + /* 0x033C0 */ f32 field_0x33c0; + /* 0x033C4 */ f32 mFallHeight; + /* 0x033C8 */ f32 field_0x33c8; + /* 0x033CC */ f32 field_0x33cc; + /* 0x033D0 */ f32 field_0x33d0; + /* 0x033D4 */ f32 field_0x33d4; + /* 0x033D8 */ f32 field_0x33d8; + /* 0x033DC */ f32 field_0x33dc; + /* 0x033E0 */ f32 field_0x33e0; + /* 0x033E4 */ f32 field_0x33e4; + /* 0x033E8 */ f32 field_0x33e8; + /* 0x033EC */ f32 field_0x33ec; + /* 0x033F0 */ f32 field_0x33f0; + /* 0x033F4 */ f32 field_0x33f4; + /* 0x033F8 */ f32 field_0x33f8; + /* 0x033FC */ f32 field_0x33fc; + /* 0x03400 */ f32 field_0x3400; + /* 0x03404 */ f32 field_0x3404; + /* 0x03408 */ f32 field_0x3408; + /* 0x0340C */ f32 field_0x340c; + /* 0x03410 */ f32 mRollJumpSpeedH; + /* 0x03414 */ f32 mRollJumpSpeedV; + /* 0x03418 */ f32 field_0x3418; + /* 0x0341C */ f32 field_0x341c; + /* 0x03420 */ f32 field_0x3420; + /* 0x03424 */ f32 field_0x3424; + /* 0x03428 */ f32 field_0x3428; + /* 0x0342C */ f32 field_0x342c; + /* 0x03430 */ f32 field_0x3430; + /* 0x03434 */ f32 mHeavySpeedMultiplier; + /* 0x03438 */ f32 field_0x3438; + /* 0x0343C */ f32 field_0x343c; + /* 0x03440 */ f32 field_0x3440; + /* 0x03444 */ f32 field_0x3444; + /* 0x03448 */ f32 field_0x3448; + /* 0x0344C */ f32 field_0x344c; + /* 0x03450 */ u8 field_0x3450[4]; + /* 0x03454 */ f32 field_0x3454; + /* 0x03458 */ f32 field_0x3458; + /* 0x0345C */ f32 field_0x345c; + /* 0x03460 */ f32 field_0x3460; + /* 0x03464 */ f32 field_0x3464; + /* 0x03468 */ f32 field_0x3468; + /* 0x0346C */ f32 field_0x346c; + /* 0x03470 */ f32 field_0x3470; + /* 0x03474 */ f32 mSwordUpColorIntensity; + /* 0x03478 */ f32 field_0x3478; + /* 0x0347C */ f32 field_0x347c; + /* 0x03480 */ f32 field_0x3480; + /* 0x03484 */ f32 field_0x3484; + /* 0x03488 */ f32 field_0x3488; + /* 0x0348C */ f32 field_0x348c; + /* 0x03490 */ f32 mSearchBallScale; + /* 0x03494 */ f32 field_0x3494; + /* 0x03498 */ cXyz field_0x3498; + /* 0x034A4 */ cXyz field_0x34a4; + /* 0x034B0 */ cXyz field_0x34b0; + /* 0x034BC */ cXyz field_0x34bc; + /* 0x034C8 */ cXyz field_0x34c8; + /* 0x034D4 */ cXyz field_0x34d4; + /* 0x034E0 */ cXyz field_0x34e0; + /* 0x034EC */ cXyz field_0x34ec; + /* 0x034F8 */ cXyz mLastJumpPos; + /* 0x03504 */ cXyz field_0x3504; + /* 0x03510 */ cXyz field_0x3510; + /* 0x0351C */ cXyz field_0x351c; + /* 0x03528 */ cXyz field_0x3528; + /* 0x03534 */ cXyz field_0x3534; + /* 0x03540 */ cXyz field_0x3540; + /* 0x0354C */ cXyz field_0x354c[4]; + /* 0x0357C */ cXyz mLookPosFromOut; + /* 0x03588 */ cXyz field_0x3588; + /* 0x03594 */ cXyz field_0x3594; + /* 0x035A0 */ cXyz field_0x35a0; + /* 0x035AC */ cXyz mWindSpeed; + /* 0x035B8 */ cXyz field_0x35b8; + /* 0x035C4 */ cXyz field_0x35c4; + /* 0x035D0 */ cXyz field_0x35d0; + /* 0x035DC */ cXyz field_0x35dc; + /* 0x035E8 */ cXyz field_0x35e8; + /* 0x035F4 */ cXyz mMidnaAtnPos; + /* 0x03600 */ cXyz mMidnaHairAtnPos; + /* 0x0360C */ cXyz mKandelaarFlamePos; + /* 0x03618 */ cXyz field_0x3618; + /* 0x03624 */ cXyz field_0x3624; + /* 0x03630 */ cXyz field_0x3630; + /* 0x0363C */ cXyz field_0x363c[4]; + /* 0x0366C */ cXyz field_0x366c[4]; + /* 0x0369C */ cXyz field_0x369c; + /* 0x036A8 */ cXyz mMagneBootsTopVec; + /* 0x036B4 */ cXyz field_0x36b4; + /* 0x036C0 */ cXyz field_0x36c0[4]; + /* 0x036F0 */ cXyz field_0x36f0[4]; + /* 0x03720 */ cXyz field_0x3720; + /* 0x0372C */ cXyz field_0x372c; + /* 0x03738 */ cXyz field_0x3738; + /* 0x03744 */ cXyz field_0x3744; + /* 0x03750 */ cXyz field_0x3750; + /* 0x0375C */ cXyz field_0x375c; + /* 0x03768 */ cXyz field_0x3768; + /* 0x03774 */ cXyz mForcePutPos; + /* 0x03780 */ cXyz field_0x3780; + /* 0x0378C */ cXyz field_0x378c; + /* 0x03798 */ cXyz field_0x3798; + /* 0x037A4 */ cXyz field_0x37a4; + /* 0x037B0 */ cXyz field_0x37b0[2]; + /* 0x037C8 */ cXyz field_0x37c8; + /* 0x037D4 */ cXyz field_0x37d4; + /* 0x037E0 */ cXyz mHeldItemRootPos; + /* 0x037EC */ cXyz mHookshotTopPos; + /* 0x037F8 */ cXyz mIronBallCenterPos; + /* 0x03804 */ cXyz mIronBallBgChkPos; + /* 0x03810 */ cXyz field_0x3810; + /* 0x0381C */ cXyz field_0x381c; + /* 0x03828 */ cXyz field_0x3828; + /* 0x03834 */ cXyz field_0x3834; + /* 0x03840 */ cXyz* mIronBallChainPos; + /* 0x03844 */ csXyz* mIronBallChainAngle; + /* 0x03848 */ cXyz* field_0x3848; + /* 0x0384C */ cXyz* field_0x384c; + /* 0x03850 */ daAlink_procFunc mpProcFunc; +}; // Size: 0x385C + class daAlinkHIO_data_c : public JORReflexible { public: #if DEBUG @@ -346,6 +4682,52 @@ public: #endif }; +class daAlinkHIO_atnMove_c1 { +public: + /* 0x00 */ s16 mMaxTurnAngle; + /* 0x02 */ s16 mMinTurnAngle; + /* 0x04 */ s16 mTurnAngleRate; + /* 0x08 */ f32 mWaitAnmSpeed; + /* 0x0C */ f32 mWalkAnmSpeed; + /* 0x10 */ f32 mRunAnmSpeed; + /* 0x14 */ f32 mWalkChangeRate; + /* 0x18 */ f32 mRunChangeRate; + /* 0x1C */ f32 mMaxSpeed; + /* 0x20 */ f32 mAcceleration; + /* 0x24 */ f32 mDeceleration; + /* 0x28 */ f32 mBackWalkAnmSpeed; + /* 0x2C */ f32 mBackRunAnmSpeed; + /* 0x30 */ f32 mBackWalkChangeRate; + /* 0x34 */ f32 mBackRunChangeRate; + /* 0x38 */ f32 mMaxBackwardsSpeed; + /* 0x3C */ f32 mBackAcceleration; + /* 0x40 */ f32 mBackDeceleration; + /* 0x44 */ f32 mMinWalkFrame; + /* 0x48 */ f32 mMinBackWalkFrame; + /* 0x4C */ f32 mWalkForwardAnmSpeed; + /* 0x50 */ f32 mRunForwardAnmSpeed; +}; // Size: 0x54 + +class daAlinkHIO_atnMove_c0 { +public: + static daAlinkHIO_atnMove_c1 const m; +}; + +class daAlinkHIO_atnMove_c : public daAlinkHIO_data_c { +public: +#if DEBUG + daAlinkHIO_atnMove_c(); + ~daAlinkHIO_atnMove_c(); + + virtual void genMessage(JORMContext*); +#endif + +public: +#if DEBUG + /* 0x34 */ daAlinkHIO_atnMove_c1 m; +#endif +}; + class daAlinkHIO_noActAtnMove_c1 { public: /* 0x00 */ s16 mMaxTurnAngle; @@ -536,52 +4918,6 @@ public: #endif }; -class daAlinkHIO_atnMove_c1 { -public: - /* 0x00 */ s16 mMaxTurnAngle; - /* 0x02 */ s16 mMinTurnAngle; - /* 0x04 */ s16 mTurnAngleRate; - /* 0x08 */ f32 mWaitAnmSpeed; - /* 0x0C */ f32 mWalkAnmSpeed; - /* 0x10 */ f32 mRunAnmSpeed; - /* 0x14 */ f32 mWalkChangeRate; - /* 0x18 */ f32 mRunChangeRate; - /* 0x1C */ f32 mMaxSpeed; - /* 0x20 */ f32 mAcceleration; - /* 0x24 */ f32 mDeceleration; - /* 0x28 */ f32 mBackWalkAnmSpeed; - /* 0x2C */ f32 mBackRunAnmSpeed; - /* 0x30 */ f32 mBackWalkChangeRate; - /* 0x34 */ f32 mBackRunChangeRate; - /* 0x38 */ f32 mMaxBackwardsSpeed; - /* 0x3C */ f32 mBackAcceleration; - /* 0x40 */ f32 mBackDeceleration; - /* 0x44 */ f32 mMinWalkFrame; - /* 0x48 */ f32 mMinBackWalkFrame; - /* 0x4C */ f32 mWalkForwardAnmSpeed; - /* 0x50 */ f32 mRunForwardAnmSpeed; -}; // Size: 0x54 - -class daAlinkHIO_atnMove_c0 { -public: - static daAlinkHIO_atnMove_c1 const m; -}; - -class daAlinkHIO_atnMove_c : public daAlinkHIO_data_c { -public: -#if DEBUG - daAlinkHIO_atnMove_c(); - ~daAlinkHIO_atnMove_c(); - - virtual void genMessage(JORMContext*); -#endif - -public: -#if DEBUG - /* 0x34 */ daAlinkHIO_atnMove_c1 m; -#endif -}; - class daAlinkHIO_cutNormal_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; @@ -2629,7 +6965,7 @@ public: public: #if DEBUG - /* 0x00 */ daAlinkHIO_grab_c1 m; + /* 0x34 */ daAlinkHIO_grab_c1 m; #endif }; @@ -4054,4340 +8390,6 @@ public: #endif }; -class daAlink_c; -typedef int (daAlink_c::*daAlink_procFunc)(); -typedef void (daAlink_c::*EffParamProc)(); - -struct daAlink_procInitTable { - /* 0x0 */ daAlink_procFunc m_procFunc; - /* 0xC */ u32 m_mode; -}; // Size: 0x10 - -class daAlink_c : public daPy_py_c { -public: - enum daAlink_ANM { - /* 0x000 */ ANM_ATN_RETURN_FROM_WALK, - /* 0x001 */ ANM_ATN_RETURN_FROM_RUN, - /* 0x002 */ ANM_ATN_BACK_WALK, - /* 0x003 */ ANM_ATN_BACK_RUN, - /* 0x004 */ ANM_ATN_LOCK_BACK_WALK, - /* 0x005 */ ANM_ATN_LOCK_BACK_RUN, - /* 0x006 */ ANM_ATN_WALK_LEFT, - /* 0x007 */ ANM_ATN_LOCK_WALK_LEFT, - /* 0x008 */ ANM_ATN_WALK_RIGHT, - /* 0x009 */ ANM_ATN_LOCK_WALK_RIGHT, - /* 0x00A */ ANM_ATN_RUN_LEFT, - /* 0x00B */ ANM_ATN_LOCK_RUN_LEFT, - /* 0x00C */ ANM_ATN_RUN_RIGHT, - /* 0x00D */ ANM_ATN_LOCK_RUN_RIGHT, - /* 0x00E */ ANM_WALK_HEAVY, - /* 0x00F */ ANM_ATN_BACK_WALK_HEAVY, - /* 0x010 */ ANM_ATN_WAIT_LEFT, - /* 0x011 */ ANM_ATN_WAIT_RIGHT, - /* 0x012 */ ANM_WALK, - /* 0x013 */ ANM_RUN, - /* 0x014 */ ANM_SWIM_WAIT, - /* 0x015 */ ANM_STEP_TURN, - /* 0x016 */ ANM_SMALL_GUARD, - /* 0x017 */ ANM_STEP_TURN_TIRED, - /* 0x018 */ ANM_SMALL_GUARD_TIRED, - /* 0x019 */ ANM_WAIT, - /* 0x01A */ ANM_WAIT_B, - /* 0x01B */ ANM_WAIT_B_TO_A, - /* 0x01C */ ANM_RUN_B, - /* 0x01D */ ANM_SIDE_JUMP_LEFT, - /* 0x01E */ ANM_SIDE_JUMP_RIGHT, - /* 0x01F */ ANM_SIDE_JUMP_LEFT_LAND, - /* 0x020 */ ANM_SIDE_JUMP_RIGHT_LAND, - /* 0x021 */ ANM_BACK_JUMP, - /* 0x022 */ ANM_BACK_JUMP_LAND, - /* 0x023 */ ANM_FRONT_ROLL, - /* 0x024 */ ANM_ROLL_CRASH, - /* 0x025 */ ANM_BARRIER_RECOIL, // ? - /* 0x026 */ ANM_BACKFLIP, - /* 0x027 */ ANM_BACKFLIP_LAND, - /* 0x028 */ ANM_SLIP, - /* 0x029 */ ANM_CROUCH, - /* 0x02A */ ANM_CROUCH_START, - /* 0x02B */ ANM_GUARD_LEFT, - /* 0x02C */ ANM_GUARD_RIGHT, - /* 0x02D */ ANM_CROUCH_DEF, // ? - /* 0x02E */ ANM_SHIELD_ATTACK, - /* 0x02F */ ANM_SHIELD_ATTACK_RECOIL, - /* 0x030 */ ANM_GUARD_BREAK, - /* 0x031 */ ANM_JUMP_START, - /* 0x032 */ ANM_JUMP, - /* 0x033 */ ANM_JUMP_LAND, - /* 0x034 */ ANM_CRAWL_START, - /* 0x035 */ ANM_CRAWL, - /* 0x036 */ ANM_WAIT_PUSH_PULL, - /* 0x037 */ ANM_PUSH_LIGHT, - /* 0x038 */ ANM_PUSH_START, - /* 0x039 */ ANM_PUSH, - /* 0x03A */ ANM_PULL_LIGHT, - /* 0x03B */ ANM_PULL_START, - /* 0x03C */ ANM_PULL, - /* 0x03D */ ANM_HORSE_MOUNT_LEFT, - /* 0x03E */ ANM_HORSE_MOUNT_RIGHT, - /* 0x03F */ ANM_HORSE_MOUNT_BACK, - /* 0x040 */ ANM_HORSE_GETOFF_LEFT, - /* 0x041 */ ANM_HORSE_GETOFF_RIGHT, - /* 0x042 */ ANM_HORSE_STOP, - /* 0x043 */ ANM_HORSE_STOP_TO_STAND, - /* 0x044 */ ANM_HORSE_STAND, - /* 0x045 */ ANM_HORSE_JUMP_START, - /* 0x046 */ ANM_HORSE_JUMP, - /* 0x047 */ ANM_HORSE_JUMP_LAND, - /* 0x048 */ ANM_HORSE_WAIT, - /* 0x049 */ ANM_HORSE_WALK_A, - /* 0x04A */ ANM_HORSE_WALK_B, - /* 0x04B */ ANM_HORSE_DASH_A, - /* 0x04C */ ANM_HORSE_DASH_B, - /* 0x04D */ ANM_WSTARTH, // ? - /* 0x04E */ ANM_HORSE_DASH_START, - /* 0x04F */ ANM_HORSE_LASH, - /* 0x050 */ ANM_HORSE_CUT_TURN, - /* 0x051 */ ANM_HORSE_WAIT_A, - /* 0x052 */ ANM_HORSE_WAIT_B, - /* 0x053 */ ANM_HORSE_DIE_RECOVER, - /* 0x054 */ ANM_HORSE_TURN_B, - /* 0x055 */ ANM_HORSE_CROUCH, - /* 0x056 */ ANM_HORSE_DMG_LEFT, - /* 0x057 */ ANM_HORSE_DMG_RIGHT, - /* 0x058 */ ANM_HORSE_HANG_LEFT, - /* 0x059 */ ANM_HORSE_HANG_RIGHT, - /* 0x05A */ ANM_HORSE_TURN_LEFT, - /* 0x05B */ ANM_HORSE_TURN_RIGHT, - /* 0x05C */ ANM_HORSE_RIDE_LEFT, - /* 0x05D */ ANM_HORSE_RIDE_RIGHT, - /* 0x05E */ ANM_HORSE_FALL_LEFT, - /* 0x05F */ ANM_HORSE_FALL_RIGHT, - /* 0x060 */ ANM_HORSE_TAME_WAIT_B, - /* 0x061 */ ANM_HORSE_TAME_WAIT_A_TO_B, - /* 0x062 */ ANM_CUT_NM_VERTICAL, - /* 0x063 */ ANM_CUT_NM_LEFT, - /* 0x064 */ ANM_CUT_NM_RIGHT, - /* 0x065 */ ANM_CUT_COMBO_STAB, - /* 0x066 */ ANM_CUT_NM_STAB, - /* 0x067 */ ANM_CUT_FINISH_LEFT, - /* 0x068 */ ANM_CUT_FINISH_VERTICAL, - /* 0x069 */ ANM_CUT_FINISH_STAB, - /* 0x06A */ ANM_CUT_MORTAL_DRAW_A, - /* 0x06B */ ANM_CUT_MORTAL_DRAW_B, - /* 0x06C */ ANM_CUT_FINISH_RIGHT, - /* 0x06D */ ANM_CUT_TWIRL, - /* 0x06E */ ANM_CUT_TWIRL_LAND, - /* 0x06F */ ANM_CUT_RECOIL_A, - /* 0x070 */ ANM_CUT_RECOIL_B, - /* 0x071 */ ANM_CUT_JUMP, - /* 0x072 */ ANM_CUT_JUMP_LAND, - /* 0x073 */ ANM_CUT_TURN_LEFT, - /* 0x074 */ ANM_CUT_TURN_RIGHT, - /* 0x075 */ ANM_CUT_TURN_CHARGE_START, - /* 0x076 */ ANM_CUT_TURN_CHARGE, - /* 0x077 */ ANM_CUT_TURN_CHARGE_MOVE, - /* 0x078 */ ANM_CUT_FINISHING_BLOW_JUMP, - /* 0x079 */ ANM_CUT_FINISHING_BLOW_FALL, - /* 0x07A */ ANM_CUT_FINISHING_BLOW_STAB, - /* 0x07B */ ANM_CUT_FINISHING_BLOW_MISS, - /* 0x07C */ ANM_CUT_HEAD_JUMP, - /* 0x07D */ ANM_CUT_HEAD, - /* 0x07E */ ANM_CUT_HEAD_LAND, - /* 0x07F */ ANM_DMG_SMALL_A, - /* 0x080 */ ANM_DMG_SMALL_B, - /* 0x081 */ ANM_DMG_SMALL_LEFT, - /* 0x082 */ ANM_DMG_SMALL_RIGHT, - /* 0x083 */ ANM_DMG_AIR_FRONT, - /* 0x084 */ ANM_DMG_LARGE, - /* 0x085 */ ANM_DMG_AIR_LEFT, - /* 0x086 */ ANM_DMG_AIR_RIGHT, - /* 0x087 */ ANM_DMG_AIR_LAND, - /* 0x088 */ ANM_DMG_LARGE_LAND, - /* 0x089 */ ANM_DMG_AIR_LEFT_LAND, - /* 0x08A */ ANM_DMG_AIR_RIGHT_LAND, - /* 0x08B */ ANM_DMG, - /* 0x08C */ ANM_DMG_FALL, - /* 0x08D */ ANM_DMG_FALL_RECOVER, - /* 0x08E */ ANM_FINISH, - /* 0x08F */ ANM_FINISH_END, - /* 0x090 */ ANM_SERVICE_WAIT, - /* 0x091 */ ANM_CLIMB_JUMP, - /* 0x092 */ ANM_HANG_READY, - /* 0x093 */ ANM_CLIMB_TOP_SMALL, - /* 0x094 */ ANM_HANG_CLIMB_TOP, - /* 0x095 */ ANM_HANG_ONE_HAND, - /* 0x096 */ ANM_HANG_ONE_HAND_MOVE, - /* 0x097 */ ANM_HANG_MOVE_LEFT, - /* 0x098 */ ANM_HANG_MOVE_RIGHT, - /* 0x099 */ ANM_LADDER_UP_START, - /* 0x09A */ ANM_LADDER_UP_END_LEFT, - /* 0x09B */ ANM_LADDER_UP_END_RIGHT, - /* 0x09C */ ANM_LADDER_DOWN_START, - /* 0x09D */ ANM_LADDER_DOWN_END_LEFT, - /* 0x09E */ ANM_LADDER_DOWN_END_RIGHT, - /* 0x09F */ ANM_LADDER_RIGHT_TO_LEFT, - /* 0x0A0 */ ANM_LADDER_LEFT_TO_RIGHT, - /* 0x0A1 */ ANM_CLIMB_HANG, - /* 0x0A2 */ ANM_CLIMB_START, - /* 0x0A3 */ ANM_CLIMB_LEFT, - /* 0x0A4 */ ANM_CLIMB_RIGHT, - /* 0x0A5 */ ANM_CLIMB_SLIDE_LEFT, - /* 0x0A6 */ ANM_CLIMB_SLIDE_RIGHT, - /* 0x0A7 */ ANM_CLIMB_HANG_MISS, - /* 0x0A8 */ ANM_ROOF_UP, - /* 0x0A9 */ ANM_ROOF_HANG_WAIT, - /* 0x0AA */ ANM_ROOF_HANG_MOVE, - /* 0x0AB */ ANM_ROOF_HANG_LEFT, - /* 0x0AC */ ANM_ROOF_HANG_RIGHT, - /* 0x0AD */ ANM_ROOF_HANG_TURN, - /* 0x0AE */ ANM_ROOF_HANG, - /* 0x0AF */ ANM_GRAB_UP_START, - /* 0x0B0 */ ANM_GRAB_UP, - /* 0x0B1 */ ANM_THROW, - /* 0x0B2 */ ANM_THROW_HEAVY, - /* 0x0B3 */ ANM_PICK_UP_LARGE_START, - /* 0x0B4 */ ANM_PICK_UP_LARGE, - /* 0x0B5 */ ANM_CARRY, - /* 0x0B6 */ ANM_WAIT_TIRED, - /* 0x0B7 */ ANM_WAIT_TO_TIRED, - /* 0x0B8 */ ANM_TALK, - /* 0x0B9 */ ANM_WAIT_START, - /* 0x0BA */ ANM_FROZEN_FREE, // ? - /* 0x0BB */ ANM_BOOMERANG_CATCH, - /* 0x0BC */ ANM_WALK_SLOPE, - /* 0x0BD */ ANM_SLIDE_FORWARD, - /* 0x0BE */ ANM_SLIDE_BACKWARD, - /* 0x0BF */ ANM_SLIDE_FORWARD_END, - /* 0x0C0 */ ANM_SLIDE_BACKWARD_END, - /* 0x0C1 */ ANM_SWIM_A, - /* 0x0C2 */ ANM_SWIM_RESURFACE, - /* 0x0C3 */ ANM_ATN_SWIM_LEFT, - /* 0x0C4 */ ANM_ATN_SWIM_RIGHT, - /* 0x0C5 */ ANM_ATN_SWIM_BACK, - /* 0x0C6 */ ANM_SWIM_DASH, - /* 0x0C7 */ ANM_SWIM_DIVE, - /* 0x0C8 */ ANM_SWIM_ZORA_START, - /* 0x0C9 */ ANM_SWIM_C, - /* 0x0CA */ ANM_SWIM_DMG_FRONT, - /* 0x0CB */ ANM_SWIM_DMG_BACK, - /* 0x0CC */ ANM_SWIM_DMG_LEFT, - /* 0x0CD */ ANM_SWIM_DMG_RIGHT, - /* 0x0CE */ ANM_SWIM_DMG_FREEZE, - /* 0x0CF */ ANM_TRES_OPEN_SMALL, - /* 0x0D0 */ ANM_TRES_OPEN_KICK, - /* 0x0D1 */ ANM_TRES_OPEN_BIG, - /* 0x0D2 */ ANM_GET_A, - /* 0x0D3 */ ANM_GET_A_WAIT, - /* 0x0D4 */ ANM_GET_A_WAIT2, // same under anm, upper anm (0x26A) - /* 0x0D5 */ ANM_GET_HOLDOUT, - /* 0x0D6 */ ANM_TURN_BACK, - /* 0x0D7 */ ANM_VJUMP_START, - /* 0x0D8 */ ANM_WAIT_SIT, - /* 0x0D9 */ ANM_WAIT_CANOE_LEFT, - /* 0x0DA */ ANM_WAIT_CANOE_RIGHT, - /* 0x0DB */ ANM_CANOE_ROW_LEFT, - /* 0x0DC */ ANM_CANOE_ROW_RIGHT, - /* 0x0DD */ ANM_CANOE_ROW_LEFT_BACK, - /* 0x0DE */ ANM_CANOE_ROW_RIGHT_BACK, - /* 0x0DF */ ANM_CANOE_CHANGE_HAND, - /* 0x0E0 */ ANM_CANOE_FISH_LEFT, - /* 0x0E1 */ ANM_CANOE_FISH_RIGHT, - /* 0x0E2 */ ANM_CANOE_REEL, - /* 0x0E3 */ ANM_CANOE_RELEASE, - /* 0x0E4 */ ANM_CANOE_PADDLE_TO_ROD, - /* 0x0E5 */ ANM_REEL, - /* 0x0E6 */ ANM_REEL_LEFT_RIGHT, - /* 0x0E7 */ ANM_LAND_UP, // ? - /* 0x0E8 */ ANM_DOOR_OPEN_LEFT, - /* 0x0E9 */ ANM_DOOR_OPEN_RIGHT, - /* 0x0EA */ ANM_DOOR_OPEN_LOCK_LEFT, - /* 0x0EB */ ANM_DOOR_OPEN_LOCK_RIGHT, - /* 0x0EC */ ANM_DOOR_OPEN_ROLL, - /* 0x0ED */ ANM_DOOR_OPEN_SLIDE, - /* 0x0EE */ ANM_PICK_UP, - /* 0x0EF */ ANM_ROLL_JUMP, - /* 0x0F0 */ ANM_SIDE_ROLL_LEFT, - /* 0x0F1 */ ANM_SIDE_ROLL_RIGHT, - /* 0x0F2 */ ANM_RIDE_WAIT, - /* 0x0F3 */ ANM_RIDE_FRONT, - /* 0x0F4 */ ANM_RIDE_CROUCH, - /* 0x0F5 */ ANM_RIDE_STOP, - /* 0x0F6 */ ANM_RIDE_JUMP_START, - /* 0x0F7 */ ANM_RIDE_JUMP, - /* 0x0F8 */ ANM_RIDE_JUMP_LAND, - /* 0x0F9 */ ANM_RIDE_KICK, - /* 0x0FA */ ANM_RIDE_CUT_TURN_CHARGE, - /* 0x0FB */ ANM_RIDE_CUT_TURN, - /* 0x0FC */ ANM_ROPE_SWING, // monkey swing? - /* 0x0FD */ ANM_TRANSFORM_TO_WOLF, - /* 0x0FE */ ANM_TRANSFORM_TO_HUMAN, - /* 0x0FF */ ANM_WAIT_WIND, - /* 0x100 */ ANM_BOTTLE_DRINK_START, - /* 0x101 */ ANM_BOTTLE_DRINK, - /* 0x102 */ ANM_BOTTLE_DRINK_END, - /* 0x103 */ ANM_BOTTLE_DRINK_NASTY, - /* 0x104 */ ANM_BOTTLE_OPEN, - /* 0x105 */ ANM_BOTTLE_POUR, - /* 0x106 */ ANM_BOTTLE_FAIRY, - /* 0x107 */ ANM_BOTTLE_SWING, - /* 0x108 */ ANM_BOTTLE_SWING_DOWN, - /* 0x109 */ ANM_BOTTLE_GET, - /* 0x10A */ ANM_BOTTLE_SCOOP, - /* 0x10B */ ANM_LANTERN_SWING, - /* 0x10C */ ANM_OIL_BOTTLE_POUR_START, - /* 0x10D */ ANM_OIL_BOTTLE_POUR, - /* 0x10E */ ANM_OIL_BOTTLE_POUR_END, - /* 0x10F */ ANM_GRASS_WHISTLE_START, - /* 0x110 */ ANM_GRASS_WHISTLE_PLAY, - /* 0x111 */ ANM_HAWK_CATCH, - /* 0x112 */ ANM_HAWK_WAIT, - /* 0x113 */ ANM_WAIT_D_B, // ghost rats? - /* 0x114 */ ANM_HORSE_WAIT_D_B, // ? - /* 0x115 */ ANM_MG_KICK, // ? - /* 0x116 */ ANM_DIE, - /* 0x117 */ ANM_HORSE_DIE, - /* 0x118 */ ANM_SWIM_DIE, - /* 0x119 */ ANM_SWIM_DROWN, - /* 0x11A */ ANM_ATN_COW, - /* 0x11B */ ANM_COW_CATCH_START, - /* 0x11C */ ANM_COW_CATCH, - /* 0x11D */ ANM_COW_A_D, // ? - /* 0x11E */ ANM_COW_PRESS, - /* 0x11F */ ANM_COW_THROW_LEFT, - /* 0x120 */ ANM_COW_THROW_RIGHT, - /* 0x121 */ ANM_ATN_RIGHT, - /* 0x122 */ ANM_COW_MOVE_LEFT_RIGHT, - /* 0x123 */ ANM_COW_STROKE, - /* 0x124 */ ANM_ENTRANCE, - /* 0x125 */ ANM_FALL, - /* 0x126 */ ANM_APPEARANCE, - /* 0x127 */ ANM_S_JUMP_START, // ? - /* 0x128 */ ANM_S_JUMP_END, // ? - /* 0x129 */ ANM_HOOKSHOT_FLY_LEFT, - /* 0x12A */ ANM_HOOKSHOT_FLY_RIGHT, - /* 0x12B */ ANM_HOOKSHOT_SHOOT, - /* 0x12C */ ANM_HOOKSHOT_HANG_END_LEFT, - /* 0x12D */ ANM_HOOKSHOT_HANG_END_RIGHT, - /* 0x12E */ ANM_HOOKSHOT_HANG_LEFT, - /* 0x12F */ ANM_HOOKSHOT_HANG_RIGHT, - /* 0x130 */ ANM_HOOKSHOT_HANG_WAIT_LEFT, - /* 0x131 */ ANM_HOOKSHOT_HANG_WAIT_RIGHT, - /* 0x132 */ ANM_HOOKSHOT_HANG_SHOOT_LEFT, - /* 0x133 */ ANM_HOOKSHOT_HANG_SHOOT_RIGHT, - /* 0x134 */ ANM_HOOKSHOT_HANG_LEFT_START, - /* 0x135 */ ANM_HOOKSHOT_HANG_RIGHT_START, - /* 0x136 */ ANM_HOOKSHOT_WALL_END_LEFT, - /* 0x137 */ ANM_HOOKSHOT_WALL_END_RIGHT, - /* 0x138 */ ANM_HOOKSHOT_WALL_LEFT, - /* 0x139 */ ANM_HOOKSHOT_WALL_RIGHT, - /* 0x13A */ ANM_HOOKSHOT_WALL_WAIT_LEFT, - /* 0x13B */ ANM_HOOKSHOT_WALL_WAIT_RIGHT, - /* 0x13C */ ANM_HOOKSHOT_WALL_SHOOT_LEFT, - /* 0x13D */ ANM_HOOKSHOT_WALL_SHOOT_RIGHT, - /* 0x13E */ ANM_HVY_BOOTS_PUT_ON, - /* 0x13F */ ANM_SUMOU_MIAU, // ? - /* 0x140 */ ANM_SUMOU_HAKEYOI, // ? - /* 0x141 */ ANM_SUMOU_FIGHT_WAIT, - /* 0x142 */ ANM_SUMOU_FIGHT_STEP_LEFT, - /* 0x143 */ ANM_SUMOU_FIGHT_STEP_RIGHT, - /* 0x144 */ ANM_SUMOU_FIGHT_STEP, - /* 0x145 */ ANM_SUMOU_TACKLE, - /* 0x146 */ ANM_SUMOU_TACKLE_GORON, // ? - /* 0x147 */ ANM_SUMOU_DODGE_TACKLE, - /* 0x148 */ ANM_SUMOU_TACKLE_MISS, - /* 0x149 */ ANM_SUMOU_TACKLE_SHOCK, - /* 0x14A */ ANM_SUMOU_TACKLE_WAIT, - /* 0x14B */ ANM_SUMOU_TACKLE_WAIT_GORON, // ? - /* 0x14C */ ANM_SUMOU_TACKLE_STAGGER, - /* 0x14D */ ANM_SUMOU_TACKLE_STAGGER_GORON, // ? - /* 0x14E */ ANM_SUMOU_TACKLE_SHOCK_RETURN, - /* 0x14F */ ANM_SUMOU_PUNCH, - /* 0x150 */ ANM_SUMOU_PUNCH_MISS_SHOCK, - /* 0x151 */ ANM_SUMOU_PUNCH_MISS_SHOCK_RETURN, - /* 0x152 */ ANM_SUMOU_PUNCH_SHOCK, - /* 0x153 */ ANM_SUMOU_STAGGER, - /* 0x154 */ ANM_SUMOU_PUSH_BACK, - /* 0x155 */ ANM_SUMOU_PULL_BACK, - /* 0x156 */ ANM_SUMOU_PULL_BACK_GORON, // ? - /* 0x157 */ ANM_SUMOU_WIN, - /* 0x158 */ ANM_SUMOU_WIN_GORON, - /* 0x159 */ ANM_SUMOU_LOSE, - /* 0x15A */ ANM_SUMOU_LOSE_GORON, - /* 0x15B */ ANM_SUMOU_KNOCKED_DOWN, - /* 0x15C */ ANM_SUMOU_GET_UP, - /* 0x15D */ ANM_SUMOU_SHIKO, - /* 0x15E */ ANM_SUMOU_SHIKO_WAIT, - /* 0x15F */ ANM_DMG_FBW, // ? - /* 0x160 */ ANM_IRONBALL_WAIT, - /* 0x161 */ ANM_IRONBALL_WALK, - /* 0x162 */ ANM_IRONBALL_ATTACK, - /* 0x163 */ ANM_IRONBALL_TURN, - /* 0x164 */ ANM_IRONBALL_THROW, - /* 0x165 */ ANM_IRONBALL_PULL, - /* 0x166 */ ANM_IRONBALL_CATCH, - /* 0x167 */ ANM_IRONBALL_DEF, - /* 0x168 */ ANM_MORPHEEL_HANG, - /* 0x169 */ ANM_MORPHEEL_HANG_MISS, - /* 0x16A */ ANM_MORPHEEL_HANG_WAIT, - /* 0x16B */ ANM_MORPHEEL_HANG_WAIT_B, - /* 0x16C */ ANM_MORPHEEL_CUT, - /* 0x16D */ ANM_MORPHEEL_CUT_B, // final hit of cycles 1 and 2 - /* 0x16E */ ANM_MORPHEEL_CUT_FINAL, - /* 0x16F */ ANM_MORPHEEL_SPIT_OUT, - /* 0x170 */ ANM_DRAGON_HANG_LEFT, - /* 0x171 */ ANM_DRAGON_HANG_RIGHT, - /* 0x172 */ ANM_DRAGON_HANG, - /* 0x173 */ ANM_DRAGON_HANG_WAIT, - /* 0x174 */ ANM_DRAGON_HANG_WAIT_B, - /* 0x175 */ ANM_DRAGON_CUT, - /* 0x176 */ ANM_DRAGON_CUT_B, // final hit of cycles 1 and 2 - /* 0x177 */ ANM_DRAGON_CUT_FINAL, - /* 0x178 */ ANM_COPYROD_SWING, - /* 0x179 */ ANM_COPYROD_SWING_LARGE, - /* 0x17A */ ANM_GET_MASTER_SWORD, // ? - /* 0x17B */ ANM_WAIT_F, - /* 0x17C */ ANM_ELEC_STUN_GND, - /* 0x17D */ ANM_ELEC_STUN_AIR, - /* 0x17E */ ANM_KEY_CATCH, - /* 0x17F */ ANM_HORSE_GET_ITEM, - /* 0x180 */ ANM_TWGATE_PULLED_IN, - /* 0x181 */ ANM_CHAIN_PICK_UP, - /* 0x182 */ ANM_CHAIN_PULL, - /* 0x183 */ ANM_CHAIN_PULL_FYRUS, - /* 0x184 */ ANM_CHAIN_PULL_END, - /* 0x185 */ ANM_WAIT_INSECT, - /* 0x186 */ ANM_DEMO_MHOP, // ? - /* 0x187 */ ANM_PULL_IRONBALL_SWITCH, - /* 0x188 */ ANM_TRADE_ITEM_PULL_OUT, - /* 0x189 */ ANM_TRADE_ITEM_WAIT, - /* 0x18A */ ANM_DEMO_KAMAE, // ? - /* 0x18B */ ANM_CUT_JUMP_LARGE_CHARGE, - /* 0x18C */ ANM_CUT_JUMP_LARGE_START, - /* 0x18D */ ANM_CUT_JUMP_LARGE, - /* 0x18E */ ANM_CUT_JUMP_LARGE_LAND, - /* 0x18F */ ANM_DEMO_MASTER_SWORD_STICK, - /* 0x190 */ ANM_DEMO_MASTER_SWORD_WAIT, - /* 0x191 */ ANM_DEMO_MASTER_SWORD_PULL, - /* 0x192 */ ANM_GANON_CHANCE, - /* 0x193 */ ANM_GANON_CHANCE_LOSING, - /* 0x194 */ ANM_GANON_CHANCE_WINNING, - /* 0x195 */ ANM_GANON_CHANCE_WIN, - /* 0x196 */ ANM_GANON_CHANCE_LOSE, - /* 0x197 */ ANM_GANON_FINISH, - /* 0x198 */ ANM_GANON_FINISH_WAIT, - /* 0x199 */ ANM_GANON_ON_HORSE, - /* 0x19A */ ANM_DIVE_START, - /* 0x19B */ ANM_DIVE, - /* 0x19C */ ANM_ODOROKU, // ? - /* 0x19D */ ANM_ASHIMOTO, // ? - /* 0x19E */ ANM_MAX, - }; - - enum daAlink_UPPER { - UPPER_0, - UPPER_1, - UPPER_2, - }; - - enum daAlink_UNDER { - UNDER_0, - UNDER_1, - UNDER_2, - }; - - enum daAlink_FTANM { - FTANM_0, - FTANM_MABA01, - FTANM_MABA02, - FTANM_MABA03, - FTANM_MABA01_L, - FTANM_MABA01_R, - FTANM_MABAGOMA, - FTANM_DAM01, - FTANM_FINISHA, - FTANM_ARELORD, - FTANM_ARELORDTAME, - FTANM_PUSHW, - FTANM_PULLW, - FTANM_WAITST, - FTANM_CUTST, - FTANM_A_WAITST, - FTANM_WAITHDB, - FTANM_WAITWATOWB, - FTANM_CUTUNG, - FTANM_CUTDL, - FTANM_CUTDR, - FTANM_SWIMINGA, - FTANM_SWIMP, - FTANM_SWIMDIVE, - FTANM_GRABP, - FTANM_GRABUP, - FTANM_HEAVYTHROW, - FTANM_GRABNG, - FTANM_SWAITA, - FTANM_PICKUP, - FTANM_DOOROPA, - FTANM_DOOROPB, - FTANM_CUTHLA, - FTANM_CUTHLB, - FTANM_CUTHRA, - FTANM_CUTHRB, - FTANM_CUTHTB, - FTANM_TURNBS, - FTANM_ROLLFGOOD, - FTANM_B_A, - FTANM_C_A, - FTANM_TURNBACK, - FTANM_DAMFFUP, - FTANM_DAMFBUP, - FTANM_DAMFRLUP, - FTANM_WAITATOS, - FTANM_CUTA, - FTANM_CUTL, - FTANM_CUTR, - FTANM_CUTF, - FTANM_CUTEA, - FTANM_CUTEB, - FTANM_CUTEG, - FTANM_CHANGEATOW, - FTANM_CHANGEWTOA, - FTANM_SWAITHA, - FTANM_SWIATHB, - FTANM_DASHWIND, - FTANM_CUTTB, - FTANM_CUTT, - FTANM_CUTJST, - FTANM_CUTJED, - FTANM_BINDRINKST, - FTANM_BINDRINK, - FTANM_BINDRINKED, - FTANM_BINBAD, - FTANM_BINOP, - FTANM_BINOUT, - FTANM_BINFAIRY, - FTANM_BINSWINGS, - FTANM_BINSWINGU, - FTANM_BINGET, - FTANM_I_BINGET, - FTANM_K_BINGET, - FTANM_GRASSAST, - FTANM_CATCHTAKA, - FTANM_E_A, - FTANM_BOXOPSHORT, - FTANM_BOXOPKICK, - FTANM_BOXOP, - FTANM_DIE, - FTANM_DIEH, - FTANM_SWIMDIEA, - FTANM_SWIMDIEP, - FTANM_ENTRANCE, - FTANM_COWCATCHST, - FTANM_COWTHROW_L, - FTANM_COWTHROW_R, - FTANM_DIEHUP, - FTANM_CUTRE, - FTANM_CUTU, - FTANM_CUTUED, - FTANM_CLIMBHANGMISS, - FTANM_DAMFBW, - FTANM_UNK_94, - FTANM_UNK_95, - FTANM_UNK_96, - FTANM_UNK_97, - FTANM_UNK_98, - FTANM_UNK_99, - FTANM_UNK_100, - FTANM_UNK_101, - FTANM_UNK_102, - FTANM_UNK_103, - FTANM_UNK_104, - FTANM_UNK_105, - FTANM_UNK_106, - FTANM_UNK_107, - FTANM_UNK_108, - FTANM_SPILLH, - FTANM_HANGH, - FTANM_RODSWING, - FTANM_RODSWINGL, - FTANM_GETSWL, - FTANM_TURNLS, - FTANM_TURNRS, - FTANM_KEYCATCHH, - FTANM_DEMOTALKA, - FTANM_DEMOTALKB, - FTANM_DEMOTALKC, - FTANM_CANORELEASE, - FTANM_WAITINSECT, - FTANM_I_A, - FTANM_J_A, - FTANM_K_A, - FTANM_ATDEFNG, - FTANM_DEMOMHOP, - FTANM_CUTEHST, - FTANM_CUTEH, - FTANM_CUTTJP, - FTANM_CUTTJST, - FTANM_CUTTJ, - FTANM_CUTTJED, - FTANM_UNK_133, - FTANM_UNK_134, - FTANM_UNK_135, - FTANM_ODOROKU, - FTANM_ASHIMOTO, - FTANM_UNAZUKU, - FTANM_WL_MABA01, - FTANM_WL_MABA02, - FTANM_WL_SWAITA, - FTANM_WL_SWIMP, - FTANM_WL_SWAITB, - FTANM_WL_DAM, - FTANM_WL_B_A, - FTANM_WL_DAMFFBUP, - FTANM_WL_DAMFLRUP, - FTANM_WL_WAITST, - FTANM_WL_LANDDAMA, - FTANM_WL_LANDDAMAST, - FTANM_WL_ATTACKUNG, - FTANM_WL_DASHWIND, - FTANM_WL_THROUGH, - FTANM_WL_ATTACKREST, - FTANM_WL_ATTACKREED, - FTANM_WL_DIE, - FTANM_WL_SWIMDIEA, - FTANM_WL_SWIMDIEP, - FTANM_WL_MDSHOCK, - FTANM_WL_ENTRANCE, - FTANM_WL_HOWLC, - FTANM_WL_C_A, - }; - - enum daAlink_WARP_MAT_MODE { - WARP_MAT_MODE_0, - WARP_MAT_MODE_1, - }; - - enum daAlink_WANM { - /* 0x00 */ WANM_WAIT, - /* 0x01 */ WANM_WALK_A, - /* 0x02 */ WANM_WALK_B, - /* 0x03 */ WANM_DASH_A, - /* 0x04 */ WANM_JUMP_ATTACK_START, - /* 0x05 */ WANM_JUMP_ATTACK, - /* 0x06 */ WANM_JUMP_ATTACK_END, - /* 0x07 */ WANM_WAIT_PP, // ? - /* 0x08 */ WANM_PUSH_LIGHT, - /* 0x09 */ WANM_PUSH_START, - /* 0x0A */ WANM_PUSH, - /* 0x0B */ WANM_SIT, - /* 0x0C */ WANM_CROUCH, - /* 0x0D */ WANM_CROUCH_WALK, - /* 0x0E */ WANM_WAIT_SIT, - /* 0x0F */ WANM_TRES_OPEN, - /* 0x10 */ WANM_VJMP_START, - /* 0x11 */ WANM_BUMP_START, - /* 0x12 */ WANM_BUMP_END, - /* 0x13 */ WANM_VJMP_CLIMB, - /* 0x14 */ WANM_VJMP_CLIMB_HANG, - /* 0x15 */ WANM_TURN_BACK, - /* 0x16 */ WANM_DMG_SMALL, - /* 0x17 */ WANM_WAIT_TIRED, - /* 0x18 */ WANM_WAIT_TO_TIRED, - /* 0x19 */ WANM_HANG, - /* 0x1A */ WANM_SLIP, - /* 0x1B */ WANM_TURN, - /* 0x1C */ WANM_ATN, - /* 0x1D */ WANM_WALK_SLOPE, - /* 0x1E */ WANM_SLIDE_BACKWARD, - /* 0x1F */ WANM_SLIDE_BACKWARD_END, - /* 0x20 */ WANM_SLIDE_FORWARD_START, - /* 0x21 */ WANM_ROPE_WALK, - /* 0x22 */ WANM_ROPE_CLIMB_LEFT, - /* 0x23 */ WANM_ROPE_CLIMB_RIGHT, - /* 0x24 */ WANM_ROPE_TURN, - /* 0x25 */ WANM_ROPE_WAIT, - /* 0x26 */ WANM_ROPE_FALTER, - /* 0x27 */ WANM_DASH_B, - /* 0x28 */ WANM_DMG_AIR_FRONT, - /* 0x29 */ WANM_DMG_AIR_BACK, - /* 0x2A */ WANM_DMG_AIR_LEFT, - /* 0x2B */ WANM_DMG_AIR_RIGHT, - /* 0x2C */ WANM_DMG_AIR_FRONT_GETUP, - /* 0x2D */ WANM_DMG_AIR_BACK_GETUP, - /* 0x2E */ WANM_DMG_AIR_LEFT_GETUP, - /* 0x2F */ WANM_DMG_AIR_RIGHT_GETUP, - /* 0x30 */ WANM_SERVICE_WAIT_A, - /* 0x31 */ WANM_WAIT_B, - /* 0x32 */ WANM_JUMP_B_START, - /* 0x33 */ WANM_JUMP_B_TURN_START, - /* 0x34 */ WANM_JUMP_B, - /* 0x35 */ WANM_JUMP_B_END, - /* 0x36 */ WANM_SWIM_RESURFACE, - /* 0x37 */ WANM_SWIM_WAIT, - /* 0x38 */ WANM_SWIM, - /* 0x39 */ WANM_SWIM_DASH, - /* 0x3A */ WANM_WAIT_SHAKE, - /* 0x3B */ WANM_WAIT_START, - /* 0x3C */ WANM_DMG_FRONT, - /* 0x3D */ WANM_DMG_BACK, - /* 0x3E */ WANM_DMG_LEFT, - /* 0x3F */ WANM_DMG_RIGHT, - /* 0x40 */ WANM_ATTACK_B_LEFT, - /* 0x41 */ WANM_ATTACK_B_RIGHT, - /* 0x42 */ WANM_ATTACK_B_FRONT, - /* 0x43 */ WANM_ATTACK_B_TAIL, - /* 0x44 */ WANM_ATN_LOCK_WALK_BACK, - /* 0x45 */ WANM_ATN_LOCK_WALK_FRONT, - /* 0x46 */ WANM_ATN_LOCK_RUN, - /* 0x47 */ WANM_PICKUP_A, - /* 0x48 */ WANM_SIDE_JUMP_LEFT_START, - /* 0x49 */ WANM_SIDE_JUMP_LEFT_END, - /* 0x4A */ WANM_SIDE_JUMP_RIGHT_START, - /* 0x4B */ WANM_SIDE_JUMP_RIGHT_END, - /* 0x4C */ WANM_BACK_JUMP_START, - /* 0x4D */ WANM_BACK_JUMP_END, - /* 0x4E */ WANM_PICKUP_B, - /* 0x4F */ WANM_PICKUP_THROW, - /* 0x50 */ WANM_ATTACK_A_START, - /* 0x51 */ WANM_ATTACK_A, - /* 0x52 */ WANM_ATTACK_A_END, - /* 0x53 */ WANM_ATTACK_A_END_FRONT, - /* 0x54 */ WANM_ATTACK_A_END_BACK, - /* 0x55 */ WANM_ATTACK_T_START, - /* 0x56 */ WANM_ATTACK_T, - /* 0x57 */ WANM_HANDLE_HANG, - /* 0x58 */ WANM_HANDLE_HANG_WAIT, - /* 0x59 */ WANM_HANDLE_HANG_SW, // ? - /* 0x5A */ WANM_CUT_TURN_LEFT, - /* 0x5B */ WANM_CUT_TURN_RIGHT, - /* 0x5C */ WANM_HOWL, - /* 0x5D */ WANM_HOWL_SIT, - /* 0x5E */ WANM_HOWL_SUCCESS, - /* 0x5F */ WANM_HOWL_END, - /* 0x60 */ WANM_FALL_LAND, - /* 0x61 */ WANM_FALL_LAND_START, - /* 0x62 */ WANM_ATTACK_POE_START, - /* 0x63 */ WANM_ATTACK_POE, - /* 0x64 */ WANM_ATTACK_POE_END, - /* 0x65 */ WANM_ATTACK_POE_MISS, - /* 0x66 */ WANM_BACKFLIP_START, - /* 0x67 */ WANM_BACKFLIP_END, - /* 0x68 */ WANM_DIG, - /* 0x69 */ WANM_DIG_IN, - /* 0x6A */ WANM_DIG_UNDER, - /* 0x6B */ WANM_SLIDE_W, // ? - /* 0x6C */ WANM_JUMP_KICK, - /* 0x6D */ WANM_PULL_OUT, - /* 0x6E */ WANM_CUT_TURN_CHARGE, - /* 0x6F */ WANM_TRANSFORM_TO_WOLF, - /* 0x70 */ WANM_TRANSFORM_TO_HUMAN, - /* 0x71 */ WANM_WAIT_WIND, - /* 0x72 */ WANM_SMELL, - /* 0x73 */ WANM_DASH_START, - /* 0x74 */ WANM_ATTACK_RECOIL_START, - /* 0x75 */ WANM_ATTACK_RECOIL_END, - /* 0x76 */ WANM_FLING_LEFT, - /* 0x77 */ WANM_FLING_RIGHT, - /* 0x78 */ WANM_CATCH_START, - /* 0x79 */ WANM_CATCH, - /* 0x7A */ WANM_ATTACK_RECOIL_GROUND, - /* 0x7B */ WANM_DIE, - /* 0x7C */ WANM_SWIM_DIE, - /* 0x7D */ WANM_SWIM_DROWN, - /* 0x7E */ WANM_WAIT_STUNNED, // ? - /* 0x7F */ WANM_WAIT_A_TO_S, // ? - /* 0x80 */ WANM_SERVICE_WAIT_D, - /* 0x81 */ WANM_MIDNA_SHOCK, - /* 0x82 */ WANM_ENTRANCE, - /* 0x83 */ WANM_GET_A, - /* 0x84 */ WANM_GET, - /* 0x85 */ WANM_WAIT_KARGOROK, - /* 0x86 */ WANM_CATCH_KARGOROK, - /* 0x87 */ WANM_DMG_ELEC_GROUND, - /* 0x88 */ WANM_DMG_ELEC_AIR, - /* 0x89 */ WANM_TWGATE_PULL, - /* 0x8A */ WANM_CHAIN_PULL, - /* 0x8B */ WANM_CHAIN_PULL_END, - /* 0x8C */ WANM_LISTEN, - /* 0x8D */ WANM_PIG_GANON_CATCH_ST, - /* 0x8E */ WANM_PIG_GANON_CATCH_END, - /* 0x8F */ WANM_PIG_GANON_THROW_LEFT_START, - /* 0x90 */ WANM_PIG_GANON_THROW_LEFT_END, - /* 0x91 */ WANM_PIG_GANON_THROW_RIGHT_START, - /* 0x92 */ WANM_PIG_GANON_THROW_RIGHT_END, - WANM_MAX, - }; - - enum MODE_FLG { - /* 0x00000001 */ MODE_IDLE = (1 << 0), - /* 0x00000002 */ MODE_JUMP = (1 << 1), - /* 0x00000004 */ MODE_DISABLE_ITEMS = (1 << 2), // ? - /* 0x00000008 */ MODE_HIT_STUN = (1 << 3), - /* 0x00000010 */ MODE_CLIMB = (1 << 4), // ? - /* 0x00000020 */ MODE_UNK_20 = 0x20, // related to wolf? - /* 0x00000040 */ MODE_NO_COLLISION = 0x40, // disables wall col checks - /* 0x00000080 */ MODE_GUARD_ENABLED = 0x80, - /* 0x00000100 */ MODE_UNK_100 = 0x100, - /* 0x00000400 */ MODE_RIDING = 0x400, - /* 0x00000800 */ MODE_UNK_800 = 0x800, - /* 0x00001000 */ MODE_UNK_1000 = - 0x1000, // affects things like anim set when controlling rod statue - /* 0x00002000 */ MODE_UNK_2000 = 0x2000, - /* 0x00004000 */ MODE_UNK_4000 = 0x4000, - /* 0x00008000 */ MODE_UNK_8000 = 0x8000, - /* 0x00010000 */ MODE_VINE_CLIMB = 0x10000, // used for vine climbing - /* 0x00020000 */ MODE_ROPE_WALK = 0x20000, - /* 0x00040000 */ MODE_SWIMMING = 0x40000, // this might be more than swimming - /* 0x00100000 */ MODE_GRAB_PLACE = 0x100000, - /* 0x00800000 */ MODE_UNK_800000 = 0x800000, // moves camera down - /* 0x01000000 */ MODE_UNK_1000000 = 0x1000000, // attention related? - /* 0x02000000 */ MODE_UNK_2000000 = 0x2000000, // maybe related to snow/sand? - /* 0x04000000 */ MODE_UNK_4000000 = 0x4000000, - /* 0x08000000 */ MODE_UNK_8000000 = 0x8000000, - /* 0x10000000 */ MODE_UNK_10000000 = 0x10000000, // catch boomerang? - /* 0x20000000 */ MODE_UNK_20000000 = 0x20000000, - /* 0x40000000 */ MODE_UNK_40000000 = 0x40000000, - MODE_PLAYER_FLY = 0x70C52, - }; - - enum daAlink_PROC { - /* 0x000 */ PROC_PREACTION_UNEQUIP, - /* 0x001 */ PROC_SERVICE_WAIT, - /* 0x002 */ PROC_TIRED_WAIT, - /* 0x003 */ PROC_WAIT, - /* 0x004 */ PROC_MOVE, - /* 0x005 */ PROC_ATN_MOVE, - /* 0x006 */ PROC_ATN_ACTOR_WAIT, - /* 0x007 */ PROC_ATN_ACTOR_MOVE, - /* 0x008 */ PROC_WAIT_TURN, - /* 0x009 */ PROC_MOVE_TURN, - /* 0x00A */ PROC_SIDESTEP, - /* 0x00B */ PROC_SIDESTEP_LAND, - /* 0x00C */ PROC_SLIDE, - /* 0x00D */ PROC_SLIDE_LAND, - /* 0x00E */ PROC_FRONT_ROLL, - /* 0x00F */ PROC_FRONT_ROLL_CRASH, - /* 0x010 */ PROC_FRONT_ROLL_SUCCESS, - /* 0x011 */ PROC_SIDE_ROLL, - /* 0x012 */ PROC_BACK_JUMP, - /* 0x013 */ PROC_BACK_JUMP_LAND, - /* 0x014 */ PROC_SLIP, - /* 0x015 */ PROC_AUTO_JUMP, - /* 0x016 */ PROC_DIVE_JUMP, - /* 0x017 */ PROC_ROLL_JUMP, - /* 0x018 */ PROC_FALL, - /* 0x019 */ PROC_LAND, - /* 0x01A */ PROC_SMALL_JUMP, - /* 0x01B */ PROC_STEP_MOVE, - /* 0x01C */ PROC_CROUCH, - /* 0x01D */ PROC_GUARD_SLIP, - /* 0x01E */ PROC_GUARD_ATTACK, - /* 0x01F */ PROC_GUARD_BREAK, - /* 0x020 */ PROC_TURN_MOVE, - /* 0x021 */ PROC_CUT_NORMAL, - /* 0x022 */ PROC_CUT_FINISH, - /* 0x023 */ PROC_CUT_FINISH_JUMP_UP, - /* 0x024 */ PROC_CUT_FINISH_JUMP_UP_LAND, - /* 0x025 */ PROC_CUT_REVERSE, - /* 0x026 */ PROC_CUT_JUMP, - /* 0x027 */ PROC_CUT_JUMP_LAND, - /* 0x028 */ PROC_CUT_TURN, - /* 0x029 */ PROC_CUT_TURN_CHARGE, - /* 0x02A */ PROC_CUT_TURN_MOVE, - /* 0x02B */ PROC_CUT_DOWN, - /* 0x02C */ PROC_CUT_DOWN_LAND, - /* 0x02D */ PROC_CUT_HEAD, - /* 0x02E */ PROC_CUT_HEAD_LAND, - /* 0x02F */ PROC_CUT_LARGE_JUMP_CHARGE, - /* 0x030 */ PROC_CUT_LARGE_JUMP, - /* 0x031 */ PROC_CUT_LARGE_JUMP_LAND, - /* 0x032 */ PROC_DAMAGE, - /* 0x033 */ PROC_LARGE_DAMAGE_UP, - /* 0x034 */ PROC_LAND_DAMAGE, - /* 0x035 */ PROC_CRAWL_START, - /* 0x036 */ PROC_CRAWL_MOVE, - /* 0x037 */ PROC_CRAWL_AUTO_MOVE, - /* 0x038 */ PROC_CRAWL_END, - /* 0x039 */ PROC_PULL_MOVE, - /* 0x03A */ PROC_HORSE_RIDE, - /* 0x03B */ PROC_HORSE_GETOFF, - /* 0x03C */ PROC_HORSE_WAIT, - /* 0x03D */ PROC_HORSE_TURN, - /* 0x03E */ PROC_HORSE_JUMP, - /* 0x03F */ PROC_HORSE_LAND, - /* 0x040 */ PROC_HORSE_SUBJECTIVITY, - /* 0x041 */ PROC_HORSE_CUT, - /* 0x042 */ PROC_HORSE_CUT_CHARGE_READY, - /* 0x043 */ PROC_HORSE_CUT_TURN, - /* 0x044 */ PROC_HORSE_DAMAGE, - /* 0x045 */ PROC_HORSE_BOW_SUBJECT, - /* 0x046 */ PROC_HORSE_BOW_MOVE, - /* 0x047 */ PROC_HORSE_GRAB_MOVE, - /* 0x048 */ PROC_HORSE_BOOMERANG_SUBJECT, - /* 0x049 */ PROC_HORSE_BOOMERANG_MOVE, - /* 0x04A */ PROC_HORSE_HOOKSHOT_SUBJECT, - /* 0x04B */ PROC_HORSE_HOOKSHOT_MOVE, - /* 0x04C */ PROC_HORSE_BOTTLE_DRINK, - /* 0x04D */ PROC_HORSE_COMEBACK, - /* 0x04E */ PROC_HORSE_KANDELAAR_POUR, - /* 0x04F */ PROC_HORSE_RUN, - /* 0x050 */ PROC_HORSE_HANG, - /* 0x051 */ PROC_HORSE_GET_KEY, - /* 0x052 */ PROC_HORSE_LOOK_DOWN, - /* 0x053 */ PROC_BOAR_RUN, - /* 0x054 */ PROC_SWORD_UNEQUIP_SP, - /* 0x055 */ PROC_HANG_START, - /* 0x056 */ PROC_HANG_FALL_START, - /* 0x057 */ PROC_HANG_UP, - /* 0x058 */ PROC_HANG_WAIT, - /* 0x059 */ PROC_HANG_MOVE, - /* 0x05A */ PROC_HANG_CLIMB, - /* 0x05B */ PROC_HANG_WALL_CATCH, - /* 0x05C */ PROC_HANG_READY, - /* 0x05D */ PROC_HANG_LEVER_DOWN, - /* 0x05E */ PROC_BOW_SUBJECT, - /* 0x05F */ PROC_BOW_MOVE, - /* 0x060 */ PROC_BOOMERANG_SUBJECT, - /* 0x061 */ PROC_BOOMERANG_MOVE, - /* 0x062 */ PROC_BOOMERANG_CATCH, - /* 0x063 */ PROC_COPY_ROD_SUBJECT, - /* 0x064 */ PROC_COPY_ROD_MOVE, - /* 0x065 */ PROC_COPY_ROD_SWING, - /* 0x066 */ PROC_COPY_ROD_REVIVE, - /* 0x067 */ PROC_LADDER_UP_START, - /* 0x068 */ PROC_LADDER_UP_END, - /* 0x069 */ PROC_LADDER_DOWN_START, - /* 0x06A */ PROC_LADDER_DOWN_END, - /* 0x06B */ PROC_LADDER_MOVE, - /* 0x06C */ PROC_GRAB_READY, - /* 0x06D */ PROC_GRAB_UP, - /* 0x06E */ PROC_GRAB_MISS, - /* 0x06F */ PROC_GRAB_THROW, - /* 0x070 */ PROC_GRAB_PUT, - /* 0x071 */ PROC_GRAB_WAIT, - /* 0x072 */ PROC_GRAB_REBOUND, - /* 0x073 */ PROC_GRAB_STAND, - /* 0x074 */ PROC_INSECT_CATCH, - /* 0x075 */ PROC_PICK_UP, - /* 0x076 */ PROC_PICK_PUT, - /* 0x077 */ PROC_HUMAN_ST_ESCAPE, - /* 0x078 */ PROC_DK_CAUGHT, - /* 0x079 */ PROC_SWIM_UP, - /* 0x07A */ PROC_SWIM_WAIT, - /* 0x07B */ PROC_SWIM_MOVE, - /* 0x07C */ PROC_SWIM_DIVE, - /* 0x07D */ PROC_SWIM_HOOKSHOT_SUBJECT, - /* 0x07E */ PROC_SWIM_HOOKSHOT_MOVE, - /* 0x07F */ PROC_SWIM_DAMAGE, - /* 0x080 */ PROC_CLIMB_UP_START, - /* 0x081 */ PROC_CLIMB_DOWN_START, - /* 0x082 */ PROC_CLIMB_MOVE_UPDOWN, - /* 0x083 */ PROC_CLIMB_MOVE_SIDE, - /* 0x084 */ PROC_CLIMB_WAIT, - /* 0x085 */ PROC_CLIMB_TO_ROOF, - /* 0x086 */ PROC_ROOF_HANG_START, - /* 0x087 */ PROC_ROOF_HANG_WAIT, - /* 0x088 */ PROC_ROOF_HANG_FRONT_MOVE, - /* 0x089 */ PROC_ROOF_HANG_SIDE_MOVE, - /* 0x08A */ PROC_ROOF_HANG_TURN, - /* 0x08B */ PROC_ROOF_SWITCH_HANG, - /* 0x08C */ PROC_CANOE_RIDE, - /* 0x08D */ PROC_CANOE_JUMP_RIDE, - /* 0x08E */ PROC_CANOE_GETOFF, - /* 0x08F */ PROC_CANOE_WAIT, - /* 0x090 */ PROC_CANOE_ROW, - /* 0x091 */ PROC_CANOE_PADDLE_SHIFT, - /* 0x092 */ PROC_CANOE_PADDLE_PUT, - /* 0x093 */ PROC_CANOE_PADDLE_GRAB, - /* 0x094 */ PROC_CANOE_ROD_GRAB, - /* 0x095 */ PROC_CANOE_FISHING_WAIT, - /* 0x096 */ PROC_CANOE_FISHING_REEL, - /* 0x097 */ PROC_CANOE_FISHING_GET, - /* 0x098 */ PROC_CANOE_SUBJECTIVITY, - /* 0x099 */ PROC_CANOE_BOW_SUBJECT, - /* 0x09A */ PROC_CANOE_BOW_MOVE, - /* 0x09B */ PROC_CANOE_GRAB_MOVE, - /* 0x09C */ PROC_CANOE_BOOMERANG_SUBJECT, - /* 0x09D */ PROC_CANOE_BOOMERANG_MOVE, - /* 0x09E */ PROC_CANOE_HOOKSHOT_SUBJECT, - /* 0x09F */ PROC_CANOE_HOOKSHOT_MOVE, - /* 0x0A0 */ PROC_CANOE_BOTTLE_DRINK, - /* 0x0A1 */ PROC_CANOE_KANDELAAR_POUR, - /* 0x0A2 */ PROC_FISHING_CAST, - /* 0x0A3 */ PROC_FISHING_FOOD, - /* 0x0A4 */ PROC_SPINNER_READY, - /* 0x0A5 */ PROC_SPINNER_WAIT, - /* 0x0A6 */ PROC_BOARD_RIDE, - /* 0x0A7 */ PROC_BOARD_WAIT, - /* 0x0A8 */ PROC_BOARD_ROW, - /* 0x0A9 */ PROC_BOARD_TURN, - /* 0x0AA */ PROC_BOARD_JUMP, - /* 0x0AB */ PROC_BOARD_SUBJECTIVITY, - /* 0x0AC */ PROC_BOARD_CUT, - /* 0x0AD */ PROC_BOARD_CUT_TURN, - /* 0x0AE */ PROC_CHAIN_UP, - /* 0x0AF */ PROC_CHAIN_STRONG_PULL, - /* 0x0B0 */ PROC_DOOR_OPEN, - /* 0x0B1 */ PROC_MONKEY_MOVE, - /* 0x0B2 */ PROC_DEMO_BOOMERANG_CATCH, - /* 0x0B3 */ PROC_BOTTLE_DRINK, - /* 0x0B4 */ PROC_BOTTLE_OPEN, - /* 0x0B5 */ PROC_BOTTLE_SWING, - /* 0x0B6 */ PROC_BOTTLE_GET, - /* 0x0B7 */ PROC_KANDELAAR_SWING, - /* 0x0B8 */ PROC_KANDELAAR_POUR, - /* 0x0B9 */ PROC_GRASS_WHISTLE_GET, - /* 0x0BA */ PROC_GRASS_WHISTLE_WAIT, - /* 0x0BB */ PROC_HAWK_CATCH, - /* 0x0BC */ PROC_HAWK_SUBJECT, - /* 0x0BD */ PROC_FLOOR_DOWN_REBOUND, - /* 0x0BE */ PROC_GORON_RIDE_WAIT, - /* 0x0BF */ PROC_GOAT_MOVE, - /* 0x0C0 */ PROC_GOAT_CATCH, - /* 0x0C1 */ PROC_GOAT_STROKE, - /* 0x0C2 */ PROC_GORON_MOVE, - /* 0x0C3 */ PROC_BOSS_ATN_WAIT, - /* 0x0C4 */ PROC_HOOKSHOT_SUBJECT, - /* 0x0C5 */ PROC_HOOKSHOT_MOVE, - /* 0x0C6 */ PROC_HOOKSHOT_FLY, - /* 0x0C7 */ PROC_HOOKSHOT_ROOF_WAIT, - /* 0x0C8 */ PROC_HOOKSHOT_ROOF_SHOOT, - /* 0x0C9 */ PROC_HOOKSHOT_ROOF_BOOTS, - /* 0x0CA */ PROC_HOOKSHOT_WALL_WAIT, - /* 0x0CB */ PROC_HOOKSHOT_WALL_SHOOT, - /* 0x0CC */ PROC_MAGNE_BOOTS_FLY, - /* 0x0CD */ PROC_BOOTS_EQUIP, - /* 0x0CE */ PROC_SUMOU_READY, - /* 0x0CF */ PROC_SUMOU_MOVE, - /* 0x0D0 */ PROC_SUMOU_SIDE_MOVE, - /* 0x0D1 */ PROC_SUMOU_ACTION, - /* 0x0D2 */ PROC_SUMOU_STAGGER, - /* 0x0D3 */ PROC_SUMOU_WIN_LOSE, - /* 0x0D4 */ PROC_SUMOU_SHIKO, - /* 0x0D5 */ PROC_LOOK_UP, - /* 0x0D6 */ PROC_LOOK_UP_TO_GET_ITEM, - /* 0x0D7 */ PROC_HAND_PAT, - /* 0x0D8 */ PROC_IRON_BALL_SUBJECT, - /* 0x0D9 */ PROC_IRON_BALL_MOVE, - /* 0x0DA */ PROC_IRON_BALL_THROW, - /* 0x0DB */ PROC_IRON_BALL_RETURN, - /* 0x0DC */ PROC_BOSS_BODY_HANG, - /* 0x0DD */ PROC_OCTAIEAL_SPIT, - /* 0x0DE */ PROC_SCREAM_WAIT, - /* 0x0DF */ PROC_GOAT_STOP_READY, - /* 0x0E0 */ PROC_ZORA_MOVE, - /* 0x0E1 */ PROC_LOOK_AROUND_TURN, - /* 0x0E2 */ PROC_TRADE_ITEM_OUT, - /* 0x0E3 */ PROC_NOT_USE_ITEM, - /* 0x0E4 */ PROC_SWORD_READY, - /* 0x0E5 */ PROC_SWORD_PUSH, - /* 0x0E6 */ PROC_GANON_FINISH, - /* 0x0E7 */ PROC_CUT_FAST_READY, - /* 0x0E8 */ PROC_MASTER_SWORD_STICK, - /* 0x0E9 */ PROC_MASTER_SWORD_PULL, - /* 0x0EA */ PROC_DUNGEON_WARP_READY, - /* 0x0EB */ PROC_DUNGEON_WARP, - /* 0x0EC */ PROC_DUNGEON_WARP_SCN_START, - /* 0x0ED */ PROC_WOLF_HOWL_DEMO, - /* 0x0EE */ PROC_WOLF_SERVICE_WAIT, - /* 0x0EF */ PROC_WOLF_TIRED_WAIT, - /* 0x0F0 */ PROC_WOLF_MIDNA_RIDE_SHOCK, - /* 0x0F1 */ PROC_WOLF_WAIT, - /* 0x0F2 */ PROC_WOLF_MOVE, - /* 0x0F3 */ PROC_WOLF_DASH, - /* 0x0F4 */ PROC_WOLF_DASH_REVERSE, - /* 0x0F5 */ PROC_WOLF_WAIT_TURN, - /* 0x0F6 */ PROC_WOLF_ATN_AC_MOVE, - /* 0x0F7 */ PROC_WOLF_SIDESTEP, - /* 0x0F8 */ PROC_WOLF_SIDESTEP_LAND, - /* 0x0F9 */ PROC_WOLF_BACKJUMP, - /* 0x0FA */ PROC_WOLF_BACKJUMP_LAND, - /* 0x0FB */ PROC_WOLF_HOWL, - /* 0x0FC */ PROC_WOLF_AUTO_JUMP, - /* 0x0FD */ PROC_WOLF_FALL, - /* 0x0FE */ PROC_WOLF_LAND, - /* 0x0FF */ PROC_WOLF_SIT, - /* 0x100 */ PROC_WOLF_LIE_START, - /* 0x101 */ PROC_WOLF_LIE_MOVE, - /* 0x102 */ PROC_WOLF_LIE_AUTO_MOVE, - /* 0x103 */ PROC_WOLF_HANG_READY, - /* 0x104 */ PROC_WOLF_STEP_MOVE, - /* 0x105 */ PROC_WOLF_HANG_WALL_CATCH, - /* 0x106 */ PROC_WOLF_HANG_FALL_START, - /* 0x107 */ PROC_WOLF_DAMAGE, - /* 0x108 */ PROC_WOLF_LARGE_DAMAGE_UP, - /* 0x109 */ PROC_WOLF_LAND_DAMAGE, - /* 0x10A */ PROC_WOLF_SCREAM_WAIT, - /* 0x10B */ PROC_WOLF_SLIP, - /* 0x10C */ PROC_WOLF_SLIP_TURN, - /* 0x10D */ PROC_WOLF_SLIP_TURN_LAND, - /* 0x10E */ PROC_WOLF_SLIDE_READY, - /* 0x10F */ PROC_WOLF_SLIDE, - /* 0x110 */ PROC_WOLF_SLIDE_LAND, - /* 0x111 */ PROC_WOLF_WAIT_SLIP, - /* 0x112 */ PROC_WOLF_SLOPE_START, - /* 0x113 */ PROC_WOLF_ROPE_MOVE, - /* 0x114 */ PROC_WOLF_ROPE_HANG, - /* 0x115 */ PROC_WOLF_ROPE_TURN, - /* 0x116 */ PROC_WOLF_ROPE_STAGGER, - /* 0x117 */ PROC_WOLF_ROPE_SUBJECTIVITY, - /* 0x118 */ PROC_WOLF_TAG_JUMP, - /* 0x119 */ PROC_WOLF_TAG_JUMP_LAND, - /* 0x11A */ PROC_WOLF_ROLL_ATTACK_CHARGE, - /* 0x11B */ PROC_WOLF_ROLL_ATTACK_MOVE, - /* 0x11C */ PROC_WOLF_JUMP_ATTACK, - /* 0x11D */ PROC_WOLF_JUMP_AT_KICK, - /* 0x11E */ PROC_WOLF_JUMP_AT_SLIDE_LAND, - /* 0x11F */ PROC_WOLF_JUMP_AT_NORMAL_LAND, - /* 0x120 */ PROC_WOLF_WAIT_ATTACK, - /* 0x121 */ PROC_WOLF_ROLL_ATTACK, - /* 0x122 */ PROC_WOLF_DOWN_ATTACK, - /* 0x123 */ PROC_WOLF_DOWN_AT_LAND, - /* 0x124 */ PROC_WOLF_DOWN_AT_MISS_LAND, - /* 0x125 */ PROC_WOLF_LOCK_ATTACK, - /* 0x126 */ PROC_WOLF_LOCK_ATTACK_TURN, - /* 0x127 */ PROC_WOLF_SWIM_UP, - /* 0x128 */ PROC_WOLF_SWIM_WAIT, - /* 0x129 */ PROC_WOLF_SWIM_MOVE, - /* 0x12A */ PROC_WOLF_SWIM_END_WAIT, - /* 0x12B */ PROC_WOLF_GRAB_UP, - /* 0x12C */ PROC_WOLF_GRAB_PUT, - /* 0x12D */ PROC_WOLF_GRAB_THROW, - /* 0x12E */ PROC_WOLF_CHAIN_UP, - /* 0x12F */ PROC_WOLF_PUSH, - /* 0x130 */ PROC_WOLF_CHAIN_READY, - /* 0x131 */ PROC_WOLF_CHAIN_WAIT, - /* 0x132 */ PROC_WOLF_DIG, - /* 0x133 */ PROC_WOLF_DIG_THROUGH, - /* 0x134 */ PROC_WOLF_ATTACK_REVERSE, - /* 0x135 */ PROC_WOLF_ENEMY_THROW, - /* 0x136 */ PROC_WOLF_ENEMY_HANG_BITE, - /* 0x137 */ PROC_WOLF_GIANT_PUZZLE, - /* 0x138 */ PROC_WOLF_CARGO_CARRY, - /* 0x139 */ PROC_WOLF_GET_SMELL, - /* 0x13A */ PROC_WOLF_SMELL_WAIT, - /* 0x13B */ PROC_WOLF_SNOW_ESCAPE, - /* 0x13C */ PROC_WOLF_GANON_CATCH, - /* 0x13D */ PROC_TOOL_DEMO, - /* 0x13E */ PROC_SUBJECTIVITY, - /* 0x13F */ PROC_SWIM_SUBJECTIVITY, - /* 0x140 */ PROC_PEEP_SUBJECTIVITY, - /* 0x141 */ PROC_POLY_DAMAGE, - /* 0x142 */ PROC_ELEC_DAMAGE, - /* 0x143 */ PROC_PUSH_PULL_WAIT, - /* 0x144 */ PROC_PUSH_MOVE, - /* 0x145 */ PROC_TALK, - /* 0x146 */ PROC_OPEN_TREASURE, - /* 0x147 */ PROC_UNEQUIP, - /* 0x148 */ PROC_GET_ITEM, - /* 0x149 */ PROC_TURN_BACK, - /* 0x14A */ PROC_LOOK_WAIT, - /* 0x14B */ PROC_DEMO_PUSH_PULL_WAIT, - /* 0x14C */ PROC_DEMO_PUSH_MOVE, - /* 0x14D */ PROC_METAMORPHOSE, - /* 0x14E */ PROC_METAMORPHOSE_ONLY, - /* 0x14F */ PROC_WARP, - /* 0x150 */ PROC_DEAD, - /* 0x151 */ PROC_FOG_DEAD, - /* 0x152 */ PROC_LOOK_AROUND, - /* 0x153 */ PROC_CAUGHT, - /* 0x154 */ PROC_SAND_WALL_HIT, - /* 0x155 */ PROC_LAVA_RETURN, - /* 0x156 */ PROC_SWIM_FREEZE_RETURN, - /* 0x157 */ PROC_GET_READY_SIT, - /* 0x158 */ PROC_TW_GATE, - /* 0x159 */ PROC_LARGE_DAMAGE, - /* 0x15A */ PROC_LARGE_DAMAGE_WALL, - /* 0x15B */ PROC_NOD, - /* 0x15C */ PROC_EYE_AWAY, - /* 0x15D */ PROC_GLARE, - /* 0x15E */ PROC_HORSE_CALL_WAIT, - /* 0x15F */ PROC_QUAKE_WAIT, - - PROC_MAX, - }; - - enum daAlink_ITEM_BTN { - /* 0x01 */ BTN_X = (1 << 0), - /* 0x02 */ BTN_Y = (1 << 1), - /* 0x04 */ BTN_Z = (1 << 2), - /* 0x08 */ BTN_B = (1 << 3), - /* 0x10 */ BTN_A = (1 << 4), - /* 0x20 */ BTN_L = (1 << 5), - /* 0x40 */ BTN_R = (1 << 6), - }; - - /** - * Moving direction calculated from an angle - */ - enum daAlink_DIR { - /* 0x0 */ DIR_FORWARD, - /* 0x1 */ DIR_BACKWARD, - /* 0x2 */ DIR_LEFT, - /* 0x3 */ DIR_RIGHT, - /* 0x4 */ DIR_NONE, - }; - - enum daAlink_EFFPROC { - EFFPROC_FRONT_ROLL, - EFFPROC_SLIP, - EFFPROC_SMALL_LAND, - EFFPROC_RUN, - EFFPROC_LAND, - EFFPROC_SUMOU, - EFFPROC_NONE, - }; - - enum daAlink_RIDETYPE { - RIDETYPE_HORSE = 1, - RIDETYPE_BOAR, - RIDETYPE_CANOE, - RIDETYPE_BOARD, - RIDETYPE_SPINNER, - }; - - class firePointEff_c { - public: - /* 0x00 */ u8 field_0x0; - /* 0x02 */ u16 field_0x2; - /* 0x04 */ u32 field_0x4; - /* 0x08 */ u32 field_0x8; - /* 0x0C */ cXyz field_0xc; - /* 0x18 */ cXyz field_0x18; - /* 0x24 */ cXyz field_0x24; - }; - - class hsChainShape_c : public J3DPacket { - public: - hsChainShape_c() {} - virtual void draw(); - virtual ~hsChainShape_c() {} - }; // Size: 0x10 - - static BOOL getE3Zhint(); - static const char* getAlinkArcName(); - static bool checkStageName(char const* i_stageName); - void tgHitCallback(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_tgObjInf, dCcD_GObjInf* i_atObjInf); - void coHitCallback(fopAc_ac_c* i_coHitActor, dCcD_GObjInf* i_coHitObj); - void setMatrixWorldAxisRot(MtxP i_mtx, s16 i_rotX, s16 i_rotY, s16 i_rotZ, BOOL, cXyz const*); - int jointControll(int i_jointNo); - void setUpperFront(); - void changeBlendRate(int i_jointNo); - void resetRootMtx(); - bool modelCallBack(int i_jointNo); - int headModelCallBack(int i_jointNo); - int wolfModelCallBack(int i_jointNo); - void setHatAngle(); - void calcHairAngle(s16* o_angle); - void setHairAngle(cXyz*, f32, f32); - void setLookPosFromOut(cXyz* i_pos); - bool checkAttentionPosAngle(cXyz*); - bool checkActorPosAngle(fopAc_ac_c* i_actor, cXyz** o_ppos); - cXyz* getNeckAimPos(cXyz*, int*, int); - s16 getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*); - void setEyeMove(cXyz*, s16, s16); - void setNeckAngle(); - bool commonLineCheck(cXyz* i_startPos, cXyz* i_endPos); - static s16 getMoveBGActorName(cBgS_PolyInfo& i_polyinf, BOOL i_forceCheck); - fopAc_ac_c* checkGoronRide(); - void setMoveSlantAngle(); - int setArmMatrix(); - int setFootMatrix(); - void setMatrixOffset(f32*, f32); - int setLegAngle(f32, daAlink_footData_c*, s16*, s16*, int); - void footBgCheck(); - void handBgCheck(); - JKRHeap* setItemHeap(); - void setIdxMask(u16* o_arcNo, u16* o_resIdx); - J3DAnmTransform* getAnimeResource(daPy_anmHeap_c* i_anmHeap, u16 i_resIdx, u32 i_bufSize); - J3DModel* initModel(J3DModelData* i_modelData, u32 i_mdlFlags, u32 i_diffFlags); - J3DModel* initModel(u16 i_resIdx, u32 i_diffFlags); - J3DModel* initModelEnv(u16 i_resIdx, u32 i_diffFlags); - int initDemoModel(J3DModel** i_ppmodel, char const* i_resName, u32 i_diffFlags); - static int initDemoBck(mDoExt_bckAnm** i_ppbck, char const* i_resName); - int createHeap(); - void setSelectEquipItem(BOOL); - BOOL checkBoarStart(); - BOOL checkCanoeStart(); - void playerInit(); - BOOL checkHorseStart(u32 i_lastMode, int i_startMode); - int setStartProcInit(); - int create(); - int setRoomInfo(); - void setShapeAngleOnGround(); - void setStepsOffset(); - void iceSlipBgCheck(); - void setIceSlipSpeed(); - void setPolygonSpeed(); - bool checkWindSpeedOnAngle() const; - bool checkWindSpeedOnAngleAnime(int) const; - bool checkDashAnime() const; - f32 checkWindWallRate(cXyz const&); - void setWindSpeed(); - void setBodyPartPos(); - void setAttentionPos(); - void setMatrix(); - static int simpleAnmPlay(J3DAnmBase* i_anm); - void setSwordPos(); - void setItemMatrix(int); - void setWolfItemMatrix(); - void setHandIndex(daAlink_c::daAlink_ANM); - void setSwordAtCollision(int); - BOOL checkNoCollisionCorret(); - void decSwordBlur(); - void resetWolfAtCollision(); - void setWolfAtCollision(); - void resetAtCollision(int); - void setAtCollision(); - void setWolfCollisionPos(); - void initLockAt(); - void cancelLockAt(); - void setCollisionPos(); - void setCollision(); - void setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s16 i_end, - f32 i_rate, f32 i_frame); - const daAlink_BckData* getMainBckData(daAlink_c::daAlink_ANM i_anmID) const; - BOOL checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; - BOOL checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; - int getUnderUpperAnime(daAlink_c::daAlink_ANM i_anmID, J3DAnmTransform** i_underBck, - J3DAnmTransform** i_upperBck, int i_anmPackID, u32 i_bufSize); - void setDoubleAnimeBlendRatio(f32 i_ratio); - void commonDoubleAnime(J3DAnmTransform* i_underBck1, J3DAnmTransform* i_upperBck1, - J3DAnmTransform* i_underBck2, J3DAnmTransform* i_upperBck2, - f32 i_blendRatio, f32 i_anmSpeed1, f32 i_anmSpeed2, int); - int setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, - daAlink_c::daAlink_ANM i_anmA, daAlink_c::daAlink_ANM i_anmB, - int param_5, f32 i_morf); - void commonSingleAnime(J3DAnmTransform* i_underBck, J3DAnmTransform* i_upperBck, - f32 i_speed, f32 i_startF, s16 i_endF); - int setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID); - int setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 i_morf); - int setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_morf); - int setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_startF, s16 i_endF, - f32 i_morf); - int setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, const daAlinkHIO_anm_c* i_anmParams); - void animePlay(J3DAnmTransform* i_anm, daPy_frameCtrl_c* i_frameCtrl); - void allAnimePlay(); - void setUpperAnimeMorf(f32 i_morf); - void setUpperAnimeBase(u16 i_anmResIdx); - void setUpperAnimeBaseMorf(u16 i_anmResIdx, f32 i_morf); - void setUpperAnimeBaseSpeed(u16 i_anmResIdx, f32 i_speed, f32 i_morf); - int setUpperAnime(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, f32 i_speed, - f32 i_startFrame, s16 i_endFrame, f32 i_morf); - void setUpperAnimeParam(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, - const daAlinkHIO_anm_c* i_anmParam); - int resetUpperAnime(daAlink_c::daAlink_UPPER i_upperIdx, f32 i_morf); - void setUnderAnimeMorf(f32 i_morf); - int setUnderAnime(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, f32 i_speed, - f32 i_startF, s16 i_endF, f32 i_morf); - int setUnderAnimeParam(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, - const daAlinkHIO_anm_c* i_anmParam); - int resetUnderAnime(daAlink_c::daAlink_UNDER i_underIdx, f32 i_morf); - void setOldRootQuaternion(s16, s16, s16); - BOOL checkAtnLeftAnime(); - BOOL checkAtnRightAnime(); - f32 getMoveGroundAngleSpeedRate(); - void setBlendMoveAnime(f32 i_morf); - void setBlendAtnMoveAnime(f32 i_morf); - void setBlendAtnBackMoveAnime(f32 i_morf); - void setFaceBck(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); - void setFaceBtp(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); - void setFaceBtk(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); - daAlink_FTANM setFaceBasicTexture(daAlink_c::daAlink_FTANM i_ftanm); - void setFaceBasicAnime(daAlink_c::daAlink_ANM i_anm); - void setFacePriTexture(daAlink_c::daAlink_FTANM i_ftanm); - void setFacePriAnime(daAlink_c::daAlink_ANM i_anm); - void resetFacePriBck(); - void resetFacePriBtp(); - void resetFacePriBtk(); - void resetFacePriTexture(); - void resetFacePriAnime(); - void playFaceTextureAnime(); - s16 getGroundAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); - s16 getRoofAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); - BOOL getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz* o_outVec, int); - void setFrontWallType(); - BOOL checkWaterPolygonUnder(); - void setWaterY(); - void setHangWaterY(); - void setSandDownBgCheckWallH(); - void setBgCheckParam(); - BOOL checkNotJumpSinkLimit(); - BOOL checkNotItemSinkLimit(); - void setSandShapeOffset(); - bool checkLv2MiddleBossBgRide(s16 i_procName); - bool getSlidePolygon(cM3dGPla* o_tripla); - BOOL checkSlope() const; - BOOL itemTriggerCheck(u8 i_btnFlag); - BOOL itemButtonCheck(u8 i_btnFlag); - BOOL itemButton(); - BOOL itemTrigger(); - BOOL spActionButton(); - BOOL spActionTrigger(); - BOOL midnaTalkTrigger() const; - BOOL swordSwingTrigger(); - void setItemActionButtonStatus(u8 i_status); - BOOL itemActionTrigger(); - void setStickData(); - void setAtnList(); - void setRStatus(u8 i_status); - void setRStatusEmphasys(u8 i_status); - void setDoStatus(u8 i_status); - void setDoStatusEmphasys(u8 i_status); - void setDoStatusContinuation(u8 i_status); - void setBStatus(u8 i_status); - BOOL checkAtnWaitAnime(); - void setTiredVoice(daPy_frameCtrl_c* i_frameCtrl); - BOOL checkRestHPAnime(); - static int getDirectionFromAngle(s16 i_angle); - bool checkAttentionState(); - s16 getShapeAngleYAtnActor(); - bool setShapeAngleToAtnActor(int); - void initServiceWaitTime(); - bool checkZeroSpeedF() const; - void setNormalSpeedF(f32 i_speed, f32 i_deceleration); - f32 getStickAngleDistanceRate(); - void setSpeedAndAngleNormal(); - void setSpeedAndAngleAtn(); - int checkRequestTalkActor(dAttList_c* i_attList, fopAc_ac_c* i_actor); - bool checkServiceWaitMode(); - void setJumpMode(); - f32 getMetamorphoseNearDis() const; - f32 getMetamorphoseFarDis() const; - s16 getMetamorphoseFarAngle() const; - void setMidnaMsg(); - BOOL notTalk(); - BOOL setTalkStatus(); - f32 getFrontRollRate(); - void decideCommonDoStatus(); - void decideDoStatus(); - BOOL checkWaitAction(); - void setFallVoice(); - void setLandPassiveData(); - void setStepLandVibration(); - BOOL checkLandAction(int); - BOOL checkSlideAction(); - BOOL checkAutoJumpAction(); - BOOL checkCutJumpInFly(); - BOOL checkFrontWallTypeAction(); - int checkItemActionInitStart(); - int checkItemChangeAutoAction(); - void setFastShotTimer(); - void cancelItemUseQuake(int); - int cancelUpperItemReadyAnime(int); - BOOL checkItemActorPointer(); - bool checkSwordTwirlAction(); - BOOL checkUpperItemActionFly(); - void checkItemButtonChange(); - BOOL checkUpperItemAction(); - void orderPeep(); - int orderTalk(int); - int orderZTalk(); - int checkNormalAction(); - bool checkReadyItem(); - BOOL checkItemAction(); - BOOL checkRAction(); - BOOL checkMoveDoAction(); - BOOL checkSideRollAction(int); - BOOL checkNoUpperAnime() const; - BOOL checkOneHandItemEquipAnime() const; - BOOL checkItemEquipAnime() const; - BOOL checkEquipAnime() const; - BOOL checkWindDashAnime() const; - BOOL checkSwordTwirlAnime() const; - void swordEquip(int); - void swordUnequip(); - void itemEquip(u16 i_itemID); - void itemUnequip(u16 i_itemID, f32 i_playSpeed); - bool checkFastUnequip(); - void allUnequip(int); - BOOL checkItemChangeFromButton(); - BOOL checkNextActionFromButton(); - BOOL checkGroundSpecialMode(); - int commonCheckNextAction(int); - int checkNextAction(int); - void commonChangeItem(); - void setItemAction(); - BOOL checkNextActionFromCrouch(int); - int checkUpperReadyThrowAnime() const; - void getBodyAngleXBasePos(cXyz* o_pos); - s16 getBodyAngleXAtnActor(int); - void setBodyAngleXReadyAnime(int); - void setMagicArmorBrk(int i_status); - BOOL checkMagicArmorHeavy() const; - BOOL checkHeavyStateOn(BOOL, BOOL); - void initGravity(); - void setSpecialGravity(f32 i_gravity, f32 i_speed, BOOL i_isOffFlag); - void transAnimeProc(cXyz*, f32, f32); - void setFootSpeed(); - void posMove(); - void autoGroundHit(); - bool startPeepChange(); - void setLastSceneDamage(int i_dmgAmount, u32* o_mode); - void setLastSceneMode(u32*); - int startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, BOOL i_isEventRun); - BOOL checkCoachGuardGame(); - void checkRoofRestart(); - BOOL checkRestartRoom(); - s16 getSceneExitMoveAngle(); - int checkSceneChange(int i_exitID); - void voiceStartLevel(u32 i_soundID); - void seStartSwordCut(u32 i_soundID); - void seStartMapInfo(u32 i_soundID); - void seStartMapInfoLevel(u32 i_soundID); - void setBasAnime(daAlink_c::daAlink_UNDER i_underIdx); - void initBasAnime(); - void resetBasAnime(); - BOOL checkSightLine(f32 i_maxDist, cXyz* o_sightPos); - void setMetamorphoseModel(BOOL i_isChangeToWolf); - void keepItemData(); - void returnKeepItemData(); - BOOL setItemModel(); - BOOL setItemActor(); - void makeItemType(); - BOOL checkZoraWearAbility() const; - BOOL checkMagicArmorWearAbility() const; - J3DModelData* loadAramBmd(u16 i_resIdx, u32 i_bufSize); - void* loadAram(u16 i_resIdx, u32 i_bufSize); - J3DAnmTevRegKey* loadAramItemBrk(u16 i_resIdx, J3DModel* i_model); - J3DAnmTextureSRTKey* loadAramItemBtk(u16 i_resIdx, J3DModel* i_model); - J3DAnmTexPattern* loadAramItemBtp(u16 i_resIdx, J3DModel* i_model); - void changeItemBck(u16 i_resIdx, f32); - BOOL checkGroupItem(int i_itemNo, int i_selItem) const; - int checkSetItemTrigger(int i_itemNo); - int checkItemSetButton(int i_itemNo); - static bool checkField(); - static bool checkBossRoom(); - static bool checkDungeon(); - static bool checkCastleTown(); - static bool checkCloudSea(); - static bool checkRoomOnly(); - static bool checkLv2DungeonRoomSpecial(); - static bool checkRoomSpecial(); - static bool checkRoom(); - static bool checkNotBattleStage(); - static bool checkNotHeavyBootsStage(); - static bool checkNotAutoJumpStage(); - static bool checkCastleTownUseItem(u16 i_itemNo); - int changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType); - int checkNewItemChange(u8 i_selItemIdx); - void deleteEquipItem(BOOL i_isPlaySound, BOOL i_isDeleteKantera); - void setLight(); - void setFrontRollCrashShock(u8); - void changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE i_matMode); - void commonProcInit(daAlink_c::daAlink_PROC i_procID); - BOOL commonProcInitNotSameProc(daAlink_PROC i_procID); - int procPreActionUnequipInit(int i_procAfter, fopAc_ac_c*); - int procPreActionUnequip(); - int procServiceWaitInit(); - int procServiceWait(); - int procTiredWaitInit(); - int procTiredWait(); - int procWaitInit(); - int procWait(); - int procMoveInit(); - int procMove(); - int procAtnMoveInit(); - int procAtnMove(); - int procAtnActorWaitInit(); - int procAtnActorWait(); - int procAtnActorMoveInit(); - int procAtnActorMove(); - int procWaitTurnInit(); - int procWaitTurn(); - int procMoveTurnInit(int); - int procMoveTurn(); - int procSideStepInit(int i_jumpDirection); - int procSideStep(); - int procSideStepLandInit(); - int procSideStepLand(); - int procSlideInit(s16); - int procSlide(); - int procSlideLandInit(int); - int procSlideLand(); - int procFrontRollInit(); - int procFrontRoll(); - int procFrontRollCrashInit(); - int procFrontRollCrash(); - int procFrontRollSuccessInit(); - int procFrontRollSuccess(); - int procSideRollInit(int); - int procSideRoll(); - void backJumpSpeedDec(); - int procBackJumpInit(int); - int procBackJump(); - int procBackJumpLandInit(int); - int procBackJumpLand(); - int procSlipInit(); - int procSlip(); - int procAutoJumpInit(int); - int procAutoJump(); - int procDiveJumpInit(); - int procDiveJump(); - int procRollJumpInit(); - int procRollJump(); - int procFallInit(int, f32 i_morf); - int procFall(); - int procLandInit(f32); - int procLand(); - int procSmallJumpInit(int); - int procSmallJump(); - int procStepMoveInit(); - int procStepMove(); - int procCrouchInit(); - int procCrouch(); - int procCoMetamorphoseInit(); - int procCoMetamorphose(); - int procCoMetamorphoseOnlyInit(); - int procCoMetamorphoseOnly(); - int procFloorDownReboundInit(); - int procFloorDownRebound(); - int procGoronRideWaitInit(fopAc_ac_c* i_goronActor); - int procGoronRideWait(); - int execute(); - void setDrawHand(); - bool checkSwordDraw(); - bool checkShieldDraw(); - bool checkItemDraw(); - int initShadowScaleLight(); - int moveShadowScaleLight(); - void shadowDraw(); - void modelCalc(J3DModel* i_model); - void basicModelDraw(J3DModel* i_model); - void modelDraw(J3DModel*, int); - void setWaterDropColor(J3DGXColorS10 const*); - void initTevCustomColor(); - int draw(); - ~daAlink_c(); - bool checkNoSubjectModeCamera(); - bool acceptSubjectModeChange(); - int checkSubjectAction(); - s16 checkBodyAngleX(s16 i_angle); - BOOL setBodyAngleToCamera(); - void setSubjectMode(); - BOOL subjectCancelTrigger(); - BOOL checkSubjectEnd(BOOL i_isPlaySe); - void searchPeepObj(fopAc_ac_c* i_actor, void* i_data); - int procCoSubjectivityInit(); - int procCoSubjectivity(); - int procCoSwimSubjectivityInit(); - int procCoSwimSubjectivity(); - int procCoPeepSubjectivityInit(); - int procCoPeepSubjectivity(); - daAlink_c(); - BOOL checkWolfEnemyThrowAnime() const { - return checkUpperAnime(0x2BD) || checkUpperAnime(0x2BE); - } - void setMidnaTalkStatus(u8 status) { dComIfGp_setZStatus(status, 0); } - void set3DStatus(u8 status, u8 direction) { - dComIfGp_set3DStatus(status, direction, 0); - } - void checkCutTurnCharge(); - void checkLightSwordMtrl(); - BOOL checkSwordEquipAnime() const; - BOOL checkCutDashAnime() const; - BOOL checkCutDashEnemyHit(dCcD_GObjInf&); - static u32 getSwordAtType(); - void initCutTurnAt(f32, int); - bool checkCutFinishJumpUp(); - void changeCutFast(); - bool checkCutFastReady(); - void setSwordModel(); - void offSwordModel(); - BOOL checkCutTypeNoBlur() const; - bool checkCutTurnInput() const; - int getCutTurnDirection() const; - void resetCombo(int i_resetRunCut); - void checkComboCnt(); - void setCutType(u8 i_type); - void setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, - f32 i_radius, f32 i_height); - void setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, - f32 param_4, f32 i_radius); - static BOOL notSwordHitVibActor(fopAc_ac_c* i_actor); - BOOL setSwordHitVibration(dCcD_GObjInf* i_gobj); - BOOL checkAtShieldHit(dCcD_GObjInf& i_gobj); - BOOL checkCutReverseAt(dCcD_GObjInf* i_gobj); - BOOL changeCutReverseProc(daAlink_c::daAlink_ANM i_anmID); - void setCutDash(int, int); - BOOL checkForceSwordSwing(); - void setComboReserb(); - BOOL checkComboReserb(); - int commonCutAction(); - void setSwordVoiceSe(u32 i_seID); - void setSwordChargeVoiceSe(); - void setSwordComboVoice(); - bool checkCutTurnInputTrigger(); - int checkCutAction(); - int getCutDirection(); - BOOL checkCutCancelNextMode(int); - BOOL checkDoCutAction(); - BOOL checkCutBackState(); - BOOL checkCutHeadState(); - BOOL checkDownAttackState(); - BOOL checkCutLargeTurnState() const; - void cancelCutCharge(); - void initCutAtnActorSearch(); - void checkCutAtnActorChange(); - void setCutJumpSpeed(BOOL i_isAirCut); - int procCutNormalInit(int i_type); - int procCutNormal(); - int procCutFinishInit(int i_type); - int procCutFinish(); - int procCutFinishJumpUpInit(); - int procCutFinishJumpUp(); - int procCutFinishJumpUpLandInit(); - int procCutFinishJumpUpLand(); - int procCutReverseInit(daAlink_c::daAlink_ANM i_anmID); - int procCutReverse(); - int procCutJumpInit(BOOL i_isAirCut); - int procCutJump(); - int procCutJumpLandInit(int); - int procCutJumpLand(); - int procCutTurnInit(int, int); - int procCutTurn(); - int procCutTurnChargeInit(); - int procCutTurnCharge(); - int procCutTurnMoveInit(int); - int procCutTurnMove(); - int procCutDownInit(); - int procCutDown(); - int procCutDownLandInit(fopEn_enemy_c* i_enemy); - int procCutDownLand(); - int procCutHeadInit(); - int procCutHead(); - int procCutHeadLandInit(); - int procCutHeadLand(); - int procCutLargeJumpChargeInit(); - int procCutLargeJumpCharge(); - int procCutLargeJumpInit(); - int procCutLargeJump(); - int procCutLargeJumpLandInit(int); - int procCutLargeJumpLand(); - int procSwordUnequipSpInit(); - int procSwordUnequipSp(); - s16 getFreezeR() const; - s16 getFreezeG() const; - s16 getFreezeB() const; - bool checkMiddleBossGoronRoom(); - void freezeTimerDamage(); - BOOL checkNoLandDamageSlidePolygon(); - void checkCutLandDamage(); - BOOL checkCaughtEscapeCutTurn(); - f32 damageMagnification(BOOL i_checkZoraMag, int); - int setDamagePoint(int i_dmgAmount, BOOL i_checkZoraMag, BOOL i_setDmgTimer, int); - int setDamagePointNormal(int i_dmgAmount); - int setLandDamagePoint(int i_dmgAmount); - cXyz* getDamageVec(dCcD_GObjInf*); - void setDashDamage(); - static BOOL checkIcePolygonDamage(cBgS_PolyInfo*); - BOOL checkMagicArmorNoDamage(); - int checkPolyDamage(); - BOOL checkElecReturnDamage(dCcD_GObjInf& i_obj, fopAc_ac_c** o_hitActor); - void damageTimerCount(); - bool checkHugeAttack(int i_atSpl) const; - bool checkLargeAttack(int i_atSpl) const; - BOOL checkDamageAction(); - int procDamageInit(dCcD_GObjInf* i_tgObj, int); - int procDamage(); - int procCoLargeDamageInit(int i_type, BOOL i_isLargeDmg, s16, s16, dCcD_GObjInf* i_hitObj, int); - int procCoLargeDamage(); - int procLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); - int procLargeDamageUp(); - int procCoLargeDamageWallInit(int i_type, BOOL i_isLargeDmg, s16, s16); - int procCoLargeDamageWall(); - int procCoPolyDamageInit(); - int procCoPolyDamage(); - int procLandDamageInit(int); - int procLandDamage(); - int procCoElecDamageInit(fopAc_ac_c* i_tgHitActor, dCcD_GObjInf* i_tgHitObj, int i_atSpl); - int procCoElecDamage(); - int procStEscapeInit(); - int procStEscape(); - int procDkCaughtInit(fpc_ProcID); - int procDkCaught(); - void setScreamWaitAnime(); - int procScreamWaitInit(); - int procScreamWait(); - int procCoSandWallHitInit(); - int procCoSandWallHit(); - int procCoLavaReturnInit(BOOL i_isSandReturn); - int procCoLavaReturn(); - int procCoSwimFreezeReturnInit(); - int procCoSwimFreezeReturn(); - static BOOL checkEnemyGroup(fopAc_ac_c*); - static BOOL checkSpecialNpc(fopAc_ac_c*); - BOOL checkShieldAttackEmphasys(); - BOOL checkGuardActionChange(); - void stickArrowIncrement(int); - void setArrowShieldActor(fopAc_ac_c*, int); - BOOL checkWoodShieldEquipNotIronBall() const; - void getArrowShieldOffset(cXyz const*, csXyz const*, cXyz*, cXyz*) const; - void setArrowShieldPos(cXyz*, csXyz*, cXyz const*, cXyz const*) const; - BOOL checkUpperGuardAnime() const; - BOOL checkPlayerGuardAndAttack() const; - BOOL checkGuardAccept(); - void setUpperGuardAnime(f32); - void setShieldGuard(); - void setGuardSe(dCcD_GObjInf* i_objinf); - void setSmallGuard(dCcD_GObjInf* i_objinf); - int procGuardSlipInit(int i_atSpl, dCcD_GObjInf* i_objinf); - int procGuardSlip(); - int procGuardAttackInit(); - int procGuardAttack(); - int procGuardBreakInit(); - int procGuardBreak(); - int procTurnMoveInit(int); - int procTurnMove(); - void getArrowFlyData(f32* o_distance, f32* o_speed, BOOL i_forceCharge) const; - f32 getArrowIncAtR() const; - s16 getBombArrowFlyExplodeTime() const; - f32 getArrowIncAtMaxStart() const; - f32 getArrowIncAtMax() const; - BOOL checkBowAndSlingItem(int i_itemNo); - void setSlingModel(); - cXyz* checkBowCameraArrowPosP(s16* o_angleX, s16* o_angleY); - BOOL checkBowReadyAnime() const; - BOOL checkBowAnime() const; - void makeArrow(); - void deleteArrow(); - void setBowOrSlingStatus(); - void changeArrowType(); - BOOL cancelBowMoveRideNotAtn(); - BOOL cancelBowMove(); - void setBowReadyAnime(); - void setBowReloadAnime(); - BOOL checkUpperItemActionBow(); - void checkUpperItemActionBowFly(); - int checkNextActionBow(); - void setBowModel(); - bool checkBowGrabLeftHand() const; - void setBowHangAnime(); - void setBowNormalAnime(); - void setBowSight(); - int procBowSubjectInit(); - int procBowSubject(); - int procBowMoveInit(); - int procBowMove(); - BOOL checkBoomerangLockAccept(); - f32 getBoomSpeed(); - f32 getBoomCatchSpeed() const; - f32 getBoomFlyMax() const; - f32 getBoomLockMax(); - s16 getBoomBgThroughTime() const; - bool checkBossBabaRoom(); - void cancelBoomerangLock(fopAc_ac_c*); - fopAc_ac_c* getBoomerangActor(); - bool checkBoomerangChargeEnd(); - BOOL checkBoomerangCarry(fopAc_ac_c*); - void initBoomerangUpperAnimeSpeed(int); - BOOL checkBoomerangAnime() const; - BOOL checkBoomerangThrowAnime() const; - void setBoomerangReadyQuake(); - void setBoomerangReadyAnime(); - void setThrowBoomerangAnime(); - void setBoomerangCatchAnime(); - void throwBoomerang(); - int returnBoomerang(int); - int checkUpperItemActionBoomerang(); - void checkUpperItemActionBoomerangFly(); - int checkNextActionBoomerang(); - int checkBoomerangCatchAction(); - void setBoomerangSight(); - int procBoomerangSubjectInit(); - int procBoomerangSubject(); - int procBoomerangMoveInit(); - int procBoomerangMove(); - int procBoomerangCatchInit(); - int procBoomerangCatch(); - static BOOL checkLv6BossRoom(); - f32 getCopyRodBallSpeed() const; - f32 getCopyRodBallReturnSpeed() const; - f32 getCopyRodBallDisMax() const; - fopAc_ac_c* getCopyRodControllActor(); - fopAc_ac_c* getCopyRodCameraActor(); - void initCopyRodUpperAnimeSpeed(int); - static BOOL checkForestOldCentury(); - int checkCopyRodAnime() const; - void setCopyRodControllAnime(); - void setCopyRodControllUpperSpeedRate(); - void setCopyRodModel(); - void setCopyRodReadyAnime(); - void throwCopyRod(); - int returnCopyRod(); - int checkUpperItemActionCopyRod(); - void checkUpperItemActionCopyRodFly(); - int checkNextActionCopyRod(); - void setCopyRodSight(); - int procCopyRodSubjectInit(); - int procCopyRodSubject(); - int procCopyRodMoveInit(); - int procCopyRodMove(); - int procCopyRodSwingInit(); - int procCopyRodSwing(); - int procCopyRodReviveInit(); - int procCopyRodRevive(); - void concatMagneBootMtx(); - void concatMagneBootInvMtx(); - void multVecMagneBootInvMtx(cXyz* o_dst); - bool commonMagneLineCheck(cXyz* i_start, cXyz* i_end); - BOOL checkBootsMoveAnime(int); - int setHeavyBoots(int); - s16 getMagneBootsLocalAngleY(s16, int); - void setMagneBootsMtx(cBgS_PolyInfo*, int); - int cancelMagneBootsOn(); - int checkMagneBootsFly(); - int procBootsEquipInit(); - int procBootsEquip(); - int procMagneBootsFlyInit(); - int procMagneBootsFly(); - s16 getBombExplodeTime() const; - f32 getBombGravity() const; - f32 getBombMaxFallSpeed() const; - f32 getBombBoundRate() const; - f32 getBombStopSpeedY() const; - f32 getBombMaxSpeedY() const; - f32 getBombEffScale() const; - f32 getBombAtR() const; - s16 getEnemyBombColorR() const; - f32 getBombWaterGravity() const; - f32 getBombWaterMaxFallSpeed() const; - f32 getBombExplodeWaterEffectLimit() const; - s16 getBombInsectLimitAngle() const; - BOOL checkGrabLineCheck(); - f32 getGrabThrowRate(); - BOOL checkGrabThrowAnime() const; - BOOL checkGrabAnime() const; - BOOL checkGrabAnimeAndThrow() const; - BOOL checkGrabCarryActor(); - BOOL checkGrabSlowMoveActor(); - BOOL checkGrabHeavyActor(); - BOOL checkGrabSideActor(); - void setGrabUpperAnime(f32); - BOOL checkGrabRooster(); - void setGrabItemPos(); - void freeGrabItem(); - void setGrabUpperSpeedRate(); - void setCarryArmAngle(f32, f32); - BOOL checkGrabNotThrow(); - BOOL checkNextActionGrab(); - void initGrabNextMode(); - void setGrabItemThrow(); - BOOL checkUpperGrabItemThrow(f32); - void putObjLineCheck(dBgS_LinChk& i_linchk, cXyz* i_endpos, fopAc_ac_c* i_objActor); - bool grabLineCheck(cXyz* i_start, cXyz* i_end); - void setGrabItemActor(fopAc_ac_c* i_actor); - int procGrabReadyInit(); - int procGrabReady(); - int procGrabUpInit(); - int procGrabUp(); - int procGrabMiss(); - int procGrabThrowInit(int); - int procGrabThrow(); - int procGrabPutInit(); - int procGrabPut(); - int procGrabWaitInit(); - int procGrabWait(); - int procGrabReboundInit(int); - int procGrabRebound(); - int procGrabStandInit(); - int procGrabStand(); - BOOL checkInsectActorName(fopAc_ac_c* i_insectActor); - int procInsectCatchInit(); - int procInsectCatch(); - int procPickUpInit(); - int procPickUp(); - int procPickPutInit(int); - int procPickPut(); - BOOL checkSetChainPullAnime(s16); - s16 getChainStickAngleY(s16) const; - u8 checkChainEmphasys(); - BOOL searchFmChainPos(); - BOOL setFmChainPosFromOut(fopAc_ac_c*, cXyz*, int); - int procFmChainUpInit(); - int procFmChainUp(); - int procFmChainStrongPullInit(); - int procFmChainStrongPull(); - void setWallGrabStatus(u8 i_status, u8 i_flag); - int getWallGrabStatus(); - BOOL wallGrabTrigger(); - BOOL wallGrabButton(); - int setPushPullKeepData(dBgW_Base::PushPullLabel i_label, BOOL); - BOOL checkPushPullTurnBlock(); - BOOL checkPullBehindWall(); - void offGoatStopGame(); - BOOL checkGoatCatchActor(fopAc_ac_c* i_actor); - f32 getGoatCatchDistance2(); - int endPushPull(); - f32 getPushPullAnimeSpeed(); - int procCoPushPullWaitInit(int); - int procCoPushPullWait(); - int procCoPushMoveInit(int, int); - int procCoPushMove(); - int procPullMoveInit(int); - int procPullMove(); - void setGoatStopGameFail(fopAc_ac_c* i_actor); - int procGoatMoveInit(); - int procGoatMove(); - int procGoatCatchInit(fopAc_ac_c* i_actor, f32); - int procGoatCatch(); - int procGoatStrokeInit(); - int procGoatStroke(); - int procGoronMoveInit(); - int procGoronMove(); - BOOL checkSumouVsActor(); - void cancelSumouMode(); - BOOL sumouPunchTrigger(); - void setSumouPunchStatus(); - int procSumouReadyInit(); - int procSumouReady(); - int procSumouMoveInit(); - int procSumouMove(); - int procSumouSideMoveInit(); - int procSumouSideMove(); - int procSumouActionInit(BOOL i_isDoTrigger, BOOL i_isPunchTrigger, int unused); - int procSumouAction(); - int procSumouStaggerInit(); - int procSumouStagger(); - int procSumouWinLoseInit(); - int procSumouWinLose(); - int procSumouShikoInit(); - int procSumouShiko(); - static BOOL checkHorseZeldaBowMode(); - static void setHorseZeldaDamage(); - static BOOL checkHorseDashAccept(); - static BOOL checkCowGame(); - int getReinRideDirection(); - int checkReinRideBgCheck(); - void commonInitForceRideRein(); - int initForceRideBoar(); - void initForceRideHorse(); - void rideGetOff(); - BOOL checkHorseNotDamageReaction() const; - BOOL checkHorseWaitLashAnime() const; - BOOL checkHorseReinLeftOnly() const; - int getReinHandType() const; - BOOL checkHorseLieAnime() const; - BOOL checkHorseSubjectivity() const; - void setHorseSwordUpAnime(); - void setHorseTurnUpperAnime(BOOL i_isTurnL); - BOOL checkHorseNoUpperAnime() const; - void getHorseReinHandPos(cXyz* o_handPosA, cXyz* o_handPosB); - BOOL checkHorseNotGrab() const; - void setHorseStirrup(); - void changeBoarRunRide(); - int setSyncHorsePos(); - int setSyncBoarPos(); - int setSyncBoarRunPos(); - BOOL setSyncRidePos(); - void setHorseTurnAnime(); - void getBaseHorseAnime(daAlink_c::daAlink_ANM* i_anmList); - int checkHorseSpecialProc(); - BOOL checkHorseServiceWaitAnime(); - int setSyncHorse(int); - int setSyncBoar(int); - int setSyncRide(int); - void setBaseHorseAnimeFrame(); - void setBaseBoarAnime(); - void setBaseRideAnime(); - bool checkHorseSwordUpSpped(); - void setHorseSwordUp(int); - int setRideSubjectAngle(s16); - void setBodyAngleRideReadyAnime(); - BOOL checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndPos, s16); - int checkHorseGetOffDirection(); - void boarForceGetOff(); - void horseGetOffEnd(); - int checkNextActionHorse(); - BOOL checkHorseGetOff(); - int checkHorseGetOffAndSetDoStatus(); - int setHorseGetOff(int); - int procHorseRideInit(); - int procHorseRide(); - int procHorseGetOffInit(int); - int procHorseGetOff(); - int procHorseWaitInit(); - int procHorseWait(); - int procHorseTurnInit(); - int procHorseTurn(); - int procHorseJumpInit(); - int procHorseJump(); - int procHorseLandInit(); - int procHorseLand(); - int procHorseSubjectivityInit(); - int procHorseSubjectivity(); - int procHorseCutInit(); - int procHorseCut(); - int procHorseCutChargeReadyInit(); - int procHorseCutChargeReady(); - int procHorseCutTurnInit(); - int procHorseCutTurn(); - int procHorseDamageInit(dCcD_GObjInf* i_hitObj); - int procHorseDamage(); - int procHorseBowSubjectInit(); - int procHorseBowSubject(); - int procHorseBowMoveInit(); - int procHorseBowMove(); - int procHorseGrabMoveInit(); - int procHorseGrabMove(); - int procHorseBoomerangSubjectInit(); - int procHorseBoomerangSubject(); - int procHorseBoomerangMoveInit(); - int procHorseBoomerangMove(); - int procHorseHookshotSubjectInit(); - int procHorseHookshotSubject(); - int procHorseHookshotMoveInit(); - int procHorseHookshotMove(); - int procHorseBottleDrinkInit(u16 i_itemNo); - int procHorseBottleDrink(); - int procHorseKandelaarPourInit(); - int procHorseKandelaarPour(); - int procHorseComebackInit(); - int procHorseComeback(); - int procHorseRunInit(); - int procHorseRun(); - int procHorseHangInit(dCcD_GObjInf* i_hitObj, BOOL i_isPlaySE); - int procHorseHang(); - int procHorseGetKeyInit(); - int procHorseGetKey(); - int procHorseLookDownInit(); - int procHorseLookDown(); - int procBoarRunInit(); - int procBoarRun(); - f32 getCanoeMaxSpeed() const; - f32 getCanoeBackMaxSpeed() const; - f32 getCanoeCres() const; - f32 getCanoeSpeedRate() const; - s16 getCanoeMaxRotSpeed() const; - static cXyz* getCanoeLocalPaddleTop(); - BOOL checkCanoeRideTandem(); - BOOL checkFishingRodAndLureItem() const; - void initFishingRodHand(); - MtxP getCanoePaddleMatrix(); - BOOL checkFishingRodGrab(fopAc_ac_c* i_actor) const; - BOOL checkCanoePaddleGrab(fopAc_ac_c* i_actor) const; - BOOL checkCanoeFishingRodGrabOrPut() const; - void initCanoeRide(); - BOOL checkCanoeJumpRide(); - void setArmReelAnime(); - void setFishingWaitAction(); - void setFishGetFace(); - void setRideCanoeBasePos(fopAc_ac_c* i_canoeActor); - void setSyncCanoePos(); - int canoeCommon(); - int checkNextActionCanoe(); - int procCanoeRideInit(); - int procCanoeRide(); - int procCanoeJumpRideInit(fopAc_ac_c* i_canoeActor); - int procCanoeJumpRide(); - int procCanoeGetOffInit(); - int procCanoeGetOff(); - int procCanoeWaitInit(int); - int procCanoeWait(); - int procCanoeRowInit(int); - int procCanoeRow(); - int procCanoePaddleShiftInit(int); - int procCanoePaddleShift(); - int procCanoePaddlePutInit(int); - int procCanoePaddlePut(); - int procCanoePaddleGrabInit(); - int procCanoePaddleGrab(); - int procCanoeRodGrabInit(); - int procCanoeRodGrab(); - int procCanoeFishingWaitInit(); - int procCanoeFishingWait(); - int procCanoeFishingReelInit(); - int procCanoeFishingReel(); - int procCanoeFishingGetInit(); - int procCanoeFishingGet(); - int procCanoeSubjectivityInit(); - int procCanoeSubjectivity(); - int procCanoeBowSubjectInit(); - int procCanoeBowSubject(); - int procCanoeBowMoveInit(); - int procCanoeBowMove(); - int procCanoeGrabMoveInit(); - int procCanoeGrabMove(); - int procCanoeBoomerangSubjectInit(); - int procCanoeBoomerangSubject(); - int procCanoeBoomerangMoveInit(); - int procCanoeBoomerangMove(); - int procCanoeHookshotSubjectInit(); - int procCanoeHookshotSubject(); - int procCanoeHookshotMoveInit(); - int procCanoeHookshotMove(); - int procCanoeBottleDrinkInit(u16 i_itemNo); - int procCanoeBottleDrink(); - int procCanoeKandelaarPourInit(); - int procCanoeKandelaarPour(); - void setGroundFishingRodActor(); - int procFishingCastInit(); - int procFishingCast(); - int procFishingFoodInit(); - int procFishingFood(); - f32 getCrawlMoveAnmSpeed(); - f32 getCrawlMoveSpeed(); - void setCrawlMoveDirectionArrow(); - BOOL changeCrawlAutoMoveProc(cXyz*); - int getCrawlMoveVec(cXyz*, cXyz*, cXyz*, int, int, u8*); - void crawlBgCheck(cXyz*, cXyz*, int); - BOOL checkCrawlSideWall(cXyz*, cXyz*, cXyz*, cXyz*, s16*, s16*); - void decideCrawlDoStatus(); - BOOL checkNotCrawlStand(cXyz*); - BOOL checkNotCrawlStand(cXyz*, cXyz*); - BOOL checkCrawlInHoll(cXyz*, cXyz*, cXyz*, int); - void setCrawlMoveHoll(); - void setCrawlMoveAngle(); - void stopHalfMoveAnime(f32 i_frame); - void setCrawlAutoMoveAimPos(); - int procCrawlStartInit(); - int procCrawlStart(); - int procCrawlMoveInit(s16 i_angleX, s16 i_angleZ); - int procCrawlMove(); - int procCrawlAutoMoveInit(int, cXyz*); - int procCrawlAutoMove(); - int procCrawlEndInit(int, s16 i_angleX, s16 i_angleZ); - int procCrawlEnd(); - f32 getHangMoveAnmSpeed(); - int getHangDirectionFromAngle(); - BOOL hangMoveBgCheck(s16, cXyz*); - BOOL changeHangMoveProc(int i_direction); - bool checkHangFootWall(); - void setHangGroundY(); - int changeHangEndProc(); - void checkHangStartSideWall(s16); - int procHangStartInit(); - int procHangStart(); - int procHangFallStartInit(cM3dGPla*); - int procHangFallStart(); - int procHangUpInit(int); - int procHangUp(); - int procHangWaitInit(); - int procHangWait(); - int procHangMoveInit(int); - int procHangMove(); - int procHangClimbInit(f32); - int procHangClimb(); - int procHangWallCatchInit(); - int procHangWallCatch(); - int procHangReadyInit(); - int procHangReady(); - int procHangLeverDownInit(); - int procHangLeverDown(); - int setDragonHangPos(); - int setOctaIealHangPos(); - int setBossBodyHangPos(); - int procBossBodyHangInit(fopAc_ac_c* i_actor); - int procBossBodyHang(); - int getLadderUnitCount() const; - int setLadderInit(); - void setLadderPosInit(); - void setLadderPos(int); - f32 getLadderMoveAnmSpeed(); - int changeLadderMoveProc(int); - int setMoveBGLadderCorrect(); - int checkLadderFall(); - int procLadderUpStartInit(); - int procLadderUpStart(); - int procLadderUpEndInit(int); - int procLadderUpEnd(); - int procLadderDownStartInit(); - int procLadderDownStart(); - int procLadderDownEndInit(int); - int procLadderDownEnd(); - int procLadderMoveInit(int, int, cXyz*); - int procLadderMove(); - f32 getClimbMoveUpDownAnmSpeed(); - f32 getClimbMoveSideAnmSpeed(); - BOOL checkClimbCode(cBgS_PolyInfo& i_polyinfo); - BOOL setClimbInit(); - void setClimbShapeOffset(); - int getClimbDirectionFromAngle(); - void changeClimbMoveProc(int); - BOOL checkClimbMoveUpDownProc(int i_direction); - BOOL checkClimbMoveSideProc(int i_direction); - int setMoveBGClimbCorrect(); - int checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos); - BOOL checkClimbRoof(f32); - int checkClimbGround(cXyz*, f32); - BOOL checkBgClimbMove(int i_direction); - int setClimbStartNotGround(); - int procClimbUpStartInit(int); - int procClimbUpStart(); - int procClimbDownStartInit(s16); - int procClimbDownStart(); - int procClimbMoveUpDownInit(int); - int procClimbMoveUpDown(); - int procClimbMoveSideInit(); - int procClimbMoveSide(); - int procClimbWaitInit(int, int); - int procClimbWait(); - int procClimbToRoofInit(); - int procClimbToRoof(); - f32 getRoofHangFMoveAnmSpeed() const; - f32 getRoofHangSMoveAnmSpeed() const; - void setRoofHangHandOnSE(cBgS_PolyInfo* unused); - int checkRoofHangMovePos(); - int commonRoofHangProc(); - int checkNextActionRoofHang(); - int procRoofHangStartInit(cBgS_PolyInfo const&, cXyz const&, int); - int procRoofHangStart(); - int procRoofHangWaitInit(int); - int procRoofHangWait(); - int procRoofHangFrontMoveInit(); - int procRoofHangFrontMove(); - int procRoofHangSideMoveInit(); - int procRoofHangSideMove(); - int procRoofHangTurnInit(); - int procRoofHangTurn(); - void setRoofHangSwitch(); - int procRoofSwitchHangInit(fopAc_ac_c* i_actor); - int procRoofSwitchHang(); - BOOL checkZoraWearMaskDraw(); - BOOL checkAcceptUseItemInWater(u16 i_itemNo) const; - void swimDeleteItem(); - bool getZoraSwim() const; - f32 getSwimFrontMaxSpeed() const; - f32 getSwimMaxFallSpeed() const; - void checkOxygenTimer(); - void offOxygenTimer(); - BOOL checkPossibleWaterInMode() const; - void setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate); - void swimBgCheck(f32); - void setSpeedAndAngleSwim(); - int checkNextActionSwim(); - int checkSwimAction(int); - int checkSwimUpAction(); - void swimOutAfter(int); - BOOL checkSwimFall(); - int checkSwimOutAction(); - void setSwimMoveAnime(); - bool checkSwimButtonAccept(); - bool checkUpSwimButtonAccept(); - BOOL checkSwimButtonMove(); - BOOL checkZoraSwimMove(); - BOOL checkSwimNeckUpDown() const; - void setSwimUpDownOffset(); - int procSwimUpInit(); - int procSwimUp(); - int procSwimWaitInit(int); - int procSwimWait(); - int procSwimMoveInit(); - int procSwimMove(); - int procSwimDiveInit(); - int procSwimDive(); - int procSwimHookshotSubjectInit(); - int procSwimHookshotSubject(); - int procSwimHookshotMoveInit(); - int procSwimHookshotMove(); - int procSwimDamageInit(dCcD_GObjInf* i_hitObj); - int procSwimDamage(); - int procOctaIealSpitInit(); - int procOctaIealSpit(); - bool checkSnowCode() const; - static bool checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo); - bool checkBoardRestart(); - int boardCommon(BOOL i_canMove); - void setCommonBoardAnime(BOOL i_isRideFront); - int checkNextActionBoard(); - int checkBoardSwordTriggerAction(); - int commonProcBoardInit(daAlink_c::daAlink_PROC i_procID); - f32 getBoardRowAnmSpeed(); - void setBoardLandAnime(); - int procBoardRideInit(); - int procBoardRide(); - int procBoardWaitInit(fopAc_ac_c* i_boardActor); - int procBoardWait(); - int procBoardRowInit(); - int procBoardRow(); - int procBoardTurnInit(); - int procBoardTurn(); - int procBoardJumpInit(f32 i_jumpSpeed, BOOL i_isNoSpeed); - int procBoardJump(); - int procBoardSubjectivityInit(); - int procBoardSubjectivity(); - int procBoardCutInit(); - int procBoardCut(); - int procBoardCutTurnInit(); - int procBoardCutTurn(); - void hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf); - void resetHookshotMode(); - BOOL setEnemyBombHookshot(fopAc_ac_c* i_actor); - bool checkLv7BossRoom(); - BOOL checkHookshotStickBG(cBgS_PolyInfo& i_polyinfo); - void cancelHookshotCarry(); - void changeHookshotDrawModel(); - BOOL checkHookshotRoofLv7Boss(); - BOOL checkChaseHookshot(); - BOOL checkOctaIealSpecialCollect(); - BOOL checkBossOctaIealRoom(); - BOOL checkHookshotWait() const; - void setHookshotCatchNow(); - void setHookshotModel(); - void setHookshotSight(); - void cancelHookshotShot(); - bool cancelHookshotMove(); - BOOL checkHookshotReadyMaterialOffMode() const; - void setHookshotReadyMaterial(); - int initHookshotUpperAnimeSpeed(BOOL); - void initHookshotReady(); - void setHookshotReadyAnime(); - int checkUpperItemActionHookshot(); - int checkNextActionHookshot(); - void setHookshotReturnEnd(); - int setHookshotHangMoveBGCollect(); - void setHookshotTopPosFly(); - void setHookshotPos(); - void setHookshotRoofWaitAnime(); - void setHookshotWallWaitAnime(); - void hookshotRoofTurn(); - void initHookshotRoofWaitActor(fopAc_ac_c* i_actor); - int checkNextHookPoint(); - int checkLandHookshotHang(); - int commonHookshotRoofWait(); - int commonHookshotWallWait(); - int procHookshotSubjectInit(); - int procHookshotSubject(); - int procHookshotMoveInit(); - int procHookshotMove(); - int procHookshotFlyInit(); - int procHookshotFly(); - int procHookshotRoofWaitInit(int, fopAc_ac_c*, int); - int procHookshotRoofWait(); - int procHookshotRoofShootInit(fopAc_ac_c*); - int procHookshotRoofShoot(); - int procHookshotRoofBootsInit(fopAc_ac_c*); - int procHookshotRoofBoots(); - int procHookshotWallWaitInit(int, s16, int); - int procHookshotWallWait(); - int procHookshotWallShootInit(); - int procHookshotWallShoot(); - f32 getSpinnerGravity() const; - f32 getSpinnerMaxFallSpeed() const; - f32 getSpinnerJumpRate() const; - s16 getSpinnerRideMoveTime(); - f32 getSpinnerRideSpeedF(); - f32 getSpinnerRideDecSpeedMax() const; - f32 getSpinnerRideDecSpeedMin() const; - f32 getSpinnerRideDecSpeedRate() const; - s16 getSpinnerRideRotAngleMax() const; - s16 getSpinnerRideRotAngleMin() const; - bool checkLv4BossRoom(); - void setSpinnerSyncPos(); - int procSpinnerReadyInit(); - int procSpinnerReady(); - void setSpinnerStatus(u8 i_status, u8 i_flag); - int procSpinnerWaitInit(); - int procSpinnerWait(); - int bottleModelCallBack(); - BOOL checkOilBottleItemNotGet(u16 i_itemNo); - void setBottleModel(u16 i_itemNo); - int commonBottleDrink(BOOL); - fopAc_ac_c* makeFairy(cXyz* i_pos, u32 i_params); - int procBottleDrinkInit(u16 i_itemNo); - int procBottleDrink(); - int procBottleOpenInit(u16 i_itemNo); - int procBottleOpen(); - int procBottleSwingInit(fopAc_ac_c* i_catchActor, int); - int procBottleSwing(); - int procBottleGetInit(BOOL); - int procBottleGet(); - BOOL checkWaterInKandelaarOffset(f32); - void checkWaterInKandelaar(f32); - void offKandelaarModel(); - int kandelaarModelCallBack(); - BOOL checkKandelaarEquipAnime() const; - void preKandelaarDraw(); - void setKandelaarModel(); - void resetOilBottleModel(); - void commonKandelaarPourInit(); - int commonKandelaarPour(int); - void initKandelaarSwing(); - int procKandelaarSwingInit(); - int procKandelaarSwing(); - int procKandelaarPourInit(); - int procKandelaarPour(); - void setGrassWhistleModel(int i_modelType); - void setHorseWhistleModel(); - int procGrassWhistleGetInit(); - int procGrassWhistleGet(); - int procGrassWhistleWaitInit(int, int, int, s16, cXyz*); - int procGrassWhistleWait(); - int procCoHorseCallWaitInit(int); - int procCoHorseCallWait(); - int procHawkCatchInit(); - int procHawkCatch(); - int procHawkSubjectInit(); - int procHawkSubject(); - bool checkIronBallThrowMode() const; - bool checkIronBallThrowReturnMode() const; - void setIronBallWaitUpperAnime(int); - void checkIronBallDelete(); - void setIronBallReturn(int); - void setIronBallBgCheckPos(); - void setIronBallModel(); - int setIronBallGroundVec(cXyz const*, cXyz*); - void setIronBallChainPos(); - BOOL checkIronBallReturnChange(); - void setIronBallPos(); - BOOL checkIronBallAnime() const; - void setIronBallReadyAnime(); - void setIronBallBaseAnime(); - BOOL checkUpperItemActionIronBall(); - int checkNextActionIronBall(); - int procIronBallSubjectInit(); - int procIronBallSubject(); - int procIronBallMoveInit(); - int procIronBallMove(); - int procIronBallThrowInit(); - int procIronBallThrow(); - int procIronBallReturnInit(); - int procIronBallReturn(); - BOOL checkEventRun() const; - void createNpcTks(cXyz* i_basePos, int i_roomNo, u32 i_parameters); - int checkDemoAction(); - bool checkDemoMoveMode(u32 i_mode) const; - void setDemoMoveData(u32* o_mode, cXyz const* i_goal); - void setNoDrawSwordShield(int, u16); - void setDemoData(); - void resetDemoBck(); - void endHighModel(); - void resetSpecialEvent(); - void endDemoMode(); - fopAc_ac_c* getDemoLookActor(); - BOOL checkFlyAtnWait(); - void setGetItemFace(u16 i_itemNo); - BOOL checkGrabTalkActor(fopAc_ac_c* i_actor); - int setTalkStartBack(cXyz*); - void setShapeAngleToTalkActor(); - void setTalkAnime(); - u8 setTradeItemAnime(); - void setTradeItemOutHand(); - BOOL checkEndMessage(u32 i_msgIdx); - u8 setDemoRightHandIndex(u16); - u8 setDemoLeftHandIndex(u16); - void setDemoRide(u16); - void setDemoBodyBck(dDemo_actor_c* i_demoActor, u16 i_resIdx); - static BOOL checkFinalBattle(); - BOOL checkRestartDead(int i_dmgAmount, BOOL i_checkZoraMag); - void setDeadRideSyncPos(); - BOOL checkDeadHP(); - BOOL checkDeadAction(int); - void setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_resIdx); - void setHighModelFaceBtk(u16 i_resIdx); - void setDemoBrk(J3DAnmTevRegKey** o_ppbrk, J3DModel* i_model, u16 i_resIdx); - f32 setStickAnmData(J3DAnmBase* i_anm, int i_arg1, int i_arg2, u16 i_resIdx, - int i_stickDirection); - int procDemoCommon(); - int procCoToolDemoInit(); - int procCoToolDemo(); - int procCoTalkInit(); - int procCoTalk(); - int procCoOpenTreasureInit(); - int procCoOpenTreasure(); - int procCoUnequipInit(); - int procCoUnequip(); - void setGetSubBgm(int i_itemNo); - int procCoGetItemInit(); - int procCoGetItem(); - int procCoTurnBackInit(); - int procCoTurnBack(); - int procDoorOpenInit(); - int procDoorOpen(); - int procCoLookWaitInit(); - int procCoLookWait(); - int procCoDemoPushPullWaitInit(); - int procCoDemoPushMoveInit(); - void setMonkeyMoveAnime(); - int procMonkeyMoveInit(); - int procMonkeyMove(); - int procDemoBoomerangCatchInit(); - int procDemoBoomerangCatch(); - int procCoDeadInit(int); - int procCoDead(); - int procCoLookAroundInit(); - int procCoLookAround(); - int procBossAtnWaitInit(); - int procCoQuakeWaitInit(); - int procCoCaughtInit(); - int procLookUpInit(); - int procLookUp(); - int procLookUpToGetItemInit(); - int procLookUpToGetItem(); - int procHandPatInit(); - int procHandPat(); - int procCoFogDeadInit(); - int procCoFogDead(); - int procWolfSmellWaitInit(); - int procCoNodInit(); - int procCoNod(); - int procCoEyeAwayInit(); - int procCoGlareInit(); - int procCoGlare(); - int procGoatStopReadyInit(); - int procGoatStopReady(); - int procCoGetReadySitInit(); - int procCoGetReadySit(); - int procCoTwGateInit(); - int procCoTwGate(); - int procWolfSnowEscapeInit(); - int procWolfSnowEscape(); - int procZoraMoveInit(); - int procZoraMove(); - int procLookAroundTurnInit(); - int procLookAroundTurn(); - int procTradeItemOutInit(); - int procTradeItemOut(); - static BOOL checkLetterItem(int i_itemNo); - int procNotUseItemInit(int i_itemNo); - int procNotUseItem(); - int procSwordReadyInit(); - int procSwordReady(); - void setSwordPushAnime(); - int procSwordPushInit(); - int procSwordPush(); - int procGanonFinishInit(); - int procGanonFinish(); - int procCutFastReadyInit(); - int procCutFastReady(); - int procMasterSwordStickInit(); - int procMasterSwordStick(); - int procMasterSwordPullInit(); - int procMasterSwordPull(); - static BOOL checkLv7DungeonShop(); - int procDungeonWarpReadyInit(); - int procDungeonWarpReady(); - int procDungeonWarpInit(); - int procDungeonWarp(); - int procDungeonWarpSceneStartInit(); - int procDungeonWarpSceneStart(); - bool checkAcceptWarp(); - void dungeonReturnWarp(); - void checkWarpStart(); - int warpModelTexScroll(); - int procCoWarpInit(int, int); - int procCoWarp(); - int commonWaitTurnInit(); - int commonGrabPutInit(); - int commonLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); - int commonFallInit(int); - JPABaseEmitter* setEmitter(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, - csXyz const* i_rotation); - JPABaseEmitter* setEmitterPolyColor(u32* i_emitterId, u16 i_effName, cBgS_PolyInfo& i_polyinfo, cXyz const*, - csXyz const*); - JPABaseEmitter* setEmitterColor(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, - csXyz const* i_rotation); - void stopDrawParticle(u32 i_emitterId); - void setEffectFrontRollParam(); - void setEffectSlipParam(); - void setEffectRunParam(); - void setEffectSmallLandParam(); - void setEffectLandParam(); - void setEffectSumouParam(); - void setFootEffectProcType(int); - void setWolfFootOn(int); - void setFootMark(cXyz* i_pos, u16 i_mtxNo, int); - void setEffect(); - void setSumouEffect(); - void setWaterfallEffect(const cXyz* i_pos, u32* i_emitterId); - void setWaterfallEffect(); - void setMagneBootsEffect(); - void setSwordChargeEffect(); - void setElecDamageEffect(); - void clearCutTurnEffectID(); - void setCutTurnEffect(); - void setHorseCutTurnEffect(); - void setCutLargeJumpLandEffect(); - void setBootsLightEffect(); - void setLightningSwordEffect(); - void setWolfRollAttackEffect(); - void setWolfDigEffect(); - void setWolfSwimEndEffect(JPABaseEmitter**, JPABaseEmitter**); - void setWolfLockAttackEffect(); - void setWolfJumpAttackEffect(); - void setWolfBarrierHitEffect(dBgS_LinChk& i_linchk); - void setCutWaterDropEffect(); - void setWaterDropEffect(); - void setSwordUpColorEffect(); - void setSwordCutSplash(); - void setMetamorphoseEffectStartLink(); - void setMetamorphoseEffect(); - void setRunSplash(); - void resetFairyEffect(); - void setBottleEffect(); - void clearFirePointDamageEffect(int i_effNo); - void initFirePointDamageEffectAll(); - void initFirePointDamageEffect(cXyz const*, dCcD_GObjInf* i_hitObj); - void setFirePointDamageEffect(); - void setFreezeEffect(); - void setWoodShieldBurnEffect(); - void clearWoodShieldBurnEffect(); - void setWoodShieldBurnOutEffect(); - void changeCommon(); - void changeWolf(); - void changeLink(int); - void onWolfEyeUp(); - void offWolfEyeUp(); - BOOL wolfSenseTrigger(); - void setWolfSenceStatus(u8 i_status); - BOOL wolfClawTrigger(); - void setWolfDigStatus(u8 i_flag); - BOOL checkWolfShapeReverse() const; - BOOL checkWolfSideStep() const; - void setWolfTailAngle(); - BOOL checkWolfSlowDash(); - void setSpeedAndAngleWolf(); - void setSpeedAndAngleWolfAtn(); - BOOL checkWolfAtnWait(); - BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM i_anm) const; - void setBlendWolfMoveAnime(f32); - BOOL checkWolfAtnMoveBack(s16); - void setWolfAtnMoveDirection(); - void setBlendWolfAtnMoveAnime(f32); - void setBlendWolfAtnBackMoveAnime(f32); - int setDoubleAnimeWolf(f32, f32, f32, daAlink_c::daAlink_WANM, - daAlink_c::daAlink_WANM, int, f32); - void setSingleAnimeWolfBase(daAlink_c::daAlink_WANM i_anmID); - void setSingleAnimeWolfBaseMorf(daAlink_c::daAlink_WANM i_anmID, f32 i_morf); - void setSingleAnimeWolfBaseSpeed(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_morf); - int setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_start, - s16 i_endFrame, f32 i_morf); - void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM i_anmID, - daAlinkHIO_anm_c const* i_anmData); - int checkWolfLandAction(BOOL); - BOOL checkMidnaUseAbility() const; - void checkWolfUseAbility(); - int checkWolfGroundSpecialMode(); - int checkNextActionWolf(int); - BOOL wolfSideBgCheck(s16); - BOOL checkWolfAttackReverse(int); - int checkWolfBarrierHitReverse(); - BOOL checkWolfBarrierWallHit(cBgS_PolyInfo& i_polyinfo); - void wolfBgCheck(); - void changeWolfBlendRate(int); - void setWolfFootMatrix(); - void wolfFootBgCheck(); - BOOL checkWolfWaitSlipPolygon(); - f32 setWolfWaitSlip(); - void checkWolfAtnDoCharge(); - void setWolfChainPos(); - void setWolfAnmVoice(); - int procWolfServiceWaitInit(int); - int procWolfServiceWait(); - int procWolfTiredWaitInit(); - int procWolfTiredWait(); - int procWolfMidnaRideShockInit(); - int procWolfMidnaRideShock(); - int procWolfWaitInit(); - int procWolfWait(); - int procWolfMoveInit(); - int procWolfMove(); - int procWolfDashInit(); - int procWolfDash(); - int procWolfDashReverseInit(int); - int procWolfDashReverse(); - int procWolfAtnActorMoveInit(); - int procWolfAtnActorMove(); - int procWolfWaitTurnInit(); - int procWolfWaitTurn(); - int procWolfSideStepInit(int); - int procWolfSideStep(); - int procWolfSideStepLandInit(s16); - int procWolfSideStepLand(); - int procWolfBackJumpInit(int); - int procWolfBackJump(); - int procWolfBackJumpLandInit(s16, s16); - int procWolfBackJumpLand(); - int procWolfHowlInit(int); - int procWolfHowl(); - int procWolfAutoJumpInit(int); - int procWolfAutoJump(); - int procWolfFallInit(int, f32 i_morf); - int procWolfFall(); - int procWolfLandInit(); - int procWolfLand(); - int procWolfSitInit(int); - int procWolfSit(); - int procWolfStepMoveInit(); - int procWolfStepMove(); - int procWolfSlipInit(); - int procWolfSlip(); - int procWolfSlipTurnInit(int); - int procWolfSlipTurn(); - int procWolfSlipTurnLandInit(); - int procWolfSlipTurnLand(); - int procWolfSlideReadyInit(s16 i_angle, int); - int procWolfSlideReady(); - int procWolfSlideInit(s16 i_angle, int); - int procWolfSlide(); - int procWolfSlideLandInit(); - int procWolfSlideLand(); - int procWolfWaitSlipInit(); - int procWolfWaitSlip(); - int procWolfSlopeStartInit(int); - int procWolfSlopeStart(); - void setWolfHowlNotHappen(int); - int procWolfHowlDemoInit(); - int procWolfHowlDemo(); - fopAc_ac_c* checkWolfRopeHit(dCcD_GObjInf* i_collider, cXyz const*, int) const; - int checkWolfRopeJumpHang(); - f32 getWolfRopeMoveSpeed(); - int setWolfRopePosY(); - s16 initWolfRopeShapeAngle(); - void wolfRopeSwingInc(f32); - void setWolfRopeOffsetY(int); - int getDirectionRopeMove() const; - int procWolfRopeMoveInit(int, int); - int procWolfRopeMove(); - int procWolfRopeHangInit(int); - int procWolfRopeHang(); - int procWolfRopeTurnInit(); - int procWolfRopeTurn(); - int procWolfRopeStaggerInit(int); - int procWolfRopeStagger(); - int procWolfRopeSubjectivityInit(); - int procWolfRopeSubjectivity(); - int getWolfTagJumpTime() const; - const cXyz* checkMidnaLockJumpPoint() const; - int procWolfTagJumpInit(fopAc_ac_c* i_tag); - int procWolfTagJump(); - int procWolfTagJumpLandInit(fopAc_ac_c* i_tag); - int procWolfTagJumpLand(); - int procWolfGiantPuzzleInit(); - int procWolfGiantPuzzle(); - void setWolfHangGroundY(); - int changeWolfHangEndProc(); - int procWolfHangReadyInit(); - int procWolfHangReady(); - int procWolfHangWallCatchInit(int); - int procWolfHangWallCatch(); - int procWolfHangFallStartInit(cM3dGPla* i_tripla); - int procWolfHangFallStart(); - void setWolfHeadDamage(); - int procWolfDamageInit(dCcD_GObjInf* i_hitObj); - int procWolfDamage(); - int procWolfLargeDamageUpInit(int, int, s16, s16); - int procWolfLargeDamageUp(); - int procWolfLandDamageInit(int); - int procWolfLandDamage(); - void setWolfScreamWaitAnime(); - int procWolfScreamWaitInit(); - int procWolfScreamWait(); - f32 getWolfLieMoveAnmSpeed(); - f32 getWolfLieMoveSpeed(); - BOOL checkMidnaDisappearMode() const; - BOOL checkWolfLieContinue(int); - int checkNextActionWolfFromLie(); - void setWolfLieMoveVoice(int); - bool checkWolfLieCode(); - int procWolfLieStartInit(int); - int procWolfLieStart(); - int procWolfLieMoveInit(int); - int procWolfLieMove(); - int procWolfLieAutoMoveInit(int, cXyz*); - int procWolfLieAutoMove(); - void setSpeedAndAngleSwimWolf(); - f32 getWolfSwimMoveAnmSpeed(); - int decideDoStatusSwimWolf(); - int procWolfSwimUpInit(); - int procWolfSwimUp(); - int procWolfSwimWaitInit(int); - int procWolfSwimWait(); - int procWolfSwimMoveInit(); - int procWolfSwimMove(); - int procWolfSwimEndWaitInit(int); - int procWolfSwimEndWait(); - void resetWolfEnemyBiteAll(); - void checkWolfEnemyThrowAction(); - void setWolfLockDomeModel(); - void setWolfBallModel(); - void resetWolfBallGrab(); - void checkWolfLockData(); - fopAc_ac_c* getWolfLockActorEnd(); - void searchWolfLockEnemy(fopAc_ac_c* i_actor, void* i_data); - void checkWolfComboCnt(); - BOOL checkWolfAttackAction(); - void setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM i_anmID, f32); - BOOL setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy); - void setWolfBiteDamage(fopEn_enemy_c* i_enemy); - BOOL checkWolfLockAttackChargeState(); - int procWolfRollAttackChargeInit(); - int procWolfRollAttackCharge(); - int procWolfRollAttackMoveInit(); - int procWolfRollAttackMove(); - int procWolfJumpAttackInit(int); - int procWolfJumpAttack(); - int procWolfJumpAttackKickInit(); - int procWolfJumpAttackKick(); - int procWolfJumpAttackSlideLandInit(int, int, int); - int procWolfJumpAttackSlideLand(); - int procWolfJumpAttackNormalLandInit(int); - int procWolfJumpAttackNormalLand(); - int procWolfWaitAttackInit(int); - int procWolfWaitAttack(); - int procWolfRollAttackInit(int, int); - int procWolfRollAttack(); - int procWolfDownAttackInit(); - int procWolfDownAttack(); - int procWolfDownAtLandInit(fopEn_enemy_c* i_enemy); - int procWolfDownAtLand(); - int procWolfDownAtMissLandInit(); - int procWolfDownAtMissLand(); - int procWolfLockAttackInit(int); - int procWolfLockAttack(); - int procWolfLockAttackTurnInit(int); - int procWolfLockAttackTurn(); - int procWolfAttackReverseInit(); - int procWolfAttackReverse(); - int procWolfEnemyThrowInit(int); - int procWolfEnemyThrow(); - int procWolfEnemyHangBiteInit(); - int procWolfEnemyHangBite(); - int procWolfGrabUpInit(); - int procWolfGrabUp(); - int procWolfGrabPutInit(); - int procWolfGrabPut(); - int procWolfGrabThrowInit(); - int procWolfGrabThrow(); - int procWolfPushInit(); - int procWolfPush(); - int procWolfCargoCarryInit(); - int procWolfCargoCarry(); - int procWolfChainUpInit(); - int procWolfChainUp(); - int procWolfGanonCatchInit(); - int procWolfGanonCatch(); - int procWolfChainReadyInit(); - int procWolfChainReady(); - int procWolfChainWaitInit(); - int procWolfChainWait(); - int procWolfDigInit(); - int procWolfDig(); - int procWolfDigThroughInit(int); - int procWolfDigThrough(); - void setSmellSave(); - int procWolfGetSmellInit(); - int procWolfGetSmell(); - void setArcName(BOOL i_isWolf); - void setShieldArcName(); - void setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size); - void setShieldChange(); - int loadModelDVD(); - void setShieldModel(); - int loadShieldModelDVD(); - void changeModelDataDirect(int); - void changeModelDataDirectWolf(int); - void initStatusWindow(); - void statusWindowExecute(const cXyz* i_pos, s16 i_angle); - void statusWindowDraw(); - void resetStatusWindow(); - fopAc_ac_c* getChainGrabActor() { return field_0x2844.getActor(); } - bool checkCokkoGlide() const { - return mProcID == PROC_AUTO_JUMP && mProcVar2.field_0x300c != 0; - } - BOOL checkCameraLargeDamage() const { - return mProcID == PROC_LARGE_DAMAGE || mProcID == PROC_LARGE_DAMAGE_WALL || - mProcID == PROC_LARGE_DAMAGE_UP || mProcID == PROC_WOLF_LARGE_DAMAGE_UP; - } - const cXyz& getHsSubChainTopPos() const { return mIronBallBgChkPos; } - BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; } - fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); } - - virtual bool checkAcceptDungeonWarpAlink(int unused) { - UNUSED(unused); - return checkAcceptWarp(); - } - - virtual daSpinner_c* getSpinnerActor() { - if (checkSpinnerRide()) { - return (daSpinner_c*)mRideAcKeep.getActor(); - } else { - return NULL; - } - } - - virtual s16 getSumouCounter() const { return mProcVar2.field_0x300c; } - virtual s16 checkSumouWithstand() const { return mProcVar3.field_0x300e; } - virtual void setMidnaMsgNum(fopAc_ac_c* i_msgTag, u16 i_msgNum) { - mMidnaMsgNum = i_msgNum; - mMidnaMsg = (daTagMmsg_c*)i_msgTag; - } - virtual MtxP getModelMtx() { return mpLinkModel->getBaseTRMtx(); } - virtual MtxP getInvMtx() { return mInvMtx; } - virtual cXyz* getShadowTalkAtnPos() { return &field_0x375c; } - virtual MtxP getLeftItemMatrix(); - virtual MtxP getRightItemMatrix(); - virtual MtxP getLeftHandMatrix(); - virtual MtxP getRightHandMatrix(); - virtual MtxP getLinkBackBone1Matrix() { return mpLinkModel->getAnmMtx(1); } - virtual MtxP getWolfMouthMatrix() { return mpLinkModel->getAnmMtx(13); } - virtual MtxP getWolfBackbone2Matrix() { return mpLinkModel->getAnmMtx(2); } - virtual MtxP getBottleMtx() { - if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) { - return mHeldItemModel->getBaseTRMtx(); - } - return NULL; - } - - virtual MtxP getHeadMtx() { - return mpLinkModel->getAnmMtx(field_0x30b4); - } - virtual f32 getGroundY() { return mLinkAcch.GetGroundH(); } - virtual f32 getBaseAnimeFrameRate() const { return mUnderFrameCtrl[0].getRate(); } - virtual fpc_ProcID getAtnActorID() const { return mAtnActorID; } - virtual fpc_ProcID getItemID() const { return mItemAcKeep.getID(); } - virtual fpc_ProcID getGrabActorID() const { - if (mEquipItem == 0x102) { - return mItemAcKeep.getID(); - } else { - return mGrabItemAcKeep.getID(); - } - } - virtual void setForcePutPos(cXyz const& pPutPos) { - mForcePutPos = pPutPos; - onEndResetFlg1(ERFLG1_UNK_2000); - } - virtual BOOL checkPlayerGuard() const; - virtual u32 checkPlayerFly() const { - return checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | - MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP); - } - virtual BOOL checkFrontRoll() const { return mProcID == PROC_FRONT_ROLL; } - virtual BOOL checkWolfDash() const { return mProcID == PROC_WOLF_DASH; } - virtual BOOL checkAutoJump() const { - return mProcID == PROC_AUTO_JUMP || mProcID == PROC_WOLF_AUTO_JUMP; - } - virtual bool checkSideStep() const { - return (mProcID == PROC_SIDESTEP || mProcID == PROC_WOLF_SIDESTEP) && - mProcVar1.field_0x300a != 0; - } - virtual bool checkWolfTriggerJump() const { - return mProcID == PROC_WOLF_SIDESTEP || mProcID == PROC_WOLF_JUMP_ATTACK; - } - virtual BOOL checkGuardBreakMode() const { return mProcID == PROC_GUARD_BREAK; } - virtual bool checkLv3Slide() const { - return mProcID == PROC_SLIDE && mProcVar3.field_0x300e != 0; - } - virtual bool checkWolfHowlDemoMode() const { return mProcID == PROC_WOLF_HOWL_DEMO; } - virtual bool checkChainBlockPushPull(); - virtual BOOL checkElecDamage() const { return mProcID == PROC_ELEC_DAMAGE; } - virtual BOOL checkEmptyBottleSwing() const { - return mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && mProcID == PROC_BOTTLE_SWING; - } - virtual BOOL checkBottleSwingMode() const { return mProcID == PROC_BOTTLE_SWING; } - virtual BOOL checkHawkWait() const { return mProcID == PROC_HAWK_SUBJECT; } - virtual BOOL checkGoatThrow() const { - return mProcID == PROC_GOAT_CATCH && mProcVar2.field_0x300c != 0; - } - virtual BOOL checkGoatThrowAfter() const { - return mProcID == PROC_GOAT_CATCH && field_0x3478 > 0.0f; - } - virtual BOOL checkWolfTagLockJump() const { - return mProcID == PROC_WOLF_TAG_JUMP && field_0x3198 == 0; - } - virtual BOOL checkWolfTagLockJumpLand() const { return mProcID == PROC_WOLF_TAG_JUMP_LAND; } - virtual BOOL checkWolfRope(); - virtual BOOL checkWolfRopeHang() const { return mProcID == PROC_WOLF_ROPE_HANG; } - virtual BOOL checkRollJump() const { return mProcID == PROC_ROLL_JUMP; } - virtual BOOL checkGoronRideWait() const { return mProcID == PROC_GORON_RIDE_WAIT; } - virtual BOOL checkWolfChain() const { return mProcID == PROC_WOLF_CHAIN_WAIT; } - virtual BOOL checkWolfWait() const { return mProcID == PROC_WOLF_WAIT; } - virtual BOOL checkWolfJumpAttack() const { return mProcID == PROC_WOLF_JUMP_ATTACK; } - virtual BOOL checkWolfRSit() const { return mProcID == PROC_WOLF_SIT; } - virtual BOOL checkBottleDrinkEnd() const { - return mProcID == PROC_BOTTLE_DRINK && mProcVar3.field_0x300e != 0; - } - virtual BOOL checkWolfDig() const { return mProcID == PROC_WOLF_DIG; } - virtual BOOL checkCutCharge() const { return mProcID == PROC_CUT_TURN_MOVE; } - virtual BOOL checkCutTurnCharge() const { - return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c == 0; - } - virtual BOOL checkCutLargeJumpCharge() const { - return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c != 0; - } - virtual BOOL checkComboCutTurn() const { - return mProcID == PROC_CUT_TURN && mComboCutCount != 0; - } - virtual BOOL checkClimbMove() const { - return mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_LADDER_MOVE || - mProcID == PROC_CLIMB_MOVE_SIDE; - } - virtual BOOL checkGrassWhistle() const { return mProcID == PROC_GRASS_WHISTLE_WAIT; } - virtual BOOL checkBoarRun() const { return mProcID == PROC_BOAR_RUN; } - virtual BOOL checkHorseRideNotReady() const { - return checkHorseRide() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF; - } - virtual f32 getSearchBallScale() const { return mSearchBallScale; } - virtual int checkFastShotTime() { return mFastShotTime; } - virtual f32 getBaseAnimeFrame() const; - virtual void setAnimeFrame(f32 i_frame); - virtual BOOL checkWolfLock(fopAc_ac_c*) const; - virtual bool cancelWolfLock(fopAc_ac_c*); - virtual BOOL exchangeGrabActor(fopAc_ac_c* i_actor); - virtual BOOL setForceGrab(fopAc_ac_c* i_actor, BOOL, BOOL); - virtual u32 checkPlayerNoDraw(); - virtual void voiceStart(u32); - virtual void seStartOnlyReverb(u32); - virtual void seStartOnlyReverbLevel(u32); - virtual void setOutPower(f32, s16, int); - virtual void setGrabCollisionOffset(f32 i_offsetX, f32 i_offsetZ, cBgS_PolyInfo*); - virtual void onFrollCrashFlg(u8 i_flg, BOOL); - virtual MtxP getModelJointMtx(u16 i_jointNo); - virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*); - virtual BOOL checkCutJumpCancelTurn() const { - return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2; - } - virtual bool checkIronBallReturn() const; - virtual bool checkIronBallGroundStop() const; - virtual BOOL checkSingleBoarBattleSecondBowReady() const { - return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0; - } - virtual void setClothesChange(int); - virtual void setPlayerPosAndAngle(const cXyz* i_pos, s16 i_angle, BOOL); - virtual void setPlayerPosAndAngle(const cXyz* i_pos, const csXyz* i_angle); - virtual void setPlayerPosAndAngle(Mtx i_mtx); - virtual bool setThrowDamage(s16, f32, f32, int, int, int); - virtual bool checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int); - virtual int setRollJump(f32 i_speedH, f32 i_speedV, s16 i_angle); - virtual void cancelDungeonWarpReadyNeck() { - if (mProcID != PROC_DUNGEON_WARP_READY) { - return; - } - offModeFlg(MODE_UNK_100); - } - virtual void onSceneChangeArea(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc); - virtual void onSceneChangeAreaJump(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc) { - mExitID = i_exitID | 0x8000; - mExitDirection = i_exitDirection; - mpScnChg = (daScex_c*)i_scexAc; - } - virtual void onSceneChangeDead(u8 param_0, int param_1) { - if (mProcID != PROC_DEAD) { - return; - } - mProcVar5.field_0x3012 = param_0; - field_0x3198 = param_1; - } - virtual u32 checkHorseRide() const; - virtual u32 checkBoarRide() const; - virtual u32 checkCanoeRide() const; - virtual u32 checkBoardRide() const; - virtual u32 checkSpinnerRide() const; - virtual bool checkArrowChargeEnd() const; - virtual bool checkNoEquipItem() const { return mEquipItem == fpcNm_ITEM_NONE; } - virtual bool checkKandelaarSwing(int) const; - virtual s16 getBoardCutTurnOffsetAngleY() const { - if (mProcID == PROC_BOARD_CUT_TURN) { - return mProcVar5.field_0x3012; - } - return 0; - } - virtual cXyz* getMagneBootsTopVec() { return &mMagneBootsTopVec; } - virtual void setCargoCarry(fopAc_ac_c* i_actor) { - mMode = SMODE_CARGO_CARRY; - mCargoCarryAcKeep.setData(i_actor); - } - virtual void setGoronSideMove(fopAc_ac_c* i_actor) { - mMode = SMODE_GORON_THROW; - mCargoCarryAcKeep.setData(i_actor); - } - virtual void setSumouReady(fopAc_ac_c* i_actor) { - mMode = SMODE_SUMO_READY; - mCargoCarryAcKeep.setData(i_actor); - mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_1_e); - } - virtual void setSumouPushBackDirection(s16 param_0) { - if (mProcID != PROC_SUMOU_MOVE) { - return; - } - mProcVar4.field_0x3010 = param_0; - } - virtual void setSumouLoseHeadUp() { - if (mProcID != PROC_SUMOU_WIN_LOSE) { - return; - } - mMode = SMODE_SUMO_LOSE; - } - virtual cXyz* getKandelaarFlamePos(); - virtual bool checkUseKandelaar(int); - virtual void setDkCaught(fopAc_ac_c* i_dkActor); - virtual void onPressedDamage(cXyz const&, s16); - virtual bool checkPriActorOwn(fopAc_ac_c const* i_actor) const { - return field_0x27f4 == i_actor; - } - virtual bool onWolfEnemyBiteAll(fopAc_ac_c* i_enemy, daPy_py_c::daPy_FLG2 i_flag); - virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* i_actor) const { - return field_0x281c.getActorConst() == i_actor; - } - virtual void setWolfEnemyHangBiteAngle(s16 i_angle) { - if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) { - return; - } - mProcVar4.field_0x3010 = i_angle; - } - virtual void setSumouGraspCancelCount(int param_0) { - if (mProcID != PROC_SUMOU_MOVE) { - return; - } - mProcVar2.field_0x300c = param_0; - } - virtual bool checkItemSwordEquip() const { return mEquipItem == 0x103; } - virtual f32 getSinkShapeOffset() const { return mSinkShapeOffset; } - virtual BOOL checkSinkDead() const { return mGndPolyAtt1 == 0xFF; } - virtual BOOL checkCutJumpMode() const { return mProcID == PROC_CUT_JUMP; } - virtual s16 getGiantPuzzleAimAngle() const { return mProcVar2.mPuzzleAimAngle; } - virtual u8 getSwordChangeWaitTimer() const { return mSwordChangeWaitTimer; } - virtual BOOL checkMetamorphose() const { - return mProcID == PROC_METAMORPHOSE && mProcVar1.field_0x300a == 0; - } - virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; } - virtual cXyz* getMidnaAtnPos() const { return (cXyz*)&mMidnaAtnPos; } - virtual bool checkCopyRodEquip() const { return mEquipItem == fpcNm_ITEM_COPY_ROD; } - virtual void setKandelaarMtx(Mtx i_mtx, int, int); - virtual bool getStickAngleFromPlayerShape(s16* o_angle) const; - virtual bool checkSpinnerPathMove(); - virtual bool checkSpinnerTriggerAttack(); - virtual void onSpinnerPathForceRemove(); - virtual int getIronBallBgHit() const; - virtual cXyz* getIronBallCenterPos(); - virtual bool checkCanoeFishingGetLeft() const { - return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 0; - } - virtual bool checkCanoeFishingGetRight() const { - return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 1; - } - virtual u8 checkBeeChildDrink() const { return field_0x2fd3; } - virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return &mZ2WolfHowlMgr; } - virtual BOOL checkWolfHowlSuccessAnime() const { - return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); - } - virtual void skipPortalObjWarp(); - virtual BOOL checkTreasureRupeeReturn(int i_itemNo) const; - virtual void cancelGoronThrowEvent(); - virtual cXyz* getHookshotTopPos(); - virtual bool checkHookshotReturnMode() const; - virtual bool checkHookshotShootReturnMode() const; - virtual bool checkOctaIealHang() const { - return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc == 0; - } - virtual void cancelOctaIealHang() { - if (mProcID != PROC_BOSS_BODY_HANG) { - return; - } - mProcVar3.field_0x300e = 1; - } - virtual void cancelDragonHangBackJump() { - if (mProcID != PROC_BOSS_BODY_HANG) { - return; - } - mProcVar3.field_0x300e = -1; - } - virtual void setOctaIealWildHang() { - if (mProcID != PROC_BOSS_BODY_HANG) { - return; - } - mProcVar0.field_0x3008 = 1; - } - virtual bool checkDragonHangRide() const { - return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0; - } - virtual void playerStartCollisionSE(u32 i_hitID, u32 i_mapinfo) { - mZ2Link.startCollisionSE(i_hitID, i_mapinfo); - } - virtual void changeDragonActor(fopAc_ac_c* i_actor); - virtual u8 getClothesChangeWaitTimer() const { return mClothesChangeWaitTimer; } - virtual u8 getShieldChangeWaitTimer() const { return mShieldChangeWaitTimer; } - virtual BOOL checkBootsOrArmorHeavy() const; - virtual fpc_ProcID getBottleOpenAppearItem() const; - virtual BOOL checkHorseStart() { return checkHorseStart(getLastSceneMode(), getStartMode()); } - virtual BOOL checkCopyRodTopUse(); - - static BOOL checkDebugMoveInput(); - - u32 checkModeFlg(u32 i_flag) const { return mModeFlg & i_flag; } - - BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ATDEFS_e); } - BOOL checkFmChainGrabAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHAIN_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WL_CHAIN_e); } - - BOOL checkAttentionLock() { return mAttention->Lockon(); } - - bool checkUpperAnime(u16 i_resIdx) const { return mUpperAnmHeap[UPPER_2].getIdx() == i_resIdx; } - bool checkUnderAnime(u16 i_resIdx) const { return mUnderAnmHeap[UNDER_2].getIdx() == i_resIdx; } - - bool checkNoSetUpperAnime() const { return mUpperAnmHeap[UPPER_2].checkNoSetIdx(); } - bool checkSwimMoveHandAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_SWIMINGB_e); } - bool checkZoraSwimDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMSW_e); } - bool checkIronBallWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBWAIT_e); } - bool checkHorseTurnLAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNLS_e); } - bool checkHorseTurnRAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNRS_e); } - bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); } - bool checkHookshotShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSSHOOT_e); } - bool checkHookshotReadyAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSWAIT_e); } - BOOL checkHookshotAnime() const { - return checkHookshotReadyAnime() || checkHookshotShootAnime(); - } - BOOL checkBoomerangReadyAnime() const { - return (mEquipItem == fpcNm_ITEM_BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); - } - bool checkDkCaught2Anime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDB_e); } - BOOL checkCopyRodThrowAnime() const { - return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMTHROW_e); - } - BOOL checkCutDashChargeAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CUTDTP_e); } - BOOL checkBoomerangAnimeAndReturnWait() const { return checkBoomerangAnime(); } - BOOL checkTwoHandItemEquipAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TAKE_e); } - BOOL checkBarkAnime() const { return FALSE; } - bool checkWolfGrabAnimeObj() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPA_e); } - bool checkWolfGrabAnimeStick() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPB_e); } - BOOL checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); } - BOOL checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); } - bool checkKandelaarSwingAnime() const { return false; } - bool checkBowChargeWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORDTAME_e); } - bool checkBowReloadAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORD_e); } - bool checkBowShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOT_e); } - bool checkBowWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOTWAIT_e); } - BOOL checkGrabUpThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABTHROW_e); } - BOOL checkGrabSideThrowAnime() const { - return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBTHROW_e) || mUpperAnmHeap[0].getIdx() == dRes_ID_ALANM_BCK_BOMBTHROW_e; - } - BOOL checkGrabHeavyThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HEAVYTHROW_e); } - BOOL checkGrabAnimeUp() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABD_e); } - BOOL checkGrabAnimeSide() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBD_e); } - BOOL checkGrabAnimeCarry() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CARRYD_e); } - bool checkHorseUnderDashStartAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_DSTARTHS_e); } - bool checkHorseUnderLashAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_LASHS_e); } - bool checkUpperHorseLieAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHLIE_e); } - bool checkHorseTiredAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDS_e); } - bool checkHorseSwordUpAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DASHHBSUP_e); } - bool checkHorseUnderItemAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_ATH_e); } - BOOL checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); } - bool checkIronBallPreSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTHROW_e); } - bool checkIronBallSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTURN_e); } - bool checkDashDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMD_e); } - bool checkBoomerangCatchAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOOMCATCH_e); } - BOOL checkCopyRodReadyAnime() const { - return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); - } - BOOL checkCanoeFishingWaitAnime() const { - return checkUpperAnime(dRes_ID_ALANM_BCK_CANOEREELINGR_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WAITFISHR_e); - } - BOOL checkCopyRodControllAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_RODD_e); } - BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_DAM_e); } - BOOL checkExchangeRodAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHANGEROD_e); } - BOOL checkReelAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_REELINGARM_e); } - - int checkWolfEyeUp() const { return mWolfEyeUp; } - void onModeFlg(u32 flag) { mModeFlg |= flag; } - void offModeFlg(u32 flag) { mModeFlg &= ~flag; } - BOOL swordButton() { return itemButtonCheck(BTN_B); } - daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } - int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } - bool checkFisingRodLure() const { return mEquipItem == 0x105; } - BOOL doTrigger() const { return mItemTrigger & BTN_A; } - BOOL swordTrigger() { return itemTriggerCheck(BTN_B); } - BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); } - BOOL arrowChangeTrigger() { return itemActionTrigger(); } - BOOL peepSubjectCancelTrigger() { return itemTriggerCheck(BTN_B); } - int getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } - bool checkInputOnR() const { return mMoveValue > 0.05f; } - static u16 getSightBti() { return 0x5B; } - bool checkBoomerangChargeEndWait() const { - return mEquipItem != 0x102 && checkBoomerangAnime(); - } - J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) { - return mNowAnmPackUpper[param_0].getAnmTransform(); - } - void setFacePriBck(u16 i_resIdx) { setFaceBck(i_resIdx, TRUE, 0xFFFF); } - void setFacePriBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, TRUE, 0xFFFF); } - void setFacePriBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, TRUE, 0xFFFF); } - void setFaceBasicBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0xFFFF); } - void setFaceBasicBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0xFFFF); } - void setFaceBasicBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0xFFFF); } - void setFaceDemoBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0); } - void setFaceDemoBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0); } - void setFaceDemoBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0); } - - void setGrabStatus(u8 i_status, u8 i_flag) { setWallGrabStatus(i_status, i_flag); } - void setChainGrabStatus(u8 i_status) { setGrabStatus(i_status, BUTTON_STATUS_FLAG_EMPHASIS); } - - void cancelFmChainGrabFromOut() { - field_0x2fa3 = 0; - field_0x2844.clearData(); - } - - BOOL checkPlayerDemoMode() const { return mDemo.getDemoType() != 0; } - BOOL checkSpecialDemoMode() const { - return mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e; - } - static BOOL checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); } - u16 getMidnaMsgNum() const { return mMidnaMsgNum; } - u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; } - BOOL checkClimbFall() { return checkLadderFall(); } - - BOOL checkMidnaWolfDashAnime() const { return checkNoResetFlg1(FLG1_DASH_MODE); } - BOOL checkMidnaClingAnime() const { return mMidnaAnm == 1; } - BOOL checkMidnaLowClingAnime() const { return mMidnaAnm == 2; } - BOOL checkMidnaLookAroundAnime() const { return mMidnaAnm == 3; } - BOOL checkMidnaPanicAnime() const { return mMidnaAnm == 5; } - BOOL checkMidnaWolfDeadAnime() const { return mMidnaAnm == 6; } - BOOL checkMidnaWolfSwimDeadAnime() const { return mMidnaAnm == 7; } - BOOL checkMidnaRopeWaitStaggerAnime() const { return mMidnaAnm == 8; } - BOOL checkMidnaRopeMoveStaggerAnime() const { return mMidnaAnm == 9; } - BOOL checkMidnaGanonCatchAnm() const { return mMidnaAnm == 10; } - BOOL checkMidnaGanonThrowLeftAnm() const { return mMidnaAnm == 11; } - BOOL checkMidnaGanonThrowRightAnm() const { return mMidnaAnm == 12; } - BOOL checkMidnaDigInAnime() const { return mMidnaAnm == 13; } - - void clearMidnaMsgNum() { - mMidnaMsgNum = 0xffff; - mMidnaMsg = NULL; - } - - void setEndGanonThrow() { mProcVar3.field_0x300e = 1; } - - s16 getProcNeckX() { return field_0x30a0; } - s16 getMidnaProcNeckY() { return field_0x30d4; } - f32 getEyeMoveRateY() { return field_0x33f4; } - f32 getMidnaEyeMoveRateX() { return field_0x33f8; } - - J3DModel* getMidnaModel() { - if (mClothesChangeWaitTimer != 0) { - return NULL; - } else { - return mpWlMidnaModel; - } - } - - J3DModel* getMidnaMaskModel() { return mpWlMidnaMaskModel; } - J3DModel* getMidnaHandModel() { return mpWlMidnaHandModel; } - J3DModel* getMidnaHairHandModel() { return mpWlMidnaHairModel; } - - cXyz* getMidnaHairAtnPos() { return &mMidnaHairAtnPos; } - - const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; } - const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { - return &m_faceTexDataTable[i_anmID]; - } - - s16 getCameraAngleX() const { return field_0x310a; } - s16 getCameraAngleY() const { return field_0x310c; } - cXyz* getSubjectEyePos() { return &field_0x3768; } - - u32 checkReinRide() const { return mRideStatus == RIDETYPE_HORSE || mRideStatus == RIDETYPE_BOAR; } - int getGrassHowlEventActor() const { return field_0x3198; } - MtxP getShieldMtx() const { return mShieldModel->getBaseTRMtx(); } - MtxP getMagneBootsMtx() { return mMagneBootMtx; } - MtxP getMagneBootsInvMtx() { return mMagneBootInvMtx; } - s16 getMagneBootsModelShapeAngle() const { return field_0x3118; } - - BOOL checkFishingCastMode() const { - return (mProcID == PROC_FISHING_CAST && !(mItemAcKeep.getActor() != NULL && mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt())) || - (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_FISHING_CAST_WAIT) != 0); - } - - BOOL setCanoeCast() { - if (mProcVar2.field_0x300c == 0 && checkCanoeFishingWaitAnime()) { - mProcVar2.field_0x300c = 1; - return TRUE; - } else { - return FALSE; - } - } - - bool checkFishingRodGrabLeft() const { return mItemVar0.field_0x3018 == 0; } - - void setCanoeFishingWaitAngle(s16 i_angle) { field_0x311a = i_angle; } - - void setFishingArnmAngle(s16 i_angle) { field_0x3160.set(0, 0, i_angle); } - void setFishingArm1Angle(const csXyz& i_angle) { mFishingArm1Angle = i_angle; } - void setFishingArm2Angle(const csXyz& i_angle) { field_0x3160 = i_angle; } - - void endFishingCastWait() { offNoResetFlg2(FLG2_FISHING_CAST_WAIT); } - - void startFishingCastWait() { - if (checkFishingRodItem(mEquipItem)) { - onNoResetFlg2(FLG2_FISHING_CAST_WAIT); - } - } - - f32 getFishingReelFrame() const { return mUpperFrameCtrl[2].getFrame(); } - - void changeFishGetFace(u8 param_0) { field_0x2fc8 = param_0; } - - BOOL checkSlideMode() { - return mProcID == PROC_SLIDE || mProcID == PROC_SLIDE_LAND || - mProcID == PROC_WOLF_SLIDE_READY || mProcID == PROC_WOLF_SLIDE_LAND || - mProcID == PROC_WOLF_SLIDE; - } - - BOOL checkHorseGetItem() const { - return (mProcID == PROC_GET_ITEM && checkHorseRide()) || mProcID == PROC_HORSE_GET_KEY; - } - - bool checkFisingRodJewl() const { - return (mEquipItem == fpcNm_ITEM_JEWEL_ROD || mEquipItem == fpcNm_ITEM_JEWEL_WORM_ROD) || mEquipItem == fpcNm_ITEM_JEWEL_BEE_ROD; - } - - bool checkFisingRodWorm() const { return mItemMode == fpcNm_ITEM_WORM; } - - bool checkFisingRodBee() const { return mItemMode == fpcNm_ITEM_BEE_CHILD; } - - void fishingCastWaitAnimeStart() { - if (mProcID == PROC_FISHING_CAST) { - mProcVar3.field_0x300e = 0; - } - } - - void fishingCastWaitAnimeStop() { - if (mProcID == PROC_FISHING_CAST) { - mProcVar3.field_0x300e = 1; - } - } - - MtxP getCopyRodMtx() { - if (mHeldItemModel != NULL) { - return mHeldItemModel->getAnmMtx(0); - } - return NULL; - } - - cXyz* getRootPosP() { return &field_0x3834; } - const cXyz& getBoomerangCatchPos() const { return field_0x3534; } - f32 getCopyRodBallDisFlyMax() const { return mSearchBallScale; } - - void clearIronBallActor() { field_0x173c.SetActor(this); } - BOOL checkCanoeRideOwn(const fopAc_ac_c* i_actor) const { - return checkCanoeRide() && mRideAcKeep.getActorConst() == i_actor; - } - BOOL checkBoarRideOwn(const fopAc_ac_c* i_actor) const { - return checkBoarRide() && mRideAcKeep.getActorConst() == i_actor; - } - u32 checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } - bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; } - - J3DModel* initModel(J3DModelData* i_modelData, u32 i_diffFlags) { - return initModel(i_modelData, 0x80000, i_diffFlags); - } - - J3DModel* initModelEnv(J3DModelData* i_modelData, u32 i_diffFlags) { - return initModel(i_modelData, 0, i_diffFlags); - } - - bool checkResetRootMtx(int param_0) const { return field_0x2f90 != 0 && param_0 == 1; } - - BOOL checkGrabGlide() { return checkGrabRooster(); } - - bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; } - bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; } - bool checkHorseHangMode() const { return mProcID == PROC_HORSE_HANG; } - bool checkHorseBackInput() const { return mProcID == PROC_HORSE_WAIT; } - bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; } - bool checkHorseTurnMode() const { return mProcID == PROC_HORSE_TURN; } - bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; } - s16 checkSpinnerRideWait() const { - return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0; - } - bool checkCopyRodSwingMode() { return mProcID == PROC_COPY_ROD_SWING; } - bool checkCopyRodSwingModeInit() { - return mProcID == PROC_COPY_ROD_SWING && mProcVar2.field_0x300c != 0; - } - float transAnimeMoveX() { return field_0x3464; } - float transAnimeMoveZ() { return field_0x3468; } - bool checkRoofSwitchHang() const { return mProcID == PROC_ROOF_SWITCH_HANG; } - bool checkCanoeWait() const { return mProcID == PROC_CANOE_WAIT; } - bool checkCanoeSubjectivity() const { return mProcID == PROC_CANOE_SUBJECTIVITY; } - - fopAc_ac_c* getCopyRodActor() { return mCopyRodAcKeep.getActor(); } - fopAc_ac_c* getHookshotRoofWaitActor() { return mCargoCarryAcKeep.getActor(); } - - BOOL checkRideOn() const { return mRideStatus != 0; } - - BOOL checkSwimDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } - - BOOL talkTrigger() const { return mItemTrigger & BTN_A; } - J3DAnmTransform* getNowAnmPackUnder(daAlink_UNDER i_idx) { - return mNowAnmPackUnder[i_idx].getAnmTransform(); - } - BOOL doButton() const { return mItemButton & BTN_A; } - void setGrassCancelStatus(u8 i_status) { setBStatus(i_status); } - - void seStartSystem(u32 i_soundID) { mDoAud_seStart(i_soundID, NULL, 0, 0); } - bool checkIronBallEquip() const { return mEquipItem == fpcNm_ITEM_IRONBALL; } - BOOL checkFishingRodEquip() const { return checkFishingRodItem(mEquipItem); } - - f32 getAnmSpeedStickRate(f32 param_0, f32 param_1) const { - return param_0 + (mStickValue * (param_1 - param_0)); - } - - BOOL escapeTrigger() { - mUseButtonFlags |= (u8)BTN_B; - return mItemTrigger & (BTN_A | BTN_B); - } - - void clearComboReserb() { offNoResetFlg2(FLG2_COMBO_RESERB); } - - void setDamageColorTime() { mDamageColorTime = 32 - (mDamageTimer % 16); } - - BOOL setEnemyBomb(fopAc_ac_c* i_actor) { return exchangeGrabActor(i_actor); } - - void decrementBombCnt() { - if (mActiveBombNum != 0) { - mActiveBombNum--; - } - } - - void decrementInsectBombCnt() { - if (field_0x2fcf != 0) { - field_0x2fcf--; - } - } - - // Gets the cardinal direction of the Left Stick relative to player facing angle - int getDirectionFromShapeAngle() const { - return getDirectionFromAngle(mMoveAngle - shape_angle.y); - } - - // Gets the cardinal direction of the Left Stick relative to player angle - int getDirectionFromCurrentAngle() const { - return getDirectionFromAngle(mMoveAngle - current.angle.y); - } - - bool checkAnmEnd(daPy_frameCtrl_c* i_frameCtrl) { return i_frameCtrl->checkAnmEnd(); } - - BOOL checkCrawlWaterIn() { return mWaterY > current.pos.y + 15.5f; } - - MtxP getWolfMidnaMatrix() { return mpLinkModel->getAnmMtx(0x19); } - s16 getIceDamageWaitTimer() const { return mIceDamageWaitTimer; } - const cXyz& getWindSpeed() const { return mWindSpeed; } - const cXyz& getHsChainTopPos() const { return mHookshotTopPos; } - const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; } - const cXyz& getHsSubChainRootPos() const { return field_0x3810; } - const csXyz& getHsAngle() const { return field_0x316c; } - - s16 getHookshotStopTime() const { return field_0x3026; } - bool getHookshotLeft() const { return field_0x3020 == 0; } - - static u16 getBallModelIdx() { return 0x25; } - static u16 getBallBtkIdx() { return 0x49; } - static u16 getBallBrkIdx() { return 0x41; } - - BOOL checkRootTransClearMode() { return field_0x2f99 & 7; } - BOOL checkRootTransZClearMode() { return field_0x2f99 & 4; } - BOOL checkRootTransXClearMode() { return field_0x2f99 & 1; } - BOOL checkRootTransYClearMode() { return field_0x2f99 & 2; } - BOOL checkRootTransClearContinueMode() { return field_0x2f99 & 8; } - s16 checkWindStoneHowl() { return mProcVar4.field_0x3010; } - u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); } - u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); } - u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); } - s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); } - Z2WolfHowlLine getCorrectLine(u8 i_lineIndex) { return mZ2WolfHowlMgr.getCorrectLine(i_lineIndex); } - void startWindStoneSound(s8 i_curveID, Vec* i_pos) { mZ2WolfHowlMgr.startWindStoneSound(i_curveID, i_pos); } - J3DModelData* getItemModelData() { return mpItemModelData; } - - cXyz* getIronBallChainPos() const { return mIronBallChainPos; } - csXyz* getIronBallChainAngle() const { return mIronBallChainAngle; } - s16 getIronBallHandChainNum() const { return mItemMode; } - const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; } - - fopAc_ac_c* getAtnActor() { return mTargetedActor; } - - void itemHitSE(u32 i_soundID, u32 i_mapinfo, Z2SoundObjBase* i_other) { - mZ2Link.startHitItemSE(i_soundID, i_mapinfo, i_other, -1.0f); - } - - BOOL checkStartFall() { return getStartMode() == 3; } - - u8 getBStatus() { return dComIfGp_getAStatus(); } - void setRStatus(u8 i_status, u8 i_flag) { dComIfGp_setRStatus(i_status, i_flag); } - - BOOL checkWindSpeedMoveXZ() const { return mWindSpeed.abs2XZ() > 1.0f; } - - BOOL checkHorseRideReady() const { return checkHorseRideOn() || checkHorseGetOffMode(); } - - void getHorseReinCenterLeftPos(cXyz* o_pos) { - mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftInSidePos, o_pos); - } - - void getHorseReinCenterRightPos(cXyz* o_pos) { - mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos); - } - - cXyz* getLineTopPosP() { return mSight.getPosP(); } - - cXyz* getBoomerangLockPosP() { return &mHeldItemRootPos; } - - BOOL boomerangLockTrigger() { return itemActionTrigger(); } - - bool checkBoomerangChargeNow() { return FALSE; } - - BOOL checkBoomerangLockTrigger() { return boomerangLockTrigger(); } - - BOOL checkDemoSpinnerKeep() const { - return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 1; - } - - BOOL checkDemoSpinnerKeepSpeed() const { - return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 2; - } - - bool checkSpinnerRideOwn(const fopAc_ac_c* i_actor) { - return checkSpinnerRide() && mRideAcKeep.getActorConst() == i_actor; - } - - BOOL checkSpinnerReady() const { return mProcID == PROC_SPINNER_READY; } - - BOOL checkGameOverWindow() const { return mProcID == PROC_DEAD && field_0x3478 < 0.01f; } - - f32 getSlideLimit() const { return field_0x3470; } - - bool checkWindSpeedOnXZ() const { return field_0x35b8.abs2XZ() > 1.0f; } - - inline void startRestartRoomFromOut(int, u32, int); - - u16 getReadyItem() { return dComIfGp_getSelectItem(mSelectItemId); } - - static u32 getOtherHeapSize() { return 0xF0A60; } - - static daAlink_BckData const m_mainBckShield[20]; - static daAlink_BckData const m_mainBckSword[5]; - static daAlink_BckData const m_mainBckFishing[28]; - static daAlink_AnmData const m_anmDataTable[ANM_MAX]; - static daAlink_WlAnmData const m_wlAnmDataTable[WANM_MAX]; - static daAlink_FaceTexData const m_faceTexDataTable[]; - static Vec const m_handLeftOutSidePos; - static Vec const m_handRightOutSidePos; - static Vec const m_handLeftInSidePos; - static Vec const m_handRightInSidePos; - - static daAlink_procInitTable m_procInitTable[]; - static daAlink_procFunc m_demoInitTable[]; - static EffParamProc m_fEffParamProc[]; - - /* 0x0062C */ request_of_phase_process_class mPhaseReq; - /* 0x00634 */ const char* mArcName; - /* 0x00638 */ JKRExpHeap* mpArcHeap; - /* 0x0063C */ request_of_phase_process_class mShieldPhaseReq; - /* 0x00644 */ const char* mShieldArcName; - /* 0x00648 */ JKRExpHeap* mpShieldArcHeap; - /* 0x0064C */ J3DModelData* field_0x064C; - /* 0x00650 */ J3DModel* mpLinkModel; - /* 0x00654 */ J3DModel* mpLinkFaceModel; - /* 0x00658 */ J3DModel* mpLinkHatModel; - /* 0x0065C */ J3DModel* mpLinkHandModel; - /* 0x00660 */ J3DModel* mpSwAModel; // Ordon Sword model - /* 0x00664 */ J3DModel* mpSwASheathModel; // Ordon Sword sheath model - /* 0x00668 */ J3DModel* mpSwMModel; // Master Sword model - /* 0x0066C */ J3DModel* mpSwMSheathModel; // Master Sword sheath model - /* 0x00670 */ J3DModel* mWoodSwordModel; - /* 0x00674 */ J3DModel* mpWlChangeModel; - /* 0x00678 */ J3DModel* mShieldModel; - /* 0x0067C */ J3DAnmTevRegKey* mMagicArmorBodyBrk; - /* 0x00680 */ J3DAnmTevRegKey* mMagicArmorHeadBrk; - /* 0x00684 */ J3DModel* mpDemoFCBlendModel; - /* 0x00688 */ J3DModel* mpDemoFCTongueModel; - /* 0x0068C */ J3DAnmTextureSRTKey* field_0x068c; - /* 0x00690 */ mDoExt_bckAnm* mpDemoFCTmpBck; - /* 0x00694 */ J3DDeformData* mpDemoFCTmpBls; - /* 0x00698 */ J3DAnmCluster* field_0x0698; - /* 0x0069C */ mDoExt_blkAnm* field_0x069c; - /* 0x006A0 */ J3DModel* mpDemoHLTmpModel; - /* 0x006A4 */ mDoExt_bckAnm* mpDemoHLTmpBck; - /* 0x006A8 */ J3DModel* mpDemoHRTmpModel; - /* 0x006AC */ mDoExt_bckAnm* mpDemoHRTmpBck; - /* 0x006B0 */ mDoExt_bckAnm* mpDemoHDTmpBck; - /* 0x006B4 */ J3DAnmTransform* field_0x06b4; - /* 0x006B8 */ J3DModel* mSwordModel; - /* 0x006BC */ J3DModel* mSheathModel; - /* 0x006C0 */ J3DModelData* field_0x06c0; - /* 0x006C4 */ J3DAnmTextureSRTKey* m_nSwordBtk; - /* 0x006C8 */ J3DAnmTextureSRTKey* m_mSwordBtk; - /* 0x006CC */ J3DAnmTevRegKey* m_mSwordBrk; - /* 0x006D0 */ J3DShape* field_0x06d0; - /* 0x006D4 */ J3DShape* field_0x06d4; - /* 0x006D8 */ J3DShape* field_0x06d8; - /* 0x006DC */ J3DShape* field_0x06dc; - /* 0x006E0 */ J3DShape* field_0x06e0; - /* 0x006E4 */ J3DShape* field_0x06e4; - /* 0x006E8 */ J3DShape* field_0x06e8; - /* 0x006EC */ J3DShape* field_0x06ec; - /* 0x006F0 */ J3DShape* field_0x06f0; - /* 0x006F4 */ J3DAnmTevRegKey* field_0x06f4; - /* 0x006F8 */ J3DAnmTevRegKey* field_0x06f8; - /* 0x006FC */ J3DModel* mpKanteraModel; - /* 0x00700 */ J3DModel* mpKanteraGlowModel; - /* 0x00704 */ J3DAnmTextureSRTKey* mpKanteraGlowBtk; - /* 0x00708 */ J3DModel* mHeldItemModel; - /* 0x0070C */ J3DModel* mpHookTipModel; // related to held item - /* 0x00710 */ J3DModel* field_0x0710; // related to held item - /* 0x00714 */ J3DModel* field_0x0714; // related to held item - /* 0x00718 */ J3DAnmTextureSRTKey* field_0x0718; - /* 0x0071C */ J3DAnmTextureSRTKey* field_0x071c; - /* 0x00720 */ J3DAnmTextureSRTKey* field_0x0720; - /* 0x00724 */ J3DAnmTevRegKey* field_0x0724; - /* 0x00728 */ J3DAnmBase* field_0x0728; - /* 0x0072C */ J3DAnmTexPattern* field_0x072c; - /* 0x00730 */ mDoExt_bckAnm mItemBck; - /* 0x0074C */ mDoExt_bckAnm mHookTipBck; - /* 0x00768 */ J3DModelData* mpItemModelData; - /* 0x0076C */ Z2SoundObjSimple* mpHookSound; - /* 0x00770 */ hsChainShape_c* mpHookChain; - /* 0x00774 */ dBgS_AcchCir* field_0x0774; - /* 0x00778 */ dBgS_ObjAcch* field_0x0778; - /* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk; - /* 0x00780 */ dBgS_ObjLinChk* field_0x780; - /* 0x00784 */ J3DModel* mpLinkBootModels[2]; - /* 0x0078C */ J3DModel* mpWlChainModels[4]; - /* 0x0079C */ J3DModel* mpWlMidnaModel; - /* 0x007A0 */ J3DModel* mpWlMidnaMaskModel; - /* 0x007A4 */ J3DModel* mpWlMidnaHandModel; - /* 0x007A8 */ J3DModel* mpWlMidnaHairModel; - /* 0x007AC */ J3DAnmTevRegKey* mpDMidnaBrk; - /* 0x007B0 */ J3DAnmTevRegKey* mpDMidnaMaskBrk; - /* 0x007B4 */ J3DAnmTevRegKey* mpDMidnaHandBrk; - /* 0x007B8 */ J3DAnmTevRegKey* mpDMidnaHairHandBrk; - /* 0x007BC */ mDoExt_bckAnm* m_sWindowBck; - /* 0x007C0 */ void* mpWarpTexData; - /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; - /* 0x00814 */ dCcD_Stts mCcStts; - /* 0x00850 */ dCcD_Cyl mTgCyls[3]; - /* 0x00C04 */ dCcD_Cyl mWindTgCyls[3]; - /* 0x00FB8 */ dCcD_Sph mAtSph; - /* 0x010F0 */ dCcD_Cyl mAtCyl; - /* 0x0122C */ dCcD_Cps mAtCps[3]; - /* 0x015F8 */ dCcD_Cps mGuardAtCps; - /* 0x0173C */ dCcD_Stts field_0x173c; // related to ball and chain - /* 0x01778 */ dCcD_Sph field_0x1778; - /* 0x018B0 */ dBgS_AcchCir mAcchCir[3]; - /* 0x01970 */ dBgS_LinkAcch mLinkAcch; - /* 0x01B48 */ dBgS_LinkLinChk mLinkLinChk; - /* 0x01BB8 */ dBgS_RopeLinChk mRopeLinChk; - /* 0x01C28 */ dBgS_BoomerangLinChk mBoomerangLinChk; - /* 0x01C98 */ dBgS_ArrowLinChk mArrowLinChk; - /* 0x01D08 */ dBgS_LinkGndChk mLinkGndChk; - /* 0x01D5C */ dBgS_LinkRoofChk mLinkRoofChk; - /* 0x01DAC */ dBgS_LinkLinChk mMagneLineChk; - /* 0x01E1C */ cBgS_PolyInfo mPolyInfo1; - /* 0x01E2C */ cBgS_PolyInfo mPolyInfo2; - /* 0x01E3C */ cBgS_PolyInfo mPolyInfo3; - /* 0x01E4C */ cBgS_PolyInfo mPolyInfo4; - /* 0x01E5C */ dBgS_ObjLinChk mObjLinChk; - /* 0x01ECC */ dBgS_ObjGndChk mObjGndChk; - /* 0x01F20 */ mDoExt_MtxCalcAnmBlendTbl* field_0x1f20; - /* 0x01F24 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f24; - /* 0x01F28 */ mDoExt_AnmRatioPack mNowAnmPackUnder[3]; - /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPackUpper[3]; - /* 0x01F58 */ daPy_anmHeap_c mUnderAnmHeap[3]; - /* 0x01F94 */ daPy_anmHeap_c mUpperAnmHeap[3]; - /* 0x01FD0 */ daPy_frameCtrl_c mUnderFrameCtrl[3]; - /* 0x02018 */ daPy_frameCtrl_c mUpperFrameCtrl[3]; - /* 0x02060 */ mDoExt_MtxCalcOldFrame* field_0x2060; - /* 0x02064 */ daAlink_sight_c mSight; -#if PLATFORM_WII - u8 unk_0x20f0[4]; -#endif - /* 0x020F0 */ daPy_anmHeap_c mAnmHeap3; - /* 0x02104 */ daPy_anmHeap_c mAnmHeap4; - /* 0x02118 */ daPy_anmHeap_c mFaceBtpHeap; - /* 0x0212C */ daPy_anmHeap_c mFaceBtkHeap; - /* 0x02140 */ daPy_anmHeap_c mFaceBckHeap; - /* 0x02154 */ J3DAnmTexPattern* mpFaceBtp; - /* 0x02158 */ J3DAnmTextureSRTKey* mpFaceBtk; - /* 0x0215C */ daPy_frameCtrl_c* field_0x215c; - /* 0x02160 */ const s8* field_0x2160; - /* 0x02164 */ mDoExt_bckAnm mFaceBck; - /* 0x02180 */ daAlink_matAnm_c* field_0x2180[2]; - /* 0x02188 */ dEyeHL_c mEyeHL1; - /* 0x0219C */ dEyeHL_c mEyeHL2; - /* 0x021B0 */ daPy_anmHeap_c mItemHeap[2]; - /* 0x021D8 */ daPy_anmHeap_c mAnmHeap9; - /* 0x021EC */ daAlinkHIO_c* mpHIO; - /* 0x021F0 */ daAlink_blur_c m_swordBlur; - /* 0x027C8 */ dAlink_bottleWaterPcallBack_c field_0x27c8; - /* 0x027E0 */ dAttention_c* mAttention; - /* 0x027E4 */ dAttList_c* mAttList; - /* 0x027E8 */ dAttList_c* mAttList2; - /* 0x027EC */ fopAc_ac_c* mTargetedActor; - /* 0x027F0 */ fopAc_ac_c* field_0x27f0; - /* 0x027F4 */ fopAc_ac_c* field_0x27f4; - /* 0x027F8 */ fopAc_ac_c* field_0x27f8; - /* 0x027FC */ fopAc_ac_c* field_0x27fc; - /* 0x02800 */ daTagMmsg_c* mMidnaMsg; - /* 0x02804 */ fopAc_ac_c* field_0x2804; - /* 0x02808 */ daScex_c* mpScnChg; - /* 0x0280C */ daPy_actorKeep_c field_0x280c; - /* 0x02814 */ daPy_actorKeep_c mRideAcKeep; - /* 0x0281C */ daPy_actorKeep_c field_0x281c; - /* 0x02824 */ daPy_actorKeep_c mItemAcKeep; // name might be wrong - /* 0x0282C */ daPy_actorKeep_c mGrabItemAcKeep; - /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangAcKeep; - /* 0x0283C */ daPy_actorKeep_c mCopyRodAcKeep; - /* 0x02844 */ daPy_actorKeep_c field_0x2844; - /* 0x0284C */ daPy_actorKeep_c mHookTargetAcKeep; - /* 0x02854 */ daPy_actorKeep_c mCargoCarryAcKeep; - /* 0x0285C */ daPy_actorKeep_c field_0x285c; - /* 0x02864 */ dMsgFlow_c mMsgFlow; - /* 0x028B0 */ fpc_ProcID mShieldArrowIDs[16]; - /* 0x028F0 */ fpc_ProcID mMsgClassID; - /* 0x028F4 */ fpc_ProcID mAtnActorID; - /* 0x028F8 */ fpc_ProcID field_0x28f8; - /* 0x028FC */ fpc_ProcID field_0x28fc; - /* 0x02900 */ fpc_ProcID mRideActorID; - /* 0x02904 */ daAlink_footData_c mFootData1[2]; - /* 0x02A4C */ daAlink_footData_c mFootData2[2]; - /* 0x02B94 */ f32 field_0x2b94; - /* 0x02B98 */ f32 field_0x2b98; - /* 0x02B98 */ f32 field_0x2b9c; - /* 0x02BA0 */ f32 field_0x2ba0; - /* 0x02BA4 */ f32 field_0x2ba4; - /* 0x02BA8 */ f32 mSinkShapeOffset; - /* 0x02BAC */ f32 mAcchCirWallH[3]; - /* 0x02BB8 */ Mtx mInvMtx; - /* 0x02BE8 */ Mtx field_0x2be8; - /* 0x02C18 */ Mtx mRootMtx; - /* 0x02C48 */ Mtx mMagneBootMtx; - /* 0x02C78 */ Mtx mMagneBootInvMtx; - /* 0x02CA8 */ Z2CreatureLink mZ2Link; - /* 0x02D78 */ u8* field_0x2d78; - /* 0x02D7C */ daPy_frameCtrl_c* field_0x2d7c; - /* 0x02D80 */ void* field_0x2d80; - /* 0x02D84 */ Z2WolfHowlMgr mZ2WolfHowlMgr; - /* 0x02E44 */ dJntCol_c field_0x2e44; - /* 0x02E54 */ dPaPoF_c field_0x2e54; - /* 0x02F1C */ dPaPo_c* field_0x2f1c; - /* 0x02F20 */ dPa_hermiteEcallBack_c field_0x2f20; - /* 0x02F38 */ dPa_hermiteEcallBack_c field_0x2f38; - /* 0x02F50 */ const Vec* field_0x2f50; - /* 0x02F54 */ const Vec* field_0x2f54; - /* 0x02F58 */ dPath* field_0x2f58; - /* 0x02F5C */ LIGHT_INFLUENCE mMagneBootsPlight; - /* 0x02F7C */ u8 field_0x2f7c[16]; - /* 0x02F8C */ u8 field_0x2f8c; - /* 0x02F8D */ u8 mItemTrigger; - /* 0x02F8E */ u8 mItemButton; - /* 0x02F8F */ u8 field_0x2f8f; - /* 0x02F90 */ u8 field_0x2f90; - /* 0x02F91 */ u8 field_0x2f91; - /* 0x02F92 */ u8 mLeftHandIndex; - /* 0x02F93 */ u8 mRightHandIndex; - /* 0x02F94 */ u8 field_0x2f94; - /* 0x02F95 */ u8 field_0x2f95; - /* 0x02F96 */ u8 field_0x2f96; - /* 0x02F97 */ u8 field_0x2f97; - /* 0x02F98 */ u8 field_0x2f98; - /* 0x02F99 */ u8 field_0x2f99; - /* 0x02F9A */ s8 mVoiceReverbIntensity; - /* 0x02F9B */ u8 mMidnaAnm; - /* 0x02F9C */ u8 mSelectItemId; - /* 0x02F9D */ u8 field_0x2f9d; - /* 0x02F9E */ u8 mEffProc; - /* 0x02F9F */ u8 field_0x2f9f; - /* 0x02FA0 */ u8 field_0x2fa0; - /* 0x02FA1 */ u8 mRunCutComboCount; - /* 0x02FA2 */ u8 mActiveBombNum; - /* 0x02FA3 */ u8 field_0x2fa3; - /* 0x02FA4 */ u8 mRollCrashFlg; - /* 0x02FA5 */ u8 mPolySound; - /* 0x02FA6 */ u8 field_0x2fa6; - /* 0x02FA7 */ u8 field_0x2fa7; - /* 0x02FA8 */ u8 mGndPolySpecialCode; - /* 0x02FA9 */ u8 mWolfEyeUpTimer; - /* 0x02FAA */ u8 mRideStatus; - /* 0x02FAB */ u8 field_0x2fab; - /* 0x02FAC */ u8 mExitDirection; - /* 0x02FAD */ u8 mPeepExitID; - /* 0x02FAE */ u8 mUseButtonFlags; - /* 0x02FAF */ u8 field_0x2faf; - /* 0x02FB0 */ u8 field_0x2fb0; - /* 0x02FB1 */ u8 mWolfLockNum; - /* 0x02FB2 */ u8 mMidnaTalkDelayTimer; - /* 0x02FB3 */ u8 field_0x2fb3; - /* 0x02FB4 */ u8 field_0x2fb4; - /* 0x02FB5 */ u8 mDamageColorTime; - /* 0x02FB6 */ u8 field_0x2fb6; - /* 0x02FB7 */ u8 field_0x2fb7; - /* 0x02FB8 */ u8 field_0x2fb8; - /* 0x02FB9 */ u8 field_0x2fb9; - /* 0x02FBA */ u8 mHotspringRecoverTimer; - /* 0x02FBB */ u8 mGndPolyAtt0; - /* 0x02FBC */ u8 field_0x2fbc; - /* 0x02FBD */ u8 mGndPolyAtt1; - /* 0x02FBE */ u8 field_0x2fbe; - /* 0x02FBF */ u8 mClothesChangeWaitTimer; - /* 0x02FC0 */ u8 field_0x2fc0; - /* 0x02FC1 */ u8 field_0x2fc1; - /* 0x02FC2 */ u8 field_0x2fc2; - /* 0x02FC3 */ u8 field_0x2fc3; - /* 0x02FC4 */ u8 field_0x2fc4; - /* 0x02FC5 */ u8 field_0x2fc5; - /* 0x02FC6 */ u8 field_0x2fc6; - /* 0x02FC7 */ u8 field_0x2fc7; - /* 0x02FC8 */ u8 field_0x2fc8; - /* 0x02FC9 */ u8 field_0x2fc9; - /* 0x02FCA */ u8 field_0x2fca; - /* 0x02FCB */ u8 field_0x2fcb; - /* 0x02FCC */ u8 field_0x2fcc; - /* 0x02FCD */ u8 field_0x2fcd; - /* 0x02FCE */ u8 field_0x2fce; - /* 0x02FCF */ u8 field_0x2fcf; - /* 0x02FD0 */ u8 field_0x2fd0; - /* 0x02FD1 */ u8 mShieldChangeWaitTimer; - /* 0x02FD2 */ u8 field_0x2fd2; - /* 0x02FD3 */ u8 field_0x2fd3; - /* 0x02FD4 */ u8 field_0x2fd4; - /* 0x02FD5 */ u8 field_0x2fd5; - /* 0x02FD6 */ u8 mSwordChangeWaitTimer; - /* 0x02FD7 */ u8 field_0x2fd7; - /* 0x02FD8 */ u8 field_0x2fd8; - /* 0x02FD9 */ u8 field_0x2fd9[3]; - /* 0x02FDC */ u16 mEquipItem; - /* 0x02FDE */ u16 field_0x2fde; - /* 0x02FE0 */ s16 mStickAngle; - /* 0x02FE2 */ s16 mMoveAngle; // related to current stick angle - /* 0x02FE4 */ s16 field_0x2fe4; - /* 0x02FE6 */ s16 mPrevAngleY; - /* 0x02FE8 */ u16 mProcID; - /* 0x02FEA */ u16 field_0x2fea; - /* 0x02FEC */ s16 field_0x2fec; - /* 0x02FEE */ s16 field_0x2fee; - /* 0x02FF0 */ s16 field_0x2ff0; - /* 0x02FF2 */ s16 field_0x2ff2; - /* 0x02FF4 */ s16 field_0x2ff4; - /* 0x02FF6 */ s16 field_0x2ff6; - /* 0x02FF8 */ s16 field_0x2ff8; - /* 0x02FFA */ s16 field_0x2ffa; - /* 0x02FFC */ s16 field_0x2ffc; - /* 0x02FFE */ s16 field_0x2ffe; - /* 0x03000 */ s16 field_0x3000; - /* 0x03002 */ s16 field_0x3002; - /* 0x03004 */ s16 field_0x3004; - /* 0x03006 */ s16 mIceDamageWaitTimer; - // `mProcVar`'s are variables that are context dependent for each `PROC` action. - // (The exact setup may need to be simplified later) - union { - s16 field_0x3008; - s16 mHowlExitID; - s16 mIceFreezeTimer; - } /* 0x03008 */ mProcVar0; - union { - s16 field_0x300a; - s16 mBoardSwordChargeTime; - s16 mDigActorName; - } /* 0x0300A */ mProcVar1; - union { - s16 field_0x300c; - s16 mPuzzleAimAngle; - s16 mDigType; - } /* 0x0300C */ mProcVar2; - union { - s16 field_0x300e; - s16 mDigChangeArea; - } /* 0x0300E */ mProcVar3; - union { - s16 field_0x3010; - s16 mDigExitID; - } /* 0x03010 */ mProcVar4; - union { - s16 field_0x3012; - s16 mCutTurnChargeCheckTimer; - } /* 0x03012 */ mProcVar5; - /* 0x03014 */ s16 mFallVoiceInit; - /* 0x03016 */ u8 field_0x3016[2]; - union { - s16 field_0x3018; - s16 mBottleItemHealAmount; - } /* 0x03018 */ mItemVar0; - /* 0x0301A */ s16 mItemMode; - /* 0x0301C */ s16 field_0x301c; - /* 0x0301E */ s16 field_0x301e; - /* 0x03020 */ s16 field_0x3020; - /* 0x03022 */ s16 field_0x3022; - /* 0x03024 */ s16 field_0x3024; - /* 0x03026 */ s16 field_0x3026; - /* 0x03028 */ s16 field_0x3028; - /* 0x0302A */ u8 field_0x302a[2]; - /* 0x0302C */ s16 field_0x302c[10]; - /* 0x03040 */ s16 field_0x3040[10]; - /* 0x03054 */ s16 field_0x3054[3]; - /* 0x0305A */ s16 field_0x305a[3]; - /* 0x03060 */ s16 field_0x3060; - /* 0x03062 */ s16 field_0x3062; - /* 0x03064 */ s16 field_0x3064; - /* 0x03066 */ s16 field_0x3066[3]; - /* 0x0306C */ s16 field_0x306c; - /* 0x0306E */ s16 field_0x306e; - /* 0x03070 */ s16 field_0x3070; - /* 0x03072 */ s16 field_0x3072; - /* 0x03074 */ s16 field_0x3074; - /* 0x03076 */ s16 field_0x3076; - /* 0x03078 */ s16 field_0x3078; - /* 0x0307A */ s16 mStickSpinTimer; - /* 0x0307C */ s16 mPrevStickAngle; - /* 0x0307E */ s16 field_0x307e; - /* 0x03080 */ s16 field_0x3080; - /* 0x03082 */ s16 field_0x3082; - /* 0x03084 */ u16 field_0x3084; - /* 0x03086 */ u16 field_0x3086; - /* 0x03088 */ s16 field_0x3088; - /* 0x0308A */ s16 field_0x308a; - /* 0x0308C */ s16 field_0x308c; - /* 0x0308E */ s16 mFastShotTime; - /* 0x03090 */ s16 field_0x3090; - /* 0x03092 */ s16 field_0x3092; - /* 0x03094 */ s16 field_0x3094[3]; - /* 0x0309A */ s16 field_0x309a[3]; - /* 0x030A0 */ s16 field_0x30a0; - /* 0x030A2 */ s16 field_0x30a2; - /* 0x030A4 */ s16 field_0x30a4; - /* 0x030A6 */ s16 field_0x30a6; - /* 0x030A8 */ u16 field_0x30a8; - /* 0x030AA */ u16 field_0x30aa; - /* 0x030AC */ s16 mWolfEyeUp; - /* 0x030AE */ s16 field_0x30ae; - /* 0x030B0 */ s16 field_0x30b0; - /* 0x030B2 */ s16 field_0x30b2; - /* 0x030B4 */ u16 field_0x30b4; - /* 0x030B6 */ u16 field_0x30b6; - /* 0x030B8 */ u16 mLeftHandJntNo; - /* 0x030BA */ u16 mRightHandJntNo; - /* 0x030BC */ u16 field_0x30bc; - /* 0x030BE */ u16 field_0x30be; - /* 0x030C0 */ u16 mLeftItemJntNo; - /* 0x030C2 */ u16 mRightItemJntNo; - /* 0x030C4 */ u16 field_0x30c4; - /* 0x030C6 */ u16 field_0x30c6; - /* 0x030C8 */ s16 field_0x30c8; - /* 0x030CA */ s16 field_0x30ca; - /* 0x030CC */ s16 field_0x30cc; - /* 0x030CE */ u16 mKeepItem; - /* 0x030D0 */ s16 field_0x30d0; - /* 0x030D2 */ s16 field_0x30d2; - /* 0x030D4 */ s16 field_0x30d4; - /* 0x030D6 */ s16 field_0x30d6; - /* 0x030D8 */ u8 field_0x30d8[0x14]; - /* 0x030EC */ s16 field_0x30ec; - /* 0x030EE */ s16 mRollJumpAngle; - /* 0x030F0 */ u16 field_0x30f0; - /* 0x030F2 */ u8 field_0x30f2[2]; - /* 0x030F4 */ s16 mSwordFlourishTimer; - /* 0x030F6 */ s16 field_0x30f6; - /* 0x030F8 */ s16 field_0x30f8; - /* 0x030FA */ s16 field_0x30fa; - /* 0x030FC */ u16 field_0x30fc; - /* 0x030FE */ u16 field_0x30fe; - /* 0x03100 */ s16 field_0x3100; - /* 0x03102 */ s16 field_0x3102; - /* 0x03104 */ s16 field_0x3104; - /* 0x03106 */ u16 field_0x3106; - /* 0x03108 */ s16 field_0x3108; - /* 0x0310A */ s16 field_0x310a; - /* 0x0310C */ s16 field_0x310c; - /* 0x0310E */ s16 field_0x310e; - /* 0x03110 */ s16 field_0x3110; - /* 0x03112 */ u16 mExitID; - /* 0x03114 */ s16 field_0x3114; - /* 0x03116 */ s16 field_0x3116; - /* 0x03118 */ s16 field_0x3118; - /* 0x0311A */ s16 field_0x311a; - /* 0x0311C */ s16 field_0x311c; - /* 0x0311E */ s16 field_0x311e; - /* 0x03120 */ u16 mMidnaMsgNum; - /* 0x03122 */ s16 field_0x3122; - /* 0x03124 */ csXyz field_0x3124; - /* 0x0312A */ csXyz field_0x312a[2]; - /* 0x03136 */ csXyz field_0x3136[2]; - /* 0x03142 */ csXyz field_0x3142[4]; - /* 0x0315A */ csXyz mFishingArm1Angle; - /* 0x03160 */ csXyz field_0x3160; - /* 0x03166 */ csXyz field_0x3166; - /* 0x0316C */ csXyz field_0x316c; - /* 0x03172 */ u8 field_0x3172[2]; - /* 0x03174 */ int mGroundCode; - /* 0x03178 */ int field_0x3178; - /* 0x0317C */ int field_0x317c; - /* 0x03180 */ int field_0x3180; - /* 0x03184 */ int mAlinkStaffId; - /* 0x03188 */ int mStartEventID; - /* 0x0318C */ int field_0x318c; - /* 0x03190 */ int field_0x3190; - /* 0x03194 */ int field_0x3194; - /* 0x03198 */ int field_0x3198; - /* 0x0319C */ int field_0x319c; - /* 0x031A0 */ u32 mModeFlg; - /* 0x031A4 */ int field_0x31a4; - /* 0x031A8 */ u32 field_0x31a8[2]; - /* 0x031B0 */ u32 field_0x31b0[3]; - /* 0x031BC */ u32 field_0x31bc; - /* 0x031C0 */ u32 field_0x31c0; - /* 0x031C4 */ u32 field_0x31c4; - /* 0x031C8 */ u32 field_0x31c8; - /* 0x031CC */ u32 field_0x31cc; - /* 0x031D0 */ u32 field_0x31d0; - /* 0x031D4 */ u32 field_0x31d4; - /* 0x031D8 */ u32 field_0x31d8[3]; - /* 0x031E4 */ u32 field_0x31e4; - /* 0x031E8 */ u32 field_0x31e8[4]; - /* 0x031F8 */ u32 field_0x31f8; - /* 0x031FC */ u32 field_0x31fc; - /* 0x03200 */ u32 field_0x3200; - /* 0x03204 */ u32 field_0x3204[6]; - /* 0x0321C */ u32 field_0x321c; - /* 0x03220 */ u32 field_0x3220; - /* 0x03224 */ u32 field_0x3224; - /* 0x03228 */ u32 field_0x3228[2][3]; - /* 0x03240 */ u32 field_0x3240[6]; - /* 0x03258 */ u32 field_0x3258; - /* 0x0325C */ u32 field_0x325c; - /* 0x03260 */ u32 field_0x3260[2]; - /* 0x03268 */ u32 field_0x3268; - /* 0x0326C */ u32 field_0x326c[4]; - /* 0x0327C */ u32 field_0x327c[3]; - /* 0x03288 */ u32 field_0x3288; - /* 0x0328C */ u32 field_0x328c; - /* 0x03290 */ u32 field_0x3290; - /* 0x03294 */ u32 field_0x3294; - /* 0x03298 */ u32 field_0x3298[2]; - /* 0x032A0 */ J3DGXColorS10 field_0x32a0[2]; - /* 0x032B0 */ J3DGXColorS10 field_0x32b0[2]; - /* 0x032C0 */ s16 field_0x32c0[2]; - /* 0x032C4 */ u16 field_0x32c4[2]; - /* 0x032C8 */ u32 field_0x32c8; - /* 0x032CC */ uintptr_t field_0x32cc; - /* 0x032D0 */ u32 field_0x32d0; - /* 0x032D4 */ u32 field_0x32d4; - /* 0x032D8 */ firePointEff_c field_0x32d8[4]; - /* 0x03398 */ f32 mNormalSpeed; - /* 0x0339C */ f32 mSpeedModifier; - /* 0x033A0 */ f32 field_0x33a0; - /* 0x033A4 */ f32 field_0x33a4; - /* 0x033A8 */ f32 mStickValue; - /* 0x033AC */ f32 mMoveValue; - /* 0x033B0 */ f32 field_0x33b0; - /* 0x033B4 */ f32 mWaterY; - /* 0x033B8 */ f32 field_0x33b8; - /* 0x033BC */ f32 field_0x33bc; - /* 0x033C0 */ f32 field_0x33c0; - /* 0x033C4 */ f32 mFallHeight; - /* 0x033C8 */ f32 field_0x33c8; - /* 0x033CC */ f32 field_0x33cc; - /* 0x033D0 */ f32 field_0x33d0; - /* 0x033D4 */ f32 field_0x33d4; - /* 0x033D8 */ f32 field_0x33d8; - /* 0x033DC */ f32 field_0x33dc; - /* 0x033E0 */ f32 field_0x33e0; - /* 0x033E4 */ f32 field_0x33e4; - /* 0x033E8 */ f32 field_0x33e8; - /* 0x033EC */ f32 field_0x33ec; - /* 0x033F0 */ f32 field_0x33f0; - /* 0x033F4 */ f32 field_0x33f4; - /* 0x033F8 */ f32 field_0x33f8; - /* 0x033FC */ f32 field_0x33fc; - /* 0x03400 */ f32 field_0x3400; - /* 0x03404 */ f32 field_0x3404; - /* 0x03408 */ f32 field_0x3408; - /* 0x0340C */ f32 field_0x340c; - /* 0x03410 */ f32 mRollJumpSpeedH; - /* 0x03414 */ f32 mRollJumpSpeedV; - /* 0x03418 */ f32 field_0x3418; - /* 0x0341C */ f32 field_0x341c; - /* 0x03420 */ f32 field_0x3420; - /* 0x03424 */ f32 field_0x3424; - /* 0x03428 */ f32 field_0x3428; - /* 0x0342C */ f32 field_0x342c; - /* 0x03430 */ f32 field_0x3430; - /* 0x03434 */ f32 mHeavySpeedMultiplier; - /* 0x03438 */ f32 field_0x3438; - /* 0x0343C */ f32 field_0x343c; - /* 0x03440 */ f32 field_0x3440; - /* 0x03444 */ f32 field_0x3444; - /* 0x03448 */ f32 field_0x3448; - /* 0x0344C */ f32 field_0x344c; - /* 0x03450 */ u8 field_0x3450[4]; - /* 0x03454 */ f32 field_0x3454; - /* 0x03458 */ f32 field_0x3458; - /* 0x0345C */ f32 field_0x345c; - /* 0x03460 */ f32 field_0x3460; - /* 0x03464 */ f32 field_0x3464; - /* 0x03468 */ f32 field_0x3468; - /* 0x0346C */ f32 field_0x346c; - /* 0x03470 */ f32 field_0x3470; - /* 0x03474 */ f32 mSwordUpColorIntensity; - /* 0x03478 */ f32 field_0x3478; - /* 0x0347C */ f32 field_0x347c; - /* 0x03480 */ f32 field_0x3480; - /* 0x03484 */ f32 field_0x3484; - /* 0x03488 */ f32 field_0x3488; - /* 0x0348C */ f32 field_0x348c; - /* 0x03490 */ f32 mSearchBallScale; - /* 0x03494 */ f32 field_0x3494; - /* 0x03498 */ cXyz field_0x3498; - /* 0x034A4 */ cXyz field_0x34a4; - /* 0x034B0 */ cXyz field_0x34b0; - /* 0x034BC */ cXyz field_0x34bc; - /* 0x034C8 */ cXyz field_0x34c8; - /* 0x034D4 */ cXyz field_0x34d4; - /* 0x034E0 */ cXyz field_0x34e0; - /* 0x034EC */ cXyz field_0x34ec; - /* 0x034F8 */ cXyz mLastJumpPos; - /* 0x03504 */ cXyz field_0x3504; - /* 0x03510 */ cXyz field_0x3510; - /* 0x0351C */ cXyz field_0x351c; - /* 0x03528 */ cXyz field_0x3528; - /* 0x03534 */ cXyz field_0x3534; - /* 0x03540 */ cXyz field_0x3540; - /* 0x0354C */ cXyz field_0x354c[4]; - /* 0x0357C */ cXyz mLookPosFromOut; - /* 0x03588 */ cXyz field_0x3588; - /* 0x03594 */ cXyz field_0x3594; - /* 0x035A0 */ cXyz field_0x35a0; - /* 0x035AC */ cXyz mWindSpeed; - /* 0x035B8 */ cXyz field_0x35b8; - /* 0x035C4 */ cXyz field_0x35c4; - /* 0x035D0 */ cXyz field_0x35d0; - /* 0x035DC */ cXyz field_0x35dc; - /* 0x035E8 */ cXyz field_0x35e8; - /* 0x035F4 */ cXyz mMidnaAtnPos; - /* 0x03600 */ cXyz mMidnaHairAtnPos; - /* 0x0360C */ cXyz mKandelaarFlamePos; - /* 0x03618 */ cXyz field_0x3618; - /* 0x03624 */ cXyz field_0x3624; - /* 0x03630 */ cXyz field_0x3630; - /* 0x0363C */ cXyz field_0x363c[4]; - /* 0x0366C */ cXyz field_0x366c[4]; - /* 0x0369C */ cXyz field_0x369c; - /* 0x036A8 */ cXyz mMagneBootsTopVec; - /* 0x036B4 */ cXyz field_0x36b4; - /* 0x036C0 */ cXyz field_0x36c0[4]; - /* 0x036F0 */ cXyz field_0x36f0[4]; - /* 0x03720 */ cXyz field_0x3720; - /* 0x0372C */ cXyz field_0x372c; - /* 0x03738 */ cXyz field_0x3738; - /* 0x03744 */ cXyz field_0x3744; - /* 0x03750 */ cXyz field_0x3750; - /* 0x0375C */ cXyz field_0x375c; - /* 0x03768 */ cXyz field_0x3768; - /* 0x03774 */ cXyz mForcePutPos; - /* 0x03780 */ cXyz field_0x3780; - /* 0x0378C */ cXyz field_0x378c; - /* 0x03798 */ cXyz field_0x3798; - /* 0x037A4 */ cXyz field_0x37a4; - /* 0x037B0 */ cXyz field_0x37b0[2]; - /* 0x037C8 */ cXyz field_0x37c8; - /* 0x037D4 */ cXyz field_0x37d4; - /* 0x037E0 */ cXyz mHeldItemRootPos; - /* 0x037EC */ cXyz mHookshotTopPos; - /* 0x037F8 */ cXyz mIronBallCenterPos; - /* 0x03804 */ cXyz mIronBallBgChkPos; - /* 0x03810 */ cXyz field_0x3810; - /* 0x0381C */ cXyz field_0x381c; - /* 0x03828 */ cXyz field_0x3828; - /* 0x03834 */ cXyz field_0x3834; - /* 0x03840 */ cXyz* mIronBallChainPos; - /* 0x03844 */ csXyz* mIronBallChainAngle; - /* 0x03848 */ cXyz* field_0x3848; - /* 0x0384C */ cXyz* field_0x384c; - /* 0x03850 */ daAlink_procFunc mpProcFunc; -}; // Size: 0x385C - static bool daAlink_checkLightBallA(fopAc_ac_c* i_actor); static bool daAlink_checkLightBallB(fopAc_ac_c* i_actor); static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* i_actor, void* param_1); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index fdbb0bc0f7..0b3dbed490 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -7,6 +7,29 @@ struct ResTIMG; +class daPy_frameCtrl_c : public J3DFrameCtrl { +public: + virtual ~daPy_frameCtrl_c() {} + daPy_frameCtrl_c() {} + bool checkAnmEnd(); + void updateFrame(); + void setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame); + + u16 getEndFlg() const { return mEndFlg; } + u16 getNowSetFlg() const { return mNowSetFlg; } + void onEndFlg() { mEndFlg = 1; } + void onNowSetFlg() { mNowSetFlg = 1; } + void offNowSetFlg() { mNowSetFlg = 0; } + void offEndFlg() { + mEndFlg = 0; + mNowSetFlg = 0; + } + +private: + /* 0x14 */ u16 mEndFlg; + /* 0x16 */ u16 mNowSetFlg; +}; + class daPy_sightPacket_c : public dDlst_base_c { public: daPy_sightPacket_c() {} @@ -111,29 +134,6 @@ private: /* 0x4 */ fopAc_ac_c* mActor; }; // Size: 0x8 -class daPy_frameCtrl_c : public J3DFrameCtrl { -public: - virtual ~daPy_frameCtrl_c() {} - daPy_frameCtrl_c() {} - bool checkAnmEnd(); - void updateFrame(); - void setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame); - - u16 getEndFlg() const { return mEndFlg; } - u16 getNowSetFlg() const { return mNowSetFlg; } - void onEndFlg() { mEndFlg = 1; } - void onNowSetFlg() { mNowSetFlg = 1; } - void offNowSetFlg() { mNowSetFlg = 0; } - void offEndFlg() { - mEndFlg = 0; - mNowSetFlg = 0; - } - -private: - /* 0x14 */ u16 mEndFlg; - /* 0x16 */ u16 mNowSetFlg; -}; - class Z2WolfHowlMgr; class daBoomerang_c; diff --git a/include/d/d_bg_s_acch.h b/include/d/d_bg_s_acch.h index 712aa3c47a..4f97961dde 100644 --- a/include/d/d_bg_s_acch.h +++ b/include/d/d_bg_s_acch.h @@ -239,13 +239,6 @@ private: /* 0x1D4 */ u8 m_wtr_mode; }; // Size: 0x1D8 -class dBgS_LinkAcch : public dBgS_Acch { -public: - dBgS_LinkAcch() { SetLink(); } - - virtual ~dBgS_LinkAcch() {} -}; - class dBgS_ObjAcch : public dBgS_Acch { public: dBgS_ObjAcch() { @@ -255,6 +248,13 @@ public: virtual ~dBgS_ObjAcch() {} }; // Size: 0x1D8 +class dBgS_LinkAcch : public dBgS_Acch { +public: + dBgS_LinkAcch() { SetLink(); } + + virtual ~dBgS_LinkAcch() {} +}; + STATIC_ASSERT(sizeof(dBgS_ObjAcch) == 0x1D8); class dBgS_StatueAcch : public dBgS_Acch { diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h index 763b41db52..c239bf8a69 100644 --- a/include/d/d_jnt_col.h +++ b/include/d/d_jnt_col.h @@ -2,6 +2,7 @@ #define D_D_JNT_COL_H #include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/JHostIO/JORReflexible.h" #include "SSystem/SComponent/c_m3d_g_lin.h" #include "SSystem/SComponent/c_sxyz.h" @@ -33,7 +34,7 @@ public: bool checkShieldType(int i) { return getType(i) == 3; } s8 getType(int i) { return mData[i].mType; } - int getJntNum(int i) { return mData[i].mJntNum; } + int getJntNum(int i) { return (s16)mData[i].mJntNum; } /* 0x00 */ const dJntColData_c* mData; /* 0x04 */ J3DModel* mModel; diff --git a/include/d/d_particle.h b/include/d/d_particle.h index fc52a637ea..ab8a3be574 100644 --- a/include/d/d_particle.h +++ b/include/d/d_particle.h @@ -6,7 +6,7 @@ #include "JSystem/JParticle/JPAEmitter.h" #include "JSystem/JParticle/JPAParticle.h" #include "d/d_particle_name.h" -#include "d/d_kankyo.h" +#include "d/d_kankyo_tev_str.h" void dPa_cleanupGX(); diff --git a/include/d/dolzel_base.pch b/include/d/dolzel_base.pch index 6da4ed7986..f360763e7c 100644 --- a/include/d/dolzel_base.pch +++ b/include/d/dolzel_base.pch @@ -4,26 +4,28 @@ // Fixes weak .bss #include "weak_bss_1109_to_1009.h" // IWYU pragma: export -// Fixes weak .data -#include // IWYU pragma: export -#include // IWYU pragma: export -#include "JSystem/J3DGraphBase/J3DMatBlock.h" // IWYU pragma: export -#include "Z2AudioLib/Z2Calc.h" // IWYU pragma: export - -// Fixes weak function/RTTI ordering #include // IWYU pragma: export #include // IWYU pragma: export +// Provides float constants from sqrt implementation +#include // IWYU pragma: export +// Provides signaling NaN constants +#include // IWYU pragma: export #include "Z2AudioLib/Z2AudioArcLoader.h" // IWYU pragma: export #include "JSystem/JAudio2/JAUStreamAramMgr.h" // IWYU pragma: export #include "JSystem/JKernel/JKRDisposer.h" // IWYU pragma: export #include "JSystem/JGadget/linklist.h" // IWYU pragma: export +#include "JSystem/JUtility/JUTGamePad.h" // IWYU pragma: export +// Provides AttnArr (u8 array) +#include "JSystem/J3DGraphBase/J3DMatBlock.h" // IWYU pragma: export +// Provides Z2Calc::cNullVec +#include "Z2AudioLib/Z2Calc.h" // IWYU pragma: export +#include "JSystem/J3DGraphBase/J3DTexture.h" // IWYU pragma: export #include "JSystem/J3DGraphBase/J3DPacket.h" // IWYU pragma: export #include "JSystem/J3DGraphAnimator/J3DAnimation.h" // IWYU pragma: export #include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" // IWYU pragma: export -#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h" // IWYU pragma: export #include "JSystem/J3DGraphAnimator/J3DShapeTable.h" // IWYU pragma: export #include "JSystem/J3DGraphAnimator/J3DJoint.h" // IWYU pragma: export -#include "JSystem/JUtility/JUTGamePad.h" // IWYU pragma: export +#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h" // IWYU pragma: export #include "JSystem/J3DGraphBase/J3DSys.h" // IWYU pragma: export #include "JSystem/JHostIO/JHICommonMem.h" // IWYU pragma: export #include "JSystem/JHostIO/JORReflexible.h" // IWYU pragma: export @@ -36,7 +38,10 @@ #include "SSystem/SComponent/c_m3d_g_cyl.h" // IWYU pragma: export #include "m_Do/m_Do_hostIO.h" // IWYU pragma: export #include "f_op/f_op_actor.h" // IWYU pragma: export +#include "JSystem/JParticle/JPAEmitter.h" // IWYU pragma: export +#include "JSystem/JParticle/JPAParticle.h" // IWYU pragma: export #include "d/d_bg_s_gnd_chk.h" // IWYU pragma: export +#include "d/d_particle.h" // IWYU pragma: export #include "d/d_bg_s_chk.h" // IWYU pragma: export #include "d/d_bg_w.h" // IWYU pragma: export #include "d/d_drawlist.h" // IWYU pragma: export diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index f0041d01d6..e6f8548bef 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -63,8 +63,6 @@ BOOL daAlink_c::getE3Zhint() { return false; } -#include "d/actor/d_a_alink_HIO.inc" - #if DEBUG static BOOL l_debugMode; #endif @@ -85,6 +83,11 @@ static const char l_cWShdArcName[] = "CWShd"; static const char l_sWShdArcName[] = "SWShd"; +#include "d/actor/d_a_alink_HIO.inc" + +static const f32 l_boardSlopeAngleMin = 910.0f; +static const f32 l_boardSlopeRowAngleMin = 2000.0f; + static const char l_arcName[] = "Alink"; const char* daAlink_c::getAlinkArcName() { @@ -96,8 +99,9 @@ static void daAlink_tgHitCallback(fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjIn static_cast(i_tgActor)->tgHitCallback(i_atActor, i_tgObjInf, i_atObjInf); } -static void daAlink_coHitCallback(fopAc_ac_c* i_coActorA, dCcD_GObjInf* i_coObjInfA, fopAc_ac_c* i_coActorB, - dCcD_GObjInf* i_coObjInfB) { +static void daAlink_coHitCallback(fopAc_ac_c* i_coActorA, dCcD_GObjInf* i_coObjInfA, + fopAc_ac_c* i_coActorB, dCcD_GObjInf* i_coObjInfB) { + UNUSED(i_coActorB); UNUSED(i_coObjInfB); static_cast(i_coActorA)->coHitCallback(i_coActorB, i_coObjInfA); } @@ -142,459 +146,6 @@ static char const l_defaultGetEventName[16] = "DEFAULT_GETITEM"; static char l_peepEventName[10] = "PEEP_HOLE"; -daAlink_procInitTable daAlink_c::m_procInitTable[] = { - { &daAlink_c::procPreActionUnequip, 0x21 }, - { &daAlink_c::procServiceWait, 0x10000085 }, - { &daAlink_c::procTiredWait, 0x10001185 }, - { &daAlink_c::procWait, 0x10001185 }, - { &daAlink_c::procMove, 0x10001184 }, - { &daAlink_c::procAtnMove, 0x10001184 }, - { &daAlink_c::procAtnActorWait, 0x10001185 }, - { &daAlink_c::procAtnActorMove, 0x10001184 }, - { &daAlink_c::procWaitTurn, 0x10001085 }, - { &daAlink_c::procMoveTurn, 0x10001084 }, - { &daAlink_c::procSideStep, 0x10001186 }, - { &daAlink_c::procSideStepLand, 0x10001185 }, - { &daAlink_c::procSlide, 0x0 }, - { &daAlink_c::procSlideLand, 0x4 }, - { &daAlink_c::procFrontRoll, 0x8200 }, - { &daAlink_c::procFrontRollCrash, 0x2 }, - { &daAlink_c::procFrontRollSuccess, 0x0 }, - { &daAlink_c::procSideRoll, 0x8000 }, - { &daAlink_c::procBackJump, 0x8001086 }, - { &daAlink_c::procBackJumpLand, 0x1185 }, - { &daAlink_c::procSlip, 0x0 }, - { &daAlink_c::procAutoJump, 0x1006 }, - { &daAlink_c::procDiveJump, 0x2 }, - { &daAlink_c::procRollJump, 0x2 }, - { &daAlink_c::procFall, 0x1006 }, - { &daAlink_c::procLand, 0x1005 }, - { &daAlink_c::procSmallJump, 0x1000 }, - { &daAlink_c::procStepMove, 0x10001184 }, - { &daAlink_c::procCrouch, 0x800001 }, - { &daAlink_c::procGuardSlip, 0x60000000 }, - { &daAlink_c::procGuardAttack, 0x100 }, - { &daAlink_c::procGuardBreak, 0x100 }, - { &daAlink_c::procTurnMove, 0x8000 }, - { &daAlink_c::procCutNormal, 0x20000300 }, - { &daAlink_c::procCutFinish, 0x20000320 }, - { &daAlink_c::procCutFinishJumpUp, 0x102 }, - { &daAlink_c::procCutFinishJumpUpLand, 0x100 }, - { &daAlink_c::procCutReverse, 0x200 }, - { &daAlink_c::procCutJump, 0x8000202 }, - { &daAlink_c::procCutJumpLand, 0x8000201 }, - { &daAlink_c::procCutTurn, 0x200 }, - { &daAlink_c::procCutTurnCharge, 0x101 }, - { &daAlink_c::procCutTurnMove, 0x101 }, - { &daAlink_c::procCutDown, 0x8000022 }, - { &daAlink_c::procCutDownLand, 0x8002001 }, - { &daAlink_c::procCutHead, 0x222 }, - { &daAlink_c::procCutHeadLand, 0x201 }, - { &daAlink_c::procCutLargeJumpCharge, 0x101 }, - { &daAlink_c::procCutLargeJump, 0x200 }, - { &daAlink_c::procCutLargeJumpLand, 0x201 }, - { &daAlink_c::procDamage, 0x8 }, - { &daAlink_c::procLargeDamageUp, 0xa008008 }, - { &daAlink_c::procLandDamage, 0x9 }, - { &daAlink_c::procCrawlStart, 0x300a000 }, - { &daAlink_c::procCrawlMove, 0xb00e000 }, - { &daAlink_c::procCrawlAutoMove, 0xf00a000 }, - { &daAlink_c::procCrawlEnd, 0x300a000 }, - { &daAlink_c::procPullMove, 0x202000 }, - { &daAlink_c::procHorseRide, 0x4002400 }, - { &daAlink_c::procHorseGetOff, 0x4002400 }, - { &daAlink_c::procHorseWait, 0x10003585 }, - { &daAlink_c::procHorseTurn, 0x2500 }, - { &daAlink_c::procHorseJump, 0x2502 }, - { &daAlink_c::procHorseLand, 0x2500 }, - { &daAlink_c::procHorseSubjectivity, 0x60003404 }, - { &daAlink_c::procHorseCut, 0x2500 }, - { &daAlink_c::procHorseCutChargeReady, 0x2500 }, - { &daAlink_c::procHorseCutTurn, 0x2500 }, - { &daAlink_c::procHorseDamage, 0x2408 }, - { &daAlink_c::procHorseBowSubject, 0x60003404 }, - { &daAlink_c::procHorseBowMove, 0x60003404 }, - { &daAlink_c::procHorseGrabMove, 0x3404 }, - { &daAlink_c::procHorseBoomerangSubject, 0x60003404 }, - { &daAlink_c::procHorseBoomerangMove, 0x60003404 }, - { &daAlink_c::procHorseHookshotSubject, 0x60003404 }, - { &daAlink_c::procHorseHookshotMove, 0x60003404 }, - { &daAlink_c::procHorseBottleDrink, 0x2401 }, - { &daAlink_c::procHorseComeback, 0x2409 }, - { &daAlink_c::procHorseKandelaarPour, 0x2401 }, - { &daAlink_c::procHorseRun, 0x2400 }, - { &daAlink_c::procHorseHang, 0x2400 }, - { &daAlink_c::procHorseGetKey, 0x2401 }, - { &daAlink_c::procHorseLookDown, 0x2401 }, - { &daAlink_c::procBoarRun, 0x2400 }, - { &daAlink_c::procSwordUnequipSp, 0x1 }, - { &daAlink_c::procHangStart, 0x4041 }, - { &daAlink_c::procHangFallStart, 0x4041 }, - { &daAlink_c::procHangUp, 0x4041 }, - { &daAlink_c::procHangWait, 0x4041 }, - { &daAlink_c::procHangMove, 0x4040 }, - { &daAlink_c::procHangClimb, 0x4040 }, - { &daAlink_c::procHangWallCatch, 0x4040 }, - { &daAlink_c::procHangReady, 0x1 }, - { &daAlink_c::procHangLeverDown, 0x21 }, - { &daAlink_c::procBowSubject, 0x20001005 }, - { &daAlink_c::procBowMove, 0x20001004 }, - { &daAlink_c::procBoomerangSubject, 0x30001005 }, - { &daAlink_c::procBoomerangMove, 0x30001004 }, - { &daAlink_c::procBoomerangCatch, 0x1001 }, - { &daAlink_c::procCopyRodSubject, 0x30001005 }, - { &daAlink_c::procCopyRodMove, 0x30001004 }, - { &daAlink_c::procCopyRodSwing, 0x1 }, - { &daAlink_c::procCopyRodRevive, 0x1 }, - { &daAlink_c::procLadderUpStart, 0x10000 }, - { &daAlink_c::procLadderUpEnd, 0x10000 }, - { &daAlink_c::procLadderDownStart, 0x10000 }, - { &daAlink_c::procLadderDownEnd, 0x10000 }, - { &daAlink_c::procLadderMove, 0x10000 }, - { &daAlink_c::procGrabReady, 0x100001 }, - { &daAlink_c::procGrabUp, 0x100001 }, - { &daAlink_c::procGrabMiss, 0x100001 }, - { &daAlink_c::procGrabThrow, 0x100201 }, - { &daAlink_c::procGrabPut, 0x100001 }, - { &daAlink_c::procGrabWait, 0x1105 }, - { &daAlink_c::procGrabRebound, 0x100001 }, - { &daAlink_c::procGrabStand, 0x1 }, - { &daAlink_c::procInsectCatch, 0x21 }, - { &daAlink_c::procPickUp, 0x100001 }, - { &daAlink_c::procPickPut, 0x100001 }, - { &daAlink_c::procStEscape, 0x1 }, - { &daAlink_c::procDkCaught, 0x4000000 }, - { &daAlink_c::procSwimUp, 0x40000 }, - { &daAlink_c::procSwimWait, 0x40105 }, - { &daAlink_c::procSwimMove, 0x40104 }, - { &daAlink_c::procSwimDive, 0x40000 }, - { &daAlink_c::procSwimHookshotSubject, 0x20041005 }, - { &daAlink_c::procSwimHookshotMove, 0x20041004 }, - { &daAlink_c::procSwimDamage, 0x40008 }, - { &daAlink_c::procClimbUpStart, 0x10000 }, - { &daAlink_c::procClimbDownStart, 0x10000 }, - { &daAlink_c::procClimbMoveUpDown, 0x10000 }, - { &daAlink_c::procClimbMoveSide, 0x10000 }, - { &daAlink_c::procClimbWait, 0x10000 }, - { &daAlink_c::procClimbToRoof, 0x10000 }, - { &daAlink_c::procRoofHangStart, 0x10 }, - { &daAlink_c::procRoofHangWait, 0x11 }, - { &daAlink_c::procRoofHangFrontMove, 0x10 }, - { &daAlink_c::procRoofHangSideMove, 0x10 }, - { &daAlink_c::procRoofHangTurn, 0x10 }, - { &daAlink_c::procRoofSwitchHang, 0x2030 }, - { &daAlink_c::procCanoeRide, 0x4002400 }, - { &daAlink_c::procCanoeJumpRide, 0x4002400 }, - { &daAlink_c::procCanoeGetOff, 0x4002400 }, - { &daAlink_c::procCanoeWait, 0x14003504 }, - { &daAlink_c::procCanoeRow, 0x4002504 }, - { &daAlink_c::procCanoePaddleShift, 0x4002504 }, - { &daAlink_c::procCanoePaddlePut, 0x4002400 }, - { &daAlink_c::procCanoePaddleGrab, 0x4002400 }, - { &daAlink_c::procCanoeRodGrab, 0x4002400 }, - { &daAlink_c::procCanoeFishingWait, 0x44002404 }, - { &daAlink_c::procCanoeFishingReel, 0x44002500 }, - { &daAlink_c::procCanoeFishingGet, 0x4002400 }, - { &daAlink_c::procCanoeSubjectivity, 0x64002404 }, - { &daAlink_c::procCanoeBowSubject, 0x64003404 }, - { &daAlink_c::procCanoeBowMove, 0x64003404 }, - { &daAlink_c::procCanoeGrabMove, 0x4103404 }, - { &daAlink_c::procCanoeBoomerangSubject, 0x64003404 }, - { &daAlink_c::procCanoeBoomerangMove, 0x64003404 }, - { &daAlink_c::procCanoeHookshotSubject, 0x64003404 }, - { &daAlink_c::procCanoeHookshotMove, 0x64003404 }, - { &daAlink_c::procCanoeBottleDrink, 0x2401 }, - { &daAlink_c::procCanoeKandelaarPour, 0x2401 }, - { &daAlink_c::procFishingCast, 0x2101 }, - { &daAlink_c::procFishingFood, 0x2001 }, - { &daAlink_c::procSpinnerReady, 0x2002 }, - { &daAlink_c::procSpinnerWait, 0x2500 }, - { &daAlink_c::procBoardRide, 0x22 }, - { &daAlink_c::procBoardWait, 0x10001504 }, - { &daAlink_c::procBoardRow, 0x1504 }, - { &daAlink_c::procBoardTurn, 0x1504 }, - { &daAlink_c::procBoardJump, 0x1406 }, - { &daAlink_c::procBoardSubjectivity, 0x60000404 }, - { &daAlink_c::procBoardCut, 0x504 }, - { &daAlink_c::procBoardCutTurn, 0x400 }, - { &daAlink_c::procFmChainUp, 0x101 }, - { &daAlink_c::procFmChainStrongPull, 0x1001 }, - { &daAlink_c::procDoorOpen, 0x4000 }, - { &daAlink_c::procMonkeyMove, 0x800 }, - { &daAlink_c::procDemoBoomerangCatch, 0x10000101 }, - { &daAlink_c::procBottleDrink, 0x2001 }, - { &daAlink_c::procBottleOpen, 0x2001 }, - { &daAlink_c::procBottleSwing, 0x21 }, - { &daAlink_c::procBottleGet, 0x1 }, - { &daAlink_c::procKandelaarSwing, 0x1 }, - { &daAlink_c::procKandelaarPour, 0x2001 }, - { &daAlink_c::procGrassWhistleGet, 0x21 }, - { &daAlink_c::procGrassWhistleWait, 0x2001 }, - { &daAlink_c::procHawkCatch, 0x1 }, - { &daAlink_c::procHawkSubject, 0x20000021 }, - { &daAlink_c::procFloorDownRebound, 0x10001185 }, - { &daAlink_c::procGoronRideWait, 0x101 }, - { &daAlink_c::procGoatMove, 0x4002121 }, - { &daAlink_c::procGoatCatch, 0x400a021 }, - { &daAlink_c::procGoatStroke, 0x2121 }, - { &daAlink_c::procGoronMove, 0x101 }, - { &daAlink_c::procDemoCommon, 0x1 }, - { &daAlink_c::procHookshotSubject, 0x20001005 }, - { &daAlink_c::procHookshotMove, 0x20001004 }, - { &daAlink_c::procHookshotFly, 0x6002 }, - { &daAlink_c::procHookshotRoofWait, 0x6802 }, - { &daAlink_c::procHookshotRoofShoot, 0x6902 }, - { &daAlink_c::procHookshotRoofBoots, 0x6902 }, - { &daAlink_c::procHookshotWallWait, 0x6802 }, - { &daAlink_c::procHookshotWallShoot, 0x6902 }, - { &daAlink_c::procMagneBootsFly, 0x2 }, - { &daAlink_c::procBootsEquip, 0x1103 }, - { &daAlink_c::procSumouReady, 0xa000 }, - { &daAlink_c::procSumouMove, 0xa000 }, - { &daAlink_c::procSumouSideMove, 0xa000 }, - { &daAlink_c::procSumouAction, 0xa000 }, - { &daAlink_c::procSumouStagger, 0xa000 }, - { &daAlink_c::procSumouWinLose, 0x2002 }, - { &daAlink_c::procSumouShiko, 0xa000 }, - { &daAlink_c::procLookUp, 0x101 }, - { &daAlink_c::procLookUpToGetItem, 0x101 }, - { &daAlink_c::procHandPat, 0x101 }, - { &daAlink_c::procIronBallSubject, 0x20001005 }, - { &daAlink_c::procIronBallMove, 0x20001004 }, - { &daAlink_c::procIronBallThrow, 0x20000000 }, - { &daAlink_c::procIronBallReturn, 0x1 }, - { &daAlink_c::procBossBodyHang, 0x6029 }, - { &daAlink_c::procOctaIealSpit, 0x42008 }, - { &daAlink_c::procScreamWait, 0x1 }, - { &daAlink_c::procGoatStopReady, 0x1 }, - { &daAlink_c::procZoraMove, 0xe000 }, - { &daAlink_c::procLookAroundTurn, 0x1 }, - { &daAlink_c::procTradeItemOut, 0x80121 }, - { &daAlink_c::procNotUseItem, 0x2021 }, - { &daAlink_c::procSwordReady, 0x1 }, - { &daAlink_c::procSwordPush, 0x1 }, - { &daAlink_c::procGanonFinish, 0xe000 }, - { &daAlink_c::procCutFastReady, 0x1 }, - { &daAlink_c::procMasterSwordStick, 0x6001 }, - { &daAlink_c::procMasterSwordPull, 0x6001 }, - { &daAlink_c::procDungeonWarpReady, 0x2021 }, - { &daAlink_c::procDungeonWarp, 0x6003 }, - { &daAlink_c::procDungeonWarpSceneStart, 0x6003 }, - { &daAlink_c::procWolfHowlDemo, 0x800021 }, - { &daAlink_c::procWolfServiceWait, 0x1001 }, - { &daAlink_c::procWolfTiredWait, 0x1101 }, - { &daAlink_c::procWolfMidnaRideShock, 0x1 }, - { &daAlink_c::procWolfWait, 0x1101 }, - { &daAlink_c::procWolfMove, 0x1100 }, - { &daAlink_c::procWolfDash, 0x1100 }, - { &daAlink_c::procWolfDashReverse, 0x2 }, - { &daAlink_c::procWolfWaitTurn, 0x1001 }, - { &daAlink_c::procWolfAtnActorMove, 0x1100 }, - { &daAlink_c::procWolfSideStep, 0x1102 }, - { &daAlink_c::procWolfSideStepLand, 0x1101 }, - { &daAlink_c::procWolfBackJump, 0x1002 }, - { &daAlink_c::procWolfBackJumpLand, 0x1001 }, - { &daAlink_c::procWolfHowl, 0x1 }, - { &daAlink_c::procWolfAutoJump, 0x1002 }, - { &daAlink_c::procWolfFall, 0x1002 }, - { &daAlink_c::procWolfLand, 0x1001 }, - { &daAlink_c::procWolfSit, 0x800101 }, - { &daAlink_c::procWolfLieStart, 0x1000100 }, - { &daAlink_c::procWolfLieMove, 0x1000100 }, - { &daAlink_c::procWolfLieAutoMove, 0x5002000 }, - { &daAlink_c::procWolfHangReady, 0x1001 }, - { &daAlink_c::procWolfStepMove, 0x10001100 }, - { &daAlink_c::procWolfHangWallCatch, 0x10005040 }, - { &daAlink_c::procWolfHangFallStart, 0x10005041 }, - { &daAlink_c::procWolfDamage, 0x8 }, - { &daAlink_c::procWolfLargeDamageUp, 0x12008008 }, - { &daAlink_c::procWolfLandDamage, 0x9 }, - { &daAlink_c::procWolfScreamWait, 0x1 }, - { &daAlink_c::procWolfSlip, 0x10001000 }, - { &daAlink_c::procWolfSlipTurn, 0x10001000 }, - { &daAlink_c::procWolfSlipTurnLand, 0x10001000 }, - { &daAlink_c::procWolfSlideReady, 0x10008000 }, - { &daAlink_c::procWolfSlide, 0x1000 }, - { &daAlink_c::procWolfSlideLand, 0x1000 }, - { &daAlink_c::procWolfWaitSlip, 0x1100 }, - { &daAlink_c::procWolfSlopeStart, 0x1000 }, - { &daAlink_c::procWolfRopeMove, 0x23100 }, - { &daAlink_c::procWolfRopeHang, 0x10023000 }, - { &daAlink_c::procWolfRopeTurn, 0x10023000 }, - { &daAlink_c::procWolfRopeStagger, 0x10023000 }, - { &daAlink_c::procWolfRopeSubjectivity, 0x23001 }, - { &daAlink_c::procWolfTagJump, 0x1022 }, - { &daAlink_c::procWolfTagJumpLand, 0x120 }, - { &daAlink_c::procWolfRollAttackCharge, 0x100 }, - { &daAlink_c::procWolfRollAttackMove, 0x100 }, - { &daAlink_c::procWolfJumpAttack, 0x2 }, - { &daAlink_c::procWolfJumpAttackKick, 0x2 }, - { &daAlink_c::procWolfJumpAttackSlideLand, 0x0 }, - { &daAlink_c::procWolfJumpAttackNormalLand, 0x0 }, - { &daAlink_c::procWolfWaitAttack, 0x0 }, - { &daAlink_c::procWolfRollAttack, 0x0 }, - { &daAlink_c::procWolfDownAttack, 0x22 }, - { &daAlink_c::procWolfDownAtLand, 0x8002021 }, - { &daAlink_c::procWolfDownAtMissLand, 0x0 }, - { &daAlink_c::procWolfLockAttack, 0x2002 }, - { &daAlink_c::procWolfLockAttackTurn, 0x0 }, - { &daAlink_c::procWolfSwimUp, 0x40000 }, - { &daAlink_c::procWolfSwimWait, 0x40101 }, - { &daAlink_c::procWolfSwimMove, 0x40100 }, - { &daAlink_c::procWolfSwimEndWait, 0x1001 }, - { &daAlink_c::procWolfGrabUp, 0x100001 }, - { &daAlink_c::procWolfGrabPut, 0x100001 }, - { &daAlink_c::procWolfGrabThrow, 0x100001 }, - { &daAlink_c::procWolfChainUp, 0x1 }, - { &daAlink_c::procWolfPush, 0x20 }, - { &daAlink_c::procWolfChainReady, 0x20000 }, - { &daAlink_c::procWolfChainWait, 0x10020000 }, - { &daAlink_c::procWolfDig, 0xa020 }, - { &daAlink_c::procWolfDigThrough, 0xe000 }, - { &daAlink_c::procWolfAttackReverse, 0x2 }, - { &daAlink_c::procWolfEnemyThrow, 0x0 }, - { &daAlink_c::procWolfEnemyHangBite, 0xe002 }, - { &daAlink_c::procWolfGiantPuzzle, 0x100 }, - { &daAlink_c::procWolfCargoCarry, 0x400e022 }, - { &daAlink_c::procWolfGetSmell, 0xe021 }, - { &daAlink_c::procDemoCommon, 0x1 }, - { &daAlink_c::procWolfSnowEscape, 0xa000 }, - { &daAlink_c::procWolfGanonCatch, 0x4002021 }, - { &daAlink_c::procCoToolDemo, 0x8000 }, - { &daAlink_c::procCoSubjectivity, 0x20001005 }, - { &daAlink_c::procCoSwimSubjectivity, 0x20041001 }, - { &daAlink_c::procCoPeepSubjectivity, 0x2000200b }, - { &daAlink_c::procCoPolyDamage, 0x9 }, - { &daAlink_c::procCoElecDamage, 0x9 }, - { &daAlink_c::procCoPushPullWait, 0x202001 }, - { &daAlink_c::procCoPushMove, 0x202000 }, - { &daAlink_c::procCoTalk, 0x80101 }, - { &daAlink_c::procCoOpenTreasure, 0xe001 }, - { &daAlink_c::procCoUnequip, 0x1 }, - { &daAlink_c::procCoGetItem, 0x800e001 }, - { &daAlink_c::procCoTurnBack, 0x1 }, - { &daAlink_c::procCoLookWait, 0x1101 }, - { &daAlink_c::procDemoCommon, 0x200001 }, - { &daAlink_c::procDemoCommon, 0x200000 }, - { &daAlink_c::procCoMetamorphose, 0x8001 }, - { &daAlink_c::procCoMetamorphoseOnly, 0x6001 }, - { &daAlink_c::procCoWarp, 0x1 }, - { &daAlink_c::procCoDead, 0xa009 }, - { &daAlink_c::procCoFogDead, 0xa009 }, - { &daAlink_c::procCoLookAround, 0x0 }, - { &daAlink_c::procDemoCommon, 0xe000 }, - { &daAlink_c::procCoSandWallHit, 0xa }, - { &daAlink_c::procCoLavaReturn, 0x42009 }, - { &daAlink_c::procCoSwimFreezeReturn, 0x42009 }, - { &daAlink_c::procCoGetReadySit, 0xa001 }, - { &daAlink_c::procCoTwGate, 0xe002 }, - { &daAlink_c::procCoLargeDamage, 0xa }, - { &daAlink_c::procCoLargeDamageWall, 0xa }, - { &daAlink_c::procCoNod, 0x80001 }, - { &daAlink_c::procDemoCommon, 0x80001 }, - { &daAlink_c::procCoGlare, 0x80001 }, - { &daAlink_c::procCoHorseCallWait, 0x1 }, - { &daAlink_c::procDemoCommon, 0x1 }, -}; - -daAlink_procFunc daAlink_c::m_demoInitTable[] = { - NULL, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::commonWaitTurnInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoOpenTreasureInit, - &daAlink_c::procCoGetItemInit, - &daAlink_c::procCoUnequipInit, - &daAlink_c::commonGrabPutInit, - NULL, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procMonkeyMoveInit, - &daAlink_c::procCoLookAroundInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoTurnBackInit, - NULL, - NULL, - &daAlink_c::procDemoBoomerangCatchInit, - &daAlink_c::procHawkCatchInit, - &daAlink_c::procSwordUnequipSpInit, - NULL, - &daAlink_c::procCoDemoPushPullWaitInit, - &daAlink_c::procCoDemoPushMoveInit, - &daAlink_c::procBossAtnWaitInit, - &daAlink_c::procDoorOpenInit, - NULL, - &daAlink_c::procTradeItemOutInit, - NULL, - &daAlink_c::procKandelaarSwingInit, - &daAlink_c::procFrontRollInit, - &daAlink_c::procCrouchInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoCaughtInit, - &daAlink_c::procLookUpInit, - &daAlink_c::procLookUpToGetItemInit, - &daAlink_c::procHandPatInit, - &daAlink_c::procWolfMidnaRideShockInit, - &daAlink_c::procSumouShikoInit, - &daAlink_c::procCoFogDeadInit, - &daAlink_c::procWolfSmellWaitInit, - NULL, - NULL, - &daAlink_c::procWolfCargoCarryInit, - &daAlink_c::procCoMetamorphoseInit, - &daAlink_c::procCoMetamorphoseInit, - &daAlink_c::procHorseGetKeyInit, - &daAlink_c::procCoNodInit, - &daAlink_c::procCoGlareInit, - &daAlink_c::procCoEyeAwayInit, - &daAlink_c::procGoatStopReadyInit, - &daAlink_c::procCoGetReadySitInit, - NULL, - &daAlink_c::procCoTwGateInit, - &daAlink_c::procFmChainStrongPullInit, - &daAlink_c::procWolfSnowEscapeInit, - &daAlink_c::procZoraMoveInit, - &daAlink_c::procCoMetamorphoseOnlyInit, - &daAlink_c::procCoMetamorphoseOnlyInit, - &daAlink_c::procLookAroundTurnInit, - NULL, - &daAlink_c::procCoQuakeWaitInit, - &daAlink_c::procGuardAttackInit, - &daAlink_c::procSwordReadyInit, - &daAlink_c::procDungeonWarpInit, - &daAlink_c::procDungeonWarpSceneStartInit, - &daAlink_c::procMasterSwordStickInit, - &daAlink_c::procMasterSwordPullInit, - &daAlink_c::procCutDownInit, - NULL, - &daAlink_c::procCutHeadInit, - NULL, - NULL, - &daAlink_c::procCutLargeJumpInit, - &daAlink_c::procCutFastReadyInit, - &daAlink_c::procCopyRodReviveInit, - &daAlink_c::procSwordPushInit, - &daAlink_c::procGanonFinishInit, - NULL, - NULL, - &daAlink_c::procHorseLookDownInit, - NULL, -}; - static f32 const l_crawlStartFrontOffset[3] = {0.0f, 30.0f, 112.0f}; static Vec const l_crawlFrontOffset = {0.0f, 30.0f, 80.0f}; @@ -1454,59 +1005,468 @@ daAlink_FaceTexData const daAlink_c::m_faceTexDataTable[] = { {dRes_ID_ALANM_BTP_WL_FC_e, dRes_ID_ALANM_BTK_WL_FA_e}, }; -#include "d/actor/d_a_alink_link.inc" +const daAlink_procInitTable daAlink_c::m_procInitTable[] = { + { &daAlink_c::procPreActionUnequip, 0x21 }, + { &daAlink_c::procServiceWait, 0x10000085 }, + { &daAlink_c::procTiredWait, 0x10001185 }, + { &daAlink_c::procWait, 0x10001185 }, + { &daAlink_c::procMove, 0x10001184 }, + { &daAlink_c::procAtnMove, 0x10001184 }, + { &daAlink_c::procAtnActorWait, 0x10001185 }, + { &daAlink_c::procAtnActorMove, 0x10001184 }, + { &daAlink_c::procWaitTurn, 0x10001085 }, + { &daAlink_c::procMoveTurn, 0x10001084 }, + { &daAlink_c::procSideStep, 0x10001186 }, + { &daAlink_c::procSideStepLand, 0x10001185 }, + { &daAlink_c::procSlide, 0x0 }, + { &daAlink_c::procSlideLand, 0x4 }, + { &daAlink_c::procFrontRoll, 0x8200 }, + { &daAlink_c::procFrontRollCrash, 0x2 }, + { &daAlink_c::procFrontRollSuccess, 0x0 }, + { &daAlink_c::procSideRoll, 0x8000 }, + { &daAlink_c::procBackJump, 0x8001086 }, + { &daAlink_c::procBackJumpLand, 0x1185 }, + { &daAlink_c::procSlip, 0x0 }, + { &daAlink_c::procAutoJump, 0x1006 }, + { &daAlink_c::procDiveJump, 0x2 }, + { &daAlink_c::procRollJump, 0x2 }, + { &daAlink_c::procFall, 0x1006 }, + { &daAlink_c::procLand, 0x1005 }, + { &daAlink_c::procSmallJump, 0x1000 }, + { &daAlink_c::procStepMove, 0x10001184 }, + { &daAlink_c::procCrouch, 0x800001 }, + { &daAlink_c::procGuardSlip, 0x60000000 }, + { &daAlink_c::procGuardAttack, 0x100 }, + { &daAlink_c::procGuardBreak, 0x100 }, + { &daAlink_c::procTurnMove, 0x8000 }, + { &daAlink_c::procCutNormal, 0x20000300 }, + { &daAlink_c::procCutFinish, 0x20000320 }, + { &daAlink_c::procCutFinishJumpUp, 0x102 }, + { &daAlink_c::procCutFinishJumpUpLand, 0x100 }, + { &daAlink_c::procCutReverse, 0x200 }, + { &daAlink_c::procCutJump, 0x8000202 }, + { &daAlink_c::procCutJumpLand, 0x8000201 }, + { &daAlink_c::procCutTurn, 0x200 }, + { &daAlink_c::procCutTurnCharge, 0x101 }, + { &daAlink_c::procCutTurnMove, 0x101 }, + { &daAlink_c::procCutDown, 0x8000022 }, + { &daAlink_c::procCutDownLand, 0x8002001 }, + { &daAlink_c::procCutHead, 0x222 }, + { &daAlink_c::procCutHeadLand, 0x201 }, + { &daAlink_c::procCutLargeJumpCharge, 0x101 }, + { &daAlink_c::procCutLargeJump, 0x200 }, + { &daAlink_c::procCutLargeJumpLand, 0x201 }, + { &daAlink_c::procDamage, 0x8 }, + { &daAlink_c::procLargeDamageUp, 0xa008008 }, + { &daAlink_c::procLandDamage, 0x9 }, + { &daAlink_c::procCrawlStart, 0x300a000 }, + { &daAlink_c::procCrawlMove, 0xb00e000 }, + { &daAlink_c::procCrawlAutoMove, 0xf00a000 }, + { &daAlink_c::procCrawlEnd, 0x300a000 }, + { &daAlink_c::procPullMove, 0x202000 }, + { &daAlink_c::procHorseRide, 0x4002400 }, + { &daAlink_c::procHorseGetOff, 0x4002400 }, + { &daAlink_c::procHorseWait, 0x10003585 }, + { &daAlink_c::procHorseTurn, 0x2500 }, + { &daAlink_c::procHorseJump, 0x2502 }, + { &daAlink_c::procHorseLand, 0x2500 }, + { &daAlink_c::procHorseSubjectivity, 0x60003404 }, + { &daAlink_c::procHorseCut, 0x2500 }, + { &daAlink_c::procHorseCutChargeReady, 0x2500 }, + { &daAlink_c::procHorseCutTurn, 0x2500 }, + { &daAlink_c::procHorseDamage, 0x2408 }, + { &daAlink_c::procHorseBowSubject, 0x60003404 }, + { &daAlink_c::procHorseBowMove, 0x60003404 }, + { &daAlink_c::procHorseGrabMove, 0x3404 }, + { &daAlink_c::procHorseBoomerangSubject, 0x60003404 }, + { &daAlink_c::procHorseBoomerangMove, 0x60003404 }, + { &daAlink_c::procHorseHookshotSubject, 0x60003404 }, + { &daAlink_c::procHorseHookshotMove, 0x60003404 }, + { &daAlink_c::procHorseBottleDrink, 0x2401 }, + { &daAlink_c::procHorseComeback, 0x2409 }, + { &daAlink_c::procHorseKandelaarPour, 0x2401 }, + { &daAlink_c::procHorseRun, 0x2400 }, + { &daAlink_c::procHorseHang, 0x2400 }, + { &daAlink_c::procHorseGetKey, 0x2401 }, + { &daAlink_c::procHorseLookDown, 0x2401 }, + { &daAlink_c::procBoarRun, 0x2400 }, + { &daAlink_c::procSwordUnequipSp, 0x1 }, + { &daAlink_c::procHangStart, 0x4041 }, + { &daAlink_c::procHangFallStart, 0x4041 }, + { &daAlink_c::procHangUp, 0x4041 }, + { &daAlink_c::procHangWait, 0x4041 }, + { &daAlink_c::procHangMove, 0x4040 }, + { &daAlink_c::procHangClimb, 0x4040 }, + { &daAlink_c::procHangWallCatch, 0x4040 }, + { &daAlink_c::procHangReady, 0x1 }, + { &daAlink_c::procHangLeverDown, 0x21 }, + { &daAlink_c::procBowSubject, 0x20001005 }, + { &daAlink_c::procBowMove, 0x20001004 }, + { &daAlink_c::procBoomerangSubject, 0x30001005 }, + { &daAlink_c::procBoomerangMove, 0x30001004 }, + { &daAlink_c::procBoomerangCatch, 0x1001 }, + { &daAlink_c::procCopyRodSubject, 0x30001005 }, + { &daAlink_c::procCopyRodMove, 0x30001004 }, + { &daAlink_c::procCopyRodSwing, 0x1 }, + { &daAlink_c::procCopyRodRevive, 0x1 }, + { &daAlink_c::procLadderUpStart, 0x10000 }, + { &daAlink_c::procLadderUpEnd, 0x10000 }, + { &daAlink_c::procLadderDownStart, 0x10000 }, + { &daAlink_c::procLadderDownEnd, 0x10000 }, + { &daAlink_c::procLadderMove, 0x10000 }, + { &daAlink_c::procGrabReady, 0x100001 }, + { &daAlink_c::procGrabUp, 0x100001 }, + { &daAlink_c::procGrabMiss, 0x100001 }, + { &daAlink_c::procGrabThrow, 0x100201 }, + { &daAlink_c::procGrabPut, 0x100001 }, + { &daAlink_c::procGrabWait, 0x1105 }, + { &daAlink_c::procGrabRebound, 0x100001 }, + { &daAlink_c::procGrabStand, 0x1 }, + { &daAlink_c::procInsectCatch, 0x21 }, + { &daAlink_c::procPickUp, 0x100001 }, + { &daAlink_c::procPickPut, 0x100001 }, + { &daAlink_c::procStEscape, 0x1 }, + { &daAlink_c::procDkCaught, 0x4000000 }, + { &daAlink_c::procSwimUp, 0x40000 }, + { &daAlink_c::procSwimWait, 0x40105 }, + { &daAlink_c::procSwimMove, 0x40104 }, + { &daAlink_c::procSwimDive, 0x40000 }, + { &daAlink_c::procSwimHookshotSubject, 0x20041005 }, + { &daAlink_c::procSwimHookshotMove, 0x20041004 }, + { &daAlink_c::procSwimDamage, 0x40008 }, + { &daAlink_c::procClimbUpStart, 0x10000 }, + { &daAlink_c::procClimbDownStart, 0x10000 }, + { &daAlink_c::procClimbMoveUpDown, 0x10000 }, + { &daAlink_c::procClimbMoveSide, 0x10000 }, + { &daAlink_c::procClimbWait, 0x10000 }, + { &daAlink_c::procClimbToRoof, 0x10000 }, + { &daAlink_c::procRoofHangStart, 0x10 }, + { &daAlink_c::procRoofHangWait, 0x11 }, + { &daAlink_c::procRoofHangFrontMove, 0x10 }, + { &daAlink_c::procRoofHangSideMove, 0x10 }, + { &daAlink_c::procRoofHangTurn, 0x10 }, + { &daAlink_c::procRoofSwitchHang, 0x2030 }, + { &daAlink_c::procCanoeRide, 0x4002400 }, + { &daAlink_c::procCanoeJumpRide, 0x4002400 }, + { &daAlink_c::procCanoeGetOff, 0x4002400 }, + { &daAlink_c::procCanoeWait, 0x14003504 }, + { &daAlink_c::procCanoeRow, 0x4002504 }, + { &daAlink_c::procCanoePaddleShift, 0x4002504 }, + { &daAlink_c::procCanoePaddlePut, 0x4002400 }, + { &daAlink_c::procCanoePaddleGrab, 0x4002400 }, + { &daAlink_c::procCanoeRodGrab, 0x4002400 }, + { &daAlink_c::procCanoeFishingWait, 0x44002404 }, + { &daAlink_c::procCanoeFishingReel, 0x44002500 }, + { &daAlink_c::procCanoeFishingGet, 0x4002400 }, + { &daAlink_c::procCanoeSubjectivity, 0x64002404 }, + { &daAlink_c::procCanoeBowSubject, 0x64003404 }, + { &daAlink_c::procCanoeBowMove, 0x64003404 }, + { &daAlink_c::procCanoeGrabMove, 0x4103404 }, + { &daAlink_c::procCanoeBoomerangSubject, 0x64003404 }, + { &daAlink_c::procCanoeBoomerangMove, 0x64003404 }, + { &daAlink_c::procCanoeHookshotSubject, 0x64003404 }, + { &daAlink_c::procCanoeHookshotMove, 0x64003404 }, + { &daAlink_c::procCanoeBottleDrink, 0x2401 }, + { &daAlink_c::procCanoeKandelaarPour, 0x2401 }, + { &daAlink_c::procFishingCast, 0x2101 }, + { &daAlink_c::procFishingFood, 0x2001 }, + { &daAlink_c::procSpinnerReady, 0x2002 }, + { &daAlink_c::procSpinnerWait, 0x2500 }, + { &daAlink_c::procBoardRide, 0x22 }, + { &daAlink_c::procBoardWait, 0x10001504 }, + { &daAlink_c::procBoardRow, 0x1504 }, + { &daAlink_c::procBoardTurn, 0x1504 }, + { &daAlink_c::procBoardJump, 0x1406 }, + { &daAlink_c::procBoardSubjectivity, 0x60000404 }, + { &daAlink_c::procBoardCut, 0x504 }, + { &daAlink_c::procBoardCutTurn, 0x400 }, + { &daAlink_c::procFmChainUp, 0x101 }, + { &daAlink_c::procFmChainStrongPull, 0x1001 }, + { &daAlink_c::procDoorOpen, 0x4000 }, + { &daAlink_c::procMonkeyMove, 0x800 }, + { &daAlink_c::procDemoBoomerangCatch, 0x10000101 }, + { &daAlink_c::procBottleDrink, 0x2001 }, + { &daAlink_c::procBottleOpen, 0x2001 }, + { &daAlink_c::procBottleSwing, 0x21 }, + { &daAlink_c::procBottleGet, 0x1 }, + { &daAlink_c::procKandelaarSwing, 0x1 }, + { &daAlink_c::procKandelaarPour, 0x2001 }, + { &daAlink_c::procGrassWhistleGet, 0x21 }, + { &daAlink_c::procGrassWhistleWait, 0x2001 }, + { &daAlink_c::procHawkCatch, 0x1 }, + { &daAlink_c::procHawkSubject, 0x20000021 }, + { &daAlink_c::procFloorDownRebound, 0x10001185 }, + { &daAlink_c::procGoronRideWait, 0x101 }, + { &daAlink_c::procGoatMove, 0x4002121 }, + { &daAlink_c::procGoatCatch, 0x400a021 }, + { &daAlink_c::procGoatStroke, 0x2121 }, + { &daAlink_c::procGoronMove, 0x101 }, + { &daAlink_c::procDemoCommon, 0x1 }, + { &daAlink_c::procHookshotSubject, 0x20001005 }, + { &daAlink_c::procHookshotMove, 0x20001004 }, + { &daAlink_c::procHookshotFly, 0x6002 }, + { &daAlink_c::procHookshotRoofWait, 0x6802 }, + { &daAlink_c::procHookshotRoofShoot, 0x6902 }, + { &daAlink_c::procHookshotRoofBoots, 0x6902 }, + { &daAlink_c::procHookshotWallWait, 0x6802 }, + { &daAlink_c::procHookshotWallShoot, 0x6902 }, + { &daAlink_c::procMagneBootsFly, 0x2 }, + { &daAlink_c::procBootsEquip, 0x1103 }, + { &daAlink_c::procSumouReady, 0xa000 }, + { &daAlink_c::procSumouMove, 0xa000 }, + { &daAlink_c::procSumouSideMove, 0xa000 }, + { &daAlink_c::procSumouAction, 0xa000 }, + { &daAlink_c::procSumouStagger, 0xa000 }, + { &daAlink_c::procSumouWinLose, 0x2002 }, + { &daAlink_c::procSumouShiko, 0xa000 }, + { &daAlink_c::procLookUp, 0x101 }, + { &daAlink_c::procLookUpToGetItem, 0x101 }, + { &daAlink_c::procHandPat, 0x101 }, + { &daAlink_c::procIronBallSubject, 0x20001005 }, + { &daAlink_c::procIronBallMove, 0x20001004 }, + { &daAlink_c::procIronBallThrow, 0x20000000 }, + { &daAlink_c::procIronBallReturn, 0x1 }, + { &daAlink_c::procBossBodyHang, 0x6029 }, + { &daAlink_c::procOctaIealSpit, 0x42008 }, + { &daAlink_c::procScreamWait, 0x1 }, + { &daAlink_c::procGoatStopReady, 0x1 }, + { &daAlink_c::procZoraMove, 0xe000 }, + { &daAlink_c::procLookAroundTurn, 0x1 }, + { &daAlink_c::procTradeItemOut, 0x80121 }, + { &daAlink_c::procNotUseItem, 0x2021 }, + { &daAlink_c::procSwordReady, 0x1 }, + { &daAlink_c::procSwordPush, 0x1 }, + { &daAlink_c::procGanonFinish, 0xe000 }, + { &daAlink_c::procCutFastReady, 0x1 }, + { &daAlink_c::procMasterSwordStick, 0x6001 }, + { &daAlink_c::procMasterSwordPull, 0x6001 }, + { &daAlink_c::procDungeonWarpReady, 0x2021 }, + { &daAlink_c::procDungeonWarp, 0x6003 }, + { &daAlink_c::procDungeonWarpSceneStart, 0x6003 }, + { &daAlink_c::procWolfHowlDemo, 0x800021 }, + { &daAlink_c::procWolfServiceWait, 0x1001 }, + { &daAlink_c::procWolfTiredWait, 0x1101 }, + { &daAlink_c::procWolfMidnaRideShock, 0x1 }, + { &daAlink_c::procWolfWait, 0x1101 }, + { &daAlink_c::procWolfMove, 0x1100 }, + { &daAlink_c::procWolfDash, 0x1100 }, + { &daAlink_c::procWolfDashReverse, 0x2 }, + { &daAlink_c::procWolfWaitTurn, 0x1001 }, + { &daAlink_c::procWolfAtnActorMove, 0x1100 }, + { &daAlink_c::procWolfSideStep, 0x1102 }, + { &daAlink_c::procWolfSideStepLand, 0x1101 }, + { &daAlink_c::procWolfBackJump, 0x1002 }, + { &daAlink_c::procWolfBackJumpLand, 0x1001 }, + { &daAlink_c::procWolfHowl, 0x1 }, + { &daAlink_c::procWolfAutoJump, 0x1002 }, + { &daAlink_c::procWolfFall, 0x1002 }, + { &daAlink_c::procWolfLand, 0x1001 }, + { &daAlink_c::procWolfSit, 0x800101 }, + { &daAlink_c::procWolfLieStart, 0x1000100 }, + { &daAlink_c::procWolfLieMove, 0x1000100 }, + { &daAlink_c::procWolfLieAutoMove, 0x5002000 }, + { &daAlink_c::procWolfHangReady, 0x1001 }, + { &daAlink_c::procWolfStepMove, 0x10001100 }, + { &daAlink_c::procWolfHangWallCatch, 0x10005040 }, + { &daAlink_c::procWolfHangFallStart, 0x10005041 }, + { &daAlink_c::procWolfDamage, 0x8 }, + { &daAlink_c::procWolfLargeDamageUp, 0x12008008 }, + { &daAlink_c::procWolfLandDamage, 0x9 }, + { &daAlink_c::procWolfScreamWait, 0x1 }, + { &daAlink_c::procWolfSlip, 0x10001000 }, + { &daAlink_c::procWolfSlipTurn, 0x10001000 }, + { &daAlink_c::procWolfSlipTurnLand, 0x10001000 }, + { &daAlink_c::procWolfSlideReady, 0x10008000 }, + { &daAlink_c::procWolfSlide, 0x1000 }, + { &daAlink_c::procWolfSlideLand, 0x1000 }, + { &daAlink_c::procWolfWaitSlip, 0x1100 }, + { &daAlink_c::procWolfSlopeStart, 0x1000 }, + { &daAlink_c::procWolfRopeMove, 0x23100 }, + { &daAlink_c::procWolfRopeHang, 0x10023000 }, + { &daAlink_c::procWolfRopeTurn, 0x10023000 }, + { &daAlink_c::procWolfRopeStagger, 0x10023000 }, + { &daAlink_c::procWolfRopeSubjectivity, 0x23001 }, + { &daAlink_c::procWolfTagJump, 0x1022 }, + { &daAlink_c::procWolfTagJumpLand, 0x120 }, + { &daAlink_c::procWolfRollAttackCharge, 0x100 }, + { &daAlink_c::procWolfRollAttackMove, 0x100 }, + { &daAlink_c::procWolfJumpAttack, 0x2 }, + { &daAlink_c::procWolfJumpAttackKick, 0x2 }, + { &daAlink_c::procWolfJumpAttackSlideLand, 0x0 }, + { &daAlink_c::procWolfJumpAttackNormalLand, 0x0 }, + { &daAlink_c::procWolfWaitAttack, 0x0 }, + { &daAlink_c::procWolfRollAttack, 0x0 }, + { &daAlink_c::procWolfDownAttack, 0x22 }, + { &daAlink_c::procWolfDownAtLand, 0x8002021 }, + { &daAlink_c::procWolfDownAtMissLand, 0x0 }, + { &daAlink_c::procWolfLockAttack, 0x2002 }, + { &daAlink_c::procWolfLockAttackTurn, 0x0 }, + { &daAlink_c::procWolfSwimUp, 0x40000 }, + { &daAlink_c::procWolfSwimWait, 0x40101 }, + { &daAlink_c::procWolfSwimMove, 0x40100 }, + { &daAlink_c::procWolfSwimEndWait, 0x1001 }, + { &daAlink_c::procWolfGrabUp, 0x100001 }, + { &daAlink_c::procWolfGrabPut, 0x100001 }, + { &daAlink_c::procWolfGrabThrow, 0x100001 }, + { &daAlink_c::procWolfChainUp, 0x1 }, + { &daAlink_c::procWolfPush, 0x20 }, + { &daAlink_c::procWolfChainReady, 0x20000 }, + { &daAlink_c::procWolfChainWait, 0x10020000 }, + { &daAlink_c::procWolfDig, 0xa020 }, + { &daAlink_c::procWolfDigThrough, 0xe000 }, + { &daAlink_c::procWolfAttackReverse, 0x2 }, + { &daAlink_c::procWolfEnemyThrow, 0x0 }, + { &daAlink_c::procWolfEnemyHangBite, 0xe002 }, + { &daAlink_c::procWolfGiantPuzzle, 0x100 }, + { &daAlink_c::procWolfCargoCarry, 0x400e022 }, + { &daAlink_c::procWolfGetSmell, 0xe021 }, + { &daAlink_c::procDemoCommon, 0x1 }, + { &daAlink_c::procWolfSnowEscape, 0xa000 }, + { &daAlink_c::procWolfGanonCatch, 0x4002021 }, + { &daAlink_c::procCoToolDemo, 0x8000 }, + { &daAlink_c::procCoSubjectivity, 0x20001005 }, + { &daAlink_c::procCoSwimSubjectivity, 0x20041001 }, + { &daAlink_c::procCoPeepSubjectivity, 0x2000200b }, + { &daAlink_c::procCoPolyDamage, 0x9 }, + { &daAlink_c::procCoElecDamage, 0x9 }, + { &daAlink_c::procCoPushPullWait, 0x202001 }, + { &daAlink_c::procCoPushMove, 0x202000 }, + { &daAlink_c::procCoTalk, 0x80101 }, + { &daAlink_c::procCoOpenTreasure, 0xe001 }, + { &daAlink_c::procCoUnequip, 0x1 }, + { &daAlink_c::procCoGetItem, 0x800e001 }, + { &daAlink_c::procCoTurnBack, 0x1 }, + { &daAlink_c::procCoLookWait, 0x1101 }, + { &daAlink_c::procDemoCommon, 0x200001 }, + { &daAlink_c::procDemoCommon, 0x200000 }, + { &daAlink_c::procCoMetamorphose, 0x8001 }, + { &daAlink_c::procCoMetamorphoseOnly, 0x6001 }, + { &daAlink_c::procCoWarp, 0x1 }, + { &daAlink_c::procCoDead, 0xa009 }, + { &daAlink_c::procCoFogDead, 0xa009 }, + { &daAlink_c::procCoLookAround, 0x0 }, + { &daAlink_c::procDemoCommon, 0xe000 }, + { &daAlink_c::procCoSandWallHit, 0xa }, + { &daAlink_c::procCoLavaReturn, 0x42009 }, + { &daAlink_c::procCoSwimFreezeReturn, 0x42009 }, + { &daAlink_c::procCoGetReadySit, 0xa001 }, + { &daAlink_c::procCoTwGate, 0xe002 }, + { &daAlink_c::procCoLargeDamage, 0xa }, + { &daAlink_c::procCoLargeDamageWall, 0xa }, + { &daAlink_c::procCoNod, 0x80001 }, + { &daAlink_c::procDemoCommon, 0x80001 }, + { &daAlink_c::procCoGlare, 0x80001 }, + { &daAlink_c::procCoHorseCallWait, 0x1 }, + { &daAlink_c::procDemoCommon, 0x1 }, +}; -#include "d/actor/d_a_alink_cut.inc" - -#include "d/actor/d_a_alink_damage.inc" - -#include "d/actor/d_a_alink_guard.inc" - -#include "d/actor/d_a_alink_bow.inc" - -#include "d/actor/d_a_alink_boom.inc" - -#include "d/actor/d_a_alink_copyrod.inc" - -#include "d/actor/d_a_alink_hvyboots.inc" - -#include "d/actor/d_a_alink_bomb.inc" +daAlink_procFunc daAlink_c::m_demoInitTable[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::commonWaitTurnInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoOpenTreasureInit, + &daAlink_c::procCoGetItemInit, + &daAlink_c::procCoUnequipInit, + &daAlink_c::commonGrabPutInit, + NULL, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procMonkeyMoveInit, + &daAlink_c::procCoLookAroundInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoTurnBackInit, + NULL, + NULL, + &daAlink_c::procDemoBoomerangCatchInit, + &daAlink_c::procHawkCatchInit, + &daAlink_c::procSwordUnequipSpInit, + NULL, + &daAlink_c::procCoDemoPushPullWaitInit, + &daAlink_c::procCoDemoPushMoveInit, + &daAlink_c::procBossAtnWaitInit, + &daAlink_c::procDoorOpenInit, + NULL, + &daAlink_c::procTradeItemOutInit, + NULL, + &daAlink_c::procKandelaarSwingInit, + &daAlink_c::procFrontRollInit, + &daAlink_c::procCrouchInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoCaughtInit, + &daAlink_c::procLookUpInit, + &daAlink_c::procLookUpToGetItemInit, + &daAlink_c::procHandPatInit, + &daAlink_c::procWolfMidnaRideShockInit, + &daAlink_c::procSumouShikoInit, + &daAlink_c::procCoFogDeadInit, + &daAlink_c::procWolfSmellWaitInit, + NULL, + NULL, + &daAlink_c::procWolfCargoCarryInit, + &daAlink_c::procCoMetamorphoseInit, + &daAlink_c::procCoMetamorphoseInit, + &daAlink_c::procHorseGetKeyInit, + &daAlink_c::procCoNodInit, + &daAlink_c::procCoGlareInit, + &daAlink_c::procCoEyeAwayInit, + &daAlink_c::procGoatStopReadyInit, + &daAlink_c::procCoGetReadySitInit, + NULL, + &daAlink_c::procCoTwGateInit, + &daAlink_c::procFmChainStrongPullInit, + &daAlink_c::procWolfSnowEscapeInit, + &daAlink_c::procZoraMoveInit, + &daAlink_c::procCoMetamorphoseOnlyInit, + &daAlink_c::procCoMetamorphoseOnlyInit, + &daAlink_c::procLookAroundTurnInit, + NULL, + &daAlink_c::procCoQuakeWaitInit, + &daAlink_c::procGuardAttackInit, + &daAlink_c::procSwordReadyInit, + &daAlink_c::procDungeonWarpInit, + &daAlink_c::procDungeonWarpSceneStartInit, + &daAlink_c::procMasterSwordStickInit, + &daAlink_c::procMasterSwordPullInit, + &daAlink_c::procCutDownInit, + NULL, + &daAlink_c::procCutHeadInit, + NULL, + NULL, + &daAlink_c::procCutLargeJumpInit, + &daAlink_c::procCutFastReadyInit, + &daAlink_c::procCopyRodReviveInit, + &daAlink_c::procSwordPushInit, + &daAlink_c::procGanonFinishInit, + NULL, + NULL, + &daAlink_c::procHorseLookDownInit, + NULL, +}; static f32 l_autoUpHeight = 30.010000228881836f; static f32 l_autoDownHeight = -30.010000228881836f; -#include "d/actor/d_a_alink_grab.inc" - -#include "d/actor/d_a_alink_sumou.inc" - -#include "d/actor/d_a_alink_horse.inc" - -#include "d/actor/d_a_alink_canoe.inc" - -#include "d/actor/d_a_alink_crawl.inc" - static f32 l_ladderAnmBaseTransY = 102.00054168701172f; -#include "d/actor/d_a_alink_hang.inc" - -#include "d/actor/d_a_alink_swim.inc" - -#include "d/actor/d_a_alink_iceleaf.inc" - -#include "d/actor/d_a_alink_hook.inc" - -#include "d/actor/d_a_alink_spinner.inc" - -#include "d/actor/d_a_alink_bottle.inc" - -#include "d/actor/d_a_alink_kandelaar.inc" - -#include "d/actor/d_a_alink_whistle.inc" - static dCcD_SrcCyl l_cylSrc = { { - {0, {{AT_TYPE_WOLF_ATTACK, 3, 0x1A}, {0xD8FFFDFF, 5}, 0x73}}, + {0, {{AT_TYPE_WOLF_ATTACK, 3, 0x1A}, {(s32)0xD8FFFDFF, 5}, 0x73}}, {dCcD_SE_WOLF_BITE, 3, 1, 0, {1}}, {dCcD_SE_NONE, 6, 0, 0, {0}}, {0}, @@ -1522,7 +1482,7 @@ static dCcD_SrcCyl l_cylSrc = { static dCcD_SrcSph l_sphSrc = { { - {0, {{AT_TYPE_NORMAL_SWORD, 3, 0x1A}, {0xD8FBFDFF, 5}, 0x73}}, + {0, {{AT_TYPE_NORMAL_SWORD, 3, 0x1A}, {(s32)0xD8FBFDFF, 5}, 0x73}}, {dCcD_SE_SWORD, 3, 1, 0, {1}}, {dCcD_SE_NONE, 6, 0, 0, {0}}, {0}, @@ -1940,6 +1900,50 @@ static dJntColData_c l_wolfJntColData[] = { }, }; +#include "d/actor/d_a_alink_link.inc" + +#include "d/actor/d_a_alink_cut.inc" + +#include "d/actor/d_a_alink_damage.inc" + +#include "d/actor/d_a_alink_guard.inc" + +#include "d/actor/d_a_alink_bow.inc" + +#include "d/actor/d_a_alink_boom.inc" + +#include "d/actor/d_a_alink_copyrod.inc" + +#include "d/actor/d_a_alink_hvyboots.inc" + +#include "d/actor/d_a_alink_bomb.inc" + +#include "d/actor/d_a_alink_grab.inc" + +#include "d/actor/d_a_alink_sumou.inc" + +#include "d/actor/d_a_alink_horse.inc" + +#include "d/actor/d_a_alink_canoe.inc" + +#include "d/actor/d_a_alink_crawl.inc" + +#include "d/actor/d_a_alink_hang.inc" + +#include "d/actor/d_a_alink_swim.inc" + +#include "d/actor/d_a_alink_iceleaf.inc" + +#include "d/actor/d_a_alink_hook.inc" + +#include "d/actor/d_a_alink_spinner.inc" + +#include "d/actor/d_a_alink_bottle.inc" + +#include "d/actor/d_a_alink_kandelaar.inc" + +#include "d/actor/d_a_alink_whistle.inc" + #include "d/actor/d_a_alink_ironball.inc" #include "d/actor/d_a_alink_demo.inc" @@ -2012,24 +2016,24 @@ void daAlink_matAnm_c::calc(J3DMaterial* i_material) const { if (!daAlink_getAlinkActorClass()->checkStatusWindowDraw()) { for (u32 i = 0; i < 8; i++) { if (getTexMtxAnm(i).getAnmFlag()) { - J3DTexMtxInfo* info = &i_material->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); + J3DTextureSRTInfo* srt = &i_material->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo().mSRT; if (m_morf_frame != 0) { if (!mSetFlag) { f32 var_f31 = 1.0f / (m_morf_frame + 1); - info->mSRT.mTranslationX = field_0xf4 * (1.0f - var_f31) + info->mSRT.mTranslationX * var_f31; - info->mSRT.mTranslationY = field_0xf8 * (1.0f - var_f31) + info->mSRT.mTranslationY * var_f31; + srt->mTranslationX = field_0xf4 * (1.0f - var_f31) + srt->mTranslationX * var_f31; + srt->mTranslationY = field_0xf8 * (1.0f - var_f31) + srt->mTranslationY * var_f31; mSetFlag = 1; } else { - info->mSRT.mTranslationX = field_0xf4; - info->mSRT.mTranslationY = field_0xf8; + srt->mTranslationX = field_0xf4; + srt->mTranslationY = field_0xf8; } } else if (m_eye_move_flg) { - info->mSRT.mTranslationX = mNowOffsetX; - info->mSRT.mTranslationY = mNowOffsetY; + srt->mTranslationX = mNowOffsetX; + srt->mTranslationY = mNowOffsetY; } - field_0xf4 = info->mSRT.mTranslationX; - field_0xf8 = info->mSRT.mTranslationY; + field_0xf4 = srt->mTranslationX; + field_0xf8 = srt->mTranslationY; } } } @@ -2433,7 +2437,8 @@ bool daAlink_c::modelCallBack(int i_jointNo) { } static int daAlink_modelCallBack(J3DJoint* i_joint, int param_1) { - int jntNo = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int jntNo = joint->getJntNo(); daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { @@ -2491,7 +2496,8 @@ int daAlink_c::headModelCallBack(int i_jointNo) { } static int daAlink_headModelCallBack(J3DJoint* i_joint, int param_1) { - int joint_no = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int joint_no = joint->getJntNo(); daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { @@ -2514,7 +2520,8 @@ int daAlink_c::wolfModelCallBack(int i_jointNo) { } static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1) { - int joint_no = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int joint_no = joint->getJntNo(); daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { @@ -2538,6 +2545,9 @@ void daAlink_c::setHatAngle() { cXyz sp9C; cXyz sp90; + f32 sp40; + f32 sp3C; + int sp38; if (checkNoResetFlg2(daPy_FLG2(FLG2_UNK_100000 | FLG2_UNK_80000))) { sp38 = 0; @@ -2546,6 +2556,7 @@ void daAlink_c::setHatAngle() { } mDoMtx_multVecZero(mpLinkHatModel->getAnmMtx(sp38), &spA8); + sp3C = field_0x34e0.y - mpLinkHatModel->getAnmMtx(0)[1][3]; BOOL sp34; if (!checkEndResetFlg1(ERFLG1_UNK_80000) @@ -2556,7 +2567,6 @@ void daAlink_c::setHatAngle() { sp34 = FALSE; } - f32 sp40; dKyw_get_AllWind_vec(&spA8, &spB4, &sp40); if (checkModeFlg(0x40000) || checkEndResetFlg1(ERFLG1_UNK_80000)) { @@ -2569,6 +2579,8 @@ void daAlink_c::setHatAngle() { f32 var_f28; f32 temp_f26 = 25.0f * (sp40 * sp40); + s16 sp18; + s16 sp16; s16 sp14 = field_0x3060; s16 sp12 = field_0x3062; cXyz sp84 = eyePos - field_0x34e0; @@ -2578,10 +2590,12 @@ void daAlink_c::setHatAngle() { mDoMtx_multVecZero(mpLinkHatModel->getAnmMtx(0), &sp90); sp90 = field_0x34e0 - sp90; mDoMtx_multVecSR(mMagneBootInvMtx, &sp90, &sp90); + sp3C = sp90.y; } field_0x3062 = sp84.atan2sX_Z(); + s16 sp10; s16 spE; if (mProcID == PROC_GOAT_CATCH) { mDoMtx_multVecSR(mpLinkModel->getAnmMtx(1), &cXyz::BaseY, &sp90); @@ -2601,14 +2615,14 @@ void daAlink_c::setHatAngle() { field_0x3060 = sp84.atan2sY_XZ(); } - f32 temp_f1 = sp84.absXZ(); - if (temp_f1 < 0.01f) { + f32 var_f31 = sp84.absXZ(); + if (var_f31 < 0.01f) { var_f29 = cM_ssin(spE); var_f28 = cM_scos(spE); } else { - f32 temp_f31 = 1.0f / temp_f1; - var_f29 = sp84.x * temp_f31; - var_f28 = sp84.z * temp_f31; + var_f31 = 1.0f / var_f31; + var_f29 = sp84.x * var_f31; + var_f28 = sp84.z * var_f31; } s16 spC; @@ -2653,11 +2667,11 @@ void daAlink_c::setHatAngle() { } if (fabsf(sp9C.x) < 0.01f) { - sp9C.x = (f32) 0.0f; + sp9C.x = 0.0f; } if (fabsf(sp9C.z) < 0.01f) { - sp9C.z = (f32) 0.0f; + sp9C.z = 0.0f; } if (checkMagneBootsOn()) { @@ -2672,9 +2686,6 @@ void daAlink_c::setHatAngle() { mDoMtx_stack_c::multVecSR(&cXyz::BaseY, &sp78); mDoMtx_stack_c::multVec(&cXyz::BaseX, &sp6C); - s16 sp18; - s16 sp16; - int sp30; if (sp6C.y < mDoMtx_stack_c::get()[1][3] && !checkUnderMove0BckNoArc(ANM_DIE)) { sp30 = cM_atan2s(-sp78.y, -sp78.absXZ()); @@ -2693,7 +2704,7 @@ void daAlink_c::setHatAngle() { sp16 = *temp_r28; f32 temp_f27 = (sp9C.z * var_f28) + (sp9C.x * var_f29); - s16 sp10 = cM_atan2s(sp9C.y, -temp_f27); + sp10 = cM_atan2s(sp9C.y, -temp_f27); int sp24 = cLib_minMaxLimit(sp10 - field_0x3060, -0x3800, 0x3800); sp10 = (sp24 + field_0x3060); @@ -2728,9 +2739,10 @@ void daAlink_c::setHatAngle() { sp2C++; sp28++; - for (int i = 1; i < 3; i++, temp_r29++, temp_r28++, sp2C++, sp28++) { - temp_r29[0] -= ((s16)(temp_r29[-1] - sp18) >> 1); - temp_r28[0] -= ((s16)(temp_r28[-1] - sp16) >> 1); + int i; + for (i = 1; i < 3; i++, temp_r29++, temp_r28++, sp2C++, sp28++) { + ANGLE_SUB_2(temp_r29[0], ((s16)(temp_r29[-1] - sp18) >> 1)); + ANGLE_SUB_2(temp_r28[0], ((s16)(temp_r28[-1] - sp16) >> 1)); sp18 = temp_r29[0]; sp16 = temp_r28[0]; @@ -2746,7 +2758,7 @@ void daAlink_c::setHatAngle() { sp10 += temp_r29[0]; if (sp10 < sp30) { - temp_r29[0] += (sp30 - sp10); + ANGLE_ADD_2(temp_r29[0], sp30 - sp10); sp10 = sp30; } @@ -2770,7 +2782,7 @@ void daAlink_c::setHatAngle() { s16 sp8 = 1500.0f + (4060.0f * var_f30); field_0x3064 += sp8; - for (int i = 0; i < 3; i++) { + for (i = 0; i < 3; i++) { field_0x3066[i] = var_f25 * cM_deg2s(((i + 1) * 4)) * cM_scos((field_0x3064 - ((i + 3) * sp8))); } @@ -2788,6 +2800,8 @@ void daAlink_c::setHairAngle(cXyz* param_0, f32 param_1, f32 param_2) { f32 temp_f27 = param_0->absXZ(); if (var_f31 < 1.0f || temp_f27 < 1.0f) { + int dummy; // force stack pointer into r31 for debug + calcHairAngle(&field_0x302c[1]); calcHairAngle(&field_0x3040[1]); calcHairAngle(&field_0x302c[2]); @@ -2904,6 +2918,7 @@ bool daAlink_c::checkActorPosAngle(fopAc_ac_c* i_actor, cXyz** o_ppos) { } cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { + cXyz* sp1C; fopAc_ac_c* look_actor = NULL; s16 spA = field_0x311c; field_0x311c = 0; @@ -2970,7 +2985,7 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { field_0x28fc = fopAcM_GetID(lock_actor); } } else { - field_0x30f8 -= 1; + field_0x30f8--; } } } else { @@ -2984,7 +2999,6 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { look_actor = dCam_getBody()->GetForceLockOnActor(); } - cXyz* sp1C; if (checkActorPosAngle(look_actor, &sp1C)) { return sp1C; } @@ -3293,7 +3307,7 @@ void daAlink_c::setEyeMove(cXyz* param_0, s16 param_1, s16 param_2) { var_f31 = 0.0f; } else if (!checkEventRun() && checkModeFlg(1) && checkNoResetFlg1(FLG1_UNK_2000) && (checkNoUpperAnime() || checkGrabAnime()) && (mProcID == PROC_WAIT || mProcID == PROC_GRAB_WAIT || mProcID == PROC_CROUCH || mProcID == PROC_HORSE_WAIT || mProcID == PROC_WOLF_WAIT)) { if (temp_r28 != 0) { - field_0x2fa7 = temp_r28 - 1; + field_0x2fa7 = --temp_r28; field_0x3418 = sp18; field_0x341c = sp14; } else if (0.0f != sp18 || 0.0f != sp14) { @@ -3487,12 +3501,12 @@ void daAlink_c::setMoveSlantAngle() { if (mProcID == PROC_WOLF_SWIM_MOVE) { if (var_r29 >= 0) { - var_r29 -= 0x100; + ANGLE_SUB_2(var_r29, 0x100); if (var_r29 < 0) { var_r29 = 0; } } else { - var_r29 += 0x100; + ANGLE_ADD_2(var_r29, 0x100); if (var_r29 > 0) { var_r29 = 0; } @@ -3500,7 +3514,7 @@ void daAlink_c::setMoveSlantAngle() { } var_r29 = cLib_minMaxLimit((s16)var_r29, -0x300, 0x300); - var_r29 *= 8; + var_r29 <<= 3; } else { var_r28 = 0; var_r29 = 0; @@ -3516,13 +3530,13 @@ void daAlink_c::setMoveSlantAngle() { cLib_addCalcAngleS(&field_0x2fec, var_r29, 4, 1200, 200); } } else if (mProcID != PROC_CAUGHT) { - shape_angle.z = (field_0x2fee >> 1); - mBodyAngle.z = shape_angle.z; + shape_angle.z = field_0x2fee >> 1; + mBodyAngle.z = (s16)shape_angle.z; if (mProcID == PROC_MOVE || mProcID == PROC_WAIT) { var_r29 = (s16)(shape_angle.y - mPrevAngleY) * 2; if (mProcID == PROC_WAIT) { - var_r29 *= 2; + var_r29 <<= 1; } var_r29 = cLib_minMaxLimit((s16)var_r29, -0xC00, 0xC00); @@ -3536,9 +3550,9 @@ void daAlink_c::setMoveSlantAngle() { } int daAlink_c::setArmMatrix() { + static const u16 armJointTable[] = {0x0007,0x000C}; static Vec const arm1Vec = {29.0f, 0.0f, 0.0f}; static Vec const arm2Vec = {26.5f, 0.0f, 0.0f}; - static const u16 armJointTable[] = {0x0007,0x000C}; daAlink_footData_c* var_r29 = mFootData2; @@ -3602,16 +3616,17 @@ int daAlink_c::setArmMatrix() { } int daAlink_c::setFootMatrix() { + static const u16 footJointTable[] = {0x0012, 0x0017}; static Vec const leg1Vec = {30.0f, 0.0f, 0.0f}; static Vec const leg2Vec = {39.363499f, 0.0f, 0.0f}; static Vec const footVec = {14.18f, 0.0f, 0.0f}; - static const u16 footJointTable[] = {0x0012, 0x0017}; daAlink_footData_c* var_r30 = mFootData1; int i; + int j; for (i = 0; i < 2; i++, var_r30++) { - for (int j = 0; j < 3; j++) { + for (j = 0; j < 3; j++) { cMtx_copy(mpLinkModel->getAnmMtx(j + footJointTable[i]), var_r30->field_0x14[j]); } @@ -3627,14 +3642,15 @@ int daAlink_c::setFootMatrix() { if (mProcID == PROC_HORSE_GETOFF) { current.angle.y = shape_angle.y; if (field_0x2fc0 == 0) { - shape_angle.y -= 0x4000; + ANGLE_SUB_2(shape_angle.y, 0x4000); } else { - shape_angle.y += 0x4000; + ANGLE_ADD_2(shape_angle.y, 0x4000); } } + u16 temp_r29; for (i = 0; i < 2; i++, var_r30++) { - u16 temp_r29 = footJointTable[i]; + temp_r29 = footJointTable[i]; setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r29), var_r30->field_0x6, 0, 0, 0, NULL); mDoMtx_stack_c::multVec(&leg1Vec, &sp10); @@ -3645,8 +3661,8 @@ int daAlink_c::setFootMatrix() { temp_r29++; setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r29), var_r30->field_0x2, 0, 0, 0, &sp10); - temp_r29++; mDoMtx_stack_c::multVec(&footVec, &sp10); + temp_r29++; setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r29), var_r30->field_0x2, 0, 0, 0, &sp10); } @@ -3741,22 +3757,23 @@ int daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param_ } cXyz sp50 = sp5C - spA4; - f32 temp_f1 = sp50.abs2(); - if (cM3d_IsZero(temp_f1)) { + f32 var_f31 = sp50.abs2(); + if (cM3d_IsZero(var_f31)) { return 0; } - f32 temp_f28 = sp74.abs2(); - f32 temp_f26 = sp68.abs2(); + f32 var_f29; + f32 var_f28 = sp74.abs2(); + f32 var_f26 = sp68.abs2(); - if (JMAFastSqrt(temp_f28) + JMAFastSqrt(temp_f26) <= JMAFastSqrt(temp_f1)) { + if (JMAFastSqrt(var_f28) + JMAFastSqrt(var_f26) <= JMAFastSqrt(var_f31)) { return 0; } - f32 temp_f27 = ((temp_f1 + temp_f28) - temp_f26) / (2.0f * temp_f1); - cXyz sp44 = spA4 + (sp50 * temp_f27); + f32 var_f27 = ((var_f31 + var_f28) - var_f26) / (2.0f * var_f31); + cXyz sp44 = spA4 + (sp50 * var_f27); - f32 var_f30 = temp_f28 - (temp_f27 * (temp_f1 * temp_f27)); + f32 var_f30 = var_f28 - (var_f27 * (var_f31 * var_f27)); if (var_f30 < 0.0f) { var_f30 = 0.0f; } @@ -3774,20 +3791,24 @@ int daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param_ sp80.set(-sp50.y, sp50.x, 0.0f); } - f32 temp_f1_2 = sp80.abs(); - if (cM3d_IsZero(temp_f1_2)) { + var_f29 = sp80.abs(); + if (cM3d_IsZero(var_f29)) { return 0; } - cXyz sp38 = sp44 + (sp80 * (var_f30 / temp_f1_2)); + var_f29 = var_f30 / var_f29; + cXyz sp38 = sp44 + (sp80 * var_f29); cXyz sp2C = sp38 - spA4; cXyz sp20 = sp5C - sp38; + s16 temp_r30; + s16 var_r29; + s16 temp_r0; if (param_4 != 0) { - s16 temp_r30 = cM_atan2s(sp2C.y, sp2C.z); - s16 var_r29 = cM_atan2s(sp20.y, sp20.z); - s16 temp_r0 = var_r29 - temp_r30; + temp_r30 = cM_atan2s(sp2C.y, sp2C.z); + var_r29 = cM_atan2s(sp20.y, sp20.z); + temp_r0 = var_r29 - temp_r30; if (checkWolf()) { if (temp_r0 < 0) { @@ -3804,11 +3825,11 @@ int daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param_ *param_2 = cM_atan2s(sp74.y, sp74.z) - temp_r30; *param_3 = cM_atan2s(sp68.y, sp68.z) - var_r29; } else { - s16 temp_r30_2 = cM_atan2s(sp2C.x, sp2C.y); - s16 temp_r29 = cM_atan2s(sp20.x, sp20.y); + temp_r30 = cM_atan2s(sp2C.x, sp2C.y); + var_r29 = cM_atan2s(sp20.x, sp20.y); - *param_2 = cM_atan2s(sp74.x, sp74.y) - temp_r30_2; - *param_3 = cM_atan2s(sp68.x, sp68.y) - temp_r29; + *param_2 = cM_atan2s(sp74.x, sp74.y) - temp_r30; + *param_3 = cM_atan2s(sp68.x, sp68.y) - var_r29; } return 1; @@ -4049,6 +4070,7 @@ JKRHeap* daAlink_c::setItemHeap() { * The latter 3 digits are the resource ID */ void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resIdx) { + UNUSED(o_resIdx); if (*o_arcNo == 0xFFFF) { u16 arc_id = (*o_resIdx >> 12) & 0xF; *o_resIdx &= 0xFFF; @@ -4513,16 +4535,16 @@ void daAlink_c::playerInit() { m_nSwordBtk->searchUpdateMaterialID(modelData); modelData->entryTexMtxAnimator(m_nSwordBtk); - J3DModelData* modelData2 = mpSwMModel->getModelData(); + modelData = mpSwMModel->getModelData(); m_mSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BTK_AL_SWM_e); JUT_ASSERT(4767, m_mSwordBtk); - m_mSwordBtk->searchUpdateMaterialID(modelData2); - modelData2->entryTexMtxAnimator(m_mSwordBtk); + m_mSwordBtk->searchUpdateMaterialID(modelData); + modelData->entryTexMtxAnimator(m_mSwordBtk); m_mSwordBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BRK_AL_SWM_e); JUT_ASSERT(4774, m_mSwordBrk != NULL); - m_mSwordBrk->searchUpdateMaterialID(modelData2); - modelData2->entryTevRegAnimator(m_mSwordBrk); + m_mSwordBrk->searchUpdateMaterialID(modelData); + modelData->entryTevRegAnimator(m_mSwordBrk); mWaterY = -G_CM3D_F_INF; field_0x33b8 = -G_CM3D_F_INF; @@ -4585,8 +4607,9 @@ void daAlink_c::playerInit() { field_0x2f96 = -1; field_0x2f97 = -1; - for (int i = 0; i < 16; i++) { - mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e; + int i2; + for (i2 = 0; i2 < 16; i2++) { + mShieldArrowIDs[i2] = fpcM_ERROR_PROCESS_ID_e; } mAtnActorID = fpcM_ERROR_PROCESS_ID_e; @@ -4616,6 +4639,10 @@ void daAlink_c::playerInit() { } } +void dummy(fopAc_ac_c* i_this) { + fopAcM_RegisterCreateID(i_this, "ALINK"); +} + BOOL daAlink_c::checkHorseStart(u32 i_lastMode, int i_startMode) { return i_lastMode == 1 || i_startMode == 2 || i_lastMode == 8; } @@ -4785,7 +4812,7 @@ int daAlink_c::setStartProcInit() { mMoveAngle = shape_angle.y; if (last_mode == 3) { - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); current.angle.y = shape_angle.y; mPrevAngleY = shape_angle.y; } @@ -5493,6 +5520,7 @@ void daAlink_c::setBodyPartPos() { static Vec const boardLocalEyeFromRoot = {9.5f, 47.0f, 24.5f}; static Vec const horseLocalEyeFromRoot = {1.75f, 55.0f, 25.5f}; static Vec const canoeLocalEyeFromRoot = {0.0f, 55.0f, 25.0f}; + static Vec const wlLocalEyeFromRoot = {0.0f, -6.0f, 85.5f}; if (checkWolf()) { cMtx_multVec(mpLinkModel->getAnmMtx(4), &wlLocalEye, &eyePos); @@ -5570,7 +5598,6 @@ int daAlink_c::setRollJump(f32 i_speedH, f32 i_speedV, s16 i_angle) { } void daAlink_c::setAttentionPos() { - static Vec const wlLocalEyeFromRoot = {0.0f, -6.0f, 85.5f}; static Vec const normalOffset = {0.0f, 150.0f, 0.0f}; static Vec const crawlOffset = {0.0f, 40.0f, 30.0f}; static Vec const crouchOffset = {0.0f, 95.0f, 0.0f}; @@ -6228,6 +6255,8 @@ void daAlink_c::setWolfAtCollision() { mTgCyls[i].OnAtSetBit(); } } + + (void)0; } else { mAtCyl.MoveCAt(sp8); } @@ -6608,7 +6637,8 @@ void daAlink_c::cancelLockAt() { void daAlink_c::setCollisionPos() { cXyz sp74; mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0), &sp74); - cXyz sp68 = (sp74 + mHeadTopPos) * 0.5f; + cXyz sp68; + sp68 = (sp74 + mHeadTopPos) * 0.5f; f32 var_f31; if (sp74.y > mHeadTopPos.y) { @@ -6628,30 +6658,29 @@ void daAlink_c::setCollisionPos() { mTgCyls[2].SetH(var_f31); sp68 = (((mLeftFootPos + mRightFootPos) * 0.5f) + sp74) * 0.5f; - f32 var_f0 = mLeftFootPos.y > mRightFootPos.y ? mRightFootPos.y : mLeftFootPos.y; + f32 var_f30 = mLeftFootPos.y > mRightFootPos.y ? mRightFootPos.y : mLeftFootPos.y; - f32 var_f31_2; - if (sp74.y > var_f0) { - sp68.y = var_f0; - var_f31_2 = sp74.y - var_f0; + if (sp74.y > var_f30) { + sp68.y = var_f30; + var_f31 = sp74.y - var_f30; } else { sp68.y = sp74.y; - var_f31_2 = var_f0 - sp74.y; + var_f31 = var_f30 - sp74.y; } - if (var_f31_2 < 60.0f) { - sp68.y -= 0.5f * (60.0f - var_f31_2); - var_f31_2 = 60.0f; + if (var_f31 < 60.0f) { + sp68.y -= 0.5f * (60.0f - var_f31); + var_f31 = 60.0f; } mTgCyls[0].SetC(sp68); - mTgCyls[0].SetH(var_f31_2); + mTgCyls[0].SetH(var_f31); sp68 = (mTgCyls[0].GetC() + mTgCyls[2].GetC()) * 0.5f; - f32 temp_f31 = 0.5f * (mTgCyls[0].GetH() + mTgCyls[2].GetH()); + var_f31 = 0.5f * (mTgCyls[0].GetH() + mTgCyls[2].GetH()); mTgCyls[1].SetC(sp68); - mTgCyls[1].SetH(temp_f31); + mTgCyls[1].SetH(var_f31); field_0x3454 = field_0x3834.y; } @@ -7689,6 +7718,8 @@ void daAlink_c::setBlendMoveAnime(f32 i_morf) { field_0x2f97 = 6; } } + + (void)0; } else if (var_f31 < mpHIO->mMove.m.mRunChangeRate) { var_f28 = (var_f31 - mpHIO->mMove.m.mWalkChangeRate) / (mpHIO->mMove.m.mRunChangeRate - mpHIO->mMove.m.mWalkChangeRate); setDoubleAnime(var_f28, var_f29, sp2C, var_r28, sp18, 1, i_morf); @@ -8543,8 +8574,8 @@ void daAlink_c::setFrontWallType() { sp40 = linchk_tri.getSignedLenPos(¤t.pos); field_0x34ec.set(current.pos.x - (sp40 * linchk_tri.mNormal.x), current.pos.y, current.pos.z - (sp40 * linchk_tri.mNormal.z)); - int temp_r3 = dComIfG_Bgsp().GetWallCode(mLinkLinChk); - if (temp_r3 != 4 && temp_r3 != 5) { + wall_code = dComIfG_Bgsp().GetWallCode(mLinkLinChk); + if (wall_code != 4 && wall_code != 5) { line_start_pos.x = current.pos.x; line_start_pos.z = current.pos.z; line_end_pos.x = line_start_pos.x - (2.0f * sp40 * linchk_tri.mNormal.x); @@ -8607,6 +8638,7 @@ void daAlink_c::setFrontWallType() { field_0x27fc = dComIfG_Bgsp().GetActorPointer(mLinkLinChk); } + f32 sp38; if (checkNoResetFlg0(daPy_FLG0(FLG0_WATER_IN_MOVE | FLG0_SWIM_UP))) { if (var_r29 == 6 && !checkModeFlg(0x40002)) { setDoStatus(BUTTON_STATUS_ENTER); @@ -8641,7 +8673,7 @@ void daAlink_c::setFrontWallType() { line_start_pos.set(field_0x34ec.x - (15.0f * linchk_tri.mNormal.x), 150.0f + sp34, field_0x34ec.z - (15.0f * linchk_tri.mNormal.z)); mLinkGndChk.SetPos(&line_start_pos); - f32 sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (sp38 >= current.pos.y && dBgS_CheckBGroundPoly(mLinkGndChk)) { cM3dGPla spB8; @@ -8750,7 +8782,7 @@ void daAlink_c::setFrontWallType() { line_start_pos.set(field_0x34ec.x - (1.5f * linchk_tri.mNormal.x), body_height + (0.01f + hang_height), field_0x34ec.z - (1.5f * linchk_tri.mNormal.z)); mLinkGndChk.SetPos(&line_start_pos); - f32 sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (-G_CM3D_F_INF != sp38 && fabsf(sp1C - sp38) < l_autoUpHeight) { found_gnd_tri = dComIfG_Bgsp().GetTriPla(mLinkGndChk, &gndchk_tri); @@ -9314,8 +9346,7 @@ void daAlink_c::setStickData() { mDemo.setMoveAngle(getSceneExitMoveAngle()); if (checkHorseRide()) { - s16 angle = mDemo.getMoveAngle(); - dComIfGp_getHorseActor()->changeDemoMoveAngle(angle); + dComIfGp_getHorseActor()->changeDemoMoveAngle(mDemo.getMoveAngle()); } } else { mStickValue = 0.0f; @@ -9381,47 +9412,47 @@ void daAlink_c::setStickData() { } if (mDoCPd_c::getTrigB(PAD_1)) { - mItemTrigger |= BTN_B; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_B; } if (mDoCPd_c::getTrigA(PAD_1)) { - mItemTrigger |= BTN_A; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_A; } if (mDoCPd_c::getTrigX(PAD_1)) { - mItemTrigger |= BTN_X; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_X; } if (mDoCPd_c::getTrigY(PAD_1)) { - mItemTrigger |= BTN_Y; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_Y; } if (mDoCPd_c::getTrigZ(PAD_1)) { - mItemTrigger |= BTN_Z; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_Z; } if (mDoCPd_c::getTrigL(PAD_1)) { - mItemTrigger |= BTN_L; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_L; } if (mDoCPd_c::getTrigLockR(PAD_1)) { - mItemTrigger |= BTN_R; + mItemTrigger |= (daAlink_ITEM_BTN)BTN_R; } if (mDoCPd_c::getHoldA(PAD_1)) { - mItemButton |= BTN_A; + mItemButton |= (daAlink_ITEM_BTN)BTN_A; } if (mDoCPd_c::getHoldB(PAD_1)) { - mItemButton |= BTN_B; + mItemButton |= (daAlink_ITEM_BTN)BTN_B; } if (mDoCPd_c::getHoldX(PAD_1)) { - mItemButton |= BTN_X; + mItemButton |= (daAlink_ITEM_BTN)BTN_X; } if (mDoCPd_c::getHoldY(PAD_1)) { - mItemButton |= BTN_Y; + mItemButton |= (daAlink_ITEM_BTN)BTN_Y; } if (mDoCPd_c::getHoldZ(PAD_1)) { - mItemButton |= BTN_Z; + mItemButton |= (daAlink_ITEM_BTN)BTN_Z; } if (mDoCPd_c::getHoldL(PAD_1)) { - mItemButton |= BTN_L; + mItemButton |= (daAlink_ITEM_BTN)BTN_L; } if (mDoCPd_c::getHoldLockR(PAD_1)) { - mItemButton |= BTN_R; + mItemButton |= (daAlink_ITEM_BTN)BTN_R; } if (checkHeavyStateOn(TRUE, TRUE) && @@ -9682,7 +9713,7 @@ s16 daAlink_c::getShapeAngleYAtnActor() { } if (checkWolfShapeReverse()) { - var_r29 += 0x8000; + ANGLE_ADD_2(var_r29, 0x8000); } } else { var_r29 = shape_angle.y; @@ -9799,8 +9830,9 @@ void daAlink_c::setNormalSpeedF(f32 i_speed, f32 i_deceleration) { ) { dBgS_AcchCir* acch_cir = mAcchCir; + int i; if (mLinkAcch.ChkWallHit()) { - for (int i = 0; i < 3; i++, acch_cir++) { + for (i = 0; i < 3; i++, acch_cir++) { if (acch_cir->ChkWallHit()) { var_r29 = (current.angle.y + 0x8000) - acch_cir->GetWallAngleY(); break; @@ -9810,7 +9842,10 @@ void daAlink_c::setNormalSpeedF(f32 i_speed, f32 i_deceleration) { field_0x30fc = 3; field_0x30fa = cM_atan2s(field_0x342c, field_0x3430); var_r29 = (current.angle.y + 0x8000) - field_0x30fa; - } else if (field_0x30fc == 1 && mGrabItemAcKeep.getActor() != NULL && current.pos.abs2(field_0x3540) < 1.0f && dComIfG_Bgsp().ChkPolySafe(mPolyInfo4)) { + } else if (field_0x30fc == 1 && + mGrabItemAcKeep.getActor() != NULL && + current.pos.abs2(field_0x3540) < 1.0f && + dComIfG_Bgsp().ChkPolySafe(mPolyInfo4)) { field_0x30fc = 3; } @@ -9823,16 +9858,16 @@ void daAlink_c::setNormalSpeedF(f32 i_speed, f32 i_deceleration) { } if (checkNoResetFlg1(FLG1_UNK_20000000)) { - s16 temp_r29 = (current.angle.y + 0x8000) - field_0x3092; + var_r29 = (current.angle.y + 0x8000) - field_0x3092; - int temp_r3_2 = abs(temp_r29); + int temp_r3_2 = abs(var_r29); if (temp_r3_2 < 0x4000) { if (checkModeFlg(0x40000)) { - max_speed *= 1.0f - (0.8f * cM_scos(temp_r29)); + max_speed *= 1.0f - (0.8f * cM_scos(var_r29)); } else if (temp_r3_2 < 0x600) { max_speed = 0.0f; } else { - max_speed *= 1.0f - cM_scos(temp_r29); + max_speed *= 1.0f - cM_scos(var_r29); } if (!checkWolf() && !checkMagneBootsOn()) { @@ -9891,7 +9926,9 @@ void daAlink_c::setSpeedAndAngleNormal() { dBgS_AcchCir* acchCir = mAcchCir; for (int i = 0; i < 3; i++, acchCir++) { if (acchCir->ChkWallHit()) { - abs((s16)((current.angle.y + 0x8000) - acchCir->GetWallAngleY())); + if (abs((s16)((current.angle.y + 0x8000) - acchCir->GetWallAngleY())) < 0x4000) { + var_r26 = true; + } break; } } @@ -9994,33 +10031,33 @@ void daAlink_c::setSpeedAndAngleNormal() { void daAlink_c::setSpeedAndAngleAtn() { int var_r29 = field_0x2f98; - if (checkInputOnR()) { - s16 temp_r0 = mMoveAngle - shape_angle.y; - f32 temp_f27 = cM_ssin(temp_r0); - f32 temp_f29 = cM_scos(temp_r0); - - if (mTargetedActor == NULL && !checkGoatStopGame() && (temp_f29 <= -0.99f || temp_f29 >= 0.99f)) { - if (temp_f29 <= -0.99f) { - var_r29 = 1; - } else { - var_r29 = 0; - } - } else if (temp_f29 < -0.866f) { - var_r29 = 1; - } else if (temp_f27 > 0.0f) { - var_r29 = 2; - } else if (temp_f27 < 0.0f) { - var_r29 = 3; - } - } - s16 angleRate; s16 angleMaxStep; s16 angleMinStep; + f32 speed; f32 acceleration; f32 deceleration; - f32 speed; + + if (checkInputOnR()) { + s16 var_r24 = mMoveAngle - shape_angle.y; + f32 var_f27 = cM_ssin(var_r24); + f32 var_f31 = cM_scos(var_r24); + + if (mTargetedActor == NULL && !checkGoatStopGame() && (var_f31 <= -0.99f || var_f31 >= 0.99f)) { + if (var_f31 <= -0.99f) { + var_r29 = 1; + } else { + var_r29 = 0; + } + } else if (var_f31 < -0.866f) { + var_r29 = 1; + } else if (var_f27 > 0.0f) { + var_r29 = 2; + } else if (var_f27 < 0.0f) { + var_r29 = 3; + } + } if (mTargetedActor != NULL) { angleRate = mpHIO->mAtnMove.m.mTurnAngleRate; @@ -10038,7 +10075,7 @@ void daAlink_c::setSpeedAndAngleAtn() { if (var_r29 == 0) { if (checkInputOnR()) { if (getDirectionFromCurrentAngle() == DIR_BACKWARD) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; } if (checkZeroSpeedF()) { @@ -10065,7 +10102,7 @@ void daAlink_c::setSpeedAndAngleAtn() { if (checkInputOnR()) { if (getDirectionFromCurrentAngle() == DIR_BACKWARD) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; } @@ -10228,6 +10265,7 @@ void daAlink_c::decideCommonDoStatus() { } else if (mFastShotTime != 0) { setDoStatus(BUTTON_STATUS_BACK); } + (void)0; } else if (checkWolf()) { if (checkDownAttackState()) { setDoStatusEmphasys(BUTTON_STATUS_FINISH); @@ -10270,6 +10308,7 @@ void daAlink_c::decideCommonDoStatus() { { setDoStatus(BUTTON_STATUS_NONE); } + (void)0; } else { int direction = getDirectionFromShapeAngle(); f32 frontRollRate = getFrontRollRate(); @@ -10369,6 +10408,7 @@ void daAlink_c::decideDoStatus() { if (field_0x2f91 == 7 || field_0x2f91 == 8 || field_0x2f91 == 6 || field_0x2f91 == 9) { setDoStatus(BUTTON_STATUS_UNK_32); } + (void)0; } else { if (searchFmChainPos()) { setChainGrabStatus(BUTTON_STATUS_UNK_150); @@ -11913,7 +11953,12 @@ void daAlink_c::swordUnequip() { anm_speed = mpHIO->mCut.m.mUnequipAnm.mSpeed; } - u16 anm_id = checkReinRide() ? (u16)dRes_ID_ALANM_BCK_WAITHATOHS_e : (u16)dRes_ID_ALANM_BCK_WAITATOS_e; + u16 anm_id; + if (checkReinRide()) { + anm_id = (u16)dRes_ID_ALANM_BCK_WAITHATOHS_e; + } else { + anm_id = (u16)dRes_ID_ALANM_BCK_WAITATOS_e; + } setUpperAnime(anm_id, UPPER_2, anm_speed, mpHIO->mCut.m.mUnequipAnm.mStartFrame, mpHIO->mCut.m.mUnequipAnm.mEndFrame, @@ -12819,6 +12864,7 @@ void daAlink_c::transAnimeProc(cXyz* param_0, f32 param_1, f32 param_2) { } void daAlink_c::setFootSpeed() { + int i; cXyz sp18[2]; f32 var_f31; @@ -12846,12 +12892,12 @@ void daAlink_c::setFootSpeed() { } else { var_f31 = 0.0f; - for (int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { sp18[i] = current.pos; } } - for (int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { field_0x37b0[i] = sp18[i]; } @@ -12899,7 +12945,7 @@ void daAlink_c::posMove() { speedF *= mpHIO->mSwim.m.mFloatUpSwimSpeedRate; } - f32 var_f31 = speedF; + f32 sp28 = speedF; speedF *= cM_scos(var_r26); if (var_r26 < 0 && !checkBoardRide() && !checkModeFlg(MODE_SWIMMING)) { @@ -12928,20 +12974,20 @@ void daAlink_c::posMove() { cM3dGPla plane; dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &plane); - f32 temp_f0 = cM_sht2d(cM_atan2s(plane.mNormal.absXZ(), plane.mNormal.y)); + f32 sp24 = cM_sht2d(cM_atan2s(plane.mNormal.absXZ(), plane.mNormal.y)); - if (temp_f0 >= mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideAngle && - temp_f0 <= mpHIO->mSlide.m.mLV2MinibossFloorSlideAngle) + if (sp24 >= mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideAngle && + sp24 <= mpHIO->mSlide.m.mLV2MinibossFloorSlideAngle) { - temp_f0 = ((temp_f0 - mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideAngle) * + f32 sp20 = ((sp24 - mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideAngle) * mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideSpeed) / (mpHIO->mSlide.m.mLV2MinibossFloorSlideAngle - mpHIO->mSlide.m.mLV2MinibossFloorWeakSlideAngle); plane.mNormal.y = 0.0f; plane.mNormal.normalizeZP(); - speed.x += temp_f0 * plane.mNormal.x; - speed.z += temp_f0 * plane.mNormal.z; + speed.x += sp20 * plane.mNormal.x; + speed.z += sp20 * plane.mNormal.z; } } } @@ -12971,7 +13017,7 @@ void daAlink_c::posMove() { } } } else if (!checkEquipHeavyBoots() && getZoraSwim()) { - speed.y = -var_f31 * cM_ssin(var_r26); + speed.y = -sp28 * cM_ssin(var_r26); } else if ((checkBootsOrArmorHeavy() && mProcID != PROC_DEAD) || mProcID == PROC_SWIM_DIVE) { speed.y += gravity; @@ -13026,7 +13072,13 @@ void daAlink_c::posMove() { } setIceSlipSpeed(); - var_f31 = current.pos.y; + f32 sp1C = current.pos.y; + + f32 sp18; + f32 sp14; + f32 sp10; + f32 sp0C; + f32 sp08; if (!checkModeFlg(0x400) || checkBoardRide()) { if (checkMagneBootsOn()) { @@ -13034,7 +13086,7 @@ void daAlink_c::posMove() { mDoMtx_stack_c::YrotM(current.angle.y); Vec spFC = {0.0f, 0.0f, 0.0f}; - spFC.z = speedF; + sp08 = spFC.z = speedF; mDoMtx_stack_c::multVecSR(&spFC, &speed); current.pos += speed; current.pos.x += field_0x342c; @@ -13055,7 +13107,7 @@ void daAlink_c::posMove() { } if (getSumouMode() && mProcID != PROC_SUMOU_WIN_LOSE) { - current.pos.y = var_f31 - 1.0f; + current.pos.y = sp1C - 1.0f; speed.y = gravity; } @@ -13078,11 +13130,11 @@ void daAlink_c::posMove() { } if (mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { - s16 angle1 = getGroundAngle(&mLinkAcch.m_gnd, 0); - current.pos.z += field_0x35c4.z * cM_scos(angle1); + s16 angle = getGroundAngle(&mLinkAcch.m_gnd, 0); + current.pos.z += field_0x35c4.z * cM_scos(angle); - s16 angle2 = getGroundAngle(&mLinkAcch.m_gnd, 0x4000); - current.pos.x += field_0x35c4.x * cM_scos(angle2); + angle = getGroundAngle(&mLinkAcch.m_gnd, 0x4000); + current.pos.x += field_0x35c4.x * cM_scos(angle); if (checkZeroSpeedF() && field_0x35c4.abs2() > SQUARE(3.0f)) { seStartOnlyReverbLevel(Z2SE_AL_ICE_SLIP); @@ -13101,29 +13153,31 @@ void daAlink_c::posMove() { current.pos += field_0x3594; } } else if (checkOctaIealSpecialCollect()) { - f32 temp_f1 = getHookshotTopPos()->abs(current.pos); + sp18 = getHookshotTopPos()->abs(current.pos); current.pos += *mCcStts.GetCCMoveP(); - f32 temp_f31 = getHookshotTopPos()->abs(current.pos); - if (temp_f31 > temp_f1) { - current.pos.y += temp_f31 - temp_f1; + sp14 = getHookshotTopPos()->abs(current.pos); + if (sp14 > sp18) { + current.pos.y += sp14 - sp18; } + + (void)0; } else if (!eventRunning && (mProcID == PROC_HANG_MOVE || mProcID == PROC_CLIMB_MOVE_SIDE || mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_CLIMB_WAIT || mProcID == PROC_HANG_WAIT)) { - f32 temp_f31 = mCcStts.GetCCMoveP()->absXZ(); + f32 var_f29 = mCcStts.GetCCMoveP()->absXZ(); var_r27 = TRUE; - if (temp_f31 > 1.0f) { - s16 var_r23 = (s16)(mCcStts.GetCCMoveP()->atan2sX_Z() - shape_angle.y); - if (var_r23 >= 0) { - current.pos.x += temp_f31 * temp_f29; - current.pos.z -= temp_f31 * temp_f30; + if (var_f29 > 1.0f) { + s16 var_r23 = mCcStts.GetCCMoveP()->atan2sX_Z(); + if ((s16)(var_r23 - shape_angle.y) >= 0) { + current.pos.x += var_f29 * temp_f29; + current.pos.z -= var_f29 * temp_f30; } else { - current.pos.x -= temp_f31 * temp_f29; - current.pos.z += temp_f31 * temp_f30; + current.pos.x -= var_f29 * temp_f29; + current.pos.z += var_f29 * temp_f30; } } } @@ -13131,12 +13185,12 @@ void daAlink_c::posMove() { if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_SWIM_UP)) { cXyz sp84 = current.pos - field_0x3798; - f32 temp_f3 = sp84.absXZ() * cM_ssin(getGroundAngle(&mLinkAcch.m_wtr, sp84.atan2sX_Z())); - if (temp_f3 < 0.0f) { - temp_f3 = 0.0f; + sp10 = sp84.absXZ() * cM_ssin(getGroundAngle(&mLinkAcch.m_wtr, sp84.atan2sX_Z())); + if (sp10 < 0.0f) { + sp10 = 0.0f; } - if (!(current.pos.y > mWaterY + l_autoUpHeight + temp_f3) && mProcID != PROC_SWIM_DIVE) { + if (!(current.pos.y > mWaterY + l_autoUpHeight + sp10) && mProcID != PROC_SWIM_DIVE) { current.pos.y = mWaterY; } } @@ -13154,11 +13208,10 @@ void daAlink_c::posMove() { sp78 = cXyz::Zero; } - f32 var_f0; if (checkModeFlg(MODE_PLAYER_FLY)) { - var_f0 = 1.0f; + sp0C = 1.0f; } else { - var_f0 = cM_scos(field_0x2ff0); + sp0C = cM_scos(field_0x2ff0); } if (!checkRootTransZClearMode()) { @@ -13169,8 +13222,8 @@ void daAlink_c::posMove() { sp78.x = 0.0f; } - field_0x3464 = var_f0 * (sp78.z * temp_f30 + sp78.x * temp_f29); - field_0x3468 = var_f0 * (sp78.z * temp_f29 - sp78.x * temp_f30); + field_0x3464 = sp0C * (sp78.z * temp_f30 + sp78.x * temp_f29); + field_0x3468 = sp0C * (sp78.z * temp_f29 - sp78.x * temp_f30); if (checkMagneBootsOn()) { cXyz spD8; @@ -13209,16 +13262,14 @@ void daAlink_c::posMove() { if (commonLineCheck(&spC0, &spB4)) { dComIfG_Bgsp().GetTriPla(mLinkLinChk, &plane); - f32 temp_f31 = spB4.abs(mLinkLinChk.GetCross()); + f32 var_f28 = spB4.abs(mLinkLinChk.GetCross()); mDoMtx_multVecSR(mMagneBootInvMtx, &plane.mNormal, &spCC); if (cBgW_CheckBWall(spCC.y)) { - f32 temp_f1 = spCC.absXZ(); - - f32 div = temp_f31 / temp_f1; - spCC.x *= div; + var_f28 /= spCC.absXZ(); + spCC.x *= var_f28; spCC.y = 0.0f; - spCC.z *= div; + spCC.z *= var_f28; mDoMtx_multVecSR(mMagneBootMtx, &spCC, &spCC); current.pos += spCC; @@ -13226,7 +13277,7 @@ void daAlink_c::posMove() { } } - var_r27 += 0x2000; + ANGLE_ADD_2(var_r27, 0x2000); } } else if (var_r27) { cXyz sp9C = cXyz::Zero; @@ -13361,7 +13412,7 @@ bool daAlink_c::startPeepChange() { dComIfGs_setTurnRestart(current.pos, shape_angle.y, fopAcM_GetRoomNo(this), param); } - dStage_changeScene(mPeepExitID, 0.0f, mode, fopAcM_GetRoomNo(this), + dStage_changeScene(mPeepExitID, 0.0f, mode, (int)fopAcM_GetRoomNo(this), shape_angle.y, -1); return 1; } @@ -13419,7 +13470,7 @@ void daAlink_c::setLastSceneMode(u32* o_mode) { } if (mSwordUpTimer != 0) { - *o_mode |= (mSwordUpTimer & 0xFFFE) << 0xA; + *o_mode |= (mSwordUpTimer / 2) << 11; } } @@ -13747,7 +13798,7 @@ int daAlink_c::checkSceneChange(int i_exitID) { } else { if (mExitID != 0x3F) { isScnChange = dStage_changeScene(mExitID & 0xFF, exit_speed, exit_mode, - fopAcM_GetRoomNo(this), shape_angle.y, -1); + (int)fopAcM_GetRoomNo(this), shape_angle.y, -1); if (isScnChange) { onNoResetFlg2(FLG2_SCENE_CHANGE_START); if (mpScnChg != NULL && fopAcM_GetName(mpScnChg) == PROC_SCENE_EXIT) { @@ -13760,7 +13811,7 @@ int daAlink_c::checkSceneChange(int i_exitID) { } } else { isScnChange = dStage_changeSceneExitId(mLinkAcch.m_gnd, exit_speed, exit_mode, - fopAcM_GetRoomNo(this), shape_angle.y); + (int)fopAcM_GetRoomNo(this), shape_angle.y); field_0x2f58 = dPath_GetRoomPath(dComIfG_Bgsp().GetRoomPathId(mLinkAcch.m_gnd), fopAcM_GetRoomNo(this)); } @@ -13921,6 +13972,7 @@ BOOL daAlink_c::checkSightLine(f32 i_maxDist, cXyz* o_sightPos) { line_start_pos = &mItemAcKeep.getActor()->current.pos; } + BOOL isLineCross; s16 temp_r27 = shape_angle.y + mBodyAngle.y; f32 temp_f31 = cM_scos(mBodyAngle.x); sp3C.set(temp_f31 * cM_ssin(temp_r27), -cM_ssin(mBodyAngle.x), temp_f31 * cM_scos(temp_r27)); @@ -13958,7 +14010,7 @@ BOOL daAlink_c::checkSightLine(f32 i_maxDist, cXyz* o_sightPos) { linechk->Set(line_start_pos, o_sightPos, this); - BOOL isLineCross = dComIfG_Bgsp().LineCross(linechk); + isLineCross = dComIfG_Bgsp().LineCross(linechk); if (isLineCross) { *o_sightPos = linechk->GetCross(); onResetFlg0(RFLG0_ITEM_SIGHT_BG_HIT); @@ -13968,7 +14020,13 @@ BOOL daAlink_c::checkSightLine(f32 i_maxDist, cXyz* o_sightPos) { } void daAlink_c::setMetamorphoseModel(BOOL i_isChangeToWolf) { - J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(i_isChangeToWolf ? (u16)dRes_ID_ALANM_BCK_WFCHANGEATOW_e : (u16)dRes_ID_ALANM_BCK_WFCHANGEWTOA_e); + u16 var_r30; + if (i_isChangeToWolf) { + var_r30 = (u16)dRes_ID_ALANM_BCK_WFCHANGEATOW_e; + } else { + var_r30 = (u16)dRes_ID_ALANM_BCK_WFCHANGEWTOA_e; + } + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(var_r30); JKRHeap* heap = setItemHeap(); mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_WF_e, 0x6000), 0); @@ -14487,7 +14545,7 @@ int daAlink_c::checkNewItemChange(u8 i_selItemIdx) { cXyz sp20; s16 var_r30 = 0; - for (int i = 0; i < 4; i++, var_r30 += 0x2000) { + for (int i = 0; i < 4; i++, ANGLE_ADD_2(var_r30, 0x2000)) { sp2C.x = sp38.x + cM_ssin(var_r30) * 120.0f; sp2C.z = sp38.z + cM_scos(var_r30) * 120.0f; @@ -14542,6 +14600,8 @@ int daAlink_c::checkNewItemChange(u8 i_selItemIdx) { { return ITEM_PROC_PICK_PUT; } + + (void)0; } } } else if (sel_item != fpcNm_ITEM_NONE && mEquipItem != sel_item) { @@ -14695,11 +14755,12 @@ void daAlink_c::setLight() { u16 effName; dPa_levelEcallBack* callbackp; + JPABaseEmitter* emitterp; if (checkKandelaarSwingAnime() || mProcID == PROC_KANDELAAR_SWING) { effName = ID_ZI_J_KANTERA_SWINGFIRE; callbackp = &field_0x2f20; - JPABaseEmitter* emitterp = dComIfGp_particle_getEmitter(field_0x31c4); + emitterp = dComIfGp_particle_getEmitter(field_0x31c4); if (emitterp != NULL && emitterp->getEmitterCallBackPtr() == NULL) { emitterp->stopDrawParticle(); } @@ -14770,34 +14831,29 @@ void daAlink_c::setLight() { cXyz spB8; f32 var_f27; if (field_0x33fc > 0.0f) { - GXColor spF0 = {0x00, 0x00, 0x00, 0xFF}; - spF0.r = light_m->mColorR; - spF0.g = light_m->mColorG; - spF0.b = light_m->mColorB; + GXColor sp30 = {(u8)light_m->mColorR, (u8)light_m->mColorG, (u8)light_m->mColorB, 0xFF}; - Vec spC4 = {0.0f, 0.0f, 0.0f}; - spC4.y = light_m->mYOffset; - spC4.z = light_m->mZOffset; + Vec sp5C = {0.0f, light_m->mYOffset, light_m->mZOffset}; f32 var_f26; if ((uintptr_t)light_m == (uintptr_t)&mpHIO->mWolf.mLight.m) { cXyz spD0 = eyePos - field_0x34e0; - s16 sp104 = spD0.atan2sY_XZ(); - s16 sp106 = spD0.atan2sX_Z(); + s16 sp1C = spD0.atan2sY_XZ(); + s16 sp1A = spD0.atan2sX_Z(); mDoMtx_stack_c::transS(eyePos); - mDoMtx_stack_c::ZXYrotM(sp104, sp106, 0); - mDoMtx_stack_c::multVec(&spC4, &spB8); + mDoMtx_stack_c::ZXYrotM(sp1C, sp1A, 0); + mDoMtx_stack_c::multVec(&sp5C, &spB8); - var_f27 = cM_sht2d((s16)-(sp104 + mBodyAngle.x)) * 0.5f; - var_f26 = cM_sht2d(-sp106); + var_f27 = cM_sht2d((s16)(-sp1C - mBodyAngle.x)) * 0.5f; + var_f26 = cM_sht2d(-sp1A); } else { if (var_r28) { spB8 = (mSwordTopPos + field_0x3498) * 0.5f; - spF0.r = var_f30 * 150.0f; - spF0.g = var_f30 * 174.0f; - spF0.b = var_f30 * 141.0f; + sp30.r = var_f30 * 150.0f; + sp30.g = var_f30 * 174.0f; + sp30.b = var_f30 * 141.0f; } else { spB8 = mKandelaarFlamePos; } @@ -14806,7 +14862,7 @@ void daAlink_c::setLight() { var_f26 = cM_sht2d(-shape_angle.y); } - dKy_WolfEyeLight_set(&spB8, var_f27 + light_m->mXAngle, var_f26, (light_m->mWidth * field_0x33fc) / light_m->mPower, &spF0, field_0x33fc, light_m->mAngleAttenuationType, light_m->mDistanceAttenuationType); + dKy_WolfEyeLight_set(&spB8, var_f27 + light_m->mXAngle, var_f26, (light_m->mWidth * field_0x33fc) / light_m->mPower, &sp30, field_0x33fc, light_m->mAngleAttenuationType, light_m->mDistanceAttenuationType); } } @@ -14868,6 +14924,8 @@ void daAlink_c::changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE i_matMode) { } void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { + int i; + if (mProcID == PROC_TOOL_DEMO) { speed.y = 0.0f; resetDemoBck(); @@ -14879,7 +14937,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { changeWarpMaterial(WARP_MAT_MODE_1); } } else if (mProcID == PROC_GRAB_STAND) { - for (int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { field_0x312a[i] = csXyz::Zero; field_0x3136[i] = csXyz::Zero; } @@ -14924,7 +14982,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { resetWolfEnemyBiteAll(); } else if (checkWolfShapeReverse()) { setOldRootQuaternion(0, -0x8000, 0); - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); field_0x2fe4 = shape_angle.y; shape_angle.x = -shape_angle.x; mPrevAngleY = shape_angle.y; @@ -15096,8 +15154,6 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { field_0x2f99 = 0x50; } - int i; - if (checkModeFlg(MODE_NO_COLLISION) || mProcID == PROC_STEP_MOVE || mProcID == PROC_WOLF_TAG_JUMP) { mLinkAcch.OffLineCheck(); mLinkAcch.OnLineCheckNone(); @@ -15986,7 +16042,12 @@ int daAlink_c::procFrontRollInit() { BOOL is_dive_jump = mProcID == PROC_DIVE_JUMP; commonProcInit(PROC_FRONT_ROLL); - f32 roll_anm_speed = is_dive_jump ? 6.0f : mpHIO->mFrontRoll.m.mRollAnm.mStartFrame; + f32 roll_anm_speed; + if (is_dive_jump) { + roll_anm_speed = 6.0f; + } else { + roll_anm_speed = mpHIO->mFrontRoll.m.mRollAnm.mStartFrame; + } setSingleAnime(ANM_FRONT_ROLL, mpHIO->mFrontRoll.m.mRollAnm.mSpeed, roll_anm_speed, mpHIO->mFrontRoll.m.mRollAnm.mEndFrame, @@ -16143,7 +16204,7 @@ int daAlink_c::procFrontRollCrashInit() { speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; } - current.angle.y -= -0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); setFrontRollCrashShock(mRollCrashFlg); voiceStart(Z2SE_AL_V_ZENTEN_FAIL); onResetFlg0(RFLG0_FRONT_ROLL_CRASH); @@ -16382,7 +16443,7 @@ int daAlink_c::procBackJumpInit(int param_0) { } if (is_prev_ganonFinish) { - shape_angle.y -= -0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); setOldRootQuaternion(0, -0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 55.0f; onNoResetFlg3(FLG3_UNK_4000000); @@ -16399,6 +16460,8 @@ int daAlink_c::procBackJumpInit(int param_0) { } int daAlink_c::procBackJump() { + daPy_frameCtrl_c* temp = mUnderFrameCtrl; + if (mProcVar0.field_0x3008 != 0) { mProcVar0.field_0x3008--; } else { @@ -16487,7 +16550,7 @@ int daAlink_c::procSlip() { if (checkZeroSpeedF()) { if (checkInputOnR()) { current.angle.y = shape_angle.y + 0x8000; - shape_angle.y += 0x100; + ANGLE_ADD_2(shape_angle.y, 0x100); mNormalSpeed = mMaxSpeed * 0.5f; procMoveTurnInit(0); } else { @@ -17633,7 +17696,9 @@ int daAlink_c::execute() { l_autoDownHeight = -l_autoUpHeight; #endif - if (checkNoResetFlg2(FLG2_UNK_1) && mEquipItem != fpcNm_ITEM_KANTERA && checkItemSetButton(fpcNm_ITEM_KANTERA) == 2) { + if (checkNoResetFlg2(FLG2_UNK_1) != FALSE && + mEquipItem != fpcNm_ITEM_KANTERA && + checkItemSetButton(fpcNm_ITEM_KANTERA) == 2) { offKandelaarModel(); } @@ -18131,9 +18196,7 @@ int daAlink_c::execute() { mDoMtx_stack_c::transS(old_pos); mDoMtx_stack_c::YrotM(shape_angle.y); - Vec tmp = {0.0f, 0.0f, 0.0f}; - tmp.x = ti.mTranslate.x; - tmp.z = ti.mTranslate.z; + Vec tmp = {ti.mTranslate.x, 0.0f, ti.mTranslate.z}; mDoMtx_stack_c::multVec(&tmp, ¤t.pos); speed.y = 0.0f; @@ -18521,8 +18584,9 @@ int daAlink_c::execute() { } if (!checkWolf()) { + u8 tmp; for (u8 i = 0; i < 2; i++) { - u8 tmp = (i + 1) % 2; + tmp = (i + 1) % 2; if (dComIfGp_getSelectItem(i) == fpcNm_ITEM_EMPTY_BOTTLE && (mUseButtonFlags & (1 << i)) && dComIfGp_getSelectItem(tmp) == fpcNm_ITEM_EMPTY_BOTTLE) { @@ -18677,7 +18741,7 @@ int daAlink_c::execute() { shape_angle.y = getMagneBootsLocalAngleY(shape_angle.y, 0); } else if (checkModeFlg(MODE_VINE_CLIMB)) { field_0x3108 = shape_angle.y; - shape_angle.y += field_0x308c; + ANGLE_ADD_2(shape_angle.y, field_0x308c); } else if (checkCargoCarry() && mCargoCarryAcKeep.getActor() != NULL) { field_0x3108 = shape_angle.y; shape_angle.y = mCargoCarryAcKeep.getActor()->shape_angle.y; @@ -18845,9 +18909,11 @@ bool daAlink_c::checkItemDraw() { int daAlink_c::initShadowScaleLight() { dKy_shadow_mode_set(4); + f32 var_f27; if (checkWolf()) { - f32 temp_f26 = 0.5f * mTgCyls[0].GetH(); - mTgCyls[0].GetC(); + var_f27 = mTgCyls[0].GetC().y + 0.5f * mTgCyls[0].GetH(); + } else { + var_f27 = field_0x3834.y; } cXyz sp20(tevStr.mLightPosWorld.x - field_0x3834.x, tevStr.mLightPosWorld.y - field_0x3454, tevStr.mLightPosWorld.z - field_0x3834.z); @@ -18919,9 +18985,9 @@ int daAlink_c::moveShadowScaleLight() { s16 temp_r0 = field_0x2ff6 - field_0x2ff8; if (abs(temp_r0) < 0x4000) { if (temp_r0 >= 0) { - field_0x2ff8 -= 0x4000; + ANGLE_SUB_2(field_0x2ff8, 0x4000); } else { - field_0x2ff8 += 0x4000; + ANGLE_ADD_2(field_0x2ff8, 0x4000); } if (cLib_distanceAngleS(field_0x2ff8, field_0x2ffa) < 0x100) { @@ -19023,6 +19089,7 @@ void daAlink_c::shadowDraw() { dComIfGd_addRealShadow(shadowID, mShieldModel); } + fopAc_ac_c* actor; if (checkWolf()) { if (checkMidnaRide() && !checkCloudSea() && !midna->checkShadowNoDraw() && !midna->checkShadowModelDraw()) { dComIfGd_addRealShadow(shadowID, mpWlMidnaModel); @@ -19054,10 +19121,12 @@ void daAlink_c::shadowDraw() { if (mEquipItem == fpcNm_ITEM_IRONBALL) { if (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) { dComIfGd_addRealShadow(shadowID, mHeldItemModel); - } else { - if (fopAcM_gc_c::gndCheck(&mIronBallBgChkPos)) { - field_0x32d4 = dComIfGd_setShadow(field_0x32d4, 0, mHeldItemModel, &mIronBallCenterPos, 150.0f, 32.0f, mIronBallBgChkPos.y, fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); - } + } else if (fopAcM_gc_c::gndCheck(&mIronBallBgChkPos)) { + field_0x32d4 = + dComIfGd_setShadow(field_0x32d4, 0, mHeldItemModel, + &mIronBallCenterPos, 150.0f, 32.0f, mIronBallBgChkPos.y, + fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), &tevStr, + 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } } else { changeHookshotDrawModel(); @@ -19068,7 +19137,9 @@ void daAlink_c::shadowDraw() { dComIfGd_addRealShadow(shadowID, mpHookTipModel); } - if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && !checkNoResetFlg0(FLG0_UNK_2)) { + if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && + !checkPlayerGuardAndAttack() && + !checkNoResetFlg0(FLG0_UNK_2)) { dComIfGd_addRealShadow(shadowID, field_0x0710); if (!dComIfGp_checkPlayerStatus1(0, 0x10000)) { @@ -19092,24 +19163,25 @@ void daAlink_c::shadowDraw() { } if (checkSpinnerRide()) { - fopAc_ac_c* spinnerActor = fopAcM_SearchByID(mRideAcKeep.getID()); - if (spinnerActor != NULL) { - dComIfGd_addRealShadow(shadowID, spinnerActor->model); + actor = fopAcM_SearchByID(mRideAcKeep.getID()); + if (actor != NULL) { + dComIfGd_addRealShadow(shadowID, actor->model); } } } if (mGrabItemAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* grabActor = fopAcM_SearchByID(mGrabItemAcKeep.getID()); - if (grabActor != NULL && grabActor->model != NULL) { - dComIfGd_addRealShadow(shadowID, grabActor->model); + actor = fopAcM_SearchByID(mGrabItemAcKeep.getID()); + if (actor != NULL && actor->model != NULL) { + dComIfGd_addRealShadow(shadowID, actor->model); } } - if (dComIfGp_checkPlayerStatus1(0, 0x10000) && mCargoCarryAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* carryActor = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); - if (carryActor != NULL && carryActor->model != NULL) { - dComIfGd_addRealShadow(shadowID, carryActor->model); + if (dComIfGp_checkPlayerStatus1(0, 0x10000) && + mCargoCarryAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { + actor = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); + if (actor != NULL && actor->model != NULL) { + dComIfGd_addRealShadow(shadowID, actor->model); } } } @@ -19372,7 +19444,11 @@ int daAlink_c::draw() { field_0x06f0->hide(); +#if PLATFORM_SHIELD + if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_SUBJECT) { +#else if (checkHookshotReadyMaterialOffMode()) { +#endif for (u16 i = 0; i < mFallVoiceInit; i++) { if (!(field_0x32cc & (1 << i))) { field_0x064C->getMaterialNodePointer(i)->getShape()->hide(); @@ -19384,7 +19460,11 @@ int daAlink_c::draw() { modelDraw(mpLinkModel, isPlayerNoDraw); if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { +#if PLATFORM_SHIELD + if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_SUBJECT) { +#else if (checkHookshotReadyMaterialOffMode()) { +#endif for (u16 i = 0; i < mFallVoiceInit; i++) { if (!(field_0x32cc & (1 << i))) { field_0x064C->getMaterialNodePointer(i)->getShape()->show(); @@ -19508,9 +19588,7 @@ int daAlink_c::draw() { if (checkEquipHeavyBoots()) { GXColorS10 color = tevStr.TevColor; for (int i = 0; i < 2; i++) { - JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x3228[i][0]); - - if (emitter_p != NULL) { + if (dComIfGp_particle_getEmitter(field_0x3228[i][0]) != NULL) { tevStr.TevColor.r = 5; tevStr.TevColor.g = tevStr.TevColor.r; tevStr.TevColor.b = tevStr.TevColor.r; @@ -19583,7 +19661,7 @@ daAlink_c::~daAlink_c() { } static int daAlink_Delete(daAlink_c* i_this) { - fpc_ProcID id = fopAcM_GetID(i_this); + fopAcM_RegisterDeleteID(i_this, "ALINK"); if (i_this->getClothesChangeWaitTimer() != 0) { i_this->loadModelDVD(); @@ -19604,7 +19682,7 @@ static actor_method_class l_daAlink_Method = { }; actor_process_profile_definition g_profile_ALINK = { - fpcLy_CURRENT_e, + (u32)fpcLy_CURRENT_e, 5, fpcPi_CURRENT_e, PROC_ALINK, diff --git a/src/d/actor/d_a_alink_HIO.inc b/src/d/actor/d_a_alink_HIO.inc index aec8ad2a89..b7b24593de 100644 --- a/src/d/actor/d_a_alink_HIO.inc +++ b/src/d/actor/d_a_alink_HIO.inc @@ -685,16 +685,16 @@ void daAlinkHIO_cutNormal_c::genMessage(JORMContext* ctx) { daAlinkHIO_cutNormal_c::daAlinkHIO_cutNormal_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmV_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmL_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmR_c0::m = {\n"; + static const char plabel3[] = "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmSL_c0::m = {\n"; + static const char plabel4[] = "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmSR_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2, plabel3, plabel4}; static void* baseP[5] = {(void*)&daAlinkHIO_cutNmV_c0::m, (void*)&daAlinkHIO_cutNmL_c0::m, (void*)&daAlinkHIO_cutNmR_c0::m, (void*)&daAlinkHIO_cutNmSL_c0::m, (void*)&daAlinkHIO_cutNmSR_c0::m}; - static const char* plabel[] = {"const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmSL_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmV_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmL_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmSR_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_cutNmR_c0::m = {\n"}; - m_len = 32; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -734,19 +734,18 @@ void daAlinkHIO_cutFinish_c::genMessage(JORMContext* ctx) { daAlinkHIO_cutFinish_c::daAlinkHIO_cutFinish_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnL_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnV_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnS_c0::m = {\n"; + static const char plabel3[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnSl_c0::m = {\n"; + static const char plabel4[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnSm_c0::m = {\n"; + static const char plabel5[] = "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnR_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2, plabel3, plabel4, plabel5}; + static void* baseP[6] = {(void*)&daAlinkHIO_cutFnL_c0::m, (void*)&daAlinkHIO_cutFnV_c0::m, (void*)&daAlinkHIO_cutFnS_c0::m, (void*)&daAlinkHIO_cutFnSl_c0::m, (void*)&daAlinkHIO_cutFnSm_c0::m, (void*)&daAlinkHIO_cutFnR_c0::m}; - static const char* plabel[] = { - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnL_c0::m = {\n", - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnV_c0::m = {\n", - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnS_c0::m = {\n", - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnSl_c0::m = {\n", - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnSm_c0::m = {\n", - "const daAlinkHIO_cutFinish_c1 daAlinkHIO_cutFnR_c0::m = {\n", - }; - m_len = 44; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -826,18 +825,17 @@ void daAlinkHIO_cutDash_c::genMessage(JORMContext* ctx) { daAlinkHIO_cutDash_c::daAlinkHIO_cutDash_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaL_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaR_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaCharge_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2}; + static void* baseP[3] = { (void*)&daAlinkHIO_cutDaL_c0::m, (void*)&daAlinkHIO_cutDaR_c0::m, (void*)&daAlinkHIO_cutDaCharge_c0::m, }; - static const char* plabel[] = { - "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaL_c0::m = {\n", - "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaR_c0::m = {\n", - "const daAlinkHIO_cutDash_c1 daAlinkHIO_cutDaCharge_c0::m = {\n", - }; - m_len = 28; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -983,6 +981,12 @@ void daAlinkHIO_hoCut_c::genMessage(JORMContext* ctx) { daAlinkHIO_hoCut_c::daAlinkHIO_hoCut_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLA_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLB_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRA_c0::m = {\n"; + static const char plabel3[] = "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRB_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2, plabel3}; + static void* baseP[4] = { (void*)&daAlinkHIO_hoCutLA_c0::m, (void*)&daAlinkHIO_hoCutLB_c0::m, @@ -990,13 +994,6 @@ daAlinkHIO_hoCut_c::daAlinkHIO_hoCut_c(int param_0, float param_1) { (void*)&daAlinkHIO_hoCutRB_c0::m, }; - static const char* plabel[] = { - "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLA_c0::m = {\n", - "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLB_c0::m = {\n", - "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRA_c0::m = {\n", - "const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRB_c0::m = {\n", - }; - m_len = 32; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -1357,16 +1354,15 @@ void daAlinkHIO_guardAttack_c::genMessage(JORMContext* ctx) { daAlinkHIO_guardAttack_c::daAlinkHIO_guardAttack_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_guardAttack_c1 daAlinkHIO_gAtPush_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_guardAttack_c1 daAlinkHIO_gAtKick_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1}; + static void* baseP[2] = { (void*)&daAlinkHIO_gAtPush_c0::m, (void*)&daAlinkHIO_gAtKick_c0::m, }; - static const char* plabel[] = { - "const daAlinkHIO_guardAttack_c1 daAlinkHIO_gAtPush_c0::m = {\n", - "const daAlinkHIO_guardAttack_c1 daAlinkHIO_gAtKick_c0::m = {\n", - }; - m_len = 36; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -1385,24 +1381,24 @@ daAlinkHIO_guardAttack_c::daAlinkHIO_guardAttack_c(int param_0, float param_1) { void daAlinkHIO_turnMove_c::genMessage(JORMContext* ctx) { // Reset ctx->genButton("リセット", 0x4000003); - // - daAlinkHIO_setAnmGenMessage((daAlinkHIO_anm_c*)(this + 0x34), ctx, "回込", 27.0, 1); - // - ctx->genSlider("半回転回込A速度", (float*)(this + 0x50), 0.0, 10.0); - // - ctx->genSlider("斬上げCF", (float*)(this + 0x54), 0.0, 28.0); - // - ctx->genSlider("回転速度率", (short*)(this + 0x48), 0, 100); - // - ctx->genSlider("回転速度最大", (short*)(this + 0x4a), 0, 0x7fff); - // - ctx->genSlider("回転速度最小", (short*)(this + 0x4c), 0, 0x7fff); - // - ctx->genSlider("半回転速度最大", (short*)(this + 0x4e), 0, 0x7fff); - // - ctx->genSlider("通常側転A速度", (float*)(this + 0x58), 0.0, 10.0); - // - ctx->genSlider("通常側転速度", (float*)(this + 0x5c), 0.0, 100.0); + // Return + daAlinkHIO_setAnmGenMessage(&m.mTurnAnm, ctx, "回込", 27.0f, 1); + // Half-turn rotation A speed + ctx->genSlider("半回転回込A速度", &m.mHalfTurnAnmSpeed, 0.0f, 10.0f); + // Slash up CF + ctx->genSlider("斬上げCF", &m.mTwirlCutDelayF, 0.0f, 28.0f); + // Rotation speed + ctx->genSlider("回転速度率", &m.mTurnSpeedRate, 0, 100); + // Maximum rotation speed + ctx->genSlider("回転速度最大", &m.mMaxTurnSpeed, 0, 0x7fff); + // Minimum rotation speed + ctx->genSlider("回転速度最小", &m.mMinTurnSpeed, 0, 0x7fff); + // Half rotation speed maximum + ctx->genSlider("半回転速度最大", &m.mMaxHalfTurnSpeed, 0, 0x7fff); + // Normal side roll A speed + ctx->genSlider("通常側転A速度", &m.mSideRollAnmSpeed, 0.0f, 10.0f); + // Normal side roll speed + ctx->genSlider("通常側転速度", &m.mSideRollSpeed, 0.0f, 100.0f); } daAlinkHIO_turnMove_c::daAlinkHIO_turnMove_c() { @@ -1929,16 +1925,16 @@ void daAlinkHIO_damLaHu_c::genMessage(JORMContext* ctx) { } daAlinkHIO_damLaHu_c::daAlinkHIO_damLaHu_c(int param_0) { + + static const char plabel0[] = "const daAlinkHIO_damLaHu_c1 daAlinkHIO_damLarge_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_damLaHu_c1 daAlinkHIO_damHuge_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1}; + static void* baseP[2] = { (void*)&daAlinkHIO_damLarge_c0::m, (void*)&daAlinkHIO_damHuge_c0::m, }; - static const char* plabel[] = { - "const daAlinkHIO_guardAttack_c1 daAlinkHIO_damLarge_c0::m = {\n", - "const daAlinkHIO_guardAttack_c1 daAlinkHIO_damHuge_c0::m = {\n", - }; - m_len = 188; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -2083,8 +2079,8 @@ void daAlinkHIO_damSwim_c::genMessage(JORMContext* ctx) { ctx->genSlider("最高速", &m.mMaxSpeed, 0.0f, 30.0f); // Deceleration ctx->genSlider("減速", &m.mDeceleration, 0.0f, 10.0f); - // Sink - daAlinkHIO_setAnmGenMessage(&m.mSinkAnm, ctx, "下沈", 10.0f, 0); + // Swimming + daAlinkHIO_setAnmGenMessage(&m.mSinkAnm, ctx, "泳ぎ", 10.0f, 0); // Water surface daAlinkHIO_setAnmGenMessage(&m.mSurfaceAnm, ctx, "水面", 11.0f, 1); } @@ -2129,8 +2125,8 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) { ctx->genSlider("無敵時間", &m.mInvincibleTime, 0, 0x96); // Wolf floor invincible time ctx->genSlider("狼ポリゴン時無敵時間", &m.mWolfFloorInvincibleTime, 0, 0x96); - // Floor get up - daAlinkHIO_setAnmGenMessage(&m.mFloorDmgAnm, ctx, "床起き", 14.0f, 1); + // Floor + daAlinkHIO_setAnmGenMessage(&m.mFloorDmgAnm, ctx, "床", 14.0f, 1); // Dash daAlinkHIO_setAnmGenMessage(&m.mDashDmgAnm, ctx, "ダッシュ", 9.0f, 0); // Recover stand anm speed @@ -2421,8 +2417,8 @@ void daAlinkHIO_bomb_c::genMessage(JORMContext* ctx) { ctx->genSlider("投げ水平速度", &m.mThrowSpeedH, 0.0f, 100.0f); // Throw vertical speed ctx->genSlider("投げ垂直速度", &m.mThrowSpeedV, 0.0f, 100.0f); - // Bound rate - ctx->genSlider("バウンド率", &m.mBoundRate, 0.0f, 1.0f); + // Bounce rate + ctx->genSlider("跳返率", &m.mBoundRate, 0.0f, 1.0f); // Vertical stop speed ctx->genSlider("垂直停止速度", &m.mStopSpeedY, 0.0f, 20.0f); // Bounce time max speed @@ -2520,17 +2516,16 @@ void daAlinkHIO_light_c::genMessage(JORMContext* ctx) { } daAlinkHIO_light_c::daAlinkHIO_light_c(int param_0) { + + static const char plabel0[] = "const daAlinkHIO_light_c1 daAlinkHIO_huLight_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_light_c1 daAlinkHIO_wlLight_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_light_c1 daAlinkHIO_zwLight_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2}; + static void* baseP[] = { (void*)&daAlinkHIO_huLight_c0::m, (void*)&daAlinkHIO_wlLight_c0::m, (void*)&daAlinkHIO_zwLight_c0::m, - - }; - - static const char* plabel[] = { - "const daAlinkHIO_light_c1 daAlinkHIO_huLight_c0::m = {\n", - "const daAlinkHIO_light_c1 daAlinkHIO_wlLight_c0::m = {\n", - "const daAlinkHIO_light_c1 daAlinkHIO_zwLight_c0::m = {\n", }; m_len = 28; @@ -2994,19 +2989,19 @@ void daAlinkHIO_bottle_c::genMessage(JORMContext* ctx) { // Start drink daAlinkHIO_setAnmGenMessage(&m.mStartDrinkAnm, ctx, "飲む始め", 56.0f, 0); // End drink - daAlinkHIO_setAnmGenMessage(&m.mEndDrinkAnm, ctx, "飲み終", 39.0f, 0); + daAlinkHIO_setAnmGenMessage(&m.mEndDrinkAnm, ctx, "飲終", 39.0f, 0); // Milk end drink - daAlinkHIO_setAnmGenMessage(&m.mEndDrinkAnm, ctx, "ミルク飲み終", 86.0f, 0); + daAlinkHIO_setAnmGenMessage(&m.mEndDrinkAnm, ctx, "まずい飲終", 86.0f, 0); // Open daAlinkHIO_setAnmGenMessage(&m.mOpenBottleAnm, ctx, "開ける", 49.0f, 0); // Scoop - daAlinkHIO_setAnmGenMessage(&m.mScoopAnm, ctx, "すくう", 54.0f, 0); + daAlinkHIO_setAnmGenMessage(&m.mPourAnm, ctx, "出す", 54.0f, 0); // Swing down daAlinkHIO_setAnmGenMessage(&m.mSwingDownAnm, ctx, "下振り", 24.0f, 1); // Swing side daAlinkHIO_setAnmGenMessage(&m.mSwingSideAnm, ctx, "横振り", 19.0f, 1); // Medicine - daAlinkHIO_setAnmGenMessage(&m.mDrinkNastyAnm, ctx, "くすり", 29.0f, 0); + daAlinkHIO_setAnmGenMessage(&m.mScoopAnm, ctx, "掬う", 29.0f, 0); // Get daAlinkHIO_setAnmGenMessage(&m.mGetAnm, ctx, "ゲット", 47.0f, 0); } @@ -3238,26 +3233,26 @@ void daAlinkHIO_grab_c::genMessage(JORMContext* ctx) { ctx->genSlider("強制重さ指定", &m.mForceWeightSpec, 0, 3); // Preparation daAlinkHIO_setAnmGenMessage(&m.mPrepareAnm, ctx, "準備", 4.0f, 0); - // Lift up - daAlinkHIO_setAnmGenMessage(&m.mLiftAnm, ctx, "持上", 9.0f, 1); + // Lift + daAlinkHIO_setAnmGenMessage(&m.mLiftBackAnm, ctx, "持上", 9.0f, 1); // Throw - daAlinkHIO_setAnmGenMessage(&m.mThrowAnm, ctx, "投げる", 39.0f, 1); - // Carry - daAlinkHIO_setAnmGenMessage(&m.mCarryAnm, ctx, "運び", 12.0f, 1); - // Lift back - daAlinkHIO_setReverseAnmGenMessage(&m.mLiftBackAnm, ctx, "持ち上げ後", 9.0f, 0); - // Stand reverse + daAlinkHIO_setAnmGenMessage(&m.mLiftAnm, ctx, "投げる", 39.0f, 1); + // One-handed throw + daAlinkHIO_setAnmGenMessage(&m.mCarryPlaceReverseAnm, ctx, "片手投げ", 12.0f, 1); + // Place + daAlinkHIO_setReverseAnmGenMessage(&m.mThrowAnm, ctx, "置く", 9.0f, 0); + // Stand daAlinkHIO_setReverseAnmGenMessage(&m.mStandReverseAnm, ctx, "立つ", 4.0f, 1); // Recoil - daAlinkHIO_setAnmGenMessage(&m.mRecoilAnm, ctx, "反動", 19.0f, 1); + daAlinkHIO_setAnmGenMessage(&m.mCarryAnm, ctx, "反動", 19.0f, 1); // Failure - daAlinkHIO_setAnmGenMessage(&m.mFailAnm, ctx, "失敗", 19.0f, 1); + daAlinkHIO_setAnmGenMessage(&m.mRecoilAnm, ctx, "失敗", 19.0f, 1); // Failure stop time ctx->genSlider("失敗停止時間", &m.mFailStopTime, 0, 300); - // Carry lift - daAlinkHIO_setAnmGenMessage(&m.mCarryLiftAnm, ctx, "抱え上げ", 39.0f, 0); - // Carry place reverse - daAlinkHIO_setReverseAnmGenMessage(&m.mCarryPlaceReverseAnm, ctx, "抱え置き", 39.0f, 1); + // Lift up + daAlinkHIO_setAnmGenMessage(&m.mFailAnm, ctx, "抱え上げ", 39.0f, 0); + // Hold + daAlinkHIO_setReverseAnmGenMessage(&m.mCarryLiftAnm, ctx, "抱え置き", 39.0f, 1); // Iron ball throw daAlinkHIO_setAnmGenMessage(&m.mIronBallThrowAnm, ctx, "鉄玉投げ", 49.0f, 1); } @@ -4010,16 +4005,15 @@ void daAlinkHIO_wlDamLaHu_c::genMessage(JORMContext* ctx) { } daAlinkHIO_wlDamLaHu_c::daAlinkHIO_wlDamLaHu_c(int param_0) { + static const char plabel0[] = "const daAlinkHIO_wlDamLaHu_c1 daAlinkHIO_wlDamLarge_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_wlDamLaHu_c1 daAlinkHIO_wlDamHuge_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1}; + static void* baseP[] = { (void*)&daAlinkHIO_wlDamLarge_c0::m, (void*)&daAlinkHIO_wlDamHuge_c0::m, }; - static const char* plabel[] = { - "const daAlinkHIO_wlDamLaHu_c1 daAlinkHIO_wlDamLarge_c0::m = {\n", - "const daAlinkHIO_wlDamLaHu_c1 daAlinkHIO_wlDamHuge_c0::m = {\n", - }; - m_len = 108; mp_src_data = baseP[param_0]; mp_data = (void*)&m; @@ -4278,16 +4272,15 @@ void daAlinkHIO_wlAtWait_c::genMessage(JORMContext* ctx) { daAlinkHIO_wlAtWait_c::daAlinkHIO_wlAtWait_c(int param_0, float param_1) { field_0x34 = param_1; + static const char plabel0[] = "const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaLr_c0::m = {\n"; + static const char plabel1[] = "const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaSc_c0::m = {\n"; + static const char plabel2[] = "const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaTl_c0::m = {\n"; + static const char* plabel[] = {plabel0, plabel1, plabel2}; + static void* baseP[] = { (void*)&daAlinkHIO_wlAtWaLr_c0::m, - (void*)&daAlinkHIO_wlAtWaTl_c0::m, (void*)&daAlinkHIO_wlAtWaSc_c0::m, - }; - - static const char* plabel[] = { - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_wlAtWaLr_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_wlAtWaTl_c0::m = {\n", - "const daAlinkHIO_cutNormal_c1 daAlinkHIO_wlAtWaSc_c0::m = {\n", + (void*)&daAlinkHIO_wlAtWaTl_c0::m, }; m_len = 60; @@ -5043,7 +5036,7 @@ daAlinkHIO_wlMoveNoP_c::~daAlinkHIO_wlMoveNoP_c() {} daAlinkHIO_wlMove_c::~daAlinkHIO_wlMove_c() {} void daAlinkHIO_c::jumpStateUpdate(const cXyz* param_0, const cXyz* param_1, f32 param_2) { - char buf[68]; + char buf[64]; f32 xDiff = param_0->x - param_1->x; f32 zDiff = param_0->z - param_1->z; diff --git a/src/d/actor/d_a_alink_bottle.inc b/src/d/actor/d_a_alink_bottle.inc index bba785875f..b3a39c3498 100644 --- a/src/d/actor/d_a_alink_bottle.inc +++ b/src/d/actor/d_a_alink_bottle.inc @@ -23,6 +23,7 @@ int daAlink_c::bottleModelCallBack() { static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1) { UNUSED(i_joint); + UNUSED(param_1); daAlink_c* player_p = (daAlink_c*)j3dSys.getModel()->getUserArea(); @@ -568,7 +569,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* i_catchActor, int param_1) { catchActorName = PROC_ALINK; } - if (catchActorName == PROC_OBJ_OILTUBO || catchActorName == PROC_TAG_SSDRINK || + if (catchActorName == PROC_TAG_SSDRINK || catchActorName == PROC_OBJ_OILTUBO || catchActorName == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA) { setSingleAnimeParam(ANM_BOTTLE_SCOOP, &mpHIO->mItem.mBottle.m.mScoopAnm); diff --git a/src/d/actor/d_a_alink_bow.inc b/src/d/actor/d_a_alink_bow.inc index 4d7a354289..207f463cd7 100644 --- a/src/d/actor/d_a_alink_bow.inc +++ b/src/d/actor/d_a_alink_bow.inc @@ -352,6 +352,7 @@ BOOL daAlink_c::checkUpperItemActionBow() { if (mEquipItem == fpcNm_ITEM_BOW) { field_0x301e = 0; } + (void)0; } else { changeArrowType(); } diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc index e90c87ac88..5f46d5e557 100644 --- a/src/d/actor/d_a_alink_crawl.inc +++ b/src/d/actor/d_a_alink_crawl.inc @@ -389,12 +389,19 @@ void daAlink_c::setCrawlMoveAngle() { } mLinkGndChk.SetPos(&sp20); - // Fakematch: - // dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some - // reason here that breaks the match. This is the only place in the code so - // far (September 2025) where it causes issues. - sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().cBgS::GroundCross(&mLinkGndChk) - sp38.y, +#if PLATFORM_SHIELD + sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().GroundCross(&mLinkGndChk) - sp38.y, sp20.z - sp38.z); +#else + // Likely fakematch: + // dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some + // reason here that breaks instruction ordering. This is the only place in the code + // where it causes issues. + // It _is_ possible that this is caused by an actual version difference in Shield, given + // that the Wii versions need the cast but Shield prod does not. + sp2C.set(sp20.x - sp38.x, ((cBgS&)dComIfG_Bgsp()).GroundCross(&mLinkGndChk) - sp38.y, + sp20.z - sp38.z); +#endif if (cLib_distanceAngleS(sp2C.atan2sY_XZ(), shape_angle.x) > 0x800) { shape_angle.y = current.angle.y; @@ -458,7 +465,7 @@ void daAlink_c::setCrawlAutoMoveAimPos() { mProcVar3.field_0x300e = 0; mProcVar0.field_0x3008 = -1; } else if ((shape_angle.y == current.angle.y && direction == DIR_BACKWARD) || (shape_angle.y != current.angle.y && direction == DIR_FORWARD)) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); field_0x37c8.x -= 1.5f * (95.0f * cM_ssin(current.angle.y)); field_0x37c8.z -= 1.5f * (95.0f * cM_scos(current.angle.y)); diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc index c988a12cb7..24b4f143c4 100644 --- a/src/d/actor/d_a_alink_cut.inc +++ b/src/d/actor/d_a_alink_cut.inc @@ -1233,6 +1233,7 @@ int daAlink_c::procCutFinishInit(int i_type) { field_0x3588 = l_halfAtnWaitBaseAnime; if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_FINISH_STAB) { + int dummy; // dummy decl to force stack pointer into r31 for debug field_0x2f99 = 13; } @@ -1586,7 +1587,7 @@ int daAlink_c::procCutJump() { daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; if (current.angle.y == shape_angle.y && changeCutReverseProc(ANM_CUT_JUMP)) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed = 27.0f; dComIfGp_getVibration().StartShock(VIBMODE_S_POWER5, 31, cXyz(0.0f, 1.0f, 0.0f)); } else if (current.angle.y != shape_angle.y) { diff --git a/src/d/actor/d_a_alink_damage.inc b/src/d/actor/d_a_alink_damage.inc index 38cf05d3e6..56229e2e4f 100644 --- a/src/d/actor/d_a_alink_damage.inc +++ b/src/d/actor/d_a_alink_damage.inc @@ -1805,7 +1805,7 @@ int daAlink_c::procDkCaught() { f32 var_f30; if (checkInputOnR()) { if (getDirectionFromCurrentAngle() == DIR_BACKWARD) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; } diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index 98dcb83804..c601c35695 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -268,10 +268,10 @@ int daAlink_c::checkDemoAction() { } // TODO: reconcile - #if VERSION == VERSION_SHIELD_DEBUG - int type = prm0 - 20; - if (type >= 0 && type < 6) { - return procCutFinishInit(type); + #if VERSION == VERSION_SHIELD_DEBUG || 1 + prm0 -= 20; + if (prm0 >= 0 && prm0 < 6) { + return procCutFinishInit(prm0); } else { return procCutTurnInit(1, 1); } @@ -364,7 +364,13 @@ int daAlink_c::checkDemoAction() { return procCutLargeJumpChargeInit(); } else if (demoMode == daPy_demo_c::DEMO_UNK_73_e) { onNoResetFlg0(FLG0_UNK_100000); - return procSideRollInit(mDemo.getParam0() ? 3 : 2); + int temp; + if (!mDemo.getParam0()) { + temp = 2; + } else { + temp = 3; + } + return procSideRollInit(temp); } else if (demoMode == daPy_demo_c::DEMO_UNK_16_e) { onNoResetFlg0(FLG0_UNK_100000); if (checkWolf()) { @@ -584,6 +590,7 @@ void daAlink_c::setDemoData() { if (mMidnaTalkDelayTimer != 0) { mMidnaTalkDelayTimer--; } + (void)0; } else { dDemo_actor_c* demo_actor_p = dDemo_c::getActor(demoActorID); cXyz* pos_p = NULL; @@ -763,6 +770,7 @@ void daAlink_c::setDemoData() { dComIfGp_evmng_cutEnd(mAlinkStaffId); } } + (void)0; } else { if (mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_TOOL_e || (mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SYSTEM_e && mAlinkStaffId != -1)) { if (prm0_p != NULL) { @@ -1093,7 +1101,7 @@ void daAlink_c::setTalkAnime() { } } -u8 daAlink_c::setTradeItemAnime() { +bool daAlink_c::setTradeItemAnime() { setSingleAnimeBase(ANM_TRADE_ITEM_PULL_OUT); offModeFlg(0x100); @@ -1110,7 +1118,7 @@ u8 daAlink_c::setTradeItemAnime() { } keepItemData(); - return 1; + return true; } void daAlink_c::setTradeItemOutHand() { @@ -1146,7 +1154,7 @@ u8 daAlink_c::setDemoRightHandIndex(u16 param_0) { mProcVar4.field_0x3010 = 1; return 6; } else if (param_0 == 0xFC) { - field_0x2fab |= 0x10; + field_0x2fab |= (u8)0x10; return 5; } else if (param_0 == 0xFB) { if (mpDemoHRTmpModel != NULL) { @@ -1169,7 +1177,7 @@ u8 daAlink_c::setDemoLeftHandIndex(u16 param_0) { } return 0; } else if (param_0 == 0xFC) { - field_0x2fab |= 0x8; + field_0x2fab |= (u8)0x8; return 0; } else if (param_0 == 0xFB) { if (mpDemoHLTmpModel != NULL) { @@ -1527,11 +1535,11 @@ int daAlink_c::procCoToolDemo() { } } else if (arg1 == 7) { if (resID == 1) { - field_0x2fab |= 2; + field_0x2fab |= (u8)0x2; } } else if (arg1 == 8) { if (resID == 1) { - field_0x2fab |= 1; + field_0x2fab |= (u8)0x1; } } else if (arg1 == 0) { if (arg2 == 1) { @@ -2042,7 +2050,11 @@ void daAlink_c::setGetSubBgm(int i_itemNo) { /* fpcNm_ITEM_RED_BOTTLE */ SETYPE_ITEM_GET_MINI, /* fpcNm_ITEM_GREEN_BOTTLE */ SETYPE_ITEM_GET_MINI, /* fpcNm_ITEM_BLUE_BOTTLE */ SETYPE_ITEM_GET_MINI, +#if PLATFORM_SHIELD + /* fpcNm_ITEM_MILK_BOTTLE */ SETYPE_ITEM_GET, +#else /* fpcNm_ITEM_MILK_BOTTLE */ SETYPE_ITEM_GET_MINI, +#endif /* fpcNm_ITEM_HALF_MILK_BOTTLE */ SETYPE_ITEM_GET, /* fpcNm_ITEM_OIL_BOTTLE */ SETYPE_ITEM_GET_MINI, /* fpcNm_ITEM_WATER_BOTTLE */ SETYPE_NONE, @@ -2217,6 +2229,8 @@ void daAlink_c::setGetSubBgm(int i_itemNo) { } BOOL daAlink_c::checkTreasureRupeeReturn(int i_itemNo) const { + static const int dummy = 0; + if (i_itemNo == fpcNm_ITEM_LINKS_SAVINGS) { i_itemNo = fpcNm_ITEM_PURPLE_RUPEE; } @@ -3244,7 +3258,7 @@ int daAlink_c::procHandPatInit() { mNormalSpeed = 0.0f; setOldRootQuaternion(0, -0x8000, 0); - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; return 1; @@ -3270,7 +3284,7 @@ int daAlink_c::procHandPat() { if (checkAnmEnd(frameCtrl_p)) { setSingleAnimeBase(ANM_WAIT_B_TO_A); mProcVar2.field_0x300c = 1; - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); mPrevAngleY = shape_angle.y; current.angle.y = shape_angle.y; setOldRootQuaternion(0, -0x8000, 0); @@ -3335,11 +3349,12 @@ int daAlink_c::procCoFogDead() { } } + int roomNo; if (mProcVar0.field_0x3008 > 0) { mProcVar0.field_0x3008--; } else if (mProcVar0.field_0x3008 == 0) { - if (dStage_changeScene(daTagMist_c::getPlayerNo(), 0.0f, 5, fopAcM_GetRoomNo(this), - shape_angle.y, -1)) + roomNo = fopAcM_GetRoomNo(this); + if (dStage_changeScene(daTagMist_c::getPlayerNo(), 0.0f, 5, roomNo, shape_angle.y, -1)) { seStartSystem(Z2SE_FORCE_BACK); mProcVar0.field_0x3008--; @@ -3600,7 +3615,7 @@ int daAlink_c::procWolfSnowEscape() { if (checkAnmEnd(frameCtrl_p)) { setOldRootQuaternion(0, -0x8000, 0); - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); mPrevAngleY = shape_angle.y; current.angle.y = shape_angle.y; @@ -4216,7 +4231,7 @@ int daAlink_c::procDungeonWarpSceneStartInit() { #endif current.pos.y += 120.0f; - shape_angle.y += 0x7F7A; + ANGLE_ADD_2(shape_angle.y, 0x7F7A); scale.set(0.0f, 1.5f, 0.0f); mpLinkModel->setBaseScale(scale); @@ -4247,7 +4262,7 @@ int daAlink_c::procDungeonWarpSceneStart() { if (!var_r31) { current.pos.y -= 5.0f; } else { - mProcVar2.field_0x300c -= 0x200; + ANGLE_SUB_2(mProcVar2.field_0x300c, 0x200); if (mProcVar2.field_0x300c < 0) { return checkNextAction(0); } @@ -4336,7 +4351,7 @@ void daAlink_c::skipPortalObjWarp() { if (checkNoResetFlg3(FLG3_WARP_OBJ_DEMO) && (dComIfGp_TargetWarpPt_get() == 9 && dComIfGp_TransportWarp_check())) { - dStage_changeScene(2, 0.0f, 0, fopAcM_GetRoomNo(this), shape_angle.y, -1); + dStage_changeScene(2, 0.0f, 0, (int)fopAcM_GetRoomNo(this), shape_angle.y, -1); } else { dComIfGs_setTurnRestart(dMeter2Info_getWarpPos(), dMeter2Info_getWarpPlayerNo(), dMeter2Info_getWarpRoomNo(), setParamData(dMeter2Info_getWarpRoomNo(), 0, 0xCA, 0)); @@ -4605,8 +4620,9 @@ int daAlink_c::procCoWarp() { if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_45_e) { if (mProcVar1.field_0x300a != 0) { if (mGroundCode == 4) { - dComIfGp_setNextStage(dComIfGp_getStartStageName(), mProcVar4.field_0x3010, - fopAcM_GetRoomNo(this), -1, 0.0f, 5, 1, 0, + dComIfGp_setNextStage(dComIfGp_getStartStageName(), + mProcVar4.field_0x3010, + (int)fopAcM_GetRoomNo(this), -1, 0.0f, 5, 1, 0, shape_angle.y, 1, 0); changeOriginalDemo(); changeDemoMode(1, 0, 0, 0); diff --git a/src/d/actor/d_a_alink_effect.inc b/src/d/actor/d_a_alink_effect.inc index 97e4d1dc7c..f21068f2fa 100644 --- a/src/d/actor/d_a_alink_effect.inc +++ b/src/d/actor/d_a_alink_effect.inc @@ -9,7 +9,7 @@ #include "d/d_com_inf_game.h" #include "d/d_k_wmark.h" -EffParamProc daAlink_c::m_fEffParamProc[] = { +const EffParamProc daAlink_c::m_fEffParamProc[] = { &daAlink_c::setEffectFrontRollParam, &daAlink_c::setEffectSlipParam, &daAlink_c::setEffectSmallLandParam, @@ -554,7 +554,7 @@ void daAlink_c::setEffect() { (field_0x3198 == 0x14C || field_0x3198 == 0x14D || field_0x3198 == 0x155)) { sp3C = TRUE; - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); } f32 temp_f30 = field_0x3798.absXZ(current.pos); @@ -643,7 +643,7 @@ void daAlink_c::setEffect() { } if (sp3C) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); } setFirePointDamageEffect(); @@ -869,10 +869,6 @@ void daAlink_c::setSwordChargeEffect() { } void daAlink_c::setElecDamageEffect() { - static Vec const localOffset = {0.0f, -10.0f, -10.0f}; - static Vec const localScale0 = {0.69999999f, 0.85f, 1.5f}; - static Vec const localScale1 = {1.0f, 0.85f, 1.5f}; - static const u16 effName0[] = { dPa_RM(ID_ZI_S_LK_BIRIBIRIA_A), dPa_RM(ID_ZI_S_LK_BIRIBIRIA_B), @@ -885,6 +881,10 @@ void daAlink_c::setElecDamageEffect() { dPa_RM(ID_ZI_S_LK_BIRIBIRIC_C), }; + static Vec const localOffset = {0.0f, -10.0f, -10.0f}; + static Vec const localScale0 = {0.69999999f, 0.85f, 1.5f}; + static Vec const localScale1 = {1.0f, 0.85f, 1.5f}; + cXyz pos; const u16* effNameList; @@ -938,11 +938,30 @@ void daAlink_c::clearCutTurnEffectID() { } void daAlink_c::setCutTurnEffect() { + if (mUnderFrameCtrl[0].getFrame() < mProcVar1.field_0x300a) { + return; + } + + static Vec const waterEffScale = {1.5f, 1.5f, 1.5f}; + + static const int unused0 = 0; + static const int unused1 = 0; + static const int unused2 = 0; + static const u16 effNameNormal[] = { ID_ZI_J_KAITENGIRI_A, ID_ZI_J_KAITENGIRI_B, }; + static s16 leftRotNormal[] = { + cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), + }; + + static Vec const leftTransNormal[] = { + {0.0f, 0.0f, 0.0f}, + {0.0f, 30.0f, 0.0f}, + }; + static const u16 effNameLight[] = { ID_ZI_J_KAITENGIRIL_A, ID_ZI_J_KAITENGIRIL_B, @@ -950,25 +969,18 @@ void daAlink_c::setCutTurnEffect() { ID_ZI_J_KAITENGIRIL_D, }; - static const u16 effNameWater[] = { - ID_ZI_J_KAITENGIRI_INWTR_A, - ID_ZI_J_KAITENGIRI_INWTR_B, + static s16 leftRotLight[] = { + cM_deg2s(180), cM_deg2s(100), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), + cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), }; - static Vec const waterEffScale = {1.5f, 1.5f, 1.5f}; - - static Vec const leftTransNormal[] = { - {0.0f, 0.0f, 0.0f}, - {0.0f, 30.0f, 0.0f}, - }; - static Vec const leftTransLight[] = { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {0.0f, 35.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, }; - + static u16 const effNameLarge[] = { ID_ZI_J_KAITENGIRID_A, ID_ZI_J_KAITENGIRID_B, @@ -977,7 +989,13 @@ void daAlink_c::setCutTurnEffect() { ID_ZI_J_KAITENGIRID_E, ID_ZI_J_KAITENGIRID_F, }; - + + static s16 leftRotLarge[] = { + cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), + cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), + cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), + }; + static Vec const leftTransLarge[] = { {0.0f, 0.0f, 0.0f}, {0.0f, 35.0f, 0.0f}, @@ -987,97 +1005,86 @@ void daAlink_c::setCutTurnEffect() { {0.0f, 50.0f, 0.0f}, }; + static const u16 effNameWater[] = { + ID_ZI_J_KAITENGIRI_INWTR_A, + ID_ZI_J_KAITENGIRI_INWTR_B, + }; + + static s16 leftRotWater[] = { + cM_deg2s(-90), cM_deg2s(0), cM_deg2s(180), cM_deg2s(0), cM_deg2s(0), cM_deg2s(180), + }; + static Vec const leftTransWater[] = { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, }; - if (!(mUnderFrameCtrl[0].getFrame() < mProcVar1.field_0x300a)) { - static s16 leftRotNormal[] = { - cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), - }; + JPABaseEmitter* emitter; + u32* emitterId = field_0x3204; + const u16* effNameList; + JGeometry::TVec3* rot; + JGeometry::TVec3* trans; + int effNum; + BOOL sp18 = FALSE; - static s16 leftRotLight[] = { - cM_deg2s(180), cM_deg2s(100), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), - cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), - }; - - static s16 leftRotLarge[] = { - cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), - cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), - cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), - }; - - static s16 leftRotWater[] = { - cM_deg2s(-90), cM_deg2s(0), cM_deg2s(180), cM_deg2s(0), cM_deg2s(0), cM_deg2s(180), - }; - - u32* emitterId = field_0x3204; - const u16* effNameList; - JGeometry::TVec3* rot; - JGeometry::TVec3* trans; - int effNum; - BOOL sp18 = FALSE; - - if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { - if (checkZoraWearAbility()) { - effNameList = effNameWater; - rot = (JGeometry::TVec3*)leftRotWater; - trans = (JGeometry::TVec3*)leftTransWater; - effNum = 2; - if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { - sp18 = TRUE; - } - } else { - return; - } - } else if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { - effNameList = effNameLarge; - rot = (JGeometry::TVec3*)leftRotLarge; - trans = (JGeometry::TVec3*)leftTransLarge; - effNum = 6; - } else if (checkNoResetFlg3(FLG3_UNK_100000)) { - effNameList = effNameLight; - rot = (JGeometry::TVec3*)leftRotLight; - trans = (JGeometry::TVec3*)leftTransLight; - effNum = 4; - } else { - effNameList = effNameNormal; - rot = (JGeometry::TVec3*)leftRotNormal; - trans = (JGeometry::TVec3*)leftTransNormal; + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + if (checkZoraWearAbility()) { + effNameList = effNameWater; + rot = (JGeometry::TVec3*)leftRotWater; + trans = (JGeometry::TVec3*)leftTransWater; effNum = 2; + if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { + sp18 = TRUE; + } + } else { + return; } + } else if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { + effNameList = effNameLarge; + rot = (JGeometry::TVec3*)leftRotLarge; + trans = (JGeometry::TVec3*)leftTransLarge; + effNum = 6; + } else if (checkNoResetFlg3(FLG3_UNK_100000)) { + effNameList = effNameLight; + rot = (JGeometry::TVec3*)leftRotLight; + trans = (JGeometry::TVec3*)leftTransLight; + effNum = 4; + } else { + effNameList = effNameNormal; + rot = (JGeometry::TVec3*)leftRotNormal; + trans = (JGeometry::TVec3*)leftTransNormal; + effNum = 2; + } - cXyz pos; - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); + cXyz pos; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); - if (checkMagneBootsOn()) { - mDoMtx_stack_c::transS(pos); - mDoMtx_stack_c::concat(mMagneBootMtx); - mDoMtx_stack_c::ZXYrotM(shape_angle); - } + if (checkMagneBootsOn()) { + mDoMtx_stack_c::transS(pos); + mDoMtx_stack_c::concat(mMagneBootMtx); + mDoMtx_stack_c::ZXYrotM(shape_angle); + } - for (int i = 0; i < effNum; i++, emitterId++, effNameList++, rot++, trans++) { - JPABaseEmitter* emitter = setEmitter(emitterId, *effNameList, &pos, &shape_angle); - if (emitter != NULL) { - if (checkMagneBootsOn()) { - emitter->setGlobalRTMatrix(mDoMtx_stack_c::get()); + for (int i = 0; i < effNum; i++, emitterId++, effNameList++, rot++, trans++) { + emitter = setEmitter(emitterId, *effNameList, &pos, &shape_angle); + if (emitter != NULL) { + if (checkMagneBootsOn()) { + emitter->setGlobalRTMatrix(mDoMtx_stack_c::get()); + } + + if (mProcVar4.field_0x3010 == 0) { + emitter->setLocalRotation(*rot); + if (trans->y > 1.0f) { + emitter->setLocalTranslation(*trans); } + } - if (mProcVar4.field_0x3010 == 0) { - emitter->setLocalRotation(*rot); - if (trans->y > 1.0f) { - emitter->setLocalTranslation(*trans); - } - } - - if (sp18) { - if (i == 0) { - emitter->setGlobalParticleScale(waterEffScale); - } else { - emitter->setVolumeSize(225); - emitter->setAwayFromAxisSpeed(15.0f); - } + if (sp18) { + if (i == 0) { + emitter->setGlobalParticleScale(waterEffScale); + } else { + emitter->setVolumeSize(225); + emitter->setAwayFromAxisSpeed(15.0f); } } } @@ -1094,6 +1101,8 @@ void daAlink_c::setHorseCutTurnEffect() { } void daAlink_c::setCutLargeJumpLandEffect() { + static const int dummy = 0; + cXyz pos(current.pos.x + cM_ssin(shape_angle.y) * 20.0f, current.pos.y + 50.0f, current.pos.z + cM_scos(shape_angle.y) * 20.0f); csXyz rot; cM3dGPla tripla; @@ -1195,7 +1204,7 @@ void daAlink_c::setWolfRollAttackEffect() { csXyz rot(shape_angle.x, shape_angle.y, 0); if (mProcVar2.field_0x300c == 0) { - rot.x += 0x8000; + ANGLE_ADD_2(rot.x, 0x8000); } setEmitter(&field_0x3204[0], ID_ZI_J_WL_KAITENAT_A, &pos, &rot); @@ -1243,6 +1252,7 @@ void daAlink_c::setWolfDigEffect() { emitter->setAwayFromAxisSpeed(var_f30); dComIfGp_particle_levelEmitterOnEventMove(field_0x32cc); } + (void)0; } else if (field_0x3198 == 7) { var_r29 = 0; var_r28 = ID_ZI_J_DASHWTRA_C; @@ -1364,6 +1374,7 @@ void daAlink_c::setWolfJumpAttackEffect() { } void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& i_linchk) { + static const int dummy = 0; static const u16 normalNameID[] = { dPa_RM(ID_ZI_S_NSBARRIER_COLL_A), dPa_RM(ID_ZI_S_NSBARRIER_COLL_B), @@ -1406,6 +1417,8 @@ void daAlink_c::setCutWaterDropEffect() { } void daAlink_c::setWaterDropEffect() { + static const int dummy1 = 0; + static const int dummy2 = 0; static const u16 effDataTable[] = { ID_ZI_J_LK_NUREPOTA_BACKBONE2, ID_ZI_J_LK_NUREPOTA_WAIST, @@ -1467,7 +1480,7 @@ void daAlink_c::setWaterDropEffect() { if (field_0x32c0[i] != 0) { if (field_0x32a0[i].a > -20) { - field_0x32a0[i].a -= 2; + field_0x32a0[i].a -= (s16)2; if (field_0x32a0[i].a < -20) { field_0x32a0[i].a = -20; @@ -1507,6 +1520,8 @@ void daAlink_c::setSwordUpColorEffect() { } void daAlink_c::setSwordCutSplash() { + static Vec const swordCutSplashScale = {0.6f, 0.6f, 0.6f}; + static const u16 cutSplashName[] = { ID_ZI_J_DOWNWTRA_A, ID_ZI_J_DOWNWTRA_B, @@ -1514,8 +1529,6 @@ void daAlink_c::setSwordCutSplash() { ID_ZI_J_DOWNWTRA_D, }; - static Vec const swordCutSplashScale = {0.6f, 0.6f, 0.6f}; - if (mCutType != 0 && mProcID != PROC_CUT_TURN && getCutAtFlg() && checkNoResetFlg0(FLG0_UNK_80) && mEquipItem == 0x103) { if (mSwordTopPos.y <= mWaterY && field_0x34b0.y > mWaterY) { cXyz sp14(mSwordTopPos.x, mWaterY, mSwordTopPos.z); @@ -1543,7 +1556,7 @@ void daAlink_c::setMetamorphoseEffectStartLink() { JPABaseEmitter* emitter = setEmitter(&field_0x3200, ID_ZI_J_ATOW_C, &cXyz::Zero, NULL); #if VERSION == VERSION_SHIELD_DEBUG - static Vec effScale = {1.33f, 1.0f, 1.0f}; + static const Vec effScale = {1.33f, 1.0f, 1.0f}; if (emitter != NULL) { emitter->setGlobalParticleScale(effScale); } @@ -1752,28 +1765,30 @@ void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* i_h } } - if (i != 4) { - cXyz* dmg_vec = getDamageVec(i_hitObj); - - csXyz sp38(dmg_vec->atan2sY_XZ(), dmg_vec->atan2sX_Z(), 0); - csXyz sp40; - cXyz sp30; - - int var_r30 = field_0x2e44.getHitmarkPosAndAngle(param_0, &sp38, &sp30, &sp40, 0); - if (var_r30 == -1 || (!checkWolf() && (var_r30 == 1 || var_r30 == 15 || var_r30 == 16))) { - return; - } - - eff->field_0x2 = field_0x2e44.getJntNum(var_r30); - eff->field_0xc = *param_0; - eff->field_0x24 = cXyz::Zero; - eff->field_0x0 = 1; - eff->field_0x4 = 0; - - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(eff->field_0x2)); - mDoMtx_stack_c::inverse(); - mDoMtx_stack_c::multVec(&sp30, &eff->field_0x18); + if (i == 4) { + return; } + + cXyz* dmg_vec = getDamageVec(i_hitObj); + + csXyz sp38(dmg_vec->atan2sY_XZ(), dmg_vec->atan2sX_Z(), 0); + csXyz sp40; + cXyz sp30; + + int var_r30 = field_0x2e44.getHitmarkPosAndAngle(param_0, &sp38, &sp30, &sp40, 0); + if (var_r30 == -1 || (!checkWolf() && (var_r30 == 1 || var_r30 == 15 || var_r30 == 16))) { + return; + } + + eff->field_0x2 = field_0x2e44.getJntNum(var_r30); + eff->field_0xc = *param_0; + eff->field_0x24 = cXyz::Zero; + eff->field_0x0 = 1; + eff->field_0x4 = 0; + + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(eff->field_0x2)); + mDoMtx_stack_c::inverse(); + mDoMtx_stack_c::multVec(&sp30, &eff->field_0x18); } void daAlink_c::setFirePointDamageEffect() { @@ -1827,6 +1842,11 @@ void daAlink_c::setFirePointDamageEffect() { } void daAlink_c::setFreezeEffect() { + static const int dummy = 0; + static const u16 effName[] = { + dPa_RM(ID_ZI_S_LK_FREEZEND_A), + dPa_RM(ID_ZI_S_LK_FREEZEND_B), + }; static Vec const effScale = {1.0f, 1.8f, 1.0f}; static Vec const wolfEffScale = {1.0f, 1.0f, 1.5f}; static Vec const offsetPos = {0.0f, 0.0f, -10.0f}; @@ -1859,10 +1879,6 @@ void daAlink_c::setFreezeEffect() { } for (int i = 0; i < 2; i++) { - static const u16 effName[] = { - dPa_RM(ID_ZI_S_LK_FREEZEND_A), - dPa_RM(ID_ZI_S_LK_FREEZEND_B), - }; dComIfGp_particle_setColor(effName[i], &pos, &tevStr, NULL, NULL, 0.0f, 0xFF); } @@ -1900,6 +1916,7 @@ void daAlink_c::clearWoodShieldBurnEffect() { } void daAlink_c::setWoodShieldBurnOutEffect() { + static const int dummy = 0; static const u16 effName[] = { ID_ZI_J_LK_SH_BURN_C, ID_ZI_J_LK_SH_BURN_D, @@ -2061,7 +2078,7 @@ void daAlink_blur_c::draw() { GXTexCoord2s16(var_r27, 0); var_r27 = var_r28; - var_r28 += temp_r26; + ANGLE_ADD_2(var_r28, temp_r26); } GXEnd(); diff --git a/src/d/actor/d_a_alink_grab.inc b/src/d/actor/d_a_alink_grab.inc index 6175baea5d..5f9a02e8e9 100644 --- a/src/d/actor/d_a_alink_grab.inc +++ b/src/d/actor/d_a_alink_grab.inc @@ -2103,7 +2103,7 @@ int daAlink_c::procGoatMove() { int temp_r27 = abs(mMoveAngle); if (checkInputOnR() && temp_r27 > 0x800 && temp_r27 < 0x7800 && (fabsf(sp8.x) < 250.0f || (sp8.x > 0.0f && mMoveAngle < 0) || (sp8.x < 0.0f && mMoveAngle > 0))) { if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; if (field_0x2f98 == 3) { @@ -2294,7 +2294,7 @@ int daAlink_c::procGoatCatch() { if (checkAnmEnd(framectrl)) { if (mProcVar5.field_0x3012 == 0) { setOldRootQuaternion(0, -0x8000, 0); - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); current.angle.y = shape_angle.y; field_0x2fe4 = shape_angle.y; } @@ -2537,7 +2537,7 @@ int daAlink_c::procGoronMove() { f32 var_f31; if (checkInputOnR() && temp_r28 > 0x800 && temp_r28 < 0x7800) { if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; if (field_0x2f98 == 3) { diff --git a/src/d/actor/d_a_alink_guard.inc b/src/d/actor/d_a_alink_guard.inc index a238b98735..e5bb97e737 100644 --- a/src/d/actor/d_a_alink_guard.inc +++ b/src/d/actor/d_a_alink_guard.inc @@ -92,14 +92,13 @@ void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) { fopAcM_delete(first_arrow); } - int i = 0; - for (; i < 15; i++) { - mShieldArrowIDs[i] = mShieldArrowIDs[i + 1]; - field_0x2f7c[i] = field_0x2f7c[i + 1]; + for (arrow_num = 0; arrow_num < 15; arrow_num++) { + mShieldArrowIDs[arrow_num] = mShieldArrowIDs[arrow_num + 1]; + field_0x2f7c[arrow_num] = field_0x2f7c[arrow_num + 1]; } - mShieldArrowIDs[i] = new_arrow_id; - field_0x2f7c[i] = 10; + mShieldArrowIDs[arrow_num] = new_arrow_id; + field_0x2f7c[arrow_num] = 10; dComIfGp_setItemArrowNumCount(1); fopAcM_createItemForSimpleDemo(¤t.pos, fpcNm_ITEM_ARROW_10, -1, NULL, NULL, 0.0f, 0.0f); @@ -201,6 +200,7 @@ void daAlink_c::setShieldGuard() { void daAlink_c::setGuardSe(dCcD_GObjInf* i_objinf) { int var_r31; + u32 hit_se; BOOL isRebound; if (checkWoodShieldEquipNotIronBall() && !checkMagicArmorNoDamage()) { @@ -211,7 +211,6 @@ void daAlink_c::setGuardSe(dCcD_GObjInf* i_objinf) { isRebound = TRUE; } - u32 hit_se; if (i_objinf->GetTgHitGObj() != NULL && i_objinf->GetTgHitGObj()->GetAtType() == AT_TYPE_BOMB) { hit_se = Z2SE_HIT_METAL_WEAPON; } else { diff --git a/src/d/actor/d_a_alink_hang.inc b/src/d/actor/d_a_alink_hang.inc index 2b6847a56a..563bb9c905 100644 --- a/src/d/actor/d_a_alink_hang.inc +++ b/src/d/actor/d_a_alink_hang.inc @@ -35,6 +35,8 @@ int daAlink_c::getHangDirectionFromAngle() { } BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { + static const int dummy = 0; + BOOL rt = false; cM3dGPla sp78; @@ -902,7 +904,7 @@ int daAlink_c::setDragonHangPos() { cXyz sp18; mDoMtx_stack_c::multVecSR(&cXyz::BaseY, &sp18); if (sp18.y < 0.0f) { - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); shape_angle.x = 0x8000 - shape_angle.x; shape_angle.z *= -1; } @@ -1418,7 +1420,7 @@ int daAlink_c::procLadderDownStartInit() { dComIfGp_setPlayerStatus0(0, 0x2000000); setOldRootQuaternion(0, 0x8000, 0); - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); current.angle.y = shape_angle.y; f32 var_f31 = cM_ssin(field_0x306e); @@ -2457,7 +2459,7 @@ int daAlink_c::procClimbToRoof() { field_0x2f99 = 2; if (checkAnmEnd(frameCtrl)) { - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); current.angle.y = shape_angle.y; mPrevAngleY = shape_angle.y; setOldRootQuaternion(0, 0x8000, 0); @@ -2495,7 +2497,7 @@ void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) { if (frame_ctrl->checkPass(field_0x3478)) { return; } else if (frame_ctrl->checkPass(field_0x347c)) { - + (void)0; } } @@ -2842,7 +2844,7 @@ int daAlink_c::procRoofHangTurnInit() { if ((s16)(mMoveAngle - shape_angle.y) < 0) { anm_speed = -mpHIO->mRoofHang.m.mInvertASpeed; mProcVar0.field_0x3008 = 1; - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); setOldRootQuaternion(0, -0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z = -8.899365425109863f; mProcVar2.field_0x300c = mMoveAngle; @@ -2881,7 +2883,7 @@ int daAlink_c::procRoofHangTurn() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; if (checkAnmEnd(frame_ctrl)) { if (mProcVar0.field_0x3008 == 0) { - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); current.angle.y = shape_angle.y; setOldRootQuaternion(0, -0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 17.798730850219727f; diff --git a/src/d/actor/d_a_alink_hook.inc b/src/d/actor/d_a_alink_hook.inc index efcb3b8bc0..5f609a7017 100644 --- a/src/d/actor/d_a_alink_hook.inc +++ b/src/d/actor/d_a_alink_hook.inc @@ -18,6 +18,8 @@ enum { }; void daAlink_c::hsChainShape_c::draw() { + static const int dummy = 0; + daAlink_c* alink = (daAlink_c*)getUserArea(); J3DModelData* modelData = alink->getItemModelData(); J3DMaterial* material = modelData->getMaterialNodePointer(0); @@ -50,7 +52,8 @@ void daAlink_c::hsChainShape_c::draw() { ppos++; pangle++; - for (int i = 0; i < 101; i++, ppos++, pangle++) { + int i; + for (i = 0; i < 101; i++, ppos++, pangle++) { mDoMtx_stack_c::copy(j3dSys.getViewMtx()); mDoMtx_stack_c::transM(*ppos); mDoMtx_stack_c::ZXYrotM(*pangle); @@ -65,7 +68,7 @@ void daAlink_c::hsChainShape_c::draw() { cXyz spC8; cXyz spBC; - for (int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { cXyz* sp48; csXyz* sp44; @@ -91,7 +94,7 @@ void daAlink_c::hsChainShape_c::draw() { spE = -0x3000; } - sp10 = sp44->y; + sp10 = (s16)sp44->y; sp14 = sp44->z + spE; f32 var_f29 = spC8.abs(); @@ -144,7 +147,7 @@ void daAlink_c::hsChainShape_c::draw() { csXyz sp64(sp6C); f32 sp34 = M_PI / maxDistanceF; - + f32 temp_f27; f32 var_f26 = 0.0f; f32 var_f28; @@ -153,6 +156,7 @@ void daAlink_c::hsChainShape_c::draw() { if (alink->getHookshotStopTime() & 1) { var_f28 *= -1.0f; } + (void)0; while (maxDistanceF > var_f30) { temp_f27 = var_f28 * cM_fsin(sp34 * var_f30); @@ -172,7 +176,7 @@ void daAlink_c::hsChainShape_c::draw() { material->getShape()->simpleDrawCache(); - sp64.z += 0x3000; + ANGLE_ADD_2(sp64.z, 0x3000); var_f26 = temp_f27; var_f30 += fabsf(cM_scos(spC)) * 5.0f; @@ -183,15 +187,15 @@ void daAlink_c::hsChainShape_c::draw() { const cXyz& subChainTopPos = alink->getHsSubChainTopPos(); maxDistance = subChainRootPos - subChainTopPos; - f32 temp_f1 = maxDistance.abs(); - if (temp_f1 > 1.0f) { - maxDistance *= (1.0f / temp_f1); + maxDistanceF = maxDistance.abs(); + if (maxDistanceF > 1.0f) { + maxDistance *= (1.0f / maxDistanceF); var_f30 = 0.0f; - + sp98 = subChainTopPos; sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0); - while (temp_f1 > var_f30) { + while (maxDistanceF > var_f30) { mDoMtx_stack_c::copy(j3dSys.getViewMtx()); mDoMtx_stack_c::transM(sp98); mDoMtx_stack_c::ZXYrotM(sp6C); @@ -202,7 +206,7 @@ void daAlink_c::hsChainShape_c::draw() { material->getShape()->simpleDrawCache(); sp98 += maxDistance * 5.0f; - sp6C.z += 0x3000; + ANGLE_ADD_2(sp6C.z, 0x3000); var_f30 += 5.0f; } } @@ -212,8 +216,7 @@ void daAlink_c::hsChainShape_c::draw() { void daAlink_c::hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf) { if (i_tgActor != NULL && fopAcM_IsActor(i_tgActor) && !i_tgObjInf->ChkTgHookshotThrough()) { - cXyz* hit_pos_p = i_atObjInf->GetAtHitPosP(); - f32 dist_to_hitpos = getHsChainTopPos().abs(*hit_pos_p); + f32 dist_to_hitpos = getHsChainTopPos().abs(*i_atObjInf->GetAtHitPosP()); if (dist_to_hitpos < mSearchBallScale) { mSearchBallScale = dist_to_hitpos; @@ -709,7 +712,13 @@ void daAlink_c::setHookshotReturnEnd() { field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa); } else if (checkHookshotShootAnime()) { int _; - setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_HSWAIT_e, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f); + f32 anmSpeed; + if (!checkAttentionLock()) { + anmSpeed = 0.0f; + } else { + anmSpeed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed; + } + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_HSWAIT_e, anmSpeed, 3.0f); } mFastShotTime = 0; @@ -796,25 +805,24 @@ void daAlink_c::setHookshotPos() { mDoMtx_stack_c::transM(-2.0f, 1.0f, 1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(5.7f), cM_deg2s(162.0f), 0); - J3DModel* var_r27; + J3DModel* model; if (field_0x3020 == 0) { - var_r27 = mHeldItemModel; + model = mHeldItemModel; } else { - var_r27 = field_0x0710; + model = field_0x0710; } - var_r27->setBaseTRMtx(mDoMtx_stack_c::get()); + model->setBaseTRMtx(mDoMtx_stack_c::get()); mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mRightItemJntNo)); mDoMtx_stack_c::transM(-2.0f, 0.0f, 1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(-78.0f), cM_deg2s(182.0f), cM_deg2s(-99.0f)); - J3DModel* var_r27_2; if (field_0x3020 == 0) { - var_r27_2 = field_0x0710; + model = field_0x0710; } else { - var_r27_2 = mHeldItemModel; + model = mHeldItemModel; } - var_r27_2->setBaseTRMtx(mDoMtx_stack_c::get()); + model->setBaseTRMtx(mDoMtx_stack_c::get()); if (mItemMode == 2 || mItemMode == HS_MODE_SHOOT_e) { field_0x33dc += 1.0f; @@ -865,6 +873,7 @@ void daAlink_c::setHookshotPos() { mpHookSound->framework(0, mVoiceReverbIntensity); fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + f32 var_f29; f32 return_speed; f32 shoot_speed; f32 max_length; @@ -981,7 +990,7 @@ void daAlink_c::setHookshotPos() { if (mHookTargetAcKeep.getActor() != NULL) { mHookshotTopPos = field_0x381c; - fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + targetAc_p = mHookTargetAcKeep.getActor(); if (targetAc_p != NULL && (targetAc_p->actor_status & 0x280000)) { mHookTargetAcKeep.setData(targetAc_p); mIronBallCenterPos = mHookshotTopPos - targetAc_p->current.pos; @@ -1026,12 +1035,12 @@ void daAlink_c::setHookshotPos() { } cXyz sp17C = mHookshotTopPos - mHeldItemRootPos; - f32 temp_f1 = sp17C.abs(); - sp17C *= 1.0f / temp_f1; + var_f29 = sp17C.abs(); + sp17C *= 1.0f / var_f29; - f32 temp_f26 = max_length - 15.0f; - if (temp_f1 >= temp_f26) { - mHookshotTopPos = mHeldItemRootPos + (sp17C * temp_f26); + f32 var_f26 = max_length - 15.0f; + if (var_f29 >= var_f26) { + mHookshotTopPos = mHeldItemRootPos + (sp17C * var_f26); mItemMode = HS_MODE_RETURN_e; } @@ -1070,9 +1079,9 @@ void daAlink_c::setHookshotPos() { mPolyInfo2.SetPolyInfo(mRopeLinChk); if (dComIfG_Bgsp().ChkMoveBG_NoDABg(mRopeLinChk)) { - fopAc_ac_c* target_ac = dComIfG_Bgsp().GetActorPointer(mRopeLinChk); - mHookTargetAcKeep.setData(target_ac); - fopAcM_setHookCarryNow(target_ac); + targetAc_p = dComIfG_Bgsp().GetActorPointer(mRopeLinChk); + mHookTargetAcKeep.setData(targetAc_p); + fopAcM_setHookCarryNow(targetAc_p); } } else { int poly_att0 = dComIfG_Bgsp().GetPolyAtt0(mRopeLinChk); @@ -1131,7 +1140,7 @@ void daAlink_c::setHookshotPos() { if (dComIfG_Bgsp().LineCross(mpHookshotLinChk) && dComIfG_Bgsp().GetPolyAtt0(*mpHookshotLinChk) != 6) { - fpc_ProcID id = fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 0.5f, 0); + fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 0.5f, 0); mDoAud_seStart(Z2SE_CM_BODYFALL_WATER_S, mpHookshotLinChk->GetCrossP(), 0, mVoiceReverbIntensity); } @@ -1217,7 +1226,7 @@ void daAlink_c::hookshotRoofTurn() { if (checkInputOnR()) { int stick_direction = getDirectionFromAngle(mStickAngle); - int angle = (int)(1024.0f * mMoveValue * mMoveValue); + s16 angle = 1024.0f * mMoveValue * mMoveValue; if (stick_direction == DIR_LEFT) { shape_angle.y += angle; @@ -1252,11 +1261,11 @@ void daAlink_c::hookshotRoofTurn() { u8 status_dir = 0; if (current.pos.y < max_rise_y) { - status_dir |= 8; + status_dir |= (u8)0x8; } if (current.pos.y > min_descend_y) { - status_dir |= 2; + status_dir |= (u8)0x2; } if (!checkEventRun()) { diff --git a/src/d/actor/d_a_alink_horse.inc b/src/d/actor/d_a_alink_horse.inc index 69cf4cfe57..a637ef42cb 100644 --- a/src/d/actor/d_a_alink_horse.inc +++ b/src/d/actor/d_a_alink_horse.inc @@ -281,9 +281,14 @@ void daAlink_c::setHorseSwordUpAnime() { void daAlink_c::setHorseTurnUpperAnime(BOOL i_isTurnL) { if (checkHorseNoUpperAnime() || (!i_isTurnL && checkHorseTurnRAnime()) || - (i_isTurnL == TRUE && checkHorseTurnLAnime())) - { - setUpperAnimeBaseMorf(!i_isTurnL ? (u16)dRes_ID_ALANM_BCK_TURNLS_e : (u16)dRes_ID_ALANM_BCK_TURNRS_e, 4.0f); + (i_isTurnL == TRUE && checkHorseTurnLAnime())) { + u16 anmResIdx; + if (i_isTurnL == FALSE) { + anmResIdx = (u16)dRes_ID_ALANM_BCK_TURNLS_e; + } else { + anmResIdx = (u16)dRes_ID_ALANM_BCK_TURNRS_e; + } + setUpperAnimeBaseMorf(anmResIdx, 4.0f); } } @@ -1095,7 +1100,11 @@ int daAlink_c::checkHorseGetOffDirection() { lin_end_pos.set(ride_actor_p->current.pos.x + cM_ssin(var_r28) * 125.0f, lin_start_pos.y, ride_actor_p->current.pos.z + cM_scos(var_r28) * 125.0f); +#if PLATFORM_SHIELD + f32 check_y[3]; +#else f32 check_y[3] = {0.0f, 0.0f, 0.0f}; +#endif check_y[0] = current.pos.y; check_y[1] = ride_actor_p->current.pos.y + (current.pos.y - ride_actor_p->current.pos.y) * 0.5f; @@ -1103,8 +1112,7 @@ int daAlink_c::checkHorseGetOffDirection() { check_y[2] = var_f31; int check_no; - int i; - for (i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++) { for (check_no = 0; check_no < 3; check_no++) { lin_start_pos.y = check_y[check_no]; lin_end_pos.y = lin_start_pos.y; @@ -1123,7 +1131,7 @@ int daAlink_c::checkHorseGetOffDirection() { lin_end_pos.x = lin_start_pos.x * 2.0f - lin_end_pos.x; lin_end_pos.z = lin_start_pos.z * 2.0f - lin_end_pos.z; - var_r28 += 0x8000; + ANGLE_ADD_2(var_r28, 0x8000); } return 2; @@ -1319,7 +1327,7 @@ int daAlink_c::procHorseRideInit() { } field_0x2fc0 = 1; } - + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_7_e) { setOldRootQuaternion(0, (s16)(shape_angle.y - field_0x27f4->shape_angle.y), 0); } @@ -1670,7 +1678,8 @@ int daAlink_c::procHorseWaitInit() { initServiceWaitTime(); checkHorseGetOffAndSetDoStatus(); - setSyncRide((!checkHorseNoUpperAnime() && !checkEquipAnime()) || checkInputOnR() || !checkHorseGetOff() || checkHorseGetOffDirection() == 2); + setSyncRide(!((checkHorseNoUpperAnime() || checkEquipAnime()) && !checkInputOnR() && + checkHorseGetOff() && checkHorseGetOffDirection() != 2)); field_0x33f0 = 0.0f; return 1; } diff --git a/src/d/actor/d_a_alink_iceleaf.inc b/src/d/actor/d_a_alink_iceleaf.inc index 9959c04fef..46d70785d3 100644 --- a/src/d/actor/d_a_alink_iceleaf.inc +++ b/src/d/actor/d_a_alink_iceleaf.inc @@ -18,7 +18,8 @@ static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* i_data) { } bool daAlink_c::checkSnowCode() const { - return mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW; + return mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || + mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW; } bool daAlink_c::checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo) { @@ -27,7 +28,8 @@ bool daAlink_c::checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo) { } bool daAlink_c::checkBoardRestart() { - return (mRideStatus == 0 && mRideAcKeep.getActor() != NULL) && fopAcM_GetName(mRideAcKeep.getActor()) == PROC_Obj_IceLeaf; + return (mRideStatus == 0 && mRideAcKeep.getActor() != NULL) && + fopAcM_GetName(mRideAcKeep.getActor()) == PROC_Obj_IceLeaf; } int daAlink_c::boardCommon(BOOL i_canMove) { @@ -47,7 +49,9 @@ int daAlink_c::boardCommon(BOOL i_canMove) { s16 sp8 = current.angle.y + 0x8000; for (int i = 0; i < 3; i++) { - if (mAcchCir[i].ChkWallHit() && cLib_distanceAngleS(sp8, mAcchCir[i].GetWallAngleY()) <= 0x2000 && mNormalSpeed > 30.0f) { + if (mAcchCir[i].ChkWallHit() && + cLib_distanceAngleS(sp8, mAcchCir[i].GetWallAngleY()) <= 0x2000 && + mNormalSpeed > 30.0f) { setJumpMode(); return procCoLargeDamageInit(-4, TRUE, 0, 0, NULL, 0); } @@ -110,12 +114,22 @@ int daAlink_c::boardCommon(BOOL i_canMove) { var_f30 = (temp_f29 * mNormalSpeed) / 5.0f; } - if (checkZeroSpeedF() && temp_r26 > 0x7000 && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2)) { - if (mProcVar3.field_0x300e <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.ChkGroundHit()) { + if (checkZeroSpeedF() && + temp_r26 > 0x7000 && + mProcID == PROC_BOARD_WAIT && + !checkModeFlg(2)) { + if (mProcVar3.field_0x300e <= l_boardSlopeAngleMin && + checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && + mLinkAcch.ChkGroundHit()) { return procBoardTurnInit(); } } - } else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) { + } else if (temp_r26 < 0x2000 && + field_0x2f8c == 0xB && + mProcID == PROC_BOARD_WAIT && + !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && + (mProcVar3.field_0x300e < field_0x3122) && + (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) { if (mNormalSpeed <= mpHIO->mItem.mBoard.m.mMaxPushSpeed) { return procBoardRowInit(); } @@ -160,7 +174,10 @@ int daAlink_c::boardCommon(BOOL i_canMove) { offModeFlg(2); speed.y = 0.0f; } else { - if (mProcVar3.field_0x300e > 910.0f && (mProcID != PROC_BOARD_ROW || !(mProcVar3.field_0x300e < 2000.0f))) { + if (mProcVar3.field_0x300e > l_boardSlopeAngleMin && + (mProcID != PROC_BOARD_ROW || !(mProcVar3.field_0x300e < l_boardSlopeRowAngleMin))) { + f32 temp_f27; + f32 temp_f26; f32 var_f25 = (f32)mProcVar3.field_0x300e / (f32)field_0x3122; if (var_f25 > 1.0f) { var_f25 = 1.0f; @@ -176,8 +193,8 @@ int daAlink_c::boardCommon(BOOL i_canMove) { var_f31 *= cM_fsin(1.5707964f * var_f25); if (var_f31 > 0.1f) { - f32 temp_f27 = (var_f31 * cM_ssin(var_r27)) + (mNormalSpeed * cM_ssin(shape_angle.y)); - f32 temp_f26 = (var_f31 * cM_scos(var_r27)) + (mNormalSpeed * cM_scos(shape_angle.y)); + temp_f27 = (var_f31 * cM_ssin(var_r27)) + (mNormalSpeed * cM_ssin(shape_angle.y)); + temp_f26 = (var_f31 * cM_scos(var_r27)) + (mNormalSpeed * cM_scos(shape_angle.y)); mNormalSpeed = JMAFastSqrt((temp_f27 * temp_f27) + (temp_f26 * temp_f26)); if (mNormalSpeed > mMaxSpeed) { diff --git a/src/d/actor/d_a_alink_ironball.inc b/src/d/actor/d_a_alink_ironball.inc index 76eb232c22..c0c4d6508a 100644 --- a/src/d/actor/d_a_alink_ironball.inc +++ b/src/d/actor/d_a_alink_ironball.inc @@ -213,6 +213,11 @@ void daAlink_c::setIronBallChainPos() { int sp38; int sp34; + f32 var_f30; + f32 var_f31; + f32 var_f29; + f32 var_f28; + f32 var_f27; if (mItemVar0.field_0x3018 == 2) { var_r29 = mIronBallChainPos + 1; var_r27 = var_r29 - 1; @@ -293,20 +298,20 @@ void daAlink_c::setIronBallChainPos() { daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (mItemVar0.field_0x3018 == 1) { - f32 temp_f25 = framectrl->getEnd() - 13.0f; - f32 temp_f29 = (framectrl->getFrame() - 13.0f) / temp_f25; - s16 sp12 = -16384.0f - (14336.0f * temp_f29); + var_f29 = (framectrl->getFrame() - 13.0f) / (framectrl->getEnd() - 13.0f); + s16 sp12 = -16384.0f - (14336.0f * var_f29); mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0); mDoMtx_stack_c::YrotM(sp12); mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp298); - sp298 *= 15.0f * (1.0f + temp_f29); + sp298 *= 15.0f * (1.0f + var_f29); sp38 = 1000; } else if (mItemVar0.field_0x3018 == 4) { Vec sp268 = {0.0f, 0.0f, 0.0f}; sp268.y = mpHIO->mItem.mIronBall.m.mThrowChainAccelY; - sp268.z = mpHIO->mItem.mIronBall.m.mThrowChainAccelZ; + f32 throwAccelZ = mpHIO->mItem.mIronBall.m.mThrowChainAccelZ; + sp268.z = throwAccelZ; mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0); mDoMtx_stack_c::multVec(&sp268, &sp298); @@ -355,10 +360,8 @@ void daAlink_c::setIronBallChainPos() { sp2A4 += sp298; } - s16 temp_r25 = sp2A4.atan2sX_Z(); - mIronBallChainAngle->set(sp2A4.atan2sY_XZ(), temp_r25, 0); + mIronBallChainAngle->set(sp2A4.atan2sY_XZ(), sp2A4.atan2sX_Z(), 0); } else { - f32 var_f30; if (mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5) { var_f30 = mpHIO->mItem.mIronBall.m.mThrowChainGravity; } else { @@ -384,9 +387,9 @@ void daAlink_c::setIronBallChainPos() { BOOL sp2C = ((mItemVar0.field_0x3018 == 0 && checkUnderMove1BckNoArc(ANM_IRONBALL_WALK)) && mNowAnmPackUnder[1].getRatio() > 0.8f) && (mUnderFrameCtrl[1].getFrame() >= 24.0f || mUnderFrameCtrl[1].getFrame() <= 3.0f); - f32 temp_f31 = 5.0f * (5.0f * (mNowAnmPackUnder[1].getRatio() - 0.8f)); - f32 temp_f28 = temp_f31 * cM_scos(shape_angle.y); - temp_f31 *= cM_ssin(shape_angle.y); + var_f31 = 5.0f * (5.0f * (mNowAnmPackUnder[1].getRatio() - 0.8f)); + var_f28 = var_f31 * cM_scos(shape_angle.y); + var_f31 *= cM_ssin(shape_angle.y); for (i = mItemMode; i > 0; i--, var_r29--, var_r26--) { sp28C = *var_r29; @@ -396,8 +399,8 @@ void daAlink_c::setIronBallChainPos() { } else { sp2A4 = (*var_r29 - *var_r27) + *var_r26; if (sp2C) { - sp2A4.x += temp_f31; - sp2A4.z += temp_f28; + sp2A4.x += var_f31; + sp2A4.z += var_f28; } sp2A4.y += var_f30; @@ -421,10 +424,10 @@ void daAlink_c::setIronBallChainPos() { s16 sp10; s16 spE = mIronBallChainAngle->z + 0x3000; - for (i = 0; i < mItemMode; i++, sp3C++, var_r29++, spE += 0x3000) { + for (i = 0; i < mItemMode; i++, sp3C++, var_r29++, ANGLE_ADD_2(spE, 0x3000)) { sp2A4 = (*var_r27 - *var_r29); - f32 var_f27 = sp2A4.absXZ(); + var_f27 = sp2A4.absXZ(); if (var_f27 < 1.0f) { sp10 = sp3C[-1].y; } else { @@ -721,7 +724,7 @@ void daAlink_c::setIronBallPos() { } if (mItemMode > 6) { - mItemMode -= var_r22; + ANGLE_SUB_2(mItemMode, var_r22); if (mItemMode <= 6) { mItemVar0.field_0x3018 = 8; } @@ -749,7 +752,7 @@ void daAlink_c::setIronBallPos() { mDoMtx_stack_c::multVec(&ironBallPosVec, mIronBallChainPos); if (mItemMode > 6) { - mItemMode -= 10; + mItemMode -= (s16)10; if (mItemMode < 6) { mItemMode = 6; } diff --git a/src/d/actor/d_a_alink_sumou.inc b/src/d/actor/d_a_alink_sumou.inc index 7e40b91cb5..836b1b29de 100644 --- a/src/d/actor/d_a_alink_sumou.inc +++ b/src/d/actor/d_a_alink_sumou.inc @@ -374,7 +374,7 @@ int daAlink_c::procSumouSideMove() { f32 var_f1; if (checkInputOnR() && temp_r30_2 > 0x800 && temp_r30_2 < 0x7800) { if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; if (field_0x2f98 == 3) { diff --git a/src/d/actor/d_a_alink_swim.inc b/src/d/actor/d_a_alink_swim.inc index 986f3336a3..857a3693f6 100644 --- a/src/d/actor/d_a_alink_swim.inc +++ b/src/d/actor/d_a_alink_swim.inc @@ -254,7 +254,7 @@ void daAlink_c::setSpeedAndAngleSwim() { if (checkInputOnR()) { if (getDirectionFromCurrentAngle() == DIR_BACKWARD) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; } @@ -1413,12 +1413,13 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* i_hitObj) { dmg_vec->z * var_f29 + dmg_vec->x * var_f30); mProcVar0.field_0x3008 = - cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle, - (s16)mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle); + cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), + -mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle, + mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle); - mProcVar1.field_0x300a = cLib_minMaxLimit( + mProcVar1.field_0x300a = cLib_minMaxLimit( cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)), - (s16)-mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle, (s16)mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle); + -mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle); int dir = getDirectionFromAngle(cM_atan2s(-sp24.x, -sp24.z)); if (bvar4) { diff --git a/src/d/actor/d_a_alink_swindow.inc b/src/d/actor/d_a_alink_swindow.inc index d990f8a9e1..63d4765864 100644 --- a/src/d/actor/d_a_alink_swindow.inc +++ b/src/d/actor/d_a_alink_swindow.inc @@ -272,6 +272,7 @@ void daAlink_c::initStatusWindow() { JUT_ASSERT(437, tmpBuffer); JKRReadIdxResource(tmpBuffer, 0x400, btpResIdx, dComIfGp_getAnmArchive()); + // this should call J3DAnmLoaderDataBase::load(const void*) but it breaks retail J3DAnmTexPattern* btp = (J3DAnmTexPattern*)J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); btp->setFrame(0.0f); btp->searchUpdateMaterialID(field_0x06c0); @@ -281,6 +282,7 @@ void daAlink_c::initStatusWindow() { JUT_ASSERT(449, tmpBuffer); JKRReadIdxResource(tmpBuffer, 0x400, btkResIdx, dComIfGp_getAnmArchive()); + // this should call J3DAnmLoaderDataBase::load(const void*) but it breaks retail J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); btk->setFrame(0.0f); btk->searchUpdateMaterialID(field_0x06c0); diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc index 6805311b9e..bc08d64039 100644 --- a/src/d/actor/d_a_alink_wolf.inc +++ b/src/d/actor/d_a_alink_wolf.inc @@ -722,7 +722,7 @@ void daAlink_c::setSpeedAndAngleWolf() { var_r4 = mMoveAngle; } - cLib_addCalcAngleS(&shape_angle.y, var_r4, turn_rate, turn_max * 2, turn_min * 2); + cLib_addCalcAngleS(&shape_angle.y, var_r4, turn_rate, (s16)turn_max * 2, (s16)turn_min * 2); int temp_r3 = (s16)(temp_r26 - current.angle.y) * (s16)(shape_angle.y - current.angle.y); if (temp_r3 <= 0 && temp_r3 >= -0x1000000) { @@ -766,7 +766,7 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { if (getDirectionFromCurrentAngle() == DIR_BACKWARD && (field_0x2f98 == 0 || field_0x2f98 == 1)) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; if (checkWolfAtnMoveBack((s16)(current.angle.y - shape_angle.y))) { @@ -816,7 +816,7 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { } cLib_addCalcAngleS(&shape_angle.y, var_r26, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleRate, - turn_max * 2, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMin * 2); + (s16)turn_max * 2, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMin * 2); } setNormalSpeedF(speed, deceleration); @@ -839,19 +839,9 @@ BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM i_anm) const } void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { - f32 sp8; - if (mGroundCode == 8) { - sp8 = 1.0f; - } else { - sp8 = cM_scos(field_0x2ff0); - } - - f32 var_f31; - f32 temp_f30 = fabsf(mNormalSpeed * sp8) / mMaxSpeed; - - daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[1]; - + f32 temp_f30; + daPy_frameCtrl_c* framectrl0; + daPy_frameCtrl_c* framectrl1; f32 idleAnmSpeed; f32 walkAnmSpeed; f32 jogAnmSpeed; @@ -862,6 +852,21 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { f32 jogToRunRate; f32 walkRunMorf; f32 runAnmMinBlendRate; + f32 spC; + + f32 sp8; + if (mGroundCode == 8) { + sp8 = 1.0f; + } else { + sp8 = cM_scos(field_0x2ff0); + } + + f32 var_f31; + temp_f30 = fabsf(mNormalSpeed * sp8) / mMaxSpeed; + + framectrl0 = &mUnderFrameCtrl[0]; + framectrl1 = &mUnderFrameCtrl[1]; + if (checkWolfDashMode()) { walkToJogRate = mpHIO->mWolf.mWlMove.m.mWalkToBriskWalkRate; walkRunMorf = mpHIO->mWolf.mWlMove.m.mWalkRunInterpolation; @@ -986,7 +991,6 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { var_f31 = 1.0f; } - f32 spC; if (checkNoResetFlg1(FLG1_DASH_MODE)) { if (checkWolfSlowDash()) { spC = mpHIO->mWolf.mWlMove.m.mADashQuickRunASpeedSlow; @@ -1075,7 +1079,7 @@ void daAlink_c::setWolfAtnMoveDirection() { } } else if (mProcID != PROC_WOLF_ROLL_ATTACK_MOVE) { if (field_0x2f98 == 1) { - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mNormalSpeed *= -1.0f; } @@ -1155,20 +1159,12 @@ void daAlink_c::setBlendWolfAtnMoveAnime(f32 param_0) { void daAlink_c::setBlendWolfAtnBackMoveAnime(f32 param_0) { mMaxSpeed = mpHIO->mWolf.mWlAtnMove.m.mRearMaxSpeed; - f32 var_f28; - if (mGroundCode == 8) { - var_f28 = 1.0f; - } else { - var_f28 = cM_scos(field_0x2ff0); - } - - f32 temp_f31 = fabsf(mNormalSpeed * var_f28) / mMaxSpeed; - f32 var_f30; + f32 var_f31 = fabsf(mNormalSpeed * (mGroundCode == 8 ? 1.0f : cM_scos(field_0x2ff0))) / mMaxSpeed; field_0x2fc1 = 3; - if (temp_f31 < mpHIO->mWolf.mWlAtnMove.m.mRearWalkChangeRate) { - f32 temp_f29 = temp_f31 / mpHIO->mWolf.mWlAtnMove.m.mRearWalkChangeRate; + if (var_f31 < mpHIO->mWolf.mWlAtnMove.m.mRearWalkChangeRate) { + f32 var_f29 = var_f31 / mpHIO->mWolf.mWlAtnMove.m.mRearWalkChangeRate; int var_r29; if (checkModeFlg(1)) { @@ -1178,6 +1174,7 @@ void daAlink_c::setBlendWolfAtnBackMoveAnime(f32 param_0) { } daAlink_WANM var_r28; + f32 var_f30; if (checkWolfAtnWait()) { var_r28 = WANM_ATN; var_f30 = mpHIO->mWolf.mWlMove.m.mGazeIdleAnmSpeed; @@ -1186,7 +1183,7 @@ void daAlink_c::setBlendWolfAtnBackMoveAnime(f32 param_0) { var_f30 = mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed; } - setDoubleAnimeWolf(temp_f29, var_f30, mpHIO->mWolf.mWlAtnMove.m.mRearWalkAnmSpeed, var_r28, + setDoubleAnimeWolf(var_f29, var_f30, mpHIO->mWolf.mWlAtnMove.m.mRearWalkAnmSpeed, var_r28, WANM_ATN_LOCK_WALK_BACK, var_r29, param_0); } else { setDoubleAnimeWolf(1.0f, mpHIO->mWolf.mWlAtnMove.m.mRearWalkAnmSpeed, @@ -1274,7 +1271,7 @@ int daAlink_c::setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, // "Is Adult Link but setting Wolf animation\n" OS_REPORT("リンクなのに狼アニメ設定\n"); JUT_ASSERT(2214, FALSE); - } + } J3DAnmTransform* var_r30 = getAnimeResource(&mUnderAnmHeap[0], m_wlAnmDataTable[i_anmID].m_bckID, 0x10800); if (var_r30 == NULL) { @@ -1688,7 +1685,7 @@ void daAlink_c::wolfBgCheck() { if (var_r28 != 0 || var_r25 != 0) { onNoResetFlg1(FLG1_UNK_20000000); - + if (var_r28 != 0 && var_r25 != 0) { if (sp20.abs2() > sp14.abs2()) { sp8 = sp20; @@ -1819,8 +1816,9 @@ void daAlink_c::setWolfFootMatrix() { daAlink_footData_c* footData = mFootData1; int i, j; + int var_r31; for (i = 0; i < 2; i++, footData++) { - int var_r31 = fFootJoint[i]; + var_r31 = fFootJoint[i]; for (j = 0; j < 3; j++, var_r31++) { cMtx_copy(mpLinkModel->getAnmMtx(var_r31), footData->field_0x14[j]); if (j == 1) { @@ -1831,9 +1829,9 @@ void daAlink_c::setWolfFootMatrix() { footData = mFootData2; - for (int i = 0; i < 2; i++, footData++) { - int var_r31 = bFootJoint[i]; - for (int j = 0; j < 3; j++, var_r31++) { + for (i = 0; i < 2; i++, footData++) { + var_r31 = bFootJoint[i]; + for (j = 0; j < 3; j++, var_r31++) { cMtx_copy(mpLinkModel->getAnmMtx(var_r31), footData->field_0x14[j]); if (j == 0) { var_r31++; @@ -1841,64 +1839,66 @@ void daAlink_c::setWolfFootMatrix() { } } - if (field_0x2060->getOldFrameFlg()) { - cXyz sp40[4]; - cXyz sp34(0.0f, 0.0f, 0.0f); - cXyz sp28; + if (!field_0x2060->getOldFrameFlg()) { + return; + } - footData = mFootData1; + cXyz sp40[4]; + cXyz sp34(0.0f, 0.0f, 0.0f); + cXyz sp28; - for (i = 0; i < 2; i++, footData++) { - int var_r31 = fFootJoint[i]; - for (j = 0; j < 4; j++, var_r31++) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); - } + footData = mFootData1; - int temp_r31 = fFootJoint[i]; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, NULL); - - sp34.x = sp40[0].abs(sp40[1]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); - - sp34.x = sp40[1].abs(sp40[2]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); - - sp34.x = sp40[2].abs(sp40[3]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x2, 0, 0, 0, &sp28); + for (i = 0; i < 2; i++, footData++) { + var_r31 = fFootJoint[i]; + for (j = 0; j < 4; j++, var_r31++) { + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); } - footData = mFootData2; + var_r31 = fFootJoint[i]; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x6, 0, 0, 0, NULL); - for (i = 0; i < 2; i++, footData++) { - int var_r31 = bFootJoint[i]; - for (j = 0; j < 4; j++, var_r31++) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); - } + sp34.x = sp40[0].abs(sp40[1]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x4, 0, 0, 0, &sp28); - int temp_r31 = bFootJoint[i]; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, NULL); - - sp34.x = sp40[0].abs(sp40[1]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, &sp28); + sp34.x = sp40[1].abs(sp40[2]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x4, 0, 0, 0, &sp28); - sp34.x = sp40[1].abs(sp40[2]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); + sp34.x = sp40[2].abs(sp40[3]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x2, 0, 0, 0, &sp28); + } - sp34.x = sp40[2].abs(sp40[3]); - mDoMtx_stack_c::multVec(&sp34, &sp28); - temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x2, 0, 0, 0, &sp28); + footData = mFootData2; + + for (i = 0; i < 2; i++, footData++) { + var_r31 = bFootJoint[i]; + for (j = 0; j < 4; j++, var_r31++) { + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); } + + var_r31 = bFootJoint[i]; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x6, 0, 0, 0, NULL); + + sp34.x = sp40[0].abs(sp40[1]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x6, 0, 0, 0, &sp28); + + sp34.x = sp40[1].abs(sp40[2]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x4, 0, 0, 0, &sp28); + + sp34.x = sp40[2].abs(sp40[3]); + mDoMtx_stack_c::multVec(&sp34, &sp28); + var_r31++; + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(var_r31), footData->field_0x2, 0, 0, 0, &sp28); } } @@ -2039,7 +2039,7 @@ void daAlink_c::wolfFootBgCheck() { } if (temp_f30 > 0.0f || sp30) { - if (!setLegAngle(temp_f30, footData, &sp58[i][j], &sp50[i][j], 1)) { + if (!setLegAngle(temp_f30, footData, &sp58[i][j], &sp50[i][j], 1)) { sp58[i][j] = 0; sp50[i][j] = 0; } @@ -2051,7 +2051,7 @@ void daAlink_c::wolfFootBgCheck() { cLib_addCalcAngleS(&footData->field_0x6, sp58[i][j], 2, 0x1800, 0x10); cLib_addCalcAngleS(&footData->field_0x4, sp50[i][j], 2, 0x1800, 0x10); - + s16 spE; if (mProcID == PROC_WOLF_SLIDE_READY) { spE = shape_angle.x; @@ -2180,6 +2180,8 @@ f32 daAlink_c::setWolfWaitSlip() { void daAlink_c::checkWolfAtnDoCharge() {} void daAlink_c::setWolfChainPos() { + static const int dummy1 = 0; + static const int dummy2 = 0; static Vec const wolfChainBaseOffset = {22.0f, 0.0f, -12.0f}; static Vec const wolfChainVec = {0.0f, 0.0f, -9.0f}; @@ -2228,7 +2230,7 @@ void daAlink_c::setWolfChainPos() { var_r29->y -= 9.0f; *var_r30 = *(var_r30 - 1); - var_r30->z += 0x4000; + ANGLE_ADD_2(var_r30->z, 0x4000); *var_r26 = cXyz::Zero; } @@ -2292,9 +2294,9 @@ void daAlink_c::setWolfChainPos() { sp8 = var_r30[-1].z - var_r30->z; if ((sp8 >= 0 && sp8 <= 0x4000) || sp8 < -0x4000) { - var_r30->z -= 0x2000; + ANGLE_SUB_2(var_r30->z, 0x2000); } else { - var_r30->z += 0x2000; + ANGLE_ADD_2(var_r30->z, 0x2000); } mDoMtx_stack_c::transS(sp78); @@ -2682,7 +2684,7 @@ int daAlink_c::procWolfDashReverseInit(int param_0) { } else { mNormalSpeed = mpHIO->mWolf.mWlMove.m.mDashReboundHorizontalSpeed; speed.y = mpHIO->mWolf.mWlMove.m.mDashReboundVerticalSpeed; - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); mProcVar2.field_0x300c = 0; } @@ -3888,19 +3890,19 @@ int daAlink_c::procWolfHowlDemoInit() { sp8.z = sp14.z - var_f30; if (!commonLineCheck(&sp14, &sp8)) { - shape_angle.y += 0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); } else { sp8.x = sp14.x + var_f30; sp8.z = sp14.z - var_f31; if (!commonLineCheck(&sp14, &sp8)) { - shape_angle.y += 0x4000; + ANGLE_ADD_2(shape_angle.y, 0x4000); } else { sp8.x = sp14.x - var_f30; sp8.z = sp14.z + var_f31; if (!commonLineCheck(&sp14, &sp8)) { - shape_angle.y -= 0x4000; + ANGLE_SUB_2(shape_angle.y, 0x4000); } } } @@ -4567,10 +4569,10 @@ int daAlink_c::procWolfRopeHangInit(int param_0) { mProcVar2.field_0x300c = 0; if (param_0 == 2) { - shape_angle.y -= 0x4000; + ANGLE_SUB_2(shape_angle.y, 0x4000); mProcVar4.field_0x3010 = -mProcVar4.field_0x3010; } else { - shape_angle.y += 0x4000; + ANGLE_ADD(shape_angle.y, 0x4000); } wolfRopeSwingInc(50.0f); @@ -4597,12 +4599,12 @@ int daAlink_c::procWolfRopeHang() { field_0x2060->getOldFrameTransInfo(0)->mTranslate.z -= 15.0f; if (field_0x3198 == 2) { - shape_angle.y += 0x4000; + ANGLE_ADD_2(shape_angle.y, 0x4000); setOldRootQuaternion(0, -0x4000, 0); shape_angle.x = -shape_angle.z; return procWolfRopeMoveInit(0, 0); } else { - shape_angle.y -= 0x4000; + ANGLE_SUB_2(shape_angle.y, 0x4000); setOldRootQuaternion(0, 0x4000, 0); shape_angle.x = shape_angle.z; return procWolfRopeMoveInit(1, 0); @@ -5292,11 +5294,11 @@ int daAlink_c::procWolfGiantPuzzle() { field_0x3478 = mMaxSpeed; } } else if (direction == DIR_LEFT) { - mProcVar2.mPuzzleAimAngle += 0x4000; + ANGLE_ADD_2(mProcVar2.mPuzzleAimAngle, 0x4000); } else if (direction == DIR_RIGHT) { - mProcVar2.mPuzzleAimAngle -= 0x4000; + ANGLE_SUB_2(mProcVar2.mPuzzleAimAngle, 0x4000); } else { - mProcVar2.mPuzzleAimAngle += 0x8000; + ANGLE_ADD_2(mProcVar2.mPuzzleAimAngle, 0x8000); } } } @@ -6028,7 +6030,8 @@ BOOL daAlink_c::checkMidnaDisappearMode() const { return mProcID == PROC_WOLF_DIG_THROUGH || (checkWolf() && dComIfGp_checkPlayerStatus0(0, 0x8000000) && !dComIfGp_checkPlayerStatus0(0, 0x10) && - (mTargetedActor == NULL || !(mTargetedActor->attention_info.flags & fopAc_AttnFlag_UNK_0x800000))); + !(mTargetedActor != NULL && + mTargetedActor->attention_info.flags & fopAc_AttnFlag_UNK_0x800000)); } BOOL daAlink_c::checkWolfLieContinue(int param_0) { @@ -6271,7 +6274,7 @@ int daAlink_c::procWolfLieMove() { } else { spA = mMoveAngle + 0x8000; } - + cLib_addCalcAngleS(&shape_angle.y, spA, mpHIO->mWolf.mWlLie.m.mProneTurnRate, mpHIO->mWolf.mWlLie.m.mProneTurnMax, mpHIO->mWolf.mWlLie.m.mProneTurnMin); } @@ -6379,7 +6382,7 @@ int daAlink_c::procWolfLieAutoMove() { } else { int var_r28 = 1; if (mProcVar1.field_0x300a > 0) { - mProcVar1.field_0x300a -= 1; + mProcVar1.field_0x300a--; } if (mProcVar3.field_0x300e != 0) { @@ -7202,7 +7205,7 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { f32 attack_init_speed; f32 var_f30; f32 var_f29; - + if (param_0 == 1) { setCutType(CUT_TYPE_WOLF_JUMP); setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_1, 3, dCcD_SE_WOLF_BITE, 3, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackHeight); @@ -7271,7 +7274,7 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { if (mProcVar0.field_0x3008 != 0) { var_f30 -= 10.0f; } - + if (var_f30 > 0.0f) { var_f29 = JMAFastSqrt((2.0f * var_f30) / -gravity); } else { @@ -7286,6 +7289,8 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { mNormalSpeed = attack_init_speed; speed.y = min_vertical_speed; } + + (void)0; } } else { mNormalSpeed = attack_init_speed; @@ -7548,7 +7553,7 @@ int daAlink_c::procWolfJumpAttackNormalLand() { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlAttack.mWlAtLand.m.mNormalLandingAnm.mCancelFrame) { if (mProcVar2.field_0x300c != 0) { - shape_angle.y -= -0x8000; + ANGLE_ADD_2(shape_angle.y, 0x8000); return procWolfJumpAttackInit(3); } @@ -7565,7 +7570,7 @@ int daAlink_c::procWolfWaitAttackInit(int i_attackType) { /* 0x0 */ daAlink_c::daAlink_WANM m_anmID; /* 0x4 */ u8 m_cutType; }; // Size: 0x8 - + static const daAlink_WCutParamTbl dataTabl[] = { { daAlink_c::WANM_ATTACK_B_LEFT, @@ -8105,7 +8110,7 @@ int daAlink_c::procWolfLockAttackTurn() { if (mWolfLockNum != 0) { s16 target_angle = cLib_targetAngleY(¤t.pos, &mWolfLockAcKeep[0].getActor()->eyePos); if (mProcVar2.field_0x300c != 0) { - target_angle += 0x8000; + ANGLE_ADD_2(target_angle, 0x8000); } cLib_addCalcAngleS(&shape_angle.y, target_angle, 2, 0x2000, 0x800); @@ -8135,7 +8140,7 @@ int daAlink_c::procWolfAttackReverseInit() { mNormalSpeed = mpHIO->mWolf.mWlAttack.m.mJumpBackSpeedH; speed.y = mpHIO->mWolf.mWlAttack.m.mJumpBackSpeedV; - current.angle.y += 0x8000; + ANGLE_ADD_2(current.angle.y, 0x8000); dComIfGp_getVibration().StartShock(5, 15, cXyz(0.0f, 1.0f, 0.0f)); dKy_Sound_set(current.pos, 100, fopAcM_GetID(this), 5); @@ -8808,7 +8813,7 @@ int daAlink_c::procWolfChainReady() { shape_angle.y = cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()); current.angle.y = shape_angle.y; mProcVar3.field_0x300e = 1; - + cXyz vec1 = chain->getJumpAimPos() - field_0x34e0; f32 dist_xz = vec1.absXZ(); f32 dist = vec1.abs(); @@ -8998,7 +9003,7 @@ int daAlink_c::procWolfDigInit() { s16 var_r27 = fopAcM_searchActorAngleY(this, var_r29); if (abs((s16)(var_r27 - shape_angle.y)) > 0x4000) { - var_r27 += 0x8000; + ANGLE_ADD_2(var_r27, 0x8000); } shape_angle.y = var_r27; @@ -9132,7 +9137,7 @@ int daAlink_c::procWolfDig() { ((daObjDigpl_c*)dig_actor)->onDigFlg(); field_0x280c.clearData(); } - + if (frame_ctrl->getFrame() >= 11.0f) { if (frame_ctrl->getFrame() <= 41.0f) { if (mProcVar0.field_0x3008 == 0) { @@ -9153,6 +9158,8 @@ int daAlink_c::procWolfDig() { } int daAlink_c::procWolfDigThroughInit(int param_0) { + static const int dummy = 0; + static const u16 snowID[] = { dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_A), dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_B),