diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-08-30 14:22:17 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-30 15:22:17 -0600 |
| commit | f8979749e3ef8e8cacf2ea8f474c7f23fc5cb6b3 (patch) | |
| tree | 69659df2105266e9b26a4d50b9a2d610b3e437a2 /include/d | |
| parent | bc30d007e11458a198c5725626a10bb06a5da536 (diff) | |
j2d / map_path work, d_drawlist / d_attention cleanup (#208)
* work on fop actor / actor mng, daalink, d_a_obj_item
* d_a_title mostly decompiled
* daalink / d_event / JMessage / dmsg_out_font work
* msg_scrn_base / msg_scrn_boss
* some work on mDo machine, d_menu_save, d_tresure, and various
* remove asm
* progress
* finish d_menu_save / d_pane_class_alpha / d_pane_class / rename some data
* rename more data
* remove asm / progress
* match all of d_pane_class
* fixes / some dKankyo doc
* bunch of j2d work. d_drawlist / d_attention cleanup
* progress / asm
* cleanup wip
* decompile JStage
* setup some more JStudio structs
* set up d_demo classes
* some d_demo work
* cleanup dolphin os stuff
* some initial dEvent documentation
* some At collision documentation
* match JUTConsole::doDraw
* dbgs work / split up some of d_a_alink into .inc files
* d_a_alink_spinner work
Diffstat (limited to 'include/d')
28 files changed, 2069 insertions, 610 deletions
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index b7bc9b5bd6..16cdfbc8b9 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -19,10 +19,10 @@ #include "d/particle/d_particle.h" #include "d/particle/d_particle_copoly.h" #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "f_op/f_op_scene.h" #include "rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h" #include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h" -#include "f_op/f_op_scene.h" -#include "f_op/f_op_actor_mng.h" class fopEn_enemy_c; class daAlinkHIO_anm_c; @@ -90,7 +90,7 @@ public: /* 80125BF4 */ virtual void draw(); /* 800CFD58 */ virtual ~daAlink_blur_c(); -// private: + // private: /* 0x010 */ void* m_blurTex; /* 0x014 */ int field_0x14; /* 0x018 */ u8 field_0x18[4]; @@ -180,28 +180,38 @@ typedef int (daAlink_c::*daAlink_procFunc)(); class daAlink_c : public daPy_py_c { public: enum daAlink_ANM { - /* 0x13 */ ANM_DASH = 19, - /* 0x15 */ ANM_WAIT_TURN = 0x15, - /* 0x19 */ ANM_IDLE = 0x19, // name might be inaccurate - /* 0x1B */ ANM_WAIT_INIT = 0x1B, - /* 0x1D */ ANM_SIDE_STEP_LEFT = 0x1D, - /* 0x1E */ ANM_SIDE_STEP_RIGHT, - /* 0x1F */ ANM_SIDE_STEP_LEFT_LAND, - /* 0x20 */ ANM_SIDE_STEP_RIGHT_LAND, - /* 0x21 */ ANM_BACK_JUMP = 0x21, - /* 0x22 */ ANM_BACK_JUMP_LAND, - /* 0x23 */ ANM_FRONT_ROLL, - /* 0x24 */ ANM_ROLL_CRASH, - /* 0x71 */ ANM_CUT_JUMP = 0x71, - /* 0x90 */ ANM_SERVICE_WAIT = 0x90, - /* 0xB6 */ ANM_TIRED_WAIT = 0xB6, - /* 0xB7 */ ANM_TIRED_WAIT_INIT, - /* 0xBD */ ANM_FORWARD_SLIDE = 0xBD, - /* 0xBE */ ANM_BACKWARD_SLIDE, - /* 0xBF */ ANM_BACKWARD_SLIDE_LAND, - /* 0xC0 */ ANM_FORWARD_SLIDE_LAND, - - /* 0xFD */ ANM_TRANSFORM_WOLF = 0xFD, // verify + /* 0x013 */ ANM_DASH = 19, + /* 0x015 */ ANM_WAIT_TURN = 0x15, + /* 0x019 */ ANM_IDLE = 0x19, // name might be inaccurate + /* 0x01B */ ANM_WAIT_INIT = 0x1B, + /* 0x01D */ ANM_SIDE_STEP_LEFT = 0x1D, + /* 0x01E */ ANM_SIDE_STEP_RIGHT, + /* 0x01F */ ANM_SIDE_STEP_LEFT_LAND, + /* 0x020 */ ANM_SIDE_STEP_RIGHT_LAND, + /* 0x021 */ ANM_BACK_JUMP = 0x21, + /* 0x022 */ ANM_BACK_JUMP_LAND, + /* 0x023 */ ANM_FRONT_ROLL, + /* 0x024 */ ANM_ROLL_CRASH, + /* 0x071 */ ANM_CUT_JUMP = 0x71, + /* 0x090 */ ANM_SERVICE_WAIT = 0x90, + /* 0x0B6 */ ANM_TIRED_WAIT = 0xB6, + /* 0x0B7 */ ANM_TIRED_WAIT_INIT, + /* 0x0BD */ ANM_FORWARD_SLIDE = 0xBD, + /* 0x0BE */ ANM_BACKWARD_SLIDE, + /* 0x0BF */ ANM_BACKWARD_SLIDE_LAND, + /* 0x0C0 */ ANM_FORWARD_SLIDE_LAND, + + /* 0x0D7 */ ANM_BOARD_SPINNER = 0xD7, + + /* 0x0F2 */ ANM_SPINNER_STAND = 0xF2, + + /* 0x0F4 */ ANM_SPINNER_RIDE = 0xF4, + + /* 0x0F7 */ ANM_SPINNER_ATTACK = 0xF7, + /* 0x0F8 */ ANM_SPINNER_ATTACK_LAND, + /* 0x0F9 */ ANM_SPINNER_PUSH, + + /* 0x0FD */ ANM_TRANSFORM_WOLF = 0xFD, // verify /* 0x188 */ ANM_DUNGEON_WARP_READY_INIT = 0x188, @@ -209,7 +219,7 @@ public: /* 0x18F */ ANM_MASTER_SWORD_STICK_INIT = 0x18F, /* 0x190 */ ANM_MASTER_SWORD_STICK, /* 0x191 */ ANM_MASTER_SWORD_PULL_INIT, - /* 0x198 */ ANM_GANON_FINISH = 408, // name probably wrong, fix later + /* 0x198 */ ANM_GANON_FINISH = 408, // name probably wrong, fix later }; enum daAlink_UPPER { @@ -240,8 +250,7 @@ public: /* 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 + /* 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, @@ -634,6 +643,17 @@ public: /* 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, + }; + class firePointEff_c { public: /* 800CFC3C */ ~firePointEff_c(); @@ -745,11 +765,11 @@ public: /* 800ACA14 */ void setDoubleAnime(f32, f32, f32, daAlink_c::daAlink_ANM, daAlink_c::daAlink_ANM, int, f32); /* 800ACD40 */ void commonSingleAnime(J3DAnmTransform*, J3DAnmTransform*, f32, f32, s16); - /* 800ACF80 */ void setSingleAnimeBase(daAlink_c::daAlink_ANM); - /* 800ACFB0 */ void setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM, f32); - /* 800ACFE0 */ void setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM, f32, f32); - /* 800AD00C */ void setSingleAnime(daAlink_c::daAlink_ANM, f32, f32, s16, f32); - /* 800AD0F4 */ void setSingleAnimeParam(daAlink_c::daAlink_ANM, daAlinkHIO_anm_c const*); + /* 800ACF80 */ void setSingleAnimeBase(daAlink_c::daAlink_ANM anmID); + /* 800ACFB0 */ void setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anmID, f32); + /* 800ACFE0 */ void setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anmID, f32 speed, f32 morf); + /* 800AD00C */ void setSingleAnime(daAlink_c::daAlink_ANM anmID, f32 rate, f32 start, s16 endF, f32 morf); + /* 800AD0F4 */ void setSingleAnimeParam(daAlink_c::daAlink_ANM anmID, daAlinkHIO_anm_c const*); /* 800AD128 */ void animePlay(J3DAnmTransform*, daPy_frameCtrl_c*); /* 800AD170 */ void allAnimePlay(); /* 800AD2D8 */ void setUpperAnimeMorf(f32); @@ -819,7 +839,7 @@ public: /* 800B32B0 */ BOOL checkAtnWaitAnime(); /* 800B3358 */ void setTiredVoice(daPy_frameCtrl_c*); /* 800B33E4 */ void checkRestHPAnime(); - /* 800B3494 */ void getDirectionFromAngle(s16); + /* 800B3494 */ static int getDirectionFromAngle(s16 angle); /* 800B3500 */ void checkAttentionState(); /* 800B3630 */ void getShapeAngleYAtnActor(); /* 800B3734 */ void setShapeAngleToAtnActor(int); @@ -959,42 +979,42 @@ public: /* 800C2DA4 */ BOOL commonProcInitNotSameProc(daAlink_PROC); /* 800C2DDC */ void procPreActionUnequipInit(int, fopAc_ac_c*); /* 800C2EAC */ void procPreActionUnequip(); - /* 800C3098 */ bool procServiceWaitInit(); - /* 800C30F0 */ bool procServiceWait(); + /* 800C3098 */ int procServiceWaitInit(); + /* 800C30F0 */ int procServiceWait(); /* 800C3224 */ void procTiredWaitInit(); - /* 800C3338 */ bool procTiredWait(); - /* 800C33B8 */ bool procWaitInit(); + /* 800C3338 */ int procTiredWait(); + /* 800C33B8 */ int procWaitInit(); /* 800C3504 */ void procWait(); - /* 800C36CC */ bool procMoveInit(); - /* 800C3730 */ bool procMove(); - /* 800C3810 */ bool procAtnMoveInit(); - /* 800C3868 */ bool procAtnMove(); - /* 800C38CC */ bool procAtnActorWaitInit(); - /* 800C397C */ bool procAtnActorWait(); - /* 800C39EC */ bool procAtnActorMoveInit(); - /* 800C3A44 */ bool procAtnActorMove(); - /* 800C3A94 */ bool procWaitTurnInit(); - /* 800C3B1C */ BOOL procWaitTurn(); - /* 800C3C3C */ bool procMoveTurnInit(int); - /* 800C3D38 */ bool procMoveTurn(); - /* 800C3DA0 */ bool procSideStepInit(int); - /* 800C3F60 */ bool procSideStep(); - /* 800C40F0 */ bool procSideStepLandInit(); - /* 800C4278 */ bool procSideStepLand(); - /* 800C4378 */ bool procSlideInit(s16); + /* 800C36CC */ int procMoveInit(); + /* 800C3730 */ int procMove(); + /* 800C3810 */ int procAtnMoveInit(); + /* 800C3868 */ int procAtnMove(); + /* 800C38CC */ int procAtnActorWaitInit(); + /* 800C397C */ int procAtnActorWait(); + /* 800C39EC */ int procAtnActorMoveInit(); + /* 800C3A44 */ int procAtnActorMove(); + /* 800C3A94 */ int procWaitTurnInit(); + /* 800C3B1C */ int procWaitTurn(); + /* 800C3C3C */ int procMoveTurnInit(int); + /* 800C3D38 */ int procMoveTurn(); + /* 800C3DA0 */ int procSideStepInit(int); + /* 800C3F60 */ int procSideStep(); + /* 800C40F0 */ int procSideStepLandInit(); + /* 800C4278 */ int procSideStepLand(); + /* 800C4378 */ int procSlideInit(s16); /* 800C4514 */ void procSlide(); - /* 800C47AC */ bool procSlideLandInit(int); - /* 800C4894 */ bool procSlideLand(); - /* 800C494C */ bool procFrontRollInit(); + /* 800C47AC */ int procSlideLandInit(int); + /* 800C4894 */ int procSlideLand(); + /* 800C494C */ int procFrontRollInit(); /* 800C4B40 */ void procFrontRoll(); /* 800C4F14 */ void procFrontRollCrashInit(); /* 800C4FFC */ void procFrontRollCrash(); /* 800C5160 */ void procFrontRollSuccessInit(); /* 800C5240 */ void procFrontRollSuccess(); - /* 800C5328 */ bool procSideRollInit(int); + /* 800C5328 */ int procSideRollInit(int); /* 800C5484 */ void procSideRoll(); /* 800C5700 */ void backJumpSpeedDec(); - /* 800C57A4 */ bool procBackJumpInit(int); + /* 800C57A4 */ int procBackJumpInit(int); /* 800C5964 */ void procBackJump(); /* 800C5A54 */ void procBackJumpLandInit(int); /* 800C5AF0 */ void procBackJumpLand(); @@ -1006,21 +1026,21 @@ public: /* 800C6798 */ void procDiveJump(); /* 800C6850 */ void procRollJumpInit(); /* 800C692C */ void procRollJump(); - /* 800C6A48 */ bool procFallInit(int, f32); + /* 800C6A48 */ int procFallInit(int, f32); /* 800C6D20 */ void procFall(); /* 800C6F18 */ void procLandInit(f32); /* 800C6FE4 */ void procLand(); - /* 800C70F8 */ void procSmallJumpInit(int); + /* 800C70F8 */ int procSmallJumpInit(int); /* 800C72D4 */ void procSmallJump(); /* 800C74D4 */ void procStepMoveInit(); /* 800C755C */ void procStepMove(); /* 800C7690 */ void procCrouchInit(); /* 800C76F8 */ void procCrouch(); - /* 800C77F4 */ bool procCoMetamorphoseInit(); + /* 800C77F4 */ int procCoMetamorphoseInit(); /* 800C7C64 */ void procCoMetamorphose(); /* 800C82E8 */ void procCoMetamorphoseOnlyInit(); /* 800C83A0 */ void procCoMetamorphoseOnly(); - /* 800C8460 */ BOOL procFloorDownReboundInit(); + /* 800C8460 */ int procFloorDownReboundInit(); /* 800C84D0 */ void procFloorDownRebound(); /* 800C854C */ void procGoronRideWaitInit(fopAc_ac_c*); /* 800C85D8 */ void procGoronRideWait(); @@ -1843,23 +1863,23 @@ public: /* 8010D38C */ void procHookshotWallWait(); /* 8010D5F4 */ void procHookshotWallShootInit(); /* 8010D6CC */ void procHookshotWallShoot(); - /* 8010D93C */ void getSpinnerGravity() const; - /* 8010D94C */ void getSpinnerMaxFallSpeed() const; - /* 8010D95C */ void getSpinnerJumpRate() const; - /* 8010D96C */ void getSpinnerRideMoveTime(); - /* 8010D9B0 */ void getSpinnerRideSpeedF(); - /* 8010D9F4 */ void getSpinnerRideDecSpeedMax() const; - /* 8010DA04 */ void getSpinnerRideDecSpeedMin() const; - /* 8010DA14 */ void getSpinnerRideDecSpeedRate() const; - /* 8010DA24 */ void getSpinnerRideRotAngleMax() const; - /* 8010DA34 */ void getSpinnerRideRotAngleMin() const; - /* 8010DAFC */ void checkLv4BossRoom(); + /* 8010D93C */ f32 getSpinnerGravity() const; + /* 8010D94C */ f32 getSpinnerMaxFallSpeed() const; + /* 8010D95C */ f32 getSpinnerJumpRate() const; + /* 8010D96C */ s16 getSpinnerRideMoveTime(); + /* 8010D9B0 */ f32 getSpinnerRideSpeedF(); + /* 8010D9F4 */ f32 getSpinnerRideDecSpeedMax() const; + /* 8010DA04 */ f32 getSpinnerRideDecSpeedMin() const; + /* 8010DA14 */ f32 getSpinnerRideDecSpeedRate() const; + /* 8010DA24 */ s16 getSpinnerRideRotAngleMax() const; + /* 8010DA34 */ s16 getSpinnerRideRotAngleMin() const; + /* 8010DAFC */ bool checkLv4BossRoom(); /* 8010DBC8 */ void setSpinnerSyncPos(); - /* 8010DC64 */ void procSpinnerReadyInit(); - /* 8010DDCC */ void procSpinnerReady(); + /* 8010DC64 */ int procSpinnerReadyInit(); + /* 8010DDCC */ int procSpinnerReady(); /* 8010DE64 */ void setSpinnerStatus(u8, u8); - /* 8010DE78 */ void procSpinnerWaitInit(); - /* 8010DF4C */ void procSpinnerWait(); + /* 8010DE78 */ int procSpinnerWaitInit(); + /* 8010DF4C */ int procSpinnerWait(); /* 8010E48C */ void bottleModelCallBack(); /* 8010E584 */ void checkOilBottleItemNotGet(u16); /* 8010E5D8 */ void setBottleModel(u16); @@ -2132,7 +2152,7 @@ public: /* 8012987C */ void checkWolfLandAction(int); /* 80129958 */ BOOL checkMidnaUseAbility() const; /* 801299A8 */ void checkWolfUseAbility(); - /* 80129A80 */ bool checkWolfGroundSpecialMode(); + /* 80129A80 */ int checkWolfGroundSpecialMode(); /* 80129B44 */ void checkNextActionWolf(int); /* 8012A02C */ void wolfSideBgCheck(s16); /* 8012A228 */ void checkWolfAttackReverse(int); @@ -2228,7 +2248,7 @@ public: /* 80134838 */ void procWolfTagJump(); /* 80134DB8 */ void procWolfTagJumpLandInit(fopAc_ac_c*); /* 80134EBC */ void procWolfTagJumpLand(); - /* 80135160 */ bool procWolfGiantPuzzleInit(); + /* 80135160 */ int procWolfGiantPuzzleInit(); /* 801351F8 */ void procWolfGiantPuzzle(); /* 80135458 */ void setWolfHangGroundY(); /* 801354C8 */ void changeWolfHangEndProc(); @@ -2246,7 +2266,7 @@ public: /* 80136C18 */ void procWolfLandDamageInit(int); /* 80136DE4 */ void procWolfLandDamage(); /* 80136EC4 */ void setWolfScreamWaitAnime(); - /* 80136F54 */ bool procWolfScreamWaitInit(); + /* 80136F54 */ int procWolfScreamWaitInit(); /* 80136FF8 */ void procWolfScreamWait(); /* 801370E4 */ void getWolfLieMoveAnmSpeed(); /* 8013712C */ void getWolfLieMoveSpeed(); @@ -2326,7 +2346,7 @@ public: /* 8013D86C */ void procWolfGrabThrow(); /* 8013D930 */ void procWolfPushInit(); /* 8013DA8C */ void procWolfPush(); - /* 8013DB6C */ bool procWolfCargoCarryInit(); + /* 8013DB6C */ int procWolfCargoCarryInit(); /* 8013DC5C */ void procWolfCargoCarry(); /* 8013DDF8 */ void procWolfChainUpInit(); /* 8013DE70 */ void procWolfChainUp(); @@ -2347,9 +2367,9 @@ public: /* 8013FF90 */ void setShieldArcName(); /* 8013FFD8 */ void setOriginalHeap(JKRExpHeap**, u32); /* 80140064 */ void setShieldChange(); - /* 80140070 */ void loadModelDVD(); + /* 80140070 */ int loadModelDVD(); /* 801401F8 */ void setShieldModel(); - /* 80140274 */ void loadShieldModelDVD(); + /* 80140274 */ int loadShieldModelDVD(); /* 80140338 */ void changeModelDataDirect(int); /* 80140550 */ void changeModelDataDirectWolf(int); /* 801406A8 */ void initStatusWindow(); @@ -2546,7 +2566,7 @@ public: void onModeFlg(u32 flag) { mModeFlg |= flag; } void offModeFlg(u32 flag) { mModeFlg &= ~flag; } bool swordButton() { return itemButtonCheck(8); } - daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangActor; } + daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } bool checkFisingRodLure() const { return mEquipItem == 0x105; } bool doTrigger() const { return mItemTrigger & 0x10; } @@ -2575,11 +2595,12 @@ public: bool var_r5; bool var_r4 = 1; bool var_r3 = 0; - + if (mProcID == PROC_FISHING_CAST) { var_r5 = 0; - if (mItemActor.getActor() != NULL && mItemActor.getActor()->mEvtInfo.i_checkCommandDemoAccrpt() != 0) { + if (mItemAcKeep.getActor() != NULL && + mItemAcKeep.getActor()->mEvtInfo.i_checkCommandDemoAccrpt() != 0) { var_r5 = 1; } @@ -2602,6 +2623,12 @@ public: return var_r4; } + J3DModel* initModel(J3DModelData* p_modelData, u32 param_1) { + return initModel(p_modelData, 0x80000, param_1); + } + + bool checkWindSpeedOnXZ() const { return field_0x35b8.abs2XZ() > 1.0f; } + inline void startRestartRoomFromOut(int, u32, int); inline u16 getReadyItem(); @@ -2690,7 +2717,16 @@ private: /* 0x00770 */ hsChainShape_c* field_0x770; /* 0x00774 */ u8 field_0x0774[0x77C - 0x774]; /* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk; - /* 0x00780 */ u8 field_0x780[0x7C4 - 0x780]; + /* 0x00780 */ u8 field_0x780[4]; + /* 0x00784 */ J3DModel* field_0x784[2]; + /* 0x0078C */ u8 field_0x78c[0x10]; + /* 0x0079C */ u32 field_0x79c; + /* 0x007A0 */ u32 field_0x7a0; + /* 0x007A4 */ u32 field_0x7a4; + /* 0x007A8 */ u32 field_0x7a8; + /* 0x007AC */ u8 field_0x7ac[0x10]; + /* 0x007BC */ mDoExt_bckAnm* m_sWindowBck; + /* 0x007C0 */ u8 field_0x7c0[4]; /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; /* 0x00814 */ dCcD_Stts field_0x814; /* 0x00850 */ dCcD_Cyl field_0x850[3]; @@ -2751,15 +2787,15 @@ private: /* 0x02804 */ fopAc_ac_c* field_0x2804; /* 0x02808 */ daScex_c* mpScnChg; /* 0x0280C */ daPy_actorKeep_c field_0x280c; - /* 0x02814 */ daPy_actorKeep_c mRideActor; // daspinnerc? + /* 0x02814 */ daPy_actorKeep_c mRideAcKeep; /* 0x0281C */ daPy_actorKeep_c field_0x281c; - /* 0x02824 */ daPy_actorKeep_c mItemActor; // name might be wrong - /* 0x0282C */ daPy_actorKeep_c mGrabItemActor; - /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangActor; + /* 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 field_0x284c; - /* 0x02854 */ daPy_actorKeep_c mCargoCarryActor; + /* 0x02854 */ daPy_actorKeep_c mCargoCarryAcKeep; /* 0x0285C */ daPy_actorKeep_c field_0x285c; /* 0x02864 */ dMsgFlow_c mMsgFlow; /* 0x028B0 */ int field_0x28b0[0x10]; @@ -2878,7 +2914,7 @@ private: /* 0x02FD9 */ u8 field_0x2fd9[3]; /* 0x02FDC */ u16 mEquipItem; /* 0x02FDE */ u16 field_0x2fde; - /* 0x02FE0 */ u16 field_0x2fe0; + /* 0x02FE0 */ s16 mStickAngle; /* 0x02FE2 */ s16 field_0x2fe2; /* 0x02FE4 */ s16 field_0x2fe4; /* 0x02FE6 */ s16 field_0x2fe6; @@ -3228,10 +3264,10 @@ private: }; // Size: 0x38BC struct daAlinkHIO_anm_c { - /* 0x00 */ s16 field_0x00; // end f? - /* 0x04 */ f32 field_0x04; // speed? - /* 0x08 */ f32 field_0x08; // start? - /* 0x0C */ f32 field_0x0c; // interpolation? + /* 0x00 */ s16 mEndF; + /* 0x04 */ f32 mRate; + /* 0x08 */ f32 mStart; + /* 0x0C */ f32 mInterpolation; // morf /* 0x10 */ f32 field_0x10; // CF? }; // size = 0x14 @@ -3264,6 +3300,22 @@ struct daAlinkHIO_basic_c1 { /* 0x54 */ f32 mTransformBlockFarDis; }; +class daAlinkHIO_wolf_c { +public: + /* 80140B98 */ ~daAlinkHIO_wolf_c(); +}; + +class daAlinkHIO_cut_c { +public: + /* 80140BD4 */ ~daAlinkHIO_cut_c(); +}; + +class daAlinkHIO_c { +public: + /* 80140B88 */ daAlinkHIO_c(); + /* 80140C10 */ ~daAlinkHIO_c(); +}; + class daAlinkHIO_basic_c0 { public: static daAlinkHIO_basic_c1 const m; @@ -3286,37 +3338,37 @@ public: class daAlinkHIO_autoJump_c1 { public: - /* 0x00 */ daAlinkHIO_anm_c mJump; - /* 0x14 */ daAlinkHIO_anm_c mLand; - /* 0x28 */ daAlinkHIO_anm_c mDive; - /* 0x3C */ daAlinkHIO_anm_c mDiveUnk; - /* 0x50 */ u8 field_0x50; - /* 0x52 */ s16 field_0x52; - /* 0x54 */ s16 field_0x54; - /* 0x56 */ s16 field_0x56; - /* 0x58 */ s16 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ f32 field_0x60; - /* 0x64 */ f32 field_0x64; - /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; + /* 0x00 */ daAlinkHIO_anm_c mJumpAnm; + /* 0x14 */ daAlinkHIO_anm_c mLandAnm; + /* 0x28 */ daAlinkHIO_anm_c mDiveAnm; + /* 0x3C */ daAlinkHIO_anm_c mDiveUnkAnm; + /* 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 field_0x7c; - /* 0x80 */ f32 field_0x80; - /* 0x84 */ f32 field_0x84; - /* 0x88 */ f32 field_0x88; - /* 0x8C */ f32 field_0x8c; - /* 0x90 */ f32 field_0x90; - /* 0x94 */ f32 field_0x94; - /* 0x98 */ f32 field_0x98; - /* 0x9C */ f32 field_0x9c; - /* 0xA0 */ f32 field_0xa0; - /* 0xA4 */ f32 field_0xa4; - /* 0xA8 */ f32 field_0xa8; - /* 0xAC */ f32 field_0xac; - /* 0xB0 */ f32 field_0xb0; + /* 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 { @@ -3324,6 +3376,21 @@ public: static daAlinkHIO_autoJump_c1 const m; }; +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_cut_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; @@ -3401,6 +3468,450 @@ public: static daAlinkHIO_cutLargeJump_c1 const m; }; +class daAlinkHIO_cutNmV_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_cutNmV_c0 { +public: + static daAlinkHIO_cutNmV_c1 const m; +}; + +class daAlinkHIO_cutNmL_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_cutNmL_c0 { +public: + static daAlinkHIO_cutNmL_c1 const m; +}; + +class daAlinkHIO_cutNmR_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_cutNmR_c0 { +public: + static daAlinkHIO_cutNmR_c1 const m; +}; + +class daAlinkHIO_cutNmSL_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_cutNmSL_c0 { +public: + static daAlinkHIO_cutNmSL_c1 const m; +}; + +class daAlinkHIO_cutNmSR_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_cutNmSR_c0 { +public: + static daAlinkHIO_cutNmSR_c1 const m; +}; + +class daAlinkHIO_cutFnL_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnL_c0 { +public: + static daAlinkHIO_cutFnL_c1 const m; +}; + +class daAlinkHIO_cutFnV_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnV_c0 { +public: + static daAlinkHIO_cutFnV_c1 const m; +}; + +class daAlinkHIO_cutFnS_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnS_c0 { +public: + static daAlinkHIO_cutFnS_c1 const m; +}; + +class daAlinkHIO_cutFnSl_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnSl_c0 { +public: + static daAlinkHIO_cutFnSl_c1 const m; +}; + +class daAlinkHIO_cutFnSm_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnSm_c0 { +public: + static daAlinkHIO_cutFnSm_c1 const m; +}; + +class daAlinkHIO_cutFnR_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_cutFnR_c0 { +public: + static daAlinkHIO_cutFnR_c1 const m; +}; + +class daAlinkHIO_cutFnJU_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; +}; // Size: 0x54 + +class daAlinkHIO_cutFnJU_c0 { +public: + static daAlinkHIO_cutFnJU_c1 const m; +}; + +class daAlinkHIO_cutTurn_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ f32 field_0x8C; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; +}; // Size: 0x98 + +class daAlinkHIO_cutTurn_c0 { +public: + static daAlinkHIO_cutTurn_c1 const m; +}; + +class daAlinkHIO_hoCutLA_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_hoCutLA_c0 { +public: + static daAlinkHIO_hoCutLA_c1 const m; +}; + +class daAlinkHIO_hoCutLB_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_hoCutLB_c0 { +public: + static daAlinkHIO_hoCutLB_c1 const m; +}; + +class daAlinkHIO_hoCutRA_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_hoCutRA_c0 { +public: + static daAlinkHIO_hoCutRA_c1 const m; +}; + +class daAlinkHIO_hoCutRB_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_hoCutRB_c0 { +public: + static daAlinkHIO_hoCutRB_c1 const m; +}; + +class daAlinkHIO_hoCutCharge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ s16 field_0x3C; + /* 0x3E */ s16 field_0x3E; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; +}; // Size: 0x54 + +class daAlinkHIO_hoCutCharge_c0 { +public: + static daAlinkHIO_hoCutCharge_c1 const m; +}; + +class daAlinkHIO_cutDaL_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_cutDaL_c0 { +public: + static daAlinkHIO_cutDaL_c1 const m; +}; + +class daAlinkHIO_cutDaR_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_cutDaR_c0 { +public: + static daAlinkHIO_cutDaR_c1 const m; +}; + +class daAlinkHIO_cutDaCharge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_cutDaCharge_c0 { +public: + static daAlinkHIO_cutDaCharge_c1 const m; +}; + +class daAlinkHIO_cutDown_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ s16 field_0x64; + /* 0x66 */ s16 field_0x66; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; +}; // Size: 0x74 + +class daAlinkHIO_cutDown_c0 { +public: + static daAlinkHIO_cutDown_c1 const m; +}; + +class daAlinkHIO_cutHead_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; +}; // Size: 0x60 + +class daAlinkHIO_cutHead_c0 { +public: + static daAlinkHIO_cutHead_c1 const m; +}; + +class daAlinkHIO_gAtPush_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; +}; // Size: 0x24 + +class daAlinkHIO_gAtPush_c0 { +public: + static daAlinkHIO_gAtPush_c1 const m; +}; + +class daAlinkHIO_gAtKick_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; +}; // Size: 0x24 + +class daAlinkHIO_gAtKick_c0 { +public: + static daAlinkHIO_gAtKick_c1 const m; +}; + +class daAlinkHIO_guard_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x52 */ s16 field_0x52; + /* 0x54 */ s16 field_0x54; + /* 0x56 */ s16 field_0x56; + /* 0x58 */ s16 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; +}; // Size: 0x80 + +class daAlinkHIO_guard_c0 { +public: + static daAlinkHIO_guard_c1 const m; +}; + +class daAlinkHIO_crouch_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ s16 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; +}; // Size: 0x4C + +class daAlinkHIO_crouch_c0 { +public: + static daAlinkHIO_crouch_c1 const m; +}; + class daAlinkHIO_move_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSlideAnm; @@ -3479,6 +3990,37 @@ public: static daAlinkHIO_atnMove_c1 const m; }; +class daAlinkHIO_noActAtnMove_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ s16 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; +}; // Size: 0x54 + +class daAlinkHIO_noActAtnMove_c0 { +public: + static daAlinkHIO_noActAtnMove_c1 const m; +}; + class daAlinkHIO_wallMove_c1 { public: /* 0x00 */ f32 mMinAnmSpeed; @@ -3493,6 +4035,73 @@ public: static daAlinkHIO_wallMove_c1 const m; }; +class daAlinkHIO_wallCatch_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ f32 field_0x50; +}; // Size: 0x54 + +class daAlinkHIO_wallFall_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; +}; // Size: 0x28 + +class daAlinkHIO_wallFall_c0 { +public: + static daAlinkHIO_wallFall_c1 const m; +}; + +class daAlinkHIO_wallCatch_c0 { +public: + static daAlinkHIO_wallCatch_c1 const m; +}; + +class daAlinkHIO_wallHang_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_wallHang_c0 { +public: + static daAlinkHIO_wallHang_c1 const m; +}; + +class daAlinkHIO_roofHang_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ s16 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; +}; // Size: 0x4C + +class daAlinkHIO_roofHang_c0 { +public: + static daAlinkHIO_roofHang_c1 const m; +}; + class daAlinkHIO_turnMove_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mTurnAnm; @@ -3574,8 +4183,8 @@ public: /* 0x56 */ s16 mUnderwaterTurnRate; /* 0x58 */ s16 mUnderwaterTurnMin; /* 0x5A */ s16 mUnderwaterTurnMax; - /* 0x5C */ s16 val1a; // related to dash - /* 0x5E */ s16 val1a_; // related to dash + /* 0x5C */ s16 field_0x5c; // related to dash + /* 0x5E */ s16 field_0x5e; // related to dash /* 0x60 */ f32 mInitHeight; /* 0x64 */ f32 mResurfaceHeight; /* 0x68 */ f32 mMaxForwardSpeed; @@ -3651,6 +4260,57 @@ public: static daAlinkHIO_ladder_c1 const m; }; +class daAlinkHIO_pushpull_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 */ s16 field_0xC; + /* 0x0E */ s16 field_0xE; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; +}; // Size: 0x3C + +class daAlinkHIO_pushpull_c0 { +public: + static daAlinkHIO_pushpull_c1 const m; +}; + +class daAlinkHIO_grab_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ daAlinkHIO_anm_c field_0x78; + /* 0x8C */ daAlinkHIO_anm_c field_0x8C; + /* 0xA0 */ daAlinkHIO_anm_c field_0xA0; + /* 0xB4 */ daAlinkHIO_anm_c field_0xB4; + /* 0xC8 */ daAlinkHIO_anm_c field_0xC8; + /* 0xDC */ s16 field_0xDC; + /* 0xDE */ s16 field_0xDE; + /* 0xE0 */ f32 field_0xE0; +}; // Size: 0xE4 + +class daAlinkHIO_grab_c0 { +public: + static daAlinkHIO_grab_c1 const m; +}; + class daAlinkHIO_horse_c1 { public: /* 0x00 */ daAlinkHIO_anm_c field_0x0; @@ -3674,6 +4334,241 @@ public: static daAlinkHIO_horse_c1 const m; }; +class daAlinkHIO_canoe_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; +}; // Size: 0x48 + +class daAlinkHIO_canoe_c0 { +public: + static daAlinkHIO_canoe_c1 const m; +}; + +class daAlinkHIO_damage_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ u8 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ s16 field_0x2C; + /* 0x2E */ s16 field_0x2E; + /* 0x30 */ s16 field_0x30; + /* 0x32 */ s16 field_0x32; + /* 0x34 */ s16 field_0x34; + /* 0x36 */ s16 field_0x36; + /* 0x38 */ s16 field_0x38; + /* 0x3A */ s16 field_0x3A; + /* 0x3C */ s16 field_0x3C; + /* 0x3E */ s16 field_0x3E; + /* 0x40 */ s16 field_0x40; + /* 0x42 */ s16 field_0x42; + /* 0x44 */ s16 field_0x44; + /* 0x46 */ s16 field_0x46; + /* 0x48 */ s16 field_0x48; + /* 0x4A */ s16 field_0x4A; + /* 0x4C */ s16 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; +}; // Size: 0x58 + +class daAlinkHIO_damage_c0 { +public: + static daAlinkHIO_damage_c1 const m; +}; + +class daAlinkHIO_damNormal_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x52 */ s16 field_0x52; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; +}; // Size: 0x64 + +class daAlinkHIO_damNormal_c0 { +public: + static daAlinkHIO_damNormal_c1 const m; +}; + +class daAlinkHIO_damLarge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ daAlinkHIO_anm_c field_0x78; + /* 0x8C */ daAlinkHIO_anm_c field_0x8C; + /* 0xA0 */ s16 field_0xA0; + /* 0xA4 */ f32 field_0xA4; + /* 0xA8 */ f32 field_0xA8; + /* 0xAC */ f32 field_0xAC; + /* 0xB0 */ f32 field_0xB0; + /* 0xB4 */ f32 field_0xB4; + /* 0xB8 */ f32 field_0xB8; +}; // Size: 0xBC + +class daAlinkHIO_damLarge_c0 { +public: + static daAlinkHIO_damLarge_c1 const m; +}; + +class daAlinkHIO_damHuge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ daAlinkHIO_anm_c field_0x78; + /* 0x8C */ daAlinkHIO_anm_c field_0x8C; + /* 0xA0 */ s16 field_0xA0; + /* 0xA4 */ f32 field_0xA4; + /* 0xA8 */ f32 field_0xA8; + /* 0xAC */ f32 field_0xAC; + /* 0xB0 */ f32 field_0xB0; + /* 0xB4 */ f32 field_0xB4; + /* 0xB8 */ f32 field_0xB8; +}; // Size: 0xBC + +class daAlinkHIO_damHuge_c0 { +public: + static daAlinkHIO_damHuge_c1 const m; +}; + +class daAlinkHIO_damHorse_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; +}; // Size: 0x2C + +class daAlinkHIO_damHorse_c0 { +public: + static daAlinkHIO_damHorse_c1 const m; +}; + +class daAlinkHIO_damFall_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; +}; // Size: 0x48 + +class daAlinkHIO_damFall_c0 { +public: + static daAlinkHIO_damFall_c1 const m; +}; + +class daAlinkHIO_damCaught_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; +}; // Size: 0x24 + +class daAlinkHIO_damCaught_c0 { +public: + static daAlinkHIO_damCaught_c1 const m; +}; + +class daAlinkHIO_damSwim_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ s16 field_0x78; + /* 0x7A */ s16 field_0x7A; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; +}; // Size: 0x8C + +class daAlinkHIO_damSwim_c0 { +public: + static daAlinkHIO_damSwim_c1 const m; +}; + +class daAlinkHIO_huLight_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_huLight_c0 { +public: + static daAlinkHIO_huLight_c1 const m; +}; + +class daAlinkHIO_fmChain_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; +}; // Size: 0x28 + +class daAlinkHIO_fmChain_c0 { +public: + static daAlinkHIO_fmChain_c1 const m; +}; + +class daAlinkHIO_pickUp_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; +}; // Size: 0x30 + +class daAlinkHIO_pickUp_c0 { +public: + static daAlinkHIO_pickUp_c1 const m; +}; + class daAlinkHIO_wolf_c1 { public: /* 0x00 */ s16 mMaxNeckTurnH; @@ -4036,6 +4931,57 @@ public: static daAlinkHIO_wlAttack_c1 const m; }; +class daAlinkHIO_wlAtBite_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; +}; // Size: 0x5C + +class daAlinkHIO_wlAtBite_c0 { +public: + static daAlinkHIO_wlAtBite_c1 const m; +}; + +class daAlinkHIO_wlAtCjump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; +}; // Size: 0x64 + +class daAlinkHIO_wlAtCjump_c0 { +public: + static daAlinkHIO_wlAtCjump_c1 const m; +}; + class daAlinkHIO_wlHowl_c1 { public: /* 0x00 */ daAlinkHIO_anm_c field_0x0; @@ -4143,6 +5089,27 @@ public: static daAlinkHIO_wlLight_c1 const m; }; +class daAlinkHIO_wlAtDown_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ daAlinkHIO_anm_c field_0x78; + /* 0x8C */ s16 field_0x8C; + /* 0x8E */ s16 field_0x8E; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 field_0x98; +}; // Size: 0x9C + +class daAlinkHIO_wlAtDown_c0 { +public: + static daAlinkHIO_wlAtDown_c1 const m; +}; + class daAlinkHIO_wlAtWaTl_c1 { public: /* 0x00 */ daAlinkHIO_anm_c field_0x0; @@ -4392,29 +5359,29 @@ public: class daAlinkHIO_board_c1 { public: - /* 0x00 */ daAlinkHIO_anm_c field_0x0; - /* 0x14 */ daAlinkHIO_anm_c field_0x14; - /* 0x28 */ daAlinkHIO_anm_c field_0x28; - /* 0x3C */ daAlinkHIO_anm_c field_0x3C; - /* 0x50 */ f32 field_0x50; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5C; - /* 0x60 */ f32 field_0x60; - /* 0x64 */ f32 field_0x64; - /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6C; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; - /* 0x78 */ f32 field_0x78; - /* 0x7C */ f32 field_0x7C; - /* 0x80 */ f32 field_0x80; - /* 0x84 */ f32 field_0x84; - /* 0x88 */ f32 field_0x88; - /* 0x8C */ f32 field_0x8C; - /* 0x90 */ f32 field_0x90; - /* 0x94 */ f32 field_0x94; - /* 0x98 */ f32 field_0x98; + /* 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 { @@ -4440,6 +5407,27 @@ public: static daAlinkHIO_item_c1 const m; }; +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 */ u16 mNormalOilLoss; + /* 0x4A */ u16 mShakeOilLoss; + /* 0x4C */ f32 mFlameTrackRate; +}; // Size: 0x50 + +class daAlinkHIO_kandelaar_c0 { +public: + static daAlinkHIO_kandelaar_c1 const m; +}; + class daAlinkHIO_bottle_c1 { public: /* 0x00 */ daAlinkHIO_anm_c field_0x0; @@ -4481,27 +5469,27 @@ public: class daAlinkHIO_bow_c1 { public: - /* 0x00 */ daAlinkHIO_anm_c val0; - /* 0x14 */ daAlinkHIO_anm_c val5; - /* 0x28 */ s16 vala; - /* 0x2A */ s16 valb; - /* 0x2C */ s16 valc; - /* 0x30 */ f32 vale; - /* 0x34 */ f32 valf; - /* 0x38 */ f32 val10; - /* 0x3C */ f32 val11; - /* 0x40 */ f32 val12; - /* 0x44 */ f32 val13; - /* 0x48 */ f32 val14; - /* 0x4C */ f32 val15; - /* 0x50 */ f32 val16; - /* 0x54 */ f32 val17; - /* 0x58 */ f32 val18; - /* 0x5C */ f32 val19; - /* 0x60 */ f32 val1a; - /* 0x64 */ f32 val1b; - /* 0x68 */ f32 val1c; - /* 0x6C */ f32 val1d; + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2a; + /* 0x2C */ s16 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3c; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; }; // Size: 0x70 class daAlinkHIO_bow_c0 { @@ -4509,6 +5497,47 @@ public: static daAlinkHIO_bow_c1 const m; }; +class daAlinkHIO_ironBall_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; +}; // Size: 0x8C + +class daAlinkHIO_ironBall_c0 { +public: + static daAlinkHIO_ironBall_c1 const m; +}; + class daAlinkHIO_copyRod_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSwingAnm; @@ -4579,20 +5608,20 @@ public: class daAlinkHIO_spinner_c1 { public: - /* 0x00 */ daAlinkHIO_anm_c field_0x0; - /* 0x14 */ s16 field_0x14; - /* 0x16 */ s16 field_0x16; - /* 0x18 */ s16 field_0x18; - /* 0x1A */ s16 field_0x1A; - /* 0x1C */ s16 field_0x1C; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; - /* 0x28 */ f32 field_0x28; - /* 0x2C */ f32 field_0x2C; - /* 0x30 */ f32 field_0x30; - /* 0x34 */ f32 field_0x34; - /* 0x38 */ f32 field_0x38; - /* 0x3C */ f32 field_0x3C; + /* 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 { diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 9043847a0f..2effbc58a3 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -220,6 +220,7 @@ public: FLG2_UNK_2080000 = 0x2080000, BOAR_SINGLE_BATTLE = 0x1800000, STATUS_WINDOW_DRAW = 0x400000, + FLG2_UNK_280000 = 0x280000, UNK_ARMOR = 0x80000, SCENE_CHANGE_START = 0x8000, FLG2_UNK_4000 = 0x4000, @@ -243,6 +244,7 @@ public: enum daPy_ERFLG1 { GANON_FINISH = 0x80000000, UNK_FORCE_PUT_POS = 0x2000, + ERFLG1_UNK_2 = 2, ERFLG1_UNK_1 = 1, }; enum daPy_ERFLG2 { @@ -539,7 +541,7 @@ public: bool getSumouCameraMode() const { bool sumouCameraMode = false; - if (field_0x560[0xA] != 0 && field_0x560[0xA] < 0x26) { + if (mSpecialMode != 0 && mSpecialMode < 0x26) { sumouCameraMode = true; } return sumouCameraMode; @@ -568,6 +570,7 @@ public: void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; } void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; } void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; } + void i_offNoResetFlg2(int pFlg) { mNoResetFlg2 &= ~pFlg; } void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; } void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; } void i_onResetFlg0(int flag) { mResetFlg0 |= flag; } diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index deb17d3027..f07fbc2ff5 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -12,7 +12,7 @@ class cBgS_ChkElm { public: /* 0x00 */ dBgW_Base* m_bgw_base_ptr; /* 0x04 */ bool m_used; - /* 0x08 */ u32 field_0x8; + /* 0x08 */ u32 m_actor_id; /* 0x0C */ fopAc_ac_c* m_actor_ptr; /* 0x10 vtable */ @@ -37,7 +37,7 @@ public: public: cBgS() {} bool Regist(dBgW_Base*, unsigned int, void*); - void Release(dBgW_Base*); + int Release(dBgW_Base*); bool LineCross(cBgS_LinChk*); f32 GroundCross(cBgS_GndChk*); static void ConvDzb(void*); @@ -75,14 +75,14 @@ public: s32 GetExitId(cBgS_PolyInfo const&); s32 GetPolyColor(cBgS_PolyInfo const&); BOOL GetHorseNoEntry(cBgS_PolyInfo const&); - bool GetSpecialCode(cBgS_PolyInfo const&); + int GetSpecialCode(cBgS_PolyInfo const&); int GetMagnetCode(cBgS_PolyInfo const&); - bool GetMonkeyBarsCode(cBgS_PolyInfo const&); - bool GetUnderwaterRoofCode(cBgS_PolyInfo const&); + int GetMonkeyBarsCode(cBgS_PolyInfo const&); + int GetUnderwaterRoofCode(cBgS_PolyInfo const&); s32 GetWallCode(cBgS_PolyInfo const&); int GetPolyAtt0(cBgS_PolyInfo const&); int GetPolyAtt1(cBgS_PolyInfo const&); - bool GetGroundCode(cBgS_PolyInfo const&); + int GetGroundCode(cBgS_PolyInfo const&); s32 GetCamMoveBG(cBgS_PolyInfo const&); s32 GetRoomCamId(cBgS_PolyInfo const&); s32 GetRoomPathId(cBgS_PolyInfo const&); @@ -96,7 +96,7 @@ public: void WallCorrectSort(dBgS_Acch*); f32 RoofChk(dBgS_RoofChk*); bool SplGrpChk(dBgS_SplGrpChk*); - void SphChk(dBgS_SphChk*, void*); + bool SphChk(dBgS_SphChk*, void*); void MoveBgCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*, bool, bool); void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*); void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*); diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index 7aec8fd20b..0754ceb3ec 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -148,6 +148,7 @@ public: void SetWtrChkMode(int mode) { m_wtr_mode = mode; } void SetGrndNone() { m_flags |= GRND_NONE; } void ClrGrndNone() { m_flags &= ~GRND_NONE; } + bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; } // inline dupe void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; } diff --git a/include/d/bg/d_bg_s_roof_chk.h b/include/d/bg/d_bg_s_roof_chk.h index 0b1558fba0..aebf24ff6c 100644 --- a/include/d/bg/d_bg_s_roof_chk.h +++ b/include/d/bg/d_bg_s_roof_chk.h @@ -17,6 +17,7 @@ public: void SetNowY(f32 y) { mNowY = y; } void i_SetPos(cXyz const& pos) { m_pos = pos; } + f32 GetNowY() { return mNowY; } private: /* 0x3C */ cXyz m_pos; diff --git a/include/d/bg/d_bg_s_sph_chk.h b/include/d/bg/d_bg_s_sph_chk.h index 6a5225ace1..dfe60878d4 100644 --- a/include/d/bg/d_bg_s_sph_chk.h +++ b/include/d/bg/d_bg_s_sph_chk.h @@ -15,10 +15,8 @@ typedef void* (*SphChk_Callback)(dBgS_SphChk*, cBgD_Vtx_t*, int, int, int, cM3dG class dBgS_SphChk : public cM3dGSph, public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk { public: /* 80078A14 */ dBgS_SphChk(); - /* 80078AC0 */ virtual ~dBgS_SphChk(); -private: /* 0x50 */ SphChk_Callback mCallback; }; diff --git a/include/d/bg/d_bg_s_spl_grp_chk.h b/include/d/bg/d_bg_s_spl_grp_chk.h index 76d4f0212e..67ca7c8a38 100644 --- a/include/d/bg/d_bg_s_spl_grp_chk.h +++ b/include/d/bg/d_bg_s_spl_grp_chk.h @@ -25,6 +25,8 @@ public: void OffIn() { m_flags &= ~IN; } void OffMoveBGOnly() { m_flags &= ~MOVE_BG_ONLY; } void OnMoveBGOnly() { m_flags |= MOVE_BG_ONLY; } + void OnFind() { m_flags |= FIND; } + bool ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; } void SetHeight(f32 height) { m_height = height; } f32 GetHeight() { return m_height; } cXyz& GetPosP() { return m_ground; } diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index d8cdabd50b..ec015bcede 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -87,31 +87,31 @@ public: /* 8007933C */ virtual ~cBgW(); /* 80079EEC */ virtual void ChkMemoryError(); - /* 8007B948 */ virtual void ChkNotReady() const; + /* 8007B948 */ virtual bool ChkNotReady() const; /* 8007B958 */ virtual bool ChkLock() const; /* 8007B964 */ virtual bool ChkMoveBg() const; virtual u32 ChkMoveFlag() const = 0; - /* 8007B270 */ virtual void GetTriPla(cBgS_PolyInfo const&) const; + /* 8007B270 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const; /* 8007B1B4 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; /* 8007B164 */ virtual void GetBnd() const; /* 8007B2B0 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const; virtual void OffMoveFlag() = 0; /* 8007B240 */ virtual void GetTopUnder(f32*, f32*) const; /* 8007A658 */ virtual bool LineCheck(cBgS_LinChk*); - /* 8007AB9C */ virtual void GroundCross(cBgS_GndChk*); + /* 8007AB9C */ virtual bool GroundCross(cBgS_GndChk*); /* 8007B084 */ virtual void ShdwDraw(cBgS_ShdwDraw*); virtual void CaptPoly(dBgS_CaptPoly&) = 0; virtual void WallCorrect(dBgS_Acch*) = 0; virtual void WallCorrectSort(dBgS_Acch*) = 0; - virtual void RoofChk(dBgS_RoofChk*) = 0; - virtual void SplGrpChk(dBgS_SplGrpChk*) = 0; - virtual void SphChk(dBgS_SphChk*, void*) = 0; + virtual bool RoofChk(dBgS_RoofChk*) = 0; + virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0; + virtual bool SphChk(dBgS_SphChk*, void*) = 0; /* 8007B0E4 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const; virtual s32 GetExitId(cBgS_PolyInfo const&) = 0; virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0; virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0; - virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0; - virtual void GetSpecialCode(int) = 0; + virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0; + virtual int GetSpecialCode(int) = 0; virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0; virtual void GetPolyObjThrough(int) = 0; virtual void GetPolyCamThrough(int) = 0; @@ -122,12 +122,12 @@ public: virtual void GetPolyRopeThrough(int) = 0; virtual void GetPolyBombThrough(int) = 0; virtual void GetShdwThrough(int) = 0; - virtual bool GetUnderwaterRoofCode(int) = 0; - virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; + virtual int GetUnderwaterRoofCode(int) = 0; + virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0; - virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0; + virtual int GetGroundCode(cBgS_PolyInfo const&) = 0; virtual void GetIronBallThrough(int) = 0; virtual u32 GetAttackThrough(int) = 0; virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0; @@ -203,14 +203,14 @@ public: /* 8007DAF8 */ virtual void CaptPoly(dBgS_CaptPoly&); /* 8007C484 */ virtual void WallCorrect(dBgS_Acch*); /* 8007C910 */ virtual void WallCorrectSort(dBgS_Acch*); - /* 8007D470 */ virtual void RoofChk(dBgS_RoofChk*); - /* 8007D830 */ virtual void SplGrpChk(dBgS_SplGrpChk*); - /* 8007DF00 */ virtual void SphChk(dBgS_SphChk*, virtual void*); + /* 8007D470 */ virtual bool RoofChk(dBgS_RoofChk*); + /* 8007D830 */ virtual bool SplGrpChk(dBgS_SplGrpChk*); + /* 8007DF00 */ virtual bool SphChk(dBgS_SphChk*, virtual void*); /* 8007B3AC */ virtual s32 GetExitId(cBgS_PolyInfo const&); /* 8007B3D8 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&); /* 8007B404 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&); - /* 8007B430 */ virtual bool GetSpecialCode(cBgS_PolyInfo const&); - /* 8007B460 */ virtual void GetSpecialCode(int); + /* 8007B430 */ virtual int GetSpecialCode(cBgS_PolyInfo const&); + /* 8007B460 */ virtual int GetSpecialCode(int); /* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&); /* 8007B4E0 */ virtual void GetPolyObjThrough(int); /* 8007B504 */ virtual void GetPolyCamThrough(int); @@ -221,13 +221,13 @@ public: /* 8007B5BC */ virtual void GetPolyRopeThrough(int); /* 8007B5E0 */ virtual void GetPolyBombThrough(int); /* 8007B604 */ virtual void GetShdwThrough(int); - /* 8007B630 */ virtual bool GetUnderwaterRoofCode(int); - /* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&); + /* 8007B630 */ virtual int GetUnderwaterRoofCode(int); + /* 8007B4B4 */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&); /* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&); /* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 8007B704 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&); /* 8007B734 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&); - /* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&); + /* 8007B760 */ virtual int GetGroundCode(cBgS_PolyInfo const&); /* 8007B7DC */ virtual void GetIronBallThrough(int); /* 8007B800 */ virtual u32 GetAttackThrough(int); /* 8007B87C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&); diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h index 1cbf808f7a..fee8c30efd 100644 --- a/include/d/bg/d_bg_w_base.h +++ b/include/d/bg/d_bg_w_base.h @@ -26,11 +26,11 @@ public: /* 8007E640 */ virtual ~dBgW_Base(); /* 8007E6D0 */ virtual bool ChkMemoryError(); - virtual void ChkNotReady() const = 0; + virtual bool ChkNotReady() const = 0; virtual bool ChkLock() const = 0; virtual bool ChkMoveBg() const = 0; virtual u32 ChkMoveFlag() const = 0; - virtual void GetTriPla(cBgS_PolyInfo const&) const = 0; + virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const = 0; virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const = 0; virtual void GetBnd() const = 0; virtual u32 GetGrpInf(cBgS_PolyInfo const&) const = 0; @@ -38,20 +38,20 @@ public: virtual void GetTopUnder(f32*, f32*) const = 0; /* 80074AB4 */ virtual void SetOldShapeAngleY(s16); virtual bool LineCheck(cBgS_LinChk*) = 0; - virtual void GroundCross(cBgS_GndChk*) = 0; + virtual bool GroundCross(cBgS_GndChk*) = 0; virtual void ShdwDraw(cBgS_ShdwDraw*) = 0; virtual void CaptPoly(dBgS_CaptPoly&) = 0; virtual void WallCorrect(dBgS_Acch*) = 0; virtual void WallCorrectSort(dBgS_Acch*) = 0; - virtual void RoofChk(dBgS_RoofChk*) = 0; - virtual void SplGrpChk(dBgS_SplGrpChk*) = 0; - virtual void SphChk(dBgS_SphChk*, void*) = 0; + virtual bool RoofChk(dBgS_RoofChk*) = 0; + virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0; + virtual bool SphChk(dBgS_SphChk*, void*) = 0; virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const = 0; virtual s32 GetExitId(cBgS_PolyInfo const&) = 0; virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0; virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0; - virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0; - virtual void GetSpecialCode(int) = 0; + virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0; + virtual int GetSpecialCode(int) = 0; virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0; virtual void GetPolyObjThrough(int) = 0; virtual void GetPolyCamThrough(int) = 0; @@ -62,13 +62,13 @@ public: virtual void GetPolyRopeThrough(int) = 0; virtual void GetPolyBombThrough(int) = 0; virtual void GetShdwThrough(int) = 0; - virtual bool GetUnderwaterRoofCode(int) = 0; - virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; + virtual int GetUnderwaterRoofCode(int) = 0; + virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; virtual void GetLinkNo(cBgS_PolyInfo const&) = 0; virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0; - virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0; + virtual int GetGroundCode(cBgS_PolyInfo const&) = 0; virtual void GetIronBallThrough(int) = 0; virtual u32 GetAttackThrough(int) = 0; virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0; @@ -85,10 +85,12 @@ public: PushPull_CallBack GetPushPullCallback() const { return m_pushPull_Callback; } s16 GetDiffShapeAngleY() { return m_diff_ShapeAngleY; } - u8 GetRoomId() { return m_roomId; } + int GetRoomId() { return m_roomId; } bool chkStickWall() { return field_0xb & 1; } bool chkStickRoof() { return field_0xb & 2; } bool ChkPushPullOk() const { return m_pushPull_Ok; } + void SetRoomId(int id) { m_roomId = id; } + bool ChkPriority(int prio) { return m_priority == prio; } private: /* 0x08 */ u8 m_priority; diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h index 924474ce35..a52e448cb8 100644 --- a/include/d/bg/d_bg_w_kcol.h +++ b/include/d/bg/d_bg_w_kcol.h @@ -23,31 +23,31 @@ public: /* 8007FF00 */ void ChkShdwDrawThrough(dBgPc*); /* 8007E74C */ virtual ~dBgWKCol(); - /* 8007E86C */ virtual void ChkNotReady() const; + /* 8007E86C */ virtual bool ChkNotReady() const; /* 8007E87C */ virtual bool ChkLock() const; /* 8007E884 */ virtual bool ChkMoveBg() const; /* 8007E88C */ virtual bool ChkMoveFlag() const; - /* 8007E894 */ virtual void GetTriPla(cBgS_PolyInfo const&) const; + /* 8007E894 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const; /* 8007E980 */ virtual void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; /* 8007EB28 */ virtual void GetBnd() const; /* 8007EB30 */ virtual void GetGrpInf(cBgS_PolyInfo const&) const; /* 8007EB6C */ virtual void OffMoveFlag(); /* 800829AC */ virtual void GetTopUnder(f32*, f32*) const; - /* 8007EE34 */ virtual void LineCheck(cBgS_LinChk*); - /* 8007F628 */ virtual void GroundCross(cBgS_GndChk*); + /* 8007EE34 */ virtual bool LineCheck(cBgS_LinChk*); + /* 8007F628 */ virtual bool GroundCross(cBgS_GndChk*); /* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*); /* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&); /* 800811A0 */ virtual void WallCorrect(dBgS_Acch*); /* 80080330 */ virtual void WallCorrectSort(dBgS_Acch*); - /* 80081E18 */ virtual void RoofChk(dBgS_RoofChk*); - /* 80082184 */ virtual void SplGrpChk(dBgS_SplGrpChk*); - /* 800824EC */ virtual void SphChk(dBgS_SphChk*, virtual void*); + /* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*); + /* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*); + /* 800824EC */ virtual bool SphChk(dBgS_SphChk*, virtual void*); /* 800829F0 */ virtual void GetGrpRoomIndex(cBgS_PolyInfo const&) const; /* 80082A20 */ virtual void GetExitId(cBgS_PolyInfo const&); /* 80082A50 */ virtual void GetPolyColor(cBgS_PolyInfo const&); /* 80082A80 */ virtual void GetHorseNoEntry(cBgS_PolyInfo const&); - /* 80082AB0 */ virtual void GetSpecialCode(cBgS_PolyInfo const&); - /* 80082AE0 */ virtual void GetSpecialCode(int); + /* 80082AB0 */ virtual int GetSpecialCode(cBgS_PolyInfo const&); + /* 80082AE0 */ virtual int GetSpecialCode(int); /* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&); /* 80082B6C */ virtual void GetPolyObjThrough(int); /* 80082B98 */ virtual void GetPolyCamThrough(int); @@ -58,13 +58,13 @@ public: /* 80082C74 */ virtual void GetPolyRopeThrough(int); /* 80082CA0 */ virtual void GetPolyBombThrough(int); /* 80082CF8 */ virtual void GetShdwThrough(int); - /* 80082CCC */ virtual void GetUnderwaterRoofCode(int); - /* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&); + /* 80082CCC */ virtual int GetUnderwaterRoofCode(int); + /* 80082B3C */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&); /* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&); /* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 80082D84 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&); /* 80082DB4 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&); - /* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&); + /* 80082DE4 */ virtual int GetGroundCode(cBgS_PolyInfo const&); /* 80082E14 */ virtual void GetIronBallThrough(int); /* 80082E40 */ virtual void GetAttackThrough(int); /* 80082E6C */ virtual void GetCamMoveBG(cBgS_PolyInfo const&); diff --git a/include/d/cc/d_cc_mass_s.h b/include/d/cc/d_cc_mass_s.h index a4c0a53478..9a0a0ec2cb 100644 --- a/include/d/cc/d_cc_mass_s.h +++ b/include/d/cc/d_cc_mass_s.h @@ -13,11 +13,13 @@ private: /* 0x08 */ dCcMassS_ObjCallback mpCallback; /* 0x0C */ cCcD_DivideInfo mDivideInfo; /* 0x1C vtable */ + public: dCcMassS_Obj(); virtual ~dCcMassS_Obj() {} - /* 800852E0 */ void Set(cCcD_Obj*, u8, void (*)(fopAc_ac_c*, cXyz*, u32)); - /* 800852F0 */ void Clear(); + void Set(cCcD_Obj* p_obj, u8 priority, dCcMassS_ObjCallback callback); + void Clear(); + cCcD_Obj* GetObj() { return mpObj; } u8 GetPriority() const { return mPriority; } dCcMassS_ObjCallback GetCallback() const { return mpCallback; } @@ -34,7 +36,7 @@ private: /* 0x0C */ f32 mCoHitLen; public: - /* 80085334 */ void ClearPointer(); + void ClearPointer(); void SetAreaHitObj(cCcD_Obj* obj) { mpArea = obj; } void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; } void SetAtHitObj(cCcD_Obj* obj) { mpAtObj = obj; } @@ -60,18 +62,19 @@ public: /* 0x0224 */ cCcD_CpsAttr mCpsAttr; /* 0x0264 */ cCcD_DivideInfo mDivideInfo; /* 0x0274 vtable */ + public: - dCcMassS_Mng(void); + dCcMassS_Mng(); virtual ~dCcMassS_Mng() {} /* 800855E4 */ void Ct(); - /* 80085630 */ void SetAttr(f32, f32, u8, u8); + /* 80085630 */ void SetAttr(f32 radius, f32 height, u8 param_2, u8 param_3); /* 80085690 */ void Prepare(); - /* 800858AC */ u32 Chk(cXyz*, fopAc_ac_c**, dCcMassS_HitInf*); + /* 800858AC */ u32 Chk(cXyz* p_xyz, fopAc_ac_c** p_actor, dCcMassS_HitInf* p_hitInf); /* 80085CF0 */ void Clear(); - /* 80085D98 */ void Set(cCcD_Obj*, u8); - /* 80085E6C */ void SetCam(cM3dGCps const&); + /* 80085D98 */ void Set(cCcD_Obj* p_obj, u8 priority); + /* 80085E6C */ void SetCam(cM3dGCps const& cps); /* 80085EB0 */ u8 GetResultCam() const; - /* 80085EB8 */ void GetCamTopPos(Vec*); + /* 80085EB8 */ void GetCamTopPos(Vec* p_out); }; STATIC_ASSERT(sizeof(dCcMassS_Mng) == 0x278); diff --git a/include/d/cc/d_cc_uty.h b/include/d/cc/d_cc_uty.h index 243bcce721..81719f4bf9 100644 --- a/include/d/cc/d_cc_uty.h +++ b/include/d/cc/d_cc_uty.h @@ -5,6 +5,15 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" +enum dCcU_AtType { + /* 0x01 */ HIT_TYPE_LINK_NORMAL_ATTACK = 1, + /* 0x02 */ HIT_TYPE_BOMB, + /* 0x09 */ HIT_TYPE_LINK_HEAVY_ATTACK = 9, + /* 0x0A */ HIT_TYPE_BOOMERANG, + /* 0x0F */ HIT_TYPE_ARROW = 15, + /* 0x10 */ HIT_TYPE_STUN, +}; + struct dCcU_AtInfo { /* 0x00 */ cCcD_Obj* mpCollider; /* 0x04 */ fopAc_ac_c* mpActor; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index d9d978e58b..6158da7182 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -643,7 +643,6 @@ public: /* 0x00000 */ dSv_info_c info; /* 0x00F38 */ dComIfG_play_c play; /* 0x05F64 */ dDlst_list_c drawlist; - /* 0x1C104 */ u8 field_0x1C104[0x1F4]; /* 0x1C2F8 */ dRes_control_c mResControl; /* 0x1DDF8 */ u8 mFadeBrightness; /* 0x1DDF9 */ u8 mWorldDark; @@ -797,6 +796,7 @@ BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no); void dComIfGs_onStageSwitch(int i_stageNo, int i_no); void dComIfGs_offStageSwitch(int i_stageNo, int i_no); void dComIfGs_PolyDamageOff_Set(s8 param_0); +u8 dComIfGs_staffroll_next_go_check(); inline void dComIfGs_init() { g_dComIfG_gameInfo.info.init(); diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 12b995f6ea..d0c674f904 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -17,9 +17,9 @@ public: /* 80073970 */ void proc(); private: - u32 field_0x0; - u32 field_0x4; - u32 field_0x8; + /* 0x0 */ u32 mHintActorID; + /* 0x4 */ u32 mPriority; + /* 0x8 */ u32 field_0x8; }; class dAttCatch_c { @@ -30,52 +30,52 @@ public: void proc(); void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int); - s32 getCatghTarget() { return convPId(field_0x10); } + s32 getCatghTarget() { return convPId(mCatghTargetID); } u8 getChangeItem() { return mChangeItem; } private: - void* field_0x0; - u32 field_0x4; - float field_0x8; - u8 field_0xc; - u8 field_0xd; - u8 field_0xe; - u8 field_0xf; - u32 field_0x10; - u8 mChangeItem; -}; // Size = 0x14 + /* 0x00 */ void* field_0x0; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ u8 field_0xc; + /* 0x0D */ u8 field_0xd; + /* 0x0E */ u8 field_0xe; + /* 0x0F */ u8 field_0xf; + /* 0x10 */ u32 mCatghTargetID; + /* 0x14 */ u8 mChangeItem; +}; // Size: 0x18 class dAttParam_c { -private: - /* 0x00 vtable */ - /* 0x04 */ u8 field_0x4; - /* 0x05 */ u8 field_0x5; - /* 0x06 */ u16 mFlag; - /* 0x08 */ float field_0x8; - /* 0x0C */ float field_0xc; - /* 0x10 */ float field_0x10; - /* 0x14 */ float field_0x14; - /* 0x18 */ float field_0x18; - /* 0x1C */ float field_0x1c; - /* 0x20 */ float field_0x20; - /* 0x24 */ float field_0x24; - /* 0x28 */ float field_0x28; - /* 0x2C */ float field_0x2c; - /* 0x30 */ float field_0x30; - /* 0x34 */ float field_0x34; - /* 0x38 */ u8 field_0x38; - /* 0x39 */ u8 field_0x39; - public: dAttParam_c() {} /* 80070038 */ dAttParam_c(s32); + +private: + /* 0x00 */ u16 field_0x0; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 mDangerBGMDistance; + /* 0x14 */ f32 mBGMDistMargin; + /* 0x18 */ f32 mSWModeDisable; + /* 0x1C */ f32 mSelCursorScaleX; + /* 0x20 */ f32 mSelCursorScaleY; + /* 0x24 */ f32 mAttnCursorScaleX; + /* 0x28 */ f32 mAttnCursorScaleY; + /* 0x2C */ f32 mSelCursorOffsetY; + /* 0x30 */ f32 mAttnCursorOffsetY; + /* 0x34 */ u8 mAttnCursorAppearFrames; + /* 0x35 */ u8 mAttnCursorDisappearFrames; + +public: /* 80070110 */ virtual ~dAttParam_c(); + /* 0x38 vtable */ private: - /* 0x3C */ float field_0x3c; - /* 0x40 */ float field_0x40; - /* 0x44 */ u32 field_0x44; - /* 0x48 */ u32 field_0x48; + /* 0x3C */ f32 mSelCursorAnmSpeed; + /* 0x40 */ f32 mAttnCursorAnmSpeed; + /* 0x44 */ u32 mDispPosX; + /* 0x48 */ u32 mDispPosY; }; // Size = 0x4C class dAttLook_c { @@ -88,11 +88,10 @@ public: private: u32 field_0x0; u32 field_0x4; - float field_0x8; - u32 field_0xc; -}; // Size = 0x10 + f32 field_0x8; + u32 mLookTargetID; +}; // Size: 0x10 -#pragma pack(push, 1) class dAttList_c { public: /* 800304D0 */ ~dAttList_c() {} @@ -101,11 +100,12 @@ public: /* 80073898 */ void setActor(fopAc_ac_c*); private: - u8 field_0x0[8]; - cSAngle angle; - u8 field_0xa[10]; -}; // Size = 0x14 -#pragma pack(pop) + /* 0x00 */ f32 mWeight; + /* 0x04 */ f32 mDistance; + /* 0x08 */ cSAngle mAngle; + /* 0x0C */ u32 mType; + /* 0x10 */ u32 mActorID; +}; // Size: 0x14 class dAttDraw_c { public: @@ -116,14 +116,7 @@ public: /* 80073004 */ void alphaAnm(); /* 800732B0 */ void draw(cXyz&, f32 (*)[4]); - u8 field_0x0; - u8 field_0x1; - u8 field_0x2; - u8 field_0x3; - u8 field_0x4; - u8 field_0x5; - u8 field_0x6; - u8 field_0x7; + /* 0x000 */ J3DModel* mModel[2]; /* 0x008 */ mDoExt_bckAnm bckAnm[2]; /* 0x040 */ mDoExt_bpkAnm bpkAnm[2]; /* 0x070 */ mDoExt_brkAnm brkAnm[2]; @@ -225,9 +218,9 @@ public: static u32 chk_type_num; public: - /* 0x000 */ fopAc_ac_c* field_0x0; - /* 0x004 */ u32 field_0x4; - /* 0x008 */ dAttDraw_CallBack_c dattdraw_callback; + /* 0x000 */ fopAc_ac_c* mpPlayer; + /* 0x004 */ u32 mLockTargetID; + /* 0x008 */ dAttDraw_CallBack_c mpDrawCallback; /* 0x00C */ u32 field_0xc; /* 0x010 */ u32 field_0x10; /* 0x014 */ u8 field_0x14[4]; @@ -251,11 +244,11 @@ public: /* 0x334 */ u32 mFlags; /* 0x338 */ dAttList_c mLockOnList[8]; /* 0x3D8 */ int mLockonCount; - /* 0x3DC */ int field_0x3dc; + /* 0x3DC */ int mLockOnOffset; /* 0x3E0 */ dAttList_c mActionList[4]; /* 0x430 */ int mActionCount; - /* 0x434 */ int field_0x434; - /* 0x438 */ dAttList_c attention_list3[4]; + /* 0x434 */ int mActionOffset; + /* 0x438 */ dAttList_c field_0x438[4]; /* 0x488 */ int mCheckObjectCount; /* 0x48C */ int field_0x48c; /* 0x490 */ dAttHint_c mZHintTarget; @@ -270,7 +263,9 @@ public: /* 0x4CD */ u8 field_0x4cd; /* 0x4CE */ u8 field_0x4ce; /* 0x4CF */ u8 field_0x4cf; - /* 0x4D0 */ dAttParam_c attention_param; -}; // Size = 0x51C + /* 0x4D0 */ dAttParam_c mAttParam; +}; // Size: 0x51C + +STATIC_ASSERT(sizeof(dAttention_c) == 0x51C); #endif /* D_D_ATTENTION_H */ diff --git a/include/d/d_demo.h b/include/d/d_demo.h index 0800616e31..584e24cc85 100644 --- a/include/d/d_demo.h +++ b/include/d/d_demo.h @@ -1,91 +1,281 @@ #ifndef D_D_DEMO_H #define D_D_DEMO_H -#include "JSystem/JStudio/JStudio/stb.h" -#include "dolphin/types.h" +#include "JSystem/JGadget/binary.h" +#include "JSystem/JMessage/control.h" +#include "JSystem/JStage/JSGAmbientLight.h" +#include "JSystem/JStage/JSGCamera.h" +#include "JSystem/JStage/JSGFog.h" +#include "JSystem/JStage/JSGLight.h" +#include "JSystem/JStudio/JStudio/jstudio-object.h" +#include "JSystem/JStudio/JStudio_JAudio2/control.h" +#include "JSystem/JStudio/JStudio_JParticle/object-particle.h" +#include "JSystem/JStudio/JStudio_JStage/object.h" +#include "f_op/f_op_actor.h" -struct cXyz; -struct Vec; -struct fopAc_ac_c; class dDemo_actor_c; - +class dDemo_camera_c; +class dDemo_ambient_c; +class dDemo_light_c; +class dDemo_fog_c; class dDemo_object_c { public: /* 80038F54 */ dDemo_object_c(); /* 80038F70 */ ~dDemo_object_c(); - /* 80038FC0 */ void appendActor(fopAc_ac_c*); - /* 80039088 */ static dDemo_actor_c* getActor(u8); - /* 800390AC */ void createCamera(); - /* 80039128 */ void getActiveCamera(); - /* 8003913C */ void createAmbient(); - /* 800391B8 */ void appendLight(); - /* 80039258 */ void createFog(); + /* 80038FC0 */ JStage::TObject* appendActor(fopAc_ac_c*); + /* 80039088 */ dDemo_actor_c* getActor(u8); + /* 800390AC */ JStage::TObject* createCamera(); + /* 80039128 */ JStage::TObject* getActiveCamera(); + /* 8003913C */ JStage::TObject* createAmbient(); + /* 800391B8 */ JStage::TObject* appendLight(); + /* 80039258 */ JStage::TObject* createFog(); /* 800392D4 */ void remove(); + + /* 0x00 */ u8 mActorNum; + /* 0x01 */ u8 mLightNum; + /* 0x04 */ dDemo_actor_c* mpActors[32]; + /* 0x84 */ dDemo_camera_c* mpCamera; + /* 0x88 */ dDemo_ambient_c* mpAmbient; + /* 0x8C */ dDemo_light_c* mpLights[8]; + /* 0xAC */ dDemo_fog_c* mpFog; + /* 0xB0 */ dDemo_camera_c* mpEditorCamera; +}; + +class dDemo_prm_c { +public: + dDemo_prm_c() { mData = 0; } + + /* 0x0 */ u32 field_0x0; + /* 0x4 */ u32 mData; }; -class dDemo_actor_c { +class dDemo_actor_c : public JStage::TActor { public: /* 80038020 */ dDemo_actor_c(); - /* 80038098 */ ~dDemo_actor_c(); /* 80038128 */ void getActor(); /* 8003815C */ void setActor(fopAc_ac_c*); /* 8003819C */ void getPrm_Morf(); /* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*); - /* 800387EC */ void JSGSetData(u32, void const*, u32); - /* 80038920 */ void JSGSetTranslation(Vec const&); - /* 80038980 */ void JSGSetScaling(Vec const&); - /* 800389A8 */ void JSGSetRotation(Vec const&); - /* 80038A0C */ void JSGSetShape(u32); - /* 80038A20 */ void JSGSetAnimation(u32); - /* 80038A40 */ void JSGSetAnimationFrame(f32); - /* 80038A54 */ void JSGSetAnimationTransition(f32); - /* 80038A68 */ void JSGSetTextureAnimation(u32); - /* 80038A7C */ void JSGSetTextureAnimationFrame(f32); - /* 8003A05C */ void JSGFindNodeID(char const*) const; - /* 8003A088 */ void JSGGetNodeTransformation(u32, f32 (*)[4]) const; - /* 8003A0C8 */ void JSGGetAnimationFrameMax() const; - /* 8003A0D0 */ void JSGGetTextureAnimationFrameMax() const; - /* 8003A0D8 */ void JSGGetTranslation(Vec*) const; - /* 8003A0F4 */ void JSGGetScaling(Vec*) const; - /* 8003A110 */ void JSGGetRotation(Vec*) const; + + /* 80038098 */ virtual ~dDemo_actor_c(); + /* 800387EC */ virtual void JSGSetData(u32, void const*, u32); + /* 8003A05C */ virtual void JSGFindNodeID(char const*) const; + /* 8003A088 */ virtual void JSGGetNodeTransformation(u32, f32 (*)[4]) const; + /* 8003A0D8 */ virtual void JSGGetTranslation(Vec*) const; + /* 80038920 */ virtual void JSGSetTranslation(Vec const&); + /* 8003A0F4 */ virtual void JSGGetScaling(Vec*) const; + /* 80038980 */ virtual void JSGSetScaling(Vec const&); + /* 8003A110 */ virtual void JSGGetRotation(Vec*) const; + /* 800389A8 */ virtual void JSGSetRotation(Vec const&); + /* 80038A0C */ virtual void JSGSetShape(u32); + /* 80038A20 */ virtual void JSGSetAnimation(u32); + /* 80038A40 */ virtual void JSGSetAnimationFrame(f32); + /* 8003A0C8 */ virtual f32 JSGGetAnimationFrameMax() const; + /* 80038A54 */ virtual void JSGSetAnimationTransition(f32); + /* 80038A68 */ virtual void JSGSetTextureAnimation(u32); + /* 80038A7C */ virtual void JSGSetTextureAnimationFrame(f32); + /* 8003A0D0 */ virtual f32 JSGGetTextureAnimationFrameMax() const; + + void setModel(J3DModel* p_model) { mModel = p_model; } + +private: + /* 0x04 */ u16 mFlags; + /* 0x08 */ cXyz mTrans; + /* 0x14 */ cXyz mScale; + /* 0x20 */ csXyz mRotate; + /* 0x28 */ u32 mShape; + /* 0x2C */ u32 mAnmId; + /* 0x30 */ f32 mAnmFrame; + /* 0x34 */ f32 mAnmTransition; + /* 0x38 */ f32 mAnmFrameMax; + /* 0x3C */ u32 mTexAnm; + /* 0x40 */ f32 mTexAnmFrame; + /* 0x44 */ f32 mTexAnmFrameMax; + /* 0x48 */ J3DModel* mModel; + /* 0x4C */ dDemo_prm_c mPrm; + /* 0x54 */ u32 field_0x54; + /* 0x58 */ u32 mActorId; + /* 0x5C */ u32 mOldAnmId; + /* 0x60 */ u32 mBtpId; + /* 0x64 */ u32 mBtkId; + /* 0x68 */ u32 mBrkId; +}; + +class dDemo_system_c : public JStage::TSystem { +public: + dDemo_system_c() { mpObject = NULL; } + + /* 80039AAC */ virtual ~dDemo_system_c(); + /* 80039528 */ virtual bool JSGFindObject(JStage::TObject**, char const*, + JStage::TEObject) const; + +private: + /* 0x4 */ dDemo_object_c* mpObject; +}; + +class dDemo_particle_c : public JStudio_JParticle::TCreateObject { +public: + dDemo_particle_c(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system) + : JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {} + + /* 80039F9C */ virtual ~dDemo_particle_c(); + /* 80039F1C */ virtual void emitter_create(u32); +}; + +class dDemo_light_c : public JStage::TLight { +public: + dDemo_light_c() { + mFlags = 0; + } + + /* 80039468 */ virtual ~dDemo_light_c(); + /* 80038E20 */ virtual void JSGSetLightType(JStage::TELight); + /* 80038E34 */ virtual void JSGSetPosition(Vec const&); + /* 80038E5C */ virtual void JSGSetColor(GXColor); + /* 80038E8C */ virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn); + /* 80038EA8 */ virtual void JSGSetAngleAttenuation(f32, GXSpotFn); + /* 80038EC0 */ virtual void JSGSetDirection(Vec const&); + +private: + /* 0x04 */ u8 mFlags; + /* 0x08 */ JStage::TELight mLightType; + /* 0x0C */ GXDistAttnFn mDistAttenFn; + /* 0x10 */ GXSpotFn mSpotFn; + /* 0x14 */ cXyz mPosition; + /* 0x20 */ GXColor mColor; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ cXyz mDirection; +}; + +class dDemo_fog_c : public JStage::TFog { +public: + dDemo_fog_c() { + mFlags = 0; + } + + /* 80039408 */ virtual ~dDemo_fog_c(); + /* 80038EE8 */ virtual void JSGSetFogFunction(GXFogType); + /* 80038EFC */ virtual void JSGSetStartZ(f32); + /* 80038F10 */ virtual void JSGSetEndZ(f32); + /* 80038F24 */ virtual void JSGSetColor(GXColor); + +private: + /* 0x04 */ u8 mFlags; + /* 0x05 */ u8 mFogType; + /* 0x08 */ f32 mStartZ; + /* 0x0C */ f32 mEndZ; + /* 0x10 */ GXColor mColor; +}; + +class dDemo_camera_c : public JStage::TCamera { +public: + dDemo_camera_c() { + mFlags = 0; + } + + /* 80039FFC */ virtual ~dDemo_camera_c(); + /* 80038AC4 */ virtual f32 JSGGetProjectionNear() const; + /* 80038AF8 */ virtual void JSGSetProjectionNear(f32); + /* 80038B0C */ virtual f32 JSGGetProjectionFar() const; + /* 80038B40 */ virtual void JSGSetProjectionFar(f32); + /* 80038B54 */ virtual f32 JSGGetProjectionFovy() const; + /* 80038B88 */ virtual void JSGSetProjectionFovy(f32); + /* 80038B9C */ virtual f32 JSGGetProjectionAspect() const; + /* 80038BD0 */ virtual void JSGSetProjectionAspect(f32); + /* 80038BE4 */ virtual void JSGGetViewPosition(Vec*) const; + /* 80038C44 */ virtual void JSGSetViewPosition(Vec const&); + /* 80038C6C */ virtual void JSGGetViewUpVector(Vec*) const; + /* 80038CD0 */ virtual void JSGSetViewUpVector(Vec const&); + /* 80038CF8 */ virtual void JSGGetViewTargetPosition(Vec*) const; + /* 80038D5C */ virtual void JSGSetViewTargetPosition(Vec const&); + /* 80038D84 */ virtual f32 JSGGetViewRoll() const; + /* 80038DDC */ virtual void JSGSetViewRoll(f32); + +private: + /* 0x04 */ u8 mFlags; + /* 0x08 */ f32 mProjNear; + /* 0x0C */ f32 mProjFar; + /* 0x10 */ f32 mProjFovy; + /* 0x14 */ f32 mProjAspect; + /* 0x18 */ cXyz mViewPos; + /* 0x24 */ cXyz mViewUpVector; + /* 0x30 */ cXyz mViewTargetVector; + /* 0x3C */ f32 mViewRoll; }; +class dDemo_ambient_c : public JStage::TAmbientLight { +public: + dDemo_ambient_c() { + mFlags = 0; + } + + /* 800394C8 */ virtual ~dDemo_ambient_c(); + /* 80038DF0 */ virtual void JSGSetColor(GXColor); + +private: + /* 0x04 */ u8 mFlags; + /* 0x05 */ GXColor mColor; +}; + +namespace { +class jstudio_tCreateObject_message : public JStudio::TCreateObject { +public: + jstudio_tCreateObject_message() {} + + virtual ~jstudio_tCreateObject_message(); + virtual void create(JStudio::TObject**, const JStudio::stb::data::TParse_TBlock_object&); +}; + +class jstudio_tAdaptor_message : public JStudio::TAdaptor_message { +public: + jstudio_tAdaptor_message() {} + + virtual ~jstudio_tAdaptor_message(); + virtual void adaptor_do_MESSAGE(JStudio::data::TEOperationData, const void*, u32); +}; + +}; // namespace + class dDemo_c { public: /* 80039678 */ static void create(); - /* 80039910 */ void remove(); - /* 80039B6C */ void start(u8 const*, cXyz*, f32); + /* 80039910 */ static void remove(); + /* 80039B6C */ static int start(u8 const*, cXyz*, f32); /* 80039CF8 */ static void end(); - /* 80039D4C */ void branch(); - /* 80039DA4 */ static void update(); - /* 80039EDC */ void setBranchType(u16); - /* 80039EEC */ void setBranchId(u16, s16); - /* 80039F04 */ void reset(); + /* 80039D4C */ static void branch(); + /* 80039DA4 */ static int update(); + /* 80039EDC */ static void setBranchType(u16); + /* 80039EEC */ static void setBranchId(u16, s16); + /* 80039F04 */ static void reset(); static dDemo_actor_c* getActor(u8 param_0) { return m_object->getActor(param_0); } static u32 getFrameNoMsg() { return m_frameNoMsg; } static s32 getMode() { return m_mode; } static JStudio::stb::TControl* getControl() { return m_control; } + static bool isStatus(u32 status) { return m_status & status; } + static void setBranchData(const u8* p_data) { m_branchData = p_data; } - static u16 m_branchId[1 + 3 /* padding */]; - static u8 m_system[4]; - static JStudio::stb::TControl* m_control; - static u8 m_stage[4]; - static u8 m_audio[4]; - static u8 m_particle[4]; - static u8 m_message[4]; - static u8 m_factory[4]; - static u8 m_mesgControl[4]; + static s16 m_branchId; + static dDemo_system_c* m_system; + static JStudio::TControl* m_control; + static JStudio_JStage::TCreateObject* m_stage; + static JStudio_JAudio2::TCreateObject* m_audio; + static dDemo_particle_c* m_particle; + static jstudio_tCreateObject_message* m_message; + static JStudio::TFactory* m_factory; + static jmessage_tControl* m_mesgControl; static dDemo_object_c* m_object; - static u8 m_data[4]; - static u8 m_frame[4]; - static u8 m_translation[4]; + static const u8* m_data; + static int m_frame; + static cXyz* m_translation; static f32 m_rotationY; static u32 m_frameNoMsg; static s32 m_mode; - static u8 m_status[4]; - static u8 m_branchType[2 + 2 /* padding */]; - static u8 m_branchData[4]; + static u32 m_status; + static u16 m_branchType; + static const u8* m_branchData; }; #endif /* D_D_DEMO_H */ diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index ddbd6ea7ea..b4d243bfcd 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -36,7 +36,7 @@ public: class dDlst_FileInfo_c : public dDlst_base_c { public: dDlst_FileInfo_c() {} - virtual void draw(void); + virtual void draw(); virtual ~dDlst_FileInfo_c(); // inlined /* 0x04 */ J2DScreen* Scr; @@ -63,15 +63,40 @@ private: /* 0x160 */ u8 mAlpha; }; +class dDlst_2DT2_c : public dDlst_base_c { +public: + /* 80052354 */ virtual void draw(); + /* 80052B00 */ dDlst_2DT2_c(); + /* 80052B4C */ void init(ResTIMG*, f32, f32, f32, f32, u8, u8, u8, f32, f32); + + /* 0x04 */ GXTexObj mTexObj; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 mScaleX; + /* 0x38 */ f32 mScaleY; + /* 0x3C */ GXColor field_0x3c; + /* 0x40 */ GXColor field_0x40; + /* 0x44 */ u8 field_0x44; + /* 0x45 */ u8 field_0x45; + /* 0x46 */ u8 field_0x46; +}; // Size: 0x48 + class dDlst_peekZ_c { public: - dDlst_peekZ_c() { field_0x0 = 0; } - /* 80056018 */ void newData(s16, s16, u32*); + struct dDlst_peekZ_entry { + /* 0x0 */ s16 x; + /* 0x2 */ s16 y; + /* 0x4 */ u32* dst; + }; + + dDlst_peekZ_c() { mCount = 0; } + /* 80056018 */ int newData(s16, s16, u32*); /* 80056080 */ void peekData(); - /* 0x0 */ u8 field_0x0; - /* 0x2 */ u16 field_0x2; - /* 0x4 */ u32* field_0x4; + /* 0x0 */ u8 mCount; + /* 0x4 */ dDlst_peekZ_entry mEntries[0x40]; }; class dDlst_shadowSimple_c { @@ -93,7 +118,9 @@ public: /* 80054288 */ void set(cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*); /* 800543B4 */ void draw(); - /* 0x0 */ void* field_0x0; // vtable + virtual void getTri() = 0; + virtual s32 getTriMax() = 0; + /* 0x4 */ u16 mCount; /* 0x6 */ u8 field_0x6[2]; }; @@ -106,12 +133,11 @@ public: /* 0x0 */ cXyz mPos[3]; }; -class dDlst_shadowRealPoly_c { +class dDlst_shadowRealPoly_c : public dDlst_shadowPoly_c { public: - /* 800569A0 */ void getTri(); - /* 800569A8 */ s32 getTriMax(); + /* 800569A0 */ virtual void getTri(); + /* 800569A8 */ virtual s32 getTriMax(); - /* 0x0 */ dDlst_shadowPoly_c mShadowPoly; /* 0x8 */ dDlst_shadowTri_c mShadowTri[256]; }; @@ -123,7 +149,7 @@ public: /* 80054BD0 */ void setShadowRealMtx(cXyz*, cXyz*, f32, f32, f32, dKy_tevstr_c*); /* 80055028 */ void set(u32, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*, f32, f32); /* 800551D4 */ bool add(J3DModel*); - /* 800561F8 */ ~dDlst_shadowReal_c(); + /* 800561F8 */ ~dDlst_shadowReal_c() {} /* 800562D0 */ dDlst_shadowReal_c(); private: @@ -174,33 +200,33 @@ private: class dDlst_window_c { public: - dDlst_window_c(void) {} + dDlst_window_c() {} ~dDlst_window_c() {} /* 80051AC0 */ void setViewPort(f32, f32, f32, f32, f32, f32); /* 80051ADC */ void setScissor(f32, f32, f32, f32); void setCameraID(int id) { mCameraID = id; } void setMode(int mode) { mMode = mode; } - f32 getViewPort() { return mViewport; } + f32 getViewPort() { return mXOrig; } private: - /* 0x00 */ f32 mViewport; - /* 0x04 */ f32 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0C; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 mScissor; - /* 0x1C */ f32 field_0x1c; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; + /* 0x00 */ f32 mXOrig; + /* 0x04 */ f32 mYOrig; + /* 0x08 */ f32 mWidth; + /* 0x0C */ f32 mHeight; + /* 0x10 */ f32 mNearZ; + /* 0x14 */ f32 mFarZ; + /* 0x18 */ f32 mScissorXOrig; + /* 0x1C */ f32 mScissorYOrig; + /* 0x20 */ f32 mScissorWidth; + /* 0x24 */ f32 mScissorHeight; /* 0x28 */ s8 mCameraID; /* 0x29 */ s8 mMode; }; STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C); -extern u8 data_80450ED0; // Wipe +extern u8 mWipe__12dDlst_list_c; // Wipe struct view_port_class; struct view_class; @@ -222,28 +248,52 @@ public: /* 800568D8 */ static void wipeIn(f32); /* 80056900 */ void calcWipe(); - void set2DOpa(dDlst_base_c* dlst) { set(field_0x1b4, field_0x1b8, dlst); } - void set2DOpaTop(dDlst_base_c* dlst) { set(field_0xac, field_0xb0, dlst); } + enum DrawBuffer { + /* 0x00 */ DB_OPA_LIST_SKY, + /* 0x01 */ DB_XLU_LIST_SKY, + /* 0x02 */ DB_LIST_P0, + /* 0x03 */ DB_OPA_LIST_BG, + /* 0x04 */ DB_XLU_LIST_BG, + /* 0x05 */ DB_OPA_LIST_DARK_BG, + /* 0x06 */ DB_XLU_LIST_DARK_BG, + /* 0x07 */ DB_OPA_LIST, + /* 0x08 */ DB_XLU_LIST, + /* 0x09 */ DB_OPA_LIST_DARK, + /* 0x0A */ DB_XLU_LIST_DARK, + /* 0x0B */ DB_OPA_LIST_PACKET, + /* 0x0C */ DB_LIST_FILTER, + /* 0x0D */ DB_OPA_LIST_ITEM3D, + /* 0x0E */ DB_XLU_LIST_ITEM3D, + /* 0x0F */ DB_OPA_LIST_INVISIBLE, + /* 0x10 */ DB_XLU_LIST_INVISIBLE, + /* 0x11 */ DB_LIST_Z_XLU, + /* 0x12 */ DB_LIST_2D_SCREEN, + /* 0x13 */ DB_LIST_MIDDLE, + /* 0x14 */ DB_LIST_3D_LAST, + }; + + void set2DOpa(dDlst_base_c* dlst) { set(mp2DOpaSet[0], mp2DOpaSet[1], dlst); } + void set2DOpaTop(dDlst_base_c* dlst) { set(mp2DOpaTopSet[0], mp2DOpaTopSet[1], dlst); } view_class* getView() { return mView; } void setView(view_class* view) { mView = view; } void setWindow(dDlst_window_c* window) { mWindow = window; } void setViewport(view_port_class* port) { mViewport = port; } - J3DDrawBuffer* getOpaListFilter() { return mListFilter; } - J3DDrawBuffer* getOpaListP0() { return mListP0; } - J3DDrawBuffer* getOpaListPacket() { return mOpaListPacket; } + J3DDrawBuffer* getOpaListFilter() { return mDrawBuffers[DB_LIST_FILTER]; } + J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; } + J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; } void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); } void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); } - void setXluListSky() { setXluDrawList(mpXluListSky); } - void setOpaListSky() { setOpaDrawList(mOpaListSky); } - void setXluListDark() { setXluDrawList(mXluListDark); } - void setOpaListDark() { setOpaDrawList(mOpaListDark); } - void setOpaList() { setOpaDrawList(mOpaList); } - void setXluList() { setXluDrawList(mXluList); } - void setOpaListItem3D() { setOpaDrawList(mOpaListItem3d); } - void setXluListItem3D() { setXluDrawList(mXluListItem3d); } - void setXluListBG() { setXluDrawList(mXluListBG); } - void setOpaListBG() { setOpaDrawList(mOpaListBG); } - void setXluList2DScreen() { setXluDrawList(mList2DScreen); } + void setXluListSky() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_SKY]); } + void setOpaListSky() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_SKY]); } + void setXluListDark() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK]); } + void setOpaListDark() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK]); } + void setOpaList() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST]); } + void setXluList() { setXluDrawList(mDrawBuffers[DB_XLU_LIST]); } + void setOpaListItem3D() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_ITEM3D]); } + void setXluListItem3D() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_ITEM3D]); } + void setXluListBG() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_BG]); } + void setOpaListBG() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_BG]); } + void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); } void peekZdata() { mPeekZ.peekData(); } @@ -259,52 +309,25 @@ public: param_6); } - static void offWipe() { data_80450ED0 = 0; } + static void offWipe() { mWipe = 0; } static f32 getWipeRate() { return mWipeRate; } - static u8 mWipeDlst[72]; - static u8 mWipeColor[4]; + static dDlst_2DT2_c mWipeDlst; + static GXColor mWipeColor; static f32 mWipeRate; static f32 mWipeSpeed[1 + 1 /* padding */]; + static u8 mWipe; private: - /* 0x00000 */ J3DDrawBuffer* mOpaListSky; - /* 0x00004 */ J3DDrawBuffer* mpXluListSky; - /* 0x00008 */ J3DDrawBuffer* mListP0; - /* 0x0000C */ J3DDrawBuffer* mOpaListBG; - /* 0x00010 */ J3DDrawBuffer* mXluListBG; - /* 0x00014 */ J3DDrawBuffer* mOpaListDarkBG; - /* 0x00018 */ J3DDrawBuffer* mXluListDarkBG; - /* 0x0001C */ J3DDrawBuffer* mOpaList; - /* 0x00020 */ J3DDrawBuffer* mXluList; - /* 0x00024 */ J3DDrawBuffer* mOpaListDark; - /* 0x00028 */ J3DDrawBuffer* mXluListDark; - /* 0x0002C */ J3DDrawBuffer* mOpaListPacket; - /* 0x00030 */ J3DDrawBuffer* mListFilter; - /* 0x00034 */ J3DDrawBuffer* mOpaListItem3d; - /* 0x00038 */ J3DDrawBuffer* mXluListItem3d; - /* 0x0003C */ J3DDrawBuffer* mOpaListInvisible; - /* 0x00040 */ J3DDrawBuffer* mXluListInvisible; - /* 0x00044 */ J3DDrawBuffer* mListZxlu; - /* 0x00048 */ J3DDrawBuffer* mList2DScreen; - /* 0x0004C */ J3DDrawBuffer* mListMiddle; - /* 0x00050 */ J3DDrawBuffer* mList3Dlast; - /* 0x00054 */ dDlst_list_c** field_0x54; // array? - /* 0x00058 */ u8 field_0x58[0xC]; - /* 0x00064 */ dDlst_list_c* field_0x64; - /* 0x00068 */ dDlst_list_c** field_0x68; - /* 0x0006C */ dDlst_list_c** field_0x6c; // array? - /* 0x00070 */ u8 field_0x70[0x3C]; - /* 0x000AC */ dDlst_base_c** field_0xac; - /* 0x000B0 */ dDlst_base_c** field_0xb0; - /* 0x000B4 */ dDlst_list_c** field_0xb4; // array? - /* 0x000B8 */ u8 field_0xb8[0xFC]; - /* 0x001B4 */ dDlst_base_c** field_0x1b4; - /* 0x001B8 */ dDlst_base_c** field_0x1b8; - /* 0x001BC */ dDlst_list_c** field_0x1bc; // array? - /* 0x001C0 */ u8 field_0x1c0[0x7C]; - /* 0x0023C */ dDlst_list_c* field_0x23c; - /* 0x00240 */ dDlst_list_c** field_0x240; + /* 0x00000 */ J3DDrawBuffer* mDrawBuffers[21]; + /* 0x00054 */ dDlst_base_c** mpCopy2DDraw[4]; + /* 0x00064 */ dDlst_base_c** mpCopy2DSet[2]; + /* 0x0006C */ dDlst_base_c** mp2DOpaTopDraw[16]; + /* 0x000AC */ dDlst_base_c** mp2DOpaTopSet[2]; + /* 0x000B4 */ dDlst_base_c** mp2DOpaDraw[64]; + /* 0x001B4 */ dDlst_base_c** mp2DOpaSet[2]; + /* 0x001BC */ dDlst_base_c** mp2DXluDraw[32]; + /* 0x0023C */ dDlst_base_c** mp2DXluSet[2]; /* 0x00244 */ dDlst_window_c* mWindow; /* 0x00248 */ view_port_class* mViewport; /* 0x0024C */ view_class* mView; @@ -312,9 +335,8 @@ private: /* 0x0025C */ dDlst_shadowControl_c mShadowControl; /* 0x16154 */ mDoExt_3DlineMatSortPacket m3DLineMatSortPacket[3]; /* 0x16190 */ dDlst_peekZ_c mPeekZ; - /* 0x16198 */ u8 field_0x16198[8]; // might be part of peekZ -}; // Size: 0x161A0 +}; // Size: 0x16394 -STATIC_ASSERT(sizeof(dDlst_list_c) == 0x161A0); +STATIC_ASSERT(sizeof(dDlst_list_c) == 0x16394); #endif /* D_D_DRAWLIST_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 07811d479d..6cddd5d1d1 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -250,23 +250,22 @@ struct dStage_DMap_c { }; struct dStage_MapEvent_dt_c { - u8 mType; - u8 field_0x1[3 - 1]; - u8 field_0x3; - u8 field_0x4; - u8 field_0x5; - u8 field_0x6; - u8 field_0x7; - u8 field_0x8; - u8 field_0x9; - u8 field_0xA[0xD - 0xA]; - char mName[6]; - u16 field_0x14; - u8 field_0x16; - u8 field_0x17; - u8 field_0x18; - u8 field_0x19[0x1B - 0x19]; - u8 field_0x1B; + /* 0x00 */ u8 mType; + /* 0x01 */ u8 field_0x1[3 - 1]; + /* 0x03 */ u8 field_0x3; + /* 0x04 */ u8 field_0x4; + /* 0x05 */ u8 field_0x5; + /* 0x06 */ u8 mPriority; + /* 0x07 */ u8 field_0x7; + /* 0x08 */ u8 field_0x8; + /* 0x09 */ u8 field_0x9; + /* 0x0A */ u8 field_0xA[0xD - 0xA]; + /* 0x0D */ char mName[9]; + /* 0x16 */ u8 field_0x16; + /* 0x17 */ u8 field_0x17; + /* 0x18 */ u8 mSeType; // 1: RIDDLE_A, 2: RIDDLE_B + /* 0x19 */ u8 field_0x19[0x1B - 0x19]; + /* 0x1B */ u8 mSwitch; }; // SIZE = 0x1C struct dStage_MapEventInfo_c { diff --git a/include/d/d_vibration.h b/include/d/d_vibration.h index a80e4ff543..58b6634557 100644 --- a/include/d/d_vibration.h +++ b/include/d/d_vibration.h @@ -24,42 +24,36 @@ public: static u8 const CQ_patt[80]; private: - u32 field_0x0; - u32 field_0x4; - u32 field_0x8; - u32 field_0xc; - u32 field_0x10; - u32 field_0x14; - float field_0x18; - float field_0x1c; - float field_0x20; - u32 field_0x24; - u32 field_0x28; - u32 field_0x2c; - u32 field_0x30; - u32 field_0x34; - u32 field_0x38; - u32 field_0x3c; - float field_0x40; - float field_0x44; - float field_0x48; - u32 field_0x4c; - u32 field_0x50; - u32 field_0x54; - u32 field_0x58; - u32 field_0x5c; - u32 field_0x60; - u32 field_0x64; - u32 field_0x68; - u32 field_0x6c; - u32 field_0x70; - u32 field_0x74; - u32 field_0x78; - u32 field_0x7c; - u32 field_0x80; - u32 field_0x84; - u32 field_0x88; - u32 field_0x8c; -}; + class { + public: + class { + public: + /* 0x00 */ u32 field_0x0; + /* 0x04 */ int field_0x4; + /* 0x08 */ s32 field_0x8; + /* 0x0C */ s32 field_0xc; + /* 0x10 */ s32 field_0x10; + /* 0x14 */ int field_0x14; + /* 0x18 */ cXyz field_0x18; + /* 0x24 */ u32 field_0x24; + } mShock, mQuake; + } /* 0x00 */ field_0x0; + /* 0x50 */ u32 field_0x50; + /* 0x54 */ int field_0x54; + /* 0x58 */ s32 field_0x58; + /* 0x5C */ s32 field_0x5c; + /* 0x60 */ u32 field_0x60; + /* 0x64 */ u32 field_0x64; + /* 0x68 */ u32 field_0x68; + /* 0x6C */ u32 field_0x6c; + /* 0x70 */ u32 field_0x70; + /* 0x74 */ u32 field_0x74; + /* 0x78 */ u32 field_0x78; + /* 0x7C */ u32 field_0x7c; + /* 0x80 */ u32 field_0x80; + /* 0x84 */ u32 field_0x84; + /* 0x88 */ s32 field_0x88; + /* 0x8C */ u32 field_0x8c; +}; // Size: 0x90 #endif /* D_D_VIBRATION_H */ diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index c8b7cc9c1d..04a9a610cb 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -15,7 +15,7 @@ public: /* 0x00 */ u16 mEventType; /* 0x02 */ u16 mFlag; - /* 0x04 */ u16 field_0x04; + /* 0x04 */ u16 mHindFlag; /* 0x08 */ fopAc_ac_c* mActor1; /* 0x0C */ fopAc_ac_c* mActor2; /* 0x10 */ s16 mEventId; @@ -28,25 +28,50 @@ STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18); typedef int (*SkipFunc)(void*, int); +enum EventMode { + /* 0x0 */ EVT_MODE_NONE, + /* 0x1 */ EVT_MODE_TALK, + /* 0x2 */ EVT_MODE_DEMO, + /* 0x3 */ +}; + +enum EventType { + /* 0x0 */ EVT_TYPE_TALK, + /* 0x1 */ EVT_TYPE_DOOR, + /* 0x2 */ EVT_TYPE_OTHER, + /* 0x3 */ EVT_TYPE_COMPULSORY, + /* 0x4 */ EVT_TYPE_POTENTIAL, + /* 0x5 */ EVT_TYPE_ITEM, + /* 0x6 */ EVT_TYPE_SHOWITEM_X, + /* 0x7 */ EVT_TYPE_SHOWITEM_Y, + /* 0xA */ EVT_TYPE_CATCH = 10, + /* 0xB */ EVT_TYPE_TREASURE, +}; + +enum EventStatus { + /* 0x0 */ STATUS_NONE, +}; + class dEvt_control_c { public: dEvt_control_c(); - s32 orderOld(u16, u16, u16, u16, void*, void*, void const*); + s32 orderOld(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4, void* param_5, + void const* param_6); s32 order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4, void* param_5, s16 eventID, u8 infoIdx); - void setParam(dEvt_order_c*); - s32 beforeFlagProc(dEvt_order_c*); - void afterFlagProc(dEvt_order_c*); - int commonCheck(dEvt_order_c*, u16, u16); - int talkCheck(dEvt_order_c*); - int talkXyCheck(dEvt_order_c*); - int catchCheck(dEvt_order_c*); + void setParam(dEvt_order_c* p_order); + s32 beforeFlagProc(dEvt_order_c* p_order); + void afterFlagProc(dEvt_order_c* p_order); + int commonCheck(dEvt_order_c* p_order, u16 condition, u16 command); + int talkCheck(dEvt_order_c* p_order); + int talkXyCheck(dEvt_order_c* p_order); + int catchCheck(dEvt_order_c* p_order); int talkEnd(); - int demoCheck(dEvt_order_c*); + int demoCheck(dEvt_order_c* p_order); int demoEnd(); - int potentialCheck(dEvt_order_c*); - int doorCheck(dEvt_order_c*); - int itemCheck(dEvt_order_c*); + int potentialCheck(dEvt_order_c* p_order); + int doorCheck(dEvt_order_c* p_order); + int itemCheck(dEvt_order_c* p_order); int endProc(); int change(); int entry(); @@ -64,20 +89,20 @@ public: BOOL compulsory(void*, char const*, u16); void remove(); dStage_MapEvent_dt_c* getStageEventDt(); - void sceneChange(int); + void sceneChange(int exitId); u32 getPId(void*); void* convPId(unsigned int); - void* getStbDemoData(char*); - static dStage_MapEvent_dt_c* searchMapEventData(u8, s32); - static dStage_MapEvent_dt_c* searchMapEventData(u8); - s16 runningEventID(s16); - void setPt1(void*); - void setPt2(void*); - void setPtT(void*); - void setPtI(void*); - void setPtI_Id(unsigned int); - void setPtD(void*); - void setGtItm(u8); + void* getStbDemoData(char* resName); + static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID, s32 roomNo); + static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID); + s16 runningEventID(s16 eventID); + void setPt1(void* ptr); + void setPt2(void* ptr); + void setPtT(void* ptr); + void setPtI(void* ptr); + void setPtI_Id(unsigned int id); + void setPtD(void* ptr); + void setGtItm(u8 itemNo); void isOrderOK(); u16 chkFlag2(u16 flag) { return flag & mFlag2; } @@ -111,9 +136,9 @@ public: /* 0x0DA */ u16 mFlag2; /* 0x0DC */ u16 mHindFlag; /* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong - /* 0x0E0 */ s16 field_0xe0; + /* 0x0E0 */ s16 mEventID; /* 0x0E2 */ s8 mNum; - /* 0x0E3 */ s8 field_0xe3; + /* 0x0E3 */ s8 mOrderIdx; /* 0x0E4 */ u8 mMode; /* 0x0E5 */ u8 mEventStatus; /* 0x0E6 */ u8 field_0xe6; @@ -137,7 +162,7 @@ public: /* 0x110 */ int mSkipFade; /* 0x114 */ char mSkipEventName[20]; /* 0x128 */ u8 mCompulsory; - /* 0x129 */ bool field_0x129; + /* 0x129 */ bool mRoomInfoSet; /* 0x12C */ int mRoomNo; }; // Size = 0x130 diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h index 5d3a09031c..b5857f5141 100644 --- a/include/d/event/d_event_data.h +++ b/include/d/event/d_event_data.h @@ -116,11 +116,11 @@ public: s32 unk; }; - void specialProc_WaitStart(int); + void specialProc_WaitStart(int index); void specialProc_WaitProc(int); void specialProc(); void init(); - void advanceCut(int); + void advanceCut(int cut); void specialProcLight(); void specialProcMessage(); void specialProcSound(); @@ -159,7 +159,7 @@ class dEvDtEvent_c { public: int finishCheck(); int forceFinish(); - void specialStaffProc(dEvDtStaff_c*); + void specialStaffProc(dEvDtStaff_c* p_staff); int getNStaff() { return mNStaff; } int getStaff(int idx) { return mStaff[idx]; } char* getName() { return mName; } @@ -183,9 +183,9 @@ public: class dEvDtFlag_c { public: dEvDtFlag_c() {} - BOOL flagCheck(int); - BOOL flagSet(int); - BOOL flagMaxCheck(int); + BOOL flagCheck(int flag); + BOOL flagSet(int flag); + BOOL flagMaxCheck(int flag); void init(); #define FlagMax 0x2800 @@ -199,9 +199,9 @@ public: dEvDtBase_c() { init(); } ~dEvDtBase_c() {} int init(); - int init(char*, int); - void advanceCut(dEvDtEvent_c*); - BOOL advanceCutLocal(dEvDtStaff_c*); + int init(char* p_data, int roomNo); + void advanceCut(dEvDtEvent_c* p_event); + BOOL advanceCutLocal(dEvDtStaff_c* p_staff); event_binary_data_header* getHeaderP() { return mHeaderP; } dEvDtStaff_c* getStaffP(int i) { return &mStaffP[i]; } diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index 74f48b1a0e..1d8177b925 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -8,62 +8,66 @@ class dEvent_exception_c { public: dEvent_exception_c() { mEventInfoIdx = -1; } void init(); - s32 setStartDemo(int); + s32 setStartDemo(int mapToolID); const char* getEventName(); // private: - s32 mEventInfoIdx; - u8 field_0x4; - u8 field_0x5; - u8 field_0x6; - u8 field_0x7; - s32 mState; + /* 0x0 */ s32 mEventInfoIdx; + /* 0x4 */ u8 field_0x4; + /* 0x5 */ u8 field_0x5; + /* 0x6 */ u8 field_0x6; + /* 0x7 */ u8 field_0x7; + /* 0x8 */ s32 mState; }; +#define EVT_SE_RIDDLE_A 1 +#define EVT_SE_RIDDLE_B 2 + class dEvent_manager_c { public: - void* getSubstance(dEvDtData_c*, int); + void* getSubstance(dEvDtData_c* p_data, int type); dEvent_manager_c(); ~dEvent_manager_c() {} int create(); - bool setObjectArchive(char*); + bool setObjectArchive(char* arcName); void demoInit(); - void roomInit(int); - void roomFinish(int); + void roomInit(int roomNo); + void roomFinish(int roomNo); int orderStartDemo(); void remove(); - void startProc(dEvDtEvent_c*); - void closeProc(dEvDtEvent_c*); - void endProc(s16, int); + void startProc(dEvDtEvent_c* p_evnt); + void closeProc(dEvDtEvent_c* p_evnt); + void endProc(s16 eventID, int close); void Sequencer(); void Experts(); - dEvDtEvent_c* getEventData(s16); + dEvDtEvent_c* getEventData(s16 eventCompositId); dEvDtEvent_c* getEventData(s16, int); - s16 getEventIdx(char const*, u8, s32); - s16 getEventIdx(fopAc_ac_c*, u8); - s16 getEventIdx(fopAc_ac_c*, char const*, u8); - int isMapToolCamera(u8, s32); - int order(s16); - int startCheck(s16); - int startCheckOld(char const*); + s16 getEventIdx(char const* eventName, u8 mapToolID, s32 roomNo); + s16 getEventIdx(fopAc_ac_c* pActor, u8 mapToolID); + s16 getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8 mapToolID); + int isMapToolCamera(u8 mapToolID, s32 roomNo); + int order(s16 eventCompositId); + int startCheck(s16 eventCompositId); + int startCheckOld(char const* name); int endCheck(s16); - int endCheckOld(char const*); - int getMyStaffId(char const*, fopAc_ac_c*, int); - int getIsAddvance(int); - int getMyActIdx(int, char const* const*, int, int, int); - char* getMyNowCutName(int); - dEvDtData_c* getMyDataP(int, char const*, int); - void* getMySubstanceP(int, char const*, int); - int getMySubstanceNum(int, char const*); - void cutEnd(int); - int getEventPrio(fopAc_ac_c*, s16); - void issueStaff(char const*); - void cancelStaff(char const*); - void setGoal(cXyz*); + int endCheckOld(char const* name); + int getMyStaffId(char const* staffName, fopAc_ac_c* pActor, int tagId); + int getIsAddvance(int staffIdx); + int getMyActIdx(int staffIdx, char const* const* param_1, int param_2, int param_3, + int param_4); + char* getMyNowCutName(int cutIndex); + dEvDtData_c* getMyDataP(int index, char const* name, int type); + void* getMySubstanceP(int index, char const* name, int type); + int getMySubstanceNum(int index, char const* name); + void cutEnd(int cutIndex); + int getEventPrio(fopAc_ac_c* pActor, s16 eventCompositId); + void issueStaff(char const* name); + void cancelStaff(char const* name); + void setGoal(cXyz* p_goal); cXyz* getGoal(); const char* getRunEventName(); - fopAc_ac_c* specialCast_Shutter(s16, int); - fopAc_ac_c* specialCast(char const*, int); + fopAc_ac_c* specialCast_Shutter(s16 bsTypeId, int param_1); + fopAc_ac_c* specialCast(char const* name, int param_1); int ChkPresentEnd(); int checkStartDemo(); @@ -71,7 +75,7 @@ public: void setCameraPlay(int status) { mCameraPlay = status; } dEvDtBase_c& getBase() { return mEventList[mCurrentEventType]; } void setFlag(int flag) { mFlags.flagSet(flag); } - bool dataLoaded() { return mDataLoaded; } + bool dataLoaded() { return mDataLoaded; } int flagCheck(int flag) { return mFlags.flagCheck(flag); } static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; } diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h index b809043d8a..23b511d6ae 100644 --- a/include/d/map/d_map_path.h +++ b/include/d/map/d_map_path.h @@ -12,28 +12,49 @@ public: /* 0x02 */ u8 unk2; /* 0x03 */ u8 unk3; /* 0x04 */ u16* unk4; - }; + }; // Size: 0x8 - struct poly_class {}; + struct poly_class { + /* 0x00 */ u8 field_0x0; + /* 0x01 */ u8 field_0x1; + /* 0x04 */ u16* field_0x4; + }; // Size: 0x8 - struct group_class {}; + struct group_class { + /* 0x00 */ u8 field_0x0; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ u8 field_0x2; + /* 0x03 */ u8 field_0x3; + /* 0x04 */ u8 field_0x4; + /* 0x08 */ dDrawPath_c::line_class* mpLine; + /* 0x0C */ u8 field_0xc[4]; + /* 0x10 */ dDrawPath_c::poly_class* mpPoly; + }; // Size: 0x14 - struct floor_class {}; + struct floor_class { + /* 0x0 */ s8 field_0x0; + /* 0x1 */ u8 field_0x1; + /* 0x4 */ dDrawPath_c::group_class* mpGroup; + }; // Size: 0x8 - struct room_class {}; + struct room_class { + /* 0x0 */ u8 field_0x0; + /* 0x4 */ dDrawPath_c::floor_class* mpFloor; + /* 0x8 */ void* field_0x8; + }; /* 8003CB00 */ void rendering(dDrawPath_c::group_class const*); /* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*); /* 8002AD3C */ virtual ~dDrawPath_c(); /* 8002ABF0 */ virtual bool isDrawType(int); - virtual void getColor(int) = 0; - /* 8002AD84 */ virtual void getLineColor(int, int); - virtual void getLineWidth(int) = 0; - virtual void isSwitch(dDrawPath_c::group_class const*) = 0; - virtual void isRenderingFloor(int) = 0; - virtual void getFirstRoomPointer() = 0; - virtual void getNextRoomPointer() = 0; + virtual GXColor* getColor(int) = 0; + /* 8002AD84 */ virtual GXColor* getLineColor(int, int); + virtual int getLineWidth(int) = 0; + virtual bool isSwitch(dDrawPath_c::group_class const*) = 0; + virtual bool isRenderingFloor(int) = 0; + virtual room_class* getFirstRoomPointer() = 0; + virtual room_class* getNextRoomPointer() = 0; /* 8003CCC4 */ virtual void drawPath(); /* 8003C94C */ virtual void rendering(dDrawPath_c::line_class const*); /* 8003CA40 */ virtual void rendering(dDrawPath_c::poly_class const*); @@ -55,7 +76,7 @@ public: virtual void afterDrawPath() = 0; virtual void preDrawPath() = 0; virtual void postDrawPath() = 0; - virtual void isDrawPath() = 0; + virtual bool isDrawPath() = 0; virtual void preRenderingMap() = 0; virtual void postRenderingMap() = 0; virtual GXColor* getBackColor() const = 0; @@ -75,7 +96,7 @@ public: /* 8003D6B8 */ virtual s32 getDecorationLineWidth(int); private: - /* 0x04 */ int field_0x4; + /* 0x04 */ void* field_0x4; /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 field_0xc; /* 0x10 */ f32 field_0x10; @@ -87,4 +108,25 @@ private: /* 0x22 */ u16 field_0x22; }; // Size: 0x24 +struct dMpath_n { + class dTexObjAggregate_c { + public: + /* 8003C85C */ void create(); + /* 8003C8F4 */ void remove(); + /* 8003D740 */ ~dTexObjAggregate_c() { remove(); }; + + dTexObjAggregate_c() { + for (int i = 0; i < 7; i++) { + mp_texObj[i] = NULL; + } + } + + /* 0x0 */ GXTexObj* mp_texObj[7]; + }; + + static dTexObjAggregate_c m_texObjAgg; +}; + +STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28); + #endif /* D_MAP_D_MAP_PATH_H */ diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h index 37c2da358a..210d09079f 100644 --- a/include/d/map/d_map_path_dmap.h +++ b/include/d/map/d_map_path_dmap.h @@ -56,13 +56,13 @@ public: /* 8003FE18 */ virtual void draw(); /* 8002B150 */ virtual ~renderingDAmap_c(); - /* 8003FD9C */ virtual void isSwitch(dDrawPath_c::group_class const*); - /* 8003FE54 */ virtual void isRenderingFloor(int); - /* 80040134 */ virtual void getFirstRoomPointer(); - /* 800401E8 */ virtual void getNextRoomPointer(); + /* 8003FD9C */ virtual bool isSwitch(dDrawPath_c::group_class const*); + /* 8003FE54 */ virtual bool isRenderingFloor(int); + /* 80040134 */ virtual dDrawPath_c::room_class* getFirstRoomPointer(); + /* 800401E8 */ virtual dDrawPath_c::room_class* getNextRoomPointer(); /* 8003FF14 */ virtual void preDrawPath(); /* 8003FFC4 */ virtual void postDrawPath(); - /* 800402C0 */ virtual void isDrawPath(); + /* 800402C0 */ virtual bool isDrawPath(); /* 8003FE4C */ virtual GXColor* getBackColor() const; /* 800402E0 */ virtual bool getFirstDrawLayerNo(); /* 800402E8 */ virtual void getNextDrawLayerNo(int); diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h index 5462f54c37..2d252e73a9 100644 --- a/include/d/menu/d_menu_window.h +++ b/include/d/menu/d_menu_window.h @@ -58,18 +58,18 @@ public: GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0); + i_GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0); GXTexCoord2s8(0, 0); - GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0); + i_GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0); GXTexCoord2s8(1, 0); - GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0); + i_GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0); GXTexCoord2s8(1, 1); - GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0); + i_GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0); GXTexCoord2s8(0, 1); - GXEnd(); + i_GXEnd(); } } */ /* 801FE2E8 */ virtual ~dDlst_MENU_CAPTURE_c(); diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h index 7f6ebcd3bd..8d4b45fefa 100644 --- a/include/d/meter/d_meter2_draw.h +++ b/include/d/meter/d_meter2_draw.h @@ -9,6 +9,138 @@ #include "d/pane/d_pane_class.h" #include "dolphin/types.h" +enum dMeter2Draw_actionID { + /* 0x00 */ ACTION_STR_NONE, + /* 0x01 */ ACTION_STR_LET_GO, + /* 0x02 */ ACTION_STR_PEEK, + /* 0x03 */ ACTION_STR_ATTACK, + /* 0x04 */ ACTION_STR_PUT_AWAY, + /* 0x05 */ ACTION_STR_HOWL, + /* 0x06 */ ACTION_STR_OPEN, + /* 0x07 */ ACTION_STR_ENTER, + /* 0x08 */ ACTION_STR_CHECK, + /* 0x09 */ ACTION_STR_DASH, + /* 0x0A */ ACTION_STR_CROUCH, + /* 0x0B */ ACTION_STR_DEFEND, + /* 0x0C */ ACTION_STR_PICK_UP, + /* 0x0D */ ACTION_STR_DIG, + /* 0x0E */ ACTION_STR_EAT, + /* 0x0F */ ACTION_STR_SELECT, + /* 0x10 */ ACTION_STR_LOCK, + /* 0x11 */ ACTION_STR_SWITCH, + /* 0x12 */ ACTION_STR_BACK, + /* 0x13 */ ACTION_STR_THROW, + /* 0x14 */ ACTION_STR_PLACE, + /* 0x15 */ ACTION_STR_GRAB, + /* 0x16 */ ACTION_STR_GET_OFF, + /* 0x17 */ ACTION_STR_GET_ON, + /* 0x18 */ ACTION_STR_PADDLE, + /* 0x19 */ ACTION_STR_JUMP, + /* 0x1A */ ACTION_STR_READ, + /* 0x1B */ ACTION_STR_LOOK, + /* 0x1C */ ACTION_STR_SPEAK, + /* 0x1D */ ACTION_STR_LIFT, + /* 0x1E */ ACTION_STR_SWING, + /* 0x1F */ ACTION_STR_PICK_UP2, + /* 0x20 */ ACTION_STR_GET_ON2, + /* 0x21 */ ACTION_STR_GET_OFF2, + /* 0x22 */ ACTION_STR_CONFIRM, + /* 0x23 */ ACTION_STR_NEXT, + /* 0x24 */ ACTION_STR_INFO, + /* 0x25 */ ACTION_STR_NONE2, + /* 0x26 */ ACTION_STR_NONE3, + /* 0x27 */ ACTION_STR_NONE4, + /* 0x28 */ ACTION_STR_WHOOP, + /* 0x29 */ ACTION_STR_ZOOM, + /* 0x2A */ ACTION_STR_QUIT, + /* 0x2B */ ACTION_STR_PICK, + /* 0x2C */ ACTION_STR_BLOW, + /* 0x2D */ ACTION_STR_DODGE, + /* 0x2E */ ACTION_STR_CUT, + /* 0x2F */ ACTION_STR_HINT, + /* 0x30 */ ACTION_STR_FINISH, + /* 0x31 */ ACTION_STR_SET_FREE, + /* 0x32 */ ACTION_STR_DISMOUNT, + /* 0x33 */ ACTION_STR_DROP_DOWN, + /* 0x34 */ ACTION_STR_PICK_UP3, + /* 0x35 */ ACTION_STR_TAKE, + /* 0x36 */ ACTION_STR_HURRY, + /* 0x37 */ ACTION_STR_PULL_DOWN, + /* 0x38 */ ACTION_STR_PET, + /* 0x39 */ ACTION_STR_PICK_UP4, + /* 0x3A */ ACTION_STR_SHIELD_ATTACK, + /* 0x3B */ ACTION_STR_LISTEN, + /* 0x3C */ ACTION_STR_DRINK, + /* 0x3D */ ACTION_STR_ZOOM2, + /* 0x3E */ ACTION_STR_COVER, + /* 0x3F */ ACTION_STR_PUSH, + /* 0x40 */ ACTION_STR_RESIST, + /* 0x41 */ ACTION_STR_DIVE, + /* 0x42 */ ACTION_STR_PUT_TOGETHER, + /* 0x43 */ ACTION_STR_SKIP, + /* 0x44 */ ACTION_STR_SLAP, + /* 0x45 */ ACTION_STR_SNIFF, + /* 0x46 */ ACTION_STR_BITE, + /* 0x47 */ ACTION_STR_ROLL, + /* 0x48 */ ACTION_STR_FASTEN, + /* 0x49 */ ACTION_STR_GET_DOWN, + /* 0x4A */ ACTION_STR_HAWKEYE_OFF, + /* 0x4B */ ACTION_STR_DASH2, + /* 0x4C */ ACTION_STR_SWIM, + /* 0x4D */ ACTION_STR_CANT_SKIP, + /* 0x4E */ ACTION_STR_SENSE, + /* 0x4F */ ACTION_STR_NONE5, + /* 0x50 */ ACTION_STR_THROW2, + /* 0x51 */ ACTION_STR_LAND, + /* 0x52 */ ACTION_STR_HOOK, + /* 0x53 */ ACTION_STR_CHANGE_LOCKS, + /* 0x54 */ ACTION_STR_EQUIP, + /* 0x55 */ ACTION_STR_PULL, + /* 0x56 */ ACTION_STR_REEL, + /* 0x57 */ ACTION_STR_EXTRACT, + /* 0x58 */ ACTION_STR_SPIN, + /* 0x59 */ ACTION_STR_SWITCH2, + /* 0x5A */ ACTION_STR_SPIN_ATTACK, + /* 0x5B */ ACTION_STR_REEL_FAST, + /* 0x5C */ ACTION_STR_RAISE, + /* 0x5D */ ACTION_STR_RELEASE, + /* 0x5E */ ACTION_STR_CHECK2, + /* 0x5F */ ACTION_STR_MAP, + /* 0x60 */ ACTION_STR_ITEMS, + /* 0x61 */ ACTION_STR_INSERT, + /* 0x62 */ ACTION_STR_DRAW, + /* 0x63 */ ACTION_STR_STRIKE, + /* 0x64 */ ACTION_STR_BLANK, + /* 0x65 */ ACTION_STR_JUMP2, + /* 0x66 */ ACTION_STR_POINT_WII_REMOTE, + /* 0x67 */ ACTION_STR_FLIP, + /* 0x68 */ ACTION_STR_CHANGE_VIEW, + /* 0x69 */ ACTION_STR_ZOOM3, + /* 0x6A */ ACTION_STR_BACK2, + /* 0x6B */ ACTION_STR_CHANCE, + /* 0x6C */ ACTION_STR_SCOOP, + /* 0x6D */ ACTION_STR_SURVEY, + /* 0x6E */ ACTION_STR_CANCEL, + /* 0x6F */ ACTION_STR_SEIZE, + /* 0x70 */ ACTION_STR_COLLECTION, + /* 0x71 */ ACTION_STR_AREA_MAP, + /* 0x72 */ ACTION_STR_ACTION, + /* 0x73 */ ACTION_STR_SET_HOOK, + /* 0x74 */ ACTION_STR_TILT, + /* 0x75 */ ACTION_STR_THRUST, + /* 0x76 */ ACTION_STR_ROTATE, + /* 0x77 */ ACTION_STR_HELM_SPLITTER, + /* 0x78 */ ACTION_STR_MOVE, + /* 0x79 */ ACTION_STR_ROLL2, + /* 0x7A */ ACTION_STR_HOLD_ON, + /* 0x7B */ ACTION_STR_BITE2, + /* 0x7C */ ACTION_STR_HELP, + /* 0x7D */ ACTION_STR_ZOOM_IN, + /* 0x7E */ ACTION_STR_ZOOM_OUT, + /* 0x7F */ ACTION_STR_MOVE_CLOSER_TV, + /* 0x80 */ ACTION_STR_CHECK3, +}; + class dKantera_icon_c; class dMeter2Draw_c : public dDlst_base_c { diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 89a4644d7f..bf07ea3be1 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -491,6 +491,10 @@ inline s16 dMeter2Info_getMsgKeyWaitTimer() { return g_meter2_info.getMsgKeyWaitTimer(); } +inline void dMeter2Info_onDirectUseItem(int param_0) { + g_meter2_info.onDirectUseItem(param_0); +} + char* dMeter2Info_getNumberTextureName(int pIndex); void dMeter2Info_recieveLetter(); u8 dMeter2Info_getNewLetterNum(); diff --git a/include/d/meter/d_meter_map.h b/include/d/meter/d_meter_map.h index b65ba6cc83..2cdc3ac04f 100644 --- a/include/d/meter/d_meter_map.h +++ b/include/d/meter/d_meter_map.h @@ -19,8 +19,8 @@ public: /* 800284D0 */ virtual void draw(); /* 8002ADB0 */ virtual ~renderingAmap_c(); - /* 80028EE4 */ virtual void getLineColor(int, int); - /* 80028DD4 */ virtual void getLineWidth(int); + /* 80028EE4 */ virtual GXColor* getLineColor(int, int); + /* 80028DD4 */ virtual int getLineWidth(int); /* 80028A10 */ virtual void drawPath(); /* 80028A30 */ virtual void rendering(dDrawPath_c::line_class const*); /* 80028B3C */ virtual void rendering(dDrawPath_c::poly_class const*); @@ -68,8 +68,8 @@ public: /* 8002AB54 */ void _draw(); /* 8002AF20 */ virtual ~dMap_c(); - /* 800296EC */ virtual void isDrawType(int); - /* 80028DF4 */ virtual void getColor(int); + /* 800296EC */ virtual bool isDrawType(int); + /* 80028DF4 */ virtual GXColor* getColor(int); /* 800296F8 */ virtual void isRendAllRoom() const; /* 8002A254 */ virtual void getRoomNoSingle(); /* 8002A1DC */ virtual void isDrawRoom(int, int) const; diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index 6b4383f8ba..dbf173e88b 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -136,7 +136,7 @@ public: /* 802383A4 */ void isMouthCheck(); /* 802383D0 */ static u32 getMessageID(); /* 802383E4 */ void getSmellTypeMessageID(); - /* 80238410 */ void setSmellType(u8); + /* 80238410 */ static void setSmellType(u8); /* 80238440 */ void getSelectCursorPos(); /* 8023846C */ static void setSelectCursorPos(u8); /* 8023849C */ void setPortalMessageID(u16); @@ -299,6 +299,10 @@ inline void dMsgObject_endFlowGroup() { dMsgObject_c::endFlowGroup(); } +inline void dMsgObject_setSmellType(u8 type) { + dMsgObject_c::setSmellType(type); +} + class dMsgObject_HowlHIO_c { public: |
