From 85c97022df04e351477f759fef3a9bd49710b5c8 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Tue, 31 Mar 2026 21:00:57 -0400 Subject: [PATCH] Implement inlines for d_menu_window --- include/d/d_com_inf_game.h | 51 +++++++++++++++++----------- include/d/d_menu_collect.h | 15 +++++---- include/d/d_menu_item.h | 29 ++++++++-------- src/d/d_com_inf_game.cpp | 6 ++-- src/d/d_menu_window.cpp | 68 +++++++++++++++++++------------------- 5 files changed, 92 insertions(+), 77 deletions(-) diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 6fa910484..2b44b7940 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -633,6 +633,9 @@ public: u8 getButtonMode() { return mButtonMode; } void setButtonMode(u8 mode) { mButtonMode = mode; } + u8 getButtonInfo(int idx) { return mButtonInfo[idx]; } + void setButtonInfo(int idx, u8 info) { mButtonInfo[idx] = info; } + char* getInputPassword() { return mInputPassword; } void setInputPassword(const char* password) { strcpy(mInputPassword, password); } @@ -768,8 +771,7 @@ public: /* 0x4940 */ u8 field_0x4940; /* 0x4941 */ u8 mDirection; /* 0x4942 */ u8 mButtonMode; - /* 0x4943 */ u8 field_0x4943; - /* 0x4944 */ u8 field_0x4944; + /* 0x4943 */ u8 mButtonInfo[2]; /* 0x4945 */ u8 mScopeType; /* 0x4946 */ u8 mOperateWind; /* 0x4947 */ bool mMetronome; @@ -3092,10 +3094,38 @@ inline void dComIfGp_setButtonActionMode(u8 mode) { g_dComIfG_gameInfo.play.setButtonMode(mode); } +inline u8 dComIfGp_getButtonInfo(int idx) { + return g_dComIfG_gameInfo.play.getButtonInfo(idx); +} + +inline void dComIfGp_setButtonInfo(int idx, u8 info) { + g_dComIfG_gameInfo.play.setButtonInfo(idx, info); +} + +inline char* dComIfGp_getInputPassword() { + return g_dComIfG_gameInfo.play.getInputPassword(); +} + inline void dComIfGp_setInputPassword(const char* password) { g_dComIfG_gameInfo.play.setInputPassword(password); } +inline u8 dComIfGp_InputPasswordOpenCheck() { + return g_dComIfG_gameInfo.play.nameOpenCheck(); +} + +inline void dComIfGp_InputPasswordOpenOn() { + g_dComIfG_gameInfo.play.nameOpenOn(); +} + +inline void dComIfGp_InputPasswordOpenChangeOff() { + g_dComIfG_gameInfo.play.nameOpenChangeOff(); +} + +inline void dComIfGp_InputPasswordOpenCancelOff() { + g_dComIfG_gameInfo.play.nameOpenCancelOff(); +} + inline u8 dComIfGp_getAdvanceDirection() { return g_dComIfG_gameInfo.play.getDirection(); } @@ -4187,21 +4217,4 @@ BOOL dComIfG_resetToOpening(scene_class* i_scene); int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName); -inline u8 dComIfGp_InputPasswordOpenCheck() { - return g_dComIfG_gameInfo.play.nameOpenCheck(); -} -inline void dComIfGp_InputPasswordOpenOn() { - g_dComIfG_gameInfo.play.nameOpenOn(); -} -inline void dComIfGp_InputPasswordOpenChangeOff() { - g_dComIfG_gameInfo.play.nameOpenChangeOff(); -} -inline void dComIfGp_InputPasswordOpenCancelOff() { - g_dComIfG_gameInfo.play.nameOpenCancelOff(); -} - -inline char* dComIfGp_getInputPassword() { - return g_dComIfG_gameInfo.play.getInputPassword(); -} - #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_menu_collect.h b/include/d/d_menu_collect.h index 4430a872a..960ffb0d0 100644 --- a/include/d/d_menu_collect.h +++ b/include/d/d_menu_collect.h @@ -17,9 +17,9 @@ public: virtual void draw() {} void alphaChange(fopMsgM_pane_class* pane, float alpha) { pane->mInitAlpha *= alpha; } - void getCollectMode() {} - void getNowItem() {} - void setNowItem(unsigned char) {} + u8 getCollectMode() { return mCollectMode; } + u8 getNowItem() { return mNowItem; } + void setNowItem(u8 val) { mNowItem = val; } void setArchive(JKRArchive* arc) { mpArc = arc; } void setOptionArchive(JKRArchive* arc) { mpOptArc = arc; } @@ -45,8 +45,8 @@ public: dummy[1] = dummy1; } - void setTimer(short timer) { mTimer = timer; } - void setTriggerInfo(unsigned char) {} + void setTimer(s16 timer) { mTimer = timer; } + void setTriggerInfo(u8 info) { mTriggerInfo = info; } void screenSet(); void initialize(); @@ -105,6 +105,7 @@ public: bool _open2(); bool _close2(); +private: /* 0x0000 */ // vtable /* 0x0004 */ J2DScreen* m004; /* 0x0008 */ fopMsgM_pane_class m008; @@ -192,8 +193,8 @@ public: /* 0x27C8 */ u8 m27C8[0x27E2 - 0x27C8]; /* 0x27E2 */ u16 mTimer; /* 0x27E4 */ u8 m27E4[0x27EC - 0x27E4]; - /* 0x27EC */ u8 m27EC; - /* 0x27ED */ u8 m27ED; + /* 0x27EC */ u8 mTriggerInfo; + /* 0x27ED */ u8 mNowItem; /* 0x27EE */ u8 mCollectMode; /* 0x27EF */ u8 m27EF[0x27F4 - 0x27EF]; }; // Size: 0x27F4 diff --git a/include/d/d_menu_item.h b/include/d/d_menu_item.h index afa19350c..1bdcd82e9 100644 --- a/include/d/d_menu_item.h +++ b/include/d/d_menu_item.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" #include "d/d_menu_base.h" +#include "m_Do/m_Do_hostIO.h" struct fopMsgM_pane_class; class JKRArchive; @@ -11,18 +12,18 @@ class J2DPane; class dMenu_Item_c : public dMenu_base_c { public: - void alphaChange(fopMsgM_pane_class*, float) {} + void alphaChange(fopMsgM_pane_class*, f32) {} virtual void draw() {} - void getItemMode() {} - void getNowItem() {} + u8 getItemMode() { return mItemMode; } + u8 getNowItem() { return mNowItem; } + void setNowItem(u8 val) { mNowItem = val; } void setArchive(JKRArchive* arc) { mpArc = arc; } void setFont(JUTFont* font, JUTFont* rfont) { mFont = font; mRFont = rfont; } - void setItemTexBuffer(int, void*) {} - void setNowItem(unsigned char) {} - void setSubItemTexBuffer(int, void*) {} + void setItemTexBuffer(int idx, void* buffer) { mItemTexBuffer[idx] = buffer; } + void setSubItemTexBuffer(int idx, void* buffer) { mSubItemTexBuffer[idx] = buffer; } void setTextArea(char* name0, char* name1, char* note0, char* note1, char* dummy0, char* dummy1) { name[0] = name0; name[1] = name1; @@ -31,8 +32,8 @@ public: dummy[0] = dummy0; dummy[1] = dummy1; } - void setTimer(short) {} - void setTriggerInfo(unsigned char) {} + void setTimer(s16 val) { mTimer = val; } + void setTriggerInfo(u8 info) { mTriggerInfo = info; } void initialize(); void screenSet(); @@ -85,7 +86,7 @@ public: bool _open2(); bool _close2(); -public: +private: /* 0x0004 */ u8 field_0x0004[0x2310 - 0x4]; /* 0x2310 */ JKRArchive* mpArc; /* 0x2314 */ JUTFont* mFont; @@ -96,19 +97,19 @@ public: /* 0x2328 */ JUtility::TColor color_0x2328; /* 0x232C */ JUtility::TColor color_0x232C; /* 0x2330 */ u8 field_0x2330[0x2334 - 0x2330]; - /* 0x2334 */ void* arr_0x2334[21]; + /* 0x2334 */ void* mItemTexBuffer[21]; /* 0x2388 */ u8 padding_0x2388[0x2394 - 0x2388]; - /* 0x2394 */ void* arr_0x2394[9]; + /* 0x2394 */ void* mSubItemTexBuffer[9]; /* 0x23B8 */ u8 padding_0x23B8[0x23E0 - 0x23B8]; /* 0x23E0 */ char* name[2]; /* 0x23E8 */ char* note[2]; /* 0x23F0 */ char* dummy[2]; - /* 0x23F8 */ u16 field_0x23F8; + /* 0x23F8 */ u16 mTimer; /* 0x23FA */ u8 field_0x23FA[0x23FE - 0x23FA]; /* 0x23FE */ u8 mItemMode; - /* 0x23FF */ u8 field_0x23FF; + /* 0x23FF */ u8 mNowItem; /* 0x2400 */ u8 padding_0x2400[0x2421 - 0x2400]; - /* 0x2421 */ u8 field_0x2421; + /* 0x2421 */ u8 mTriggerInfo; /* 0x2422 */ u8 field_0x2422; /* 0x2423 */ u8 field_0x2423; }; // Size: 0x2424 diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 825471e8a..127b17dd9 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -127,12 +127,12 @@ void dComIfG_play_c::itemInit() { mButtonMode = 0; if (dComIfGs_checkGetItem(dItem_TELESCOPE_e)) { - field_0x4943 = 0; + mButtonInfo[0] = 0; } else { - field_0x4943 = 0x15; + mButtonInfo[0] = 0x15; } - field_0x4944 = 7; + mButtonInfo[1] = 7; mScopeType = 0; mOperateWind = 0; mMetronome = false; diff --git a/src/d/d_menu_window.cpp b/src/d/d_menu_window.cpp index 39dfc4ee3..f8dda65a5 100644 --- a/src/d/d_menu_window.cpp +++ b/src/d/d_menu_window.cpp @@ -216,18 +216,18 @@ void dMs_item_create(sub_ms_screen_class* i_Ms) { JUT_ASSERT(1962, dMi_c != NULL); for (int i = 0; i < 21; i++) { - dMi_c->arr_0x2334[i] = i_Ms->buffer_p[i]; + dMi_c->setItemTexBuffer(i, i_Ms->buffer_p[i]); } for (int i = 0; i < 9; i++) { - dMi_c->arr_0x2394[i] = i_Ms->buffer_p[i + 24]; + dMi_c->setSubItemTexBuffer(i, i_Ms->buffer_p[i + 24]); } dMi_c->setArchive(i_Ms->arc); dMi_c->setFont(fonttype, rfonttype); dMi_c->setTextArea(i_Ms->name[0], i_Ms->name[1], i_Ms->note[0], i_Ms->note[1], i_Ms->dummy[0], i_Ms->dummy[1]); - dMi_c->field_0x23FF = g_dComIfG_gameInfo.play.field_0x4943; // FIXME + dMi_c->setNowItem(dComIfGp_getButtonInfo(0)); dMi_c->_create(); @@ -265,7 +265,7 @@ void dMs_item_delete(sub_ms_screen_class* i_Ms) { } if (dMi_c != NULL) { - g_dComIfG_gameInfo.play.field_0x4943 = dMi_c->field_0x23FF; // FIXME + dComIfGp_setButtonInfo(0, dMi_c->getNowItem()); dMi_c->_delete(); delete dMi_c; @@ -325,7 +325,7 @@ void dMs_collect_create(sub_ms_screen_class* i_Ms) { dMc_c->setTextArea(i_Ms->name[0], i_Ms->name[1], i_Ms->note[0], i_Ms->note[1], i_Ms->dummy[0], i_Ms->dummy[1]); - dMc_c->m27ED = g_dComIfG_gameInfo.play.field_0x4944; // FIXME + dMc_c->setNowItem(dComIfGp_getButtonInfo(1)); dMc_c->_create(); @@ -388,7 +388,7 @@ void dMs_collect_create2(sub_ms_screen_class* i_Ms) { dMc_c->setTextArea(i_Ms->name[0], i_Ms->name[1], i_Ms->note[0], i_Ms->note[1], i_Ms->dummy[0], i_Ms->dummy[1]); - dMc_c->m27ED = g_dComIfG_gameInfo.play.field_0x4944; // FIXME + dMc_c->setNowItem(dComIfGp_getButtonInfo(1)); dMc_c->_create3(); @@ -426,7 +426,7 @@ void dMs_collect_delete(sub_ms_screen_class* i_Ms) { } if (dMc_c != NULL) { - g_dComIfG_gameInfo.play.field_0x4944 = dMc_c->m27ED; // FIXME + dComIfGp_setButtonInfo(1, dMc_c->getNowItem()); dMc_c->_delete(); delete dMc_c; @@ -964,7 +964,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { mDoExt_setCurrentHeap(i_Ms->childHeap); dMs_collect_create(i_Ms); - dMc_c->m27EC = 2; + dMc_c->setTriggerInfo(2); if (daPy_getPlayerLinkActorClass()->getTactNormalWait()) { i_Ms->mMenuProc = MENU_STATE_COLLECT_OPEN_TACT; @@ -981,7 +981,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } else { mDoExt_setCurrentHeap(i_Ms->childHeap); dMs_item_create(i_Ms); - dMi_c->field_0x2421 = 2; + dMi_c->setTriggerInfo(2); i_Ms->mMenuProc = MENU_STATE_ITEM_OPEN; dMenu_setMenuStatusOld(dMenu_getMenuStatus()); dMenu_setMenuStatus(MENU_STATUS_ITEM); @@ -1077,7 +1077,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { dMs_collect_delete(i_Ms); dMs_childHeap_freeAll(i_Ms); dMs_item_create(i_Ms); - dMi_c->field_0x2421 = 1; + dMi_c->setTriggerInfo(1); } } else if (i_Ms->mMenuProc == MENU_STATE_COLLECT_TO_ITEM_RIGHT) { @@ -1090,7 +1090,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { dMs_collect_delete(i_Ms); dMs_childHeap_freeAll(i_Ms); dMs_item_create(i_Ms); - dMi_c->field_0x2421 = 2; + dMi_c->setTriggerInfo(2); } } else if (i_Ms->mMenuProc == MENU_STATE_ITEM_OPEN_FROM_COLLECT_LEFT || i_Ms->mMenuProc == MENU_STATE_ITEM_OPEN_FROM_COLLECT_RIGHT) { @@ -1110,7 +1110,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { dMs_item_delete(i_Ms); dMs_childHeap_freeAll(i_Ms); dMs_collect_create(i_Ms); - dMc_c->m27EC = 1; + dMc_c->setTriggerInfo(1); } } else if (i_Ms->mMenuProc == MENU_STATE_ITEM_TO_COLLECT_RIGHT) { @@ -1123,7 +1123,7 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { dMs_item_delete(i_Ms); dMs_childHeap_freeAll(i_Ms); dMs_collect_create(i_Ms); - dMc_c->m27EC = 2; + dMc_c->setTriggerInfo(2); } } else if (i_Ms->mMenuProc == MENU_STATE_COLLECT_OPEN_LEFT || i_Ms->mMenuProc == MENU_STATE_COLLECT_OPEN_RIGHT) { @@ -1135,30 +1135,30 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } else if (i_Ms->mMenuProc == MENU_STATE_ITEM_MOVE) { cloth_c->cloth_move(); - if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMi_c->noteCheck() && dMi_c->mItemMode == 0 && !dMeter_subWinFlag()) { + if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMi_c->noteCheck() && dMi_c->getItemMode() == 0 && !dMeter_subWinFlag()) { cloth_c->alpha_out(); mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_ITEM_CLOSE; - dMi_c->field_0x2421 = 0; - dMi_c->field_0x23F8 = 10; + dMi_c->setTriggerInfo(0); + dMi_c->setTimer(10); dMenu_setPushMenuButton(0); mDoAud_seStart(JA_SE_ITM_MENU_OUT); - } else if (dMs_isPush_R_Button(i_Ms) && !dMi_c->noteCheck() && dMi_c->mItemMode == 0) { + } else if (dMs_isPush_R_Button(i_Ms) && !dMi_c->noteCheck() && dMi_c->getItemMode() == 0) { mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_ITEM_TO_COLLECT_RIGHT; - dMi_c->field_0x2421 = 2; - dMi_c->field_0x23F8 = g_menuHIO.field_0x92; + dMi_c->setTriggerInfo(2); + dMi_c->setTimer(g_menuHIO.field_0x92); dMenu_setPushMenuButton(2); mDoAud_seStart(JA_SE_ITEM_COL_SW); - } else if (dMs_isPush_L_Button(i_Ms) && !dMi_c->noteCheck() && dMi_c->mItemMode == 0) { + } else if (dMs_isPush_L_Button(i_Ms) && !dMi_c->noteCheck() && dMi_c->getItemMode() == 0) { mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_ITEM_TO_COLLECT_LEFT; - dMi_c->field_0x2421 = 1; - dMi_c->field_0x23F8 = g_menuHIO.field_0x92; + dMi_c->setTriggerInfo(1); + dMi_c->setTimer(g_menuHIO.field_0x92); dMenu_setPushMenuButton(2); mDoAud_seStart(JA_SE_ITEM_COL_SW); @@ -1169,30 +1169,30 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } else if (i_Ms->mMenuProc == MENU_STATE_COLLECT_MOVE) { cloth_c->cloth_move(); - if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMc_c->noteCheck() && (dMc_c->mCollectMode == 0 || dMc_c->mCollectMode == 2)) { + if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMc_c->noteCheck() && (dMc_c->getCollectMode() == 0 || dMc_c->getCollectMode() == 2)) { cloth_c->alpha_out(); mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_COLLECT_CLOSE; - dMc_c->m27EC = 0; + dMc_c->setTriggerInfo(0); dMc_c->setTimer(10); dMenu_setPushMenuButton(0); mDoAud_seStart(JA_SE_ITM_MENU_OUT); - } else if (dMs_isPush_R_Button(i_Ms) && !dMc_c->noteCheck() && (dMc_c->mCollectMode == 0 || dMc_c->mCollectMode == 2)) { + } else if (dMs_isPush_R_Button(i_Ms) && !dMc_c->noteCheck() && (dMc_c->getCollectMode() == 0 || dMc_c->getCollectMode() == 2)) { mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_COLLECT_TO_ITEM_RIGHT; - dMc_c->m27EC = 2; + dMc_c->setTriggerInfo(2); dMc_c->setTimer(g_menuHIO.field_0x92); dMenu_setPushMenuButton(1); mDoAud_seStart(JA_SE_ITEM_COL_SW); - } else if (dMs_isPush_L_Button(i_Ms) && !dMc_c->noteCheck() && (dMc_c->mCollectMode == 0 || dMc_c->mCollectMode == 2)) { + } else if (dMs_isPush_L_Button(i_Ms) && !dMc_c->noteCheck() && (dMc_c->getCollectMode() == 0 || dMc_c->getCollectMode() == 2)) { mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_COLLECT_TO_ITEM_LEFT; - dMc_c->m27EC = 1; + dMc_c->setTriggerInfo(1); dMc_c->setTimer(g_menuHIO.field_0x92); dMenu_setPushMenuButton(1); mDoAud_seStart(JA_SE_ITEM_COL_SW); @@ -1204,11 +1204,11 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } else if (i_Ms->mMenuProc == MENU_STATE_COLLECT_MOVE_TACT) { cloth_c->cloth_move(); - if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMc_c->noteCheck() && (dMc_c->mCollectMode == 0 || dMc_c->mCollectMode == 2)) { + if ((CPad_CHECK_TRIG_START(0) || CPad_CHECK_TRIG_B(0)) && !dMc_c->noteCheck() && (dMc_c->getCollectMode() == 0 || dMc_c->getCollectMode() == 2)) { cloth_c->alpha_out(); mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_COLLECT_CLOSE_TACT; - dMc_c->m27EC = 0; + dMc_c->setTriggerInfo(0); dMc_c->setTimer(10); dMenu_setPushMenuButton(0); mDoAud_seStart(JA_SE_ITM_MENU_OUT); @@ -1219,11 +1219,11 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } else if (i_Ms->mMenuProc == MENU_STATE_COLLECT_MOVE_ALT) { cloth_c->cloth_move(); - if (dMc_c->mCollectMode != 5) { + if (dMc_c->getCollectMode() != 5) { cloth_c->alpha_out(); mDoExt_setCurrentHeap(i_Ms->childHeap); i_Ms->mMenuProc = MENU_STATE_COLLECT_CLOSE_ALT; - dMc_c->m27EC = 0; + dMc_c->setTriggerInfo(0); dMc_c->setTimer(10); dMenu_setPushMenuButton(0); mDoAud_seStart(JA_SE_ITM_MENU_OUT); @@ -1429,13 +1429,13 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) { } if (dMi_c) { - dMenu_setItemMode(dMi_c->mItemMode); + dMenu_setItemMode(dMi_c->getItemMode()); } else { dMenu_setItemMode(0); } if (dMc_c) { - dMenu_setCollectMode(dMc_c->mCollectMode); + dMenu_setCollectMode(dMc_c->getCollectMode()); } else { dMenu_setCollectMode(0); }