#ifndef D_A_D_A_ALINK_H #define D_A_D_A_ALINK_H #include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" #include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "Z2AudioLib/Z2WolfHowlMgr.h" #include "d/actor/d_a_player.h" #include "d/actor/d_a_tag_mmsg.h" #include "d/d_eye_hl.h" #include "d/d_jnt_col.h" #include "d/d_msg_flow.h" #include "d/d_particle_copoly.h" #include "d/d_save.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_camera_mng.h" #include "res/Object/AlAnm.h" #include "res/Object/Always.h" class J2DAnmColorKey; class J2DAnmTransformKey; class J2DScreen; class J2DPane; class J2DAnmBase; class J3DAnmTevRegKey; class dDemo_actor_c; 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() {} BOOL create(); void update(); virtual void draw(); virtual ~daAlink_lockCursor_c() {} void initFrame() { field_0x4 = 0; mLockCursorAngle = 4.0f; field_0x30 = 0.0f; } void setPos(f32 i_posX, f32 i_posY) { mPosX = i_posX; mPosY = i_posY; } public: /* 0x04 */ u8 field_0x4; /* 0x05 */ u8 field_0x5[3]; /* 0x08 */ J2DScreen* mScrn; /* 0x0C */ J2DPane* field_0xc; /* 0x10 */ J2DPane* mCursor0; /* 0x14 */ J2DPane* mCursor1; /* 0x18 */ J2DPane* mCursor2; /* 0x1C */ J2DAnmTevRegKey* field_0x1c; /* 0x20 */ J2DAnmTevRegKey* field_0x20; /* 0x24 */ J2DAnmColorKey* field_0x24; /* 0x28 */ J2DAnmTransformKey* field_0x28; /* 0x2C */ f32 mLockCursorAngle; /* 0x30 */ f32 field_0x30; /* 0x34 */ f32 mPosX; /* 0x38 */ f32 mPosY; }; class daAlink_sight_c : public daPy_sightPacket_c { public: daAlink_sight_c() {} BOOL create(); void onLockFlg(); virtual void draw(); virtual ~daAlink_sight_c() {} void update() { mLockCursor.update(); } u8 getLockFlg() { return mLockFlag; } void offLockFlg() { mLockFlag = false; } /* 0x4C */ u8 mLockFlag; /* 0x4D */ u8 field_0x4d[3]; /* 0x50 */ daAlink_lockCursor_c mLockCursor; }; class daAlink_footData_c { public: /* 0x00 */ u8 field_0x0; /* 0x01 */ u8 field_0x1; /* 0x02 */ s16 field_0x2; /* 0x04 */ s16 field_0x4; /* 0x06 */ s16 field_0x6; /* 0x08 */ cXyz field_0x8; /* 0x14 */ Mtx field_0x14[3]; }; // Size: 0xA4 STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4); // this class is mostly a complete guess class daAlink_hsChainLight_c : public dKy_tevstr_c { public: GXLightObj* getLightObj() { return &mLightObj.mLightObj; } }; struct daAlink_BckData { /* 0x0 */ u16 m_underID; /* 0x2 */ u16 m_upperID; }; struct daAlink_FaceTexData { /* 0x0 */ u16 m_btpID; /* 0x2 */ u16 m_btkID; }; struct daAlink_AnmData { /* 0x0 */ daAlink_BckData m_bckData; /* 0x4 */ u8 m_handIndexL; /* 0x5 */ u8 m_handIndexR; /* 0x6 */ u16 m_faceTexID; /* 0x8 */ u16 m_faceBckID; /* 0xA */ u16 field_0xa; }; // Size: 0xC struct daAlink_WlAnmData { /* 0x0 */ u16 m_bckID; /* 0x2 */ u8 m_midnaAnm; /* 0x3 */ u8 m_voiceIdx; /* 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 == dItemNo_EMPTY_BOTTLE_e && 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 == dItemNo_NONE_e; } 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 == dItemNo_COPY_ROD_e; } 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 == dItemNo_BOOMERANG_e || 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 == dItemNo_COPY_ROD_e && 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 == dItemNo_COPY_ROD_e && 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 == dItemNo_JEWEL_ROD_e || mEquipItem == dItemNo_JEWEL_WORM_ROD_e) || mEquipItem == dItemNo_JEWEL_BEE_ROD_e; } bool checkFisingRodWorm() const { return mItemMode == dItemNo_WORM_e; } bool checkFisingRodBee() const { return mItemMode == dItemNo_BEE_CHILD_e; } 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 == dItemNo_IRONBALL_e; } 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; #if TARGET_PC void handleWolfHowl(); void handleQuickTransform(); bool checkGyroAimContext(); void onIronBallChainInterpCallback(); static const int IRON_BALL_CHAIN_COUNT = 102; cXyz mIBChainInterpPrevPos[IRON_BALL_CHAIN_COUNT]; cXyz mIBChainInterpCurrPos[IRON_BALL_CHAIN_COUNT]; csXyz mIBChainInterpPrevAngle[IRON_BALL_CHAIN_COUNT]; csXyz mIBChainInterpCurrAngle[IRON_BALL_CHAIN_COUNT]; cXyz mIBChainInterpPrevHandRoot; cXyz mIBChainInterpCurrHandRoot; bool mIBChainInterpPrevValid; bool mIBChainInterpCurrValid; #endif }; // Size: 0x385C class daAlinkHIO_data_c : public JORReflexible { public: #if DEBUG daAlinkHIO_data_c(); virtual ~daAlinkHIO_data_c(); void setStructData(char*); void checkDataSize(); void baseCopy(); void update(); #if DEBUG virtual void listenPropertyEvent(const JORPropertyEvent* event); #endif #endif public: #if DEBUG /* 0x04 */ int m_anm_num; /* 0x08 */ int m_u8_num; /* 0x0C */ int m_s16_num; /* 0x10 */ int m_f32_num; /* 0x14 */ int f14; /* 0x18 */ int f18; /* 0x1C */ int f1c; /* 0x20 */ u32 m_len; /* 0x24 */ void* mp_src_data; /* 0x28 */ void* mp_data; /* 0x2C */ const char* m_name_string; /* 0x30 */ daAlinkHIO_data_c* mpNext; #endif }; struct daAlinkHIO_basic_c1 { /* 0x00 */ bool mOneHitKill; /* 0x02 */ s16 mHeadMaxTurnHorizontal; /* 0x04 */ s16 mHeadMaxTurnUp; /* 0x06 */ s16 mHeadMaxTurnDown; /* 0x08 */ s16 field_0x08; /* 0x0A */ s16 mHotspringRecoverTime; /* 0x0C */ s16 mWiiCamSpeedV; /* 0x0E */ s16 mWiiCamSpeedH; /* 0x10 */ s16 mTransformBlockFarAngle; /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 mBasicInterpolation; /* 0x1C */ f32 mRotationASpeed; /* 0x20 */ f32 mStandingGuardInterpolation; /* 0x24 */ f32 mWaterSurfaceEffectHeight; /* 0x28 */ f32 mWolfWaterSurfaceEffectHeight; /* 0x2C */ f32 mMaxWindInfluenceDist; /* 0x30 */ f32 mNoWindInfluenceDist; /* 0x34 */ f32 mMaxWindSpeed; /* 0x38 */ f32 mLavaDeathDepth; /* 0x3C */ f32 mLinkToWolfCancelFrame; /* 0x40 */ f32 mWolfToLinkCancelFrame; /* 0x44 */ f32 mIndoorSpeedFactor; /* 0x48 */ f32 mSandSinkSpeed; /* 0x4C */ f32 mSandSurfaceSpeed; /* 0x50 */ f32 mTransformBlockNearDis; /* 0x54 */ f32 mTransformBlockFarDis; }; class daAlinkHIO_basic_c0 { public: static daAlinkHIO_basic_c1 const m; }; class daAlinkHIO_basic_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_basic_c(); ~daAlinkHIO_basic_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_basic_c1 m; #endif }; struct daAlinkHIO_anm_c { /* 0x00 */ s16 mEndFrame; /* 0x04 */ f32 mSpeed; /* 0x08 */ f32 mStartFrame; /* 0x0C */ f32 mInterpolation; /* 0x10 */ f32 mCancelFrame; }; // size: 0x14 class daAlinkHIO_move_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSlideAnm; /* 0x14 */ s16 mMaxTurnAngle; /* 0x16 */ s16 mMinTurnAngle; /* 0x18 */ s16 mTurnAngleRate; /* 0x1C */ f32 mWaitAnmSpeed; /* 0x20 */ f32 mWalkAnmSpeed; /* 0x24 */ f32 mRunAnmSpeed; /* 0x28 */ f32 mWalkChangeRate; /* 0x2C */ f32 mRunChangeRate; /* 0x30 */ f32 mMaxSpeed; /* 0x34 */ f32 mAcceleration; /* 0x38 */ f32 mDeceleration; /* 0x3C */ f32 mSlideThresholdSpeed; // speed needed to trigger a slide /* 0x40 */ f32 mSlideSpeed; /* 0x44 */ f32 mSlideDeceleration; /* 0x48 */ f32 mFootPositionRatio; /* 0x4C */ f32 mWaitBInterpolation; /* 0x50 */ f32 mMinWalkRate; /* 0x54 */ f32 mMinTiredWalkRate; }; // Size: 0x58 class daAlinkHIO_move_c0 { public: static daAlinkHIO_move_c1 const m; }; class daAlinkHIO_move_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_move_c(); ~daAlinkHIO_move_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_move_c1 m; #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; /* 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_noActAtnMove_c0 { public: static daAlinkHIO_noActAtnMove_c1 const m; }; class daAlinkHIO_noActAtnMove_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_noActAtnMove_c(); ~daAlinkHIO_noActAtnMove_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_noActAtnMove_c1 m; #endif }; class daAlinkHIO_frontRoll_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mRollAnm; /* 0x14 */ daAlinkHIO_anm_c mCrashAnm; /* 0x28 */ daAlinkHIO_anm_c mCrashHitAnm; // ? /* 0x3C */ s16 mCrashAngleThreshold; /* 0x3E */ s16 mTurnRate; /* 0x40 */ s16 mMaxTurnAngle; /* 0x42 */ s16 mTurnMinAngle; /* 0x44 */ f32 mInitSpeed; /* 0x48 */ f32 mSpeedRate; /* 0x4C */ f32 mMinSpeed; /* 0x50 */ f32 mCrashSpeedThreshold; /* 0x54 */ f32 mCrashInitF; /* 0x58 */ f32 mCrashEndF; /* 0x5C */ f32 mCrashSpeedH; /* 0x60 */ f32 mCrashSpeedV; /* 0x64 */ f32 mBootsAttackInitF; /* 0x68 */ f32 mBootsAttackEndF; /* 0x6C */ f32 mBootsAttackRadius; }; // Size: 0x70 class daAlinkHIO_frontRoll_c0 { public: static daAlinkHIO_frontRoll_c1 const m; }; class daAlinkHIO_frontRoll_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_frontRoll_c(); ~daAlinkHIO_frontRoll_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_frontRoll_c1 m; #endif }; class daAlinkHIO_backJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mBackflipAnm; /* 0x14 */ daAlinkHIO_anm_c mLandAnm; /* 0x28 */ f32 mBackflipSpeedH; /* 0x2C */ f32 mBackflipSpeedV; /* 0x30 */ f32 mFallHeight; /* 0x34 */ f32 mFallInterpolation; }; // Size: 0x38 class daAlinkHIO_backJump_c0 { public: static daAlinkHIO_backJump_c1 const m; }; class daAlinkHIO_backJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_backJump_c(); ~daAlinkHIO_backJump_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_backJump_c1 m; #endif }; class daAlinkHIO_sideStep_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSideJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mSideLandAnm; /* 0x28 */ daAlinkHIO_anm_c mBackJumpAnm; /* 0x3C */ daAlinkHIO_anm_c mBackLandAnm; /* 0x50 */ f32 mSideJumpSpeedH; /* 0x54 */ f32 mSideJumpSpeedV; /* 0x58 */ f32 mBackJumpSpeedH; /* 0x5C */ f32 mBackJumpSpeedV; /* 0x60 */ f32 mFallHeight; /* 0x64 */ f32 mFallInterpolation; }; // Size: 0x68 class daAlinkHIO_sideStep_c0 { public: static daAlinkHIO_sideStep_c1 const m; }; class daAlinkHIO_sideStep_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_sideStep_c(); ~daAlinkHIO_sideStep_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_sideStep_c1 m; #endif }; class daAlinkHIO_slide_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mForwardSlideAnm; /* 0x14 */ daAlinkHIO_anm_c mBackwardSlideAnm; /* 0x28 */ daAlinkHIO_anm_c mForwardLandAnm; /* 0x3C */ daAlinkHIO_anm_c mBackwardLandAnm; /* 0x50 */ f32 mMaxSpeed; /* 0x54 */ f32 mAcceleration; /* 0x58 */ f32 mSlideAngle; /* 0x5C */ f32 mClimbAngle; /* 0x60 */ f32 mClimbAnmMinSpeed; /* 0x64 */ f32 mMaxClimbSpeed; /* 0x68 */ f32 mLV2MinibossFloorSlideAngle; /* 0x6C */ f32 mLV2MinibossFloorWeakSlideAngle; /* 0x70 */ f32 mLV2MinibossFloorWeakSlideSpeed; /* 0x74 */ f32 mMaxClimbAnmSpeed; }; // Size: 0x78 class daAlinkHIO_slide_c0 { public: static daAlinkHIO_slide_c1 const m; }; class daAlinkHIO_slide_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_slide_c(); ~daAlinkHIO_slide_c() {} virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_slide_c1 m; #endif }; class daAlinkHIO_cutNormal_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ f32 mSpeed; /* 0x18 */ f32 mAttackStartFrame; /* 0x1C */ f32 mAttackEndFrame; }; // Size: 0x20 class daAlinkHIO_cutNmV_c0 { public: static daAlinkHIO_cutNormal_c1 const m; }; class daAlinkHIO_cutNmL_c0 { public: static daAlinkHIO_cutNormal_c1 const m; }; class daAlinkHIO_cutNmR_c0 { public: static daAlinkHIO_cutNormal_c1 const m; }; class daAlinkHIO_cutNmSL_c0 { public: static daAlinkHIO_cutNormal_c1 const m; }; class daAlinkHIO_cutNmSR_c0 { public: static daAlinkHIO_cutNormal_c1 const m; }; class daAlinkHIO_cutNormal_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutNormal_c(int, float); ~daAlinkHIO_cutNormal_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_cutNormal_c1 m; }; // Size: 0x58 class daAlinkHIO_cutFinish_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ s16 mStopTime; /* 0x16 */ s16 mComboStopTime; /* 0x18 */ f32 mSpeed; /* 0x1C */ f32 mAttackStartFrame; /* 0x20 */ f32 mAttackEndFrame; /* 0x24 */ f32 mComboCheckFrame; /* 0x28 */ f32 mComboStartFrame; }; // Size: 0x2C class daAlinkHIO_cutFnL_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFnV_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFnS_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFnSl_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFnSm_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFnR_c0 { public: static daAlinkHIO_cutFinish_c1 const m; }; class daAlinkHIO_cutFinish_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutFinish_c(int, float); ~daAlinkHIO_cutFinish_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_cutFinish_c1 m; }; class daAlinkHIO_cutFnJU_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ daAlinkHIO_anm_c mLandAnm; /* 0x28 */ s16 mStopTime; /* 0x2A */ s16 mComboStopTime; /* 0x2C */ f32 mSpeedH; /* 0x30 */ f32 mSpeedV; /* 0x34 */ f32 mAttackStartFrame; /* 0x38 */ f32 mAttackEndFrame; /* 0x3C */ f32 mComboCheckFrame; /* 0x40 */ f32 mComboStartFrame; /* 0x44 */ f32 mFallHeight; /* 0x48 */ f32 mFallInterpolation; /* 0x4C */ f32 mAttackRadius; /* 0x50 */ f32 mAttackOffset; }; // Size: 0x54 class daAlinkHIO_cutFnJU_c0 { public: static daAlinkHIO_cutFnJU_c1 const m; }; class daAlinkHIO_cutFnJU_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutFnJU_c(); ~daAlinkHIO_cutFnJU_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutFnJU_c1 m; #endif }; // Size: 0x88 class daAlinkHIO_cutDash_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ f32 mAttackStartFrame; /* 0x18 */ f32 mAttackEndFrame; }; // Size: 0x1C class daAlinkHIO_cutDaL_c0 { public: static daAlinkHIO_cutDash_c1 const m; }; class daAlinkHIO_cutDaR_c0 { public: static daAlinkHIO_cutDash_c1 const m; }; class daAlinkHIO_cutDaCharge_c0 { public: static daAlinkHIO_cutDash_c1 const m; }; class daAlinkHIO_cutDash_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutDash_c(int, float); ~daAlinkHIO_cutDash_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_cutDash_c1 m; }; class daAlinkHIO_cutJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ daAlinkHIO_anm_c mLandAnm; /* 0x28 */ f32 mBaseJumpSpeedH; /* 0x2C */ f32 mBaseJumpSpeedV; /* 0x30 */ f32 mAirJumpSpeedH; /* 0x34 */ f32 mAirJumpSpeedV; /* 0x38 */ f32 mStartAttackFrame; /* 0x3C */ f32 mEndAttackFrame; /* 0x40 */ f32 mJumpSpinDelay; }; // Size: 0x44 class daAlinkHIO_cutJump_c0 { public: static daAlinkHIO_cutJump_c1 const m; }; class daAlinkHIO_cutJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutJump_c(); ~daAlinkHIO_cutJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutJump_c1 m; #endif }; // Size: 0x78 class daAlinkHIO_cutTurn_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mRightTurnAnm; /* 0x14 */ daAlinkHIO_anm_c mChargeAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftTurnAnm; /* 0x3C */ s16 mStopTime; /* 0x3E */ s16 field_0x3E; /* 0x40 */ f32 mRightTurnInputStartFrame; /* 0x44 */ f32 mRightAttackStartFrame; /* 0x48 */ f32 mRightAttackEndFrame; /* 0x4C */ f32 mMoveFBAnmSpeed; /* 0x50 */ f32 mMoveFBInterpolation; /* 0x54 */ f32 mMoveLRAnmSpeed; /* 0x58 */ f32 mMoveLRInterpolation; /* 0x5C */ f32 mMaxSpeed; /* 0x60 */ f32 mChargeMoveAccel; /* 0x64 */ f32 mChargeMoveDecel; /* 0x68 */ f32 mSpeed; /* 0x6C */ f32 mRightComboStartFrame; /* 0x70 */ f32 mAttackRadius; /* 0x74 */ f32 mLeftTurnInputStartFrame; /* 0x78 */ f32 mLeftAttackStartFrame; /* 0x7C */ f32 mLeftAttackEndFrame; /* 0x80 */ f32 mLeftComboStartFrame; /* 0x84 */ f32 mAttackRadiusAccel; /* 0x88 */ f32 mLightAttackRadius; /* 0x8C */ f32 mLightAttackRadiusAccel; /* 0x90 */ f32 mLargeAttackRadius; /* 0x94 */ f32 mLargeAttackAccel; }; // Size: 0x98 class daAlinkHIO_cutTurn_c0 { public: static daAlinkHIO_cutTurn_c1 const m; }; class daAlinkHIO_cutTurn_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutTurn_c(); ~daAlinkHIO_cutTurn_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutTurn_c1 m; #endif }; // Size: 0xCC class daAlinkHIO_hoCut_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCutAnm; /* 0x14 */ f32 mAttackStartFrame; /* 0x18 */ f32 mAttackEndFrame; /* 0x1C */ f32 mAfterCutMorf; }; // Size: 0x20 class daAlinkHIO_hoCutLA_c0 { public: static daAlinkHIO_hoCut_c1 const m; }; class daAlinkHIO_hoCutLB_c0 { public: static daAlinkHIO_hoCut_c1 const m; }; class daAlinkHIO_hoCutRA_c0 { public: static daAlinkHIO_hoCut_c1 const m; }; class daAlinkHIO_hoCutRB_c0 { public: static daAlinkHIO_hoCut_c1 const m; }; class daAlinkHIO_hoCut_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_hoCut_c(int, float); ~daAlinkHIO_hoCut_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_hoCut_c1 m; }; // Size: 0x58 class daAlinkHIO_hoCutCharge_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mChargeAnm; /* 0x14 */ daAlinkHIO_anm_c mCutAnm; /* 0x28 */ daAlinkHIO_anm_c mSpinAnm; /* 0x3C */ s16 mCutStopTime; /* 0x3E */ s16 mSpinStopTime; /* 0x40 */ f32 mCutAttackStartFrame; /* 0x44 */ f32 mCutAttackEndFrame; /* 0x48 */ f32 mSpinAttackStartFrame; /* 0x4C */ f32 mSpinAttackEndFrame; /* 0x50 */ f32 mSpinAttackRadius; }; // Size: 0x54 class daAlinkHIO_hoCutCharge_c0 { public: static daAlinkHIO_hoCutCharge_c1 const m; }; class daAlinkHIO_hoCutCharge_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_hoCutCharge_c(); ~daAlinkHIO_hoCutCharge_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_hoCutCharge_c1 m; #endif }; // Size: 0x88 class daAlinkHIO_cutDown_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mFallAnm; /* 0x28 */ daAlinkHIO_anm_c mLandAnm; /* 0x3C */ daAlinkHIO_anm_c mMissAnm; /* 0x50 */ daAlinkHIO_anm_c mRecoverAnm; /* 0x64 */ s16 mSuccessStopTime; /* 0x66 */ s16 mFailStopTime; /* 0x68 */ f32 mRecoverSpeedH; /* 0x6C */ f32 mRecoverSpeedV; /* 0x70 */ f32 mSpeedV; }; // Size: 0x74 class daAlinkHIO_cutDown_c0 { public: static daAlinkHIO_cutDown_c1 const m; }; class daAlinkHIO_cutDown_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutDown_c(); ~daAlinkHIO_cutDown_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutDown_c1 m; #endif }; // Size: 0xA8 class daAlinkHIO_cutHead_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mCutAnm; /* 0x28 */ daAlinkHIO_anm_c mLandAnm; /* 0x3C */ f32 mGravity; /* 0x40 */ f32 mMaxHeight; /* 0x44 */ f32 mMaxDistance; /* 0x48 */ f32 mAddSpeedV; /* 0x4C */ f32 mAddSpeedH; /* 0x50 */ f32 mAttackStartFrame; /* 0x54 */ f32 mAttackEndFrame; /* 0x58 */ f32 mSwordRadius; /* 0x5C */ f32 mSwordLength; }; // Size: 0x60 class daAlinkHIO_cutHead_c0 { public: static daAlinkHIO_cutHead_c1 const m; }; class daAlinkHIO_cutHead_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutHead_c(); ~daAlinkHIO_cutHead_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutHead_c1 m; #endif }; // Size: 0x94 class daAlinkHIO_cutLargeJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mChargeAnm; /* 0x14 */ daAlinkHIO_anm_c mChargeMoveAnm; /* 0x28 */ daAlinkHIO_anm_c mCutAnm; /* 0x3C */ daAlinkHIO_anm_c mLandAnm; /* 0x50 */ f32 mCutSpeedH; /* 0x54 */ f32 mCutSpeedV; /* 0x58 */ f32 mJumpAttackStartFrame; /* 0x5C */ f32 mJumpAttackEndFrame; /* 0x60 */ f32 mCutInitFrame; /* 0x64 */ f32 mLandAttackInitFrame; /* 0x68 */ f32 mLandAttackEndFrame; /* 0x6C */ f32 mLandAttackRadius; /* 0x70 */ f32 mSpinSlashCheckFrame; }; // Size: 0x74 class daAlinkHIO_cutLargeJump_c0 { public: static daAlinkHIO_cutLargeJump_c1 const m; }; class daAlinkHIO_cutLargeJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cutLargeJump_c(); ~daAlinkHIO_cutLargeJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_cutLargeJump_c1 m; #endif }; // Size: 0xA8 class daAlinkHIO_cut_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; /* 0x14 */ daAlinkHIO_anm_c mUnequipAnm; /* 0x28 */ daAlinkHIO_anm_c mRecoilAnm; /* 0x3C */ daAlinkHIO_anm_c mStabAnm; /* 0x50 */ bool mForceHitCombo; /* 0x52 */ s16 mComboDuration; /* 0x54 */ s16 mBlurAlpha; /* 0x56 */ s16 mNormalSwingDuration; /* 0x58 */ s16 mDashBlurAlpha; /* 0x5A */ s16 mUnkTime; // might be related to flourish /* 0x5C */ s16 mFlourishTime; /* 0x5E */ s16 mUnkBodyDownwards; // ? /* 0x60 */ s16 mUnkBodyUpwards; // ? /* 0x62 */ s16 mSpinSlashWait; // ? maybe related to wii? /* 0x64 */ f32 mRecoilSpeed; /* 0x68 */ f32 mRecoilDeceleration; /* 0x6C */ f32 mFlourishAnmSpeed; /* 0x70 */ f32 mFlourishEndAnmSpeed; /* 0x74 */ f32 mSwordLength; /* 0x78 */ f32 mSwordRadius; /* 0x7C */ f32 mSwordLengthHorseback; /* 0x80 */ f32 mSwordRadiusHorseback; /* 0x84 */ f32 mRunCutLength; /* 0x88 */ f32 mRunCutRadius; /* 0x8C */ f32 mFastUnequipAnmSpeed; /* 0x90 */ f32 mSwordLengthHorsebackFight; /* 0x94 */ f32 mSwordRadiusHorsebackFight; /* 0x98 */ f32 mFlourishControlStartFrame; }; // Size: 0x9C class daAlinkHIO_cut_c0 { public: static daAlinkHIO_cutNmV_c0 const mCutVertical; static daAlinkHIO_cutNmL_c0 const mCutLeft; static daAlinkHIO_cutNmR_c0 const mCutRight; static daAlinkHIO_cutNmSL_c0 const mCutLeftStab; static daAlinkHIO_cutNmSR_c0 const mCutRightStab; static daAlinkHIO_cutFnL_c0 const mCutFinishLeft; static daAlinkHIO_cutFnV_c0 const mCutFinishVertical; static daAlinkHIO_cutFnS_c0 const mCutFinishStab; static daAlinkHIO_cutFnSl_c0 const mCutFinishSweep; static daAlinkHIO_cutFnSm_c0 const mCutFinishSlash; static daAlinkHIO_cutFnR_c0 const mCutFinishRight; static daAlinkHIO_cutFnJU_c0 const mCutFinishJumpUppercut; static daAlinkHIO_cutJump_c0 const mCutJump; static daAlinkHIO_cutTurn_c0 const mCutTurn; static daAlinkHIO_hoCutLA_c0 const mHorseCutLeftA; static daAlinkHIO_hoCutLB_c0 const mHorseCutLeftB; static daAlinkHIO_hoCutRA_c0 const mHorseCutRightA; static daAlinkHIO_hoCutRB_c0 const mHorseCutRightB; static daAlinkHIO_hoCutCharge_c0 const mHorseCutCharge; static daAlinkHIO_cutDaL_c0 const mCutDashLeft; static daAlinkHIO_cutDaR_c0 const mCutDashRight; static daAlinkHIO_cutDaCharge_c0 const mCutDashCharge; static daAlinkHIO_cutDown_c0 const mCutDown; static daAlinkHIO_cutHead_c0 const mCutHead; static daAlinkHIO_cutLargeJump_c0 const mCutLargeJump; static daAlinkHIO_cut_c1 const m; }; class daAlinkHIO_cut_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_cut_c(); ~daAlinkHIO_cut_c(); virtual void genMessage(JORMContext*); #else ~daAlinkHIO_cut_c(); #endif public: #if DEBUG /* 0x034 */ daAlinkHIO_cutNormal_c mCutVertical; /* 0x08C */ daAlinkHIO_cutNormal_c mCutLeft; /* 0x0E4 */ daAlinkHIO_cutNormal_c mCutRight; /* 0x13C */ daAlinkHIO_cutNormal_c mCutLeftStab; /* 0x194 */ daAlinkHIO_cutNormal_c mCutRightStab; /* 0x1EC */ daAlinkHIO_cutFinish_c mCutFinishLeft; /* 0x250 */ daAlinkHIO_cutFinish_c mCutFinishVertical; /* 0x2B4 */ daAlinkHIO_cutFinish_c mCutFinishStab; /* 0x318 */ daAlinkHIO_cutFinish_c mCutFinishSweep; /* 0x37C */ daAlinkHIO_cutFinish_c mCutFinishSlash; /* 0x3E0 */ daAlinkHIO_cutFinish_c mCutFinishRight; /* 0x444 */ daAlinkHIO_cutFnJU_c mCutFinishJumpUppercut; /* 0x4CC */ daAlinkHIO_cutJump_c mCutJump; /* 0x544 */ daAlinkHIO_cutTurn_c mCutTurn; /* 0x610 */ daAlinkHIO_hoCut_c mHorseCutLeftA; /* 0x668 */ daAlinkHIO_hoCut_c mHorseCutLeftB; /* 0x6C0 */ daAlinkHIO_hoCut_c mHorseCutRightA; /* 0x718 */ daAlinkHIO_hoCut_c mHorseCutRightB; /* 0x770 */ daAlinkHIO_hoCutCharge_c mHorseCutCharge; /* 0x7F8 */ daAlinkHIO_cutDash_c mCutDashLeft; /* 0x84C */ daAlinkHIO_cutDash_c mCutDashRight; /* 0x8A0 */ daAlinkHIO_cutDash_c mCutDashCharge; /* 0x8F4 */ daAlinkHIO_cutDown_c mCutDown; /* 0x99C */ daAlinkHIO_cutHead_c mCutHead; /* 0xA30 */ daAlinkHIO_cutLargeJump_c mCutLargeJump; /* 0xAD8 */ daAlinkHIO_cut_c1 m; #endif }; // Size: 0xB74 class daAlinkHIO_guardAttack_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mAttackAnm; /* 0x14 */ f32 mSpeed; /* 0x18 */ f32 mAttackStartFrame; /* 0x1C */ f32 mAttackEndFrame; /* 0x20 */ f32 mSlashCheckFrame; }; // Size: 0x24 class daAlinkHIO_gAtPush_c0 { public: static daAlinkHIO_guardAttack_c1 const m; }; class daAlinkHIO_gAtKick_c0 { public: static daAlinkHIO_guardAttack_c1 const m; }; class daAlinkHIO_guardAttack_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_guardAttack_c(int, float); ~daAlinkHIO_guardAttack_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_guardAttack_c1 m; }; class daAlinkHIO_turnMove_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mTurnAnm; /* 0x14 */ s16 mTurnSpeedRate; /* 0x16 */ s16 mMaxTurnSpeed; /* 0x18 */ s16 mMinTurnSpeed; /* 0x1A */ s16 mMaxHalfTurnSpeed; /* 0x1C */ f32 mHalfTurnAnmSpeed; /* 0x20 */ f32 mTwirlCutDelayF; /* 0x24 */ f32 mSideRollAnmSpeed; /* 0x28 */ f32 mSideRollSpeed; }; // Size: 0x2C class daAlinkHIO_turnMove_c0 { public: static daAlinkHIO_turnMove_c1 const m; }; class daAlinkHIO_turnMove_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_turnMove_c(); ~daAlinkHIO_turnMove_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_turnMove_c1 m; #endif }; class daAlinkHIO_guard_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mGuardHitAnm; /* 0x14 */ daAlinkHIO_anm_c mCrouchGuardHitAnm; // Unused /* 0x28 */ daAlinkHIO_anm_c mRecoilAnm; /* 0x3C */ daAlinkHIO_anm_c mGuardBreakAnm; /* 0x50 */ s16 mGuardLRAngleMax; /* 0x52 */ s16 mGuardFBAngleMax; /* 0x54 */ s16 mGuardBodyInterpolation; /* 0x56 */ s16 mSmallGuardLRAngleMax; /* 0x58 */ s16 mSmallGuardFBAngleMax; /* 0x5C */ f32 mCrouchGuardAnmSpeed; // Unused /* 0x60 */ f32 mCrouchGuardInterpolation; // Unused /* 0x64 */ f32 mGuardSpeedNormal; /* 0x68 */ f32 mGuardSpeedLarge; /* 0x6C */ f32 mGuardSpeedHuge; /* 0x70 */ f32 mAttackPosOffset; /* 0x74 */ f32 mAttackRadius; /* 0x78 */ f32 mMagneGuardSpeed; /* 0x7C */ f32 mMagneHvyGuardSpeed; }; // Size: 0x80 class daAlinkHIO_guard_c0 { public: static daAlinkHIO_gAtPush_c0 const mAtPush; static daAlinkHIO_gAtKick_c0 const mAtKick; static daAlinkHIO_turnMove_c0 const mTurnMove; static daAlinkHIO_guard_c1 const m; }; class daAlinkHIO_guard_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_guard_c(); ~daAlinkHIO_guard_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x034 */ daAlinkHIO_guardAttack_c mAtPush; /* 0x090 */ daAlinkHIO_guardAttack_c mAtKick; /* 0x0EC */ daAlinkHIO_turnMove_c mTurnMove; /* 0x14C */ daAlinkHIO_guard_c1 m; #endif }; class daAlinkHIO_crouch_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCrawlStartAnm; /* 0x14 */ daAlinkHIO_anm_c mCrawlEndAnm; /* 0x28 */ s16 mCrawlTurnRate; /* 0x2A */ s16 mCrawlTurnMax; /* 0x2C */ s16 mCrawlTurnMin; /* 0x30 */ f32 mCrouchAnmSpeed; /* 0x34 */ f32 mCrouchInterpolation; /* 0x38 */ f32 mStandInterpolation; /* 0x3C */ f32 mCrawlMoveRate; /* 0x40 */ f32 mCrawlAnmSpeedMax; /* 0x44 */ f32 mCrawlAnmSpeedMin; /* 0x48 */ f32 mCrawlInterpolation; }; // Size: 0x4C class daAlinkHIO_crouch_c0 { public: static daAlinkHIO_crouch_c1 const m; }; class daAlinkHIO_crouch_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_crouch_c(); ~daAlinkHIO_crouch_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_crouch_c1 m; #endif }; class daAlinkHIO_autoJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mLandAnm; /* 0x28 */ daAlinkHIO_anm_c mDiveAnm; /* 0x3C */ daAlinkHIO_anm_c mDiveConnectAnm; /* 0x50 */ bool mAlwaysMaxSpeedJump; /* 0x52 */ s16 mJumpAngle; /* 0x54 */ s16 mSpinJumpRotateSpeed; /* 0x56 */ s16 mSpinJumpLandStopTime; /* 0x58 */ s16 mCuccoJumpAngle; /* 0x5C */ f32 mJumpSpeedLimit; /* 0x60 */ f32 mMinJumpSpeed; /* 0x64 */ f32 mJumpSpeedRate; /* 0x68 */ f32 mAirborneInterpolation; /* 0x6C */ f32 mJumpFallInterpolation; /* 0x70 */ f32 mFallInterpolation; /* 0x74 */ f32 mGravity; /* 0x78 */ f32 mMaxFallSpeed; /* 0x7C */ f32 mMaxJumpSpeed; /* 0x80 */ f32 mSpinJumpInterpolation; /* 0x84 */ f32 mSpinJumpFallInterpolation; /* 0x88 */ f32 mSpinJumpAddSpeed; /* 0x8C */ f32 mSpinJumpAccel; /* 0x90 */ f32 mHangHeightLimit; /* 0x94 */ f32 mGrabHeightLimit; /* 0x98 */ f32 mOoccooJumpMaxSpeed; /* 0x9C */ f32 mDiveSpeedV; /* 0xA0 */ f32 mDiveSpeedH; /* 0xA4 */ f32 mDiveGravity; /* 0xA8 */ f32 mCuccoJumpMaxSpeed; /* 0xAC */ f32 mCuccoFallMaxSpeed; /* 0xB0 */ f32 mCuccoStartSpeed; }; // size = 0xB4 class daAlinkHIO_autoJump_c0 { public: static daAlinkHIO_autoJump_c1 const m; }; class daAlinkHIO_autoJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_autoJump_c(); ~daAlinkHIO_autoJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_autoJump_c1 m; #endif }; class daAlinkHIO_smallJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSmallJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mStepClimbAnm; /* 0x28 */ daAlinkHIO_anm_c mStepLandAnm; /* 0x3C */ f32 mSpeedH; /* 0x40 */ f32 mTargetHeightOffset; /* 0x44 */ f32 mFallInterpolation; }; // Size: 0x48 class daAlinkHIO_smallJump_c0 { public: static daAlinkHIO_smallJump_c1 const m; }; class daAlinkHIO_smallJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_smallJump_c(); ~daAlinkHIO_smallJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_smallJump_c1 m; #endif }; class daAlinkHIO_wallCatch_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mGrabAAnm; /* 0x14 */ daAlinkHIO_anm_c mGrabBAnm; /* 0x28 */ daAlinkHIO_anm_c mClimbAnm; /* 0x3C */ daAlinkHIO_anm_c mJumpAnm; /* 0x50 */ f32 mClimbStartFrame; }; // Size: 0x54 class daAlinkHIO_wallCatch_c0 { public: static daAlinkHIO_wallCatch_c1 const m; }; class daAlinkHIO_wallCatch_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wallCatch_c(); ~daAlinkHIO_wallCatch_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_wallCatch_c1 m; #endif }; class daAlinkHIO_wallFall_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mOneHandGrabAnm; /* 0x14 */ daAlinkHIO_anm_c mTwoHandGrabAnm; }; // Size: 0x28 class daAlinkHIO_wallFall_c0 { public: static daAlinkHIO_wallFall_c1 const m; }; class daAlinkHIO_wallFall_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wallFall_c(); ~daAlinkHIO_wallFall_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_wallFall_c1 m; #endif }; class daAlinkHIO_wallMove_c1 { public: /* 0x00 */ f32 mMinAnmSpeed; /* 0x04 */ f32 mMaxAnmSpeed; /* 0x08 */ f32 mInterpolation; /* 0x0C */ f32 mMinSpeed; /* 0x10 */ f32 mMaxSpeed; }; // Size: 0x14 class daAlinkHIO_wallMove_c0 { public: static daAlinkHIO_wallMove_c1 const m; }; class daAlinkHIO_wallMove_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wallMove_c(); ~daAlinkHIO_wallMove_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_wallMove_c1 m; #endif }; class daAlinkHIO_wallHang_c1 { public: /* 0x00 */ s16 small_jump_input_time; /* 0x02 */ s16 grab_input_time; /* 0x04 */ f32 auto_walk_height; /* 0x08 */ f32 small_jump_height; /* 0x0C */ f32 climb_height; /* 0x10 */ f32 jump_climb_height; /* 0x14 */ f32 jump_hang_height; /* 0x18 */ f32 hang_foot_pos_height; }; // Size: 0x1C class daAlinkHIO_wallHang_c0 { public: static daAlinkHIO_smallJump_c0 const mSmallJump; static daAlinkHIO_wallCatch_c0 const mWallCatch; static daAlinkHIO_wallFall_c0 const mWallFall; static daAlinkHIO_wallMove_c0 const mWallMove; static daAlinkHIO_wallHang_c1 const m; }; class daAlinkHIO_wallHang_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wallHang_c(); ~daAlinkHIO_wallHang_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_smallJump_c mSmallJump; /* 0x00 */ daAlinkHIO_wallCatch_c mWallCatch; /* 0x00 */ daAlinkHIO_wallFall_c mWallFall; /* 0x00 */ daAlinkHIO_wallMove_c mWallMove; /* 0x00 */ daAlinkHIO_wallHang_c1 m; #endif }; class daAlinkHIO_pushpull_c1 { public: /* 0x00 */ u8 mEnableSumoWaitRotation; /* 0x02 */ s16 mSumoMaxGauge; /* 0x04 */ s16 mSumoIncreaseGauge; /* 0x06 */ s16 mSumoPenaltyTime; /* 0x08 */ s16 mSumoPower3To2Switch; /* 0x0A */ s16 mSumoPower2To1Switch; /* 0x0C */ s16 mSumoRotationAllowPower; /* 0x0E */ s16 mSumoRotationAngle; /* 0x10 */ f32 mStandbyASpeed; /* 0x14 */ f32 mStandbyInterpolation; /* 0x18 */ f32 mPushASpeed; /* 0x1C */ f32 mPushInterpolation; /* 0x20 */ f32 field_0x20; /* 0x24 */ f32 mPullInterpolation; /* 0x28 */ f32 mSumoPushASpeed; /* 0x2C */ f32 mSumoPushAddASpeed; /* 0x30 */ f32 mSumoPushedASpeed; /* 0x34 */ f32 mSumoPushedAddASpeed; /* 0x38 */ f32 mPushASpeedHeavy; }; // Size: 0x3C class daAlinkHIO_pushpull_c0 { public: static daAlinkHIO_pushpull_c1 const m; }; class daAlinkHIO_pushpull_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_pushpull_c(); ~daAlinkHIO_pushpull_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_pushpull_c1 m; #endif }; class daAlinkHIO_damNormal_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontAnm; /* 0x14 */ daAlinkHIO_anm_c mRearAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftAnm; /* 0x3C */ daAlinkHIO_anm_c mRightAnm; /* 0x50 */ s16 mFrontBackBodyMaxAngle; /* 0x52 */ s16 mLeftRightBodyMaxAngle; /* 0x54 */ f32 mInitialSpeed; /* 0x58 */ f32 mAttackSpeedRate; /* 0x5C */ f32 mDeceleration; /* 0x60 */ f32 mIceDamageASpeed; }; // Size: 0x64 class daAlinkHIO_damNormal_c0 { public: static daAlinkHIO_damNormal_c1 const m; }; class daAlinkHIO_damNormal_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damNormal_c(); ~daAlinkHIO_damNormal_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_damNormal_c1 m; #endif }; class daAlinkHIO_damLaHu_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontGetUpAnm; /* 0x14 */ daAlinkHIO_anm_c mBackGetUpAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftGetUpAnm; /* 0x3C */ daAlinkHIO_anm_c mRightGetUpAnm; /* 0x50 */ daAlinkHIO_anm_c mFrontWallHitAnm; /* 0x64 */ daAlinkHIO_anm_c mBackWallHitAnm; /* 0x78 */ daAlinkHIO_anm_c mLeftWallHitAnm; /* 0x8C */ daAlinkHIO_anm_c mRightWallHitAnm; /* 0xA0 */ s16 mBodyRotateRate; /* 0xA4 */ f32 mGravity; /* 0xA8 */ f32 mDamageBlend; /* 0xAC */ f32 mHorizontalSpeed; /* 0xB0 */ f32 mVerticalSpeed; /* 0xB4 */ f32 mBounceSpeed; /* 0xB8 */ f32 mDeceleration; }; // Size: 0xBC class daAlinkHIO_damLarge_c0 { public: static daAlinkHIO_damLaHu_c1 const m; }; class daAlinkHIO_damHuge_c0 { public: static daAlinkHIO_damLaHu_c1 const m; }; class daAlinkHIO_damLaHu_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damLaHu_c(int); ~daAlinkHIO_damLaHu_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG daAlinkHIO_damLaHu_c1 m; #endif }; class daAlinkHIO_damHorse_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mNoDirectionAnm; /* 0x14 */ daAlinkHIO_anm_c mWithDirectionAnm; /* 0x28 */ s16 mFrontBackBodyMaxAngle; /* 0x2A */ s16 mLeftRightBodyMaxAngle; }; // Size: 0x2C class daAlinkHIO_damHorse_c0 { public: static daAlinkHIO_damHorse_c1 const m; }; class daAlinkHIO_damHorse_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damHorse_c(); ~daAlinkHIO_damHorse_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_damHorse_c1 m; #endif }; class daAlinkHIO_damFall_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLandAnm; /* 0x14 */ daAlinkHIO_anm_c mStandAnm; /* 0x28 */ s16 mSmallStopTime; /* 0x2A */ s16 mBigStopTime; /* 0x2C */ f32 mMinRollHeight; /* 0x30 */ f32 mMaxRollHeight; /* 0x34 */ f32 mSmallDmgHeight; /* 0x38 */ f32 mBigDmgHeight; /* 0x3C */ f32 mSmallDmgLandStartFrame; /* 0x40 */ f32 mFallAnmTransitionHeight; /* 0x44 */ f32 mFallAnmMorf; }; // Size: 0x48 class daAlinkHIO_damFall_c0 { public: static daAlinkHIO_damFall_c1 const m; }; class daAlinkHIO_damFall_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damFall_c(); ~daAlinkHIO_damFall_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_damFall_c1 m; #endif }; class daAlinkHIO_damCaught_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mEscapeAnm; /* 0x14 */ s16 mGrabDuration; /* 0x16 */ s16 mInputFadeTime; /* 0x18 */ f32 mStandbySpeed; /* 0x1C */ f32 mStandbyInterp; /* 0x20 */ f32 mStandbyAddASpeed; }; // Size: 0x24 class daAlinkHIO_damCaught_c0 { public: static daAlinkHIO_damCaught_c1 const m; }; class daAlinkHIO_damCaught_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damCaught_c(); ~daAlinkHIO_damCaught_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_damCaught_c1 m; #endif }; class daAlinkHIO_damSwim_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontAnm; /* 0x14 */ daAlinkHIO_anm_c mRearAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftAnm; /* 0x3C */ daAlinkHIO_anm_c mRightAnm; /* 0x50 */ daAlinkHIO_anm_c mSinkAnm; /* 0x64 */ daAlinkHIO_anm_c mSurfaceAnm; /* 0x78 */ s16 mFrontBackBodyMaxAngle; /* 0x7A */ s16 mLeftRightBodyMaxAngle; /* 0x7C */ f32 mInitialSpeed; /* 0x80 */ f32 mAttackSpeedRate; /* 0x84 */ f32 mDeceleration; /* 0x88 */ f32 mMaxSpeed; }; // Size: 0x8C class daAlinkHIO_damSwim_c0 { public: static daAlinkHIO_damSwim_c1 const m; }; class daAlinkHIO_damSwim_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damSwim_c(); ~daAlinkHIO_damSwim_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_damSwim_c1 m; #endif }; class daAlinkHIO_damage_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFloorDmgAnm; /* 0x14 */ daAlinkHIO_anm_c mDashDmgAnm; /* 0x28 */ u8 mInvincible; /* 0x2A */ s16 mInvincibleTime; /* 0x2C */ s16 mWolfFloorInvincibleTime; /* 0x2E */ s16 mFreezeTime; /* 0x30 */ s16 mFreezeInitR; /* 0x32 */ s16 mFreezeInitG; /* 0x34 */ s16 mFreezeInitB; /* 0x36 */ s16 mDamageR0; /* 0x38 */ s16 mDamageG0; /* 0x3A */ s16 mDamageB0; /* 0x3C */ s16 mDamageR1; /* 0x3E */ s16 mDamageG1; /* 0x40 */ s16 mDamageB1; /* 0x42 */ s16 mDamageR2; /* 0x44 */ s16 mDamageG2; /* 0x46 */ s16 mDamageB2; /* 0x48 */ s16 mFreezeR; /* 0x4A */ s16 mFreezeG; /* 0x4C */ s16 mFreezeB; /* 0x50 */ f32 mRecoverStandAnmSpeed; /* 0x54 */ f32 mInvertedFallInterpolation; }; // Size: 0x58 class daAlinkHIO_damage_c0 { public: static daAlinkHIO_damage_c1 const m; static daAlinkHIO_damNormal_c0 const mDamNormal; static daAlinkHIO_damLarge_c0 const mDamLarge; static daAlinkHIO_damHuge_c0 const mDamHuge; static daAlinkHIO_damHorse_c0 const mDamHorse; static daAlinkHIO_damFall_c0 const mDamFall; static daAlinkHIO_damCaught_c0 const mDamCaught; static daAlinkHIO_damSwim_c0 const mDamSwim; }; class daAlinkHIO_damage_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_damage_c(); ~daAlinkHIO_damage_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_damage_c1 m; /* 0x34 */ daAlinkHIO_damNormal_c mDamNormal; /* 0x00 */ daAlinkHIO_damLaHu_c mDamLarge; /* 0x00 */ daAlinkHIO_damLaHu_c mDamHuge; /* 0x00 */ daAlinkHIO_damHorse_c mDamHorse; /* 0x00 */ daAlinkHIO_damFall_c mDamFall; /* 0x00 */ daAlinkHIO_damCaught_c mDamCaught; /* 0x00 */ daAlinkHIO_damSwim_c mDamSwim; #endif }; class daAlinkHIO_horse_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mWalkOutAnm; /* 0x14 */ daAlinkHIO_anm_c mRunOutAnm; /* 0x28 */ daAlinkHIO_anm_c mWhipAnm; /* 0x3C */ daAlinkHIO_anm_c mWhipRunOutAnm; /* 0x50 */ s16 mSwordUpTime; /* 0x52 */ s16 mSearchRangeAngle; /* 0x54 */ s16 mWalkOutProhibitionTime; /* 0x56 */ s16 mWhipWaitTime; /* 0x58 */ s16 mSubjectiveDownwardMaxAngle; /* 0x5A */ s16 mSubjectiveUpwardMaxAngle; /* 0x5C */ f32 mSwordUpAnmSpeed; /* 0x60 */ f32 mSwordUpInterpolation; /* 0x64 */ f32 mHorseWalkStartFrame; /* 0x68 */ f32 mTiredWaitInterpolation; }; // Size: 0x6C class daAlinkHIO_horse_c0 { public: static daAlinkHIO_horse_c1 const m; }; class daAlinkHIO_horse_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_horse_c(); ~daAlinkHIO_horse_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_horse_c1 m; #endif }; class daAlinkHIO_canoe_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLeftRightChangeAnm; /* 0x14 */ s16 mMaxTurnAngle; /* 0x16 */ s16 mMaxTurnAngle_RiverRide; /* 0x18 */ f32 mStickRowAnmSpeed; /* 0x1C */ f32 mBtnRowAnmSpeed; /* 0x20 */ f32 mSpeedRate; /* 0x24 */ f32 mMaxSpeed; /* 0x28 */ f32 mDeceleration; /* 0x2C */ f32 mStickRowStartAnmSpeed; /* 0x30 */ f32 mBtnRowStartAnmSpeed; /* 0x34 */ f32 mBackSpeedRate; /* 0x38 */ f32 mBackMaxSpeed; /* 0x3C */ f32 mMaxSpeed_RiverRide; /* 0x40 */ f32 mSpeedRate_RiverRide; /* 0x44 */ f32 mDeceleration_RiverRide; }; // Size: 0x48 class daAlinkHIO_canoe_c0 { public: static daAlinkHIO_canoe_c1 const m; }; class daAlinkHIO_canoe_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_canoe_c(); ~daAlinkHIO_canoe_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_canoe_c1 m; #endif }; class daAlinkHIO_bow_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mShootAnm; /* 0x14 */ daAlinkHIO_anm_c mLoadAnm; /* 0x28 */ s16 mChargeArrowTime; /* 0x2A */ s16 mBombArrowHoldTime; /* 0x2C */ s16 mBombArrowFlyExplodeTime; /* 0x30 */ f32 mStartInterpolation; /* 0x34 */ f32 mArrowSpeed; /* 0x38 */ f32 mArrowDistance; /* 0x3C */ f32 mChargeArrowSpeed; /* 0x40 */ f32 mChargeArrowDistance; /* 0x44 */ f32 mArrowAttackRadius; /* 0x48 */ f32 mBombArrowSpeed; /* 0x4C */ f32 mBombArrowDistance; /* 0x50 */ f32 mChargeBombArrowSpeed; /* 0x54 */ f32 mChargeBombArrowDistance; /* 0x58 */ f32 mScopeArrowSpeed; /* 0x5C */ f32 mScopeArrowDistance; /* 0x60 */ f32 mArrowIncAttackMaxStart; /* 0x64 */ f32 mArrowIncAttackMax; /* 0x68 */ f32 mSlingshotSpeed; /* 0x6C */ f32 mSlingshotDistance; }; // Size: 0x70 class daAlinkHIO_bow_c0 { public: static daAlinkHIO_bow_c1 const m; }; class daAlinkHIO_bow_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_bow_c(); ~daAlinkHIO_bow_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_bow_c1 m; #endif }; class daAlinkHIO_boom_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mThrowAnm; /* 0x14 */ daAlinkHIO_anm_c mCatchAnm; /* 0x28 */ s16 mChargeTime; /* 0x2A */ s16 mBgThroughTime; /* 0x2C */ f32 mIdleAnmSpeed; /* 0x30 */ f32 mStartInterpolation; /* 0x34 */ f32 mFlySpeed; /* 0x38 */ f32 mChargeFlySpeed; /* 0x3C */ f32 mFlyDistMax; /* 0x40 */ f32 mHorsebackFlyDistMax; /* 0x44 */ f32 mLockDistMax; /* 0x48 */ f32 mCatchSpeed; }; // Size: 0x4C class daAlinkHIO_boom_c0 { public: static daAlinkHIO_boom_c1 const m; }; class daAlinkHIO_boom_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_boom_c(); ~daAlinkHIO_boom_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_boom_c1 m; #endif }; class daAlinkHIO_bomb_c1 { public: /* 0x00 */ s16 mExplodeTime; /* 0x02 */ s16 mEnemyBombColorR; /* 0x04 */ s16 mBombInsectLimitAngle; /* 0x08 */ f32 mGravity; /* 0x0C */ f32 mMaxFallSpeed; /* 0x10 */ f32 mBoundRate; /* 0x14 */ f32 mStopSpeedY; /* 0x18 */ f32 mMaxSpeedY; /* 0x1C */ f32 mEffScale; /* 0x20 */ f32 mAttackRadius; /* 0x24 */ f32 mPokeBombTrackRate; /* 0x28 */ f32 mWaterGravity; /* 0x2C */ f32 mWaterMaxFallSpeed; /* 0x30 */ f32 mThrowSpeedH; /* 0x34 */ f32 mThrowSpeedV; /* 0x38 */ f32 mWaterThrowSpeedH; /* 0x3C */ f32 mWaterThrowSpeedV; /* 0x40 */ f32 mWolfThrowSpeedH; /* 0x44 */ f32 mWolfThrowSpeedV; /* 0x48 */ f32 mExplodeWaterEffectLimit; }; // Size: 0x4C class daAlinkHIO_bomb_c0 { public: static daAlinkHIO_bomb_c1 const m; }; class daAlinkHIO_bomb_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_bomb_c(); ~daAlinkHIO_bomb_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_bomb_c1 m; #endif }; class daAlinkHIO_huLight_c1 { public: /* 0x00 */ u8 mAngleAttenuationType; /* 0x01 */ u8 mDistanceAttenuationType; /* 0x02 */ s16 mAlpha; /* 0x04 */ s16 mColorR; /* 0x06 */ s16 mColorG; /* 0x08 */ s16 mColorB; /* 0x0A */ s16 mXAngle; /* 0x0C */ f32 mPower; /* 0x10 */ f32 mWidth; /* 0x14 */ f32 mYOffset; /* 0x18 */ f32 mZOffset; }; // Size: 0x1C class daAlinkHIO_huLight_c0 { public: static daAlinkHIO_huLight_c1 const m; }; class daAlinkHIO_wlLight_c1 { public: /* 0x00 */ s16 field_0x0; /* 0x02 */ s16 field_0x2; /* 0x04 */ s16 field_0x4; /* 0x06 */ s16 field_0x6; /* 0x08 */ s16 field_0x8; /* 0x0A */ s16 field_0xA; /* 0x0C */ f32 field_0xC; /* 0x10 */ f32 field_0x10; /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 field_0x18; }; // Size: 0x1C class daAlinkHIO_wlLight_c0 { public: static daAlinkHIO_wlLight_c1 const m; }; class daAlinkHIO_zwLight_c1 { // may be wrong public: /* 0x00 */ s16 field_0x0; /* 0x02 */ s16 field_0x2; /* 0x04 */ s16 field_0x4; /* 0x06 */ s16 field_0x6; /* 0x08 */ s16 field_0x8; /* 0x0A */ s16 field_0xA; /* 0x0C */ f32 field_0xC; /* 0x10 */ f32 field_0x10; /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 field_0x18; }; // Size: 0x1C class daAlinkHIO_zwLight_c0 { public: static daAlinkHIO_zwLight_c1 const m; }; class daAlinkHIO_light_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_light_c(int); ~daAlinkHIO_light_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_huLight_c1 m; #endif }; class daAlinkHIO_kandelaar_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mShakeAnm; /* 0x14 */ daAlinkHIO_anm_c mBeginUnkAnm; /* 0x28 */ daAlinkHIO_anm_c mEndUnkAnm; /* 0x3C */ s16 mColorReg1R; /* 0x3E */ s16 mColorReg1G; /* 0x40 */ s16 mColorReg1B; /* 0x42 */ s16 mColorReg2R; /* 0x44 */ s16 mColorReg2G; /* 0x46 */ s16 mColorReg2B; /* 0x48 */ s16 mNormalOilLoss; /* 0x4A */ s16 mShakeOilLoss; /* 0x4C */ f32 mFlameTrackRate; }; // Size: 0x50 class daAlinkHIO_kandelaar_c0 { public: static daAlinkHIO_kandelaar_c1 const m; }; class daAlinkHIO_kandelaar_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_kandelaar_c(); ~daAlinkHIO_kandelaar_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_kandelaar_c1 m; #endif }; class daAlinkHIO_magneBoots_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; /* 0x14 */ f32 mInputFactor; /* 0x18 */ f32 mFeetPositionRatio; /* 0x1C */ f32 mWalkAnmSpeedMax; /* 0x20 */ f32 mWalkAnmSpeedMin; /* 0x24 */ f32 mWaterInputFactor; /* 0x28 */ f32 mWaterWalkAnmRate; /* 0x2C */ f32 mWaterStartWalkAnmRate; /* 0x30 */ f32 mMaxMagneFlySpeed; /* 0x34 */ f32 mMagneFlyAccelRate; /* 0x38 */ f32 mWaterVelocityY; /* 0x3C */ f32 mWaterVelocityX; /* 0x40 */ f32 mWaterVelRateSword; /* 0x44 */ f32 mZoraWaterInputFactor; /* 0x48 */ f32 mZoraWaterAnmSpeed; }; // Size: 0x4C class daAlinkHIO_magneBoots_c0 { public: static daAlinkHIO_magneBoots_c1 const m; }; class daAlinkHIO_magneBoots_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_magneBoots_c(); ~daAlinkHIO_magneBoots_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_magneBoots_c1 m; #endif }; class daAlinkHIO_fmChain_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mGripAnm; /* 0x14 */ daAlinkHIO_anm_c mUnfinishedAnm; }; // Size: 0x28 class daAlinkHIO_fmChain_c0 { public: static daAlinkHIO_fmChain_c1 const m; }; class daAlinkHIO_fmChain_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_fmChain_c(); ~daAlinkHIO_fmChain_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_fmChain_c1 m; #endif }; class daAlinkHIO_hookshot_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mShootAnm; /* 0x14 */ daAlinkHIO_anm_c mRoofHangAnm; /* 0x28 */ daAlinkHIO_anm_c mWallHangAnm; /* 0x3C */ u8 mForceStick; /* 0x40 */ f32 mWaitAnmSpeed; /* 0x44 */ f32 mStartInterpolation; /* 0x48 */ f32 mMaxLength; /* 0x4C */ f32 mShootSpeed; /* 0x50 */ f32 mReturnSpeed; /* 0x54 */ f32 mStickReturnSpeed; /* 0x58 */ f32 mRoofHangRiseSpeed; /* 0x5C */ f32 mRoofHangDecendSpeed; /* 0x60 */ f32 mBossMaxLength; /* 0x64 */ f32 mBossShootSpeed; /* 0x68 */ f32 mBossReturnSpeed; /* 0x6C */ f32 mBossStickReturnSpeed; }; // Size: 0x70 class daAlinkHIO_hookshot_c0 { public: static daAlinkHIO_hookshot_c1 const m; }; class daAlinkHIO_hookshot_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_hookshot_c(); ~daAlinkHIO_hookshot_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_hookshot_c1 m; #endif }; class daAlinkHIO_spinner_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mKickAnm; /* 0x14 */ s16 mRideMoveTime; /* 0x16 */ s16 mBoardWaitTime; /* 0x18 */ s16 mRideRotAngleMax; /* 0x1A */ s16 mRideRotAngleMin; /* 0x1C */ s16 mBossRideMoveTime; /* 0x20 */ f32 mGravity; /* 0x24 */ f32 mMaxFallSpeed; /* 0x28 */ f32 mJumpRate; /* 0x2C */ f32 mRideSpeed; /* 0x30 */ f32 mDecelSpeedMax; /* 0x34 */ f32 mDecelSpeedMin; /* 0x38 */ f32 mDecelRate; /* 0x3C */ f32 mBossRideSpeed; }; // Size: 0x40 class daAlinkHIO_spinner_c0 { public: static daAlinkHIO_spinner_c1 const m; }; class daAlinkHIO_spinner_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_spinner_c(); ~daAlinkHIO_spinner_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_spinner_c1 m; #endif }; class daAlinkHIO_ironBall_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mCatchAnm; /* 0x14 */ s16 mThrowChainNum; /* 0x16 */ s16 mReturnChainRemoveNum; /* 0x18 */ f32 mWaitAnmSpeed; /* 0x1C */ f32 mPrepareAnmSpeed; /* 0x20 */ f32 mPrepareInterpolation; /* 0x24 */ f32 mTurnAnmSpeed; /* 0x28 */ f32 mTurnInterpolation; /* 0x2C */ f32 mPreThrowAnmSpeed; /* 0x30 */ f32 mPreThrowAnmInterpolation; /* 0x34 */ f32 mThrowAnmSpeed; /* 0x38 */ f32 mThrowInterpolation; /* 0x3C */ f32 mPullAnmSpeed; /* 0x40 */ f32 mPullInterpolation; /* 0x44 */ f32 mChainSpeedRate; /* 0x48 */ f32 mChainGravity; /* 0x4C */ f32 mReturnChainAccelY; /* 0x50 */ f32 mReturnChainRate; /* 0x54 */ f32 mThrowChainAccelZ; /* 0x58 */ f32 mThrowChainAccelY; /* 0x5C */ f32 mThrowChainGravity; /* 0x60 */ f32 mBallGravity; /* 0x64 */ f32 mThrowBallGravity; /* 0x68 */ f32 mBallMaxFallSpeed; /* 0x6C */ f32 field_0x6C; /* 0x70 */ f32 mThrowSpeedZ; /* 0x74 */ f32 mThrowSpeedY; /* 0x78 */ f32 mReturnBallGravity; /* 0x7C */ f32 mAttackRadius; /* 0x80 */ f32 mFeetPosRatio; /* 0x84 */ f32 mWalkAnmSpeedMax; /* 0x88 */ f32 mWalkAnmSpeedMin; }; // Size: 0x8C class daAlinkHIO_ironBall_c0 { public: static daAlinkHIO_ironBall_c1 const m; }; class daAlinkHIO_ironBall_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_ironBall_c(); ~daAlinkHIO_ironBall_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_ironBall_c1 m; #endif }; class daAlinkHIO_copyRod_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSwingAnm; /* 0x14 */ daAlinkHIO_anm_c mBigSwingAnm; /* 0x28 */ f32 mBallSpeed; /* 0x2c */ f32 mBallMaxDistance; /* 0x30 */ f32 mBallReturnSpeed; /* 0x34 */ f32 mBossBallMaxDistance; }; // Size: 0x38 class daAlinkHIO_copyRod_c0 { public: static daAlinkHIO_copyRod_c1 const m; }; class daAlinkHIO_copyRod_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_copyRod_c(); ~daAlinkHIO_copyRod_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_copyRod_c1 m; #endif }; class daAlinkHIO_pickUp_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mGrabAnm; /* 0x14 */ daAlinkHIO_anm_c mPlaceAnm; /* 0x28 */ f32 field_0x28; /* 0x2C */ f32 field_0x2C; }; // Size: 0x30 class daAlinkHIO_pickUp_c0 { public: static daAlinkHIO_pickUp_c1 const m; }; class daAlinkHIO_pickUp_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_pickUp_c(); ~daAlinkHIO_pickUp_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_pickUp_c1 m; #endif }; class daAlinkHIO_board_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; // might be wrong /* 0x14 */ daAlinkHIO_anm_c mAirborneAnm; /* 0x28 */ daAlinkHIO_anm_c mLandAnm; /* 0x3C */ daAlinkHIO_anm_c mSpinAnm; /* 0x50 */ f32 mMaxSpeed; /* 0x54 */ f32 mPushAccel; /* 0x58 */ f32 mMinJumpSpeedY; /* 0x5C */ f32 mMaxJumpSpeedY; /* 0x60 */ f32 mStandAnmSpeed; /* 0x64 */ f32 mStandInterpolation; /* 0x68 */ f32 mSitAnmSpeed; /* 0x6C */ f32 mSitInterpolation; /* 0x70 */ f32 mStartMinSpeed; /* 0x74 */ f32 mStartAddSpeed; /* 0x78 */ f32 mPushAnmMaxSpeed; /* 0x7C */ f32 mFastPushSwitchSpeed; /* 0x80 */ f32 mFastPushInterpolation; /* 0x84 */ f32 mPushInterpolation; /* 0x88 */ f32 mPushAnmMinSpeed; /* 0x8C */ f32 mMaxPushSpeed; /* 0x90 */ f32 mSpinMinJumpSpeedY; /* 0x94 */ f32 mSpinMaxJumpSpeedY; /* 0x98 */ f32 mEffectMaxSpeed; }; // Size: 0x9C class daAlinkHIO_board_c0 { public: static daAlinkHIO_board_c1 const m; }; class daAlinkHIO_board_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_board_c(); ~daAlinkHIO_board_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_board_c1 m; #endif }; class daAlinkHIO_bottle_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mStartDrinkAnm; /* 0x14 */ daAlinkHIO_anm_c mEndDrinkAnm; /* 0x28 */ daAlinkHIO_anm_c mOpenBottleAnm; /* 0x3C */ daAlinkHIO_anm_c mPourAnm; /* 0x50 */ daAlinkHIO_anm_c mSwingDownAnm; /* 0x64 */ daAlinkHIO_anm_c mSwingSideAnm; /* 0x78 */ daAlinkHIO_anm_c mGetAnm; /* 0x8C */ daAlinkHIO_anm_c mDrinkNastyAnm; /* 0xA0 */ daAlinkHIO_anm_c mScoopAnm; }; // Size: 0xB4 class daAlinkHIO_bottle_c0 { public: static daAlinkHIO_bottle_c1 const m; }; class daAlinkHIO_bottle_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_bottle_c(); ~daAlinkHIO_bottle_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_bottle_c1 m; #endif }; class daAlinkHIO_item_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mOneHandEquipAnm; /* 0x14 */ daAlinkHIO_anm_c mTwoHandEquipAnm; /* 0x28 */ s16 mItemFPTransitionTimer; /* 0x2A */ s16 mItemFPMaxUnk; /* 0x2C */ s16 mItemFPUpMaxUnk; /* 0x2E */ s16 mWiiItemFPDownMaxUnk; /* 0x30 */ s16 mWiiItemFPUpMaxUnk; /* 0x34 */ f32 mOneHandReleaseAnmSpeed; /* 0x38 */ f32 mTwoHandReleaseAnmSpeed; }; // Size: 0x3C class daAlinkHIO_item_c0 { public: static daAlinkHIO_bow_c0 const mBow; static daAlinkHIO_boom_c0 const mBoomerang; static daAlinkHIO_bomb_c0 const mBomb; static daAlinkHIO_huLight_c0 const mLanternPL; static daAlinkHIO_kandelaar_c0 const mLantern; static daAlinkHIO_fmChain_c0 const mFmChain; static daAlinkHIO_magneBoots_c0 const mIronBoots; static daAlinkHIO_pickUp_c0 const mPickUp; static daAlinkHIO_board_c0 const mBoard; static daAlinkHIO_bottle_c0 const mBottle; static daAlinkHIO_hookshot_c0 const mHookshot; static daAlinkHIO_spinner_c0 const mSpinner; static daAlinkHIO_ironBall_c0 const mIronBall; static daAlinkHIO_copyRod_c0 const mCopyRod; static daAlinkHIO_zwLight_c0 const mZoraArmorPL; static daAlinkHIO_item_c1 const m; }; class daAlinkHIO_item_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_item_c(); ~daAlinkHIO_item_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_bow_c mBow; /* 0x00 */ daAlinkHIO_boom_c mBoomerang; /* 0x00 */ daAlinkHIO_bomb_c mBomb; /* 0x00 */ daAlinkHIO_light_c mLanternPL; /* 0x00 */ daAlinkHIO_kandelaar_c mLantern; /* 0x00 */ daAlinkHIO_fmChain_c mFmChain; /* 0x00 */ daAlinkHIO_magneBoots_c mIronBoots; /* 0x00 */ daAlinkHIO_pickUp_c mPickUp; /* 0x00 */ daAlinkHIO_board_c mBoard; /* 0x00 */ daAlinkHIO_bottle_c mBottle; /* 0x00 */ daAlinkHIO_hookshot_c mHookshot; /* 0x00 */ daAlinkHIO_spinner_c mSpinner; /* 0x00 */ daAlinkHIO_ironBall_c mIronBall; /* 0x00 */ daAlinkHIO_copyRod_c mCopyRod; /* 0x00 */ daAlinkHIO_light_c mZoraArmorPL; /* 0x00 */ daAlinkHIO_item_c1 m; #endif }; class daAlinkHIO_ladder_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mWallAttachAnm; /* 0x14 */ daAlinkHIO_anm_c mWallAttachMissAnm; /* 0x28 */ f32 mClimbUpStartASpeed; /* 0x2C */ f32 mClimbUpStartInterp; /* 0x30 */ f32 mClimbUpEndASpeed; /* 0x34 */ f32 mClimbUpEndInterp; /* 0x38 */ f32 mClimbDownStartASpeed; /* 0x3C */ f32 mClimbDownStartInterp; /* 0x40 */ f32 mClimbDownEndASpeed; /* 0x44 */ f32 mClimbDownEndInterp; /* 0x48 */ f32 mMoveMinASpeed; /* 0x4C */ f32 mMoveMaxSpeed; /* 0x50 */ f32 mMoveInterp; /* 0x54 */ f32 mClimbDownEndCF; /* 0x58 */ f32 mClimbUpEndCF; /* 0x5C */ f32 mWallHorizontalMinAnmSpeed; /* 0x60 */ f32 mWallHorizontalMaxAnmSpeed; /* 0x64 */ f32 mWallVerticalMinAnmSpeed; /* 0x68 */ f32 mWallVerticalMaxAnmSpeed; /* 0x6C */ f32 mWallApproachOffset; }; // Size: 0x70 class daAlinkHIO_ladder_c0 { public: static daAlinkHIO_ladder_c1 const m; }; class daAlinkHIO_ladder_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_ladder_c(); ~daAlinkHIO_ladder_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_ladder_c1 m; #endif }; class daAlinkHIO_roofHang_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mRoofHangAnm; /* 0x14 */ s16 mTurnAngleRate; /* 0x16 */ s16 mMaxTurnAngle; /* 0x18 */ s16 mMinTurnAngle; /* 0x1C */ f32 mStandbyASpeed; /* 0x20 */ f32 mStandbyInterp; /* 0x24 */ f32 mVertMoveMinASpeed; /* 0x28 */ f32 mVertMoveMaxASpeed; /* 0x2C */ f32 mVertMoveInterp; /* 0x30 */ f32 mVertMoveMinSpeed; /* 0x34 */ f32 mVertMoveMaxSpeed; /* 0x38 */ f32 mHorizMoveMinASpeed; /* 0x3C */ f32 mHorizMoveMaxASpeed; /* 0x40 */ f32 mHorizMoveInterp; /* 0x44 */ f32 mInvertASpeed; /* 0x48 */ f32 mInvertInterp; }; // Size: 0x4C class daAlinkHIO_roofHang_c0 { public: static daAlinkHIO_roofHang_c1 const m; }; class daAlinkHIO_roofHang_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_roofHang_c(); ~daAlinkHIO_roofHang_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_roofHang_c1 m; #endif }; class daAlinkHIO_grab_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mPrepareAnm; /* 0x14 */ daAlinkHIO_anm_c mLiftBackAnm; /* 0x28 */ daAlinkHIO_anm_c mStandReverseAnm; /* 0x3C */ daAlinkHIO_anm_c mLiftAnm; /* 0x50 */ daAlinkHIO_anm_c mThrowAnm; /* 0x64 */ daAlinkHIO_anm_c mCarryAnm; /* 0x78 */ daAlinkHIO_anm_c mRecoilAnm; /* 0x8C */ daAlinkHIO_anm_c mFailAnm; /* 0xA0 */ daAlinkHIO_anm_c mCarryLiftAnm; /* 0xB4 */ daAlinkHIO_anm_c mCarryPlaceReverseAnm; /* 0xC8 */ daAlinkHIO_anm_c mIronBallThrowAnm; /* 0xDC */ s16 mForceWeightSpec; /* 0xDE */ s16 mFailStopTime; /* 0xE0 */ f32 field_0xE0; }; // Size: 0xE4 class daAlinkHIO_grab_c0 { public: static daAlinkHIO_grab_c1 const m; }; class daAlinkHIO_grab_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_grab_c(); ~daAlinkHIO_grab_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_grab_c1 m; #endif }; class daAlinkHIO_swim_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFloatUpAnm; /* 0x14 */ daAlinkHIO_anm_c mDiveAnm; /* 0x28 */ daAlinkHIO_anm_c mUnderwaterDiveAnm; /* 0x3C */ daAlinkHIO_anm_c mDashAnm; /* 0x50 */ s16 mTurnRate; /* 0x52 */ s16 mMinTurn; /* 0x54 */ s16 mMaxTurn; /* 0x56 */ s16 mUnderwaterTurnRate; /* 0x58 */ s16 mUnderwaterMinTurn; /* 0x5A */ s16 mUnderwaterMaxTurn; /* 0x5C */ s16 field_0x5c; // related to dash /* 0x5E */ s16 field_0x5e; // related to dash /* 0x60 */ f32 mStartHeight; /* 0x64 */ f32 mFloatUpHeight; /* 0x68 */ f32 mForwardMaxSpeed; /* 0x6C */ f32 mStrafeMaxSpeed; /* 0x70 */ f32 mBackwardMaxSpeed; /* 0x74 */ f32 mUnderwaterMaxSpeed; /* 0x78 */ f32 mUnderwaterFallMaxSpeed; /* 0x7C */ f32 mAcceleration; /* 0x80 */ f32 mDeceleration; /* 0x84 */ f32 mMaxFallSpeed; /* 0x88 */ f32 mMaxFloatUpSpeed; /* 0x8C */ f32 mBuoyancy; /* 0x90 */ f32 mWaitAnmSpeed; /* 0x94 */ f32 mWaitInterpolation; /* 0x98 */ f32 mWaitUpDownShakeAmount; /* 0x9C */ f32 mForwardMinAnmSpeed; /* 0xA0 */ f32 mForwardMaxAnmSpeed; /* 0xA4 */ f32 mStrafeMinAnmSpeed; /* 0xA8 */ f32 mStrafeMaxAnmSpeed; /* 0xAC */ f32 mBackwardMinAnmSpeed; /* 0xB0 */ f32 mBackwardMaxAnmSpeed; /* 0xB4 */ f32 mUnderwaterMinAnmSpeed; /* 0xB8 */ f32 mUnderwaterMaxAnmSpeed; /* 0xBC */ f32 mMoveInterpolation; /* 0xC0 */ f32 mClimbHeight; /* 0xC4 */ f32 mClimbWaterSurfaceUnder; /* 0xC8 */ f32 mForwardMinSpeed; /* 0xCC */ f32 mStandingMaxFallSpeed; /* 0xD0 */ f32 mBootsMaxFallSpeed; /* 0xD4 */ f32 mNormalBuoyancyWaterDepth; /* 0xD8 */ f32 mZoraClothesBuoyancy; /* 0xDC */ f32 mUnderwaterButtonAdditionalSpeed; /* 0xE0 */ f32 mUnderwaterAdditionalAnmSpeed; /* 0xE4 */ f32 mBootsGravity; /* 0xE8 */ f32 mFloatUpSwimSpeedRate; /* 0xEC */ f32 mDashMaxSpeed; /* 0xF0 */ f32 mDashDeceleration; /* 0xF4 */ f32 mDashMinAnmSpeed; /* 0xF8 */ f32 mDashMaxAnmSpeed; }; // Size: 0xFC class daAlinkHIO_swim_c0 { public: static daAlinkHIO_swim_c1 const m; }; class daAlinkHIO_swim_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_swim_c(); ~daAlinkHIO_swim_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_swim_c1 m; #endif }; class daAlinkHIO_wlMove_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSlipAnm; /* 0x14 */ daAlinkHIO_anm_c mReverseAnm; /* 0x28 */ daAlinkHIO_anm_c mADashAnm; /* 0x3C */ daAlinkHIO_anm_c mDashReboundAnm; /* 0x50 */ s16 mTurnMax; /* 0x52 */ s16 mTurnMin; /* 0x54 */ s16 mTurnAngleRate; /* 0x56 */ s16 mADashDuration; /* 0x58 */ s16 mADashCooldownTime; /* 0x5A */ s16 mADashDurationSlow; /* 0x5C */ s16 mADashCooldownTimeSlow; /* 0x5E */ s16 mADashDurationSlow2; /* 0x60 */ s16 mADashCooldownTimeSlow2; /* 0x64 */ f32 mMaxSpeed; /* 0x68 */ f32 mAcceleration; /* 0x6C */ f32 mDeceleration; /* 0x70 */ f32 mIdleAnmSpeed; /* 0x74 */ f32 mWalkAnmSpeed; /* 0x78 */ f32 mBriskWalkAnmSpeed; /* 0x7C */ f32 mRunAnmSpeed; /* 0x80 */ f32 mQuickRunAnmSpeed; /* 0x84 */ f32 mIdleToWalkRate; /* 0x88 */ f32 mWalkToBriskWalkRate; /* 0x8C */ f32 mStandbyRunToRunRate; /* 0x90 */ f32 mRunToQuickRunRate; /* 0x94 */ f32 mNormalInterpolation; /* 0x98 */ f32 mWalkRunInterpolation; /* 0x9C */ f32 mRunAnmMinBlendRate; /* 0xA0 */ f32 mSlipStartRate; /* 0xA4 */ f32 mSlipInitSpeedRate; /* 0xA8 */ f32 mSlipDeceleration; /* 0xAC */ f32 mReverseSpeed; /* 0xB0 */ f32 mIdleReverseStartFrame; /* 0xB4 */ f32 mGazeMaxSpeed; /* 0xB8 */ f32 mGazeIdleAnmSpeed; /* 0xBC */ f32 mIdleInterpolation; /* 0xC0 */ f32 mReverseFallHeight; /* 0xC4 */ f32 mReverseFallInterpolation; /* 0xC8 */ f32 mADashMaxSpeed; /* 0xCC */ f32 mADashQuickRunAnmSpeed; /* 0xD0 */ f32 mADashAcceleration; /* 0xD4 */ f32 mADashInitSpeed; /* 0xD8 */ f32 mDashReboundHorizontalSpeed; /* 0xDC */ f32 mDashReboundVerticalSpeed; /* 0xE0 */ f32 mADashMaxSpeedSlow; /* 0xE4 */ f32 mADashInitSpeedSlow; /* 0xE8 */ f32 mADashQuickRunASpeedSlow; /* 0xEC */ f32 mADashAccelerationSlow; /* 0xF0 */ f32 mADashMaxSpeedSlow2; /* 0xF4 */ f32 mADashInitSpeedSlow2; /* 0xF8 */ f32 mADashQuickRunASpeedSlow2; /* 0xFC */ f32 mADashAccelerationSlow2; }; // Size: 0x100 class daAlinkHIO_wlMove_c0 { public: static daAlinkHIO_wlMove_c1 const m; }; class daAlinkHIO_wlMove_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlMove_c(); ~daAlinkHIO_wlMove_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlMove_c1 m; #endif }; class daAlinkHIO_wlMoveNoP_c1 { public: /* 0x00 */ s16 mTurnMax; /* 0x02 */ s16 mTurnMin; /* 0x04 */ s16 mTurnAngleRate; /* 0x08 */ f32 mMaxSpeed; /* 0x0C */ f32 mAcceleration; /* 0x10 */ f32 mDeceleration; /* 0x14 */ f32 mIdleAnmSpeed; /* 0x18 */ f32 mWalkAnmSpeed; /* 0x1C */ f32 mJogAnmSpeed; /* 0x20 */ f32 mRunAnmSpeed; /* 0x24 */ f32 mIdleToWalkRate; /* 0x28 */ f32 mWalkToJogRate; /* 0x2C */ f32 mJogToRunRate; /* 0x30 */ f32 mWalkRunInterpolation; /* 0x34 */ f32 mRunAnmMinBlendRate; /* 0x38 */ f32 mSlideStartRate; /* 0x3C */ f32 mSlideInitSpeed; /* 0x40 */ f32 mSlideDeceleration; /* 0x44 */ f32 mReverseSpeed; }; // Size: 0x48 class daAlinkHIO_wlMoveNoP_c0 { public: static daAlinkHIO_wlMoveNoP_c1 const m; }; class daAlinkHIO_wlMoveNoP_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlMoveNoP_c(); ~daAlinkHIO_wlMoveNoP_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlMoveNoP_c1 m; #endif }; class daAlinkHIO_wlAtnMove_c1 { public: /* 0x00 */ s16 mTurnAngleMax; /* 0x02 */ s16 mTurnAngleMin; /* 0x04 */ s16 mTurnAngleRate; /* 0x08 */ f32 mWalkAnmSpeed; /* 0x0C */ f32 mRunAnmSpeed; /* 0x10 */ f32 mWalkChangeRate; /* 0x14 */ f32 mRunChangeRate; /* 0x18 */ f32 mMaxSpeed; /* 0x1C */ f32 mAcceleration; /* 0x20 */ f32 mDeceleration; /* 0x24 */ f32 mRearWalkAnmSpeed; /* 0x28 */ f32 mRearWalkChangeRate; /* 0x2C */ f32 mRearMaxSpeed; /* 0x30 */ f32 mRearAcceleration; /* 0x34 */ f32 mRearDeceleration; }; // Size: 0x38 class daAlinkHIO_wlAtnMove_c0 { public: static daAlinkHIO_wlAtnMove_c1 const m; }; class daAlinkHIO_wlAtnMove_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtnMove_c(); ~daAlinkHIO_wlAtnMove_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlAtnMove_c1 m; #endif }; class daAlinkHIO_wlHowl_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mHowlAnm; /* 0x14 */ daAlinkHIO_anm_c mSittingHowlAnm; /* 0x28 */ daAlinkHIO_anm_c mThreatAnm; /* 0x3C */ daAlinkHIO_anm_c mThreatStanceAnm; /* 0x50 */ f32 mThreatMoveInterp; /* 0x54 */ f32 mThreatMoveRate; /* 0x58 */ f32 mThreatMoveMaxAnmSpeed; /* 0x5C */ f32 mThreatMoveMinAnmSpeed; }; // Size: 0x60 class daAlinkHIO_wlHowl_c0 { public: static daAlinkHIO_wlHowl_c1 const m; }; class daAlinkHIO_wlHowl_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlHowl_c(); ~daAlinkHIO_wlHowl_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlHowl_c1 m; #endif }; class daAlinkHIO_wlSideStep_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSideJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mSideLandAnm; /* 0x28 */ daAlinkHIO_anm_c mBackJumpAnm; /* 0x3C */ daAlinkHIO_anm_c mBackLandAnm; /* 0x50 */ f32 mSideJumpHorizSpeed; /* 0x54 */ f32 mSideJumpVertSpeed; /* 0x58 */ f32 mBackJumpHorizSpeed; /* 0x5C */ f32 mBackJumpVertSpeed; /* 0x60 */ f32 mFallHeight; /* 0x64 */ f32 mFallInterp; }; // Size: 0x68 class daAlinkHIO_wlSideStep_c0 { public: static daAlinkHIO_wlSideStep_c1 const m; }; class daAlinkHIO_wlSideStep_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlSideStep_c(); ~daAlinkHIO_wlSideStep_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlSideStep_c1 m; #endif }; class daAlinkHIO_wlBackJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mBackJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mBackLandAnm; /* 0x28 */ f32 mBackJumpHorizSpeed; /* 0x2C */ f32 mBackJumpVertSpeed; /* 0x30 */ f32 mFallHeight; /* 0x34 */ f32 mFallInterp; }; // Size: 0x38 class daAlinkHIO_wlBackJump_c0 { public: static daAlinkHIO_wlBackJump_c1 const m; }; class daAlinkHIO_wlBackJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlBackJump_c(); ~daAlinkHIO_wlBackJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlBackJump_c1 m; #endif }; class daAlinkHIO_wlAutoJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mLandingAnm; /* 0x28 */ daAlinkHIO_anm_c mClimbAnm; /* 0x3C */ u8 mAlwaysMaxSpeedJump; /* 0x3E */ s16 field_0x3e; /* 0x40 */ s16 mJumpAngle; /* 0x42 */ s16 mWeakJumpAngle; /* 0x44 */ f32 mJumpLimitSpeed; /* 0x48 */ f32 mJumpMinSpeed; /* 0x4C */ f32 mJumpSpeedRate; /* 0x50 */ f32 mJumpFallInterp; /* 0x54 */ f32 mNormalFallInterp; /* 0x58 */ f32 mGravity; /* 0x5C */ f32 mMaxFallSpeed; /* 0x60 */ f32 mWeakJumpAnmSpeed; /* 0x64 */ f32 mWeakJumpLimitSpeed; /* 0x68 */ f32 mWeakJumpMinSpeed; /* 0x6C */ f32 mWeakJumpSpeedRate; /* 0x70 */ f32 mJumpMaxSpeed; /* 0x74 */ f32 mWeakJumpMaxSpeed; /* 0x78 */ f32 mHangLimitHeight; }; // size = 0x7C class daAlinkHIO_wlAutoJump_c0 { public: static daAlinkHIO_wlAutoJump_c1 const m; }; class daAlinkHIO_wlAutoJump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAutoJump_c(); ~daAlinkHIO_wlAutoJump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlAutoJump_c1 m; #endif }; class daAlinkHIO_wlPush_c1 { public: /* 0x00 */ f32 mIdleAnmSpeed; /* 0x04 */ f32 mIdleInterp; /* 0x08 */ f32 mPushAnmSpeed; /* 0x0C */ f32 mPushInterp; /* 0x10 */ f32 mHeavyPushAnmSpeed; }; // Size: 0x14 class daAlinkHIO_wlPush_c0 { public: static daAlinkHIO_wlPush_c1 const m; }; class daAlinkHIO_wlPush_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlPush_c(); ~daAlinkHIO_wlPush_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlPush_c1 m; #endif }; class daAlinkHIO_wlLie_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSittingAnm; /* 0x14 */ daAlinkHIO_anm_c mProneStartAnm; /* 0x28 */ s16 mProneTurnRate; /* 0x2A */ s16 mProneTurnMax; /* 0x2C */ s16 mProneTurnMin; /* 0x30 */ f32 mStandUpInterp; /* 0x34 */ f32 mProneMoveRate; /* 0x38 */ f32 mProneMaxAnmSpeed; /* 0x3C */ f32 mProneMinAnmSpeed; /* 0x40 */ f32 mProneMoveInterp; /* 0x44 */ f32 mSittingIdleAnmSpeed; /* 0x48 */ f32 mSittingIdleInterp; }; // Size: 0x4C class daAlinkHIO_wlLie_c0 { public: static daAlinkHIO_wlLie_c1 const m; }; class daAlinkHIO_wlLie_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlLie_c(); ~daAlinkHIO_wlLie_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlLie_c1 m; #endif }; class daAlinkHIO_wlWallHang_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mPreGrabJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mClimbAnm; /* 0x28 */ daAlinkHIO_anm_c mFallGrabAnm; /* 0x3C */ daAlinkHIO_anm_c mWallGrabAnm; /* 0x50 */ daAlinkHIO_anm_c mLedgeClimbAnm; /* 0x64 */ daAlinkHIO_anm_c mLedgeLandAnm; /* 0x78 */ f32 mAutoWalkHeight; /* 0x7C */ f32 mSmallJumpHeight; /* 0x80 */ f32 mWallGrabHeight; /* 0x84 */ f32 mClimbHeight; /* 0x88 */ f32 mHangingFootHeight; /* 0x8C */ f32 mJumpHorizontalSpeed; /* 0x90 */ f32 mJumpTargetHeightOffset; /* 0x94 */ f32 mJumpToFallInterp; /* 0x98 */ f32 mHangingFallInterp; }; // Size: 0x9C class daAlinkHIO_wlWallHang_c0 { public: static daAlinkHIO_wlWallHang_c1 const m; }; class daAlinkHIO_wlWallHang_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlWallHang_c(); ~daAlinkHIO_wlWallHang_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlWallHang_c1 m; #endif }; class daAlinkHIO_wlDamNormal_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mForwardAnm; /* 0x14 */ daAlinkHIO_anm_c mBackwardAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftAnm; /* 0x3C */ daAlinkHIO_anm_c mRightAnm; /* 0x50 */ f32 mInitSpeed; /* 0x54 */ f32 mAttackSpeedRate; /* 0x58 */ f32 mDeceleration; /* 0x5C */ f32 mIceDamageAnmSpeed; }; // Size: 0x60 class daAlinkHIO_wlDamNormal_c0 { public: static daAlinkHIO_wlDamNormal_c1 const m; }; class daAlinkHIO_wlDamNormal_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlDamNormal_c(); ~daAlinkHIO_wlDamNormal_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlDamNormal_c1 m; #endif }; class daAlinkHIO_wlDamLaHu_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontRiseAnm; /* 0x14 */ daAlinkHIO_anm_c mBackRiseAnm; /* 0x28 */ daAlinkHIO_anm_c mLeftRiseAnm; /* 0x3C */ daAlinkHIO_anm_c mRightRiseAnm; /* 0x50 */ s16 mBodyRotationSpeed; /* 0x54 */ f32 mGravity; /* 0x58 */ f32 mDamageInterp; /* 0x5C */ f32 mHorizontalSpeed; /* 0x60 */ f32 mVerticalSpeed; /* 0x64 */ f32 mBounceSpeed; /* 0x68 */ f32 mDeceleration; }; // Size: 0x6C class daAlinkHIO_wlDamLarge_c0 { public: static daAlinkHIO_wlDamLaHu_c1 const m; }; class daAlinkHIO_wlDamHuge_c0 { public: static daAlinkHIO_wlDamLaHu_c1 const m; }; class daAlinkHIO_wlDamLaHu_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlDamLaHu_c(int); ~daAlinkHIO_wlDamLaHu_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlDamLaHu_c1 m; #endif }; class daAlinkHIO_wlDamCaught_c1 { public: /* 0x00 */ s16 mCaughtTime; /* 0x02 */ s16 mInputDecayTime; /* 0x04 */ f32 mCaughtSpeed; /* 0x08 */ f32 mWaitInterp; /* 0x0C */ f32 mWaitAddAnmSpeed; }; // Size: 0x10 class daAlinkHIO_wlDamCaught_c0 { public: static daAlinkHIO_wlDamCaught_c1 const m; }; class daAlinkHIO_wlDamCaught_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlDamCaught_c(); ~daAlinkHIO_wlDamCaught_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlDamCaught_c1 m; #endif }; class daAlinkHIO_wlDamFall_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLandingAnm; /* 0x14 */ daAlinkHIO_anm_c mRightRiseAnm; /* 0x28 */ s16 mSmallStopTime; /* 0x2A */ s16 mLargeStopTime; /* 0x2C */ f32 mSmallDamageHeight; /* 0x30 */ f32 mLargeDamageHeight; /* 0x34 */ f32 mSmallDamageLandingStartFrame; /* 0x38 */ f32 mAirAnmTransitionHeight; /* 0x3C */ f32 mAirAnmInterp; }; // Size: 0x40 class daAlinkHIO_wlDamFall_c0 { public: static daAlinkHIO_wlDamFall_c1 const m; }; class daAlinkHIO_wlDamFall_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlDamFall_c(); ~daAlinkHIO_wlDamFall_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlDamFall_c1 m; #endif }; class daAlinkHIO_wlDamage_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mRunningAnm; /* 0x14 */ daAlinkHIO_anm_c mPolygonAnm; /* 0x28 */ f32 mReturnWakeupAnmSpeed; }; // Size: 0x2C class daAlinkHIO_wlDamage_c0 { public: static daAlinkHIO_wlDamage_c1 const m; static daAlinkHIO_wlDamNormal_c0 const mNormal; static daAlinkHIO_wlDamLarge_c0 const mLarge; static daAlinkHIO_wlDamHuge_c0 const mHuge; static daAlinkHIO_wlDamFall_c0 const mFall; static daAlinkHIO_wlDamCaught_c0 const mCapture; }; class daAlinkHIO_wlDamage_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlDamage_c(); ~daAlinkHIO_wlDamage_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlDamage_c1 m; #endif /* 0x00 */ daAlinkHIO_wlDamNormal_c mNormal; /* 0x00 */ daAlinkHIO_wlDamLaHu_c mLarge; /* 0x00 */ daAlinkHIO_wlDamLaHu_c mHuge; /* 0x00 */ daAlinkHIO_wlDamFall_c mFall; /* 0x00 */ daAlinkHIO_wlDamCaught_c mCapture; }; class daAlinkHIO_wlSlide_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontSlideAnm; /* 0x14 */ daAlinkHIO_anm_c mBackSlideAnm; /* 0x28 */ daAlinkHIO_anm_c mLandingAnm; /* 0x3c */ daAlinkHIO_anm_c mSlipDownRecoveryAnm; /* 0x50 */ s16 mSlipDownRotationMax; /* 0x52 */ s16 mSlipDownRotationMin; /* 0x54 */ f32 mMaxSpeed; /* 0x58 */ f32 mAcceleration; /* 0x5c */ f32 mSlidingAngle; /* 0x60 */ f32 mClimbingAngle; /* 0x64 */ f32 mClimbingAnmSpeed; /* 0x68 */ f32 mClimbingMaxSpeed; /* 0x6c */ f32 mClimbingAnmSpeedWeak; /* 0x70 */ f32 mClimbingMaxSpeedWeak; /* 0x74 */ f32 mSlipDownAcceleration; /* 0x78 */ f32 mSlipDownMaxSpeed; }; // Size: 0x7C class daAlinkHIO_wlSlide_c0 { public: static daAlinkHIO_wlSlide_c1 const m; }; class daAlinkHIO_wlSlide_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlSlide_c(); ~daAlinkHIO_wlSlide_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlSlide_c1 m; #endif }; class daAlinkHIO_wlRope_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFlipAnm; /* 0x14 */ s16 mSwingAngle; /* 0x16 */ s16 mMovementSwayTransitionTime; /* 0x18 */ f32 mMovementMinAnmSpeed; /* 0x1c */ f32 mMovementMaxAnmSpeed; /* 0x20 */ f32 mMovementInterpolation; /* 0x24 */ f32 mMovementRate; /* 0x28 */ f32 mTwistClimbAnmSpeed; /* 0x2c */ f32 mFallInterpolation; /* 0x30 */ f32 mTwistClimbInterpolation; /* 0x34 */ f32 mBackMovementMaxAnmSpeed; }; // Size: 0x38 class daAlinkHIO_wlRope_c0 { public: static daAlinkHIO_wlRope_c1 const m; }; class daAlinkHIO_wlRope_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlRope_c(); ~daAlinkHIO_wlRope_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlRope_c1 m; #endif }; class daAlinkHIO_wlAtWait_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mAttackAnm; /* 0x14 */ s16 mStopTime; /* 0x16 */ s16 mComboMidStopTime; /* 0x18 */ f32 mSpeed; /* 0x1C */ f32 mSpeedAddForward; /* 0x20 */ f32 mAttackJudgmentStartForward; /* 0x24 */ f32 mAttackJudgmentEndForward; /* 0x28 */ f32 mComboMidCF; /* 0x2C */ f32 mComboMidStartF; /* 0x30 */ f32 mAttackRadiusOffset; /* 0x34 */ f32 mAttackRadius; /* 0x38 */ f32 mAttackHeight; }; // Size: 0x3C class daAlinkHIO_wlAtWaTl_c0 { public: static daAlinkHIO_wlAtWait_c1 const m; }; class daAlinkHIO_wlAtWaSc_c0 { public: static daAlinkHIO_wlAtWait_c1 const m; }; class daAlinkHIO_wlAtWaLr_c0 { public: static daAlinkHIO_wlAtWait_c1 const m; }; class daAlinkHIO_wlAtWait_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtWait_c(int, float); ~daAlinkHIO_wlAtWait_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x34 */ f32 field_0x34; /* 0x38 */ daAlinkHIO_wlAtWait_c1 m; }; // Size: 0x74 class daAlinkHIO_wlAtRoll_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mAttackAnm; /* 0x14 */ f32 mAttackRadius; /* 0x18 */ f32 mAttackSpeed; /* 0x1c */ f32 mSpiderThreadEscapeStartF; }; // Size: 0x20 class daAlinkHIO_wlAtRoll_c0 { public: static daAlinkHIO_wlAtRoll_c1 const m; }; class daAlinkHIO_wlAtRoll_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtRoll_c(); ~daAlinkHIO_wlAtRoll_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtRoll_c1 m; #endif }; // Size: 0x54 class daAlinkHIO_wlAtNjump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mAerialAttackAnm; /* 0x14 */ f32 mAttackInitSpeed; /* 0x18 */ f32 mMaxHorizontalSpeed; /* 0x1c */ f32 mMaxVerticalSpeed; /* 0x20 */ f32 mMinVerticalSpeed; /* 0x24 */ f32 mAerialAnmSpeed; /* 0x28 */ f32 mAerialInterpolation; /* 0x2c */ f32 mAttackRadiusOffset; /* 0x30 */ f32 mAttackRadius; /* 0x34 */ f32 mAttackHeight; /* 0x38 */ f32 mMinHorizontalSpeed; }; // Size: 0x3C class daAlinkHIO_wlAtNjump_c0 { public: static daAlinkHIO_wlAtNjump_c1 const m; }; class daAlinkHIO_wlAtNjump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtNjump_c(); ~daAlinkHIO_wlAtNjump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtNjump_c1 m; #endif }; // Size: 0x70 class daAlinkHIO_wlAtCjump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mAerialAttackAnm; /* 0x14 */ daAlinkHIO_anm_c mFlipKickAnm; /* 0x28 */ f32 mAttackInitSpeed; /* 0x2c */ f32 mMaxHorizontalSpeed; /* 0x30 */ f32 mMaxVerticalSpeed; /* 0x34 */ f32 mMinVerticalSpeed; /* 0x38 */ f32 mAerialAnmSpeed; /* 0x3c */ f32 mAerialInterpolation; /* 0x40 */ f32 mFlipKickPostStartF; /* 0x44 */ f32 mFlipKickPostAnmSpeed; /* 0x48 */ f32 mAttackRadiusOffset; /* 0x4c */ f32 mAttackRadius; /* 0x50 */ f32 mAttackHeight; /* 0x54 */ f32 mMinHorizontalSpeed; /* 0x58 */ f32 mHitDecelRate; /* 0x5c */ f32 mHitMinSpeed; /* 0x60 */ f32 mHitDecel; }; // Size: 0x64 class daAlinkHIO_wlAtCjump_c0 { public: static daAlinkHIO_wlAtCjump_c1 const m; }; class daAlinkHIO_wlAtCjump_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtCjump_c(); ~daAlinkHIO_wlAtCjump_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtCjump_c1 m; #endif }; // Size: 0x98 class daAlinkHIO_wlAtLand_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mNormalLandingAnm; /* 0x14 */ daAlinkHIO_anm_c mFrontSlideAnm; /* 0x28 */ daAlinkHIO_anm_c mBackSlideAnm; /* 0x3C */ f32 mSlideDeceleration; }; // Size: 0x40 class daAlinkHIO_wlAtLand_c0 { public: static daAlinkHIO_wlAtLand_c1 const m; }; class daAlinkHIO_wlAtLand_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtLand_c(); ~daAlinkHIO_wlAtLand_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtLand_c1 m; #endif }; // Size: 0x74 class daAlinkHIO_wlAtDown_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLowStanceAnm; /* 0x14 */ daAlinkHIO_anm_c mPushDownAnm; /* 0x28 */ daAlinkHIO_anm_c mFrontRollAnm; /* 0x3C */ daAlinkHIO_anm_c mCrouchAnm; /* 0x50 */ daAlinkHIO_anm_c mBackRollAnm; /* 0x64 */ daAlinkHIO_anm_c mRollOverAnm; /* 0x78 */ daAlinkHIO_anm_c mProneGetUpAnm; /* 0x8C */ s16 field_0x8C; /* 0x8E */ s16 mFallDuration; /* 0x90 */ f32 mSideRollMovementWidth; /* 0x94 */ f32 mLandingSideRollMovementWidth; /* 0x98 */ f32 mLandingFrontBackMovementWidth; }; // Size: 0x9C class daAlinkHIO_wlAtDown_c0 { public: static daAlinkHIO_wlAtDown_c1 const m; }; class daAlinkHIO_wlAtDown_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtDown_c(); ~daAlinkHIO_wlAtDown_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtDown_c1 m; #endif }; // Size: 0xD0 class daAlinkHIO_wlAtLock_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFrontLandingAnm; /* 0x14 */ daAlinkHIO_anm_c mRearLandingAnm; /* 0x28 */ s16 mAutoActivationTime; /* 0x2C */ f32 mStartRadius; /* 0x30 */ f32 mMaxRadius; /* 0x34 */ f32 mRadiusAcceleration; /* 0x38 */ f32 mAttackSpeed; /* 0x3C */ f32 mAttackRadiusOffset; /* 0x40 */ f32 mAttackRadius; /* 0x44 */ f32 mAttackHeight; /* 0x48 */ f32 mGravity; /* 0x4C */ f32 mMaxJumpHeight; /* 0x50 */ f32 mMaxJumpDistance; }; // Size: 0x54 class daAlinkHIO_wlAtLock_c0 { public: static daAlinkHIO_wlAtLock_c1 const m; }; class daAlinkHIO_wlAtLock_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtLock_c(); ~daAlinkHIO_wlAtLock_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtLock_c1 m; #endif }; // Size: 0x88 class daAlinkHIO_wlAtBite_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mBitePreparationAnm; /* 0x14 */ daAlinkHIO_anm_c mHangingBitePreparationAnm; /* 0x28 */ s16 mBiteAttachTime; /* 0x2A */ s16 field_0x2A; /* 0x2C */ f32 mEnemyBiteThrowAnmSpeed; /* 0x30 */ f32 mEnemyBiteThrowInterpolation; /* 0x34 */ f32 mEnemyBiteThrowCF; /* 0x38 */ f32 mBitePreparationMidStartF; /* 0x3C */ f32 mBiteMidAnmSpeedMin; /* 0x40 */ f32 mHangingBiteMidAnmSpeedMin; /* 0x44 */ f32 mBiteMidAnmSpeedMax; /* 0x48 */ f32 mHangingBiteMidAnmSpeedMax; /* 0x4C */ f32 mBiteMidAnmSpeedAcceleration; /* 0x50 */ f32 mHangingBiteMidAnmSpeedAcceleration; /* 0x54 */ f32 mBiteMidAnmSpeedDeceleration; /* 0x58 */ f32 mHangingBiteMidAnmSpeedDeceleration; }; // Size: 0x5C class daAlinkHIO_wlAtBite_c0 { public: static daAlinkHIO_wlAtBite_c1 const m; }; class daAlinkHIO_wlAtBite_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAtBite_c(); ~daAlinkHIO_wlAtBite_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlAtBite_c1 m; #endif }; // Size: 0x90 class daAlinkHIO_wlAttack_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJumpBackLandAnm; /* 0x14 */ s16 mChargeTime; /* 0x16 */ s16 mComboDuration; /* 0x18 */ f32 mFallHeight; /* 0x1C */ f32 mFallInterpolation; /* 0x20 */ f32 mReadyInterpolation; /* 0x24 */ f32 mAttackRange; /* 0x28 */ f32 mJumpBackSpeedH; /* 0x2C */ f32 mJumpBackSpeedV; /* 0x30 */ f32 mJumpAttackSpeedV; /* 0x34 */ f32 mJumpAttackSpeedH; }; // Size: 0x38 class daAlinkHIO_wlAttack_c0 { public: static daAlinkHIO_wlAtWaLr_c0 const mHorizontalAttack; static daAlinkHIO_wlAtWaSc_c0 const mScratchAttack; static daAlinkHIO_wlAtWaTl_c0 const mTailAttack; static daAlinkHIO_wlAtRoll_c0 const mAtRoll; static daAlinkHIO_wlAtNjump_c0 const mWlAtNjump; static daAlinkHIO_wlAtCjump_c0 const mWlAtCjump; static daAlinkHIO_wlAtLand_c0 const mWlAtLand; static daAlinkHIO_wlAtDown_c0 const mWlAtDown; static daAlinkHIO_wlAtLock_c0 const mWlAtLock; static daAlinkHIO_wlAtBite_c0 const mWlAtBite; static daAlinkHIO_wlAttack_c1 const m; }; class daAlinkHIO_wlAttack_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlAttack_c(); ~daAlinkHIO_wlAttack_c(); virtual void genMessage(JORMContext*); #endif public: /* 0x034 */ daAlinkHIO_wlAtWait_c mHorizontalAttack; /* 0x0A8 */ daAlinkHIO_wlAtWait_c mScratchAttack; /* 0x11C */ daAlinkHIO_wlAtWait_c mTailAttack; /* 0x190 */ daAlinkHIO_wlAtRoll_c mAtRoll; /* 0x1E4 */ daAlinkHIO_wlAtNjump_c mWlAtNjump; /* 0x254 */ daAlinkHIO_wlAtCjump_c mWlAtCjump; /* 0x2EC */ daAlinkHIO_wlAtLand_c mWlAtLand; /* 0x360 */ daAlinkHIO_wlAtDown_c mWlAtDown; /* 0x430 */ daAlinkHIO_wlAtLock_c mWlAtLock; /* 0x4B8 */ daAlinkHIO_wlAtBite_c mWlAtBite; /* 0x548 */ daAlinkHIO_wlAttack_c1 m; }; class daAlinkHIO_wlPoint_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mForwardJumpAnm; /* 0x14 */ daAlinkHIO_anm_c mBackwardJumpAnm; /* 0x28 */ daAlinkHIO_anm_c mLandingAnm; /* 0x3C */ daAlinkHIO_anm_c mTagLandingAnm; /* 0x50 */ s16 mLockJumpStopTime; /* 0x54 */ f32 mIdleAnmSpeed; /* 0x58 */ f32 mIdleInterpolation; /* 0x5C */ f32 mAerialInterpolation; /* 0x60 */ f32 mJumpSpeed; /* 0x64 */ f32 mFailureJumpSpeed; /* 0x68 */ f32 mTagJumpSpeed; /* 0x6C */ f32 mLockLandingIceInitSpeed; /* 0x70 */ f32 mLockLandingIceDecelRate; /* 0x74 */ f32 mLockLandingIceMaxDecel; /* 0x78 */ f32 mLockLandingIceMinDecel; }; // Size: 0x7C class daAlinkHIO_wlPoint_c0 { public: static daAlinkHIO_wlPoint_c1 const m; }; class daAlinkHIO_wlPoint_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlPoint_c(); ~daAlinkHIO_wlPoint_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlPoint_c1 m; #endif }; class daAlinkHIO_wlChain_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLoweringStartAnm; /* 0x14 */ daAlinkHIO_anm_c mDigAnm; /* 0x28 */ daAlinkHIO_anm_c mDigFallAnm; /* 0x3C */ s16 mTensionWaitTime; /* 0x3E */ s16 mReleaseWaitTime; /* 0x40 */ f32 mWaitAnmSpeed; /* 0x44 */ f32 mWaitInterp; /* 0x48 */ f32 mSwingAnmSpeed; /* 0x4C */ f32 mSwingInterp; /* 0x50 */ f32 mFallSpeed; /* 0x54 */ f32 mSniffAnmSpeed; /* 0x58 */ f32 mSniffInterp; }; // Size: 0x5C class daAlinkHIO_wlChain_c0 { public: static daAlinkHIO_wlChain_c1 const m; }; class daAlinkHIO_wlChain_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlChain_c(); ~daAlinkHIO_wlChain_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlChain_c1 m; #endif }; class daAlinkHIO_wlSwim_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSurfacingAnm; /* 0x14 */ daAlinkHIO_anm_c mWaterSplashIdleAnm; /* 0x28 */ daAlinkHIO_anm_c mDashAnm; /* 0x3C */ s16 mTurnRate; /* 0x3E */ s16 mTurnMin; /* 0x40 */ s16 mTurnMax; /* 0x42 */ s16 mIdleTurnRate; /* 0x44 */ s16 mIdleTurnMin; /* 0x46 */ s16 mIdleTurnMax; /* 0x48 */ f32 mStartHeight; /* 0x4C */ f32 mSurfacingHeight; /* 0x50 */ f32 mMaxSpeed; /* 0x54 */ f32 mDeceleration; /* 0x58 */ f32 mMaxFallSpeed; /* 0x5C */ f32 mMaxSurfacingSpeed; /* 0x60 */ f32 mBuoyancy; /* 0x64 */ f32 mIdleAnmSpeed; /* 0x68 */ f32 mIdleInterp; /* 0x6C */ f32 mIdleUpDownSwayAmount; /* 0x70 */ f32 mMoveMinAnmSpeed; /* 0x74 */ f32 mMoveMaxAnmSpeed; /* 0x78 */ f32 mMoveInterp; /* 0x7C */ f32 mClimbHeight; /* 0x80 */ f32 mMaxSpeedWeak; /* 0x84 */ f32 mDecelerationWeak; /* 0x88 */ f32 mIdleAnmSpeedWeak; /* 0x8C */ f32 mMoveMinAnmSpeedWeak; /* 0x90 */ f32 mMoveMaxAnmSpeedWeak; /* 0x94 */ f32 mClimbBelowWaterSurface; /* 0x98 */ f32 mHeavyIdleUpDownSwayAmount; /* 0x9C */ f32 mHeavyBuoyancy; /* 0xA0 */ f32 mHeavyMaxFallSpeed; /* 0xA4 */ f32 mHeavyMaxSurfacingSpeed; }; // Size: 0xA8 class daAlinkHIO_wlSwim_c0 { public: static daAlinkHIO_wlSwim_c1 const m; }; class daAlinkHIO_wlSwim_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlSwim_c(); ~daAlinkHIO_wlSwim_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlSwim_c1 m; #endif }; class daAlinkHIO_wlGrab_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mPotGrabAnm; /* 0x14 */ daAlinkHIO_anm_c mPotReleaseAnm; /* 0x28 */ daAlinkHIO_anm_c mBoneGrabAnm; /* 0x3C */ daAlinkHIO_anm_c mBoneReleaseAnm; /* 0x50 */ daAlinkHIO_anm_c mThrowAnm; }; // Size: 0x64 class daAlinkHIO_wlGrab_c0 { public: static daAlinkHIO_wlGrab_c1 const m; }; class daAlinkHIO_wlGrab_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlGrab_c(); ~daAlinkHIO_wlGrab_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlGrab_c1 m; #endif }; class daAlinkHIO_wlBall_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mFullBodyAnm; /* 0x14 */ daAlinkHIO_anm_c mNeckAnm; /* 0x28 */ s16 mMpConsumptionTime; /* 0x2C */ f32 mLifeOrbGravity; /* 0x30 */ f32 mLifeOrbHorizSpeed; /* 0x34 */ f32 mLifeOrbVertSpeed; }; // Size: 0x38 class daAlinkHIO_wlBall_c0 { public: static daAlinkHIO_wlBall_c1 const m; }; class daAlinkHIO_wlBall_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wlBall_c(); ~daAlinkHIO_wlBall_c(); virtual void genMessage(JORMContext*); #endif public: #if DEBUG /* 0x00 */ daAlinkHIO_wlBall_c1 m; #endif }; class daAlinkHIO_wolf_c1 { public: /* 0x00 */ s16 mMaxNeckTurnH; /* 0x02 */ s16 mMaxNeckTurnUp; /* 0x04 */ s16 mMaxNeckTurnDown; /* 0x06 */ s16 mMaxTiredNeckTurnH; /* 0x08 */ s16 mMaxTiredNeckTurnUp; /* 0x0A */ s16 mMaxTiredNeckTurnDown; /* 0x0C */ s16 mSensesLingerTime; // ? /* 0x0E */ s16 mLightDropR; /* 0x10 */ s16 mLightDropG; /* 0x12 */ s16 mLightDropB; /* 0x14 */ f32 mUnderwaterInputRate; }; // Size: 0x18 class daAlinkHIO_wolf_c0 { public: static daAlinkHIO_wlMove_c0 const mWlMove; static daAlinkHIO_wlMoveNoP_c0 const mWlMoveNoP; static daAlinkHIO_wlAtnMove_c0 const mWlAtnMove; static daAlinkHIO_wlSideStep_c0 const mWlSideStep; static daAlinkHIO_wlBackJump_c0 const mWlBackJump; static daAlinkHIO_wlHowl_c0 const mWlHowl; static daAlinkHIO_wlAutoJump_c0 const mWlAutoJump; static daAlinkHIO_wlPush_c0 const mWlPush; static daAlinkHIO_wlLie_c0 const mWlLie; static daAlinkHIO_wlLight_c0 const mLight; static daAlinkHIO_wlWallHang_c0 const mWlWallHang; static daAlinkHIO_wlDamage_c0 const mWlDamage; static daAlinkHIO_wlSlide_c0 const mWlSlide; static daAlinkHIO_wlRope_c0 const mWlRope; static daAlinkHIO_wlAttack_c0 const mWlAttack; static daAlinkHIO_wlPoint_c0 const mWlPoint; static daAlinkHIO_wlChain_c0 const mWlChain; static daAlinkHIO_wlSwim_c0 const mWlSwim; static daAlinkHIO_wlGrab_c0 const mWlGrab; static daAlinkHIO_wlBall_c0 const mWlBall; static daAlinkHIO_wolf_c1 const m; }; class daAlinkHIO_wolf_c : public daAlinkHIO_data_c { public: #if DEBUG daAlinkHIO_wolf_c(); ~daAlinkHIO_wolf_c(); virtual void genMessage(JORMContext*); #else ~daAlinkHIO_wolf_c(); #endif public: #if DEBUG /* 0x34 */ daAlinkHIO_wlMove_c mWlMove; /* 0x00 */ daAlinkHIO_wlMoveNoP_c mWlMoveNoP; /* 0x00 */ daAlinkHIO_wlAtnMove_c mWlAtnMove; /* 0x00 */ daAlinkHIO_wlSideStep_c mWlSideStep; /* 0x00 */ daAlinkHIO_wlBackJump_c mWlBackJump; /* 0x00 */ daAlinkHIO_wlHowl_c mWlHowl; /* 0x00 */ daAlinkHIO_wlAutoJump_c mWlAutoJump; /* 0x00 */ daAlinkHIO_wlPush_c mWlPush; /* 0x00 */ daAlinkHIO_wlLie_c mWlLie; /* 0x00 */ daAlinkHIO_light_c mLight; /* 0x00 */ daAlinkHIO_wlWallHang_c mWlWallHang; /* 0x00 */ daAlinkHIO_wlDamage_c mWlDamage; /* 0x00 */ daAlinkHIO_wlSlide_c mWlSlide; /* 0x00 */ daAlinkHIO_wlRope_c mWlRope; /* 0x00 */ daAlinkHIO_wlAttack_c mWlAttack; /* 0x00 */ daAlinkHIO_wlPoint_c mWlPoint; /* 0x00 */ daAlinkHIO_wlChain_c mWlChain; /* 0x00 */ daAlinkHIO_wlSwim_c mWlSwim; /* 0x00 */ daAlinkHIO_wlGrab_c mWlGrab; /* 0x00 */ daAlinkHIO_wlBall_c mWlBall; /* 0x00 */ daAlinkHIO_wolf_c1 m; #endif }; class daAlinkHIO_c #if DEBUG : public mDoHIO_entry_c #endif { public: daAlinkHIO_c(); virtual ~daAlinkHIO_c(); void jumpStateUpdate(const cXyz*, const cXyz*, f32); void genMessage(JORMContext*); #if DEBUG void readFileData(char*); size_t makeFileOutData(char*, char*); void listenPropertyEvent(const JORPropertyEvent*); enum PropertyID_e { PROPERTY_POS_DISP_e = 0x4000002, PROPERTY_RESET_e = 0x4000003, PROPERTY_SAVE_FILE_e = 0x4000004, PROPERTY_LOAD_FILE_e = 0x4000005, PROPERTY_JUMP_HDIST_DISP_e = 0x4000006, PROPERTY_JUMP_VDIST_DISP_e = 0x4000007, }; /* 0x0008 */ daAlinkHIO_basic_c mBasic; /* 0x0094 */ daAlinkHIO_move_c mMove; /* 0x0120 */ daAlinkHIO_atnMove_c mAtnMove; /* 0x01A8 */ daAlinkHIO_noActAtnMove_c mNoActAtnMove; /* 0x0230 */ daAlinkHIO_frontRoll_c mFrontRoll; /* 0x02D4 */ daAlinkHIO_backJump_c mBackJump; /* 0x0340 */ daAlinkHIO_sideStep_c mSideStep; /* 0x03DC */ daAlinkHIO_slide_c mSlide; /* 0x0488 */ daAlinkHIO_cut_c mCut; /* 0x0FFC */ daAlinkHIO_guard_c mGuard; /* 0x11C8 */ daAlinkHIO_crouch_c mCrouch; /* 0x1248 */ daAlinkHIO_autoJump_c mAutoJump; /* 0x1330 */ daAlinkHIO_wallHang_c mWallHang; /* 0x1528 */ daAlinkHIO_pushpull_c mPushpull; /* 0x1598 */ daAlinkHIO_damage_c mDamage; /* 0x1A90 */ daAlinkHIO_horse_c mHorse; /* 0x1B30 */ daAlinkHIO_canoe_c mCanoe; /* 0x1BAC */ daAlinkHIO_item_c mItem; /* 0x2420 */ daAlinkHIO_ladder_c mLadder; /* 0x24C4 */ daAlinkHIO_roofHang_c mRoofHang; /* 0x2544 */ daAlinkHIO_grab_c mGrab; /* 0x265C */ daAlinkHIO_swim_c mSwim; /* 0x278C */ daAlinkHIO_wolf_c mWolf; #else // TODO: What's with these first few members on retail? // The individual HIO members (e.g. mCut) have their class changed on retail compared to debug (_c -> _c0). // But it seems like the debug _c members might also exist on retail based on the dtor. // But they can't have the same name as they do on debug since those names are reserved for the _c0 version. /* 0x04 */ u8 field_0x4[0xC - 0x4]; /* 0x0C */ daAlinkHIO_cut_c mCut_2; /* 0x0D */ u8 field_0xD[0x4B - 0xD]; /* 0x4B */ daAlinkHIO_wolf_c mWolf_2; daAlinkHIO_basic_c0 mBasic; daAlinkHIO_move_c0 mMove; daAlinkHIO_atnMove_c0 mAtnMove; daAlinkHIO_noActAtnMove_c0 mNoActAtnMove; daAlinkHIO_frontRoll_c0 mFrontRoll; daAlinkHIO_backJump_c0 mBackJump; daAlinkHIO_sideStep_c0 mSideStep; daAlinkHIO_slide_c0 mSlide; daAlinkHIO_cut_c0 mCut; daAlinkHIO_guard_c0 mGuard; daAlinkHIO_crouch_c0 mCrouch; daAlinkHIO_autoJump_c0 mAutoJump; daAlinkHIO_wallHang_c0 mWallHang; daAlinkHIO_pushpull_c0 mPushpull; daAlinkHIO_damage_c0 mDamage; daAlinkHIO_horse_c0 mHorse; daAlinkHIO_canoe_c0 mCanoe; daAlinkHIO_item_c0 mItem; daAlinkHIO_ladder_c0 mLadder; daAlinkHIO_roofHang_c0 mRoofHang; daAlinkHIO_grab_c0 mGrab; daAlinkHIO_swim_c0 mSwim; daAlinkHIO_wolf_c0 mWolf; u8 padding[0x6C - 0x64]; #endif }; 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); struct daAlink_cutParamTbl { /* 0x0 */ daAlink_c::daAlink_ANM m_anmID; /* 0x4 */ daAlink_c::daAlink_ANM m_recoilAnmID; /* 0x8 */ u8 m_cutType; /* 0x9 */ u8 m_atSe; /* 0xA */ u8 field_0xa; /* 0xB */ u8 field_0xb; /* 0xC */ f32 m_morf; }; // Size: 0x10 struct daAlink_cutHorseParamTbl { /* 0x0 */ daAlink_c::daAlink_FTANM m_faceanm; /* 0x4 */ u16 m_upperAnm; /* 0x6 */ u16 m_faceBtk; /* 0x8 */ u8 field_0x8; /* 0x9 */ u8 field_0x9; /* 0xA */ u8 m_cutType; }; // Size: 0xC inline BOOL dComIfGs_isTransformLV(int i_no); inline BOOL dComIfGs_isEventBit(const u16); static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data); static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* i_actor, void* i_data); static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void* i_data); static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* i_actor, void* i_data); inline daAlink_c* daAlink_getAlinkActorClass() { return (daAlink_c*)dComIfGp_getLinkPlayer(); } #endif /* D_A_D_A_ALINK_H */