From fadcd7bcdfdfa664677e9caaf272dd1895dbd8cd Mon Sep 17 00:00:00 2001 From: Trueffel <106771418+Trueffeloot@users.noreply.github.com> Date: Thu, 2 Nov 2023 18:42:44 +0100 Subject: d_a_dbdoor00 OK (#1973) * initial work on d_a_door_dbdoor00 * dbdoor mostly OK * finish all functions and header * remove externs * remove unused asm --- include/d/a/d_a_player.h | 2 + include/d/com/d_com_inf_game.h | 4 ++ include/d/d_door_param2.h | 32 ++++++------- include/d/d_stage.h | 2 +- .../d/a/door/d_a_door_dbdoor00/d_a_door_dbdoor00.h | 56 +++++++++++++++++++++- 5 files changed, 78 insertions(+), 18 deletions(-) (limited to 'include') diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index e1cad14dbe..3573bce813 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -792,6 +792,8 @@ public: void i_changeDemoPos0(const cXyz* i_posP) { mDemo.setPos0(i_posP); } + void changeDemoMoveAngle(s16 i_angle) { mDemo.setMoveAngle(i_angle); } + inline static u32 i_getLastSceneMode(); inline static u32 getLastSceneMode(); inline static bool checkWoodSwordEquip(); diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 36050fe6f7..1265d0be10 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -2908,6 +2908,10 @@ inline dKy_tevstr_c* dComIfGp_roomControl_getTevStr(int i_roomNo) { return g_dComIfG_gameInfo.play.getRoomControl()->getTevStr(i_roomNo); } +inline BOOL dComIfGp_roomControl_checkRoomDisp(int i_roomNo) { + return g_dComIfG_gameInfo.play.getRoomControl()->checkRoomDisp(i_roomNo); +} + inline BOOL dComIfGp_roomControl_checkStatusFlag(int i_roomNo, u8 flag) { return g_dComIfG_gameInfo.play.getRoomControl()->checkStatusFlag(i_roomNo, flag); } diff --git a/include/d/d_door_param2.h b/include/d/d_door_param2.h index 398af65311..72702e886c 100644 --- a/include/d/d_door_param2.h +++ b/include/d/d_door_param2.h @@ -7,24 +7,24 @@ class fopAc_ac_c; class door_param2_c { public: - /* 8003A188 */ static u8 getKind(fopAc_ac_c* i_actor); - /* 8003A194 */ static u8 getDoorModel(fopAc_ac_c* i_actor); - /* 8003A1A0 */ static u8 getFrontOption(fopAc_ac_c* i_actor); - /* 8003A1AC */ static u8 getBackOption(fopAc_ac_c* i_actor); - /* 8003A1B8 */ static u8 getFRoomNo(fopAc_ac_c* i_actor); - /* 8003A1C4 */ static u8 getBRoomNo(fopAc_ac_c* i_actor); - /* 8003A1D0 */ static u8 getSwbit(fopAc_ac_c* i_actor); - /* 8003A1DC */ static u8 getSwbit2(fopAc_ac_c* i_actor); - /* 8003A1E8 */ static u8 getSwbit3(fopAc_ac_c* i_actor); - /* 8003A1F4 */ static u8 isMsgDoor(fopAc_ac_c* i_actor); - /* 8003A200 */ static u8 getEventNo(fopAc_ac_c* i_actor); - /* 8003A20C */ static u8 getEventNo2(fopAc_ac_c* i_actor); + /* 8003A188 */ static u32 getKind(fopAc_ac_c* i_actor); + /* 8003A194 */ static u32 getDoorModel(fopAc_ac_c* i_actor); + /* 8003A1A0 */ static u32 getFrontOption(fopAc_ac_c* i_actor); + /* 8003A1AC */ static u32 getBackOption(fopAc_ac_c* i_actor); + /* 8003A1B8 */ static u32 getFRoomNo(fopAc_ac_c* i_actor); + /* 8003A1C4 */ static u32 getBRoomNo(fopAc_ac_c* i_actor); + /* 8003A1D0 */ static u32 getSwbit(fopAc_ac_c* i_actor); + /* 8003A1DC */ static u32 getSwbit2(fopAc_ac_c* i_actor); + /* 8003A1E8 */ static u32 getSwbit3(fopAc_ac_c* i_actor); + /* 8003A1F4 */ static u32 isMsgDoor(fopAc_ac_c* i_actor); + /* 8003A200 */ static u32 getEventNo(fopAc_ac_c* i_actor); + /* 8003A20C */ static u32 getEventNo2(fopAc_ac_c* i_actor); /* 8003A218 */ static u16 getMsgNo(fopAc_ac_c* i_actor); /* 8003A224 */ static u8 getExitNo(fopAc_ac_c* i_actor); - /* 8003A230 */ static u8 getFLightInf(fopAc_ac_c* i_actor); - /* 8003A23C */ static u8 getBLightInf(fopAc_ac_c* i_actor); - /* 8003A248 */ static u8 getMFLightInf(fopAc_ac_c* i_actor); - /* 8003A254 */ static u8 getMBLightInf(fopAc_ac_c* i_actor); + /* 8003A230 */ static u32 getFLightInf(fopAc_ac_c* i_actor); + /* 8003A23C */ static u32 getBLightInf(fopAc_ac_c* i_actor); + /* 8003A248 */ static u32 getMFLightInf(fopAc_ac_c* i_actor); + /* 8003A254 */ static u32 getMBLightInf(fopAc_ac_c* i_actor); }; #endif /* D_D_DOOR_PARAM2_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index b1943fc7fb..e919c1ffa7 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -789,7 +789,7 @@ public: /* 800243B0 */ static JKRExpHeap* getMemoryBlock(int); /* 800243E8 */ static void setStayNo(int); /* 80024424 */ static void setNextStayNo(int); - /* 800244E8 */ bool checkRoomDisp(int) const; + /* 800244E8 */ BOOL checkRoomDisp(int) const; /* 8002451C */ int loadRoom(int, u8*, bool); /* 8002471C */ void zoneCountCheck(int) const; /* 80024844 */ static JKRExpHeap* createMemoryBlock(int, u32); diff --git a/include/rel/d/a/door/d_a_door_dbdoor00/d_a_door_dbdoor00.h b/include/rel/d/a/door/d_a_door_dbdoor00/d_a_door_dbdoor00.h index bb3ddd3406..a79636d5db 100644 --- a/include/rel/d/a/door/d_a_door_dbdoor00/d_a_door_dbdoor00.h +++ b/include/rel/d/a/door/d_a_door_dbdoor00/d_a_door_dbdoor00.h @@ -1,6 +1,60 @@ #ifndef D_A_DOOR_DBDOOR00_H #define D_A_DOOR_DBDOOR00_H -#include "dolphin/types.h" +#include "d/bg/d_bg_w.h" +#include "d/com/d_com_inf_game.h" +#include "f_op/f_op_actor_mng.h" + +class daDbDoor00_c : public fopAc_ac_c { +public: + /* 8045D470 */ char* getAlwaysArcName(); + /* 8045D480 */ char* getDzb(); + /* 8045D490 */ char* getDummyBmdName(); + /* 8045D4A0 */ char* getBmdArcName(); + /* 8045D4B0 */ char* getBmdName(); + /* 8045D504 */ J3DModelData* getDoorModelData(); + /* 8045D594 */ int CreateHeap(); + /* 8045D744 */ void calcMtx(); + /* 8045D8F4 */ int CreateInit(); + /* 8045D9A8 */ int create(); + /* 8045DA68 */ int getDemoAction(); + /* 8045DAB0 */ void demoProc(); + /* 8045DE44 */ int checkArea(); + /* 8045DF70 */ int checkUnlock(); + /* 8045DF78 */ int actionWait(); + /* 8045DF9C */ int actionLockWait(); + /* 8045E000 */ int actionLockOff(); + /* 8045E094 */ int actionLockDemo(); + /* 8045E108 */ int actionCloseWait(); + /* 8045E1C8 */ int actionOpen(); + /* 8045E1EC */ int execute(); + /* 8045E2DC */ int checkDraw(); + /* 8045E31C */ int draw(); + /* 8045E428 */ int Delete(); + + void setAction(u8 i_action) { mAction = i_action; } + + /* 0x568 */ request_of_phase_process_class mPhaseReq; + /* 0x570 */ request_of_phase_process_class mPhaseReq2; + /* 0x578 */ J3DModel* mpModel; + /* 0x57C */ J3DModel* mpModel2; + /* 0x580 */ dBgW* mpBgW; + /* 0x584 */ u8 field_0x584; + /* 0x585 */ u8 field_0x585; + /* 0x586 */ u8 mAction; + /* 0x587 */ u8 field_0x587[0x58A - 0x587]; + /* 0x58A */ s16 field_0x58a; + /* 0x58C */ s16 field_0x58c; + /* 0x58E */ u8 field_0x58E[0x590 - 0x58E]; + /* 0x590 */ s16 field_0x590; + /* 0x594 */ s32 field_0x594; + /* 0x598 */ s32 field_0x598; + /* 0x59C */ cXyz field_0x59c; + /* 0x5A8 */ cXyz field_0x5a8; + /* 0x5B4 */ cXyz field_0x5b4; + /* 0x5C0 */ s8 field_0x5c0; + /* 0x5C1 */ s8 field_0x5c1; + /* 0x5C2 */ s16 field_0x5c2; +}; #endif /* D_A_DOOR_DBDOOR00_H */ -- cgit v1.2.3