summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-08-30 14:22:17 -0700
committerGitHub <noreply@github.com>2022-08-30 15:22:17 -0600
commitf8979749e3ef8e8cacf2ea8f474c7f23fc5cb6b3 (patch)
tree69659df2105266e9b26a4d50b9a2d610b3e437a2 /include/d
parentbc30d007e11458a198c5725626a10bb06a5da536 (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')
-rw-r--r--include/d/a/d_a_alink.h1405
-rw-r--r--include/d/a/d_a_player.h5
-rw-r--r--include/d/bg/d_bg_s.h14
-rw-r--r--include/d/bg/d_bg_s_acch.h1
-rw-r--r--include/d/bg/d_bg_s_roof_chk.h1
-rw-r--r--include/d/bg/d_bg_s_sph_chk.h2
-rw-r--r--include/d/bg/d_bg_s_spl_grp_chk.h2
-rw-r--r--include/d/bg/d_bg_w.h38
-rw-r--r--include/d/bg/d_bg_w_base.h26
-rw-r--r--include/d/bg/d_bg_w_kcol.h24
-rw-r--r--include/d/cc/d_cc_mass_s.h21
-rw-r--r--include/d/cc/d_cc_uty.h9
-rw-r--r--include/d/com/d_com_inf_game.h2
-rw-r--r--include/d/d_attention.h121
-rw-r--r--include/d/d_demo.h298
-rw-r--r--include/d/d_drawlist.h190
-rw-r--r--include/d/d_stage.h33
-rw-r--r--include/d/d_vibration.h68
-rw-r--r--include/d/event/d_event.h81
-rw-r--r--include/d/event/d_event_data.h18
-rw-r--r--include/d/event/d_event_manager.h80
-rw-r--r--include/d/map/d_map_path.h70
-rw-r--r--include/d/map/d_map_path_dmap.h10
-rw-r--r--include/d/menu/d_menu_window.h10
-rw-r--r--include/d/meter/d_meter2_draw.h132
-rw-r--r--include/d/meter/d_meter2_info.h4
-rw-r--r--include/d/meter/d_meter_map.h8
-rw-r--r--include/d/msg/d_msg_object.h6
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: