From f8ce912342883d88838e0304ac128023d71d973e Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Tue, 4 Jan 2022 04:53:20 -0800 Subject: [PATCH] d_menu_window --- include/JSystem/JFramework/JFWDisplay.h | 74 + include/JSystem/JUtility/JUTFader.h | 4 + include/d/com/d_com_inf_game.h | 25 +- include/d/d_drawlist.h | 5 +- include/d/d_lib.h | 8 + include/d/d_select_cursor.h | 42 + include/d/event/d_event.h | 1 + include/d/menu/d_menu_collect.h | 356 ++++ include/d/menu/d_menu_dmap.h | 133 ++ include/d/menu/d_menu_fishing.h | 66 + include/d/menu/d_menu_fmap.h | 211 +++ include/d/menu/d_menu_insect.h | 89 + include/d/menu/d_menu_letter.h | 120 ++ include/d/menu/d_menu_option.h | 206 +++ include/d/menu/d_menu_ring.h | 188 +++ include/d/menu/d_menu_save.h | 275 ++++ include/d/menu/d_menu_skill.h | 100 ++ include/d/menu/d_menu_window.h | 175 +- include/d/menu/d_menu_window_HIO.h | 6 +- include/d/meter/d_meter2.h | 6 +- include/d/meter/d_meter2_info.h | 30 + include/d/msg/d_msg_class.h | 5 + include/f_op/f_op_msg_mng.h | 1 + include/m_Do/m_Do_ext.h | 1 + include/m_Do/m_Do_graphic.h | 41 + libs/JSystem/JFramework/JFWDisplay.cpp | 125 +- src/d/com/d_com_inf_game.cpp | 6 +- src/d/d_resorce.cpp | 5 - src/d/d_select_cursor.cpp | 75 +- src/d/event/d_event.cpp | 4 - src/d/event/d_event_data.cpp | 7 - src/d/kankyo/d_kankyo.cpp | 8 - src/d/menu/d_menu_collect.cpp | 279 +--- src/d/menu/d_menu_dmap.cpp | 169 +- src/d/menu/d_menu_fishing.cpp | 67 +- src/d/menu/d_menu_fmap.cpp | 191 +-- src/d/menu/d_menu_insect.cpp | 110 +- src/d/menu/d_menu_letter.cpp | 131 +- src/d/menu/d_menu_option.cpp | 161 +- src/d/menu/d_menu_ring.cpp | 142 +- src/d/menu/d_menu_save.cpp | 213 +-- src/d/menu/d_menu_skill.cpp | 144 +- src/d/menu/d_menu_window.cpp | 1979 +++++++++++++---------- src/d/msg/d_msg_flow.cpp | 4 - src/m_Do/m_Do_graphic.cpp | 143 +- 45 files changed, 3291 insertions(+), 2840 deletions(-) diff --git a/include/JSystem/JFramework/JFWDisplay.h b/include/JSystem/JFramework/JFWDisplay.h index 40ec8d5fe6e..b7fdb6c3ae3 100644 --- a/include/JSystem/JFramework/JFWDisplay.h +++ b/include/JSystem/JFramework/JFWDisplay.h @@ -2,5 +2,79 @@ #define JFWDISPLAY_H #include "dolphin/types.h" +#include "dolphin/gx/GX.h" +#include "JSystem/JUtility/JUTXfb.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JUtility/TColor.h" +#include "JSystem/JUtility/JUTFader.h" + +class JFWDisplay { +public: + enum EDrawDone { + /* 0x1 */ UNK_METHOD_1 = 1 + }; + + /* 80272040 */ void ctor_subroutine(bool); + /* 802720F8 */ JFWDisplay(JKRHeap*, JUTXfb::EXfbNumber, bool); + /* 802721DC */ void createManager(_GXRenderModeObj const*, JKRHeap*, JUTXfb::EXfbNumber, bool); + /* 802722B8 */ void prepareCopyDisp(); + /* 802723AC */ void drawendXfb_single(); + /* 802723F4 */ void exchangeXfb_double(); + /* 802724FC */ void exchangeXfb_triple(); + /* 80272574 */ void copyXfb_triple(); + /* 802725F8 */ void preGX(); + /* 8027268C */ void endGX(); + /* 80272C60 */ void waitBlanking(int); + /* 80272E10 */ void threadSleep(s64); + /* 80272EB8 */ void clearEfb_init(); + /* 80272F9C */ void clearEfb(int, int, int, int, _GXColor); + /* 80272F2C */ void clearEfb(); + /* 80272F58 */ void clearEfb(_GXColor); + /* 8027331C */ void calcCombinationRatio(); + + /* 80272798 */ virtual void beginRender(); + /* 80272A04 */ virtual void endRender(); + /* 80272AB0 */ virtual void endFrame(); + /* 80272160 */ virtual ~JFWDisplay(); + + static JFWDisplay* getManager() { return sManager; } + + int startFadeOut(int param_0) { + if (mFader != NULL) { + return mFader->startFadeOut(param_0); + } + return 1; + } + + int startFadeIn(int param_0) { + if (mFader != NULL) { + return mFader->startFadeIn(param_0); + } + return 1; + } + + static JFWDisplay* sManager; + +private: + /* 0x04 */ JUTFader* mFader; + /* 0x08 */ JUtility::TColor mClearColor; + /* 0x0C */ u32 field_0xc; + /* 0x10 */ JUTXfb* mXfbManager; + /* 0x14 */ u16 field_0x14; + /* 0x18 */ EDrawDone mDrawDoneMethod; + /* 0x1C */ u16 mFrameRate; + /* 0x20 */ u32 mTickRate; + /* 0x24 */ bool field_0x24; + /* 0x28 */ f32 mCombinationRatio; + /* 0x2C */ u32 field_0x2c; + /* 0x30 */ int field_0x30; + /* 0x34 */ int field_0x34; + /* 0x38 */ int field_0x38; + /* 0x3C */ int field_0x3c; + /* 0x40 */ u8 field_0x40; + /* 0x44 */ int field_0x44; + /* 0x48 */ u16 field_0x48; + /* 0x4A */ u8 field_0x4a; +}; #endif /* JFWDISPLAY_H */ diff --git a/include/JSystem/JUtility/JUTFader.h b/include/JSystem/JUtility/JUTFader.h index 7c7bf8d1b15..a82a91e5592 100644 --- a/include/JSystem/JUtility/JUTFader.h +++ b/include/JSystem/JUtility/JUTFader.h @@ -9,6 +9,7 @@ class JUTFader { public: enum EStatus { UNKSTATUS_M1 = -1, + UNKSTATUS_0 = 0, }; /* 802E5530 */ JUTFader(int, int, int, int, JUtility::TColor); @@ -20,6 +21,9 @@ public: /* 802E579C */ virtual bool startFadeOut(int); /* 802E56DC */ virtual void draw(); + s32 getStatus() const { return mStatus; } + void setColor(JUtility::TColor color) { mColor.set(color); } + private: /* 0x04 */ s32 mStatus; /* 0x08 */ u16 field_0x8; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index aa8d749584e..189f63bc53b 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -229,7 +229,7 @@ public: JKRExpHeap* getSubExpHeap2D(int idx) { return mSubExpHeap2D[idx]; } void setSubExpHeap2D(int idx, void* heap) { mSubExpHeap2D[idx] = (JKRExpHeap*)heap; } void offEnableNextStage() { mNextStage.offEnable(); } - JKRHeap* getExpHeap2D() { return mExpHeap2D; } + JKRExpHeap* getExpHeap2D() { return mExpHeap2D; } dEvent_manager_c& getEvtManager() { return mEvtManager; } dAttention_c& getAttention() { return mAttention; } JKRArchive* getMsgDtArchive(int idx) { return mMsgDtArchive[idx]; } @@ -240,6 +240,7 @@ public: void* getPlayer(int idx) { return mPlayer[idx]; } JKRArchive* getMain2DArchive() { return mMain2DArchive; } JKRArchive* getAnmArchive() { return mAnmArchive; } + JKRArchive* getCollectResArchive() { return mCollectResArchive; } J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; } dVibration_c& getVibration() { return mVibration; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } @@ -255,6 +256,7 @@ public: m3DDirection = direction; m3DSetFlag = flag; } + void offPauseFlag() { mPauseFlag = false; } public: /* 0x00000 */ dBgS mDBgS; @@ -506,6 +508,8 @@ STATIC_ASSERT(122384 == sizeof(dComIfG_inf_c)); extern dComIfG_inf_c g_dComIfG_gameInfo; +extern GXColor g_blackColor; + void dComIfGp_setItemLifeCount(float, u8); void dComIfGp_setItemRupeeCount(long); int dComIfGs_isItemFirstBit(u8); @@ -547,6 +551,7 @@ int dComIfGp_getSelectItemMaxNum(int); void dComIfGp_mapShow(); void dComIfGp_mapHide(); bool dComIfGp_checkMapShow(); +s32 dComIfGp_setHeapLockFlag(u8); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -967,7 +972,7 @@ inline int dComIfG_syncObjectRes(const char* name) { return g_dComIfG_gameInfo.mResControl.syncObjectRes(name); } -inline JKRHeap* dComIfGp_getExpHeap2D() { +inline JKRExpHeap* dComIfGp_getExpHeap2D() { return g_dComIfG_gameInfo.play.getExpHeap2D(); } @@ -1119,6 +1124,10 @@ inline daPy_py_c* dComIfGp_getLinkPlayer() { return (daPy_py_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR); } +inline daPy_py_c* daPy_getLinkPlayerActorClass() { + return dComIfGp_getLinkPlayer(); +} + inline daAlink_c* daAlink_getAlinkActorClass() { return (daAlink_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR); } @@ -1131,6 +1140,10 @@ inline JKRArchive* dComIfGp_getAnmArchive() { return g_dComIfG_gameInfo.play.getAnmArchive(); } +inline JKRArchive* dComIfGp_getCollectResArchive() { + return g_dComIfG_gameInfo.play.getCollectResArchive(); +} + inline J2DGrafContext* dComIfGp_getCurrentGrafPort() { return g_dComIfG_gameInfo.play.getCurrentGrafPort(); } @@ -1419,8 +1432,16 @@ inline void dComIfGd_set2DOpa(dDlst_base_c* dlst) { g_dComIfG_gameInfo.drawlist.set2DOpa(dlst); } +inline void dComIfGd_set2DOpaTop(dDlst_base_c* dlst) { + g_dComIfG_gameInfo.drawlist.set2DOpaTop(dlst); +} + inline dMsgObject_c* dComIfGp_getMsgObjectClass() { return g_dComIfG_gameInfo.play.getMsgObjectClass(); } +inline void dComIfGp_offPauseFlag() { + g_dComIfG_gameInfo.play.offPauseFlag(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index 493fa2079a6..530338155db 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -192,6 +192,7 @@ public: /* 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); } static u8 mWipeDlst[72]; static u8 mWipeColor[4]; @@ -226,8 +227,8 @@ private: /* 0x00068 */ dDlst_list_c** field_0x68; /* 0x0006C */ dDlst_list_c** field_0x6c; // array? /* 0x00070 */ u8 field_0x70[0x3C]; - /* 0x000AC */ dDlst_list_c* field_0xac; - /* 0x000B0 */ dDlst_list_c** field_0xb0; + /* 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; diff --git a/include/d/d_lib.h b/include/d/d_lib.h index 4d43c9fe2e8..44ae4d2e45f 100644 --- a/include/d/d_lib.h +++ b/include/d/d_lib.h @@ -17,6 +17,8 @@ struct STControl { /* 80032524 */ bool checkUpTrigger(); /* 800325A0 */ bool checkDownTrigger(); + void setFirstWaitTime(s16 time) { mFirstWaitTime = time; } + /* 0x04 */ f32 field_0x04; /* 0x08 */ f32 field_0x08; /* 0x0C */ u8 field_0x0c; @@ -40,6 +42,12 @@ struct STControl { }; // Size = 0x30 struct CSTControl : public STControl { + CSTControl(s16 param_0, s16 param_1, s16 param_2, + s16 param_3, f32 param_4, f32 param_5, + s16 param_6, s16 param_7) + : STControl(param_0, param_1, param_2, param_3, + param_4, param_5, param_6, param_7) {} + virtual f32 getValueStick(); virtual s16 getAngleStick(); }; diff --git a/include/d/d_select_cursor.h b/include/d/d_select_cursor.h index 9a6eaad2c23..65c0cb8297f 100644 --- a/include/d/d_select_cursor.h +++ b/include/d/d_select_cursor.h @@ -2,5 +2,47 @@ #define D_D_SELECT_CURSOR_H #include "dolphin/types.h" +#include "d/d_select_icon.h" +#include "d/d_drawlist.h" + +class dSelect_cursorHIO_c { +public: + /* 801941E4 */ dSelect_cursorHIO_c(); + + /* 80195978 */ virtual ~dSelect_cursorHIO_c(); + +private: + /* 0x04 */ u8 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 mXAxisExpansion; + /* 0x10 */ f32 mYAxisExpansion; + /* 0x14 */ f32 mOscillation; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 mRatioX; + /* 0x20 */ f32 mRatioY; + /* 0x24 */ bool mDebugON; +}; + +class dSelect_cursor_c : public dDlst_base_c { +public: + /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); + /* 80194CC0 */ void update(); + /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); + /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); + /* 801951C8 */ void setScale(f32); + /* 801952A0 */ void setAlphaRate(f32); + /* 80195330 */ void addAlpha(); + /* 801953CC */ void decAlpha(); + /* 80195460 */ void setBpkAnimation(J2DAnmColor*); + /* 801955F0 */ void setBtk0Animation(J2DAnmTextureSRTKey*); + /* 80195724 */ void setCursorAnimation(); + /* 801958E0 */ void setBckAnimation(J2DAnmTransformKey*); + /* 80195940 */ void moveCenter(J2DPane*, f32, f32); + + /* 80194C30 */ virtual void draw(); + /* 801949EC */ virtual ~dSelect_cursor_c(); + +private: +}; #endif /* D_D_SELECT_CURSOR_H */ diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index d007a65ad68..20c6f4be3f5 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -84,6 +84,7 @@ public: u16 chkEventFlag(u16 flag) { return flag & mEventFlag; } u8 getMode() const { return mMode; } u16 checkHind(u16 flag) { return flag & mHindFlag; } + u8 checkCompulsory() { return mCompulsory; } bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; } diff --git a/include/d/menu/d_menu_collect.h b/include/d/menu/d_menu_collect.h index 586692e48f5..a626bddb255 100644 --- a/include/d/menu/d_menu_collect.h +++ b/include/d/menu/d_menu_collect.h @@ -2,5 +2,361 @@ #define D_MENU_D_MENU_COLLECT_H #include "dolphin/types.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "JSystem/J2DGraph/J2DPicture.h" + +class dMsgString_c; +class dMenu_save_c; +class dMenu_Option_c; +class dMenu_Letter_c; +class dMenu_Fishing_c; +class dMenu_Skill_c; +class dMenu_Insect_c; + +class dMenu_Collect2D_c; +class dMenu_Collect2DTop_c : public dDlst_base_c { +public: + /* 801B77A4 */ virtual void draw(); + /* 801B7EB8 */ virtual ~dMenu_Collect2DTop_c(); + + /* 0x4 */ dMenu_Collect2D_c* mpCollect2D; +}; + +class dMenu_Collect2D_c : public dDlst_base_c { +public: + /* 801AFD48 */ dMenu_Collect2D_c(JKRExpHeap*, STControl*, CSTControl*); + /* 801AFEA4 */ void _create(); + /* 801B0100 */ void _delete(); + /* 801B0570 */ void initialize(); + /* 801B05A8 */ void isFishIconVisible(); + /* 801B061C */ void isSkillIconVisible(); + /* 801B071C */ void isInsectIconVisible(); + /* 801B074C */ void screenSet(); + /* 801B1C3C */ void animationSet(); + /* 801B1CE0 */ void btkAnimeLoop0(J2DAnmTextureSRTKey*); + /* 801B1EDC */ void setBackAlpha(); + /* 801B1FAC */ void cursorMove(); + /* 801B27EC */ void cursorPosSet(); + /* 801B2A74 */ void changeSword(); + /* 801B2D00 */ void changeShield(); + /* 801B2EE4 */ void changeClothe(); + /* 801B30C8 */ void setArrowMaxNum(u8); + /* 801B3340 */ void setWalletMaxNum(u16); + /* 801B3524 */ void setSmellType(); + /* 801B3640 */ void setHeartPiece(); + /* 801B370C */ void setPohMaxNum(u8); + /* 801B39D0 */ void setEquipItemFrameColorSword(int); + /* 801B3CF4 */ void setEquipItemFrameColorShield(int); + /* 801B3FDC */ void setEquipItemFrameColorClothes(int); + /* 801B42D8 */ void setHIO(bool); + /* 801B46FC */ void getItemTag(int, int, bool); + /* 801B473C */ void wait_init(); + /* 801B48D0 */ void wait_proc(); + /* 801B4E14 */ void save_open_init(); + /* 801B4EC0 */ void save_open_proc(); + /* 801B4F30 */ void save_move_init(); + /* 801B4F6C */ void save_move_proc(); + /* 801B4FDC */ void save_close_init(); + /* 801B5018 */ void save_close_proc(); + /* 801B5094 */ void option_open_init(); + /* 801B513C */ void option_open_proc(); + /* 801B51AC */ void option_move_init(); + /* 801B51E8 */ void option_move_proc(); + /* 801B5258 */ void option_close_init(); + /* 801B5294 */ void option_close_proc(); + /* 801B5310 */ void letter_open_init(); + /* 801B53AC */ void letter_open_proc(); + /* 801B541C */ void letter_move_init(); + /* 801B5458 */ void letter_move_proc(); + /* 801B54C8 */ void letter_close_init(); + /* 801B5504 */ void letter_close_proc(); + /* 801B5580 */ void fishing_open_init(); + /* 801B561C */ void fishing_open_proc(); + /* 801B568C */ void fishing_move_init(); + /* 801B56C8 */ void fishing_move_proc(); + /* 801B5738 */ void fishing_close_init(); + /* 801B5774 */ void fishing_close_proc(); + /* 801B57F0 */ void skill_open_init(); + /* 801B588C */ void skill_open_proc(); + /* 801B58FC */ void skill_move_init(); + /* 801B5938 */ void skill_move_proc(); + /* 801B59A8 */ void skill_close_init(); + /* 801B59E4 */ void skill_close_proc(); + /* 801B5A60 */ void insect_open_init(); + /* 801B5B00 */ void insect_open_proc(); + /* 801B5B70 */ void insect_move_init(); + /* 801B5BAC */ void insect_move_proc(); + /* 801B5C1C */ void insect_close_init(); + /* 801B5C58 */ void insect_close_proc(); + /* 801B5CD4 */ void _move(); + /* 801B5D70 */ void _draw(); + /* 801B5F48 */ void drawTop(); + /* 801B5F84 */ bool isKeyCheck(); + /* 801B5FAC */ bool isOutCheck(); + /* 801B5FB4 */ void setAButtonString(u16); + /* 801B60B8 */ void setBButtonString(u16); + /* 801B61BC */ void setItemNameString(u8, u8); + /* 801B6344 */ void setItemNameStringNull(); + + /* 801B7F00 */ virtual void draw(); + /* 801AFE34 */ virtual ~dMenu_Collect2D_c(); + + u8 getSubWindowOpenCheck() { return mSubWindowOpenCheck; } + +private: + /* 0x004 */ JKRExpHeap* mpHeap; + /* 0x008 */ JKRExpHeap* mpSubHeap; + /* 0x00C */ void* field_0xc; + /* 0x010 */ STControl* field_0x10; + /* 0x014 */ CSTControl* field_0x14; + /* 0x018 */ J2DScreen* mpScreen; + /* 0x01C */ J2DScreen* mpScreenIcon; + /* 0x020 */ dSelect_cursor_c* mpDrawCursor; + /* 0x024 */ dMsgString_c* mpString; + /* 0x028 */ u8 field_0x28[4]; + /* 0x02C */ J2DAnmTextureSRTKey* field_0x2c; + /* 0x030 */ u8 field_0x30[4]; + /* 0x034 */ f32 field_0x34; + /* 0x038 */ f32 field_0x38; + /* 0x03C */ f32 field_0x3c; + /* 0x040 */ s32 field_0x40; + /* 0x044 */ f32 field_0x44[2]; + /* 0x04C */ f32 field_0x4c[2]; + /* 0x054 */ f32 field_0x54; + /* 0x058 */ f32 field_0x58; + /* 0x05C */ f32 field_0x5c; + /* 0x060 */ f32 field_0x60; + /* 0x064 */ f32 field_0x64; + /* 0x068 */ f32 field_0x68; + /* 0x06C */ f32 field_0x6c; + /* 0x070 */ f32 field_0x70; + /* 0x074 */ f32 field_0x74; + /* 0x078 */ f32 field_0x78; + /* 0x07C */ cXyz field_0x7c; + /* 0x088 */ dMenu_Collect2DTop_c* mpDraw2DTop; + /* 0x08C */ J2DPicture* mpBlackTex; + /* 0x090 */ dMenu_save_c* mpSaveScrn; + /* 0x094 */ dMenu_Option_c* mpOptionScrn; + /* 0x098 */ dMenu_Letter_c* mpLetterScrn; + /* 0x09C */ dMenu_Fishing_c* mpFishingScrn; + /* 0x0A0 */ dMenu_Skill_c* mpSkillScrn; + /* 0x0A4 */ dMenu_Insect_c* mpInsectScrn; + /* 0x0A8 */ CPaneMgr* mpLinkPm; + /* 0x0AC */ CPaneMgr* mpMaskPm; + /* 0x0B0 */ CPaneMgr* mpSelPm[7][6]; + /* 0x158 */ u8 field_0x158[0x8]; + /* 0x160 */ CPaneMgr* mpModelBg; + /* 0x164 */ CPaneMgr* mpHeartParent; + /* 0x168 */ CPaneMgr* mpHeartPiece; + /* 0x16C */ CPaneMgr* mpButtonAB[2]; + /* 0x174 */ CPaneMgr* mpButtonText[2]; + /* 0x17C */ u16 field_0x17c; + /* 0x17E */ u16 field_0x17e; + /* 0x180 */ u16 field_0x180; + /* 0x182 */ u16 field_0x182; + /* 0x184 */ u16 field_0x184; + /* 0x186 */ u16 field_0x186; + /* 0x188 */ u16 field_0x188; + /* 0x18A */ u16 field_0x18a; + /* 0x18C */ u16 field_0x18c; + /* 0x18E */ u16 field_0x18e; + /* 0x190 */ u16 field_0x190; + /* 0x192 */ u16 field_0x192; + /* 0x194 */ u16 field_0x194; + /* 0x196 */ u16 field_0x196; + /* 0x198 */ u16 field_0x198; + /* 0x19A */ u16 field_0x19a; + /* 0x19C */ u16 field_0x19c; + /* 0x19E */ u16 field_0x19e; + /* 0x1A0 */ u16 field_0x1a0; + /* 0x1A2 */ u16 field_0x1a2; + /* 0x1A4 */ u16 field_0x1a4; + /* 0x1A6 */ u16 field_0x1a6; + /* 0x1A8 */ u16 field_0x1a8; + /* 0x1AA */ u16 field_0x1aa; + /* 0x1AC */ u16 field_0x1ac; + /* 0x1AE */ u16 field_0x1ae; + /* 0x1B0 */ u16 field_0x1b0; + /* 0x1B2 */ u16 field_0x1b2; + /* 0x1B4 */ u16 field_0x1b4; + /* 0x1B6 */ u16 field_0x1b6; + /* 0x1B8 */ u16 field_0x1b8; + /* 0x1BA */ u16 field_0x1ba; + /* 0x1BC */ u16 field_0x1bc; + /* 0x1BE */ u16 field_0x1be; + /* 0x1C0 */ u16 field_0x1c0; + /* 0x1C2 */ u16 field_0x1c2; + /* 0x1C4 */ u16 field_0x1c4; + /* 0x1C6 */ u16 field_0x1c6; + /* 0x1C8 */ u16 field_0x1c8; + /* 0x1CA */ u16 field_0x1ca; + /* 0x1CC */ u16 field_0x1cc; + /* 0x1CE */ u16 field_0x1ce; + /* 0x1D0 */ u16 field_0x1d0; + /* 0x1D2 */ u16 field_0x1d2; + /* 0x1D4 */ u16 field_0x1d4; + /* 0x1D6 */ u16 field_0x1d6; + /* 0x1D8 */ u16 field_0x1d8; + /* 0x1DA */ u16 field_0x1da; + /* 0x1DC */ u16 field_0x1dc; + /* 0x1DE */ u16 field_0x1de; + /* 0x1E0 */ u16 field_0x1e0; + /* 0x1E2 */ u16 field_0x1e2; + /* 0x1E4 */ u16 field_0x1e4; + /* 0x1E6 */ u16 field_0x1e6; + /* 0x1E8 */ u16 field_0x1e8; + /* 0x1EA */ u16 field_0x1ea; + /* 0x1EC */ u16 field_0x1ec; + /* 0x1EE */ u16 field_0x1ee; + /* 0x1F0 */ u16 field_0x1f0; + /* 0x1F2 */ u16 field_0x1f2; + /* 0x1F4 */ u16 field_0x1f4; + /* 0x1F6 */ u16 field_0x1f6; + /* 0x1F8 */ u16 field_0x1f8; + /* 0x1FA */ u16 field_0x1fa; + /* 0x1FC */ u16 field_0x1fc; + /* 0x1FE */ u16 field_0x1fe; + /* 0x200 */ u16 field_0x200; + /* 0x202 */ u16 field_0x202; + /* 0x204 */ u16 field_0x204; + /* 0x206 */ u16 field_0x206; + /* 0x208 */ u16 field_0x208; + /* 0x20A */ u16 field_0x20a; + /* 0x20C */ u16 field_0x20c; + /* 0x20E */ u16 field_0x20e; + /* 0x210 */ u16 field_0x210; + /* 0x212 */ u16 field_0x212; + /* 0x214 */ u16 field_0x214; + /* 0x216 */ u16 field_0x216; + /* 0x218 */ u16 field_0x218; + /* 0x21A */ u16 field_0x21a; + /* 0x21C */ u16 field_0x21c; + /* 0x21E */ u16 field_0x21e; + /* 0x220 */ u16 field_0x220; + /* 0x222 */ u16 field_0x222; + /* 0x224 */ u16 field_0x224; + /* 0x226 */ u16 field_0x226; + /* 0x228 */ u16 field_0x228; + /* 0x22A */ u16 field_0x22a; + /* 0x22C */ u8 field_0x22c; + /* 0x22D */ u8 field_0x22d; + /* 0x22E */ u8 field_0x22e; + /* 0x22F */ u8 field_0x22f; + /* 0x230 */ u8 field_0x230; + /* 0x231 */ u8 field_0x231; + /* 0x232 */ u8 field_0x232; + /* 0x233 */ u8 field_0x233; + /* 0x234 */ u8 field_0x234; + /* 0x235 */ u8 field_0x235; + /* 0x236 */ u8 field_0x236; + /* 0x237 */ u8 field_0x237; + /* 0x238 */ u8 field_0x238; + /* 0x239 */ u8 field_0x239; + /* 0x23A */ u8 field_0x23a; + /* 0x23B */ u8 field_0x23b; + /* 0x23C */ u8 field_0x23c; + /* 0x23D */ u8 field_0x23d; + /* 0x23E */ u8 field_0x23e; + /* 0x23F */ u8 field_0x23f; + /* 0x240 */ u8 field_0x240; + /* 0x241 */ u8 field_0x241; + /* 0x242 */ u8 field_0x242; + /* 0x243 */ u8 field_0x243; + /* 0x244 */ u8 field_0x244; + /* 0x245 */ u8 field_0x245; + /* 0x246 */ u8 field_0x246; + /* 0x247 */ u8 field_0x247; + /* 0x248 */ u8 field_0x248; + /* 0x249 */ u8 field_0x249; + /* 0x24A */ u8 field_0x24a; + /* 0x24B */ u8 field_0x24b; + /* 0x24C */ u8 field_0x24c; + /* 0x24D */ u8 field_0x24d; + /* 0x24E */ u8 field_0x24e; + /* 0x24F */ u8 field_0x24f; + /* 0x250 */ u8 field_0x250; + /* 0x251 */ u8 field_0x251; + /* 0x252 */ u8 field_0x252; + /* 0x253 */ u8 field_0x253; + /* 0x254 */ u8 field_0x254; + /* 0x255 */ u8 field_0x255; + /* 0x256 */ u8 field_0x256; + /* 0x257 */ u8 mCursorX; + /* 0x258 */ u8 mCursorY; + /* 0x259 */ u8 field_0x259; + /* 0x25A */ u8 field_0x25a; + /* 0x25B */ u8 field_0x25b; + /* 0x25C */ u8 field_0x25c; + /* 0x25D */ u8 field_0x25d; + /* 0x25E */ u8 mSubWindowOpenCheck; + /* 0x25F */ u8 field_0x25f; + /* 0x260 */ u8 field_0x260; + /* 0x261 */ u8 field_0x261; +}; + +class dMenu_Collect3D_c { +public: + /* 801B6454 */ dMenu_Collect3D_c(JKRExpHeap*, dMenu_Collect2D_c*, CSTControl*); + /* 801B65A8 */ void _create(); + /* 801B6694 */ void _delete(); + /* 801B66C8 */ void _move(u8, u8); + /* 801B696C */ void draw(); + /* 801B6A30 */ void setJ3D(char const*, char const*, char const*); + /* 801B6D30 */ void set_mtx(); + /* 801B6E70 */ void animePlay(); + /* 801B6FB0 */ void animeEntry(); + /* 801B7014 */ void createMaskModel(); + /* 801B71C4 */ void createMirrorModel(); + /* 801B7434 */ void getCrystalNum(); + /* 801B749C */ void getMirrorNum(); + /* 801B7504 */ void getMaskMdlVisible(); + /* 801B75E8 */ void setupItem3D(f32 (*)[4]); + /* 801B7660 */ void toItem3Dpos(f32, f32, f32, cXyz*); + /* 801B774C */ void calcViewMtx(f32 (*)[4]); + + /* 801B6538 */ virtual ~dMenu_Collect3D_c(); + + static f32 mViewOffsetY; + +private: + /* 0x004 */ JKRExpHeap* mpHeap; + /* 0x008 */ JKRSolidHeap* mpSolidHeap; + /* 0x00C */ dMenu_Collect2D_c* mpCollect2D; + /* 0x010 */ void* field_0x10; + /* 0x014 */ CSTControl* field_0x14; + /* 0x018 */ J3DModel* mpModel; + /* 0x01C */ mDoExt_bckAnm* field_0x1c; + /* 0x020 */ mDoExt_brkAnm* field_0x20; + /* 0x024 */ u8 field_0x24[4]; + /* 0x028 */ dKy_tevstr_c field_0x28; + /* 0x3B0 */ cXyz field_0x3b0; + /* 0x3BC */ csXyz field_0x3bc; + /* 0x3C4 */ f32 field_0x3c4; + /* 0x3C8 */ f32 field_0x3c8; + /* 0x3CC */ f32 field_0x3cc; + /* 0x3D0 */ f32 field_0x3d0; + /* 0x3D4 */ f32 field_0x3d4; + /* 0x3D8 */ s16 field_0x3d8; +}; + +class dMenu_Collect_c { +public: + /* 801B78C0 */ dMenu_Collect_c(JKRExpHeap*, STControl*, CSTControl*); + /* 801B7A0C */ void _create(); + /* 801B7A44 */ void _delete(); + /* 801B7A7C */ void _move(); + /* 801B7AC0 */ void draw(); + + /* 801B795C */ virtual ~dMenu_Collect_c(); + + u8 getSubWindowOpenCheck() { return mpCollect2D->getSubWindowOpenCheck(); } + bool isKeyCheck() { return mpCollect2D->isKeyCheck(); } + bool isOutCheck() { return mpCollect2D->isOutCheck(); } + +private: + /* 0x4 */ dMenu_Collect2D_c* mpCollect2D; + /* 0x8 */ dMenu_Collect3D_c* mpCollect3D; +}; #endif /* D_MENU_D_MENU_COLLECT_H */ diff --git a/include/d/menu/d_menu_dmap.h b/include/d/menu/d_menu_dmap.h index 559414565ce..09d9766da38 100644 --- a/include/d/menu/d_menu_dmap.h +++ b/include/d/menu/d_menu_dmap.h @@ -2,5 +2,138 @@ #define D_MENU_D_MENU_DMAP_H #include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DOrthoGraph.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" + +class dMenu_DmapMapCtrl_c; +class dMenu_DmapBg_c; +class mDoDvdThd_mountArchive_c; + +class dMenu_Dmap_c { +public: + /* 801BB498 */ dMenu_Dmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8); + /* 801BB634 */ void screenInit(); + /* 801BC788 */ void getPlayerIconPos(s8, f32); + /* 801BC848 */ void getIconPos(s8, f32); + /* 801BD1D4 */ void getCurFloorPos(); + /* 801BD1E8 */ void getDefaultCurFloorPos(); + /* 801BD208 */ void iconMoveCalc(); + /* 801BD3B8 */ void drawFloorScreenBack(J2DScreen*, f32, f32, J2DOrthoGraph*); + /* 801BD524 */ void drawFloorScreenTop(J2DScreen*, f32, f32, J2DOrthoGraph*); + /* 801BD690 */ void isMapMoveState(); + /* 801BD6C4 */ void floorChangeMode(); + /* 801BD7C0 */ void _create(); + /* 801BDDA4 */ void _move(); + /* 801BDEF8 */ void setMapTexture(); + /* 801BDF48 */ void mapBgAnime(); + /* 801BDF6C */ void mapControl(); + /* 801BE328 */ bool isOpen(); + /* 801BE670 */ bool isClose(); + /* 801BE7E0 */ void _draw(); + /* 801BEAFC */ void itemInfo_init_proc(); + /* 801BEB0C */ void itemInfo_proc(); + /* 801BEB44 */ void itemSelect(); + /* 801BEF28 */ void getNextItem(int); + /* 801BEFCC */ void itemSelectAnmInit(); + /* 801BF030 */ void itemSelectAnm(); + /* 801BF180 */ void itemInfoOpenAnm(); + /* 801BF18C */ void itemInfoWait(); + /* 801BF278 */ void itemInfoCloseAnm(); + /* 801BF334 */ u8 getNextStatus(); + /* 801BF410 */ bool isSync(); + /* 801BF464 */ void isKeyCheck(); + /* 801BF4A4 */ void infoModeChange_init_proc(); + /* 801BF528 */ void infoModeChange_proc(); + /* 801BF688 */ void mapModeChange_init_proc(); + /* 801BF70C */ void mapModeChange_proc(); + /* 801BF8A0 */ void lv5_talk_init_proc(); + /* 801BF8F8 */ void lv5_talk_proc(); + /* 801BF9D4 */ void mapMode_init_proc(); + /* 801BF9E0 */ void mapMode_proc(); + /* 801BFA84 */ void floorSelect_init_proc(); + /* 801BFA88 */ void floorSelect_proc(); + /* 801BFC78 */ void itemCarryCheck(); + /* 801BFCAC */ void floorChange_init_proc(); + /* 801BFD5C */ void floorChange_proc(); + /* 801BFF84 */ void zoomWait_init_proc(); + /* 801BFF88 */ void zoomWait_proc(); + /* 801C008C */ void zoomIn_init_proc(); + /* 801C01A0 */ void zoomIn_proc(); + /* 801C023C */ void zoomOut_init_proc(); + /* 801C02F0 */ void zoomOut_proc(); + + /* 801BCDF4 */ virtual ~dMenu_Dmap_c(); + + void setInOutDir(u8 dir) { mInOutDir = dir; } + u8 getZoomState() { return mZoomState; } + + static u8 myclass[4 + 4 /* padding */]; + +private: + /* 0x004 */ dMenu_DmapMapCtrl_c* mMapCtrl; + /* 0x008 */ dMenu_DmapBg_c* mpDrawBg[2]; + /* 0x010 */ CPaneMgr* field_0x10; + /* 0x014 */ CPaneMgr* mSelFloor[8]; + /* 0x034 */ CPaneMgr* mIconLinkPos[8]; + /* 0x054 */ CPaneMgr* mIconBossPos[8]; + /* 0x074 */ CPaneMgr* mStayIcon[2]; + /* 0x07C */ CPaneMgr* field_0x7c; + /* 0x080 */ CPaneMgr* field_0x80; + /* 0x084 */ CPaneMgr* field_0x84; + /* 0x088 */ CPaneMgr* field_0x88[3]; + /* 0x094 */ CPaneMgr* field_0x94; + /* 0x098 */ CPaneMgr* field_0x98; + /* 0x09C */ u8 field_0x9c[0x44]; + /* 0x0E0 */ mDoDvdThd_mountArchive_c* field_0xe0; + /* 0x0E4 */ JKRArchive* field_0xe4; + /* 0x0E8 */ JKRExpHeap* field_0xe8; + /* 0x0EC */ JKRExpHeap* mDmapHeap; + /* 0x0F0 */ STControl* mSelStick; + /* 0x0F4 */ STControl* mpStick; + /* 0x0F8 */ CSTControl* mpCStick; + /* 0x0FC */ u8* mItemTexBuf; + /* 0x100 */ void* mpBinData; + /* 0x104 */ f32 field_0x104; + /* 0x108 */ f32 field_0x108; + /* 0x10C */ f32 field_0x10c; + /* 0x110 */ f32 field_0x110; + /* 0x114 */ f32 field_0x114[8]; + /* 0x134 */ f32 field_0x134; + /* 0x138 */ f32 field_0x138; + /* 0x13C */ f32 field_0x13c; + /* 0x140 */ f32 field_0x140; + /* 0x144 */ f32 field_0x144; + /* 0x148 */ f32 field_0x148; + /* 0x14C */ Vec field_0x14c[2]; + /* 0x164 */ s16 field_0x164; + /* 0x166 */ u16 mCMessageNum; + /* 0x168 */ u16 mJMessageNum; + /* 0x16A */ u16 field_0x16a; + /* 0x16C */ u8 field_0x16c; + /* 0x16D */ u8 field_0x16d; + /* 0x16E */ u8 field_0x16e; + /* 0x16F */ u8 field_0x16f; + /* 0x170 */ u8 field_0x170; + /* 0x171 */ u8 mBottomFloor; + /* 0x172 */ u8 field_0x172; + /* 0x173 */ u8 field_0x173; + /* 0x174 */ u8 field_0x174[3]; + /* 0x177 */ u8 field_0x177; + /* 0x178 */ u8 field_0x178; + /* 0x179 */ u8 field_0x179; + /* 0x17A */ u8 mInOutDir; + /* 0x17B */ u8 field_0x17b; + /* 0x17C */ u8 field_0x17c; + /* 0x17D */ u8 field_0x17d; + /* 0x17E */ u8 field_0x17e; + /* 0x17F */ u8 mZoomState; + /* 0x180 */ u8 field_0x180; + /* 0x181 */ u8 field_0x181; + /* 0x182 */ u8 field_0x182; + /* 0x183 */ u8 field_0x183; + /* 0x184 */ u8 field_0x184; + /* 0x185 */ u8 field_0x185; +}; #endif /* D_MENU_D_MENU_DMAP_H */ diff --git a/include/d/menu/d_menu_fishing.h b/include/d/menu/d_menu_fishing.h index baf4bfce814..551222cd58d 100644 --- a/include/d/menu/d_menu_fishing.h +++ b/include/d/menu/d_menu_fishing.h @@ -2,5 +2,71 @@ #define D_MENU_D_MENU_FISHING_H #include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DPicture.h" +#include "d/d_select_cursor.h" +#include "d/d_lib.h" + +class mDoDvdThd_mountArchive_c; +class dMsgString_c; + +class dMenu_Fishing_c : public dDlst_base_c { +public: + /* 801C4D54 */ dMenu_Fishing_c(JKRExpHeap*, STControl*, CSTControl*); + /* 801C504C */ void _create(); + /* 801C50B4 */ void _move(); + /* 801C514C */ void _draw(); + /* 801C5204 */ bool isSync(); + /* 801C522C */ void init(); + /* 801C52E4 */ void _open(); + /* 801C5470 */ void _close(); + /* 801C556C */ void wait_init(); + /* 801C55A8 */ void wait_move(); + /* 801C55D8 */ void screenSetBase(); + /* 801C5D3C */ void screenSetDoIcon(); + /* 801C5EB8 */ void setAButtonString(u16); + /* 801C5F68 */ void setBButtonString(u16); + /* 801C6018 */ void getFigure(int); + /* 801C605C */ void setFishParam(int, u16, u8); + /* 801C6210 */ void setHIO(bool); + + /* 801C659C */ virtual void draw(); + /* 801C4D98 */ virtual ~dMenu_Fishing_c(); + + u8 getStatus() { return mStatus; } + +private: + /* 0x004 */ JKRExpHeap* mpHeap; + /* 0x008 */ JKRArchive* field_0x8; + /* 0x00C */ STControl* mpStick; + /* 0x010 */ CSTControl* mpCStick; + /* 0x014 */ mDoDvdThd_mountArchive_c* field_0x14; + /* 0x018 */ J2DScreen* mpScreen; + /* 0x01C */ J2DScreen* mpIconScreen; + /* 0x020 */ J2DTextBox* field_0x20[5]; + /* 0x034 */ J2DTextBox* field_0x34[5]; + /* 0x048 */ CPaneMgr* mpParent; + /* 0x04C */ CPaneMgr* mpFishParent[6]; + /* 0x064 */ CPaneMgr* mpFishParts[6][6]; + /* 0x0F4 */ CPaneMgr* mpFishInfoParent[2]; + /* 0x0FC */ CPaneMgr* mpButtonAB[2]; + /* 0x104 */ CPaneMgr* mpButtonText[2]; + /* 0x10C */ J2DTextBox* field_0x10c[1][6]; + /* 0x124 */ J2DTextBox* field_0x124[6]; + /* 0x13C */ J2DTextBox* field_0x13c[1][6]; + /* 0x154 */ J2DTextBox* field_0x154[6]; + /* 0x16C */ J2DTextBox* field_0x16c[1][6]; + /* 0x184 */ J2DTextBox* field_0x184[6]; + /* 0x19C */ J2DTextBox* field_0x19c[1][6]; + /* 0x1B4 */ J2DTextBox* field_0x1b4[6]; + /* 0x1CC */ J2DTextBox* field_0x1cc[6]; + /* 0x1E4 */ J2DTextBox* field_0x1e4; + /* 0x1E8 */ J2DTextBox* field_0x1e8; + /* 0x1EC */ J2DTextBox* field_0x1ec; + /* 0x1F0 */ J2DPicture* mpBlackTex; + /* 0x1F4 */ dMsgString_c* mpString; + /* 0x1F8 */ u16 field_0x1f8; + /* 0x1FA */ u8 mStatus; + /* 0x1FB */ u8 field_0x1fb; +}; #endif /* D_MENU_D_MENU_FISHING_H */ diff --git a/include/d/menu/d_menu_fmap.h b/include/d/menu/d_menu_fmap.h index 2ac6c1c58da..df43e86ba45 100644 --- a/include/d/menu/d_menu_fmap.h +++ b/include/d/menu/d_menu_fmap.h @@ -2,5 +2,216 @@ #define D_MENU_D_MENU_FMAP_H #include "dolphin/types.h" +#include "d/pane/d_pane_class.h" +#include "d/d_lib.h" +#include "d/d_drawlist.h" +#include "d/msg/d_msg_flow.h" + +class dMenu_Fmap_stage_data_c; +class dMenu_Fmap_world_data_c; +class dMenu_Fmap_region_data_c; +class dMenu_Fmap2DBack_c; +class dMenu_Fmap2DTop_c; +class dMenu_FmapMap_c; +class mDoDvdThd_mountArchive_c; +struct RoomData_c; + +class dMenu_Fmap_c { +public: + /* 801C66E4 */ dMenu_Fmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8, u8, f32, f32, u8); + /* 801C6D64 */ void _create(); + /* 801C74A4 */ void _delete(); + /* 801C74A8 */ void _move(); + /* 801C7650 */ void _draw(); + /* 801C77F0 */ u8 getNextStatus(u8*); + /* 801C7AFC */ bool isSync(); + /* 801C7B24 */ void all_map_init(); + /* 801C7C2C */ void all_map_proc(); + /* 801C8230 */ void zoom_all_to_region_init(); + /* 801C8308 */ void zoom_all_to_region_proc(); + /* 801C83E0 */ void zoom_region_to_all_init(); + /* 801C8438 */ void zoom_region_to_all_proc(); + /* 801C8518 */ void region_map_init(); + /* 801C8600 */ void region_map_proc(); + /* 801C8B00 */ void to_portal_warp_map_init(); + /* 801C8B0C */ void to_portal_warp_map_proc(); + /* 801C8B48 */ void portal_warp_map_init(); + /* 801C8C0C */ void portal_warp_map_proc(); + /* 801C90A4 */ void portal_warp_select_init(); + /* 801C90A8 */ void portal_warp_select_proc(); + /* 801C91D8 */ void portal_warp_forbid_init(); + /* 801C9238 */ void portal_warp_forbid_proc(); + /* 801C92A4 */ void zoom_region_to_spot_init(); + /* 801C9304 */ void zoom_region_to_spot_proc(); + /* 801C93CC */ void zoom_spot_to_region_init(); + /* 801C9428 */ void zoom_spot_to_region_proc(); + /* 801C950C */ void spot_map_init(); + /* 801C9618 */ void spot_map_proc(); + /* 801C9A4C */ void portal_demo1_init(); + /* 801C9B64 */ void portal_demo1_move(); + /* 801C9C7C */ void portal_demo2_init(); + /* 801C9CC8 */ void portal_demo2_move(); + /* 801C9D60 */ void portal_demo3_init(); + /* 801C9DB4 */ void portal_demo3_move(); + /* 801C9EB8 */ void portal_demo4_init(); + /* 801C9F14 */ void portal_demo4_move(); + /* 801C9F7C */ void portal_demo5_init(); + /* 801C9FBC */ void portal_demo5_move(); + /* 801CA158 */ void portal_demo6_init(); + /* 801CA15C */ void portal_demo6_move(); + /* 801CA1E8 */ void yamiboss_demo1_init(); + /* 801CA2F4 */ void yamiboss_demo1_move(); + /* 801CA34C */ void yamiboss_demo2_init(); + /* 801CA35C */ void yamiboss_demo2_move(); + /* 801CA40C */ void yamiboss_demo3_init(); + /* 801CA410 */ void yamiboss_demo3_move(); + /* 801CA468 */ void yamiboss_demo4_init(); + /* 801CA4C0 */ void yamiboss_demo4_move(); + /* 801CA544 */ void yamiboss_demo5_init(); + /* 801CA548 */ void yamiboss_demo5_move(); + /* 801CA5CC */ void light_demo1_init(); + /* 801CA7A4 */ void light_demo1_move(); + /* 801CA7E0 */ void light_demo2_init(); + /* 801CA814 */ void light_demo2_move(); + /* 801CA874 */ void table_demo1_init(); + /* 801CA9B4 */ void table_demo1_move(); + /* 801CAA78 */ void table_demo2_init(); + /* 801CAABC */ void table_demo2_move(); + /* 801CAB88 */ void table_demo3_init(); + /* 801CABD0 */ void table_demo3_move(); + /* 801CAC30 */ void howl_demo1_init(); + /* 801CAC7C */ void howl_demo1_move(); + /* 801CAD48 */ void howl_demo2_init(); + /* 801CAD54 */ void howl_demo2_move(); + /* 801CAD9C */ void howl_demo3_init(); + /* 801CADA0 */ void howl_demo3_move(); + /* 801CADC4 */ bool isOpen(); + /* 801CB038 */ bool isClose(); + /* 801CB1DC */ u8 getProcess(); + /* 801CB200 */ u8 getRegionCursor(); + /* 801CB230 */ u8 getStageCursor(); + /* 801CB260 */ f32 getStageTransX(); + /* 801CB290 */ f32 getStageTransZ(); + /* 801CB2C0 */ void isRoomCheck(int, int); + /* 801CB570 */ void checkStRoomData(); + /* 801CB664 */ void talkButton(); + /* 801CB6D0 */ void setProcess(u8); + /* 801CB6E0 */ void setFlash(u8, bool); + /* 801CB770 */ void readWorldData(u8); + /* 801CB938 */ void readAreaData(u8, bool); + /* 801CBF04 */ void readRoomData(char const*, dMenu_Fmap_stage_data_c*, void*, int, u8); + /* 801CC094 */ void readFieldMapData(void**, char const*, bool, bool); + /* 801CC2B0 */ void decodeFieldMapData(); + /* 801CC4EC */ void decodePortalData(); + /* 801CC51C */ void readRoomDzsData(void**, u32, char const*); + /* 801CC61C */ void removeAreaData(); + /* 801CC7A8 */ void removeRoomData(dMenu_Fmap_stage_data_c*); + /* 801CC85C */ void setTitleName(u32); + /* 801CC880 */ void setAreaName(u32); + /* 801CC8AC */ void setAreaNameZero(); + /* 801CC8DC */ void portalWarpMapMove(STControl*); + /* 801CCA70 */ void onRoomDataBit(int); + /* 801CCA98 */ void isRoomDataBit(int); + /* 801CCAC4 */ void resetRoomDataBit(); + /* 801CCB08 */ void drawIcon(f32, bool); + /* 801CD10C */ void drawIcon(u8, int); + /* 801CCD98 */ void drawLightDropIcon(); + /* 801CCDDC */ void drawBatsumarkIcon(); + /* 801CCE04 */ void drawSnowmanIcon(); + /* 801CCE48 */ void drawGoldWolfIcon(); + /* 801CCE70 */ void drawCoachIcon(); + /* 801CCE98 */ void drawPlayEnterIcon(); + /* 801CCFB0 */ void checkDrawPortalIcon(int, int); + /* 801CD000 */ void searchIcon(u8, int, f32*, f32*); + /* 801CD210 */ void drawEnterIcon(); + /* 801CD254 */ void drawPortalIcon(); + /* 801CD2FC */ void getRegionStageNum(int); + /* 801CD350 */ void getNowFmapRegionData(); + /* 801CD368 */ void getNowFmapStageData(); + /* 801CD380 */ void searchPortalStageID(char*); + /* 801CD3F0 */ void drawDebugStage(); + /* 801CD460 */ void arrowPosInit(); + /* 801CD5CC */ void tableArrowPosInit(bool); + /* 801CD770 */ void yamibossArrowPosInit(); + /* 801CD814 */ void howlArrowPosInit(); + /* 801CD8B4 */ void getHowlRegionID(); + /* 801CD92C */ void isLightVesselGet(); + /* 801CD95C */ void getPlayerPos2D(); + + /* 801C6AC8 */ virtual ~dMenu_Fmap_c(); + + static u8 MyClass[4]; + +private: + /* 0x004 */ JKRHeap* mpHeap; + /* 0x008 */ JKRExpHeap* mpTalkHeap; + /* 0x00C */ STControl* mpStick; + /* 0x010 */ CSTControl* mpCStick; + /* 0x014 */ dMenu_Fmap2DBack_c* mpDraw2DBack; + /* 0x018 */ dMenu_Fmap2DTop_c* mpDraw2DTop; + /* 0x01C */ mDoDvdThd_mountArchive_c* field_0x1c; + /* 0x020 */ dMenu_Fmap_world_data_c* mpWorldData; + /* 0x024 */ dMenu_Fmap_region_data_c* field_0x24[8]; + /* 0x044 */ dMenu_Fmap_stage_data_c* field_0x44[8]; + /* 0x064 */ JKRArchive* field_0x64; + /* 0x068 */ int field_0x68; + /* 0x06C */ RoomData_c* field_0x6c[8]; + /* 0x08C */ void* field_0x8c; + /* 0x090 */ void* field_0x90; + /* 0x094 */ int field_0x94[8]; + /* 0x0B4 */ int field_0xb4; + /* 0x0B8 */ dMenu_FmapMap_c* mpMenuFmapMap; + /* 0x0BC */ int field_0xbc; + /* 0x0C0 */ u8* field_0xc0; + /* 0x0C4 */ dMsgFlow_c field_0xc4; + /* 0x110 */ cXyz field_0x110; + /* 0x11C */ f32 field_0x11c; + /* 0x120 */ f32 field_0x120; + /* 0x124 */ f32 field_0x124; + /* 0x128 */ f32 field_0x128[8]; + /* 0x148 */ f32 field_0x148[8]; + /* 0x168 */ f32 field_0x168[8]; + /* 0x188 */ f32 field_0x188[8]; + /* 0x1A8 */ f32 field_0x1a8; + /* 0x1AC */ f32 field_0x1ac[8]; + /* 0x1CC */ f32 field_0x1cc[8]; + /* 0x1EC */ f32 field_0x1ec; + /* 0x1F0 */ f32 field_0x1f0; + /* 0x1F4 */ f32 field_0x1f4; + /* 0x1F8 */ int field_0x1f8[2]; + /* 0x200 */ int field_0x200; + /* 0x204 */ int field_0x204; + /* 0x208 */ int field_0x208; + /* 0x20C */ int field_0x20c; + /* 0x210 */ u16 field_0x210; + /* 0x212 */ u16 field_0x212; + /* 0x214 */ u16 field_0x214; + /* 0x216 */ u16 field_0x216; + /* 0x218 */ u16 field_0x218[8]; + /* 0x228 */ u16 field_0x228[20]; + /* 0x250 */ char field_0x250[8]; + /* 0x258 */ char field_0x258[8]; + /* 0x260 */ char field_0x260[20][8]; + /* 0x300 */ u8 mProcess; + /* 0x301 */ u8 field_0x301; + /* 0x302 */ u8 field_0x302; + /* 0x303 */ u8 mDataNumMax; + /* 0x304 */ u8 field_0x304; + /* 0x305 */ u8 field_0x305; + /* 0x306 */ u8 mSpotNum; + /* 0x307 */ u8 field_0x307; + /* 0x308 */ u8 field_0x308; + /* 0x309 */ u8 field_0x309; + /* 0x30A */ u8 field_0x30a; + /* 0x30B */ u8 field_0x31b; + /* 0x30C */ u8 field_0x31c; + /* 0x30D */ u8 field_0x31d; + /* 0x30E */ u8 field_0x30e; + /* 0x30F */ u8 field_0x30f; + /* 0x310 */ u8 field_0x310; + /* 0x311 */ u8 field_0x311; + /* 0x312 */ u8 field_0x312; + /* 0x313 */ u8 field_0x313; +}; #endif /* D_MENU_D_MENU_FMAP_H */ diff --git a/include/d/menu/d_menu_insect.h b/include/d/menu/d_menu_insect.h index 47035a57b49..c0e7930dc24 100644 --- a/include/d/menu/d_menu_insect.h +++ b/include/d/menu/d_menu_insect.h @@ -2,5 +2,94 @@ #define D_MENU_D_MENU_INSECT_H #include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DPicture.h" +#include "d/d_select_cursor.h" +#include "d/d_lib.h" + +class dMsgScrn3Select_c; +class dMsgString_c; + +class dMenu_Insect_c : public dDlst_base_c { +public: + /* 801D8114 */ dMenu_Insect_c(JKRExpHeap*, STControl*, CSTControl*, u8); + /* 801D8658 */ void _create(); + /* 801D86C8 */ void _move(); + /* 801D8760 */ void _draw(); + /* 801D88EC */ bool isSync(); + /* 801D8914 */ void init(); + /* 801D894C */ void _open(); + /* 801D8B2C */ void _close(); + /* 801D8C68 */ void wait_init(); + /* 801D8CCC */ void wait_move(); + /* 801D8E00 */ void explain_open_init(); + /* 801D91E4 */ void explain_open_move(); + /* 801D9264 */ void explain_move_init(); + /* 801D9268 */ void explain_move_move(); + /* 801D9290 */ void select_move_init(); + /* 801D92DC */ void select_move_move(); + /* 801D9504 */ void explain_close_init(); + /* 801D95AC */ void explain_close_move(); + /* 801D9644 */ void screenSetBase(); + /* 801D98F0 */ void screenSetExplain(); + /* 801D9BD0 */ void screenSetDoIcon(); + /* 801D9D4C */ void getGetInsectNum(); + /* 801D9DCC */ void getInsectItemID(int, int); + /* 801D9DE4 */ void isGetInsect(int, int); + /* 801D9E20 */ void isGiveInsect(int, int); + /* 801D9ED4 */ void isGiveInsect(u8); + /* 801D9E7C */ void isCatchInsect(u8); + /* 801D9F3C */ void isCatchNotGiveInsect(u8); + /* 801D9F8C */ void cursorMove(); + /* 801DA1EC */ void setCursorPos(); + /* 801DA2FC */ bool dpdMove(); + /* 801DA304 */ void setAButtonString(u16); + /* 801DA3B4 */ void setBButtonString(u16); + /* 801DA464 */ void setHIO(bool); + + /* 801DA630 */ virtual void draw(); + /* 801D82F4 */ virtual ~dMenu_Insect_c(); + + u8 getStatus() { return mStatus; } + +private: + /* 0x04 */ JKRExpHeap* mpHeap; + /* 0x08 */ void* field_0x8; + /* 0x0C */ STControl* mpStick; + /* 0x10 */ CSTControl* mpCStick; + /* 0x14 */ void* field_0x14; + /* 0x18 */ dSelect_cursor_c* mpDrawCursor; + /* 0x1C */ dMsgScrn3Select_c* mpSelect_c; + /* 0x20 */ J2DScreen* mpScreen; + /* 0x24 */ J2DScreen* mpExpScreen; + /* 0x28 */ J2DScreen* mpIconScreen; + /* 0x2C */ J2DTextBox* field_0x2c[5]; + /* 0x40 */ J2DTextBox* field_0x40[5]; + /* 0x54 */ J2DTextBox* field_0x54; + /* 0x58 */ J2DTextBox* field_0x58; + /* 0x5C */ J2DTextBox* field_0x5c; + /* 0x60 */ J2DPicture* mpBlackTex; + /* 0x64 */ CPaneMgr* mpParent; + /* 0x68 */ CPaneMgr* mpExpParent; + /* 0x6C */ CPaneMgr* mpINSParent[24]; + /* 0xCC */ CPaneMgr* mpInfoText; + /* 0xD0 */ CPaneMgr* mpExpSubWin[2]; + /* 0xD8 */ CPaneMgr* mpButtonAB[2]; + /* 0xE0 */ CPaneMgr* mpButtonText[2]; + /* 0xE8 */ dMsgString_c* mpString; + /* 0xEC */ void* mpExpItemTex; + /* 0xF0 */ u8 field_0xf0; + /* 0xF1 */ u8 field_0xf1; + /* 0xF2 */ u8 mStatus; + /* 0xF3 */ u8 field_0xf3; + /* 0xF4 */ u8 field_0xf4; + /* 0xF5 */ u8 field_0xf5; + /* 0xF6 */ u8 field_0xf6; + /* 0xF7 */ u8 field_0xf7; + /* 0xF8 */ u8 field_0xf8; + /* 0xF9 */ u8 field_0xf9; + /* 0xFA */ u8 field_0xfa; + /* 0xFB */ u8 field_0xfb; + /* 0xFC */ u8 field_0xfc; +}; #endif /* D_MENU_D_MENU_INSECT_H */ diff --git a/include/d/menu/d_menu_letter.h b/include/d/menu/d_menu_letter.h index a3658db74ae..d21d923d0f0 100644 --- a/include/d/menu/d_menu_letter.h +++ b/include/d/menu/d_menu_letter.h @@ -2,5 +2,125 @@ #define D_MENU_D_MENU_LETTER_H #include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DPicture.h" +#include "d/d_select_cursor.h" +#include "d/d_lib.h" + +class mDoDvdThd_mountArchive_c; +class dMsgString_c; +class dMsgScrnArrow_c; + +class dMenu_Letter_c : public dDlst_base_c { +public: + /* 801DCDC0 */ dMenu_Letter_c(JKRExpHeap*, STControl*, CSTControl*); + /* 801DD36C */ void _create(); + /* 801DD474 */ void _move(); + /* 801DD50C */ void _draw(); + /* 801DD934 */ bool isSync(); + /* 801DD95C */ void letter_init_calc(); + /* 801DDA20 */ void init(); + /* 801DDA74 */ void _open(); + /* 801DDC98 */ void _close(); + /* 801DDE18 */ void wait_init(); + /* 801DDE54 */ void wait_move(); + /* 801DE164 */ void slide_right_init(); + /* 801DE1E8 */ void slide_right_move(); + /* 801DE24C */ void slide_left_init(); + /* 801DE2D0 */ void slide_left_move(); + /* 801DE334 */ void read_open_init(); + /* 801DE564 */ void read_open_move(); + /* 801DE70C */ void read_move_init(); + /* 801DE824 */ void read_move_move(); + /* 801DEA48 */ void read_next_fadeout_init(); + /* 801DEA94 */ void read_next_fadeout_move(); + /* 801DEBD8 */ void read_next_fadein_init(); + /* 801DED04 */ void read_next_fadein_move(); + /* 801DEE20 */ void read_close_init(); + /* 801DEE6C */ void read_close_move(); + /* 801DF010 */ void screenSetMenu(); + /* 801DFA58 */ void screenSetBase(); + /* 801E0330 */ void screenSetShadow(); + /* 801E03D8 */ void screenSetLetter(); + /* 801E09A8 */ void screenSetDoIcon(); + /* 801E0B24 */ void setCursorPos(); + /* 801E0BB0 */ void changeActiveColor(); + /* 801E0E34 */ void changePageLight(); + /* 801E0E84 */ void setPageText(); + /* 801E1038 */ void setDMYPageText(); + /* 801E11EC */ void copyDMYMenu(); + /* 801E1518 */ void setAButtonString(u16); + /* 801E15C8 */ void setBButtonString(u16); + /* 801E1678 */ void getLetterNum(); + /* 801E1748 */ void setHIO(bool); + + /* 801E1D5C */ virtual void draw(); + /* 801DCF34 */ virtual ~dMenu_Letter_c(); + + u8 getStatus() { return mStatus; } + +private: + /* 0x004 */ JKRExpHeap* mpHeap; + /* 0x008 */ JKRArchive* field_0x8; + /* 0x00C */ STControl* mpStick; + /* 0x010 */ CSTControl* mpCStick; + /* 0x014 */ mDoDvdThd_mountArchive_c* field_0x14; + /* 0x018 */ J2DScreen* mpMenuScreen; + /* 0x01C */ J2DScreen* mpMenuDMYScreen; + /* 0x020 */ J2DScreen* mpMenuBaseScreen; + /* 0x024 */ J2DScreen* mpSdwScreen; + /* 0x028 */ J2DScreen* mpLetterScreen[2]; + /* 0x030 */ J2DScreen* mpIconScreen; + /* 0x034 */ J2DTextBox* field_0x40[6][5]; + /* 0x0AC */ J2DTextBox* field_0xac[6][5]; + /* 0x124 */ J2DTextBox* field_0x124[6][4]; + /* 0x184 */ J2DTextBox* field_0x184[6][4]; + /* 0x1E4 */ J2DTextBox* field_0x1e4[2]; + /* 0x1EC */ J2DTextBox* field_0x1ec; + /* 0x1F0 */ J2DTextBox* field_0x1f0[9]; + /* 0x214 */ u8 field_0x214[0x24]; + /* 0x238 */ J2DTextBox* field_0x238[9]; + /* 0x25C */ J2DTextBox* field_0x25c[12]; + /* 0x28C */ J2DTextBox* field_0x28c[5]; + /* 0x2A0 */ J2DTextBox* field_0x2a0[5]; + /* 0x2B4 */ J2DPicture* mpBlackTex; + /* 0x2B8 */ CPaneMgr* mpParent[3]; + /* 0x2C4 */ CPaneMgr* mpDMYParent; + /* 0x2C8 */ CPaneMgr* mpLetterParent[6]; + /* 0x2E0 */ CPaneMgr* mpTextParent[2]; + /* 0x2E8 */ CPaneMgr* mpLineParent; + /* 0x2EC */ CPaneMgr* field_0x2ec; + /* 0x2F0 */ CPaneMgr* field_0x2f0; + /* 0x2F4 */ CPaneMgr* field_0x2f4[2]; + /* 0x2FC */ CPaneMgr* mpButtonAB[2]; + /* 0x304 */ CPaneMgr* mpButtonText[2]; + /* 0x30C */ dSelect_cursor_c* mpDrawCursor; + /* 0x310 */ dMsgString_c* mpString; + /* 0x314 */ dMsgScrnArrow_c* mpArrow; + /* 0x318 */ JUtility::TColor field_0x318[4]; + /* 0x328 */ JUtility::TColor field_0x328[4]; + /* 0x338 */ JUtility::TColor field_0x338[4]; + /* 0x348 */ JUtility::TColor field_0x348[4]; + /* 0x358 */ f32 field_0x358; + /* 0x35C */ f32 field_0x35c; + /* 0x360 */ f32 field_0x360; + /* 0x364 */ f32 field_0x364; + /* 0x368 */ u16 field_0x368; + /* 0x36A */ u16 field_0x36a; + /* 0x36C */ u8 mStatus; + /* 0x36D */ u8 field_0x36d; + /* 0x36E */ u8 field_0x36e; + /* 0x36F */ u8 field_0x36f; + /* 0x370 */ u8 field_0x370; + /* 0x371 */ u8 field_0x371; + /* 0x372 */ u8 field_0x372; + /* 0x373 */ u8 field_0x373; + /* 0x374 */ u8 field_0x374; + /* 0x375 */ u8 m_letter_num; + /* 0x376 */ u8 field_0x376[9][6]; + /* 0x3AC */ u8 field_0x3ac[54]; + /* 0x3E2 */ u8 field_0x3e2; + /* 0x3E3 */ u8 field_0x3e3; + /* 0x3E4 */ u8 field_0x3e4; +}; #endif /* D_MENU_D_MENU_LETTER_H */ diff --git a/include/d/menu/d_menu_option.h b/include/d/menu/d_menu_option.h index 38349d75b09..661e8897f82 100644 --- a/include/d/menu/d_menu_option.h +++ b/include/d/menu/d_menu_option.h @@ -2,5 +2,211 @@ #define D_MENU_D_MENU_OPTION_H #include "dolphin/types.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "JSystem/J2DGraph/J2DPicture.h" + +class dFile_warning_c; +class dMenu_Calibration_c; +class mDoDvdThd_mountArchive_c; +class dMsgString_c; +class dMeterHaihai_c; + +class dMenu_Option_c : public dDlst_base_c { +public: + /* 801E1F10 */ dMenu_Option_c(JKRArchive*, STControl*); + /* 801E205C */ void _create(); + /* 801E2C1C */ void _delete(); + /* 801E3408 */ void _move(); + /* 801E36CC */ void _draw(); + /* 801E38CC */ void drawHaihai(); + /* 801E3A7C */ bool isSync(); + /* 801E3AA4 */ void checkLeftTrigger(); + /* 801E3AC8 */ void checkRightTrigger(); + /* 801E3AEC */ void setAnimation(); + /* 801E3B98 */ bool _open(); + /* 801E3DE0 */ void _close(); + /* 801E3F6C */ void atten_init(); + /* 801E3FC4 */ void atten_move(); + /* 801E41A0 */ void vib_init(); + /* 801E41F8 */ void vib_move(); + /* 801E4488 */ void sound_init(); + /* 801E44E0 */ void sound_move(); + /* 801E48AC */ void change_init(); + /* 801E48E8 */ void change_move(); + /* 801E4B34 */ void confirm_open_init(); + /* 801E4C10 */ void confirm_open_move(); + /* 801E4CE4 */ void confirm_move_init(); + /* 801E4D20 */ void confirm_move_move(); + /* 801E4E98 */ void confirm_select_init(); + /* 801E4E9C */ void confirm_select_move(); + /* 801E4F18 */ void confirm_close_init(); + /* 801E4FB0 */ void confirm_close_move(); + /* 801E51CC */ void tv_open1_move(); + /* 801E5244 */ void tv_open2_move(); + /* 801E5260 */ void tv_move_move(); + /* 801E5300 */ void tv_close1_move(); + /* 801E5364 */ void tv_close2_move(); + /* 801E5380 */ void calibration_open1_move(); + /* 801E53C4 */ void calibration_open2_move(); + /* 801E53E0 */ void calibration_move_move(); + /* 801E5434 */ void calibration_close1_move(); + /* 801E5478 */ void calibration_close2_move(); + /* 801E5494 */ void menuVisible(); + /* 801E54F8 */ void menuShow(int); + /* 801E55B8 */ void menuHide(int); + /* 801E5678 */ void screenSet(); + /* 801E6FBC */ void setSoundMode(u32); + /* 801E7004 */ void setAttenString(); + /* 801E70E8 */ void setVibString(); + /* 801E71CC */ void setSoundString(); + /* 801E7314 */ void setCursorPos(u8); + /* 801E73D8 */ void setSelectColor(u8, bool); + /* 801E76EC */ void getSelectType(); + /* 801E7718 */ void changeBarColor(bool); + /* 801E78B8 */ void setHIO(bool); + /* 801E7D18 */ void cursorAnime(f32); + /* 801E7D60 */ void setZButtonString(u16); + /* 801E7DF4 */ void changeTVCheck(); + /* 801E7E98 */ void setAButtonString(u16); + /* 801E7F9C */ void setBButtonString(u16); + /* 801E80A0 */ void isRumbleSupported(); + /* 801E80AC */ bool dpdMenuMove(); + /* 801E80B4 */ void paneResize(u64); + /* 801E8210 */ void initialize(); + /* 801E82C4 */ void yesnoMenuMoveAnmInitSet(int, int); + /* 801E8438 */ void yesnoMenuMoveAnm(); + /* 801E85D4 */ void yesnoSelectMoveAnm(); + /* 801E8888 */ void yesnoCursorShow(); + /* 801E89F8 */ void yesNoSelectStart(); + /* 801E8AC8 */ void yesnoSelectAnmSet(); + /* 801E8C38 */ void yesnoCancelAnmSet(); + /* 801E8CB0 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); + /* 801E8CFC */ void yesnoWakuAlpahAnm(u8); + + /* 801E8E6C */ virtual void draw(); + /* 801E2014 */ virtual ~dMenu_Option_c(); + + u8 getQuitStatus() { return mQuitStatus; } + +private: + /* 0x004 */ J2DScreen* mpBackScreen; + /* 0x008 */ J2DScreen* mpScreen; + /* 0x00C */ J2DScreen* mpClipScreen; + /* 0x010 */ J2DScreen* mpShadowScreen; + /* 0x014 */ J2DScreen* mpTVScreen; + /* 0x018 */ J2DScreen* mpScreenIcon; + /* 0x01C */ J2DScreen* mpSelectScreen; + /* 0x020 */ void* field_0x20; // bck + /* 0x024 */ void* field_0x24; // bck + /* 0x028 */ void* field_0x28; // bck + /* 0x02C */ void* field_0x2c; // bpk + /* 0x030 */ void* field_0x30; // btk + /* 0x034 */ dFile_warning_c* mpWarning; + /* 0x038 */ J2DPicture* mpBlackTex; + /* 0x03C */ dMenu_Calibration_c* field_0x3c; + /* 0x040 */ mDoDvdThd_mountArchive_c* field_0x40; + /* 0x044 */ dSelect_cursor_c* mpDrawCursor; + /* 0x048 */ dMsgString_c* mpString; + /* 0x04C */ dMeterHaihai_c* mpMeterHaihai; + /* 0x050 */ JKRArchive* field_0x50; + /* 0x054 */ JUTFont* field_0x54; + /* 0x058 */ STControl* field_0x58; + /* 0x05C */ CPaneMgr* mpParent[5]; + /* 0x070 */ CPaneMgr* mpTitle; + /* 0x074 */ CPaneMgr* mpMenuNull[6]; + /* 0x08C */ CPaneMgr* mpMenuPane[6]; + /* 0x0A4 */ CPaneMgr* mpMenuPaneC[6]; + /* 0x0BC */ CPaneMgr* mpMenuPane2[6]; + /* 0x0D4 */ CPaneMgr* mpMenuPane3[6]; + /* 0x0EC */ CPaneMgr* mpMenuPane32[6]; + /* 0x104 */ CPaneMgr* mpMenuText[5][6]; + /* 0x17C */ int field_0x17c[6]; + /* 0x194 */ CPaneMgr* mpHaihaiPosL[5]; + /* 0x1A8 */ CPaneMgr* mpHaihaiPosR[5]; + /* 0x1BC */ u8 field_0x1bc[4]; + /* 0x1C0 */ int field_0x1c0[4]; + /* 0x1D0 */ CPaneMgr* mpZButtonText[3]; + /* 0x1DC */ CPaneMgr* mpYesNoSelBase_c[2]; + /* 0x1E4 */ CPaneMgr* mpYesNoTxt_c[2]; + /* 0x1EC */ CPaneMgr* mpYesNoCurWaku_c[2]; + /* 0x1F4 */ CPaneMgr* mpYesNoCurWakuG0_c[2]; + /* 0x1FC */ CPaneMgr* mpYesNoCurWakuG1_c[2]; + /* 0x204 */ CPaneMgr* mpButtonAB[2]; + /* 0x20C */ CPaneMgr* mpButtonText[2]; + /* 0x214 */ CPaneMgr* mpTVButtonAB; + /* 0x218 */ CPaneMgr* mpTVButtonText; + /* 0x21C */ J2DTextBox* field_0x21c[12]; + /* 0x24C */ u8 field_0x24c[0x8]; + /* 0x254 */ int field_0x254; + /* 0x258 */ int field_0x258; + /* 0x25C */ J2DTextBox* field_0x25c[5]; + /* 0x270 */ J2DTextBox* field_0x270[3]; + /* 0x27C */ int field_0x27c; + /* 0x280 */ int field_0x280[6]; + /* 0x298 */ int field_0x298[6]; + /* 0x2B0 */ JUtility::TColor field_0x2b0[2]; + /* 0x2B8 */ JUtility::TColor field_0x2b8[2]; + /* 0x2C0 */ JUtility::TColor field_0x2c0[2]; + /* 0x2C8 */ JUtility::TColor field_0x2c8[2]; + /* 0x2D0 */ int field_0x2d0[3][8]; + /* 0x330 */ f32 field_0x330; + /* 0x334 */ f32 field_0x334; + /* 0x338 */ f32 field_0x338; + /* 0x33C */ f32 field_0x33c[2]; + /* 0x344 */ f32 field_0x344[6]; + /* 0x35C */ f32 field_0x35c[6]; + /* 0x374 */ f32 field_0x374; + /* 0x378 */ f32 field_0x378; + /* 0x37C */ f32 field_0x37c; + /* 0x380 */ f32 field_0x380; + /* 0x384 */ f32 field_0x384[6]; + /* 0x39C */ f32 field_0x39c[6]; + /* 0x3B4 */ f32 field_0x3b4; + /* 0x3B8 */ JUtility::TColor field_0x3b8; + /* 0x3BC */ JUtility::TColor field_0x3bc; + /* 0x3C0 */ int field_0x3c0; + /* 0x3C4 */ int field_0x3c4; + /* 0x3C8 */ int field_0x3c8[4]; + /* 0x3D8 */ u16 field_0x3d8; + /* 0x3DA */ u16 field_0x3da; + /* 0x3DC */ u16 field_0x3dc; + /* 0x3DE */ u16 field_0x3de; + /* 0x3E0 */ u8 field_0x3e0; + /* 0x3E1 */ u8 field_0x3e1; + /* 0x3E2 */ u8 field_0x3e2; + /* 0x3E3 */ u8 field_0x3e3; + /* 0x3E4 */ u8 field_0x3e4; + /* 0x3E5 */ u8 field_0x3e5; + /* 0x3E6 */ u8 field_0x3e6; + /* 0x3E7 */ u8 field_0x3e7; + /* 0x3E8 */ u8 field_0x3e8; + /* 0x3E9 */ u8 field_0x3e9; + /* 0x3EA */ u8 field_0x3ea; + /* 0x3EB */ u8 field_0x3eb; + /* 0x3EC */ u8 mQuitStatus; + /* 0x3ED */ u8 field_0x3ed; + /* 0x3EE */ u8 mUseFlag; + /* 0x3EF */ u8 field_0x3ef; + /* 0x3F0 */ u8 field_0x3f0; + /* 0x3F1 */ u8 field_0x3f1; + /* 0x3F2 */ u8 field_0x3f2; + /* 0x3F3 */ u8 field_0x3f3; + /* 0x3F4 */ u8 field_0x3f4; + /* 0x3F5 */ u8 field_0x3f5; + /* 0x3F6 */ u8 field_0x3f6; + /* 0x3F7 */ u8 field_0x3f7; + /* 0x3F8 */ u8 field_0x3f8; + /* 0x3F9 */ u8 field_0x3f9; + /* 0x3FA */ u8 field_0x3fa; + /* 0x3FB */ u8 field_0x3fb[2]; + /* 0x3FD */ u8 field_0x3fd[2]; + /* 0x3FF */ u8 field_0x3ff[2]; + /* 0x401 */ u8 field_0x401; + /* 0x402 */ u8 field_0x402; + /* 0x403 */ u8 field_0x403; + /* 0x404 */ u8 field_0x404[4]; + /* 0x408 */ u8 field_0x408[4]; +}; #endif /* D_MENU_D_MENU_OPTION_H */ diff --git a/include/d/menu/d_menu_ring.h b/include/d/menu/d_menu_ring.h index 7f297d26270..9169f206387 100644 --- a/include/d/menu/d_menu_ring.h +++ b/include/d/menu/d_menu_ring.h @@ -2,5 +2,193 @@ #define D_MENU_D_MENU_RING_H #include "dolphin/types.h" +#include "JSystem/J2DGraph/J2DPicture.h" +#include "d/d_select_cursor.h" +#include "d/d_lib.h" + +class dMsgString_c; +class dKantera_icon_c; +class dMenu_ItemExplain_c; + +class dMenu_Ring_c : public dDlst_base_c { +public: + /* 801E9118 */ dMenu_Ring_c(JKRExpHeap*, STControl*, CSTControl*, u8); + /* 801EAB7C */ void _create(); + /* 801EABE8 */ void _delete(); + /* 801EABEC */ void _move(); + /* 801EACC8 */ void _draw(); + /* 801EB080 */ void setKanteraPos(f32, f32); + /* 801EB0A4 */ bool isOpen(); + /* 801EB2B4 */ bool isMoveEnd(); + /* 801EB3CC */ bool isClose(); + /* 801EB624 */ void getStickInfo(STControl*); + /* 801EB8C0 */ void calcStickAngle(STControl*, u8); + /* 801EB960 */ void setRotate(); + /* 801EBA38 */ void setItemScale(int, f32); + /* 801EBAB8 */ void setButtonScale(int, f32); + /* 801EBB10 */ void setItem(); + /* 801EBE58 */ void setJumpItem(bool); + /* 801EC20C */ void setScale(); + /* 801EC3B0 */ void setNameString(u32); + /* 801EC504 */ void setActiveCursor(); + /* 801EC754 */ void setMixItem(); + /* 801ECB14 */ void drawItem(); + /* 801ECF9C */ void drawItem2(); + /* 801ED2BC */ void stick_wait_init(); + /* 801ED31C */ void stick_wait_proc(); + /* 801ED490 */ void stick_move_init(); + /* 801ED53C */ void stick_move_proc(); + /* 801ED934 */ void stick_explain_init(); + /* 801ED938 */ void stick_explain_force_init(); + /* 801ED93C */ void stick_explain_proc(); + /* 801EDA0C */ void stick_explain_force_proc(); + /* 801EDB14 */ void setSelectItem(int, u8); + /* 801EDC98 */ void drawSelectItem(); + /* 801EDF2C */ void setSelectItemForce(int); + /* 801EDFDC */ void getCursorPos(u8); + /* 801EE058 */ void getItemNum(u8); + /* 801EE15C */ void getItemMaxNum(u8); + /* 801EE228 */ void checkExplainForce(); + /* 801EE63C */ bool checkCombineBomb(int); + /* 801EE644 */ void setCombineBomb(int); + /* 801EE648 */ void drawNumber(int, int, f32, f32); + /* 801EEA84 */ void getItem(int, u8); + /* 801EEAE4 */ void setDoStatus(u8); + /* 801EEB58 */ void isMixItemOn(); + /* 801EEC98 */ void isMixItemOff(); + /* 801EED84 */ void setMixMessage(); + /* 801EEF14 */ void textScaleHIO(); + /* 801EF11C */ void textCentering(); + /* 801EF13C */ void clacEllipseFunction(f32, f32, f32); + /* 801EF174 */ void calcDistance(f32, f32, f32, f32); + /* 801EF1A0 */ void clacEllipsePlotAverage(int, f32, f32); + /* 801EF484 */ bool dpdMove(); + /* 801EF48C */ void openExplain(u8); + + /* 801EF560 */ virtual void draw(); + /* 801EA708 */ virtual ~dMenu_Ring_c(); + + void drawFlag0() { mDrawFlag = 0; } + +private: + /* 0x004 */ JKRExpHeap* mpHeap; + /* 0x008 */ STControl* mpStick; + /* 0x00C */ CSTControl* mpCStick; + /* 0x010 */ dSelect_cursor_c* mpDrawCursor; + /* 0x014 */ dMsgString_c* mpString; + /* 0x018 */ CPaneMgr* mpMessageParent; + /* 0x01C */ CPaneMgr* mpCenterParent; + /* 0x020 */ CPaneMgr* mpSpotParent; + /* 0x024 */ CPaneMgr* mpTextParent[10]; + /* 0x04C */ CPaneMgr* mpNameParent; + /* 0x050 */ CPaneMgr* mpCircle; + /* 0x054 */ dKantera_icon_c* mpKanteraMeter; + /* 0x058 */ J2DScreen* mpScreen; + /* 0x05C */ J2DScreen* mpSpotScreen; + /* 0x060 */ u8 field_0x60[4]; + /* 0x064 */ J2DScreen* mpCenterScreen; + /* 0x068 */ J2DPicture* mpSelectItemTex[4][3]; + /* 0x098 */ J2DPicture* mpItemTex[4][3]; + /* 0x0C8 */ u8 field_0xc8[0xF0]; + /* 0x1B8 */ J2DPicture* mpBlackTex; + /* 0x1BC */ J2DPicture* mpItemNumTex[3]; + /* 0x1C8 */ J2DTextBox* field_0x1c8[5]; + /* 0x1DC */ J2DTextBox* field_0x1dc[5]; + /* 0x1F0 */ ResTIMG* mpSelectItemTexBuf[4][3][2]; + /* 0x250 */ ResTIMG* mpItemBuf[4][3]; + /* 0x280 */ u8 field_0x280[0xF0]; + /* 0x370 */ dMenu_ItemExplain_c* mpItemExplain; + /* 0x374 */ void* field_0x374[3]; + /* 0x380 */ cXyz field_0x380; + /* 0x38C */ f32 field_0x38c[24]; + /* 0x3EC */ f32 field_0x3ec[24]; + /* 0x44C */ f32 field_0x44c[24]; + /* 0x4AC */ f32 field_0x4ac[24]; + /* 0x50C */ f32 field_0x50c; + /* 0x510 */ f32 field_0x510; + /* 0x514 */ f32 field_0x514; + /* 0x518 */ f32 field_0x518[4]; + /* 0x528 */ f32 field_0x528[4]; + /* 0x538 */ f32 field_0x538[4]; + /* 0x548 */ f32 field_0x548[4]; + /* 0x558 */ f32 field_0x558[4]; + /* 0x568 */ f32 field_0x568; + /* 0x56C */ f32 field_0x56c; + /* 0x570 */ f32 field_0x570; + /* 0x574 */ f32 field_0x574[2]; + /* 0x57C */ f32 field_0x57c[2]; + /* 0x584 */ f32 field_0x584; + /* 0x588 */ f32 field_0x588; + /* 0x58C */ f32 field_0x58c; + /* 0x590 */ f32 field_0x590[10]; + /* 0x5B8 */ f32 field_0x5b8[10]; + /* 0x5E0 */ f32 field_0x5e0[10]; + /* 0x608 */ f32 field_0x608; + /* 0x604 */ f32 field_0x604; + /* 0x610 */ f32 field_0x610; + /* 0x614 */ f32 field_0x614; + /* 0x618 */ f32 field_0x618; + /* 0x61C */ f32 field_0x61c; + /* 0x620 */ u8 field_0x620[4]; + /* 0x624 */ int field_0x624; + /* 0x628 */ u32 field_0x628; + /* 0x62C */ int field_0x62c; + /* 0x630 */ u16 field_0x630; + /* 0x632 */ u16 field_0x632; + /* 0x634 */ u16 field_0x634; + /* 0x636 */ u16 field_0x636[24]; + /* 0x666 */ u16 field_0x666; + /* 0x668 */ u16 field_0x668; + /* 0x66A */ u16 field_0x66a; + /* 0x66C */ u16 field_0x66c[4]; + /* 0x674 */ u16 field_0x674; + /* 0x676 */ u16 field_0x676; + /* 0x678 */ u16 field_0x678; + /* 0x67A */ u16 field_0x67a; + /* 0x67C */ u16 field_0x67c; + /* 0x67E */ u16 field_0x67e[4]; + /* 0x686 */ u16 field_0x686; + /* 0x688 */ u8 field_0x688[24]; + /* 0x6A0 */ u8 field_0x6a0; + /* 0x6A1 */ u8 field_0x6a1; + /* 0x6A2 */ u8 field_0x6a2; + /* 0x6A3 */ u8 field_0x6a3; + /* 0x6A4 */ u8 field_0x6a4; + /* 0x6A5 */ u8 field_0x6a5; + /* 0x6A6 */ u8 field_0x6a6; + /* 0x6A7 */ u8 field_0x6a7; + /* 0x6A8 */ u8 mStatus; + /* 0x6A9 */ u8 field_0x6a9; + /* 0x6AA */ u8 field_0x6aa; + /* 0x6AB */ u8 field_0x6ab; + /* 0x6AC */ u8 field_0x6ac[4]; + /* 0x6B0 */ u8 field_0x6b0[4]; + /* 0x6B4 */ u8 field_0x6b4; + /* 0x6B5 */ u8 field_0x6b5; + /* 0x6B6 */ u8 field_0x6b6[4]; + /* 0x6BA */ u8 field_0x6ba; + /* 0x6BB */ u8 field_0x6bb; + /* 0x6BC */ u8 field_0x6bc; + /* 0x6BD */ u8 mDrawFlag; + /* 0x6BE */ u8 field_0x6be; + /* 0x6BF */ u8 field_0x6bf[4]; + /* 0x6C3 */ u8 field_0x6c3; + /* 0x6C4 */ u8 field_0x6c4; + /* 0x6C5 */ u8 field_0x6c5; + /* 0x6C6 */ u8 field_0x6c6; + /* 0x6C7 */ u8 field_0x6c7; + /* 0x6C8 */ u8 field_0x6c8; + /* 0x6C9 */ u8 field_0x6c9; + /* 0x6CA */ u8 field_0x6ca; + /* 0x6CB */ u8 field_0x6cb; + /* 0x6CC */ u8 field_0x6cc; + /* 0x6CD */ u8 field_0x6cd; + /* 0x6CE */ u8 field_0x6ce; + /* 0x6CF */ u8 field_0x6cf; + /* 0x6D0 */ u8 field_0x6d0; + /* 0x6D1 */ u8 field_0x6d1; + /* 0x6D2 */ u8 field_0x6d2; + /* 0x6D3 */ u8 field_0x6d3; +}; #endif /* D_MENU_D_MENU_RING_H */ diff --git a/include/d/menu/d_menu_save.h b/include/d/menu/d_menu_save.h index f5942cdb458..f46ca98a96c 100644 --- a/include/d/menu/d_menu_save.h +++ b/include/d/menu/d_menu_save.h @@ -1,6 +1,281 @@ #ifndef D_MENU_D_MENU_SAVE_H #define D_MENU_D_MENU_SAVE_H +#include "JSystem/J2DGraph/J2DScreen.h" +#include "d/d_lib.h" #include "dolphin/types.h" +#include "d/d_select_cursor.h" + +class dMsgString_c; +class mDoDvdThd_command_c; +class dFile_warning_c; +class dFile_info_c; +class dMsgScrnExplain_c; + +class dDlst_MenuSaveExplain_c : public dDlst_base_c { +public: + /* 801F6ADC */ virtual void draw(); + /* 801F6B8C */ virtual ~dDlst_MenuSaveExplain_c(); + +private: + /* 0x4 */ int field_0x4; +}; + +class dDlst_MenuSave_c : public dDlst_base_c { +public: + /* 801F6B0C */ virtual void draw(); + /* 801F6B44 */ virtual ~dDlst_MenuSave_c(); +}; + +class dMenu_save_c { +public: + /* 801EF6A0 */ dMenu_save_c(); + /* 801EF7AC */ void _create(); + /* 801EF904 */ void screenSet(); + /* 801F0938 */ void initialize(); + /* 801F0958 */ void displayInit(); + /* 801F09AC */ bool _open(); + /* 801F0B10 */ void _close(); + /* 801F0B28 */ void _delete(); + /* 801F1048 */ void _move(); + /* 801F1100 */ void saveSelAnm(); + /* 801F1148 */ void selFileWakuAnm(); + /* 801F11F4 */ void bookIconAnm(); + /* 801F12F0 */ void memCardWatch(); + /* 801F1378 */ void saveQuestion(); + /* 801F1558 */ void saveQuestion2(); + /* 801F1620 */ void saveQuestion21(); + /* 801F1644 */ void saveQuestion3(); + /* 801F16B8 */ void saveQuestion4(); + /* 801F16F4 */ void saveGuide(); + /* 801F1720 */ void memCardCheck(); + /* 801F191C */ void memCardErrMsgWaitKey(); + /* 801F19A8 */ void backSaveQuestionInitSet(); + /* 801F19DC */ void backSaveQuestion(); + /* 801F1A48 */ void backSaveQuestion2(); + /* 801F1B38 */ void closeSelect(); + /* 801F1BF8 */ void closeSelect2(); + /* 801F1C70 */ void iplSelMsgInitSet(); + /* 801F1C94 */ void iplSelInitSet(); + /* 801F1CEC */ void IPLSelectDisp1(); + /* 801F1D54 */ void IPLSelectDisp2(); + /* 801F1DD4 */ void memCardErrGoIPLSel(); + /* 801F1E58 */ void IPLSelect2Disp(); + /* 801F1EE0 */ void memCardErrGoIPLSel2(); + /* 801F1F80 */ void memCardErrGotoIPL(); + /* 801F2000 */ void memCardErrMsgWaitFormatSel(); + /* 801F20AC */ void cardFormatYesSelDisp(); + /* 801F2134 */ void cardFormatNoSelDisp(); + /* 801F219C */ void memCardErrMsgWaitFormatSel2(); + /* 801F2250 */ void cardFormatYesSel2Disp(); + /* 801F22CC */ void memCardFormat(); + /* 801F232C */ void memCardFormatWait(); + /* 801F23A4 */ void gameFileMakeSelInitSet(); + /* 801F23FC */ void makeGameFileSelDisp(); + /* 801F247C */ void memCardMakeGameFileSel(); + /* 801F2514 */ void makeGameFileDisp(); + /* 801F25AC */ void memCardMakeGameFile(); + /* 801F260C */ void memCardMakeGameFileWait(); + /* 801F2698 */ void memCardCommandEnd(); + /* 801F2708 */ void memCardCommandEnd2(); + /* 801F27CC */ void memCardDataLoadWait(); + /* 801F2840 */ void dataWrite(); + /* 801F28E4 */ void memCardDataSaveWait(); + /* 801F298C */ void memCardDataSaveWait2(); + /* 801F2B5C */ void gameContinueDisp(); + /* 801F2BF8 */ void gameContinue(); + /* 801F2D78 */ void gameContinue2(); + /* 801F2DA0 */ void gameContinue3(); + /* 801F2DD4 */ void saveEnd(); + /* 801F2E88 */ void endingNoSave(); + /* 801F2F08 */ void endingNoSave2(); + /* 801F2F38 */ void endingDataCheck(); + /* 801F2F4C */ void retryQuestion0(); + /* 801F2FB4 */ void retryQuestion1(); + /* 801F3040 */ void retryQuestion2(); + /* 801F30B8 */ void restartInit(); + /* 801F31B0 */ void saveWait(); + /* 801F31B4 */ void messageChange(); + /* 801F328C */ void YesNoSelect(); + /* 801F34BC */ void msgTxtSet(u16, bool); + /* 801F3588 */ void openSaveSelect(); + /* 801F36B4 */ void openSaveSelect2(); + /* 801F37A0 */ void openSaveSelect3(); + /* 801F3934 */ void saveSelect(); + /* 801F3A94 */ void saveSelectStart(); + /* 801F3BE0 */ void selectDataOpenMove(); + /* 801F3C7C */ void dataSelectAnmSet(); + /* 801F3E30 */ void saveSelectMoveAnime(); + /* 801F40D8 */ void saveYesNoSelect(); + /* 801F4238 */ void yesnoSelectStart(); + /* 801F42FC */ void saveMoveDisp(); + /* 801F43F8 */ void saveMoveDisp2(); + /* 801F4510 */ void yesnoSelectAnmSet(u8); + /* 801F46B4 */ void yesNoCursorMoveAnm(); + /* 801F4724 */ void yesnoCancelAnmSet(); + /* 801F47DC */ void saveYesNoCancelMove(); + /* 801F485C */ void headerTxtSet(u16); + /* 801F4928 */ void headerTxtChangeAnm(); + /* 801F4A10 */ void errDispInitSet(int); + /* 801F4B84 */ void msgWindowInitOpen(); + /* 801F4D10 */ void msgWindowOpen(); + /* 801F4DAC */ void msgWindowClose(); + /* 801F4E48 */ void errYesNoSelect(u8, u8); + /* 801F4FB4 */ void errCurMove(u8, u8); + /* 801F5054 */ void errYesNoCursorMoveAnm(); + /* 801F50C4 */ void errorTxtSet(u16); + /* 801F5190 */ void errorTxtChangeAnm(); + /* 801F5278 */ void saveSelectOpenInit(); + /* 801F533C */ void selectDataBaseMoveAnmInitSet(int, int); + /* 801F53D4 */ void selectDataBaseMoveAnm(); + /* 801F54C0 */ void saveSelectOpenAnmSet(); + /* 801F5508 */ void selectDataMoveAnmInitSet(int, int); + /* 801F5600 */ void selectDataMoveAnm(); + /* 801F5744 */ void yesnoMenuMoveAnmInitSet(int, int, u8); + /* 801F58C8 */ void yesnoMenuMoveAnm(); + /* 801F5AE4 */ void yesnoSelectMoveAnm(u8); + /* 801F5D84 */ void yesnoCursorShow(); + /* 801F5EF4 */ void errorMoveAnmInitSet(int, int); + /* 801F5F84 */ void errorMoveAnm(); + /* 801F60A4 */ void modoruTxtDispAnmInit(u8); + /* 801F6120 */ void modoruTxtDispAnm(); + /* 801F61FC */ void ketteiTxtDispAnmInit(u8); + /* 801F6278 */ void ketteiTxtDispAnm(); + /* 801F6354 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8); + /* 801F6390 */ void selectWakuAlpahAnm(u8); + /* 801F6458 */ void selFileCursorShow(); + /* 801F6608 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); + /* 801F6654 */ void yesnoWakuAlpahAnm(u8); + /* 801F67B8 */ void dataSave(); + /* 801F67F0 */ void setSaveData(); + /* 801F6954 */ void setInitSaveData(); + /* 801F69B8 */ void _draw(); + /* 801F69FC */ void _draw2(); + + /* 802844D0 */ virtual ~dMenu_save_c(); + + u8 getSaveStatus() { return mSaveStatus; } + void setUseType(u8 type) { mUseType = type; } + + struct SaveSel { + /* 0x00 */ J2DScreen* Scr; + /* 0x04 */ JUTFont* font[2]; + /* 0x0C */ dMsgString_c* mMsgString; + }; // Size: 0x10 + +private: + /* 0x0004 */ JKRArchive* field_0x4; + /* 0x0008 */ mDoDvdThd_command_c* field_0x8; + /* 0x000C */ STControl* stick; + /* 0x0010 */ dDlst_MenuSaveExplain_c field_0x10; + /* 0x0018 */ dDlst_MenuSave_c field_0x18; + /* 0x001C */ SaveSel mSaveSel; + /* 0x002C */ dSelect_cursor_c* mSelIcon; + /* 0x0030 */ dFile_warning_c* field_0x30; + /* 0x0034 */ dFile_info_c* field_0x34[3]; + /* 0x0040 */ void* field_0x40; // bck + /* 0x0044 */ void* field_0x44; // bck + /* 0x0048 */ void* field_0x48; // bck + /* 0x004C */ void* field_0x4c; // bck + /* 0x0050 */ s32 field_0x50; + /* 0x0054 */ u8 field_0x54; + /* 0x0058 */ CPaneMgr* field_0x58; + /* 0x005C */ int field_0x5c; + /* 0x0060 */ int field_0x60; + /* 0x0064 */ u8 field_0x64; + /* 0x0064 */ u8 field_0x65; + /* 0x0068 */ CPaneMgr* field_0x68[3]; + /* 0x0074 */ u8 field_0x74[0x10]; + /* 0x0084 */ CPaneMgr* field_0x84[2]; + /* 0x008C */ u8 field_0x8c[0x10]; + /* 0x009C */ u8 field_0x9c; + /* 0x00A0 */ int field_0xa0; + /* 0x00A4 */ u8 field_0xa4[0x10]; + /* 0x00B4 */ J2DPane* field_0xb4; + /* 0x00B8 */ int field_0xb8; + /* 0x00BC */ int field_0xbc; + /* 0x00C0 */ CPaneMgr* field_0xc0[2]; + /* 0x00C8 */ char* field_0xc8[2]; + /* 0x00D0 */ u8 field_0xd0; + /* 0x00D2 */ u8 field_0xd1; + /* 0x00D2 */ u8 field_0xd2; + /* 0x00D3 */ u8 field_0xd3; + /* 0x00D4 */ CPaneMgr* field_0xd4[3]; + /* 0x00E0 */ CPaneMgr* field_0xe0[3]; + /* 0x00EC */ CPaneMgr* field_0xec[3]; + /* 0x00F8 */ CPaneMgr* field_0xf8[3]; + /* 0x0104 */ u8 field_0x104[3]; + /* 0x0107 */ u8 field_0x107[3]; + /* 0x010A */ u8 field_0x10a[3]; + /* 0x010D */ u8 field_0x10d[11]; + /* 0x0118 */ CPaneMgr* field_0x118[2]; + /* 0x0120 */ CPaneMgr* field_0x120[2]; + /* 0x0128 */ CPaneMgr* field_0x128[2]; + /* 0x0130 */ u8 field_0x130[2]; + /* 0x0132 */ u8 field_0x132[2]; + /* 0x0134 */ u8 field_0x134[2]; + /* 0x0138 */ CPaneMgr* field_0x138[2]; + /* 0x0140 */ void* field_0x140; // bpk + /* 0x0144 */ int field_0x144; + /* 0x0148 */ void* field_0x148; // btk + /* 0x014C */ int field_0x14c; + /* 0x0150 */ void* field_0x150; + /* 0x0154 */ int field_0x154; + /* 0x0158 */ void* field_0x158; // btk + /* 0x015C */ int field_0x15c; + /* 0x0160 */ void* field_0x160; // brk + /* 0x0164 */ int field_0x164; + /* 0x0168 */ CPaneMgr* field_0x168[2]; + /* 0x0170 */ u8 field_0x170[8]; + /* 0x0178 */ u8 field_0x178; + /* 0x0179 */ u8 field_0x179; + /* 0x017A */ u8 field_0x17a; + /* 0x017B */ u8 field_0x17b[0x19]; + /* 0x0194 */ CPaneMgr* field_0x194; + /* 0x0198 */ CPaneMgr* field_0x198; + /* 0x019C */ u8 field_0x19c; + /* 0x019D */ u8 field_0x19d; + /* 0x01A0 */ CPaneMgr* field_0x1a0; + /* 0x01A4 */ CPaneMgr* field_0x1a4; + /* 0x01A8 */ u8 field_0x1a8; + /* 0x01A9 */ u8 field_0x1a9; + /* 0x01AA */ u8 field_0x1aa[3]; + /* 0x01AD */ u8 field_0x1ad[3]; + /* 0x01B0 */ u8 field_0x1b0; + /* 0x01B1 */ u8 field_0x1b1; + /* 0x01B2 */ u8 field_0x1b2; + /* 0x01B3 */ u8 field_0x1b3; + /* 0x01B4 */ u8 field_0x1b4; + /* 0x01B5 */ u8 field_0x1b5; + /* 0x01B6 */ u8 field_0x1b6; + /* 0x01B7 */ u8 field_0x1b7; + /* 0x01B8 */ u8 field_0x1b8; + /* 0x01B9 */ u8 field_0x1b9; + /* 0x01BA */ u8 mSaveStatus; + /* 0x01BB */ u8 mEndStatus; + /* 0x01BC */ u8 mUseType; + /* 0x01BD */ u8 field_0x1bd; + /* 0x01BE */ u8 field_0x1be; + /* 0x01BF */ u8 field_0x1bf; + /* 0x01C0 */ u8 field_0x1c0; + /* 0x01C4 */ int field_0x1c4; + /* 0x01C8 */ int field_0x1c8; + /* 0x01CC */ void* field_0x1cc; // func + /* 0x01D0 */ u8 field_0x1d0[0xA94 * 3]; // 3 savefiles buffer + /* 0x218C */ dMsgScrnExplain_c* mpScrnExplain; + /* 0x2190 */ u8 field_0x2190; + /* 0x2192 */ u16 field_0x2192; + /* 0x2194 */ u8 field_0x2194; + /* 0x2195 */ u8 field_0x2195; + /* 0x2198 */ int field_0x2198; + /* 0x219C */ u8 field_0x219c; + /* 0x219D */ u8 field_0x219d; + /* 0x219E */ u8 field_0x219e; + /* 0x219F */ u8 field_0x219f; + /* 0x21A0 */ u8 field_0x21a0; + /* 0x21A1 */ u8 field_0x21a1; + /* 0x21A2 */ u8 field_0x21a2; + /* 0x21A3 */ u8 field_0x21a3; +}; #endif /* D_MENU_D_MENU_SAVE_H */ diff --git a/include/d/menu/d_menu_skill.h b/include/d/menu/d_menu_skill.h index 2e8018c36ae..db40cf1b617 100644 --- a/include/d/menu/d_menu_skill.h +++ b/include/d/menu/d_menu_skill.h @@ -2,5 +2,105 @@ #define D_MENU_D_MENU_SKILL_H #include "dolphin/types.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "JSystem/J2DGraph/J2DPicture.h" + +class mDoDvdThd_mountArchive_c; +class dMsgString_c; + +class dMenu_Skill_c : public dDlst_base_c { +public: + /* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*); + /* 801F763C */ void _create(); + /* 801F7718 */ void _move(); + /* 801F77B0 */ void _draw(); + /* 801F7950 */ bool isSync(); + /* 801F7978 */ void skill_init_calc(); + /* 801F79EC */ void init(); + /* 801F7A40 */ void _open(); + /* 801F7C1C */ void _close(); + /* 801F7D58 */ void wait_init(); + /* 801F7D94 */ void wait_move(); + /* 801F7F24 */ void read_open_init(); + /* 801F7FF8 */ void read_open_move(); + /* 801F8114 */ void read_move_init(); + /* 801F8150 */ void read_move_move(); + /* 801F8218 */ void read_close_init(); + /* 801F826C */ void read_close_move(); + /* 801F8388 */ void screenSetMenu(); + /* 801F8A18 */ void screenSetLetter(); + /* 801F8D20 */ void screenSetDoIcon(); + /* 801F8E9C */ void setCursorPos(); + /* 801F8F28 */ void changeActiveColor(); + /* 801F9144 */ void setPageText(); + /* 801F9260 */ void setAButtonString(u16); + /* 801F9310 */ void setBButtonString(u16); + /* 801F93C0 */ void setNameString(u16); + /* 801F9470 */ void getSkillNum(); + /* 801F9500 */ void setHIO(bool); + + /* 801F9A08 */ virtual void draw(); + /* 801F7348 */ virtual ~dMenu_Skill_c(); + + u8 getStatus() { return mStatus; } + +private: + /* 0x004 */ JKRExpHeap* field_0x4; + /* 0x008 */ JKRArchive* field_0x8; + /* 0x00C */ STControl* field_0xc; + /* 0x010 */ CSTControl* field_0x10; + /* 0x014 */ mDoDvdThd_mountArchive_c* field_0x14; + /* 0x018 */ J2DScreen* mpMenuScreen; + /* 0x01C */ J2DScreen* mpLetterScreen; + /* 0x020 */ J2DScreen* mpIconScreen; + /* 0x024 */ J2DPane* field_0x24[4]; + /* 0x034 */ J2DPane* field_0x34[4]; + /* 0x044 */ J2DPane* field_0x44[4]; + /* 0x054 */ J2DPane* field_0x54[4]; + /* 0x064 */ J2DPane* field_0x64[4]; + /* 0x074 */ J2DPane* field_0x74[4]; + /* 0x084 */ J2DPane* field_0x84[4]; + /* 0x094 */ J2DPane* field_0x94[4]; + /* 0x0A4 */ u8 field_0xa4[0xC]; + /* 0x0B0 */ J2DTextBox* field_0xb0[4]; + /* 0x0C0 */ J2DTextBox* field_0xc0[4]; + /* 0x0D0 */ J2DTextBox* field_0xd0[4]; + /* 0x0E0 */ J2DTextBox* field_0xe0[4]; + /* 0x0F0 */ J2DTextBox* field_0xf0[4]; + /* 0x100 */ J2DTextBox* field_0x100[4]; + /* 0x110 */ J2DTextBox* field_0x110[4]; + /* 0x120 */ J2DTextBox* mAButtonString[5]; + /* 0x134 */ J2DTextBox* mBButtonString[5]; + /* 0x148 */ J2DTextBox* mNameString[4]; + /* 0x158 */ J2DPicture* mpBlackTex; + /* 0x15C */ CPaneMgr* mpParent; + /* 0x160 */ CPaneMgr* mpLetterParent[7]; + /* 0x17C */ CPaneMgr* mpTextParent; + /* 0x180 */ CPaneMgr* mpTextPane; + /* 0x184 */ CPaneMgr* mpExpName; + /* 0x188 */ CPaneMgr* field_0x188[2]; + /* 0x190 */ CPaneMgr* field_0x190[2]; + /* 0x198 */ dSelect_cursor_c* mpDrawCursor; + /* 0x19C */ dMsgString_c* mpString; + /* 0x1A0 */ JUtility::TColor field_0x1a0[5]; + /* 0x1B4 */ JUtility::TColor field_0x1b4[5]; + /* 0x1C8 */ JUtility::TColor field_0x1c8[5]; + /* 0x1DC */ JUtility::TColor field_0x1dc[5]; + /* 0x1F0 */ f32 field_0x1f0; + /* 0x1F4 */ f32 field_0x1f4; + /* 0x1F8 */ f32 field_0x1f8; + /* 0x1FC */ int field_0x1fc; + /* 0x200 */ u16 field_0x200; + /* 0x202 */ u16 field_0x202; + /* 0x204 */ u8 mStatus; + /* 0x205 */ u8 field_0x205; + /* 0x206 */ u8 field_0x206; + /* 0x207 */ u8 field_0x207; + /* 0x208 */ u8 field_0x208; + /* 0x209 */ u8 field_0x209; + /* 0x20A */ u8 field_0x20a; + /* 0x20B */ u8 field_0x20b; +}; // Size: 0x20C #endif /* D_MENU_D_MENU_SKILL_H */ diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h index 62847702451..4d0a5bbe46f 100644 --- a/include/d/menu/d_menu_window.h +++ b/include/d/menu/d_menu_window.h @@ -4,23 +4,77 @@ #include "d/meter/d_meter2_info.h" #include "dolphin/types.h" #include "m_Do/m_Do_controller_pad.h" +#include "m_Do/m_Do_graphic.h" +#include "d/d_drawlist.h" +#include "d/menu/d_menu_collect.h" +#include "d/msg/d_msg_class.h" -struct STControl; -struct CSTControl; -class dDlst_base_c; class dMenu_Ring_c; -class dMenu_Collect2D_c; class dMenu_Dmap_c; class dMenu_Fmap_c; -class dMenu_save_c; -class dMenu_Option_c; -class dMenu_Letter_c; -class dMenu_Fishing_c; -class dMenu_Skill_c; -class dMenu_Insect_c; -class dMw_c { +class dDlst_MENU_CAPTURE_c : public dDlst_base_c { public: + /* 801FDFCC */ virtual void draw(); + /* 801FE2E8 */ virtual ~dDlst_MENU_CAPTURE_c(); + + dDlst_MENU_CAPTURE_c() { + mFlag = 0; + mAlpha = 255; + mTopFlag = 0; + } + + void setCaptureFlag() { mFlag = 1; } + bool checkDraw() { return mFlag; } + u8 getAlpha() { return mAlpha; } + u8 getTopFlag() { return mTopFlag; } + +private: + /* 0x4 */ u8 mFlag; + /* 0x5 */ u8 mAlpha; + /* 0x6 */ u8 mTopFlag; +}; + +class dMw_c : public msg_class { +public: + enum dMw_Status { + /* 0x00 */ NO_MENU, + /* 0x01 */ RING_OPEN, + /* 0x02 */ RING_MOVE, + /* 0x03 */ RING_CLOSE, + /* 0x04 */ COLLECT_OPEN, + /* 0x05 */ COLLECT_MOVE, + /* 0x06 */ COLLECT_CLOSE, + /* 0x07 */ FMAP_OPEN, + /* 0x08 */ FMAP_MOVE, + /* 0x09 */ FMAP_CLOSE, + /* 0x0A */ DMAP_OPEN, + /* 0x0B */ DMAP_MOVE, + /* 0x0C */ DMAP_CLOSE, + /* 0x0D */ SAVE_OPEN, + /* 0x0E */ SAVE_MOVE, + /* 0x0F */ SAVE_CLOSE, + /* 0x10 */ OPTIONS_OPEN, + /* 0x11 */ OPTIONS_MOVE, + /* 0x12 */ OPTIONS_CLOSE, + /* 0x13 */ LETTER_OPEN, + /* 0x14 */ LETTER_MOVE, + /* 0x15 */ LETTER_CLOSE, + /* 0x16 */ FISHING_OPEN, + /* 0x17 */ FISHING_MOVE, + /* 0x18 */ FISHING_CLOSE, + /* 0x19 */ SKILL_OPEN, + /* 0x1A */ SKILL_MOVE, + /* 0x1B */ SKILL_CLOSE, + /* 0x1C */ INSECT_OPEN, + /* 0x1D */ INSECT_MOVE, + /* 0x1E */ INSECT_CLOSE, + /* 0x1F */ INSECT_AGITHA_OPEN1, + /* 0x20 */ INSECT_AGITHA_OPEN2, + /* 0x21 */ INSECT_AGITHA_MOVE, + /* 0x22 */ INSECT_AGITHA_CLOSE, + }; + /* 801FA13C */ void key_wait_init(u8); /* 801FA220 */ void ring_open_init(u8); /* 801FA23C */ void ring_move_init(u8); @@ -94,70 +148,71 @@ public: /* 801FBD80 */ void dMw_capture_create(); /* 801FBE14 */ void dMw_capture_delete(); /* 801FBE94 */ void dMw_ring_create(u8); - /* 801FBF60 */ void dMw_ring_delete(); + /* 801FBF60 */ bool dMw_ring_delete(); /* 801FBFF8 */ void dMw_collect_create(); - /* 801FC090 */ void dMw_collect_delete(bool); + /* 801FC090 */ bool dMw_collect_delete(bool); /* 801FC0FC */ void dMw_fmap_create(); - /* 801FC264 */ void dMw_fmap_delete(bool); + /* 801FC264 */ bool dMw_fmap_delete(bool); /* 801FC350 */ void dMw_dmap_create(); - /* 801FC46C */ void dMw_dmap_delete(bool); + /* 801FC46C */ bool dMw_dmap_delete(bool); /* 801FC520 */ void dMw_save_create(); - /* 801FC5D0 */ void dMw_save_delete(); + /* 801FC5D0 */ bool dMw_save_delete(); /* 801FC668 */ void dMw_option_create(); - /* 801FC70C */ void dMw_option_delete(); + /* 801FC70C */ bool dMw_option_delete(); /* 801FC7BC */ void dMw_letter_create(); - /* 801FC85C */ void dMw_letter_delete(); + /* 801FC85C */ bool dMw_letter_delete(); /* 801FC904 */ void dMw_fishing_create(); - /* 801FC9A4 */ void dMw_fishing_delete(); + /* 801FC9A4 */ bool dMw_fishing_delete(); /* 801FCA4C */ void dMw_skill_create(); - /* 801FCAEC */ void dMw_skill_delete(); + /* 801FCAEC */ bool dMw_skill_delete(); /* 801FCB94 */ void dMw_insect_create(u8); - /* 801FCC44 */ void dMw_insect_delete(); + /* 801FCC44 */ bool dMw_insect_delete(); /* 801FCCEC */ void dMw_onButtonBit(u8); /* 801FCCFC */ void dMw_offButtonBit(u8); - /* 801FCD0C */ void dMw_isButtonBit(u8); - /* 801FCD24 */ void dMw_isPush_S_Button(); - /* 801FCDD8 */ void isPauseReady(); - /* 801FCE08 */ void dMw_fade_out(); - /* 801FCE78 */ void dMw_fade_in(); - /* 801FCEE8 */ void checkCStickTrigger(); - /* 801FCF84 */ void isEventCheck(); + /* 801FCD0C */ BOOL dMw_isButtonBit(u8); + /* 801FCD24 */ BOOL dMw_isPush_S_Button(); + /* 801FCDD8 */ bool isPauseReady(); + /* 801FCE08 */ static void dMw_fade_out(); + /* 801FCE78 */ static void dMw_fade_in(); + /* 801FCEE8 */ int checkCStickTrigger(); + /* 801FCF84 */ bool isEventCheck(); /* 801FD094 */ void markMemSize(); /* 801FD0D4 */ void checkMemSize(); - /* 801FD140 */ void _create(); - /* 801FD2D8 */ void _execute(); - /* 801FD450 */ void _draw(); - /* 801FD67C */ void _delete(); + /* 801FD140 */ int _create(); + /* 801FD2D8 */ int _execute(); + /* 801FD450 */ int _draw(); + /* 801FD67C */ int _delete(); void onPauseWindow() { mPauseWindow = true; } void offPauseWindow() { mPauseWindow = false; } void onShowFlag() { mShowFlag |= 1; } void offShowFlag() { mShowFlag &= ~1; } bool isShowFlag() { return mShowFlag & 1 != 0; } + bool isFadeNowCheck() { return mDoGph_gInf_c::getFader()->getStatus() == 1; } private: - u8 field_0x0[0x100]; - /* 0x100 */ void* field_0x100; + /* 0x100 */ JKRExpHeap* mpHeap; /* 0x104 */ STControl* mpStick; /* 0x108 */ CSTControl* mpCStick; - /* 0x10C */ dDlst_base_c* field_0x10c; - /* 0x110 */ dMenu_Ring_c* mRing; - /* 0x114 */ dMenu_Collect2D_c* mCollect2D; - /* 0x118 */ dMenu_Dmap_c* mDmap; - /* 0x11C */ dMenu_Fmap_c* mFmap; - /* 0x120 */ dMenu_save_c* mSave; - /* 0x124 */ dMenu_Option_c* mOption; - /* 0x128 */ dMenu_Letter_c* mLetter; - /* 0x12C */ dMenu_Fishing_c* mFishing; - /* 0x130 */ dMenu_Skill_c* mSkill; - /* 0x134 */ dMenu_Insect_c* mInsect; - /* 0x138 */ int field_0x138; - /* 0x13C */ u8 field_0x13c[8]; + /* 0x10C */ dDlst_MENU_CAPTURE_c* mpCapture; + /* 0x110 */ dMenu_Ring_c* mpMenuRing; + /* 0x114 */ dMenu_Collect_c* mpMenuCollect; + /* 0x118 */ dMenu_Dmap_c* mpMenuDmap; + /* 0x11C */ dMenu_Fmap_c* mpMenuFmap; + /* 0x120 */ dMenu_save_c* mpMenuSave; + /* 0x124 */ dMenu_Option_c* mpMenuOption; + /* 0x128 */ dMenu_Letter_c* mpMenuLetter; + /* 0x12C */ dMenu_Fishing_c* mpMenuFishing; + /* 0x130 */ dMenu_Skill_c* mpMenuSkill; + /* 0x134 */ dMenu_Insect_c* mpMenuInsect; + /* 0x138 */ s32 mMemSize; + /* 0x13C */ f32 field_0x13c; + /* 0x140 */ f32 field_0x140; /* 0x144 */ u8 field_0x144; /* 0x145 */ u8 mButtons; - /* 0x146 */ u8 field_0x146; + /* 0x146 */ u8 mMenuStatus; /* 0x147 */ u8 mShowFlag; - /* 0x148 */ u8 field_0x148; + /* 0x148 */ s8 field_0x148; /* 0x149 */ u8 field_0x149; /* 0x14A */ u8 field_0x14A; /* 0x14B */ u8 field_0x14B; @@ -175,4 +230,26 @@ private: BOOL dMw_LEFT_TRIGGER(); BOOL dMw_RIGHT_TRIGGER(); +static int dMw_Draw(dMw_c*); +static int dMw_Execute(dMw_c*); +static int dMw_IsDelete(dMw_c*); +static int dMw_Delete(dMw_c*); +static int dMw_Create(msg_class*); + +typedef int (*dMw_Method)(dMw_c*); + +typedef void (dMw_c::*dMw_init_func)(u8); +struct dMw_init_proc { + /* 0x0 */ u32 field_0x0; + /* 0x4 */ u32 field_0x4; + /* 0x8 */ dMw_init_func init_func; +}; + +typedef void (dMw_c::*dMw_proc_func)(); +struct dMw_move_proc { + /* 0x0 */ u32 field_0x0; + /* 0x4 */ u32 field_0x4; + /* 0x8 */ dMw_proc_func proc_func; +}; + #endif /* D_MENU_D_MENU_WINDOW_H */ diff --git a/include/d/menu/d_menu_window_HIO.h b/include/d/menu/d_menu_window_HIO.h index dc3054edfd5..f3308eb6f25 100644 --- a/include/d/menu/d_menu_window_HIO.h +++ b/include/d/menu/d_menu_window_HIO.h @@ -9,8 +9,7 @@ public: /* 801F9E98 */ virtual ~dMw_DHIO_c() {} -private: - /* 0x004 */ u8 field_0x4; + /* 0x004 */ s8 field_0x4; /* 0x005 */ bool mMap[32]; /* 0x025 */ bool mCompass[32]; /* 0x045 */ bool mBossKey[32]; @@ -41,8 +40,7 @@ public: /* 801F9EE0 */ virtual ~dMw_HIO_c() {} -private: - /* 0x004 */ u8 field_0x4; + /* 0x004 */ s8 field_0x4; /* 0x006 */ u16 mLife; /* 0x008 */ u16 mMaxLife; /* 0x00A */ u8 mMagic; diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h index 4dd2347f623..df92f8011a6 100644 --- a/include/d/meter/d_meter2.h +++ b/include/d/meter/d_meter2.h @@ -5,13 +5,9 @@ #include "d/com/d_com_inf_game.h" #include "d/meter/d_meter2_draw.h" #include "d/meter/d_meter_map.h" +#include "d/msg/d_msg_class.h" #include "dolphin/types.h" -class msg_class { -public: - /* 0x0 */ u8 field_0x0[0x100]; -}; - class dMeterMap_c; class dMeter2_c : public msg_class { diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 49bb7bcf69d..1744f32bee6 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -112,6 +112,7 @@ public: } u8& getDirectUseItem() { return mDirectUseItem; } dMeterMap_c* getMeterMapClass() { return mMeterMap; } + void setMenuWindowClass(dMw_c* p_menu) { mMenuWindowClass = p_menu; } dMw_c* getMenuWindowClass() { return mMenuWindowClass; } void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; } u16 getOilGaugeBackUp() { return mOilGaugeBackUp; } @@ -134,6 +135,10 @@ public: bool isGameStatus(int status) { return mGameStatus & status; } void setMapKeyDirection(u16 direction) { mMapKeyDirection = direction; } bool isSub2DStatus(int flag) { return mSub2DStatus & (1 << flag); } + void offMenuInForce(int flag) { unk152 &= ~(1 << flag); } + bool isMenuInForce(int flag) { return unk152 & (1 << flag); } + u16 getMapKeyDirection() { return mMapKeyDirection; } + u8 getWindowStatus() { return mWindowStatus; } public: /* 0x04 */ u8 unk4[4]; @@ -222,6 +227,7 @@ extern dMeter2Info_c g_meter2_info; void dMeter2Info_setSword(u8, bool); void dMeter2Info_set2DVibration(); +void dMeter2Info_set2DVibrationM(); inline void dMeter2Info_Initialize() { g_meter2_info.init(); @@ -339,4 +345,28 @@ inline bool dMeter2Info_isSub2DStatus(int flag) { return g_meter2_info.isSub2DStatus(flag); } +inline void dMeter2Info_offMenuInForce(int flag) { + g_meter2_info.offMenuInForce(flag); +} + +inline bool dMeter2Info_isMenuInForce(int flag) { + return g_meter2_info.isMenuInForce(flag); +} + +inline void dMeter2Info_setMenuWindowClass(dMw_c* p_menu) { + g_meter2_info.setMenuWindowClass(p_menu); +} + +inline void dMeter2Info_resetWarpStatus() { + g_meter2_info.resetWarpStatus(); +} + +inline u16 dMeter2Info_getMapKeyDirection() { + return g_meter2_info.getMapKeyDirection(); +} + +inline u8 dMeter2Info_getWindowStatus() { + return g_meter2_info.getWindowStatus(); +} + #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h index e02712887a0..68a1fa3881a 100644 --- a/include/d/msg/d_msg_class.h +++ b/include/d/msg/d_msg_class.h @@ -3,4 +3,9 @@ #include "dolphin/types.h" +class msg_class { +public: + /* 0x0 */ u8 field_0x0[0x100]; +}; + #endif /* D_MSG_D_MSG_CLASS_H */ diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h index f97e09759d9..46f6764fbc8 100644 --- a/include/f_op/f_op_msg_mng.h +++ b/include/f_op/f_op_msg_mng.h @@ -7,5 +7,6 @@ typedef int (*fopMsgCreateFunc)(void*); JKRExpHeap* fopMsgM_createExpHeap(u32, JKRHeap*); +void fopMsgM_setStageLayer(void*); #endif \ No newline at end of file diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 25aa4981243..3755eddd107 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -176,6 +176,7 @@ JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32, JKRHeap*, u32); JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32, u32); JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap**, u32, u32); JKRHeap* mDoExt_getCurrentHeap(); +void mDoExt_removeMesgFont(); extern JKRExpHeap* zeldaHeap; extern JKRExpHeap* gameHeap; diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index ec686f07b08..c7e5aaa77de 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -1,8 +1,49 @@ #ifndef M_DO_M_DO_GRAPHIC_H #define M_DO_M_DO_GRAPHIC_H +#include "dolphin/gx/GX.h" +#include "JSystem/JUtility/JUTFader.h" +#include "JSystem/JFramework/JFWDisplay.h" #include "dolphin/types.h" void mDoGph_Create(); +class mDoGph_gInf_c { +public: + class bloom_c { + public: + /* 80009544 */ void create(); + /* 800095F8 */ void remove(); + /* 80009650 */ void draw(); + }; + + /* 80007E44 */ void create(); + /* 80007F90 */ void beginRender(); + /* 800080D0 */ void fadeOut(f32); + /* 80007FD8 */ void fadeOut(f32, _GXColor&); + /* 80008028 */ void fadeOut_f(f32, _GXColor&); + /* 800080A0 */ void onBlure(f32 const (*)[4]); + /* 80008078 */ void onBlure(); + /* 80008330 */ void calcFade(); + + static JUTFader* getFader() { return mFader; } + static int startFadeOut(int param_0) { return JFWDisplay::getManager()->startFadeOut(param_0); } + static int startFadeIn(int param_0) { return JFWDisplay::getManager()->startFadeIn(param_0); } + static void setFadeColor(JUtility::TColor color) { mFader->setColor(color); } + + static u8 mFrameBufferTexObj[32]; + static u8 mZbufferTexObj[32]; + static u8 m_bloom[20]; + static u8 mBlureMtx[48 + 4 /* padding */]; + static u8 mBackColor[4]; + static u8 mFadeColor[4]; + static JUTFader* mFader; + static u8 mFrameBufferTimg[4]; + static u8 mFrameBufferTex[4]; + static u8 mZbufferTimg[4]; + static u8 mZbufferTex[4]; + static f32 mFadeRate; + static f32 mFadeSpeed; +}; + #endif /* M_DO_M_DO_GRAPHIC_H */ diff --git a/libs/JSystem/JFramework/JFWDisplay.cpp b/libs/JSystem/JFramework/JFWDisplay.cpp index 3620e4afe05..d3b04a2376e 100644 --- a/libs/JSystem/JFramework/JFWDisplay.cpp +++ b/libs/JSystem/JFramework/JFWDisplay.cpp @@ -12,36 +12,8 @@ // Types: // -struct _GXRenderModeObj {}; - -struct _GXColor {}; - -struct OSContext {}; - struct OSAlarm {}; -struct JKRHeap {}; - -struct JUTXfb { - struct EXfbNumber {}; - - /* 802E53B8 */ void createManager(JKRHeap*, JUTXfb::EXfbNumber); - /* 802E5424 */ void destroyManager(); - - static u8 sManager[4 + 4 /* padding */]; -}; - -struct JUTVideo { - /* 802E5088 */ void drawDoneStart(); - /* 802E50B0 */ void dummyNoDrawWait(); - /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); - /* 802E5210 */ void waitRetraceIfNeed(); - - static u8 sManager[4]; - static u8 sVideoLastTick[4]; - static u8 sVideoInterval[4]; -}; - struct JUTProcBar { /* 802E59E0 */ void create(); /* 802E5A28 */ void destroy(); @@ -51,10 +23,6 @@ struct JUTProcBar { static u8 sManager[4]; }; -struct JUTFader { - /* 802E55DC */ void control(); -}; - struct JUTDirectPrint { /* 802E456C */ void changeFrameBuffer(void*, u16, u16); @@ -78,51 +46,6 @@ struct JUTAssertion { /* 802E4A54 */ void flushMessage_dbPrint(); }; -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBE74 */ JSUPtrList(bool); - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template0 { - /* 80273724 */ void func_80273724(void* _this); -}; - -struct JFWDisplay { - /* 80272040 */ void ctor_subroutine(bool); - /* 802720F8 */ JFWDisplay(JKRHeap*, JUTXfb::EXfbNumber, bool); - /* 80272160 */ ~JFWDisplay(); - /* 802721DC */ void createManager(_GXRenderModeObj const*, JKRHeap*, JUTXfb::EXfbNumber, bool); - /* 802722B8 */ void prepareCopyDisp(); - /* 802723AC */ void drawendXfb_single(); - /* 802723F4 */ void exchangeXfb_double(); - /* 802724FC */ void exchangeXfb_triple(); - /* 80272574 */ void copyXfb_triple(); - /* 802725F8 */ void preGX(); - /* 8027268C */ void endGX(); - /* 80272798 */ void beginRender(); - /* 80272A04 */ void endRender(); - /* 80272AB0 */ void endFrame(); - /* 80272C60 */ void waitBlanking(int); - /* 80272E10 */ void threadSleep(s64); - /* 80272EB8 */ void clearEfb_init(); - /* 80272F9C */ void clearEfb(int, int, int, int, _GXColor); - /* 80272F2C */ void clearEfb(); - /* 80272F58 */ void clearEfb(_GXColor); - /* 8027331C */ void calcCombinationRatio(); - - static u8 sManager[4]; -}; - struct JFWAlarm { static u8 sList[12]; }; @@ -173,7 +96,6 @@ extern "C" u8 sManager__10JFWDisplay[4]; // External References: // -extern "C" void OSReport(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void __ct__10JSUPtrLinkFPv(); @@ -203,71 +125,29 @@ extern "C" void setPort__13J2DOrthoGraphFv(); extern "C" void OSCreateAlarm(); extern "C" void OSSetAlarm(); extern "C" void OSCancelAlarm(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSReceiveMessage(); -extern "C" void OSGetCurrentThread(); -extern "C" void OSResumeThread(); -extern "C" void OSSuspendThread(); -extern "C" void OSGetTime(); -extern "C" void OSGetTick(); extern "C" void VIFlush(); -extern "C" void VIGetRetraceCount(); extern "C" void GXInit(); extern "C" void GXGetGPStatus(); extern "C" void GXGetFifoBase(); extern "C" void GXGetFifoSize(); extern "C" void GXGetCPUFifo(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXInvalidateVtxCache(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXFlush(); extern "C" void GXAbortFrame(); extern "C" void GXSetDrawDone(); extern "C" void GXDrawDone(); extern "C" void GXPixModeSync(); -extern "C" void GXBegin(); -extern "C" void GXSetCullMode(); extern "C" void GXSetDispCopySrc(); extern "C" void GXSetDispCopyDst(); extern "C" void GXSetCopyClamp(); -extern "C" void GXGetNumXfbLines(); -extern "C" void GXGetYScaleFactor(); extern "C" void GXSetDispCopyYScale(); extern "C" void GXSetCopyClear(); -extern "C" void GXSetCopyFilter(); extern "C" void GXSetDispCopyGamma(); extern "C" void GXCopyDisp(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); extern "C" void GXInvalidateTexAll(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetZTexture(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); extern "C" void GXSetPixelFmt(); -extern "C" void GXSetDither(); extern "C" void GXSetDstAlpha(); -extern "C" void GXSetProjection(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXSetViewport(); -extern "C" void GXSetScissor(); extern "C" void GXReadXfRasMetric(); extern "C" void __register_global_object(); extern "C" void _savegpr_24(); @@ -425,7 +305,7 @@ asm JFWDisplay::~JFWDisplay() { /* ############################################################################################## */ /* 804511C0-804511C4 0006C0 0004+00 2/2 40/40 1/1 .sbss sManager__10JFWDisplay */ -u8 JFWDisplay::sManager[4]; +JFWDisplay* JFWDisplay::sManager; /* 802721DC-80272260 26CB1C 0084+00 0/0 1/1 0/0 .text * createManager__10JFWDisplayFPC16_GXRenderModeObjP7JKRHeapQ26JUTXfb10EXfbNumberb */ @@ -540,7 +420,8 @@ asm void JFWDisplay::endGX() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JFWDisplay::beginRender() { +// asm void JFWDisplay::beginRender() { +extern "C" asm void beginRender__10JFWDisplayFv() { nofralloc #include "asm/JSystem/JFramework/JFWDisplay/beginRender__10JFWDisplayFv.s" } diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index b98fe060740..7358966282d 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -16,10 +16,6 @@ struct scene_class {}; -struct mDoGph_gInf_c { - static u8 mFader[4]; -}; - struct dSmplMdl_draw_c { /* 80048CB4 */ dSmplMdl_draw_c(); /* 80048E0C */ void draw(); @@ -1360,7 +1356,7 @@ SECTION_SDATA extern u8 g_clearColor[4] = { }; /* 80450604-80450608 000084 0004+00 1/1 10/10 15/15 .sdata g_blackColor */ -SECTION_SDATA extern u32 g_blackColor = 0x000000FF; +SECTION_SDATA extern GXColor g_blackColor = { 0, 0, 0, 255 }; /* 8002CC54-8002CD44 027594 00F0+00 1/1 1/1 0/0 .text dComIfG_changeOpeningScene__FP11scene_classs */ diff --git a/src/d/d_resorce.cpp b/src/d/d_resorce.cpp index 1f1222830f6..d735f1a7ec1 100644 --- a/src/d/d_resorce.cpp +++ b/src/d/d_resorce.cpp @@ -26,11 +26,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct mDoGph_gInf_c { - static u8 mFrameBufferTimg[4]; - static u8 mZbufferTimg[4]; -}; - struct dBgWKCol { /* 8007E7D0 */ void initKCollision(void*); }; diff --git a/src/d/d_select_cursor.cpp b/src/d/d_select_cursor.cpp index ab48d311f68..fb6da31781f 100644 --- a/src/d/d_select_cursor.cpp +++ b/src/d/d_select_cursor.cpp @@ -11,79 +11,10 @@ // Types: // -struct J2DPane {}; - -struct dSelect_icon_c { - /* 80195A3C */ void animation(); - /* 80195B40 */ void setAlpha(u8); - /* 80195B70 */ void setPos(J2DPane*, f32, f32); -}; - -struct J2DAnmTransformKey { - /* 801959C0 */ ~J2DAnmTransformKey(); -}; - -struct J2DAnmTextureSRTKey {}; - -struct JKRArchive {}; - -struct J2DAnmColor {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801949EC */ ~dSelect_cursor_c(); - /* 80194C30 */ void draw(); - /* 80194CC0 */ void update(); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); - /* 80195330 */ void addAlpha(); - /* 801953CC */ void decAlpha(); - /* 80195460 */ void setBpkAnimation(J2DAnmColor*); - /* 801955F0 */ void setBtk0Animation(J2DAnmTextureSRTKey*); - /* 80195724 */ void setCursorAnimation(); - /* 801958E0 */ void setBckAnimation(J2DAnmTransformKey*); - /* 80195940 */ void moveCenter(J2DPane*, f32, f32); -}; - -struct dSelect_cursorHIO_c { - /* 801941E4 */ dSelect_cursorHIO_c(); - /* 80195978 */ ~dSelect_cursorHIO_c(); -}; - -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct JKRExpHeap {}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 8025564C */ void isVisible(); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255828 */ void getAlphaRate(); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -322,7 +253,8 @@ asm dSelect_cursor_c::~dSelect_cursor_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSelect_cursor_c::draw() { +// asm void dSelect_cursor_c::draw() { +extern "C" asm void draw__16dSelect_cursor_cFv() { nofralloc #include "asm/d/d_select_cursor/draw__16dSelect_cursor_cFv.s" } @@ -513,7 +445,8 @@ asm dSelect_cursorHIO_c::~dSelect_cursorHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTransformKey::~J2DAnmTransformKey() { +// asm J2DAnmTransformKey::~J2DAnmTransformKey() { +extern "C" asm void __dt__18J2DAnmTransformKeyFv() { nofralloc #include "asm/d/d_select_cursor/__dt__18J2DAnmTransformKeyFv.s" } diff --git a/src/d/event/d_event.cpp b/src/d/event/d_event.cpp index a6fc85fd473..bd2455821b8 100644 --- a/src/d/event/d_event.cpp +++ b/src/d/event/d_event.cpp @@ -14,10 +14,6 @@ // Types: // -struct mDoGph_gInf_c { - /* 800080D0 */ void fadeOut(f32); -}; - struct dDemo_c { /* 80039CF8 */ void end(); diff --git a/src/d/event/d_event_data.cpp b/src/d/event/d_event_data.cpp index 98c0831c874..ddb63cb9abc 100644 --- a/src/d/event/d_event_data.cpp +++ b/src/d/event/d_event_data.cpp @@ -12,13 +12,6 @@ // Types: // -struct mDoGph_gInf_c { - /* 80007FD8 */ void fadeOut(f32, _GXColor&); - /* 800080D0 */ void fadeOut(f32); - - static f32 mFadeRate; -}; - struct dDemo_c { /* 80039B6C */ void start(u8 const*, cXyz*, f32); /* 80039CF8 */ void end(); diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 56fc46daa22..bc55d5987b1 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -19,14 +19,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct mDoGph_gInf_c { - struct bloom_c { - /* 80009544 */ void create(); - }; - - static u8 m_bloom[20]; -}; - struct color_RGB_class {}; struct Z2SeMgr { diff --git a/src/d/menu/d_menu_collect.cpp b/src/d/menu/d_menu_collect.cpp index d81aa008f54..64f0ac856b8 100644 --- a/src/d/menu/d_menu_collect.cpp +++ b/src/d/menu/d_menu_collect.cpp @@ -19,34 +19,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct J3DMaterialTable {}; - -struct J3DModelData {}; - -struct J3DAnmTevRegKey { - /* 8032B87C */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); - /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmTransform {}; - -struct mDoExt_bckAnm { - /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool); - /* 8000D9CC */ void entry(J3DModelData*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct cXyz { - static f32 Zero[3]; -}; - struct daAlink_c { /* 80140064 */ void setShieldChange(); /* 801406A8 */ void initStatusWindow(); @@ -76,24 +48,6 @@ struct dSv_event_c { /* 800349BC */ void isEventBit(u16) const; }; -struct J2DPane {}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - -struct dKy_tevstr_c {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); @@ -120,25 +74,6 @@ struct dMenu_save_c { /* 801F69B8 */ void _draw(); }; -struct STControl { - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct CSTControl {}; - -struct JKRHeap { - /* 802CE5CC */ void freeAll(); - /* 802CE784 */ void getTotalFreeSize(); -}; - -struct JKRExpHeap { - /* 802CEE2C */ void create(u32, JKRHeap*, bool); -}; - struct dMenu_Skill_c { /* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*); /* 801F7718 */ void _move(); @@ -182,133 +117,8 @@ struct dMenu_Fishing_c { /* 801C5470 */ void _close(); }; -struct dMenu_Collect_c { - /* 801B78C0 */ dMenu_Collect_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801B795C */ ~dMenu_Collect_c(); - /* 801B7A0C */ void _create(); - /* 801B7A44 */ void _delete(); - /* 801B7A7C */ void _move(); - /* 801B7AC0 */ void draw(); -}; - -struct J2DAnmTextureSRTKey {}; - -struct dMenu_Collect2D_c { - /* 801AFD48 */ dMenu_Collect2D_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801AFE34 */ ~dMenu_Collect2D_c(); - /* 801AFEA4 */ void _create(); - /* 801B0100 */ void _delete(); - /* 801B0570 */ void initialize(); - /* 801B05A8 */ void isFishIconVisible(); - /* 801B061C */ void isSkillIconVisible(); - /* 801B071C */ void isInsectIconVisible(); - /* 801B074C */ void screenSet(); - /* 801B1C3C */ void animationSet(); - /* 801B1CE0 */ void btkAnimeLoop0(J2DAnmTextureSRTKey*); - /* 801B1EDC */ void setBackAlpha(); - /* 801B1FAC */ void cursorMove(); - /* 801B27EC */ void cursorPosSet(); - /* 801B2A74 */ void changeSword(); - /* 801B2D00 */ void changeShield(); - /* 801B2EE4 */ void changeClothe(); - /* 801B30C8 */ void setArrowMaxNum(u8); - /* 801B3340 */ void setWalletMaxNum(u16); - /* 801B3524 */ void setSmellType(); - /* 801B3640 */ void setHeartPiece(); - /* 801B370C */ void setPohMaxNum(u8); - /* 801B39D0 */ void setEquipItemFrameColorSword(int); - /* 801B3CF4 */ void setEquipItemFrameColorShield(int); - /* 801B3FDC */ void setEquipItemFrameColorClothes(int); - /* 801B42D8 */ void setHIO(bool); - /* 801B46FC */ void getItemTag(int, int, bool); - /* 801B473C */ void wait_init(); - /* 801B48D0 */ void wait_proc(); - /* 801B4E14 */ void save_open_init(); - /* 801B4EC0 */ void save_open_proc(); - /* 801B4F30 */ void save_move_init(); - /* 801B4F6C */ void save_move_proc(); - /* 801B4FDC */ void save_close_init(); - /* 801B5018 */ void save_close_proc(); - /* 801B5094 */ void option_open_init(); - /* 801B513C */ void option_open_proc(); - /* 801B51AC */ void option_move_init(); - /* 801B51E8 */ void option_move_proc(); - /* 801B5258 */ void option_close_init(); - /* 801B5294 */ void option_close_proc(); - /* 801B5310 */ void letter_open_init(); - /* 801B53AC */ void letter_open_proc(); - /* 801B541C */ void letter_move_init(); - /* 801B5458 */ void letter_move_proc(); - /* 801B54C8 */ void letter_close_init(); - /* 801B5504 */ void letter_close_proc(); - /* 801B5580 */ void fishing_open_init(); - /* 801B561C */ void fishing_open_proc(); - /* 801B568C */ void fishing_move_init(); - /* 801B56C8 */ void fishing_move_proc(); - /* 801B5738 */ void fishing_close_init(); - /* 801B5774 */ void fishing_close_proc(); - /* 801B57F0 */ void skill_open_init(); - /* 801B588C */ void skill_open_proc(); - /* 801B58FC */ void skill_move_init(); - /* 801B5938 */ void skill_move_proc(); - /* 801B59A8 */ void skill_close_init(); - /* 801B59E4 */ void skill_close_proc(); - /* 801B5A60 */ void insect_open_init(); - /* 801B5B00 */ void insect_open_proc(); - /* 801B5B70 */ void insect_move_init(); - /* 801B5BAC */ void insect_move_proc(); - /* 801B5C1C */ void insect_close_init(); - /* 801B5C58 */ void insect_close_proc(); - /* 801B5CD4 */ void _move(); - /* 801B5D70 */ void _draw(); - /* 801B5F48 */ void drawTop(); - /* 801B5F84 */ void isKeyCheck(); - /* 801B5FAC */ bool isOutCheck(); - /* 801B5FB4 */ void setAButtonString(u16); - /* 801B60B8 */ void setBButtonString(u16); - /* 801B61BC */ void setItemNameString(u8, u8); - /* 801B6344 */ void setItemNameStringNull(); - /* 801B7F00 */ void draw(); -}; - -struct dMenu_Collect3D_c { - /* 801B6454 */ dMenu_Collect3D_c(JKRExpHeap*, dMenu_Collect2D_c*, CSTControl*); - /* 801B6538 */ ~dMenu_Collect3D_c(); - /* 801B65A8 */ void _create(); - /* 801B6694 */ void _delete(); - /* 801B66C8 */ void _move(u8, u8); - /* 801B696C */ void draw(); - /* 801B6A30 */ void setJ3D(char const*, char const*, char const*); - /* 801B6D30 */ void set_mtx(); - /* 801B6E70 */ void animePlay(); - /* 801B6FB0 */ void animeEntry(); - /* 801B7014 */ void createMaskModel(); - /* 801B71C4 */ void createMirrorModel(); - /* 801B7434 */ void getCrystalNum(); - /* 801B749C */ void getMirrorNum(); - /* 801B7504 */ void getMaskMdlVisible(); - /* 801B75E8 */ void setupItem3D(f32 (*)[4]); - /* 801B7660 */ void toItem3Dpos(f32, f32, f32, cXyz*); - /* 801B774C */ void calcViewMtx(f32 (*)[4]); - - static f32 mViewOffsetY[1 + 1 /* padding */]; -}; - -struct dMenu_Collect2DTop_c { - /* 801B77A4 */ void draw(); - /* 801B7EB8 */ ~dMenu_Collect2DTop_c(); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -317,20 +127,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct ResTIMG {}; - -struct JKRSolidHeap { - /* 802D0BF4 */ void adjustSize(); -}; - -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct J3DVertexBuffer { - /* 80310FD8 */ void init(); -}; - struct J3DTexNoAnm { /* 8003B1F8 */ ~J3DTexNoAnm(); /* 8003B240 */ J3DTexNoAnm(); @@ -355,11 +151,6 @@ struct J3DModelLoaderDataBase { /* 803346BC */ void load(void const*, u32); }; -struct J3DModel { - /* 80327100 */ void initialize(); - /* 80327184 */ void entryModelData(J3DModelData*, u32, u32); -}; - struct J3DMaterialAnm { /* 8032C320 */ void initialize(); }; @@ -369,56 +160,16 @@ struct J3DMatColorAnm { /* 8003B2F4 */ J3DMatColorAnm(); }; -struct J3DLightObj { - /* 80018C0C */ J3DLightObj(); -}; - -struct J3DLightInfo { - /* 803256C4 */ void operator=(J3DLightInfo const&); -}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); -}; - struct J3DAnmLoaderDataBaseFlag {}; struct J3DAnmLoaderDataBase { /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); }; -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlpha { - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -663,13 +414,6 @@ extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData(); extern "C" void initialize__14J3DMaterialAnmFv(); extern "C" void load__22J3DModelLoaderDataBaseFPCvUl(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXInverse(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void C_MTXPerspective(); -extern "C" void GXSetProjection(); -extern "C" void GXSetViewport(); extern "C" void __construct_array(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_17(); @@ -687,8 +431,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void strcpy(); -extern "C" void tan(); -extern "C" extern u8 const j3dDefaultLightInfo[52]; extern "C" extern void* __vt__12J3DFrameCtrl[3]; extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; @@ -700,7 +442,6 @@ extern "C" extern u8 g_env_light[4880]; extern "C" extern u8 g_drawHIO[3880]; extern "C" extern u8 g_meter2_info[248]; extern "C" f32 Zero__4cXyz[3]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -2209,7 +1950,7 @@ asm void dMenu_Collect2D_c::drawTop() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Collect2D_c::isKeyCheck() { +asm bool dMenu_Collect2D_c::isKeyCheck() { nofralloc #include "asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s" } @@ -2299,7 +2040,8 @@ asm dMenu_Collect3D_c::dMenu_Collect3D_c(JKRExpHeap* param_0, dMenu_Collect2D_c* #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dMenu_Collect3D_c::~dMenu_Collect3D_c() { +// asm dMenu_Collect3D_c::~dMenu_Collect3D_c() { +extern "C" asm void __dt__17dMenu_Collect3D_cFv() { nofralloc #include "asm/d/menu/d_menu_collect/__dt__17dMenu_Collect3D_cFv.s" } @@ -2563,11 +2305,7 @@ asm void dMenu_Collect3D_c::getMaskMdlVisible() { /* ############################################################################################## */ /* 80450720-80450728 0001A0 0004+04 1/1 0/0 1/1 .sdata mViewOffsetY__17dMenu_Collect3D_c */ -SECTION_SDATA f32 dMenu_Collect3D_c::mViewOffsetY[1 + 1 /* padding */] = { - -100.0f, - /* padding */ - 0.0f, -}; +SECTION_SDATA f32 dMenu_Collect3D_c::mViewOffsetY = -100.0f; /* 80453FC4-80453FC8 0025C4 0004+00 3/3 0/0 0/0 .sdata2 @7944 */ SECTION_SDATA2 static f32 lit_7944 = 608.0f; @@ -2630,7 +2368,8 @@ asm void dMenu_Collect3D_c::calcViewMtx(f32 (*param_0)[4]) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Collect2DTop_c::draw() { +// asm void dMenu_Collect2DTop_c::draw() { +extern "C" asm void draw__20dMenu_Collect2DTop_cFv() { nofralloc #include "asm/d/menu/d_menu_collect/draw__20dMenu_Collect2DTop_cFv.s" } @@ -2651,7 +2390,8 @@ asm dMenu_Collect_c::dMenu_Collect_c(JKRExpHeap* param_0, STControl* param_1, CS #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dMenu_Collect_c::~dMenu_Collect_c() { +// asm dMenu_Collect_c::~dMenu_Collect_c() { +extern "C" asm void __dt__15dMenu_Collect_cFv() { nofralloc #include "asm/d/menu/d_menu_collect/__dt__15dMenu_Collect_cFv.s" } @@ -2726,7 +2466,8 @@ asm dMenu_Collect2DTop_c::~dMenu_Collect2DTop_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Collect2D_c::draw() { +// asm void dMenu_Collect2D_c::draw() { +extern "C" asm void draw__17dMenu_Collect2D_cFv() { nofralloc #include "asm/d/menu/d_menu_collect/draw__17dMenu_Collect2D_cFv.s" } diff --git a/src/d/menu/d_menu_dmap.cpp b/src/d/menu/d_menu_dmap.cpp index 7aecff476fb..231777b8272 100644 --- a/src/d/menu/d_menu_dmap.cpp +++ b/src/d/menu/d_menu_dmap.cpp @@ -16,13 +16,6 @@ struct renderingDmap_c { /* 801C051C */ renderingDmap_c(); }; -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); - /* 802CE72C */ void getFreeSize(); - /* 802CE784 */ void getTotalFreeSize(); -}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -50,22 +43,6 @@ struct dSv_event_c { /* 800349BC */ void isEventBit(u16) const; }; -struct J2DBasePosition {}; - -struct J2DPane { - /* 802F7100 */ void getBounds(); - /* 802F76F8 */ void setBasePosition(J2DBasePosition); -}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); @@ -95,8 +72,6 @@ struct dMeterHaihai_c { /* 8020BC20 */ void setScale(f32); }; -struct ResTIMG {}; - struct J2DPicture { /* 801BDD40 */ void append(ResTIMG const*, f32); /* 801BDD70 */ void insert(ResTIMG const*, u8, f32); @@ -140,21 +115,6 @@ struct dMenu_StageMapCtrl_c { /* 801C2590 */ void setPlusZoomCenterZ(f32); }; -struct STControl { - /* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16); - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct J2DOrthoGraph {}; - -struct JKRExpHeap { - /* 802CEE2C */ void create(u32, JKRHeap*, bool); -}; - struct dMenu_ItemExplain_c { /* 801DA754 */ dMenu_ItemExplain_c(JKRExpHeap*, JKRArchive*, STControl*, bool); /* 801DB470 */ void move(); @@ -162,82 +122,6 @@ struct dMenu_ItemExplain_c { /* 801DC3C8 */ void openExplainDmap(u8, u8, u8, bool, u8); }; -struct CSTControl {}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; -}; - -struct J2DGrafContext { - /* 802E90C0 */ void scissor(JGeometry::TBox2 const&); -}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct dMenu_Dmap_c { - /* 801BB498 */ dMenu_Dmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8); - /* 801BB634 */ void screenInit(); - /* 801BC788 */ void getPlayerIconPos(s8, f32); - /* 801BC848 */ void getIconPos(s8, f32); - /* 801BCDF4 */ ~dMenu_Dmap_c(); - /* 801BD1D4 */ void getCurFloorPos(); - /* 801BD1E8 */ void getDefaultCurFloorPos(); - /* 801BD208 */ void iconMoveCalc(); - /* 801BD3B8 */ void drawFloorScreenBack(J2DScreen*, f32, f32, J2DOrthoGraph*); - /* 801BD524 */ void drawFloorScreenTop(J2DScreen*, f32, f32, J2DOrthoGraph*); - /* 801BD690 */ void isMapMoveState(); - /* 801BD6C4 */ void floorChangeMode(); - /* 801BD7C0 */ void _create(); - /* 801BDDA4 */ void _move(); - /* 801BDEF8 */ void setMapTexture(); - /* 801BDF48 */ void mapBgAnime(); - /* 801BDF6C */ void mapControl(); - /* 801BE328 */ void isOpen(); - /* 801BE670 */ void isClose(); - /* 801BE7E0 */ void _draw(); - /* 801BEAFC */ void itemInfo_init_proc(); - /* 801BEB0C */ void itemInfo_proc(); - /* 801BEB44 */ void itemSelect(); - /* 801BEF28 */ void getNextItem(int); - /* 801BEFCC */ void itemSelectAnmInit(); - /* 801BF030 */ void itemSelectAnm(); - /* 801BF180 */ void itemInfoOpenAnm(); - /* 801BF18C */ void itemInfoWait(); - /* 801BF278 */ void itemInfoCloseAnm(); - /* 801BF334 */ void getNextStatus(); - /* 801BF410 */ void isSync(); - /* 801BF464 */ void isKeyCheck(); - /* 801BF4A4 */ void infoModeChange_init_proc(); - /* 801BF528 */ void infoModeChange_proc(); - /* 801BF688 */ void mapModeChange_init_proc(); - /* 801BF70C */ void mapModeChange_proc(); - /* 801BF8A0 */ void lv5_talk_init_proc(); - /* 801BF8F8 */ void lv5_talk_proc(); - /* 801BF9D4 */ void mapMode_init_proc(); - /* 801BF9E0 */ void mapMode_proc(); - /* 801BFA84 */ void floorSelect_init_proc(); - /* 801BFA88 */ void floorSelect_proc(); - /* 801BFC78 */ void itemCarryCheck(); - /* 801BFCAC */ void floorChange_init_proc(); - /* 801BFD5C */ void floorChange_proc(); - /* 801BFF84 */ void zoomWait_init_proc(); - /* 801BFF88 */ void zoomWait_proc(); - /* 801C008C */ void zoomIn_init_proc(); - /* 801C01A0 */ void zoomIn_proc(); - /* 801C023C */ void zoomOut_init_proc(); - /* 801C02F0 */ void zoomOut_proc(); - - static u8 myclass[4 + 4 /* padding */]; -}; - struct dMenu_DmapMap_c { /* 801C04AC */ ~dMenu_DmapMap_c(); }; @@ -285,16 +169,8 @@ struct dMenuMapCommon_c { /* 801C443C */ void clearIconInfo(); }; -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); @@ -308,43 +184,10 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlphaMorf { - /* 80255C68 */ CPaneMgrAlphaMorf(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80255DD0 */ void setBackupAlpha(); - /* 80255E28 */ void setAlphaMorfRate(f32); -}; - -struct CPaneMgrAlpha { - /* 802553FC */ CPaneMgrAlpha(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253930 */ CPaneMgr(); - /* 80253A18 */ ~CPaneMgr(); - /* 802545B0 */ void paneTrans(f32, f32); - /* 802547CC */ void scaleAnime(s16, f32, f32, u8); - /* 80254C90 */ void getGlobalVtx(J2DPane*, f32 (*)[3][4], u8, bool, s16); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -562,7 +405,6 @@ extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFsPCce(); extern "C" void load__20J2DAnmLoaderDataBaseFPCv(); -extern "C" void GXGetScissor(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __ptmf_scall(); @@ -1773,7 +1615,8 @@ asm void dMenu_Dmap_c::getIconPos(s8 param_0, f32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dMenu_Dmap_c::~dMenu_Dmap_c() { +// asm dMenu_Dmap_c::~dMenu_Dmap_c() { +extern "C" asm void __dt__12dMenu_Dmap_cFv() { nofralloc #include "asm/d/menu/d_menu_dmap/__dt__12dMenu_Dmap_cFv.s" } @@ -1961,7 +1804,7 @@ SECTION_DEAD static char const* const pad_8039584B = "\0\0\0\0\0\0\0\0\0\0\0\0\0 #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Dmap_c::isOpen() { +asm bool dMenu_Dmap_c::isOpen() { nofralloc #include "asm/d/menu/d_menu_dmap/isOpen__12dMenu_Dmap_cFv.s" } @@ -1971,7 +1814,7 @@ asm void dMenu_Dmap_c::isOpen() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Dmap_c::isClose() { +asm bool dMenu_Dmap_c::isClose() { nofralloc #include "asm/d/menu/d_menu_dmap/isClose__12dMenu_Dmap_cFv.s" } @@ -2084,7 +1927,7 @@ asm void dMenu_Dmap_c::itemInfoCloseAnm() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Dmap_c::getNextStatus() { +asm u8 dMenu_Dmap_c::getNextStatus() { nofralloc #include "asm/d/menu/d_menu_dmap/getNextStatus__12dMenu_Dmap_cFv.s" } @@ -2094,7 +1937,7 @@ asm void dMenu_Dmap_c::getNextStatus() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Dmap_c::isSync() { +asm bool dMenu_Dmap_c::isSync() { nofralloc #include "asm/d/menu/d_menu_dmap/isSync__12dMenu_Dmap_cFv.s" } diff --git a/src/d/menu/d_menu_fishing.cpp b/src/d/menu/d_menu_fishing.cpp index 86a40dff3ea..4d87bb6f4e9 100644 --- a/src/d/menu/d_menu_fishing.cpp +++ b/src/d/menu/d_menu_fishing.cpp @@ -15,8 +15,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct JKRHeap {}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -36,66 +34,6 @@ struct dMeter2Info_c { /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); }; -struct STControl {}; - -struct CSTControl {}; - -struct JKRExpHeap {}; - -struct dMenu_Fishing_c { - /* 801C4D54 */ dMenu_Fishing_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801C4D98 */ ~dMenu_Fishing_c(); - /* 801C504C */ void _create(); - /* 801C50B4 */ void _move(); - /* 801C514C */ void _draw(); - /* 801C5204 */ void isSync(); - /* 801C522C */ void init(); - /* 801C52E4 */ void _open(); - /* 801C5470 */ void _close(); - /* 801C556C */ void wait_init(); - /* 801C55A8 */ void wait_move(); - /* 801C55D8 */ void screenSetBase(); - /* 801C5D3C */ void screenSetDoIcon(); - /* 801C5EB8 */ void setAButtonString(u16); - /* 801C5F68 */ void setBButtonString(u16); - /* 801C6018 */ void getFigure(int); - /* 801C605C */ void setFishParam(int, u16, u8); - /* 801C6210 */ void setHIO(bool); - /* 801C659C */ void draw(); -}; - -struct ResTIMG {}; - -struct JKRArchive {}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802545B0 */ void paneTrans(f32, f32); -}; - // // Forward References: // @@ -292,7 +230,7 @@ asm void dMenu_Fishing_c::_draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fishing_c::isSync() { +asm bool dMenu_Fishing_c::isSync() { nofralloc #include "asm/d/menu/d_menu_fishing/isSync__15dMenu_Fishing_cFv.s" } @@ -620,7 +558,8 @@ asm void dMenu_Fishing_c::setHIO(bool param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fishing_c::draw() { +// asm void dMenu_Fishing_c::draw() { +extern "C" asm void draw__15dMenu_Fishing_cFv() { nofralloc #include "asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s" } diff --git a/src/d/menu/d_menu_fmap.cpp b/src/d/menu/d_menu_fmap.cpp index ebcea3da31d..ac1db58a5ee 100644 --- a/src/d/menu/d_menu_fmap.cpp +++ b/src/d/menu/d_menu_fmap.cpp @@ -21,18 +21,10 @@ struct renderingFmap_c { int*); }; -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); - /* 802CE784 */ void getTotalFreeSize(); -}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; -struct fopAc_ac_c {}; - struct fmpTresTypeGroupDataList_c { /* 8003EB10 */ ~fmpTresTypeGroupDataList_c(); }; @@ -70,13 +62,6 @@ struct dMsgObject_c { /* 8023849C */ void setPortalMessageID(u16); }; -struct dMsgFlow_c { - /* 80249F00 */ dMsgFlow_c(); - /* 80249F48 */ ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); - /* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int); -}; - struct dMf_HIO_c { /* 801C65F8 */ dMf_HIO_c(); /* 801CDA2C */ ~dMf_HIO_c(); @@ -88,8 +73,6 @@ struct dMeterMap_c { /* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo(); }; -struct cXyz {}; - struct dMeter2Info_c { /* 8021CC0C */ void setWarpInfo(char const*, cXyz const&, s16, u8, u8, u8); }; @@ -100,141 +83,6 @@ struct dMenu_Fmap_world_data_c { struct dMenu_Fmap_stage_data_c {}; -struct STControl { - /* 8003219C */ void checkTrigger(); -}; - -struct CSTControl {}; - -struct JKRExpHeap { - /* 802CEE2C */ void create(u32, JKRHeap*, bool); -}; - -struct dMenu_Fmap_c { - /* 801C66E4 */ dMenu_Fmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8, u8, f32, f32, u8); - /* 801C6AC8 */ ~dMenu_Fmap_c(); - /* 801C6D64 */ void _create(); - /* 801C74A4 */ void _delete(); - /* 801C74A8 */ void _move(); - /* 801C7650 */ void _draw(); - /* 801C77F0 */ void getNextStatus(u8*); - /* 801C7AFC */ void isSync(); - /* 801C7B24 */ void all_map_init(); - /* 801C7C2C */ void all_map_proc(); - /* 801C8230 */ void zoom_all_to_region_init(); - /* 801C8308 */ void zoom_all_to_region_proc(); - /* 801C83E0 */ void zoom_region_to_all_init(); - /* 801C8438 */ void zoom_region_to_all_proc(); - /* 801C8518 */ void region_map_init(); - /* 801C8600 */ void region_map_proc(); - /* 801C8B00 */ void to_portal_warp_map_init(); - /* 801C8B0C */ void to_portal_warp_map_proc(); - /* 801C8B48 */ void portal_warp_map_init(); - /* 801C8C0C */ void portal_warp_map_proc(); - /* 801C90A4 */ void portal_warp_select_init(); - /* 801C90A8 */ void portal_warp_select_proc(); - /* 801C91D8 */ void portal_warp_forbid_init(); - /* 801C9238 */ void portal_warp_forbid_proc(); - /* 801C92A4 */ void zoom_region_to_spot_init(); - /* 801C9304 */ void zoom_region_to_spot_proc(); - /* 801C93CC */ void zoom_spot_to_region_init(); - /* 801C9428 */ void zoom_spot_to_region_proc(); - /* 801C950C */ void spot_map_init(); - /* 801C9618 */ void spot_map_proc(); - /* 801C9A4C */ void portal_demo1_init(); - /* 801C9B64 */ void portal_demo1_move(); - /* 801C9C7C */ void portal_demo2_init(); - /* 801C9CC8 */ void portal_demo2_move(); - /* 801C9D60 */ void portal_demo3_init(); - /* 801C9DB4 */ void portal_demo3_move(); - /* 801C9EB8 */ void portal_demo4_init(); - /* 801C9F14 */ void portal_demo4_move(); - /* 801C9F7C */ void portal_demo5_init(); - /* 801C9FBC */ void portal_demo5_move(); - /* 801CA158 */ void portal_demo6_init(); - /* 801CA15C */ void portal_demo6_move(); - /* 801CA1E8 */ void yamiboss_demo1_init(); - /* 801CA2F4 */ void yamiboss_demo1_move(); - /* 801CA34C */ void yamiboss_demo2_init(); - /* 801CA35C */ void yamiboss_demo2_move(); - /* 801CA40C */ void yamiboss_demo3_init(); - /* 801CA410 */ void yamiboss_demo3_move(); - /* 801CA468 */ void yamiboss_demo4_init(); - /* 801CA4C0 */ void yamiboss_demo4_move(); - /* 801CA544 */ void yamiboss_demo5_init(); - /* 801CA548 */ void yamiboss_demo5_move(); - /* 801CA5CC */ void light_demo1_init(); - /* 801CA7A4 */ void light_demo1_move(); - /* 801CA7E0 */ void light_demo2_init(); - /* 801CA814 */ void light_demo2_move(); - /* 801CA874 */ void table_demo1_init(); - /* 801CA9B4 */ void table_demo1_move(); - /* 801CAA78 */ void table_demo2_init(); - /* 801CAABC */ void table_demo2_move(); - /* 801CAB88 */ void table_demo3_init(); - /* 801CABD0 */ void table_demo3_move(); - /* 801CAC30 */ void howl_demo1_init(); - /* 801CAC7C */ void howl_demo1_move(); - /* 801CAD48 */ void howl_demo2_init(); - /* 801CAD54 */ void howl_demo2_move(); - /* 801CAD9C */ void howl_demo3_init(); - /* 801CADA0 */ void howl_demo3_move(); - /* 801CADC4 */ void isOpen(); - /* 801CB038 */ void isClose(); - /* 801CB1DC */ void getProcess(); - /* 801CB200 */ void getRegionCursor(); - /* 801CB230 */ void getStageCursor(); - /* 801CB260 */ void getStageTransX(); - /* 801CB290 */ void getStageTransZ(); - /* 801CB2C0 */ void isRoomCheck(int, int); - /* 801CB570 */ void checkStRoomData(); - /* 801CB664 */ void talkButton(); - /* 801CB6D0 */ void setProcess(u8); - /* 801CB6E0 */ void setFlash(u8, bool); - /* 801CB770 */ void readWorldData(u8); - /* 801CB938 */ void readAreaData(u8, bool); - /* 801CBF04 */ void readRoomData(char const*, dMenu_Fmap_stage_data_c*, void*, int, u8); - /* 801CC094 */ void readFieldMapData(void**, char const*, bool, bool); - /* 801CC2B0 */ void decodeFieldMapData(); - /* 801CC4EC */ void decodePortalData(); - /* 801CC51C */ void readRoomDzsData(void**, u32, char const*); - /* 801CC61C */ void removeAreaData(); - /* 801CC7A8 */ void removeRoomData(dMenu_Fmap_stage_data_c*); - /* 801CC85C */ void setTitleName(u32); - /* 801CC880 */ void setAreaName(u32); - /* 801CC8AC */ void setAreaNameZero(); - /* 801CC8DC */ void portalWarpMapMove(STControl*); - /* 801CCA70 */ void onRoomDataBit(int); - /* 801CCA98 */ void isRoomDataBit(int); - /* 801CCAC4 */ void resetRoomDataBit(); - /* 801CCB08 */ void drawIcon(f32, bool); - /* 801CD10C */ void drawIcon(u8, int); - /* 801CCD98 */ void drawLightDropIcon(); - /* 801CCDDC */ void drawBatsumarkIcon(); - /* 801CCE04 */ void drawSnowmanIcon(); - /* 801CCE48 */ void drawGoldWolfIcon(); - /* 801CCE70 */ void drawCoachIcon(); - /* 801CCE98 */ void drawPlayEnterIcon(); - /* 801CCFB0 */ void checkDrawPortalIcon(int, int); - /* 801CD000 */ void searchIcon(u8, int, f32*, f32*); - /* 801CD210 */ void drawEnterIcon(); - /* 801CD254 */ void drawPortalIcon(); - /* 801CD2FC */ void getRegionStageNum(int); - /* 801CD350 */ void getNowFmapRegionData(); - /* 801CD368 */ void getNowFmapStageData(); - /* 801CD380 */ void searchPortalStageID(char*); - /* 801CD3F0 */ void drawDebugStage(); - /* 801CD460 */ void arrowPosInit(); - /* 801CD5CC */ void tableArrowPosInit(bool); - /* 801CD770 */ void yamibossArrowPosInit(); - /* 801CD814 */ void howlArrowPosInit(); - /* 801CD8B4 */ void getHowlRegionID(); - /* 801CD92C */ void isLightVesselGet(); - /* 801CD95C */ void getPlayerPos2D(); - - static u8 MyClass[4]; -}; - struct dMenu_FmapMap_c { /* 801CEC24 */ dMenu_FmapMap_c(); /* 801CEDE8 */ void _create(u16, u16, u16, u16, void*); @@ -243,8 +91,6 @@ struct dMenu_FmapMap_c { /* 801CF450 */ void setRendering(dMenu_Fmap_world_data_c*, int, f32, f32, f32, f32); }; -struct J2DAnmTextureSRTKey {}; - struct dMenu_Fmap2DTop_c { /* 801D5BD0 */ dMenu_Fmap2DTop_c(JKRExpHeap*, STControl*); /* 801D6A44 */ void _execute(); @@ -267,8 +113,6 @@ struct dMenu_Fmap2DTop_c { /* 801D8088 */ void isWarpAccept(); }; -struct ResTIMG {}; - struct dMenu_Fmap2DBack_c { /* 801CF56C */ dMenu_Fmap2DBack_c(); /* 801D0804 */ void setRegionTexData(u8, ResTIMG*, f32, f32, f32, f32, f32, f32, f32, f32, f32); @@ -322,16 +166,8 @@ struct dMapInfo_n { /* 8003F02C */ void getMapRestartPos(); }; -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -340,10 +176,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct JKRArchive { - /* 801CC284 */ void getExpandedResSize(void const*) const; -}; - struct JKRAramArchive {}; // @@ -1429,7 +1261,8 @@ asm dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* param_0, STControl* param_1, CSTContr #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dMenu_Fmap_c::~dMenu_Fmap_c() { +// asm dMenu_Fmap_c::~dMenu_Fmap_c() { +extern "C" asm void __dt__12dMenu_Fmap_cFv() { nofralloc #include "asm/d/menu/d_menu_fmap/__dt__12dMenu_Fmap_cFv.s" } @@ -1502,7 +1335,7 @@ SECTION_SDATA2 static f32 lit_4541 = -1.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getNextStatus(u8* param_0) { +asm u8 dMenu_Fmap_c::getNextStatus(u8* param_0) { nofralloc #include "asm/d/menu/d_menu_fmap/getNextStatus__12dMenu_Fmap_cFPUc.s" } @@ -1512,7 +1345,7 @@ asm void dMenu_Fmap_c::getNextStatus(u8* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::isSync() { +asm bool dMenu_Fmap_c::isSync() { nofralloc #include "asm/d/menu/d_menu_fmap/isSync__12dMenu_Fmap_cFv.s" } @@ -2138,7 +1971,7 @@ asm void dMenu_Fmap_c::howl_demo3_move() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::isOpen() { +asm bool dMenu_Fmap_c::isOpen() { nofralloc #include "asm/d/menu/d_menu_fmap/isOpen__12dMenu_Fmap_cFv.s" } @@ -2148,7 +1981,7 @@ asm void dMenu_Fmap_c::isOpen() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::isClose() { +asm bool dMenu_Fmap_c::isClose() { nofralloc #include "asm/d/menu/d_menu_fmap/isClose__12dMenu_Fmap_cFv.s" } @@ -2158,7 +1991,7 @@ asm void dMenu_Fmap_c::isClose() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getProcess() { +asm u8 dMenu_Fmap_c::getProcess() { nofralloc #include "asm/d/menu/d_menu_fmap/getProcess__12dMenu_Fmap_cFv.s" } @@ -2169,7 +2002,7 @@ asm void dMenu_Fmap_c::getProcess() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getRegionCursor() { +asm u8 dMenu_Fmap_c::getRegionCursor() { nofralloc #include "asm/d/menu/d_menu_fmap/getRegionCursor__12dMenu_Fmap_cFv.s" } @@ -2179,7 +2012,7 @@ asm void dMenu_Fmap_c::getRegionCursor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getStageCursor() { +asm u8 dMenu_Fmap_c::getStageCursor() { nofralloc #include "asm/d/menu/d_menu_fmap/getStageCursor__12dMenu_Fmap_cFv.s" } @@ -2189,7 +2022,7 @@ asm void dMenu_Fmap_c::getStageCursor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getStageTransX() { +asm f32 dMenu_Fmap_c::getStageTransX() { nofralloc #include "asm/d/menu/d_menu_fmap/getStageTransX__12dMenu_Fmap_cFv.s" } @@ -2199,7 +2032,7 @@ asm void dMenu_Fmap_c::getStageTransX() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Fmap_c::getStageTransZ() { +asm f32 dMenu_Fmap_c::getStageTransZ() { nofralloc #include "asm/d/menu/d_menu_fmap/getStageTransZ__12dMenu_Fmap_cFv.s" } @@ -2303,7 +2136,7 @@ asm void dMenu_Fmap_c::readFieldMapData(void** param_0, char const* param_1, boo #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRArchive::getExpandedResSize(void const* param_0) const { +asm u32 JKRArchive::getExpandedResSize(void const* param_0) const { nofralloc #include "asm/d/menu/d_menu_fmap/getExpandedResSize__10JKRArchiveCFPCv.s" } diff --git a/src/d/menu/d_menu_insect.cpp b/src/d/menu/d_menu_insect.cpp index b29cefe0c94..6ba895e2b17 100644 --- a/src/d/menu/d_menu_insect.cpp +++ b/src/d/menu/d_menu_insect.cpp @@ -15,11 +15,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); -}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -40,18 +35,6 @@ struct dSv_event_c { /* 800349BC */ void isEventBit(u16) const; }; -struct J2DPane {}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); @@ -72,14 +55,6 @@ struct dMsgScrn3Select_c { /* 8023A97C */ void getCharSpace(); }; -struct ResTIMG {}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - -struct JUTFont {}; - struct JMSMesgEntry_c {}; struct dMeter2Info_c { @@ -90,61 +65,8 @@ struct dMeter2Info_c { J2DPicture*, void*, J2DPicture*, int); }; -struct STControl { - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct CSTControl {}; - -struct JKRExpHeap {}; - -struct dMenu_Insect_c { - /* 801D8114 */ dMenu_Insect_c(JKRExpHeap*, STControl*, CSTControl*, u8); - /* 801D82F4 */ ~dMenu_Insect_c(); - /* 801D8658 */ void _create(); - /* 801D86C8 */ void _move(); - /* 801D8760 */ void _draw(); - /* 801D88EC */ void isSync(); - /* 801D8914 */ void init(); - /* 801D894C */ void _open(); - /* 801D8B2C */ void _close(); - /* 801D8C68 */ void wait_init(); - /* 801D8CCC */ void wait_move(); - /* 801D8E00 */ void explain_open_init(); - /* 801D91E4 */ void explain_open_move(); - /* 801D9264 */ void explain_move_init(); - /* 801D9268 */ void explain_move_move(); - /* 801D9290 */ void select_move_init(); - /* 801D92DC */ void select_move_move(); - /* 801D9504 */ void explain_close_init(); - /* 801D95AC */ void explain_close_move(); - /* 801D9644 */ void screenSetBase(); - /* 801D98F0 */ void screenSetExplain(); - /* 801D9BD0 */ void screenSetDoIcon(); - /* 801D9D4C */ void getGetInsectNum(); - /* 801D9DCC */ void getInsectItemID(int, int); - /* 801D9DE4 */ void isGetInsect(int, int); - /* 801D9E20 */ void isGiveInsect(int, int); - /* 801D9ED4 */ void isGiveInsect(u8); - /* 801D9E7C */ void isCatchInsect(u8); - /* 801D9F3C */ void isCatchNotGiveInsect(u8); - /* 801D9F8C */ void cursorMove(); - /* 801DA1EC */ void setCursorPos(); - /* 801DA2FC */ bool dpdMove(); - /* 801DA304 */ void setAButtonString(u16); - /* 801DA3B4 */ void setBButtonString(u16); - /* 801DA464 */ void setHIO(bool); - /* 801DA630 */ void draw(); -}; - struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -153,33 +75,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255828 */ void getAlphaRate(); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -555,7 +450,7 @@ asm void dMenu_Insect_c::_draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Insect_c::isSync() { +asm bool dMenu_Insect_c::isSync() { nofralloc #include "asm/d/menu/d_menu_insect/isSync__14dMenu_Insect_cFv.s" } @@ -982,7 +877,8 @@ asm void dMenu_Insect_c::setHIO(bool param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Insect_c::draw() { +// asm void dMenu_Insect_c::draw() { +extern "C" asm void draw__14dMenu_Insect_cFv() { nofralloc #include "asm/d/menu/d_menu_insect/draw__14dMenu_Insect_cFv.s" } diff --git a/src/d/menu/d_menu_letter.cpp b/src/d/menu/d_menu_letter.cpp index 2b4d115366c..79f15c44d60 100644 --- a/src/d/menu/d_menu_letter.cpp +++ b/src/d/menu/d_menu_letter.cpp @@ -15,8 +15,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct JKRHeap {}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -31,29 +29,6 @@ struct dSv_letter_info_c { /* 8003449C */ void isLetterReadFlag(int) const; }; -struct J2DPane { - /* 802F7100 */ void getBounds(); -}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - -struct J2DTextBox { - /* 801DFA28 */ void getWhite() const; - /* 801DFA34 */ void getBlack() const; - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct JUTFont {}; - struct COutFont_c {}; struct dMsgString_c { @@ -85,68 +60,12 @@ struct dMeter2Info_c { /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); }; -struct STControl { - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct CSTControl {}; - -struct JKRExpHeap {}; - -struct dMenu_Letter_c { - /* 801DCDC0 */ dMenu_Letter_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801DCF34 */ ~dMenu_Letter_c(); - /* 801DD36C */ void _create(); - /* 801DD474 */ void _move(); - /* 801DD50C */ void _draw(); - /* 801DD934 */ void isSync(); - /* 801DD95C */ void letter_init_calc(); - /* 801DDA20 */ void init(); - /* 801DDA74 */ void _open(); - /* 801DDC98 */ void _close(); - /* 801DDE18 */ void wait_init(); - /* 801DDE54 */ void wait_move(); - /* 801DE164 */ void slide_right_init(); - /* 801DE1E8 */ void slide_right_move(); - /* 801DE24C */ void slide_left_init(); - /* 801DE2D0 */ void slide_left_move(); - /* 801DE334 */ void read_open_init(); - /* 801DE564 */ void read_open_move(); - /* 801DE70C */ void read_move_init(); - /* 801DE824 */ void read_move_move(); - /* 801DEA48 */ void read_next_fadeout_init(); - /* 801DEA94 */ void read_next_fadeout_move(); - /* 801DEBD8 */ void read_next_fadein_init(); - /* 801DED04 */ void read_next_fadein_move(); - /* 801DEE20 */ void read_close_init(); - /* 801DEE6C */ void read_close_move(); - /* 801DF010 */ void screenSetMenu(); - /* 801DFA58 */ void screenSetBase(); - /* 801E0330 */ void screenSetShadow(); - /* 801E03D8 */ void screenSetLetter(); - /* 801E09A8 */ void screenSetDoIcon(); - /* 801E0B24 */ void setCursorPos(); - /* 801E0BB0 */ void changeActiveColor(); - /* 801E0E34 */ void changePageLight(); - /* 801E0E84 */ void setPageText(); - /* 801E1038 */ void setDMYPageText(); - /* 801E11EC */ void copyDMYMenu(); - /* 801E1518 */ void setAButtonString(u16); - /* 801E15C8 */ void setBButtonString(u16); - /* 801E1678 */ void getLetterNum(); - /* 801E1748 */ void setHIO(bool); - /* 801E1D5C */ void draw(); -}; - struct dMenu_Letter { static u8 letter_data[512]; }; struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -155,50 +74,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct ResTIMG {}; - -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; -}; - -struct J2DGrafContext { - /* 802E90C0 */ void scissor(JGeometry::TBox2 const&); -}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - -struct J2DPicture { - /* 801DFA40 */ void getWhite() const; - /* 801DFA4C */ void getBlack() const; - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - -struct CPaneMgrAlpha { - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253930 */ CPaneMgr(); - /* 80253A18 */ ~CPaneMgr(); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254C90 */ void getGlobalVtx(J2DPane*, f32 (*)[3][4], u8, bool, s16); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -308,7 +183,6 @@ extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void GXGetScissor(); extern "C" void __construct_array(); extern "C" void __ptmf_scall(); extern "C" void __save_gpr(); @@ -634,7 +508,7 @@ asm void dMenu_Letter_c::_draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::isSync() { +asm bool dMenu_Letter_c::isSync() { nofralloc #include "asm/d/menu/d_menu_letter/isSync__14dMenu_Letter_cFv.s" } @@ -1339,7 +1213,8 @@ asm void dMsgString_c::getStringPage(u32 param_0, u8 param_1, u8 param_2, J2DTex #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Letter_c::draw() { +// asm void dMenu_Letter_c::draw() { +extern "C" asm void draw__14dMenu_Letter_cFv() { nofralloc #include "asm/d/menu/d_menu_letter/draw__14dMenu_Letter_cFv.s" } diff --git a/src/d/menu/d_menu_option.cpp b/src/d/menu/d_menu_option.cpp index a4aa32107b4..ce562e8322b 100644 --- a/src/d/menu/d_menu_option.cpp +++ b/src/d/menu/d_menu_option.cpp @@ -15,8 +15,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct JKRHeap {}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -30,24 +28,6 @@ struct dSv_player_config_c { /* 80034684 */ void getSound(); }; -struct J2DBasePosition {}; - -struct J2DPane { - /* 802F7100 */ void getBounds(); - /* 802F76F8 */ void setBasePosition(J2DBasePosition); - /* 802F7FCC */ void animationTransform(); -}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMw_c { /* 801FCE08 */ void dMw_fade_out(); /* 801FCE78 */ void dMw_fade_in(); @@ -69,98 +49,10 @@ struct dMeter2Info_c { /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); }; -struct STControl { - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct dMenu_Option_c { - /* 801E1F10 */ dMenu_Option_c(JKRArchive*, STControl*); - /* 801E2014 */ ~dMenu_Option_c(); - /* 801E205C */ void _create(); - /* 801E2C1C */ void _delete(); - /* 801E3408 */ void _move(); - /* 801E36CC */ void _draw(); - /* 801E38CC */ void drawHaihai(); - /* 801E3A7C */ void isSync(); - /* 801E3AA4 */ void checkLeftTrigger(); - /* 801E3AC8 */ void checkRightTrigger(); - /* 801E3AEC */ void setAnimation(); - /* 801E3B98 */ void _open(); - /* 801E3DE0 */ void _close(); - /* 801E3F6C */ void atten_init(); - /* 801E3FC4 */ void atten_move(); - /* 801E41A0 */ void vib_init(); - /* 801E41F8 */ void vib_move(); - /* 801E4488 */ void sound_init(); - /* 801E44E0 */ void sound_move(); - /* 801E48AC */ void change_init(); - /* 801E48E8 */ void change_move(); - /* 801E4B34 */ void confirm_open_init(); - /* 801E4C10 */ void confirm_open_move(); - /* 801E4CE4 */ void confirm_move_init(); - /* 801E4D20 */ void confirm_move_move(); - /* 801E4E98 */ void confirm_select_init(); - /* 801E4E9C */ void confirm_select_move(); - /* 801E4F18 */ void confirm_close_init(); - /* 801E4FB0 */ void confirm_close_move(); - /* 801E51CC */ void tv_open1_move(); - /* 801E5244 */ void tv_open2_move(); - /* 801E5260 */ void tv_move_move(); - /* 801E5300 */ void tv_close1_move(); - /* 801E5364 */ void tv_close2_move(); - /* 801E5380 */ void calibration_open1_move(); - /* 801E53C4 */ void calibration_open2_move(); - /* 801E53E0 */ void calibration_move_move(); - /* 801E5434 */ void calibration_close1_move(); - /* 801E5478 */ void calibration_close2_move(); - /* 801E5494 */ void menuVisible(); - /* 801E54F8 */ void menuShow(int); - /* 801E55B8 */ void menuHide(int); - /* 801E5678 */ void screenSet(); - /* 801E6FBC */ void setSoundMode(u32); - /* 801E7004 */ void setAttenString(); - /* 801E70E8 */ void setVibString(); - /* 801E71CC */ void setSoundString(); - /* 801E7314 */ void setCursorPos(u8); - /* 801E73D8 */ void setSelectColor(u8, bool); - /* 801E76EC */ void getSelectType(); - /* 801E7718 */ void changeBarColor(bool); - /* 801E78B8 */ void setHIO(bool); - /* 801E7D18 */ void cursorAnime(f32); - /* 801E7D60 */ void setZButtonString(u16); - /* 801E7DF4 */ void changeTVCheck(); - /* 801E7E98 */ void setAButtonString(u16); - /* 801E7F9C */ void setBButtonString(u16); - /* 801E80A0 */ void isRumbleSupported(); - /* 801E80AC */ bool dpdMenuMove(); - /* 801E80B4 */ void paneResize(u64); - /* 801E8210 */ void initialize(); - /* 801E82C4 */ void yesnoMenuMoveAnmInitSet(int, int); - /* 801E8438 */ void yesnoMenuMoveAnm(); - /* 801E85D4 */ void yesnoSelectMoveAnm(); - /* 801E8888 */ void yesnoCursorShow(); - /* 801E89F8 */ void yesNoSelectStart(); - /* 801E8AC8 */ void yesnoSelectAnmSet(); - /* 801E8C38 */ void yesnoCancelAnmSet(); - /* 801E8CB0 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); - /* 801E8CFC */ void yesnoWakuAlpahAnm(u8); - /* 801E8E6C */ void draw(); -}; - struct dMenu_Calibration_c { /* 801AEDAC */ void _move(); }; -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - struct dFile_warning_c { /* 80191BAC */ dFile_warning_c(JKRArchive*, u8); /* 80191F18 */ void _move(); @@ -177,8 +69,6 @@ struct dComIfG_play_c { struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -189,8 +79,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct ResTIMG {}; - struct JUTGamePad { struct CRumble { struct ERumble {}; @@ -201,51 +89,10 @@ struct JUTGamePad { static u8 sRumbleSupported[4]; }; -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct JKRExpHeap {}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253930 */ CPaneMgr(); - /* 80253A18 */ ~CPaneMgr(); - /* 802545B0 */ void paneTrans(f32, f32); - /* 802548BC */ void colorAnime(s16, JUtility::TColor, JUtility::TColor, JUtility::TColor, - JUtility::TColor, u8); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -395,7 +242,6 @@ extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFsPCce(); extern "C" void load__20J2DAnmLoaderDataBaseFPCv(); -extern "C" void OSSetSoundMode(); extern "C" void __construct_array(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_20(); @@ -1080,7 +926,7 @@ asm void dMenu_Option_c::drawHaihai() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Option_c::isSync() { +asm bool dMenu_Option_c::isSync() { nofralloc #include "asm/d/menu/d_menu_option/isSync__14dMenu_Option_cFv.s" } @@ -1131,7 +977,7 @@ SECTION_DEAD static char const* const stringBase_80397721 = "/res/Layout/optres. #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Option_c::_open() { +asm bool dMenu_Option_c::_open() { nofralloc #include "asm/d/menu/d_menu_option/_open__14dMenu_Option_cFv.s" } @@ -2232,7 +2078,8 @@ asm void dMenu_Option_c::yesnoWakuAlpahAnm(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Option_c::draw() { +// asm void dMenu_Option_c::draw() { +extern "C" asm void draw__14dMenu_Option_cFv() { nofralloc #include "asm/d/menu/d_menu_option/draw__14dMenu_Option_cFv.s" } diff --git a/src/d/menu/d_menu_ring.cpp b/src/d/menu/d_menu_ring.cpp index ef4010363ea..9fb9ee4fa7d 100644 --- a/src/d/menu/d_menu_ring.cpp +++ b/src/d/menu/d_menu_ring.cpp @@ -11,6 +11,7 @@ // Types: // + struct mDoCPd_c { static u8 m_cpadInfo[256]; }; @@ -33,26 +34,11 @@ struct dSv_player_item_c { /* 80033354 */ void getLineUpItem(int) const; }; -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); }; -struct ResTIMG {}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - struct dMeter2Info_c { /* 8021CA04 */ void warpInProc(); /* 8021CF08 */ void readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, @@ -60,78 +46,11 @@ struct dMeter2Info_c { /* 8021D36C */ void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*); }; -struct JUtility { - struct TColor {}; -}; - struct dMeter2Draw_c { /* 802140DC */ void drawPikari(f32, f32, f32*, f32, JUtility::TColor, JUtility::TColor, JUtility::TColor, JUtility::TColor, f32, u8); }; -struct STControl {}; - -struct CSTControl {}; - -struct JKRExpHeap {}; - -struct dMenu_Ring_c { - /* 801E9118 */ dMenu_Ring_c(JKRExpHeap*, STControl*, CSTControl*, u8); - /* 801EA708 */ ~dMenu_Ring_c(); - /* 801EAB7C */ void _create(); - /* 801EABE8 */ void _delete(); - /* 801EABEC */ void _move(); - /* 801EACC8 */ void _draw(); - /* 801EB080 */ void setKanteraPos(f32, f32); - /* 801EB0A4 */ void isOpen(); - /* 801EB2B4 */ void isMoveEnd(); - /* 801EB3CC */ void isClose(); - /* 801EB624 */ void getStickInfo(STControl*); - /* 801EB8C0 */ void calcStickAngle(STControl*, u8); - /* 801EB960 */ void setRotate(); - /* 801EBA38 */ void setItemScale(int, f32); - /* 801EBAB8 */ void setButtonScale(int, f32); - /* 801EBB10 */ void setItem(); - /* 801EBE58 */ void setJumpItem(bool); - /* 801EC20C */ void setScale(); - /* 801EC3B0 */ void setNameString(u32); - /* 801EC504 */ void setActiveCursor(); - /* 801EC754 */ void setMixItem(); - /* 801ECB14 */ void drawItem(); - /* 801ECF9C */ void drawItem2(); - /* 801ED2BC */ void stick_wait_init(); - /* 801ED31C */ void stick_wait_proc(); - /* 801ED490 */ void stick_move_init(); - /* 801ED53C */ void stick_move_proc(); - /* 801ED934 */ void stick_explain_init(); - /* 801ED938 */ void stick_explain_force_init(); - /* 801ED93C */ void stick_explain_proc(); - /* 801EDA0C */ void stick_explain_force_proc(); - /* 801EDB14 */ void setSelectItem(int, u8); - /* 801EDC98 */ void drawSelectItem(); - /* 801EDF2C */ void setSelectItemForce(int); - /* 801EDFDC */ void getCursorPos(u8); - /* 801EE058 */ void getItemNum(u8); - /* 801EE15C */ void getItemMaxNum(u8); - /* 801EE228 */ void checkExplainForce(); - /* 801EE63C */ bool checkCombineBomb(int); - /* 801EE644 */ void setCombineBomb(int); - /* 801EE648 */ void drawNumber(int, int, f32, f32); - /* 801EEA84 */ void getItem(int, u8); - /* 801EEAE4 */ void setDoStatus(u8); - /* 801EEB58 */ void isMixItemOn(); - /* 801EEC98 */ void isMixItemOff(); - /* 801EED84 */ void setMixMessage(); - /* 801EEF14 */ void textScaleHIO(); - /* 801EF11C */ void textCentering(); - /* 801EF13C */ void clacEllipseFunction(f32, f32, f32); - /* 801EF174 */ void calcDistance(f32, f32, f32, f32); - /* 801EF1A0 */ void clacEllipsePlotAverage(int, f32, f32); - /* 801EF484 */ bool dpdMove(); - /* 801EF48C */ void openExplain(u8); - /* 801EF560 */ void draw(); -}; - struct J2DOrthoGraph {}; struct dMenu_ItemExplain_c { @@ -155,12 +74,6 @@ struct dItem_data { static void* item_resource[1530]; }; -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; -}; - struct JAISoundID {}; struct Z2SeMgr { @@ -175,47 +88,6 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); - /* 802CE784 */ void getTotalFreeSize(); -}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - -struct J2DBasePosition {}; - -struct J2DPane { - /* 802F76F8 */ void setBasePosition(J2DBasePosition); -}; - -struct CPaneMgrAlpha { - /* 802553FC */ CPaneMgrAlpha(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 8025564C */ void isVisible(); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255828 */ void getAlphaRate(); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253930 */ CPaneMgr(); - /* 80253A18 */ ~CPaneMgr(); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -355,7 +227,6 @@ extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void PSVECSquareMag(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_17(); extern "C" void _savegpr_18(); @@ -377,7 +248,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void abs(); extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" void* item_resource__10dItem_data[1530]; @@ -386,7 +256,6 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_ringHIO[344]; extern "C" extern u8 g_meter2_info[248]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_nan; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // @@ -766,7 +635,7 @@ SECTION_SDATA2 static f64 lit_4596 = 4503601774854144.0 /* cast s32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Ring_c::isOpen() { +asm bool dMenu_Ring_c::isOpen() { nofralloc #include "asm/d/menu/d_menu_ring/isOpen__12dMenu_Ring_cFv.s" } @@ -776,7 +645,7 @@ asm void dMenu_Ring_c::isOpen() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Ring_c::isMoveEnd() { +asm bool dMenu_Ring_c::isMoveEnd() { nofralloc #include "asm/d/menu/d_menu_ring/isMoveEnd__12dMenu_Ring_cFv.s" } @@ -786,7 +655,7 @@ asm void dMenu_Ring_c::isMoveEnd() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Ring_c::isClose() { +asm bool dMenu_Ring_c::isClose() { nofralloc #include "asm/d/menu/d_menu_ring/isClose__12dMenu_Ring_cFv.s" } @@ -1292,7 +1161,8 @@ asm void dMenu_Ring_c::openExplain(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Ring_c::draw() { +// asm void dMenu_Ring_c::draw() { +extern "C" asm void draw__12dMenu_Ring_cFv() { nofralloc #include "asm/d/menu/d_menu_ring/draw__12dMenu_Ring_cFv.s" } diff --git a/src/d/menu/d_menu_save.cpp b/src/d/menu/d_menu_save.cpp index 3b394e25d2f..a8f52f73045 100644 --- a/src/d/menu/d_menu_save.cpp +++ b/src/d/menu/d_menu_save.cpp @@ -26,8 +26,6 @@ struct mDoMemCd_Ctrl_c { /* 800170B8 */ void command_attach(); }; -struct JKRHeap {}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -62,33 +60,11 @@ struct dSv_event_c { /* 800349BC */ void isEventBit(u16) const; }; -struct J2DPane { - /* 802F7FCC */ void animationTransform(); -}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); }; -struct STControl { - /* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16); - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - struct J2DOrthoGraph {}; struct dMsgScrnExplain_c { @@ -108,131 +84,6 @@ struct dMeter2Info_c { /* 8021E0C4 */ void resetMiniGameItem(bool); }; -struct dMenu_save_c { - /* 801EF6A0 */ dMenu_save_c(); - /* 801EF7AC */ void _create(); - /* 801EF904 */ void screenSet(); - /* 801F0938 */ void initialize(); - /* 801F0958 */ void displayInit(); - /* 801F09AC */ void _open(); - /* 801F0B10 */ void _close(); - /* 801F0B28 */ void _delete(); - /* 801F1048 */ void _move(); - /* 801F1100 */ void saveSelAnm(); - /* 801F1148 */ void selFileWakuAnm(); - /* 801F11F4 */ void bookIconAnm(); - /* 801F12F0 */ void memCardWatch(); - /* 801F1378 */ void saveQuestion(); - /* 801F1558 */ void saveQuestion2(); - /* 801F1620 */ void saveQuestion21(); - /* 801F1644 */ void saveQuestion3(); - /* 801F16B8 */ void saveQuestion4(); - /* 801F16F4 */ void saveGuide(); - /* 801F1720 */ void memCardCheck(); - /* 801F191C */ void memCardErrMsgWaitKey(); - /* 801F19A8 */ void backSaveQuestionInitSet(); - /* 801F19DC */ void backSaveQuestion(); - /* 801F1A48 */ void backSaveQuestion2(); - /* 801F1B38 */ void closeSelect(); - /* 801F1BF8 */ void closeSelect2(); - /* 801F1C70 */ void iplSelMsgInitSet(); - /* 801F1C94 */ void iplSelInitSet(); - /* 801F1CEC */ void IPLSelectDisp1(); - /* 801F1D54 */ void IPLSelectDisp2(); - /* 801F1DD4 */ void memCardErrGoIPLSel(); - /* 801F1E58 */ void IPLSelect2Disp(); - /* 801F1EE0 */ void memCardErrGoIPLSel2(); - /* 801F1F80 */ void memCardErrGotoIPL(); - /* 801F2000 */ void memCardErrMsgWaitFormatSel(); - /* 801F20AC */ void cardFormatYesSelDisp(); - /* 801F2134 */ void cardFormatNoSelDisp(); - /* 801F219C */ void memCardErrMsgWaitFormatSel2(); - /* 801F2250 */ void cardFormatYesSel2Disp(); - /* 801F22CC */ void memCardFormat(); - /* 801F232C */ void memCardFormatWait(); - /* 801F23A4 */ void gameFileMakeSelInitSet(); - /* 801F23FC */ void makeGameFileSelDisp(); - /* 801F247C */ void memCardMakeGameFileSel(); - /* 801F2514 */ void makeGameFileDisp(); - /* 801F25AC */ void memCardMakeGameFile(); - /* 801F260C */ void memCardMakeGameFileWait(); - /* 801F2698 */ void memCardCommandEnd(); - /* 801F2708 */ void memCardCommandEnd2(); - /* 801F27CC */ void memCardDataLoadWait(); - /* 801F2840 */ void dataWrite(); - /* 801F28E4 */ void memCardDataSaveWait(); - /* 801F298C */ void memCardDataSaveWait2(); - /* 801F2B5C */ void gameContinueDisp(); - /* 801F2BF8 */ void gameContinue(); - /* 801F2D78 */ void gameContinue2(); - /* 801F2DA0 */ void gameContinue3(); - /* 801F2DD4 */ void saveEnd(); - /* 801F2E88 */ void endingNoSave(); - /* 801F2F08 */ void endingNoSave2(); - /* 801F2F38 */ void endingDataCheck(); - /* 801F2F4C */ void retryQuestion0(); - /* 801F2FB4 */ void retryQuestion1(); - /* 801F3040 */ void retryQuestion2(); - /* 801F30B8 */ void restartInit(); - /* 801F31B0 */ void saveWait(); - /* 801F31B4 */ void messageChange(); - /* 801F328C */ void YesNoSelect(); - /* 801F34BC */ void msgTxtSet(u16, bool); - /* 801F3588 */ void openSaveSelect(); - /* 801F36B4 */ void openSaveSelect2(); - /* 801F37A0 */ void openSaveSelect3(); - /* 801F3934 */ void saveSelect(); - /* 801F3A94 */ void saveSelectStart(); - /* 801F3BE0 */ void selectDataOpenMove(); - /* 801F3C7C */ void dataSelectAnmSet(); - /* 801F3E30 */ void saveSelectMoveAnime(); - /* 801F40D8 */ void saveYesNoSelect(); - /* 801F4238 */ void yesnoSelectStart(); - /* 801F42FC */ void saveMoveDisp(); - /* 801F43F8 */ void saveMoveDisp2(); - /* 801F4510 */ void yesnoSelectAnmSet(u8); - /* 801F46B4 */ void yesNoCursorMoveAnm(); - /* 801F4724 */ void yesnoCancelAnmSet(); - /* 801F47DC */ void saveYesNoCancelMove(); - /* 801F485C */ void headerTxtSet(u16); - /* 801F4928 */ void headerTxtChangeAnm(); - /* 801F4A10 */ void errDispInitSet(int); - /* 801F4B84 */ void msgWindowInitOpen(); - /* 801F4D10 */ void msgWindowOpen(); - /* 801F4DAC */ void msgWindowClose(); - /* 801F4E48 */ void errYesNoSelect(u8, u8); - /* 801F4FB4 */ void errCurMove(u8, u8); - /* 801F5054 */ void errYesNoCursorMoveAnm(); - /* 801F50C4 */ void errorTxtSet(u16); - /* 801F5190 */ void errorTxtChangeAnm(); - /* 801F5278 */ void saveSelectOpenInit(); - /* 801F533C */ void selectDataBaseMoveAnmInitSet(int, int); - /* 801F53D4 */ void selectDataBaseMoveAnm(); - /* 801F54C0 */ void saveSelectOpenAnmSet(); - /* 801F5508 */ void selectDataMoveAnmInitSet(int, int); - /* 801F5600 */ void selectDataMoveAnm(); - /* 801F5744 */ void yesnoMenuMoveAnmInitSet(int, int, u8); - /* 801F58C8 */ void yesnoMenuMoveAnm(); - /* 801F5AE4 */ void yesnoSelectMoveAnm(u8); - /* 801F5D84 */ void yesnoCursorShow(); - /* 801F5EF4 */ void errorMoveAnmInitSet(int, int); - /* 801F5F84 */ void errorMoveAnm(); - /* 801F60A4 */ void modoruTxtDispAnmInit(u8); - /* 801F6120 */ void modoruTxtDispAnm(); - /* 801F61FC */ void ketteiTxtDispAnmInit(u8); - /* 801F6278 */ void ketteiTxtDispAnm(); - /* 801F6354 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8); - /* 801F6390 */ void selectWakuAlpahAnm(u8); - /* 801F6458 */ void selFileCursorShow(); - /* 801F6608 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); - /* 801F6654 */ void yesnoWakuAlpahAnm(u8); - /* 801F67B8 */ void dataSave(); - /* 801F67F0 */ void setSaveData(); - /* 801F6954 */ void setInitSaveData(); - /* 801F69B8 */ void _draw(); - /* 801F69FC */ void _draw2(); -}; - struct dFile_warning_c { /* 80191BAC */ dFile_warning_c(JKRArchive*, u8); /* 80191F18 */ void _move(); @@ -248,30 +99,12 @@ struct dFile_info_c { /* 80192D60 */ void _draw(); }; -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -struct dDlst_MenuSave_c { - /* 801F6B0C */ void draw(); - /* 801F6B44 */ ~dDlst_MenuSave_c(); -}; - -struct dDlst_MenuSaveExplain_c { - /* 801F6ADC */ void draw(); - /* 801F6B8C */ ~dDlst_MenuSaveExplain_c(); -}; - struct Z2SeqMgr { /* 802B3EAC */ void checkBgmIDPlaying(u32); }; struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); @@ -281,52 +114,14 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct JUtility { - struct TColor {}; -}; - -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct JKRExpHeap {}; - struct JFWDisplay { static u8 sManager[4]; }; -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 80300660 */ void setString(char const*, ...); - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlpha { - /* 802553FC */ CPaneMgrAlpha(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802555C8 */ void show(); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802548BC */ void colorAnime(s16, JUtility::TColor, JUtility::TColor, JUtility::TColor, - JUtility::TColor, u8); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -1670,7 +1465,7 @@ asm void dMenu_save_c::displayInit() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_save_c::_open() { +asm bool dMenu_save_c::_open() { nofralloc #include "asm/d/menu/d_menu_save/_open__12dMenu_save_cFv.s" } @@ -2889,7 +2684,8 @@ asm void dMenu_save_c::_draw2() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_MenuSaveExplain_c::draw() { +// asm void dDlst_MenuSaveExplain_c::draw() { +extern "C" asm void draw__23dDlst_MenuSaveExplain_cFv() { nofralloc #include "asm/d/menu/d_menu_save/draw__23dDlst_MenuSaveExplain_cFv.s" } @@ -2899,7 +2695,8 @@ asm void dDlst_MenuSaveExplain_c::draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_MenuSave_c::draw() { +// asm void dDlst_MenuSave_c::draw() { +extern "C" asm void draw__16dDlst_MenuSave_cFv() { nofralloc #include "asm/d/menu/d_menu_save/draw__16dDlst_MenuSave_cFv.s" } diff --git a/src/d/menu/d_menu_skill.cpp b/src/d/menu/d_menu_skill.cpp index b20506c7285..0c78b194ce8 100644 --- a/src/d/menu/d_menu_skill.cpp +++ b/src/d/menu/d_menu_skill.cpp @@ -15,8 +15,6 @@ struct mDoGph_gInf_c { static u8 mFader[4]; }; -struct JKRHeap {}; - struct mDoDvdThd_mountArchive_c { /* 80015E14 */ void create(char const*, u8, JKRHeap*); }; @@ -33,18 +31,6 @@ struct dSv_event_c { /* 800349BC */ void isEventBit(u16) const; }; -struct J2DPane {}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801951C8 */ void setScale(f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); @@ -56,52 +42,8 @@ struct dMeter2Info_c { /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); }; -struct STControl { - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct CSTControl {}; - -struct JKRExpHeap {}; - -struct dMenu_Skill_c { - /* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801F7348 */ ~dMenu_Skill_c(); - /* 801F763C */ void _create(); - /* 801F7718 */ void _move(); - /* 801F77B0 */ void _draw(); - /* 801F7950 */ void isSync(); - /* 801F7978 */ void skill_init_calc(); - /* 801F79EC */ void init(); - /* 801F7A40 */ void _open(); - /* 801F7C1C */ void _close(); - /* 801F7D58 */ void wait_init(); - /* 801F7D94 */ void wait_move(); - /* 801F7F24 */ void read_open_init(); - /* 801F7FF8 */ void read_open_move(); - /* 801F8114 */ void read_move_init(); - /* 801F8150 */ void read_move_move(); - /* 801F8218 */ void read_close_init(); - /* 801F826C */ void read_close_move(); - /* 801F8388 */ void screenSetMenu(); - /* 801F8A18 */ void screenSetLetter(); - /* 801F8D20 */ void screenSetDoIcon(); - /* 801F8E9C */ void setCursorPos(); - /* 801F8F28 */ void changeActiveColor(); - /* 801F9144 */ void setPageText(); - /* 801F9260 */ void setAButtonString(u16); - /* 801F9310 */ void setBButtonString(u16); - /* 801F93C0 */ void setNameString(u16); - /* 801F9470 */ void getSkillNum(); - /* 801F9500 */ void setHIO(bool); - /* 801F9A08 */ void draw(); -}; - struct JAISoundID {}; -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -110,41 +52,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct ResTIMG {}; - -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - -struct CPaneMgrAlpha { - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -379,14 +286,26 @@ SECTION_SDATA2 static f32 lit_3809 = 1.0f; /* 801F7224-801F7348 1F1B64 0124+00 0/0 2/2 0/0 .text * __ct__13dMenu_Skill_cFP10JKRExpHeapP9STControlP10CSTControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMenu_Skill_c::dMenu_Skill_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { - nofralloc -#include "asm/d/menu/d_menu_skill/__ct__13dMenu_Skill_cFP10JKRExpHeapP9STControlP10CSTControl.s" +dMenu_Skill_c::dMenu_Skill_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { + field_0x4 = param_0; + field_0x8 = NULL; + field_0x14 = NULL; + field_0xc = param_1; + field_0x10 = param_2; + mStatus = 1; + field_0x205 = 0; + field_0x200 = 0; + field_0x1fc = 0; + field_0x202 = 0; + field_0x206 = 0; + field_0x209 = 255; + field_0x20a = 255; + skill_init_calc(); + field_0x1f0 = FLOAT_LABEL(lit_3808); + f32 tmp_1 = lit_3809; + field_0x1f8 = tmp_1; + field_0x1f4 = tmp_1; } -#pragma pop /* 801F7348-801F763C 1F1C88 02F4+00 1/0 0/0 0/0 .text __dt__13dMenu_Skill_cFv */ #pragma push @@ -459,7 +378,7 @@ asm void dMenu_Skill_c::_draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Skill_c::isSync() { +asm bool dMenu_Skill_c::isSync() { nofralloc #include "asm/d/menu/d_menu_skill/isSync__13dMenu_Skill_cFv.s" } @@ -818,18 +737,22 @@ asm void dMenu_Skill_c::screenSetLetter() { /* ############################################################################################## */ /* 80397D30-80397D58 024390 0028+00 1/1 0/0 0/0 .rodata text_a_tag$4365 */ -SECTION_RODATA static u8 const text_a_tag[40] = { - 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, - 0x5F, 0x32, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x61, 0x74, 0x65, 0x78, - 0x74, 0x31, 0x5F, 0x34, 0x61, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35, +SECTION_RODATA static u64 const text_a_tag[5] = { + 'atext1_1', + 'atext1_2', + 'atext1_3', + 'atext1_4', + 'atext1_5', }; COMPILER_STRIP_GATE(0x80397D30, &text_a_tag); /* 80397D58-80397D80 0243B8 0028+00 1/1 0/0 0/0 .rodata text_b_tag$4366 */ -SECTION_RODATA static u8 const text_b_tag[40] = { - 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x31, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, - 0x5F, 0x32, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x33, 0x62, 0x74, 0x65, 0x78, - 0x74, 0x31, 0x5F, 0x34, 0x62, 0x74, 0x65, 0x78, 0x74, 0x31, 0x5F, 0x35, +SECTION_RODATA static u64 const text_b_tag[5] = { + 'btext1_1', + 'btext1_2', + 'btext1_3', + 'btext1_4', + 'btext1_5', }; COMPILER_STRIP_GATE(0x80397D58, &text_b_tag); @@ -952,7 +875,8 @@ asm void dMenu_Skill_c::setHIO(bool param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Skill_c::draw() { +// asm void dMenu_Skill_c::draw() { +extern "C" asm void draw__13dMenu_Skill_cFv() { nofralloc #include "asm/d/menu/d_menu_skill/draw__13dMenu_Skill_cFv.s" } diff --git a/src/d/menu/d_menu_window.cpp b/src/d/menu/d_menu_window.cpp index 0a94f88341c..f9ee19e1edd 100644 --- a/src/d/menu/d_menu_window.cpp +++ b/src/d/menu/d_menu_window.cpp @@ -4,139 +4,25 @@ // #include "d/menu/d_menu_window.h" +#include "d/com/d_com_inf_game.h" +#include "d/menu/d_menu_collect.h" +#include "d/menu/d_menu_ring.h" +#include "d/menu/d_menu_skill.h" +#include "d/menu/d_menu_save.h" +#include "d/menu/d_menu_letter.h" +#include "d/menu/d_menu_fmap.h" +#include "d/menu/d_menu_dmap.h" +#include "d/menu/d_menu_fishing.h" +#include "d/menu/d_menu_insect.h" +#include "d/menu/d_menu_option.h" +#include "d/menu/d_menu_window_HIO.h" +#include "d/meter/d_meter_HIO.h" +#include "d/msg/d_msg_object.h" +#include "f_op/f_op_msg_mng.h" +#include "Z2AudioLib/Z2AudioMgr.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct mDoGph_gInf_c { - static u8 mFader[4]; - static u8 mFrameBufferTimg[4]; - static u8 mFrameBufferTex[4]; -}; - -struct dMenu_save_c { - /* 801EF6A0 */ dMenu_save_c(); - /* 801EF7AC */ void _create(); - /* 801F0938 */ void initialize(); - /* 801F09AC */ void _open(); - /* 801F0B28 */ void _delete(); - /* 801F1048 */ void _move(); - /* 801F69FC */ void _draw2(); -}; - -struct STControl { - /* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16); - /* 80032088 */ void setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16); - /* 8003219C */ void checkTrigger(); -}; - -struct CSTControl {}; - -struct dMenu_Skill_c { - /* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801F7718 */ void _move(); - /* 801F7950 */ void isSync(); - /* 801F7A40 */ void _open(); -}; - -struct dMenu_Ring_c { - /* 801E9118 */ dMenu_Ring_c(JKRExpHeap*, STControl*, CSTControl*, u8); - /* 801EAB7C */ void _create(); - /* 801EABE8 */ void _delete(); - /* 801EABEC */ void _move(); - /* 801EB0A4 */ void isOpen(); - /* 801EB2B4 */ void isMoveEnd(); - /* 801EB3CC */ void isClose(); -}; - -struct dMenu_Option_c { - /* 801E1F10 */ dMenu_Option_c(JKRArchive*, STControl*); - /* 801E2C1C */ void _delete(); - /* 801E3408 */ void _move(); - /* 801E3A7C */ void isSync(); - /* 801E3B98 */ void _open(); -}; - -struct dMenu_Letter_c { - /* 801DCDC0 */ dMenu_Letter_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801DD474 */ void _move(); - /* 801DD934 */ void isSync(); - /* 801DDA74 */ void _open(); -}; - -struct dMenu_Insect_c { - /* 801D8114 */ dMenu_Insect_c(JKRExpHeap*, STControl*, CSTControl*, u8); - /* 801D86C8 */ void _move(); - /* 801D88EC */ void isSync(); - /* 801D894C */ void _open(); -}; - -struct dMenu_Fmap_c { - /* 801C66E4 */ dMenu_Fmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8, u8, f32, f32, u8); - /* 801C74A4 */ void _delete(); - /* 801C74A8 */ void _move(); - /* 801C7650 */ void _draw(); - /* 801C77F0 */ void getNextStatus(u8*); - /* 801C7AFC */ void isSync(); - /* 801CADC4 */ void isOpen(); - /* 801CB038 */ void isClose(); - /* 801CB1DC */ void getProcess(); - /* 801CB200 */ void getRegionCursor(); - /* 801CB230 */ void getStageCursor(); - /* 801CB260 */ void getStageTransX(); - /* 801CB290 */ void getStageTransZ(); -}; - -struct dMenu_Fishing_c { - /* 801C4D54 */ dMenu_Fishing_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801C50B4 */ void _move(); - /* 801C5204 */ void isSync(); - /* 801C52E4 */ void _open(); -}; - -struct dMenu_Dmap_c { - /* 801BB498 */ dMenu_Dmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8); - /* 801BDDA4 */ void _move(); - /* 801BE328 */ void isOpen(); - /* 801BE670 */ void isClose(); - /* 801BE7E0 */ void _draw(); - /* 801BF334 */ void getNextStatus(); - /* 801BF410 */ void isSync(); -}; - -struct dMenu_Collect_c { - /* 801B78C0 */ dMenu_Collect_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801B7A0C */ void _create(); - /* 801B7A44 */ void _delete(); - /* 801B7A7C */ void _move(); - /* 801B7AC0 */ void draw(); -}; - -struct dMenu_Collect2D_c { - /* 801B5F84 */ void isKeyCheck(); - /* 801B5FAC */ bool isOutCheck(); -}; - -struct dDlst_MENU_CAPTURE_c { - /* 801FDFCC */ void draw(); - /* 801FE2E8 */ ~dDlst_MENU_CAPTURE_c(); -}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JFWDisplay { - static u8 sManager[4]; -}; - // // Forward References: // @@ -377,11 +263,7 @@ extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" extern void* __vt__10CSTControl[4]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_mwHIO[304]; -extern "C" extern u8 g_mwDHIO[520]; -extern "C" extern u8 g_fmapHIO[1188]; extern "C" extern u8 g_clearColor[4]; -extern "C" extern u32 g_blackColor; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4]; extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4]; @@ -393,6 +275,10 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // +inline BOOL dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); +} + BOOL dMw_UP_TRIGGER() { return (bool)mDoCPd_c::getTrigUp(mDoCPd_c::PAD_0); } @@ -421,16 +307,16 @@ bool dMw_A_TRIGGER() { return mDoCPd_c::getTrigA(mDoCPd_c::PAD_0); } -bool dMw_B_TRIGGER() { - return mDoCPd_c::getTrigB(mDoCPd_c::PAD_0); +BOOL dMw_B_TRIGGER() { + return (bool)mDoCPd_c::getTrigB(mDoCPd_c::PAD_0); } bool dMw_Z_TRIGGER() { return mDoCPd_c::getTrigZ(mDoCPd_c::PAD_0); } -bool dMw_START_TRIGGER() { - return mDoCPd_c::getTrigStart(mDoCPd_c::PAD_0); +BOOL dMw_START_TRIGGER() { + return (bool)mDoCPd_c::getTrigStart(mDoCPd_c::PAD_0); } void dMw_onPauseWindow() { @@ -1242,51 +1128,37 @@ SECTION_DATA static u8 move_proc[420] = { 0x00, 0x00, 0x00, 0x00, }; -/* 803BEF94-803BF014 -00001 0080+00 1/1 0/0 0/0 .data @4360 */ -SECTION_DATA static void* lit_4360[32] = { - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0x94), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0x60), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0x84), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0x74), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xA0), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)key_wait_init__5dMw_cFUc) + 0xB0), -}; - /* 801FA13C-801FA220 1F4A7C 00E4+00 2/0 0/0 0/0 .text key_wait_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::key_wait_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/key_wait_init__5dMw_cFUc.s" +void dMw_c::key_wait_init(u8 menu_status) { + dMeter2Info_setWindowStatus(0); + dMw_capture_delete(); + + switch (menu_status) { + case COLLECT_CLOSE: + dMw_fade_in(); + dMw_collect_delete(true); + break; + case DMAP_CLOSE: + dMw_dmap_delete(true); + break; + case FMAP_CLOSE: + dMw_fmap_delete(true); + break; + case RING_CLOSE: + dMw_ring_delete(); + break; + case SAVE_CLOSE: + dMw_fade_in(); + dMw_save_delete(); + break; + case INSECT_AGITHA_CLOSE: + dMw_fade_in(); + dMw_insect_delete(); + break; + } + mpHeap->freeAll(); + dComIfGp_offHeapLockFlag(0); } -#pragma pop void dMw_c::ring_open_init(u8 param_0) { dMeter2Info_setWindowStatus(2); @@ -1309,83 +1181,88 @@ SECTION_SDATA2 static u8 lit_4152[4] = { 0x00, }; -/* 804544C4-804544C8 002AC4 0004+00 10/10 0/0 0/0 .sdata2 @4386 */ -SECTION_SDATA2 static f32 lit_4386 = 1.0f; - -/* 804544C8-804544CC 002AC8 0004+00 10/10 0/0 0/0 .sdata2 @4387 */ -SECTION_SDATA2 static f32 lit_4387 = -1.0f; - /* 801FA244-801FA2D0 1F4B84 008C+00 1/0 0/0 0/0 .text collect_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_open_init__5dMw_cFUc.s" +void dMw_c::collect_open_init(u8 param_0) { + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMw_fade_out(); + dMw_capture_create(); + field_0x153 = 0; } -#pragma pop - -/* ############################################################################################## */ -/* 803BF014-803BF080 -00001 006C+00 1/1 0/0 0/0 .data @4418 */ -SECTION_DATA static void* lit_4418[27] = { - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x3C), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x54), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x88), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0xBC), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0xF0), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x124), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x188), - (void*)(((char*)collect_move_init__5dMw_cFUc) + 0x158), -}; /* 801FA2D0-801FA46C 1F4C10 019C+00 2/0 0/0 0/0 .text collect_move_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_move_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_move_init__5dMw_cFUc.s" +void dMw_c::collect_move_init(u8 menu_status) { + switch (menu_status) { + case COLLECT_OPEN: + dMw_fade_in(); + dComIfGp_setHeapLockFlag(1); + dMw_collect_create(); + break; + case SAVE_CLOSE: + dMw_fade_in(); + dMw_save_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + case OPTIONS_CLOSE: + dMw_fade_in(); + dMw_option_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + case LETTER_CLOSE: + dMw_fade_in(); + dMw_letter_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + case FISHING_CLOSE: + dMw_fade_in(); + dMw_fishing_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + case SKILL_CLOSE: + dMw_fade_in(); + dMw_skill_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + case INSECT_CLOSE: + dMw_fade_in(); + dMw_insect_delete(); + field_0x144 = 3; + dMeter2Info_setWindowStatus(3); + dMw_collect_create(); + break; + } } -#pragma pop /* 801FA46C-801FA538 1F4DAC 00CC+00 1/0 0/0 0/0 .text collect_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_close_init__5dMw_cFUc.s" +void dMw_c::collect_close_init(u8 param_0) { + if (mpMenuCollect->getSubWindowOpenCheck() != 1 && mpMenuCollect->getSubWindowOpenCheck() != 2) { + if (mpMenuCollect->getSubWindowOpenCheck() == 3 || mpMenuCollect->getSubWindowOpenCheck() == 4 || + mpMenuCollect->getSubWindowOpenCheck() == 5 || mpMenuCollect->getSubWindowOpenCheck() == 6) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibrationM(); + } + } + dMw_fade_out(); } -#pragma pop /* 801FA538-801FA55C 1F4E78 0024+00 1/0 0/0 0/0 .text fmap_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::fmap_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/fmap_open_init__5dMw_cFUc.s" +void dMw_c::fmap_open_init(u8 param_0) { + dMeter2Info_setWindowStatus(4); + field_0x153 = 0; } -#pragma pop /* 801FA55C-801FA560 1F4E9C 0004+00 1/0 0/0 0/0 .text fmap_move_init__5dMw_cFUc */ void dMw_c::fmap_move_init(u8 param_0) { @@ -1398,14 +1275,10 @@ void dMw_c::fmap_close_init(u8 param_0) { } /* 801FA564-801FA588 1F4EA4 0024+00 1/0 0/0 0/0 .text dmap_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dmap_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dmap_open_init__5dMw_cFUc.s" +void dMw_c::dmap_open_init(u8 param_0) { + dMeter2Info_setWindowStatus(5); + field_0x153 = 0; } -#pragma pop /* 801FA588-801FA58C 1F4EC8 0004+00 1/0 0/0 0/0 .text dmap_move_init__5dMw_cFUc */ void dMw_c::dmap_move_init(u8 param_0) { @@ -1419,14 +1292,12 @@ void dMw_c::dmap_close_init(u8 param_0) { /* 801FA590-801FA5E4 1F4ED0 0054+00 1/0 0/0 0/0 .text collect_save_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_save_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_save_open_init__5dMw_cFUc.s" +void dMw_c::collect_save_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + dMw_collect_delete(true); + dMw_save_create(); } -#pragma pop /* 801FA5E4-801FA5E8 1F4F24 0004+00 1/0 0/0 0/0 .text collect_save_move_init__5dMw_cFUc */ @@ -1436,25 +1307,18 @@ void dMw_c::collect_save_move_init(u8 param_0) { /* 801FA5E8-801FA608 1F4F28 0020+00 1/0 0/0 0/0 .text collect_save_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_save_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_save_close_init__5dMw_cFUc.s" +void dMw_c::collect_save_close_init(u8 param_0) { + dMw_fade_out(); } -#pragma pop /* 801FA608-801FA65C 1F4F48 0054+00 1/0 0/0 0/0 .text collect_option_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_option_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_option_open_init__5dMw_cFUc.s" +void dMw_c::collect_option_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + dMw_collect_delete(true); + dMw_option_create(); } -#pragma pop /* 801FA65C-801FA660 1F4F9C 0004+00 1/0 0/0 0/0 .text collect_option_move_init__5dMw_cFUc */ @@ -1463,25 +1327,19 @@ void dMw_c::collect_option_move_init(u8 param_0) { } /* 801FA660-801FA680 1F4FA0 0020+00 1/0 0/0 0/0 .text collect_option_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_option_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_option_close_init__5dMw_cFUc.s" +void dMw_c::collect_option_close_init(u8 param_0) { + dMw_fade_out(); } -#pragma pop /* 801FA680-801FA6DC 1F4FC0 005C+00 1/0 0/0 0/0 .text collect_letter_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_letter_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_letter_open_init__5dMw_cFUc.s" +void dMw_c::collect_letter_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + field_0x152 = 0; + dMw_collect_delete(true); + dMw_letter_create(); } -#pragma pop /* 801FA6DC-801FA6E0 1F501C 0004+00 1/0 0/0 0/0 .text collect_letter_move_init__5dMw_cFUc */ @@ -1490,24 +1348,20 @@ void dMw_c::collect_letter_move_init(u8 param_0) { } /* 801FA6E0-801FA738 1F5020 0058+00 1/0 0/0 0/0 .text collect_letter_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_letter_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_letter_close_init__5dMw_cFUc.s" +void dMw_c::collect_letter_close_init(u8 param_0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMw_fade_out(); } -#pragma pop /* 801FA738-801FA794 1F5078 005C+00 1/0 0/0 0/0 .text collect_fishing_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_fishing_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_fishing_open_init__5dMw_cFUc.s" +void dMw_c::collect_fishing_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + field_0x152 = 0; + dMw_collect_delete(true); + dMw_fishing_create(); } -#pragma pop /* 801FA794-801FA798 1F50D4 0004+00 1/0 0/0 0/0 .text collect_fishing_move_init__5dMw_cFUc */ void dMw_c::collect_fishing_move_init(u8 param_0) { @@ -1515,25 +1369,21 @@ void dMw_c::collect_fishing_move_init(u8 param_0) { } /* 801FA798-801FA7F0 1F50D8 0058+00 1/0 0/0 0/0 .text collect_fishing_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_fishing_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_fishing_close_init__5dMw_cFUc.s" +void dMw_c::collect_fishing_close_init(u8 param_0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMw_fade_out(); } -#pragma pop /* 801FA7F0-801FA84C 1F5130 005C+00 1/0 0/0 0/0 .text collect_skill_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_skill_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_skill_open_init__5dMw_cFUc.s" +void dMw_c::collect_skill_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + field_0x152 = 0; + dMw_collect_delete(true); + dMw_skill_create(); } -#pragma pop /* 801FA84C-801FA850 1F518C 0004+00 1/0 0/0 0/0 .text collect_skill_move_init__5dMw_cFUc */ @@ -1543,25 +1393,21 @@ void dMw_c::collect_skill_move_init(u8 param_0) { /* 801FA850-801FA8A8 1F5190 0058+00 1/0 0/0 0/0 .text collect_skill_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_skill_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_skill_close_init__5dMw_cFUc.s" +void dMw_c::collect_skill_close_init(u8 param_0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMw_fade_out(); } -#pragma pop /* 801FA8A8-801FA908 1F51E8 0060+00 1/0 0/0 0/0 .text collect_insect_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_insect_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_insect_open_init__5dMw_cFUc.s" +void dMw_c::collect_insect_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + field_0x152 = 0; + dMw_collect_delete(true); + dMw_insect_create(0); } -#pragma pop /* 801FA908-801FA90C 1F5248 0004+00 1/0 0/0 0/0 .text collect_insect_move_init__5dMw_cFUc */ @@ -1570,24 +1416,20 @@ void dMw_c::collect_insect_move_init(u8 param_0) { } /* 801FA90C-801FA964 1F524C 0058+00 1/0 0/0 0/0 .text collect_insect_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_insect_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/collect_insect_close_init__5dMw_cFUc.s" +void dMw_c::collect_insect_close_init(u8 param_0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMw_fade_out(); } -#pragma pop /* 801FA964-801FA9E8 1F52A4 0084+00 1/0 0/0 0/0 .text insect_open_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_open_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/insect_open_init__5dMw_cFUc.s" +void dMw_c::insect_open_init(u8 param_0) { + field_0x144 = 10; + dMeter2Info_setWindowStatus(10); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMw_fade_out(); + dMw_capture_create(); } -#pragma pop /* 801FA9E8-801FA9EC 1F5328 0004+00 1/0 0/0 0/0 .text insect_open2_init__5dMw_cFUc */ void dMw_c::insect_open2_init(u8 param_0) { @@ -1600,14 +1442,11 @@ void dMw_c::insect_move_init(u8 param_0) { } /* 801FA9F0-801FAA48 1F5330 0058+00 1/0 0/0 0/0 .text insect_close_init__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_close_init(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/insect_close_init__5dMw_cFUc.s" +void dMw_c::insect_close_init(u8 param_0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMw_fade_out(); } -#pragma pop /* 801FAA48-801FAFDC 1F5388 0594+00 1/0 0/0 0/0 .text key_wait_proc__5dMw_cFv */ #pragma push @@ -1620,365 +1459,459 @@ asm void dMw_c::key_wait_proc() { #pragma pop /* 801FAFDC-801FB01C 1F591C 0040+00 1/0 0/0 0/0 .text ring_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::ring_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/ring_open_proc__5dMw_cFv.s" +void dMw_c::ring_open_proc() { + if (mpMenuRing->isOpen()) { + mMenuStatus = RING_MOVE; + } } -#pragma pop /* 801FB01C-801FB064 1F595C 0048+00 1/0 0/0 0/0 .text ring_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::ring_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/ring_move_proc__5dMw_cFv.s" +void dMw_c::ring_move_proc() { + mpMenuRing->_move(); + if (mpMenuRing->isMoveEnd()) { + mMenuStatus = RING_CLOSE; + } } -#pragma pop /* 801FB064-801FB0B8 1F59A4 0054+00 1/0 0/0 0/0 .text ring_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::ring_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/ring_close_proc__5dMw_cFv.s" +void dMw_c::ring_close_proc() { + if (mpMenuRing->isClose()) { + dMeter2Info_offMenuInForce(2); + mMenuStatus = NO_MENU; + } } -#pragma pop /* 801FB0B8-801FB110 1F59F8 0058+00 1/0 0/0 0/0 .text collect_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_open_proc__5dMw_cFv.s" +void dMw_c::collect_open_proc() { + if (field_0x153 == 0) { + field_0x153 = 1; + dMeter2Info_set2DVibrationM(); + } + + if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) { + mMenuStatus = COLLECT_MOVE; + } } -#pragma pop /* 801FB110-801FB1A0 1F5A50 0090+00 1/0 0/0 0/0 .text collect_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_move_proc__5dMw_cFv.s" +void dMw_c::collect_move_proc() { + if (mpMenuCollect->getSubWindowOpenCheck()) { + mMenuStatus = COLLECT_CLOSE; + } else { + if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) || mpMenuCollect->isOutCheck()) { + mMenuStatus = COLLECT_CLOSE; + } else { + mpMenuCollect->_move(); + } + } } -#pragma pop /* 801FB1A0-801FB240 1F5AE0 00A0+00 1/0 0/0 0/0 .text collect_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_close_proc__5dMw_cFv.s" +void dMw_c::collect_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + if (mpMenuCollect->getSubWindowOpenCheck() == 1) { + mMenuStatus = SAVE_OPEN; + return; + } + + if (mpMenuCollect->getSubWindowOpenCheck() == 2) { + mMenuStatus = OPTIONS_OPEN; + return; + } + + if (mpMenuCollect->getSubWindowOpenCheck() == 3) { + mMenuStatus = LETTER_OPEN; + return; + } + + if (mpMenuCollect->getSubWindowOpenCheck() == 4) { + mMenuStatus = FISHING_OPEN; + return; + } + + if (mpMenuCollect->getSubWindowOpenCheck() == 5) { + mMenuStatus = SKILL_OPEN; + return; + } + + if (mpMenuCollect->getSubWindowOpenCheck() == 6) { + mMenuStatus = INSECT_OPEN; + return; + } + mMenuStatus = NO_MENU; + } } -#pragma pop /* 801FB240-801FB298 1F5B80 0058+00 1/0 0/0 0/0 .text fmap_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::fmap_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/fmap_open_proc__5dMw_cFv.s" +void dMw_c::fmap_open_proc() { + if (field_0x153 == 0) { + field_0x153 = 1; + dMeter2Info_set2DVibrationM(); + } + + if (mpMenuFmap->isOpen()) { + mMenuStatus = FMAP_MOVE; + } } -#pragma pop /* 801FB298-801FB36C 1F5BD8 00D4+00 1/0 0/0 0/0 .text fmap_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::fmap_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/fmap_move_proc__5dMw_cFv.s" +void dMw_c::fmap_move_proc() { + mpMenuFmap->_move(); + + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + mMenuStatus = mpMenuFmap->getNextStatus(&field_0x14B); + + if (g_fmapHIO.field_0x2f9 != 0) { + mMenuStatus = FMAP_CLOSE; + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + + if (dMeter2Info_getMeterMapClass() != NULL) { + if (dMeter2Info_getMapStatus() == 1) { + dMeter2Info_getMeterMapClass()->setDispPosInsideFlg_SE_On(); + } else if (dMeter2Info_getMapStatus() == 0) { + dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On(); + } + } + } } -#pragma pop /* 801FB36C-801FB3AC 1F5CAC 0040+00 1/0 0/0 0/0 .text fmap_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::fmap_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/fmap_close_proc__5dMw_cFv.s" +void dMw_c::fmap_close_proc() { + if (mpMenuFmap->isClose()) { + mMenuStatus = NO_MENU; + } } -#pragma pop /* 801FB3AC-801FB404 1F5CEC 0058+00 1/0 0/0 0/0 .text dmap_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dmap_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/dmap_open_proc__5dMw_cFv.s" +void dMw_c::dmap_open_proc() { + if (field_0x153 == 0) { + field_0x153 = 1; + dMeter2Info_set2DVibrationM(); + } + + if (mpMenuDmap->isOpen()) { + mMenuStatus = DMAP_MOVE; + } } -#pragma pop /* 801FB404-801FB5DC 1F5D44 01D8+00 1/0 0/0 0/0 .text dmap_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dmap_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/dmap_move_proc__5dMw_cFv.s" +void dMw_c::dmap_move_proc() { + u8 nextStatus = mpMenuDmap->getNextStatus(); + if (nextStatus == 1) { + if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) { + dMeter2Info_setMapStatus(1); + dMeter2Info_getMeterMapClass()->setDispPosInsideFlg_SE_On(); + } else { + dMeter2Info_setMapStatus(0); + dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On(); + } + dMeter2Info_setMapKeyDirection(0x200); + mMenuStatus = DMAP_CLOSE; + mpMenuDmap->setInOutDir(3); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (nextStatus == 2) { + dMeter2Info_setMapStatus(0); + dMeter2Info_setMapKeyDirection(0x400); + mMenuStatus = DMAP_CLOSE; + dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On(); + mpMenuDmap->setInOutDir(1); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (nextStatus == 3) { + if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) { + dMeter2Info_setMapStatus(1); + } else { + dMeter2Info_setMapStatus(0); + } + + mMenuStatus = DMAP_CLOSE; + mpMenuDmap->setInOutDir(2); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + mpMenuDmap->_move(); + } } -#pragma pop /* 801FB5DC-801FB61C 1F5F1C 0040+00 1/0 0/0 0/0 .text dmap_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dmap_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/dmap_close_proc__5dMw_cFv.s" +void dMw_c::dmap_close_proc() { + if (mpMenuDmap->isClose()) { + mMenuStatus = NO_MENU; + } } -#pragma pop /* 801FB61C-801FB67C 1F5F5C 0060+00 1/0 0/0 0/0 .text collect_save_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_save_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_save_open_proc__5dMw_cFv.s" +void dMw_c::collect_save_open_proc() { + if (mpMenuSave->getSaveStatus() == 1 && mpMenuSave->_open()) { + dMw_fade_in(); + } + + if (mpMenuSave->getSaveStatus() == 2) { + mMenuStatus = SAVE_MOVE; + } } -#pragma pop /* 801FB67C-801FB6D8 1F5FBC 005C+00 1/0 0/0 0/0 .text collect_save_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_save_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_save_move_proc__5dMw_cFv.s" +void dMw_c::collect_save_move_proc() { + if (mpMenuSave->getSaveStatus() == 2) { + mpMenuSave->_move(); + } + + if (mpMenuSave->getSaveStatus() == 3 || mpMenuSave->getSaveStatus() == 4) { + mMenuStatus = SAVE_CLOSE; + } } -#pragma pop /* 801FB6D8-801FB73C 1F6018 0064+00 1/0 0/0 0/0 .text collect_save_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_save_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_save_close_proc__5dMw_cFv.s" +void dMw_c::collect_save_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + mpMenuSave->_move(); + + if (mpMenuSave->getSaveStatus() == 3) { + mMenuStatus = COLLECT_MOVE; + } else { + mMenuStatus = NO_MENU; + } + } } -#pragma pop /* 801FB73C-801FB7AC 1F607C 0070+00 1/0 0/0 0/0 .text collect_option_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_option_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_option_open_proc__5dMw_cFv.s" +void dMw_c::collect_option_open_proc() { + if (mpMenuOption->getQuitStatus() == 1 && mpMenuOption->_open()) { + dMw_fade_in(); + } + + if (mpMenuOption->getQuitStatus() == 2 && mDoGph_gInf_c::getFader()->getStatus() == 1) { + mMenuStatus = OPTIONS_MOVE; + } } -#pragma pop /* 801FB7AC-801FB800 1F60EC 0054+00 1/0 0/0 0/0 .text collect_option_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_option_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_option_move_proc__5dMw_cFv.s" +void dMw_c::collect_option_move_proc() { + if (mpMenuOption->getQuitStatus() == 2) { + mpMenuOption->_move(); + } + + if (mpMenuOption->getQuitStatus() == 3) { + mMenuStatus = OPTIONS_CLOSE; + } } -#pragma pop /* 801FB800-801FB81C 1F6140 001C+00 1/0 0/0 0/0 .text collect_option_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_option_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_option_close_proc__5dMw_cFv.s" +void dMw_c::collect_option_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != 0) { + return; + } + mMenuStatus = COLLECT_MOVE; } -#pragma pop /* 801FB81C-801FB8AC 1F615C 0090+00 1/0 0/0 0/0 .text collect_letter_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_letter_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_letter_open_proc__5dMw_cFv.s" +void dMw_c::collect_letter_open_proc() { + if (mpMenuLetter->getStatus() == 1) { + mpMenuLetter->_open(); + + if (field_0x152 == 0 && mpMenuLetter->isSync()) { + dMw_fade_in(); + field_0x152 = 1; + } + } + + if (mpMenuLetter->getStatus() == 2 && field_0x152 == 1) { + mMenuStatus = LETTER_MOVE; + field_0x152 = 0; + } } -#pragma pop /* 801FB8AC-801FB900 1F61EC 0054+00 1/0 0/0 0/0 .text collect_letter_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_letter_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_letter_move_proc__5dMw_cFv.s" +void dMw_c::collect_letter_move_proc() { + if (mpMenuLetter->getStatus() == 2) { + mpMenuLetter->_move(); + } + + if (mpMenuLetter->getStatus() == 3) { + mMenuStatus = LETTER_CLOSE; + } } -#pragma pop /* 801FB900-801FB91C 1F6240 001C+00 1/0 0/0 0/0 .text collect_letter_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_letter_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_letter_close_proc__5dMw_cFv.s" +void dMw_c::collect_letter_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != JUTFader::UNKSTATUS_0) { + return; + } + mMenuStatus = COLLECT_MOVE; } -#pragma pop /* 801FB91C-801FB9AC 1F625C 0090+00 1/0 0/0 0/0 .text collect_fishing_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_fishing_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_fishing_open_proc__5dMw_cFv.s" +void dMw_c::collect_fishing_open_proc() { + if (mpMenuFishing->getStatus() == 1) { + mpMenuFishing->_open(); + + if (field_0x152 == 0 && mpMenuFishing->isSync()) { + dMw_fade_in(); + field_0x152 = 1; + } + } + + if (mpMenuFishing->getStatus() == 2 && field_0x152 == 1) { + mMenuStatus = FISHING_MOVE; + field_0x152 = 0; + } } -#pragma pop /* 801FB9AC-801FBA00 1F62EC 0054+00 1/0 0/0 0/0 .text collect_fishing_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_fishing_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_fishing_move_proc__5dMw_cFv.s" +void dMw_c::collect_fishing_move_proc() { + if (mpMenuFishing->getStatus() == 2) { + mpMenuFishing->_move(); + } + + if (mpMenuFishing->getStatus() == 3) { + mMenuStatus = FISHING_CLOSE; + } } -#pragma pop /* 801FBA00-801FBA1C 1F6340 001C+00 1/0 0/0 0/0 .text collect_fishing_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_fishing_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_fishing_close_proc__5dMw_cFv.s" +void dMw_c::collect_fishing_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != JUTFader::UNKSTATUS_0) { + return; + } + mMenuStatus = COLLECT_MOVE; } -#pragma pop /* 801FBA1C-801FBAAC 1F635C 0090+00 1/0 0/0 0/0 .text collect_skill_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_skill_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_skill_open_proc__5dMw_cFv.s" +void dMw_c::collect_skill_open_proc() { + if (mpMenuSkill->getStatus() == 1) { + mpMenuSkill->_open(); + if (field_0x152 == 0 && mpMenuSkill->isSync()) { + dMw_fade_in(); + field_0x152 = 1; + } + } + + if (mpMenuSkill->getStatus() == 2 && field_0x152 == 1) { + mMenuStatus = SKILL_MOVE; + field_0x152 = 0; + } } -#pragma pop /* 801FBAAC-801FBB00 1F63EC 0054+00 1/0 0/0 0/0 .text collect_skill_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_skill_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_skill_move_proc__5dMw_cFv.s" +void dMw_c::collect_skill_move_proc() { + if (mpMenuSkill->getStatus() == 2) { + mpMenuSkill->_move(); + } + + if (mpMenuSkill->getStatus() == 3) { + mMenuStatus = SKILL_CLOSE; + } } -#pragma pop /* 801FBB00-801FBB1C 1F6440 001C+00 1/0 0/0 0/0 .text collect_skill_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_skill_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_skill_close_proc__5dMw_cFv.s" +void dMw_c::collect_skill_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != JUTFader::UNKSTATUS_0) { + return; + } + mMenuStatus = COLLECT_MOVE; } -#pragma pop /* 801FBB1C-801FBBAC 1F645C 0090+00 1/0 0/0 0/0 .text collect_insect_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_insect_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_insect_open_proc__5dMw_cFv.s" +void dMw_c::collect_insect_open_proc() { + if (mpMenuInsect->getStatus() == 1) { + mpMenuInsect->_open(); + if (field_0x152 == 0 && mpMenuInsect->isSync()) { + dMw_fade_in(); + field_0x152 = 1; + } + } + + if (mpMenuInsect->getStatus() == 2 && field_0x152 == 1) { + mMenuStatus = INSECT_MOVE; + field_0x152 = 0; + } } -#pragma pop /* 801FBBAC-801FBC00 1F64EC 0054+00 1/0 0/0 0/0 .text collect_insect_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_insect_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_insect_move_proc__5dMw_cFv.s" +void dMw_c::collect_insect_move_proc() { + if (mpMenuInsect->getStatus() == 2) { + mpMenuInsect->_move(); + } + + if (mpMenuInsect->getStatus() == 3) { + mMenuStatus = INSECT_CLOSE; + } } -#pragma pop /* 801FBC00-801FBC1C 1F6540 001C+00 1/0 0/0 0/0 .text collect_insect_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::collect_insect_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/collect_insect_close_proc__5dMw_cFv.s" +void dMw_c::collect_insect_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != JUTFader::UNKSTATUS_0) { + return; + } + mMenuStatus = COLLECT_MOVE; } -#pragma pop /* 801FBC1C-801FBC78 1F655C 005C+00 1/0 0/0 0/0 .text insect_open_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/insect_open_proc__5dMw_cFv.s" +void dMw_c::insect_open_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) { + field_0x152 = 0; + dComIfGp_setHeapLockFlag(1); + dMw_insect_create(1); + mMenuStatus = INSECT_AGITHA_OPEN2; + } } -#pragma pop /* 801FBC78-801FBD08 1F65B8 0090+00 1/0 0/0 0/0 .text insect_open2_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_open2_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/insect_open2_proc__5dMw_cFv.s" +void dMw_c::insect_open2_proc() { + if (mpMenuInsect->getStatus() == 1) { + mpMenuInsect->_open(); + if (field_0x152 == 0 && mpMenuInsect->isSync()) { + dMw_fade_in(); + field_0x152 = 1; + } + } + + if (mpMenuInsect->getStatus() == 2 && field_0x152 == 1) { + mMenuStatus = INSECT_AGITHA_MOVE; + field_0x152 = 0; + } } -#pragma pop /* 801FBD08-801FBD64 1F6648 005C+00 1/0 0/0 0/0 .text insect_move_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/insect_move_proc__5dMw_cFv.s" +void dMw_c::insect_move_proc() { + if (mpMenuInsect != NULL) { + if (mpMenuInsect->getStatus() == 2) { + mpMenuInsect->_move(); + } + + if (mpMenuInsect->getStatus() == 3) { + mMenuStatus = INSECT_AGITHA_CLOSE; + } + } } -#pragma pop /* 801FBD64-801FBD80 1F66A4 001C+00 1/0 0/0 0/0 .text insect_close_proc__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::insect_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_window/insect_close_proc__5dMw_cFv.s" +void dMw_c::insect_close_proc() { + if (mDoGph_gInf_c::getFader()->getStatus() != JUTFader::UNKSTATUS_0) { + return; + } + mMenuStatus = NO_MENU; } -#pragma pop /* ############################################################################################## */ /* 803BF080-803BF094 -00001 0014+00 1/0 0/0 0/0 .data l_dMw_Method */ -SECTION_DATA static void* l_dMw_Method[5] = { - (void*)dMw_Create__FP9msg_class, (void*)dMw_Delete__FP5dMw_c, (void*)dMw_Execute__FP5dMw_c, - (void*)dMw_IsDelete__FP5dMw_c, (void*)dMw_Draw__FP5dMw_c, +static dMw_Method l_dMw_Method[5] = { + (dMw_Method)dMw_Create, dMw_Delete, dMw_Execute, dMw_IsDelete, dMw_Draw, }; /* 803BF094-803BF0D4 -00001 0028+18 0/0 0/0 1/0 .data g_profile_MENUWINDOW */ @@ -2013,276 +1946,425 @@ SECTION_DATA extern void* __vt__20dDlst_MENU_CAPTURE_c[4 + 1 /* padding */] = { }; /* 801FBD80-801FBE14 1F66C0 0094+00 2/2 0/0 0/0 .text dMw_capture_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_capture_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_capture_create__5dMw_cFv.s" +void dMw_c::dMw_capture_create() { + if (!dComIfGp_isPauseFlag() && mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + mpCapture->setCaptureFlag(); + } } -#pragma pop /* 801FBE14-801FBE94 1F6754 0080+00 2/2 0/0 0/0 .text dMw_capture_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_capture_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_capture_delete__5dMw_cFv.s" +void dMw_c::dMw_capture_delete() { + if (dComIfGp_isPauseFlag()) { + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + dComIfGp_offPauseFlag(); + field_0x151 = 2; + } } -#pragma pop /* 801FBE94-801FBF60 1F67D4 00CC+00 1/1 0/0 0/0 .text dMw_ring_create__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_ring_create(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_ring_create__5dMw_cFUc.s" +void dMw_c::dMw_ring_create(u8 param_0) { + markMemSize(); + dComIfGp_setHeapLockFlag(1); + + mpMenuRing = new dMenu_Ring_c(mpHeap, mpStick, mpCStick, param_0); + mpMenuRing->_create(); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } + + mpCapture->setCaptureFlag(); } -#pragma pop /* 801FBF60-801FBFF8 1F68A0 0098+00 2/2 0/0 0/0 .text dMw_ring_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_ring_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_ring_delete__5dMw_cFv.s" +bool dMw_c::dMw_ring_delete() { + if (mpMenuRing != NULL) { + mpMenuRing->_delete(); + delete mpMenuRing; + mpMenuRing = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FBFF8-801FC090 1F6938 0098+00 1/1 0/0 0/0 .text dMw_collect_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_collect_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_collect_create__5dMw_cFv.s" +void dMw_c::dMw_collect_create() { + markMemSize(); + + mpMenuCollect = new dMenu_Collect_c(mpHeap, mpStick, mpCStick); + mpMenuCollect->_create(); + + if (mDoCPd_c::getHoldLockL(mDoCPd_c::PAD_0)) { + dMw_onButtonBit(1); + } + else if (mDoCPd_c::getHoldLockR(mDoCPd_c::PAD_0)) { + dMw_onButtonBit(2); + } } -#pragma pop /* 801FC090-801FC0FC 1F69D0 006C+00 8/8 0/0 0/0 .text dMw_collect_delete__5dMw_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_collect_delete(bool param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_collect_delete__5dMw_cFb.s" +bool dMw_c::dMw_collect_delete(bool param_0) { + if (mpMenuCollect != NULL) { + mpMenuCollect->_delete(); + delete mpMenuCollect; + mpMenuCollect = NULL; + } + checkMemSize(); + return true; } -#pragma pop /* 801FC0FC-801FC264 1F6A3C 0168+00 1/1 0/0 0/0 .text dMw_fmap_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_fmap_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_fmap_create__5dMw_cFv.s" +void dMw_c::dMw_fmap_create() { + markMemSize(); + dComIfGp_setHeapLockFlag(2); + + u8 tmp = 0; + if (dMeter2Info_getMapKeyDirection() == 0x400 || + dMeter2Info_getMapStatus() == 3 || + dMeter2Info_getMapStatus() == 4 || + dMeter2Info_getMapStatus() == 5 || + dMeter2Info_getMapStatus() == 7 || + dMeter2Info_getMapStatus() == 8 || + dMeter2Info_getMapStatus() == 9 || + dMeter2Info_getMapStatus() == 6) { + tmp = 1; + } else if (dMeter2Info_getMapKeyDirection() == 0x200) { + tmp = 3; + } else if (dMeter2Info_getMapKeyDirection() == 0x100) { + tmp = 2; + } else if (dMeter2Info_getMapKeyDirection() == 0x80) { + tmp = 3; + } + + mpMenuFmap = new dMenu_Fmap_c(mpHeap, mpStick, mpCStick, field_0x14E, field_0x14F, field_0x150, field_0x13c, field_0x140, tmp); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } + + mpCapture->setCaptureFlag(); + dMeter2Info_resetWarpStatus(); } -#pragma pop /* 801FC264-801FC350 1F6BA4 00EC+00 2/2 0/0 0/0 .text dMw_fmap_delete__5dMw_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_fmap_delete(bool param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_fmap_delete__5dMw_cFb.s" +bool dMw_c::dMw_fmap_delete(bool param_0) { + if (mpMenuFmap != NULL) { + if (!mpMenuFmap->isSync()) { + return false; + } + + field_0x14E = mpMenuFmap->getProcess(); + field_0x14F = mpMenuFmap->getRegionCursor(); + field_0x150 = mpMenuFmap->getStageCursor(); + field_0x13c = mpMenuFmap->getStageTransX(); + field_0x140 = mpMenuFmap->getStageTransZ(); + + mpMenuFmap->_delete(); + delete mpMenuFmap; + mpMenuFmap = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FC350-801FC46C 1F6C90 011C+00 1/1 0/0 0/0 .text dMw_dmap_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_dmap_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_dmap_create__5dMw_cFv.s" +void dMw_c::dMw_dmap_create() { + markMemSize(); + dComIfGp_setHeapLockFlag(3); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } + + mpCapture->setCaptureFlag(); + + u8 tmp = 0; + if (dMeter2Info_getMapKeyDirection() == 0x200) { + tmp = 3; + } else if (dMeter2Info_getMapKeyDirection() == 0x400) { + tmp = 1; + } else if (dMeter2Info_getMapKeyDirection() == 0x100) { + tmp = 2; + } else if (dMeter2Info_getMapKeyDirection() == 0x80) { + tmp = 0; + } + + mpMenuDmap = new dMenu_Dmap_c(mpHeap, mpStick, mpCStick, field_0x14C, tmp); + + dMeter2Info_resetWarpStatus(); } -#pragma pop /* 801FC46C-801FC520 1F6DAC 00B4+00 2/2 0/0 0/0 .text dMw_dmap_delete__5dMw_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_dmap_delete(bool param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_dmap_delete__5dMw_cFb.s" +bool dMw_c::dMw_dmap_delete(bool param_0) { + if (mpMenuDmap != NULL) { + if (!mpMenuDmap->isSync()) { + return false; + } + + field_0x14C = mpMenuDmap->getZoomState(); + + delete mpMenuDmap; + mpMenuDmap = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FC520-801FC5D0 1F6E60 00B0+00 1/1 0/0 0/0 .text dMw_save_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_save_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_save_create__5dMw_cFv.s" +void dMw_c::dMw_save_create() { + markMemSize(); + + mpMenuSave = new dMenu_save_c(); + mpMenuSave->setUseType(1); + mpMenuSave->_create(); + mpMenuSave->initialize(); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FC5D0-801FC668 1F6F10 0098+00 3/3 0/0 0/0 .text dMw_save_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_save_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_save_delete__5dMw_cFv.s" +bool dMw_c::dMw_save_delete() { + if (mpMenuSave != NULL) { + mpMenuSave->_delete(); + delete mpMenuSave; + mpMenuSave = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FC668-801FC70C 1F6FA8 00A4+00 1/1 0/0 0/0 .text dMw_option_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_option_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_option_create__5dMw_cFv.s" +void dMw_c::dMw_option_create() { + markMemSize(); + + mpMenuOption = new dMenu_Option_c(dComIfGp_getCollectResArchive(), mpStick); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FC70C-801FC7BC 1F704C 00B0+00 2/2 0/0 0/0 .text dMw_option_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_option_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_option_delete__5dMw_cFv.s" +bool dMw_c::dMw_option_delete() { + if (mpMenuOption != NULL) { + if (!mpMenuOption->isSync()) { + return false; + } + mpMenuOption->_delete(); + delete mpMenuOption; + mpMenuOption = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FC7BC-801FC85C 1F70FC 00A0+00 1/1 0/0 0/0 .text dMw_letter_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_letter_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_letter_create__5dMw_cFv.s" +void dMw_c::dMw_letter_create() { + markMemSize(); + + mpMenuLetter = new dMenu_Letter_c(mpHeap, mpStick, mpCStick); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FC85C-801FC904 1F719C 00A8+00 2/2 0/0 0/0 .text dMw_letter_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_letter_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_letter_delete__5dMw_cFv.s" +bool dMw_c::dMw_letter_delete() { + if (mpMenuLetter != NULL) { + if (!mpMenuLetter->isSync()) { + return false; + } + delete mpMenuLetter; + mpMenuLetter = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FC904-801FC9A4 1F7244 00A0+00 1/1 0/0 0/0 .text dMw_fishing_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_fishing_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_fishing_create__5dMw_cFv.s" +void dMw_c::dMw_fishing_create() { + markMemSize(); + + mpMenuFishing = new dMenu_Fishing_c(mpHeap, mpStick, mpCStick); + + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FC9A4-801FCA4C 1F72E4 00A8+00 2/2 0/0 0/0 .text dMw_fishing_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_fishing_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_fishing_delete__5dMw_cFv.s" +bool dMw_c::dMw_fishing_delete() { + if (mpMenuFishing != NULL) { + if (!mpMenuFishing->isSync()) { + return false; + } + delete mpMenuFishing; + mpMenuFishing = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FCA4C-801FCAEC 1F738C 00A0+00 1/1 0/0 0/0 .text dMw_skill_create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_skill_create() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_skill_create__5dMw_cFv.s" +void dMw_c::dMw_skill_create() { + markMemSize(); + + mpMenuSkill = new dMenu_Skill_c(mpHeap, mpStick, mpCStick); + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FCAEC-801FCB94 1F742C 00A8+00 2/2 0/0 0/0 .text dMw_skill_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_skill_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_skill_delete__5dMw_cFv.s" +bool dMw_c::dMw_skill_delete() { + if (mpMenuSkill != NULL) { + if (!mpMenuSkill->isSync()) { + return false; + } + delete mpMenuSkill; + mpMenuSkill = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FCB94-801FCC44 1F74D4 00B0+00 2/2 0/0 0/0 .text dMw_insect_create__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_insect_create(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_insect_create__5dMw_cFUc.s" +void dMw_c::dMw_insect_create(u8 param_0) { + markMemSize(); + + mpMenuInsect = new dMenu_Insect_c(mpHeap, mpStick, mpCStick, param_0); + if (mpCapture == NULL) { + mpCapture = new dDlst_MENU_CAPTURE_c(); + } } -#pragma pop /* 801FCC44-801FCCEC 1F7584 00A8+00 3/3 0/0 0/0 .text dMw_insect_delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_insect_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_insect_delete__5dMw_cFv.s" +bool dMw_c::dMw_insect_delete() { + if (mpMenuInsect != NULL) { + if (!mpMenuInsect->isSync()) { + return false; + } + delete mpMenuInsect; + mpMenuInsect = NULL; + } + + if (mpCapture != NULL) { + delete mpCapture; + mpCapture = NULL; + } + + checkMemSize(); + return true; } -#pragma pop /* 801FCCEC-801FCCFC 1F762C 0010+00 1/1 0/0 0/0 .text dMw_onButtonBit__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_onButtonBit(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_onButtonBit__5dMw_cFUc.s" +void dMw_c::dMw_onButtonBit(u8 flags) { + mButtons |= flags; } -#pragma pop /* 801FCCFC-801FCD0C 1F763C 0010+00 1/1 0/0 0/0 .text dMw_offButtonBit__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_offButtonBit(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_offButtonBit__5dMw_cFUc.s" +void dMw_c::dMw_offButtonBit(u8 flags) { + mButtons &= ~flags; } -#pragma pop /* 801FCD0C-801FCD24 1F764C 0018+00 1/1 0/0 0/0 .text dMw_isButtonBit__5dMw_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_isButtonBit(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_isButtonBit__5dMw_cFUc.s" +BOOL dMw_c::dMw_isButtonBit(u8 flags) { + return (mButtons & flags) ? 1 : 0; } -#pragma pop /* 801FCD24-801FCDD8 1F7664 00B4+00 1/1 0/0 0/0 .text dMw_isPush_S_Button__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::dMw_isPush_S_Button() { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_isPush_S_Button__5dMw_cFv.s" +BOOL dMw_c::dMw_isPush_S_Button() { + if (isFadeNowCheck()) { + if (daPy_getLinkPlayerActorClass()->getClothesChangeWaitTimer() == 0 && + daPy_getLinkPlayerActorClass()->getShieldChangeWaitTimer() == 0 && + daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0) { + if (dMw_START_TRIGGER() || dMw_B_TRIGGER()) { + return true; + } + } + } + return false; +} + +inline dEvt_control_c& dComIfGp_getEvent() { + return g_dComIfG_gameInfo.play.getEvent(); +} + +inline u16 dComIfGs_getLife() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife(); } -#pragma pop /* 801FCDD8-801FCE08 1F7718 0030+00 1/1 0/0 0/0 .text isPauseReady__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::isPauseReady() { - nofralloc -#include "asm/d/menu/d_menu_window/isPauseReady__5dMw_cFv.s" +bool dMw_c::isPauseReady() { + if (dComIfGp_getEvent().checkCompulsory() || dComIfGs_getLife() == 0) { + return false; + } + return true; } -#pragma pop /* 801FCE08-801FCE78 1F7748 0070+00 10/10 3/3 0/0 .text dMw_fade_out__5dMw_cFv */ +// instructions switched +#ifdef NONMATCHING +void dMw_c::dMw_fade_out() { + mDoGph_gInf_c::startFadeOut(13); + mDoGph_gInf_c::setFadeColor(static_cast(g_blackColor)); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2291,8 +2373,15 @@ asm void dMw_c::dMw_fade_out() { #include "asm/d/menu/d_menu_window/dMw_fade_out__5dMw_cFv.s" } #pragma pop +#endif /* 801FCE78-801FCEE8 1F77B8 0070+00 9/9 4/4 0/0 .text dMw_fade_in__5dMw_cFv */ +#ifdef NONMATCHING +void dMw_c::dMw_fade_in() { + mDoGph_gInf_c::startFadeIn(13); + mDoGph_gInf_c::setFadeColor(static_cast(g_blackColor)); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2301,158 +2390,270 @@ asm void dMw_c::dMw_fade_in() { #include "asm/d/menu/d_menu_window/dMw_fade_in__5dMw_cFv.s" } #pragma pop - -/* ############################################################################################## */ -/* 804544CC-804544D0 002ACC 0004+00 1/1 0/0 0/0 .sdata2 @6000 */ -SECTION_SDATA2 static f32 lit_6000 = 4.0f / 5.0f; - -/* 804544D0-804544D4 002AD0 0004+00 1/1 0/0 0/0 .sdata2 @6001 */ -SECTION_SDATA2 static f32 lit_6001 = 3.0f / 20.0f; +#endif /* 801FCEE8-801FCF84 1F7828 009C+00 1/1 0/0 0/0 .text checkCStickTrigger__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::checkCStickTrigger() { - nofralloc -#include "asm/d/menu/d_menu_window/checkCStickTrigger__5dMw_cFv.s" +int dMw_c::checkCStickTrigger() { + field_0x14A = 0; + if (field_0x149 == 0) { + if (mpCStick->getValueStick() > 0.8f) { + field_0x149 = 1; + field_0x14A = 1; + return 1; + } + } else { + if (mpCStick->getValueStick() < 0.15f) { + field_0x149 = 0; + } + } + return 0; } -#pragma pop /* 801FCF84-801FD094 1F78C4 0110+00 1/1 0/0 0/0 .text isEventCheck__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::isEventCheck() { - nofralloc -#include "asm/d/menu/d_menu_window/isEventCheck__5dMw_cFv.s" +bool dMw_c::isEventCheck() { + if (field_0x151 != 0) { + return true; + } else { + if (dMeter2Info_getMapStatus() == 4 && field_0x148 > 0) { + field_0x148 = 0; + } + + if (dComIfGp_event_runCheck()) { + if (!dMsgObject_isTalkNowCheck() && + (dMeter2Info_getMapStatus() == 4 || + dMeter2Info_getMapStatus() == 5 || + dMeter2Info_getMapStatus() == 7 || + dMeter2Info_getMapStatus() == 8 || + dMeter2Info_getMapStatus() == 9 || + dMeter2Info_getMapStatus() == 6 || + dMeter2Info_getMapStatus() == 3 || + dMeter2Info_isMenuInForce(2) || dMeter2Info_getPauseStatus() == 8)) { + return false; + } + return true; + } + } + return field_0x148 > 0; } -#pragma pop /* 801FD094-801FD0D4 1F79D4 0040+00 10/10 0/0 0/0 .text markMemSize__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::markMemSize() { - nofralloc -#include "asm/d/menu/d_menu_window/markMemSize__5dMw_cFv.s" +void dMw_c::markMemSize() { + if (mMemSize == 0) { + mMemSize = mpHeap->getTotalFreeSize(); + } } -#pragma pop - -/* ############################################################################################## */ -/* 80397E38-80397E38 024498 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80397E38 = "memory free error!!\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80397E4D = "\0\0"; -#pragma pop /* 801FD0D4-801FD140 1F7A14 006C+00 10/10 0/0 0/0 .text checkMemSize__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::checkMemSize() { - nofralloc -#include "asm/d/menu/d_menu_window/checkMemSize__5dMw_cFv.s" +void dMw_c::checkMemSize() { + if (mMemSize > 0) { + s32 diff = mpHeap->getTotalFreeSize() - mMemSize; + if (diff < 0) { + diff *= -1; + } + if (diff > 0x20) { + OSReport_Error("memory free error!!\n"); + } + mMemSize = 0; + } } -#pragma pop - -/* ############################################################################################## */ -/* 804544D4-804544D8 002AD4 0004+00 1/1 0/0 0/0 .sdata2 @6086 */ -SECTION_SDATA2 static f32 lit_6086 = 9.0f / 10.0f; - -/* 804544D8-804544E0 002AD8 0004+04 1/1 0/0 0/0 .sdata2 @6087 */ -SECTION_SDATA2 static f32 lit_6087[1 + 1 /* padding */] = { - 0.5f, - /* padding */ - 0.0f, -}; /* 801FD140-801FD2D8 1F7A80 0198+00 1/1 0/0 0/0 .text _create__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::_create() { - nofralloc -#include "asm/d/menu/d_menu_window/_create__5dMw_cFv.s" +int dMw_c::_create() { + mpHeap = dComIfGp_getExpHeap2D(); + + mpStick = new STControl(5, 2, 1, 1, 0.9f, 0.5f, 0, 0x800); + mpStick->setFirstWaitTime(8); + + mpCStick = new CSTControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000); + mpCStick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000); + + mButtons = 0; + mMenuStatus = NO_MENU; + mShowFlag = 1; + field_0x148 = 0; + field_0x14C = 0; + field_0x14D = 0; + field_0x14E = 0; + field_0x14F = 0; + field_0x150 = 0; + field_0x151 = 0; + field_0x152 = 0; + f32 tmp = FLOAT_LABEL(lit_4152); + field_0x13c = tmp; + field_0x140 = tmp; + field_0x153 = 0; + onPauseWindow(); + field_0x149 = 0; + field_0x14A = 0; + field_0x14B = 0; + + mpCapture = NULL; + mpMenuRing = NULL; + mpMenuCollect = NULL; + mpMenuDmap = NULL; + mpMenuFmap = NULL; + mpMenuSave = NULL; + mpMenuOption = NULL; + mpMenuLetter = NULL; + mpMenuFishing = NULL; + mpMenuSkill = NULL; + mpMenuInsect = NULL; + mMemSize = 0; + field_0x144 = 3; + + dMeter2Info_setWindowStatus(0); + return 4; } -#pragma pop /* 801FD2D8-801FD450 1F7C18 0178+00 1/1 0/0 0/0 .text _execute__5dMw_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMw_c::_execute() { +asm int dMw_c::_execute() { nofralloc #include "asm/d/menu/d_menu_window/_execute__5dMw_cFv.s" } #pragma pop /* 801FD450-801FD67C 1F7D90 022C+00 1/1 0/0 0/0 .text _draw__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::_draw() { - nofralloc -#include "asm/d/menu/d_menu_window/_draw__5dMw_cFv.s" +int dMw_c::_draw() { + if (mpCapture != NULL && mpCapture->checkDraw() && mpCapture->getAlpha() != 0) { + if (mpCapture->getTopFlag() != 0) { + dComIfGd_set2DOpaTop(mpCapture); + } else { + dComIfGd_set2DOpa(mpCapture); + } + } + + if (dComIfGp_isPauseFlag() == 1) { + if (dMeter2Info_getWindowStatus() == 3) { + if (mpMenuCollect != NULL) { + mpMenuCollect->draw(); + } + } else if (dMeter2Info_getWindowStatus() == 4) { + if (mpMenuFmap != NULL) { + mpMenuFmap->_draw(); + } + } else if (dMeter2Info_getWindowStatus() == 5) { + if (mpMenuDmap != NULL) { + mpMenuDmap->_draw(); + } + } else if (dMeter2Info_getWindowStatus() == 10) { + if (mpMenuSave != NULL) { + mpMenuSave->_draw2(); + } + + if (mpMenuOption != NULL) { + dComIfGd_set2DOpa(mpMenuOption); + } + + if (mpMenuLetter != NULL) { + dComIfGd_set2DOpa(mpMenuLetter); + } + + if (mpMenuFishing != NULL) { + dComIfGd_set2DOpa(mpMenuFishing); + } + + if (mpMenuSkill != NULL) { + dComIfGd_set2DOpa(mpMenuSkill); + } + + if (mpMenuInsect != NULL) { + dComIfGd_set2DOpa(mpMenuInsect); + } + } else if (dMeter2Info_getWindowStatus() == 2 && mpMenuRing != NULL) { + mpMenuRing->drawFlag0(); + dComIfGd_set2DOpa(mpMenuRing); + dComIfGd_set2DOpa(mpMenuRing); + } + } + return 1; } -#pragma pop /* 801FD67C-801FD840 1F7FBC 01C4+00 1/1 0/0 0/0 .text _delete__5dMw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_c::_delete() { - nofralloc -#include "asm/d/menu/d_menu_window/_delete__5dMw_cFv.s" +int dMw_c::_delete() { + JKRHeap* heap = mDoExt_getCurrentHeap(); + + delete mpStick; + mpStick = NULL; + + delete mpCStick; + mpCStick = NULL; + + mDoExt_setCurrentHeap(mpHeap); + + if (!dMw_collect_delete(false)) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_dmap_delete(false)) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_fmap_delete(false)) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_save_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_option_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_letter_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_fishing_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_skill_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_insect_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else if (!dMw_ring_delete()) { + mDoExt_setCurrentHeap(heap); + return 0; + } else { + dMw_capture_delete(); + mDoExt_setCurrentHeap(heap); + mDoExt_removeMesgFont(); + return 1; + } } -#pragma pop /* 801FD840-801FD860 1F8180 0020+00 1/0 0/0 0/0 .text dMw_Draw__FP5dMw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMw_Draw(dMw_c* param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_Draw__FP5dMw_c.s" +static int dMw_Draw(dMw_c* p_menu) { + return p_menu->_draw(); } -#pragma pop /* 801FD860-801FD880 1F81A0 0020+00 1/0 0/0 0/0 .text dMw_Execute__FP5dMw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMw_Execute(dMw_c* param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_Execute__FP5dMw_c.s" +static int dMw_Execute(dMw_c* p_menu) { + return p_menu->_execute(); } -#pragma pop /* 801FD880-801FD888 1F81C0 0008+00 1/0 0/0 0/0 .text dMw_IsDelete__FP5dMw_c */ -static bool dMw_IsDelete(dMw_c* param_0) { - return true; +static int dMw_IsDelete(dMw_c* p_menu) { + return 1; } /* 801FD888-801FD8C0 1F81C8 0038+00 1/0 0/0 0/0 .text dMw_Delete__FP5dMw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMw_Delete(dMw_c* param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_Delete__FP5dMw_c.s" +static int dMw_Delete(dMw_c* p_menu) { + int isDelete = p_menu->_delete(); + if (isDelete) { + dMeter2Info_setMenuWindowClass(NULL); + } + return isDelete; } -#pragma pop /* 801FD8C0-801FD928 1F8200 0068+00 1/0 0/0 0/0 .text dMw_Create__FP9msg_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMw_Create(msg_class* param_0) { - nofralloc -#include "asm/d/menu/d_menu_window/dMw_Create__FP9msg_class.s" +static int dMw_Create(msg_class* p_menu) { + dMeter2Info_setMenuWindowClass(static_cast(p_menu)); + g_mwHIO.field_0x4 = -1; + g_mwDHIO.field_0x4 = -1; + dComIfGp_offHeapLockFlag(0); + fopMsgM_setStageLayer(p_menu); + return static_cast(p_menu)->_create(); } -#pragma pop /* 801FD928-801FDFCC 1F8268 06A4+00 0/0 1/0 0/0 .text __sinit_d_menu_window_cpp */ #pragma push diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index e3ede349922..cfb752c2b84 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -12,10 +12,6 @@ // Types: // -struct mDoGph_gInf_c { - /* 80007FD8 */ void fadeOut(f32, _GXColor&); -}; - struct dShopSystem_c { /* 801975F8 */ void isFlag(int); /* 8019A354 */ void setSoldOutFlag(); diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 8495a368deb..8f12cebe78c 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -23,39 +23,6 @@ struct mDoMch_render_c { static void* mRenderModeObj[1 + 1 /* padding */]; }; -struct _GXColor {}; - -struct mDoGph_gInf_c { - struct bloom_c { - /* 80009544 */ void create(); - /* 800095F8 */ void remove(); - /* 80009650 */ void draw(); - }; - - /* 80007E44 */ void create(); - /* 80007F90 */ void beginRender(); - /* 800080D0 */ void fadeOut(f32); - /* 80007FD8 */ void fadeOut(f32, _GXColor&); - /* 80008028 */ void fadeOut_f(f32, _GXColor&); - /* 800080A0 */ void onBlure(f32 const (*)[4]); - /* 80008078 */ void onBlure(); - /* 80008330 */ void calcFade(); - - static u8 mFrameBufferTexObj[32]; - static u8 mZbufferTexObj[32]; - static u8 m_bloom[20]; - static u8 mBlureMtx[48 + 4 /* padding */]; - static u8 mBackColor[4]; - static u8 mFadeColor[4]; - static u8 mFader[4]; - static u8 mFrameBufferTimg[4]; - static u8 mFrameBufferTex[4]; - static u8 mZbufferTimg[4]; - static u8 mZbufferTex[4]; - static f32 mFadeRate; - static f32 mFadeSpeed; -}; - struct daPy_py_c { /* 8000B1E4 */ s32 getAtnActorID() const; }; @@ -101,26 +68,6 @@ struct cXyz { static f32 Zero[3]; }; -struct _GXRenderModeObj {}; - -struct Vec {}; - -struct JUtility { - struct TColor {}; -}; - -struct JUTXfb { - struct EXfbNumber {}; - - static u8 sManager[4 + 4 /* padding */]; -}; - -struct JUTVideo { - /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); - - static u8 sManager[4]; -}; - struct JUTProcBar { static u8 sManager[4]; }; @@ -129,10 +76,6 @@ struct JUTGamePad { static u8 mPadStatus[48]; }; -struct JUTFader { - /* 802E5530 */ JUTFader(int, int, int, int, JUtility::TColor); -}; - struct JUTDbPrint { static u8 sDebugPrint[4 + 4 /* padding */]; }; @@ -143,31 +86,10 @@ struct JMath { struct JKRSolidHeap {}; -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE548 */ void free(void*); - - static u8 sCurrentHeap[4]; -}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; -}; - struct JFWSystem { static u8 systemConsole[4]; }; -struct JFWDisplay { - /* 802721DC */ void createManager(_GXRenderModeObj const*, JKRHeap*, JUTXfb::EXfbNumber, bool); - - static u8 sManager[4]; -}; - struct J3DSys { /* 803100BC */ void drawInit(); /* 8031073C */ void reinitGX(); @@ -278,72 +200,9 @@ extern "C" void setBuffer__8J2DPrintFUl(); extern "C" void drawInit__6J3DSysFv(); extern "C" void reinitGX__6J3DSysFv(); extern "C" void PPCSync(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void C_MTXLightPerspective(); -extern "C" void C_MTXLightOrtho(); -extern "C" void C_MTXPerspective(); -extern "C" void C_MTXOrtho(); -extern "C" void PSVECSquareDistance(); -extern "C" void VISetBlack(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXPixModeSync(); -extern "C" void GXBegin(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetCoPlanar(); -extern "C" void GXSetTexCopySrc(); -extern "C" void GXSetTexCopyDst(); -extern "C" void GXSetCopyFilter(); -extern "C" void GXCopyTex(); -extern "C" void GXInitLightSpot(); -extern "C" void GXInitLightDistAttn(); -extern "C" void GXInitLightPos(); -extern "C" void GXInitLightDir(); -extern "C" void GXInitLightColor(); -extern "C" void GXLoadLightObjImm(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXGetTexBufferSize(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); extern "C" void GXInvalidateTexAll(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetTevColorS10(); -extern "C" void GXSetTevKAlphaSel(); -extern "C" void GXSetTevSwapMode(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetZTexture(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetDither(); -extern "C" void GXProject(); -extern "C" void GXSetProjection(); -extern "C" void GXGetProjectionv(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXLoadTexMtxImm(); -extern "C" void GXSetViewport(); -extern "C" void GXGetViewportv(); -extern "C" void GXSetScissor(); -extern "C" void GXSetClipMode(); extern "C" void __cvt_fp2unsigned(); extern "C" void _savegpr_17(); extern "C" void _savegpr_21(); @@ -412,7 +271,7 @@ SECTION_SDATA u8 mDoGph_gInf_c::mFadeColor[4] = { }; /* 80450BC8-80450BCC 0000C8 0004+00 2/2 38/38 1/1 .sbss mFader__13mDoGph_gInf_c */ -u8 mDoGph_gInf_c::mFader[4]; +JUTFader* mDoGph_gInf_c::mFader; /* 80450BCC-80450BD0 0000CC 0004+00 3/3 8/8 1/1 .sbss mFrameBufferTimg__13mDoGph_gInf_c */