From 729c36be93a7f1c84f5eec962eb9c125af208e33 Mon Sep 17 00:00:00 2001 From: Teddy Heidmann Date: Sun, 9 Aug 2026 17:40:34 -0700 Subject: [PATCH] dMd_HIO_c fields and constructor --- include/d/d_menu_dmap.h | 41 +++++++++++++++++- src/d/d_menu_dmap.cpp | 96 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 132 insertions(+), 5 deletions(-) diff --git a/include/d/d_menu_dmap.h b/include/d/d_menu_dmap.h index 6c3778d78..4d5c70cf8 100644 --- a/include/d/d_menu_dmap.h +++ b/include/d/d_menu_dmap.h @@ -5,6 +5,7 @@ #include "dolphin/types.h" #include "d/d_menu_base.h" #include "f_op/f_op_msg_mng.h" +#include "m_Do/m_Do_hostIO.h" class J2DPane; class J2DScreen; @@ -179,9 +180,45 @@ public: STATIC_ASSERT(sizeof(dMenu_Dmap_c) == 0x1E38); -class dMd_HIO_c { +class dMd_HIO_c : public JORReflexible { public: dMd_HIO_c(); -}; + virtual ~dMd_HIO_c() {} + + void genMessage(JORMContext*) {} + +public: + /* 0x04 */ s8 mNo; + /* 0x06 */ s16 field_0x06; + /* 0x08 */ s16 field_0x08; + /* 0x0A */ s16 field_0x0A; + /* 0x0C */ s16 field_0x0C; + /* 0x0E */ u8 padding_0x0E[0x10 - 0x0E]; + /* 0x10 */ JUtility::TColor field_0x10; + /* 0x14 */ JUtility::TColor field_0x14; + /* 0x18 */ s16 field_0x18; + /* 0x1A */ s16 field_0x1A; + /* 0x1C */ JUtility::TColor field_0x1C; + /* 0x20 */ JUtility::TColor field_0x20; + /* 0x24 */ s16 field_0x24; + /* 0x26 */ s16 field_0x26; + /* 0x28 */ JUtility::TColor field_0x28; + /* 0x2C */ JUtility::TColor field_0x2C; + /* 0x30 */ s16 field_0x30; + /* 0x32 */ s16 field_0x32; + /* 0x34 */ JUtility::TColor field_0x34; + /* 0x38 */ JUtility::TColor field_0x38; + /* 0x3C */ s16 field_0x3C; + /* 0x3E */ s16 field_0x3E; + /* 0x40 */ s16 field_0x40; + /* 0x42 */ s16 field_0x42; + /* 0x44 */ s16 field_0x44; + /* 0x46 */ s16 field_0x46; + /* 0x48 */ s16 field_0x48; +}; // Size: 0x4C + +STATIC_ASSERT(sizeof(dMd_HIO_c) == 0x4C); + +extern dMd_HIO_c g_mdHIO; #endif /* D_MENU_DMAP_H */ diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp index 3438ff1de..52bf4b733 100644 --- a/src/d/d_menu_dmap.cpp +++ b/src/d/d_menu_dmap.cpp @@ -7,14 +7,104 @@ #include "d/d_menu_dmap.h" #include "d/d_stage.h" +dMd_HIO_c g_mdHIO; + +const char* floor_name[] = { + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B3.bti", + "hierarchy_num_B2.bti", + "hierarchy_num_B1.bti", + "hierarchy_num_1.bti", + "hierarchy_num_2.bti", + "hierarchy_num_3.bti", + "hierarchy_num_4.bti", + "hierarchy_num_5.bti", + "hierarchy_num_6.bti", + "hierarchy_num_7.bti", + "hierarchy_num_7.bti", + "hierarchy_num_7.bti", + "hierarchy_num_7.bti", +}; + +const char* itmTex[] = { + "dungeon_map.bti", + "boss_key.bti", + "compass.bti", +}; + /* 801A86A4-801A87CC .text __ct__9dMd_HIO_cFv */ dMd_HIO_c::dMd_HIO_c() { - /* Nonmatching */ + field_0x06 = 0; + field_0x08 = 0; + field_0x0A = 14; + field_0x0C = 14; + + field_0x10.r = 0xff; + field_0x10.g = 0xc4; + field_0x10.b = 0x00; + field_0x14.r = 0x20; + field_0x14.g = 0x20; + field_0x14.b = 0x00; + field_0x10.a = 0xff; + field_0x14.a = 0x00; + + field_0x24 = 16; + field_0x26 = 8; + + field_0x28.r = 0xA8; + field_0x28.g = 0xA8; + field_0x28.b = 0xA8; + field_0x2C.r = 0x40; + field_0x2C.g = 0x20; + field_0x2C.b = 0x00; + field_0x28.a = 0xFF; + field_0x2C.a = 0x00; + + field_0x18 = 32; + field_0x1A = 32; + + field_0x1C.r = 0xFF; + field_0x1C.g = 0xFF; + field_0x1C.b = 0xFF; + field_0x20.r = 0x00; + field_0x20.g = 0x00; + field_0x20.b = 0x00; + field_0x1C.a = 0xFF; + field_0x20.a = 0x00; + + field_0x30 = 16; + field_0x32 = 16; + + field_0x34.r = 0xFF; + field_0x34.g = 0x00; + field_0x34.b = 0xFF; + field_0x38.r = 0x00; + field_0x38.g = 0x00; + field_0x38.b = 0x00; + field_0x34.a = 0xFF; + field_0x38.a = 0x00; + + field_0x3C = 4; + field_0x3E = 10; + field_0x40 = 2; + field_0x42 = 2; + field_0x44 = 2; + field_0x46 = 2; + field_0x48 = 2; } /* 801A87CC-801A8818 .text changeFloorTexture__12dMenu_Dmap_cFP7J2DPanei */ -void dMenu_Dmap_c::changeFloorTexture(J2DPane*, int) { - /* Nonmatching */ +void dMenu_Dmap_c::changeFloorTexture(J2DPane* i_pane, int i_floor) { + if (i_floor < 0 || i_floor >= 20) { + i_floor = 0; + } + ((J2DPicture *)i_pane)->changeTexture(floor_name[i_floor], 0); } /* 801A8818-801A92D4 .text screenSet__12dMenu_Dmap_cFv */