summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-02-17 04:22:01 +0200
committerGitHub <noreply@github.com>2024-02-16 18:22:01 -0800
commit8164c34142ebaafbd70ef0f8032343d25b1e58fc (patch)
tree0881cc8d695a914c324170705367a6c76911d36c
parent672990a0b04b752c55ed0349141c096d0261a3d7 (diff)
Work on d_menu_dmap (#2073)
* Move some J2DPicture inlines to header * Work on d_menu_dmap * JASBasicInst OK * JASCalc cleanup
-rw-r--r--asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s20
-rw-r--r--asm/d/menu/d_menu_dmap/createExplain__14dMenu_DmapBg_cFv.s36
-rw-r--r--asm/d/menu/d_menu_dmap/deleteExplain__14dMenu_DmapBg_cFv.s33
-rw-r--r--asm/d/menu/d_menu_dmap/drawCursor__14dMenu_DmapBg_cFv.s13
-rw-r--r--asm/d/menu/d_menu_dmap/floorChangeMode__12dMenu_Dmap_cFv.s68
-rw-r--r--asm/d/menu/d_menu_dmap/getCurFloorPos__12dMenu_Dmap_cFv.s6
-rw-r--r--asm/d/menu/d_menu_dmap/getDefaultCurFloorPos__12dMenu_Dmap_cFv.s9
-rw-r--r--asm/d/menu/d_menu_dmap/iconMoveCalc__12dMenu_Dmap_cFv.s110
-rw-r--r--asm/d/menu/d_menu_dmap/iconScaleAnmInit__14dMenu_DmapBg_cFffUc.s7
-rw-r--r--asm/d/menu/d_menu_dmap/itemInfoOpenAnm__12dMenu_Dmap_cFv.s4
-rw-r--r--asm/d/menu/d_menu_dmap/mapBgAnime__12dMenu_Dmap_cFv.s10
-rw-r--r--asm/d/menu/d_menu_dmap/setAButtonString__14dMenu_DmapBg_cFUl.s58
-rw-r--r--asm/d/menu/d_menu_dmap/setAllAlphaRate__14dMenu_DmapBg_cFfb.s66
-rw-r--r--asm/d/menu/d_menu_dmap/setBButtonString__14dMenu_DmapBg_cFUl.s58
-rw-r--r--asm/d/menu/d_menu_dmap/setGoldAnimation__14dMenu_DmapBg_cFb.s63
-rw-r--r--asm/d/menu/d_menu_dmap/setJButtonString__14dMenu_DmapBg_cFUl.s10
-rw-r--r--include/JSystem/J2DGraph/J2DPicture.h17
-rw-r--r--include/JSystem/JAudio2/JASBasicInst.h2
-rw-r--r--include/d/com/d_com_inf_game.h1
-rw-r--r--include/d/d_lib.h1
-rw-r--r--include/d/d_stage.h4
-rw-r--r--include/d/menu/d_menu_dmap.h153
-rw-r--r--include/d/menu/d_menu_dmap_map.h65
-rw-r--r--include/d/menu/d_menu_map_common.h50
-rw-r--r--include/d/meter/d_meter2_info.h9
-rw-r--r--include/d/msg/d_msg_object.h12
-rw-r--r--libs/JSystem/JAudio2/JASBasicInst.cpp62
-rw-r--r--libs/JSystem/JAudio2/JASCalc.cpp23
-rw-r--r--libs/JSystem/JUtility/JUTException.cpp11
-rw-r--r--obj_files.mk1
-rw-r--r--src/d/com/d_com_inf_game.cpp6
-rw-r--r--src/d/menu/d_menu_dmap.cpp1808
-rw-r--r--src/d/menu/d_menu_dmap_map.cpp67
-rw-r--r--src/d/menu/d_menu_map_common.cpp45
-rw-r--r--src/d/msg/d_msg_object.cpp2
-rw-r--r--src/f_op/f_op_msg_mng.cpp18
36 files changed, 1792 insertions, 1136 deletions
diff --git a/asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s b/asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s
deleted file mode 100644
index cfba977454..0000000000
--- a/asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s
+++ /dev/null
@@ -1,20 +0,0 @@
-lbl_8029828C:
-/* 8029828C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80298290 7C 08 02 A6 */ mflr r0
-/* 80298294 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80298298 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8029829C 7C 7F 1B 79 */ or. r31, r3, r3
-/* 802982A0 41 82 00 1C */ beq lbl_802982BC
-/* 802982A4 3C A0 80 3C */ lis r5, __vt__7JASInst@ha /* 0x803C76FC@ha */
-/* 802982A8 38 05 76 FC */ addi r0, r5, __vt__7JASInst@l /* 0x803C76FC@l */
-/* 802982AC 90 1F 00 00 */ stw r0, 0(r31)
-/* 802982B0 7C 80 07 35 */ extsh. r0, r4
-/* 802982B4 40 81 00 08 */ ble lbl_802982BC
-/* 802982B8 48 03 6A 85 */ bl __dl__FPv
-lbl_802982BC:
-/* 802982BC 7F E3 FB 78 */ mr r3, r31
-/* 802982C0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802982C4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802982C8 7C 08 03 A6 */ mtlr r0
-/* 802982CC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802982D0 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/createExplain__14dMenu_DmapBg_cFv.s b/asm/d/menu/d_menu_dmap/createExplain__14dMenu_DmapBg_cFv.s
deleted file mode 100644
index d76251d17f..0000000000
--- a/asm/d/menu/d_menu_dmap/createExplain__14dMenu_DmapBg_cFv.s
+++ /dev/null
@@ -1,36 +0,0 @@
-lbl_801B90E0:
-/* 801B90E0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801B90E4 7C 08 02 A6 */ mflr r0
-/* 801B90E8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801B90EC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801B90F0 93 C1 00 08 */ stw r30, 8(r1)
-/* 801B90F4 7C 7E 1B 78 */ mr r30, r3
-/* 801B90F8 80 03 0D 18 */ lwz r0, 0xd18(r3)
-/* 801B90FC 28 00 00 00 */ cmplwi r0, 0
-/* 801B9100 40 82 00 4C */ bne lbl_801B914C
-/* 801B9104 80 7E 0C 9C */ lwz r3, 0xc9c(r30)
-/* 801B9108 4B E5 60 C5 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
-/* 801B910C 7C 7F 1B 78 */ mr r31, r3
-/* 801B9110 38 60 00 E8 */ li r3, 0xe8
-/* 801B9114 48 11 5B 39 */ bl __nw__FUl
-/* 801B9118 7C 60 1B 79 */ or. r0, r3, r3
-/* 801B911C 41 82 00 24 */ beq lbl_801B9140
-/* 801B9120 80 9E 0C 9C */ lwz r4, 0xc9c(r30)
-/* 801B9124 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 801B9128 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 801B912C 80 A5 5C C0 */ lwz r5, 0x5cc0(r5)
-/* 801B9130 80 DE 0C A0 */ lwz r6, 0xca0(r30)
-/* 801B9134 38 E0 00 01 */ li r7, 1
-/* 801B9138 48 02 16 1D */ bl __ct__19dMenu_ItemExplain_cFP10JKRExpHeapP10JKRArchiveP9STControlb
-/* 801B913C 7C 60 1B 78 */ mr r0, r3
-lbl_801B9140:
-/* 801B9140 90 1E 0D 18 */ stw r0, 0xd18(r30)
-/* 801B9144 7F E3 FB 78 */ mr r3, r31
-/* 801B9148 4B E5 60 85 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
-lbl_801B914C:
-/* 801B914C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801B9150 83 C1 00 08 */ lwz r30, 8(r1)
-/* 801B9154 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801B9158 7C 08 03 A6 */ mtlr r0
-/* 801B915C 38 21 00 10 */ addi r1, r1, 0x10
-/* 801B9160 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/deleteExplain__14dMenu_DmapBg_cFv.s b/asm/d/menu/d_menu_dmap/deleteExplain__14dMenu_DmapBg_cFv.s
deleted file mode 100644
index ddb2009c30..0000000000
--- a/asm/d/menu/d_menu_dmap/deleteExplain__14dMenu_DmapBg_cFv.s
+++ /dev/null
@@ -1,33 +0,0 @@
-lbl_801B9164:
-/* 801B9164 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801B9168 7C 08 02 A6 */ mflr r0
-/* 801B916C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801B9170 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801B9174 93 C1 00 08 */ stw r30, 8(r1)
-/* 801B9178 7C 7E 1B 78 */ mr r30, r3
-/* 801B917C 80 03 0D 18 */ lwz r0, 0xd18(r3)
-/* 801B9180 28 00 00 00 */ cmplwi r0, 0
-/* 801B9184 41 82 00 40 */ beq lbl_801B91C4
-/* 801B9188 80 7E 0C 9C */ lwz r3, 0xc9c(r30)
-/* 801B918C 4B E5 60 41 */ bl mDoExt_setCurrentHeap__FP7JKRHeap
-/* 801B9190 7C 7F 1B 78 */ mr r31, r3
-/* 801B9194 80 7E 0D 18 */ lwz r3, 0xd18(r30)
-/* 801B9198 28 03 00 00 */ cmplwi r3, 0
-/* 801B919C 41 82 00 18 */ beq lbl_801B91B4
-/* 801B91A0 38 80 00 01 */ li r4, 1
-/* 801B91A4 81 83 00 00 */ lwz r12, 0(r3)
-/* 801B91A8 81 8C 00 08 */ lwz r12, 8(r12)
-/* 801B91AC 7D 89 03 A6 */ mtctr r12
-/* 801B91B0 4E 80 04 21 */ bctrl
-lbl_801B91B4:
-/* 801B91B4 38 00 00 00 */ li r0, 0
-/* 801B91B8 90 1E 0D 18 */ stw r0, 0xd18(r30)
-/* 801B91BC 7F E3 FB 78 */ mr r3, r31
-/* 801B91C0 4B E5 60 0D */ bl mDoExt_setCurrentHeap__FP7JKRHeap
-lbl_801B91C4:
-/* 801B91C4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801B91C8 83 C1 00 08 */ lwz r30, 8(r1)
-/* 801B91CC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801B91D0 7C 08 03 A6 */ mtlr r0
-/* 801B91D4 38 21 00 10 */ addi r1, r1, 0x10
-/* 801B91D8 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/drawCursor__14dMenu_DmapBg_cFv.s b/asm/d/menu/d_menu_dmap/drawCursor__14dMenu_DmapBg_cFv.s
deleted file mode 100644
index cfe6c67466..0000000000
--- a/asm/d/menu/d_menu_dmap/drawCursor__14dMenu_DmapBg_cFv.s
+++ /dev/null
@@ -1,13 +0,0 @@
-lbl_801BB468:
-/* 801BB468 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801BB46C 7C 08 02 A6 */ mflr r0
-/* 801BB470 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801BB474 80 63 0C C0 */ lwz r3, 0xcc0(r3)
-/* 801BB478 81 83 00 00 */ lwz r12, 0(r3)
-/* 801BB47C 81 8C 00 08 */ lwz r12, 8(r12)
-/* 801BB480 7D 89 03 A6 */ mtctr r12
-/* 801BB484 4E 80 04 21 */ bctrl
-/* 801BB488 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801BB48C 7C 08 03 A6 */ mtlr r0
-/* 801BB490 38 21 00 10 */ addi r1, r1, 0x10
-/* 801BB494 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/floorChangeMode__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/floorChangeMode__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 586959c462..0000000000
--- a/asm/d/menu/d_menu_dmap/floorChangeMode__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,68 +0,0 @@
-lbl_801BD6C4:
-/* 801BD6C4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801BD6C8 7C 08 02 A6 */ mflr r0
-/* 801BD6CC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801BD6D0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801BD6D4 7C 7F 1B 78 */ mr r31, r3
-/* 801BD6D8 88 03 01 6D */ lbz r0, 0x16d(r3)
-/* 801BD6DC 7C 03 07 74 */ extsb r3, r0
-/* 801BD6E0 88 9F 01 6C */ lbz r4, 0x16c(r31)
-/* 801BD6E4 7C 80 07 74 */ extsb r0, r4
-/* 801BD6E8 7C 03 00 00 */ cmpw r3, r0
-/* 801BD6EC 40 81 00 40 */ ble lbl_801BD72C
-/* 801BD6F0 98 9F 01 6E */ stb r4, 0x16e(r31)
-/* 801BD6F4 80 7F 00 F0 */ lwz r3, 0xf0(r31)
-/* 801BD6F8 A8 03 00 1A */ lha r0, 0x1a(r3)
-/* 801BD6FC 98 1F 01 79 */ stb r0, 0x179(r31)
-/* 801BD700 88 1F 01 6C */ lbz r0, 0x16c(r31)
-/* 801BD704 88 7F 01 6D */ lbz r3, 0x16d(r31)
-/* 801BD708 7C 00 18 50 */ subf r0, r0, r3
-/* 801BD70C 7C 04 07 74 */ extsb r4, r0
-/* 801BD710 98 7F 01 6C */ stb r3, 0x16c(r31)
-/* 801BD714 80 7F 00 04 */ lwz r3, 4(r31)
-/* 801BD718 88 BF 01 79 */ lbz r5, 0x179(r31)
-/* 801BD71C 48 00 3B 8D */ bl setPlusNowStayFloorNo__20dMenu_StageMapCtrl_cFScUc
-/* 801BD720 38 00 00 01 */ li r0, 1
-/* 801BD724 98 1F 01 7D */ stb r0, 0x17d(r31)
-/* 801BD728 48 00 00 3C */ b lbl_801BD764
-lbl_801BD72C:
-/* 801BD72C 98 9F 01 6E */ stb r4, 0x16e(r31)
-/* 801BD730 80 7F 00 F0 */ lwz r3, 0xf0(r31)
-/* 801BD734 A8 03 00 1A */ lha r0, 0x1a(r3)
-/* 801BD738 98 1F 01 79 */ stb r0, 0x179(r31)
-/* 801BD73C 38 00 00 01 */ li r0, 1
-/* 801BD740 98 1F 01 7D */ stb r0, 0x17d(r31)
-/* 801BD744 88 1F 01 6C */ lbz r0, 0x16c(r31)
-/* 801BD748 88 7F 01 6D */ lbz r3, 0x16d(r31)
-/* 801BD74C 7C 00 18 50 */ subf r0, r0, r3
-/* 801BD750 7C 04 07 74 */ extsb r4, r0
-/* 801BD754 98 7F 01 6C */ stb r3, 0x16c(r31)
-/* 801BD758 80 7F 00 04 */ lwz r3, 4(r31)
-/* 801BD75C 88 BF 01 79 */ lbz r5, 0x179(r31)
-/* 801BD760 48 00 3B 49 */ bl setPlusNowStayFloorNo__20dMenu_StageMapCtrl_cFScUc
-lbl_801BD764:
-/* 801BD764 38 00 00 00 */ li r0, 0
-/* 801BD768 98 1F 01 85 */ stb r0, 0x185(r31)
-/* 801BD76C 88 1F 01 7F */ lbz r0, 0x17f(r31)
-/* 801BD770 28 00 00 00 */ cmplwi r0, 0
-/* 801BD774 41 82 00 20 */ beq lbl_801BD794
-/* 801BD778 80 7F 00 08 */ lwz r3, 8(r31)
-/* 801BD77C 38 80 00 00 */ li r4, 0
-/* 801BD780 4B FF B6 65 */ bl setAButtonString__14dMenu_DmapBg_cFUl
-/* 801BD784 80 7F 00 08 */ lwz r3, 8(r31)
-/* 801BD788 38 80 05 22 */ li r4, 0x522
-/* 801BD78C 4B FF B7 31 */ bl setBButtonString__14dMenu_DmapBg_cFUl
-/* 801BD790 48 00 00 1C */ b lbl_801BD7AC
-lbl_801BD794:
-/* 801BD794 80 7F 00 08 */ lwz r3, 8(r31)
-/* 801BD798 38 80 05 27 */ li r4, 0x527
-/* 801BD79C 4B FF B6 49 */ bl setAButtonString__14dMenu_DmapBg_cFUl
-/* 801BD7A0 80 7F 00 08 */ lwz r3, 8(r31)
-/* 801BD7A4 38 80 03 F9 */ li r4, 0x3f9
-/* 801BD7A8 4B FF B7 15 */ bl setBButtonString__14dMenu_DmapBg_cFUl
-lbl_801BD7AC:
-/* 801BD7AC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801BD7B0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801BD7B4 7C 08 03 A6 */ mtlr r0
-/* 801BD7B8 38 21 00 10 */ addi r1, r1, 0x10
-/* 801BD7BC 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/getCurFloorPos__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/getCurFloorPos__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 7985217cb1..0000000000
--- a/asm/d/menu/d_menu_dmap/getCurFloorPos__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,6 +0,0 @@
-lbl_801BD1D4:
-/* 801BD1D4 88 83 01 71 */ lbz r4, 0x171(r3)
-/* 801BD1D8 88 03 01 6C */ lbz r0, 0x16c(r3)
-/* 801BD1DC 7C 04 00 50 */ subf r0, r4, r0
-/* 801BD1E0 7C 03 07 74 */ extsb r3, r0
-/* 801BD1E4 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/getDefaultCurFloorPos__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/getDefaultCurFloorPos__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 6a5ba0e2d7..0000000000
--- a/asm/d/menu/d_menu_dmap/getDefaultCurFloorPos__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_801BD1E8:
-/* 801BD1E8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801BD1EC 7C 08 02 A6 */ mflr r0
-/* 801BD1F0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801BD1F4 4B FF FF E1 */ bl getCurFloorPos__12dMenu_Dmap_cFv
-/* 801BD1F8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801BD1FC 7C 08 03 A6 */ mtlr r0
-/* 801BD200 38 21 00 10 */ addi r1, r1, 0x10
-/* 801BD204 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/iconMoveCalc__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/iconMoveCalc__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 9d8a4132bb..0000000000
--- a/asm/d/menu/d_menu_dmap/iconMoveCalc__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,110 +0,0 @@
-lbl_801BD208:
-/* 801BD208 94 21 FF 90 */ stwu r1, -0x70(r1)
-/* 801BD20C 7C 08 02 A6 */ mflr r0
-/* 801BD210 90 01 00 74 */ stw r0, 0x74(r1)
-/* 801BD214 DB E1 00 60 */ stfd f31, 0x60(r1)
-/* 801BD218 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
-/* 801BD21C 93 E1 00 5C */ stw r31, 0x5c(r1)
-/* 801BD220 93 C1 00 58 */ stw r30, 0x58(r1)
-/* 801BD224 7C 7F 1B 78 */ mr r31, r3
-/* 801BD228 88 03 01 71 */ lbz r0, 0x171(r3)
-/* 801BD22C 7C 03 07 74 */ extsb r3, r0
-/* 801BD230 88 1F 01 72 */ lbz r0, 0x172(r31)
-/* 801BD234 7C 00 07 74 */ extsb r0, r0
-/* 801BD238 7F C3 00 50 */ subf r30, r3, r0
-/* 801BD23C 80 7F 00 74 */ lwz r3, 0x74(r31)
-/* 801BD240 48 09 83 89 */ bl show__13CPaneMgrAlphaFv
-/* 801BD244 80 7F 01 4C */ lwz r3, 0x14c(r31)
-/* 801BD248 80 1F 01 50 */ lwz r0, 0x150(r31)
-/* 801BD24C 90 61 00 44 */ stw r3, 0x44(r1)
-/* 801BD250 90 01 00 48 */ stw r0, 0x48(r1)
-/* 801BD254 80 1F 01 54 */ lwz r0, 0x154(r31)
-/* 801BD258 90 01 00 4C */ stw r0, 0x4c(r1)
-/* 801BD25C 57 DE 10 3A */ slwi r30, r30, 2
-/* 801BD260 7C 7F F2 14 */ add r3, r31, r30
-/* 801BD264 80 83 00 34 */ lwz r4, 0x34(r3)
-/* 801BD268 38 61 00 14 */ addi r3, r1, 0x14
-/* 801BD26C 80 A4 00 04 */ lwz r5, 4(r4)
-/* 801BD270 38 C0 00 00 */ li r6, 0
-/* 801BD274 38 E0 00 00 */ li r7, 0
-/* 801BD278 48 09 7C 45 */ bl getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs
-/* 801BD27C 80 61 00 14 */ lwz r3, 0x14(r1)
-/* 801BD280 80 01 00 18 */ lwz r0, 0x18(r1)
-/* 801BD284 90 61 00 38 */ stw r3, 0x38(r1)
-/* 801BD288 90 01 00 3C */ stw r0, 0x3c(r1)
-/* 801BD28C 80 01 00 1C */ lwz r0, 0x1c(r1)
-/* 801BD290 90 01 00 40 */ stw r0, 0x40(r1)
-/* 801BD294 80 7F 00 74 */ lwz r3, 0x74(r31)
-/* 801BD298 C0 21 00 38 */ lfs f1, 0x38(r1)
-/* 801BD29C C0 01 00 44 */ lfs f0, 0x44(r1)
-/* 801BD2A0 EC 21 00 28 */ fsubs f1, f1, f0
-/* 801BD2A4 C0 41 00 3C */ lfs f2, 0x3c(r1)
-/* 801BD2A8 C0 01 00 48 */ lfs f0, 0x48(r1)
-/* 801BD2AC EC 42 00 28 */ fsubs f2, f2, f0
-/* 801BD2B0 48 09 73 01 */ bl paneTrans__8CPaneMgrFff
-/* 801BD2B4 7C 7F F2 14 */ add r3, r31, r30
-/* 801BD2B8 80 63 00 14 */ lwz r3, 0x14(r3)
-/* 801BD2BC 80 63 00 04 */ lwz r3, 4(r3)
-/* 801BD2C0 C3 E3 00 CC */ lfs f31, 0xcc(r3)
-/* 801BD2C4 80 7F 00 74 */ lwz r3, 0x74(r31)
-/* 801BD2C8 80 63 00 04 */ lwz r3, 4(r3)
-/* 801BD2CC D3 E3 00 CC */ stfs f31, 0xcc(r3)
-/* 801BD2D0 D3 E3 00 D0 */ stfs f31, 0xd0(r3)
-/* 801BD2D4 81 83 00 00 */ lwz r12, 0(r3)
-/* 801BD2D8 81 8C 00 2C */ lwz r12, 0x2c(r12)
-/* 801BD2DC 7D 89 03 A6 */ mtctr r12
-/* 801BD2E0 4E 80 04 21 */ bctrl
-/* 801BD2E4 88 1F 01 73 */ lbz r0, 0x173(r31)
-/* 801BD2E8 7C 03 07 74 */ extsb r3, r0
-/* 801BD2EC 2C 03 FF 9D */ cmpwi r3, -99
-/* 801BD2F0 41 82 00 A8 */ beq lbl_801BD398
-/* 801BD2F4 88 1F 01 71 */ lbz r0, 0x171(r31)
-/* 801BD2F8 7C 00 07 74 */ extsb r0, r0
-/* 801BD2FC 7F C0 18 50 */ subf r30, r0, r3
-/* 801BD300 80 7F 00 78 */ lwz r3, 0x78(r31)
-/* 801BD304 48 09 82 C5 */ bl show__13CPaneMgrAlphaFv
-/* 801BD308 80 7F 01 58 */ lwz r3, 0x158(r31)
-/* 801BD30C 80 1F 01 5C */ lwz r0, 0x15c(r31)
-/* 801BD310 90 61 00 2C */ stw r3, 0x2c(r1)
-/* 801BD314 90 01 00 30 */ stw r0, 0x30(r1)
-/* 801BD318 80 1F 01 60 */ lwz r0, 0x160(r31)
-/* 801BD31C 90 01 00 34 */ stw r0, 0x34(r1)
-/* 801BD320 57 C0 10 3A */ slwi r0, r30, 2
-/* 801BD324 7C 7F 02 14 */ add r3, r31, r0
-/* 801BD328 80 83 00 54 */ lwz r4, 0x54(r3)
-/* 801BD32C 38 61 00 08 */ addi r3, r1, 8
-/* 801BD330 80 A4 00 04 */ lwz r5, 4(r4)
-/* 801BD334 38 C0 00 00 */ li r6, 0
-/* 801BD338 38 E0 00 00 */ li r7, 0
-/* 801BD33C 48 09 7B 81 */ bl getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs
-/* 801BD340 80 61 00 08 */ lwz r3, 8(r1)
-/* 801BD344 80 01 00 0C */ lwz r0, 0xc(r1)
-/* 801BD348 90 61 00 20 */ stw r3, 0x20(r1)
-/* 801BD34C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801BD350 80 01 00 10 */ lwz r0, 0x10(r1)
-/* 801BD354 90 01 00 28 */ stw r0, 0x28(r1)
-/* 801BD358 80 7F 00 78 */ lwz r3, 0x78(r31)
-/* 801BD35C C0 21 00 20 */ lfs f1, 0x20(r1)
-/* 801BD360 C0 01 00 2C */ lfs f0, 0x2c(r1)
-/* 801BD364 EC 21 00 28 */ fsubs f1, f1, f0
-/* 801BD368 C0 41 00 24 */ lfs f2, 0x24(r1)
-/* 801BD36C C0 01 00 30 */ lfs f0, 0x30(r1)
-/* 801BD370 EC 42 00 28 */ fsubs f2, f2, f0
-/* 801BD374 48 09 72 3D */ bl paneTrans__8CPaneMgrFff
-/* 801BD378 80 7F 00 78 */ lwz r3, 0x78(r31)
-/* 801BD37C 80 63 00 04 */ lwz r3, 4(r3)
-/* 801BD380 D3 E3 00 CC */ stfs f31, 0xcc(r3)
-/* 801BD384 D3 E3 00 D0 */ stfs f31, 0xd0(r3)
-/* 801BD388 81 83 00 00 */ lwz r12, 0(r3)
-/* 801BD38C 81 8C 00 2C */ lwz r12, 0x2c(r12)
-/* 801BD390 7D 89 03 A6 */ mtctr r12
-/* 801BD394 4E 80 04 21 */ bctrl
-lbl_801BD398:
-/* 801BD398 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
-/* 801BD39C CB E1 00 60 */ lfd f31, 0x60(r1)
-/* 801BD3A0 83 E1 00 5C */ lwz r31, 0x5c(r1)
-/* 801BD3A4 83 C1 00 58 */ lwz r30, 0x58(r1)
-/* 801BD3A8 80 01 00 74 */ lwz r0, 0x74(r1)
-/* 801BD3AC 7C 08 03 A6 */ mtlr r0
-/* 801BD3B0 38 21 00 70 */ addi r1, r1, 0x70
-/* 801BD3B4 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/iconScaleAnmInit__14dMenu_DmapBg_cFffUc.s b/asm/d/menu/d_menu_dmap/iconScaleAnmInit__14dMenu_DmapBg_cFffUc.s
deleted file mode 100644
index cfb49b7d61..0000000000
--- a/asm/d/menu/d_menu_dmap/iconScaleAnmInit__14dMenu_DmapBg_cFffUc.s
+++ /dev/null
@@ -1,7 +0,0 @@
-lbl_801B893C:
-/* 801B893C D0 23 0D AC */ stfs f1, 0xdac(r3)
-/* 801B8940 D0 43 0D B0 */ stfs f2, 0xdb0(r3)
-/* 801B8944 98 83 0D D1 */ stb r4, 0xdd1(r3)
-/* 801B8948 38 00 00 00 */ li r0, 0
-/* 801B894C 98 03 0D D2 */ stb r0, 0xdd2(r3)
-/* 801B8950 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/itemInfoOpenAnm__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/itemInfoOpenAnm__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 2a170b6e5a..0000000000
--- a/asm/d/menu/d_menu_dmap/itemInfoOpenAnm__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_801BF180:
-/* 801BF180 38 00 00 03 */ li r0, 3
-/* 801BF184 98 03 01 7C */ stb r0, 0x17c(r3)
-/* 801BF188 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/mapBgAnime__12dMenu_Dmap_cFv.s b/asm/d/menu/d_menu_dmap/mapBgAnime__12dMenu_Dmap_cFv.s
deleted file mode 100644
index 6a418e0a4a..0000000000
--- a/asm/d/menu/d_menu_dmap/mapBgAnime__12dMenu_Dmap_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_801BDF48:
-/* 801BDF48 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801BDF4C 7C 08 02 A6 */ mflr r0
-/* 801BDF50 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801BDF54 80 63 00 08 */ lwz r3, 8(r3)
-/* 801BDF58 4B FF A8 F5 */ bl mapScreenAnime__14dMenu_DmapBg_cFv
-/* 801BDF5C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801BDF60 7C 08 03 A6 */ mtlr r0
-/* 801BDF64 38 21 00 10 */ addi r1, r1, 0x10
-/* 801BDF68 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/setAButtonString__14dMenu_DmapBg_cFUl.s b/asm/d/menu/d_menu_dmap/setAButtonString__14dMenu_DmapBg_cFUl.s
deleted file mode 100644
index a7d85d36b2..0000000000
--- a/asm/d/menu/d_menu_dmap/setAButtonString__14dMenu_DmapBg_cFUl.s
+++ /dev/null
@@ -1,58 +0,0 @@
-lbl_801B8DE4:
-/* 801B8DE4 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801B8DE8 7C 08 02 A6 */ mflr r0
-/* 801B8DEC 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801B8DF0 39 61 00 20 */ addi r11, r1, 0x20
-/* 801B8DF4 48 1A 93 E5 */ bl _savegpr_28
-/* 801B8DF8 7C 7C 1B 78 */ mr r28, r3
-/* 801B8DFC 7C 9D 23 78 */ mr r29, r4
-/* 801B8E00 3B C0 00 00 */ li r30, 0
-/* 801B8E04 3B E0 00 00 */ li r31, 0
-lbl_801B8E08:
-/* 801B8E08 28 1D 00 00 */ cmplwi r29, 0
-/* 801B8E0C 40 82 00 44 */ bne lbl_801B8E50
-/* 801B8E10 80 7C 0C B4 */ lwz r3, 0xcb4(r28)
-/* 801B8E14 3C 80 80 39 */ lis r4, cont_at_4196@ha /* 0x803955C8@ha */
-/* 801B8E18 38 04 55 C8 */ addi r0, r4, cont_at_4196@l /* 0x803955C8@l */
-/* 801B8E1C 7C 80 FA 14 */ add r4, r0, r31
-/* 801B8E20 80 A4 00 00 */ lwz r5, 0(r4)
-/* 801B8E24 80 C4 00 04 */ lwz r6, 4(r4)
-/* 801B8E28 81 83 00 00 */ lwz r12, 0(r3)
-/* 801B8E2C 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801B8E30 7D 89 03 A6 */ mtctr r12
-/* 801B8E34 4E 80 04 21 */ bctrl
-/* 801B8E38 48 14 78 21 */ bl getStringPtr__10J2DTextBoxCFv
-/* 801B8E3C 3C 80 80 39 */ lis r4, d_menu_d_menu_dmap__stringBase0@ha /* 0x80395760@ha */
-/* 801B8E40 38 84 57 60 */ addi r4, r4, d_menu_d_menu_dmap__stringBase0@l /* 0x80395760@l */
-/* 801B8E44 38 84 00 6F */ addi r4, r4, 0x6f
-/* 801B8E48 48 1A FC E5 */ bl strcpy
-/* 801B8E4C 48 00 00 48 */ b lbl_801B8E94
-lbl_801B8E50:
-/* 801B8E50 80 7C 0C B4 */ lwz r3, 0xcb4(r28)
-/* 801B8E54 3C 80 80 39 */ lis r4, cont_at_4196@ha /* 0x803955C8@ha */
-/* 801B8E58 38 04 55 C8 */ addi r0, r4, cont_at_4196@l /* 0x803955C8@l */
-/* 801B8E5C 7C 80 FA 14 */ add r4, r0, r31
-/* 801B8E60 80 A4 00 00 */ lwz r5, 0(r4)
-/* 801B8E64 80 C4 00 04 */ lwz r6, 4(r4)
-/* 801B8E68 81 83 00 00 */ lwz r12, 0(r3)
-/* 801B8E6C 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801B8E70 7D 89 03 A6 */ mtctr r12
-/* 801B8E74 4E 80 04 21 */ bctrl
-/* 801B8E78 48 14 77 E1 */ bl getStringPtr__10J2DTextBoxCFv
-/* 801B8E7C 7C 65 1B 78 */ mr r5, r3
-/* 801B8E80 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */
-/* 801B8E84 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */
-/* 801B8E88 7F A4 EB 78 */ mr r4, r29
-/* 801B8E8C 38 C0 00 00 */ li r6, 0
-/* 801B8E90 48 06 36 B5 */ bl getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c
-lbl_801B8E94:
-/* 801B8E94 3B DE 00 01 */ addi r30, r30, 1
-/* 801B8E98 2C 1E 00 05 */ cmpwi r30, 5
-/* 801B8E9C 3B FF 00 08 */ addi r31, r31, 8
-/* 801B8EA0 41 80 FF 68 */ blt lbl_801B8E08
-/* 801B8EA4 39 61 00 20 */ addi r11, r1, 0x20
-/* 801B8EA8 48 1A 93 7D */ bl _restgpr_28
-/* 801B8EAC 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 801B8EB0 7C 08 03 A6 */ mtlr r0
-/* 801B8EB4 38 21 00 20 */ addi r1, r1, 0x20
-/* 801B8EB8 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/setAllAlphaRate__14dMenu_DmapBg_cFfb.s b/asm/d/menu/d_menu_dmap/setAllAlphaRate__14dMenu_DmapBg_cFfb.s
deleted file mode 100644
index c47a33cdee..0000000000
--- a/asm/d/menu/d_menu_dmap/setAllAlphaRate__14dMenu_DmapBg_cFfb.s
+++ /dev/null
@@ -1,66 +0,0 @@
-lbl_801BA60C:
-/* 801BA60C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801BA610 7C 08 02 A6 */ mflr r0
-/* 801BA614 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801BA618 DB E1 00 18 */ stfd f31, 0x18(r1)
-/* 801BA61C 39 61 00 18 */ addi r11, r1, 0x18
-/* 801BA620 48 1A 7B BD */ bl _savegpr_29
-/* 801BA624 7C 7D 1B 78 */ mr r29, r3
-/* 801BA628 FF E0 08 90 */ fmr f31, f1
-/* 801BA62C D3 E3 0D 9C */ stfs f31, 0xd9c(r3)
-/* 801BA630 54 80 06 3F */ clrlwi. r0, r4, 0x18
-/* 801BA634 41 82 00 50 */ beq lbl_801BA684
-/* 801BA638 80 7D 0C CC */ lwz r3, 0xccc(r29)
-/* 801BA63C 48 09 B7 95 */ bl setBackupAlpha__17CPaneMgrAlphaMorfFv
-/* 801BA640 80 7D 0C E0 */ lwz r3, 0xce0(r29)
-/* 801BA644 48 09 B7 8D */ bl setBackupAlpha__17CPaneMgrAlphaMorfFv
-/* 801BA648 3B C0 00 00 */ li r30, 0
-/* 801BA64C 3B E0 00 00 */ li r31, 0
-lbl_801BA650:
-/* 801BA650 38 1F 0C D0 */ addi r0, r31, 0xcd0
-/* 801BA654 7C 7D 00 2E */ lwzx r3, r29, r0
-/* 801BA658 48 09 B7 79 */ bl setBackupAlpha__17CPaneMgrAlphaMorfFv
-/* 801BA65C 3B DE 00 01 */ addi r30, r30, 1
-/* 801BA660 2C 1E 00 02 */ cmpwi r30, 2
-/* 801BA664 3B FF 00 04 */ addi r31, r31, 4
-/* 801BA668 41 80 FF E8 */ blt lbl_801BA650
-/* 801BA66C 80 7D 0C D8 */ lwz r3, 0xcd8(r29)
-/* 801BA670 48 09 B7 61 */ bl setBackupAlpha__17CPaneMgrAlphaMorfFv
-/* 801BA674 80 7D 0C DC */ lwz r3, 0xcdc(r29)
-/* 801BA678 28 03 00 00 */ cmplwi r3, 0
-/* 801BA67C 41 82 00 08 */ beq lbl_801BA684
-/* 801BA680 48 09 B7 51 */ bl setBackupAlpha__17CPaneMgrAlphaMorfFv
-lbl_801BA684:
-/* 801BA684 80 7D 0C CC */ lwz r3, 0xccc(r29)
-/* 801BA688 FC 20 F8 90 */ fmr f1, f31
-/* 801BA68C 48 09 B7 9D */ bl setAlphaMorfRate__17CPaneMgrAlphaMorfFf
-/* 801BA690 80 7D 0C E0 */ lwz r3, 0xce0(r29)
-/* 801BA694 FC 20 F8 90 */ fmr f1, f31
-/* 801BA698 48 09 B7 91 */ bl setAlphaMorfRate__17CPaneMgrAlphaMorfFf
-/* 801BA69C 3B C0 00 00 */ li r30, 0
-/* 801BA6A0 3B E0 00 00 */ li r31, 0
-lbl_801BA6A4:
-/* 801BA6A4 38 1F 0C D0 */ addi r0, r31, 0xcd0
-/* 801BA6A8 7C 7D 00 2E */ lwzx r3, r29, r0
-/* 801BA6AC FC 20 F8 90 */ fmr f1, f31
-/* 801BA6B0 48 09 B7 79 */ bl setAlphaMorfRate__17CPaneMgrAlphaMorfFf
-/* 801BA6B4 3B DE 00 01 */ addi r30, r30, 1
-/* 801BA6B8 2C 1E 00 02 */ cmpwi r30, 2
-/* 801BA6BC 3B FF 00 04 */ addi r31, r31, 4
-/* 801BA6C0 41 80 FF E4 */ blt lbl_801BA6A4
-/* 801BA6C4 80 7D 0C D8 */ lwz r3, 0xcd8(r29)
-/* 801BA6C8 FC 20 F8 90 */ fmr f1, f31
-/* 801BA6CC 48 09 B7 5D */ bl setAlphaMorfRate__17CPaneMgrAlphaMorfFf
-/* 801BA6D0 80 7D 0C DC */ lwz r3, 0xcdc(r29)
-/* 801BA6D4 28 03 00 00 */ cmplwi r3, 0
-/* 801BA6D8 41 82 00 0C */ beq lbl_801BA6E4
-/* 801BA6DC FC 20 F8 90 */ fmr f1, f31
-/* 801BA6E0 48 09 B7 49 */ bl setAlphaMorfRate__17CPaneMgrAlphaMorfFf
-lbl_801BA6E4:
-/* 801BA6E4 CB E1 00 18 */ lfd f31, 0x18(r1)
-/* 801BA6E8 39 61 00 18 */ addi r11, r1, 0x18
-/* 801BA6EC 48 1A 7B 3D */ bl _restgpr_29
-/* 801BA6F0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 801BA6F4 7C 08 03 A6 */ mtlr r0
-/* 801BA6F8 38 21 00 20 */ addi r1, r1, 0x20
-/* 801BA6FC 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/setBButtonString__14dMenu_DmapBg_cFUl.s b/asm/d/menu/d_menu_dmap/setBButtonString__14dMenu_DmapBg_cFUl.s
deleted file mode 100644
index c774b26675..0000000000
--- a/asm/d/menu/d_menu_dmap/setBButtonString__14dMenu_DmapBg_cFUl.s
+++ /dev/null
@@ -1,58 +0,0 @@
-lbl_801B8EBC:
-/* 801B8EBC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801B8EC0 7C 08 02 A6 */ mflr r0
-/* 801B8EC4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801B8EC8 39 61 00 20 */ addi r11, r1, 0x20
-/* 801B8ECC 48 1A 93 0D */ bl _savegpr_28
-/* 801B8ED0 7C 7C 1B 78 */ mr r28, r3
-/* 801B8ED4 7C 9D 23 78 */ mr r29, r4
-/* 801B8ED8 3B C0 00 00 */ li r30, 0
-/* 801B8EDC 3B E0 00 00 */ li r31, 0
-lbl_801B8EE0:
-/* 801B8EE0 28 1D 00 00 */ cmplwi r29, 0
-/* 801B8EE4 40 82 00 44 */ bne lbl_801B8F28
-/* 801B8EE8 80 7C 0C B4 */ lwz r3, 0xcb4(r28)
-/* 801B8EEC 3C 80 80 39 */ lis r4, cont_bt_4211@ha /* 0x803955F0@ha */
-/* 801B8EF0 38 04 55 F0 */ addi r0, r4, cont_bt_4211@l /* 0x803955F0@l */
-/* 801B8EF4 7C 80 FA 14 */ add r4, r0, r31
-/* 801B8EF8 80 A4 00 00 */ lwz r5, 0(r4)
-/* 801B8EFC 80 C4 00 04 */ lwz r6, 4(r4)
-/* 801B8F00 81 83 00 00 */ lwz r12, 0(r3)
-/* 801B8F04 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801B8F08 7D 89 03 A6 */ mtctr r12
-/* 801B8F0C 4E 80 04 21 */ bctrl
-/* 801B8F10 48 14 77 49 */ bl getStringPtr__10J2DTextBoxCFv
-/* 801B8F14 3C 80 80 39 */ lis r4, d_menu_d_menu_dmap__stringBase0@ha /* 0x80395760@ha */
-/* 801B8F18 38 84 57 60 */ addi r4, r4, d_menu_d_menu_dmap__stringBase0@l /* 0x80395760@l */
-/* 801B8F1C 38 84 00 6F */ addi r4, r4, 0x6f
-/* 801B8F20 48 1A FC 0D */ bl strcpy
-/* 801B8F24 48 00 00 48 */ b lbl_801B8F6C
-lbl_801B8F28:
-/* 801B8F28 80 7C 0C B4 */ lwz r3, 0xcb4(r28)
-/* 801B8F2C 3C 80 80 39 */ lis r4, cont_bt_4211@ha /* 0x803955F0@ha */
-/* 801B8F30 38 04 55 F0 */ addi r0, r4, cont_bt_4211@l /* 0x803955F0@l */
-/* 801B8F34 7C 80 FA 14 */ add r4, r0, r31
-/* 801B8F38 80 A4 00 00 */ lwz r5, 0(r4)
-/* 801B8F3C 80 C4 00 04 */ lwz r6, 4(r4)
-/* 801B8F40 81 83 00 00 */ lwz r12, 0(r3)
-/* 801B8F44 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801B8F48 7D 89 03 A6 */ mtctr r12
-/* 801B8F4C 4E 80 04 21 */ bctrl
-/* 801B8F50 48 14 77 09 */ bl getStringPtr__10J2DTextBoxCFv
-/* 801B8F54 7C 65 1B 78 */ mr r5, r3
-/* 801B8F58 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */
-/* 801B8F5C 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */
-/* 801B8F60 7F A4 EB 78 */ mr r4, r29
-/* 801B8F64 38 C0 00 00 */ li r6, 0
-/* 801B8F68 48 06 35 DD */ bl getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c
-lbl_801B8F6C:
-/* 801B8F6C 3B DE 00 01 */ addi r30, r30, 1
-/* 801B8F70 2C 1E 00 05 */ cmpwi r30, 5
-/* 801B8F74 3B FF 00 08 */ addi r31, r31, 8
-/* 801B8F78 41 80 FF 68 */ blt lbl_801B8EE0
-/* 801B8F7C 39 61 00 20 */ addi r11, r1, 0x20
-/* 801B8F80 48 1A 92 A5 */ bl _restgpr_28
-/* 801B8F84 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 801B8F88 7C 08 03 A6 */ mtlr r0
-/* 801B8F8C 38 21 00 20 */ addi r1, r1, 0x20
-/* 801B8F90 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/setGoldAnimation__14dMenu_DmapBg_cFb.s b/asm/d/menu/d_menu_dmap/setGoldAnimation__14dMenu_DmapBg_cFb.s
deleted file mode 100644
index c63de5cc31..0000000000
--- a/asm/d/menu/d_menu_dmap/setGoldAnimation__14dMenu_DmapBg_cFb.s
+++ /dev/null
@@ -1,63 +0,0 @@
-lbl_801BA700:
-/* 801BA700 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801BA704 7C 08 02 A6 */ mflr r0
-/* 801BA708 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801BA70C 39 61 00 20 */ addi r11, r1, 0x20
-/* 801BA710 48 1A 7A C9 */ bl _savegpr_28
-/* 801BA714 7C 7C 1B 78 */ mr r28, r3
-/* 801BA718 7C 9D 23 78 */ mr r29, r4
-/* 801BA71C 80 63 0C A8 */ lwz r3, 0xca8(r3)
-/* 801BA720 3C 80 30 30 */ lis r4, 0x3030 /* 0x30305F30@ha */
-/* 801BA724 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x30305F30@l */
-/* 801BA728 3C 80 67 6F */ lis r4, 0x676F /* 0x676F6C64@ha */
-/* 801BA72C 38 A4 6C 64 */ addi r5, r4, 0x6C64 /* 0x676F6C64@l */
-/* 801BA730 81 83 00 00 */ lwz r12, 0(r3)
-/* 801BA734 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801BA738 7D 89 03 A6 */ mtctr r12
-/* 801BA73C 4E 80 04 21 */ bctrl
-/* 801BA740 7C 7F 1B 78 */ mr r31, r3
-/* 801BA744 80 7C 0C A8 */ lwz r3, 0xca8(r28)
-/* 801BA748 3C 80 30 30 */ lis r4, 0x3030 /* 0x30305F31@ha */
-/* 801BA74C 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x30305F31@l */
-/* 801BA750 3C 80 67 6F */ lis r4, 0x676F /* 0x676F6C64@ha */
-/* 801BA754 38 A4 6C 64 */ addi r5, r4, 0x6C64 /* 0x676F6C64@l */
-/* 801BA758 81 83 00 00 */ lwz r12, 0(r3)
-/* 801BA75C 81 8C 00 3C */ lwz r12, 0x3c(r12)
-/* 801BA760 7D 89 03 A6 */ mtctr r12
-/* 801BA764 4E 80 04 21 */ bctrl
-/* 801BA768 7C 7E 1B 78 */ mr r30, r3
-/* 801BA76C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
-/* 801BA770 41 82 00 38 */ beq lbl_801BA7A8
-/* 801BA774 7F E3 FB 78 */ mr r3, r31
-/* 801BA778 80 9C 0D 28 */ lwz r4, 0xd28(r28)
-/* 801BA77C 81 9F 00 00 */ lwz r12, 0(r31)
-/* 801BA780 81 8C 00 6C */ lwz r12, 0x6c(r12)
-/* 801BA784 7D 89 03 A6 */ mtctr r12
-/* 801BA788 4E 80 04 21 */ bctrl
-/* 801BA78C 7F C3 F3 78 */ mr r3, r30
-/* 801BA790 80 9C 0D 28 */ lwz r4, 0xd28(r28)
-/* 801BA794 81 9E 00 00 */ lwz r12, 0(r30)
-/* 801BA798 81 8C 00 6C */ lwz r12, 0x6c(r12)
-/* 801BA79C 7D 89 03 A6 */ mtctr r12
-/* 801BA7A0 4E 80 04 21 */ bctrl
-/* 801BA7A4 48 00 00 34 */ b lbl_801BA7D8
-lbl_801BA7A8:
-/* 801BA7A8 7F E3 FB 78 */ mr r3, r31
-/* 801BA7AC 38 80 00 00 */ li r4, 0
-/* 801BA7B0 81 9F 00 00 */ lwz r12, 0(r31)
-/* 801BA7B4 81 8C 00 6C */ lwz r12, 0x6c(r12)
-/* 801BA7B8 7D 89 03 A6 */ mtctr r12
-/* 801BA7BC 4E 80 04 21 */ bctrl
-/* 801BA7C0 7F C3 F3 78 */ mr r3, r30
-/* 801BA7C4 38 80 00 00 */ li r4, 0
-/* 801BA7C8 81 9E 00 00 */ lwz r12, 0(r30)
-/* 801BA7CC 81 8C 00 6C */ lwz r12, 0x6c(r12)
-/* 801BA7D0 7D 89 03 A6 */ mtctr r12
-/* 801BA7D4 4E 80 04 21 */ bctrl
-lbl_801BA7D8:
-/* 801BA7D8 39 61 00 20 */ addi r11, r1, 0x20
-/* 801BA7DC 48 1A 7A 49 */ bl _restgpr_28
-/* 801BA7E0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 801BA7E4 7C 08 03 A6 */ mtlr r0
-/* 801BA7E8 38 21 00 20 */ addi r1, r1, 0x20
-/* 801BA7EC 4E 80 00 20 */ blr
diff --git a/asm/d/menu/d_menu_dmap/setJButtonString__14dMenu_DmapBg_cFUl.s b/asm/d/menu/d_menu_dmap/setJButtonString__14dMenu_DmapBg_cFUl.s
deleted file mode 100644
index 212f854427..0000000000
--- a/asm/d/menu/d_menu_dmap/setJButtonString__14dMenu_DmapBg_cFUl.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_801B90BC:
-/* 801B90BC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801B90C0 7C 08 02 A6 */ mflr r0
-/* 801B90C4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801B90C8 80 6D 8B 00 */ lwz r3, myclass__12dMenu_Dmap_c(r13)
-/* 801B90CC 48 00 45 C5 */ bl isMapMoveState__12dMenu_Dmap_cFv
-/* 801B90D0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801B90D4 7C 08 03 A6 */ mtlr r0
-/* 801B90D8 38 21 00 10 */ addi r1, r1, 0x10
-/* 801B90DC 4E 80 00 20 */ blr
diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h
index 40570ca8d4..c35a7bb4ab 100644
--- a/include/JSystem/J2DGraph/J2DPicture.h
+++ b/include/JSystem/J2DGraph/J2DPicture.h
@@ -54,7 +54,10 @@ public:
/* 802FD098 */ virtual bool prepareTexture(u8);
/* 801BDD40 */ virtual bool append(ResTIMG const*, f32);
/* 802FF238 */ virtual bool append(ResTIMG const*, JUTPalette*, f32);
- /* 80020338 */ virtual bool append(char const*, f32);
+ /* 80020338 */ virtual bool append(char const* param_0, f32 param_1) {
+ return insert(param_0, mTextureNum, param_1);
+ }
+
/* 802FF2F0 */ virtual bool append(char const*, JUTPalette*, f32);
/* 802FF208 */ virtual bool append(JUTTexture*, f32);
/* 802FF3E0 */ virtual void prepend(ResTIMG const*, f32);
@@ -64,7 +67,9 @@ public:
/* 802FF320 */ virtual void prepend(JUTTexture*, f32);
/* 801BDD70 */ virtual void insert(ResTIMG const*, u8, f32);
/* 802FD168 */ virtual bool insert(ResTIMG const*, JUTPalette*, u8, f32);
- /* 80020368 */ virtual bool insert(char const*, u8, f32);
+ /* 80020368 */ virtual bool insert(char const* param_0, u8 param_1, f32 param_2) {
+ return insert(param_0, NULL, param_1, param_2);
+ }
/* 802FD4B4 */ virtual bool insert(char const*, JUTPalette*, u8, f32);
/* 802FD524 */ virtual bool insert(JUTTexture*, u8, f32);
/* 802FD6F4 */ virtual bool remove(u8);
@@ -78,7 +83,10 @@ public:
/* 802FDF88 */ virtual void drawOut(JGeometry::TBox2<f32> const&, JGeometry::TBox2<f32> const&);
/* 802FF29C */ virtual void load(_GXTexMapID, u8);
/* 802FF268 */ virtual void load(u8);
- /* 800202CC */ virtual void setBlendRatio(f32, f32);
+ /* 800202CC */ virtual void setBlendRatio(f32 param_0, f32 param_1) {
+ setBlendColorRatio(param_0, param_1);
+ setBlendAlphaRatio(param_0, param_1);
+ }
/* 802FEA74 */ virtual void setBlendColorRatio(f32, f32);
/* 802FEA9C */ virtual void setBlendAlphaRatio(f32, f32);
/* 802FD874 */ virtual const ResTIMG* changeTexture(ResTIMG const*, u8);
@@ -123,6 +131,9 @@ public:
mCornerColor[2] = c2;
mCornerColor[3] = c3;
}
+ void setCornerColor(JUtility::TColor c0) {
+ setCornerColor(c0, c0, c0, c0);
+ }
protected:
/* 0x100 */ JUTTexture* mTexture[2];
diff --git a/include/JSystem/JAudio2/JASBasicInst.h b/include/JSystem/JAudio2/JASBasicInst.h
index 6c3b6c291d..977bb3de4d 100644
--- a/include/JSystem/JAudio2/JASBasicInst.h
+++ b/include/JSystem/JAudio2/JASBasicInst.h
@@ -32,7 +32,7 @@ struct JASInst {
struct JASBasicInst : public JASInst {
struct TKeymap {
/* 80298250 */ ~TKeymap();
- /* 802982D4 */ TKeymap();
+ /* 802982D4 */ TKeymap() { field_0x0 = -1; }
s32 field_0x0;
u16 field_0x4;
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index d0ecd959d3..c44fed9d69 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -822,6 +822,7 @@ int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_nam
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
int dComIfG_TimerDeleteRequest(int i_mode);
int dComIfG_TimerStart(int i_mode, s16 i_time);
+bool dComIfGp_isLightDropMapVisible();
inline void dComIfG_setBrightness(u8 brightness) {
g_dComIfG_gameInfo.mFadeBrightness = brightness;
diff --git a/include/d/d_lib.h b/include/d/d_lib.h
index 3eb24bdc1c..9cef33cfef 100644
--- a/include/d/d_lib.h
+++ b/include/d/d_lib.h
@@ -46,6 +46,7 @@ public:
/* 800325A0 */ bool checkDownTrigger();
void setFirstWaitTime(s16 time) { mFirstWaitTime = time; }
+ s16 getYwaitTimer() { return mYwaitTimer; }
/* 0x04 */ f32 mThreshold;
/* 0x08 */ f32 field_0x08;
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 55118163fa..32b5626177 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -1094,6 +1094,10 @@ inline u8 dStage_stagInfo_GetWolfDashType(stage_stag_info_class* pstag) {
return (pstag->field_0x09 >> 6) & 3;
}
+inline u16 dStage_stagInfo_GetStageTitleNo(stage_stag_info_class* pstag) {
+ return pstag->mStageTitleNo;
+}
+
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
diff --git a/include/d/menu/d_menu_dmap.h b/include/d/menu/d_menu_dmap.h
index 3d40516ae2..670ac0efa9 100644
--- a/include/d/menu/d_menu_dmap.h
+++ b/include/d/menu/d_menu_dmap.h
@@ -2,6 +2,10 @@
#define D_MENU_D_MENU_DMAP_H
#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
+#include "d/msg/d_msg_flow.h"
+#include "d/menu/d_menu_map_common.h"
+#include "d/menu/d_menu_dmap_map.h"
#include "dolphin/types.h"
class CPaneMgr;
@@ -12,9 +16,125 @@ class J2DScreen;
class JKRArchive;
class JKRExpHeap;
class STControl;
-class dMenu_DmapMapCtrl_c;
-class dMenu_DmapBg_c;
class mDoDvdThd_mountArchive_c;
+class dMsgString_c;
+class dMeterHaihai_c;
+class dMenu_ItemExplain_c;
+class J2DPictureEx;
+
+struct renderingDmap_c {
+ /* 801C0380 */ ~renderingDmap_c();
+ /* 801C051C */ renderingDmap_c();
+};
+
+struct dMenu_DmapBg_c { //: public dDlst_base_c, public dMenuMapCommon_c {
+ /* 801B7F20 */ dMenu_DmapBg_c(JKRExpHeap*, STControl*);
+ /* 801B8110 */ void mapScreenInit();
+ /* 801B884C */ void mapScreenAnime();
+ /* 801B88F4 */ void mapIconScaleSet(u8);
+ /* 801B893C */ void iconScaleAnmInit(f32, f32, u8);
+ /* 801B8954 */ bool iconScaleAnm();
+ /* 801B8A0C */ void buttonIconScreenInit();
+ /* 801B8DE4 */ void setAButtonString(u32);
+ /* 801B8EBC */ void setBButtonString(u32);
+ /* 801B8F94 */ void setCButtonString(u32);
+ /* 801B90BC */ void setJButtonString(u32);
+ /* 801B90E0 */ void createExplain();
+ /* 801B9164 */ void deleteExplain();
+ /* 801B91DC */ void baseScreenInit();
+ /* 801B944C */ void setFloorMessage();
+ /* 801BA0B4 */ bool dpdMove(s8, s8, s8, u8*, u8);
+ /* 801BA0BC */ ~dMenu_DmapBg_c();
+ /* 801BA60C */ void setAllAlphaRate(f32, bool);
+ /* 801BA700 */ void setGoldAnimation(bool);
+ /* 801BA7F0 */ void setGoldFrameAlphaRate(f32);
+ /* 801BA974 */ void addGoldFrameAlphaRate();
+ /* 801BAA4C */ void decGoldFrameAlphaRate();
+ /* 801BAB10 */ void draw();
+ /* 801BB334 */ void update();
+ /* 801BB464 */ void calcCursor();
+ /* 801BB468 */ void drawCursor();
+
+ f32 getMapWidth() { return field_0xda0; }
+ f32 getMapHeight() { return field_0xda4; }
+ J2DPicture* getMapPane() { return field_0xcc4; }
+
+ #ifndef NONMATCHING
+ void* dDlst_base_c_vt;
+ void* dMenuMapCommon_c_vt;
+ /* 0x008 */ u8 field_0x8[0xc98 - 0x8];
+ #endif
+ /* 0xC98 */ JKRExpHeap* field_0xc98;
+ /* 0xC9C */ JKRExpHeap* mpTalkHeap;
+ /* 0xCA0 */ STControl* field_0xca0;
+ /* 0xCA4 */ J2DScreen* mBaseScreen;
+ /* 0xCA8 */ J2DScreen* mMapScreen[2];
+ /* 0xCB0 */ int field_0xcb0;
+ /* 0xCB4 */ J2DScreen* mButtonScreen;
+ /* 0xCB8 */ J2DScreen* mDecorateScreen;
+ /* 0xCBC */ J2DScreen* mFloorScreen;
+ /* 0xCC0 */ dSelect_cursor_c* mpDrawCursor;
+ /* 0xCC4 */ J2DPicture* field_0xcc4;
+ /* 0xCC8 */ dMsgString_c* mString;
+ /* 0xCCC */ CPaneMgrAlphaMorf* mpBaseRoot;
+ /* 0xCD0 */ CPaneMgrAlphaMorf* mpMapRoot[2];
+ /* 0xCD8 */ CPaneMgrAlphaMorf* mpButtonRoot;
+ /* 0xCDC */ CPaneMgrAlphaMorf* mpDecorateRoot;
+ /* 0xCE0 */ CPaneMgrAlphaMorf* mpFloorRoot;
+ /* 0xCE4 */ CPaneMgrAlpha* mpBlack;
+ /* 0xCE8 */ CPaneMgrAlpha* mpCButton;
+ /* 0xCEC */ CPaneMgrAlpha* mpJButton;
+ /* 0xCF0 */ int field_0xcf0;
+ /* 0xCF4 */ CPaneMgr* field_0xcf4;
+ /* 0xCF8 */ CPaneMgr* field_0xcf8;
+ /* 0xCFC */ u8 field_0xcfc[0xd00 - 0xcfc];
+ /* 0xD00 */ CPaneMgr* mpMapSpace[2];
+ /* 0xD08 */ CPaneMgr* mpButtonAB[2];
+ /* 0xD10 */ CPaneMgr* mpButtonText[2];
+ /* 0xD18 */ dMenu_ItemExplain_c* mpItemExplain;
+ /* 0xD1C */ mDoDvdThd_mountArchive_c* field_0xd1c;
+ /* 0xD20 */ JKRArchive* field_0xd20;
+ /* 0xD24 */ J2DPicture* mpBackTexture;
+ /* 0xD28 */ J2DAnmTextureSRTKey* field_0xd28[1];
+ /* 0xD2C */ u8 field_0xd2c[0xd30 - 0xd2c];
+ /* 0xD30 */ dMeterHaihai_c* mpMeterHaihai;
+ /* 0xD34 */ dMsgFlow_c field_0xd34;
+ /* 0xD80 */ u8 field_0xd80[0xc];
+ /* 0xD8C */ u8 field_0xd8c;
+ /* 0xD8D */ u8 field_0xd8d;
+ /* 0xD8E */ u8 field_0xd8e;
+ /* 0xD8F */ u8 field_0xd8f;
+ /* 0xD90 */ u8 field_0xd90;
+ /* 0xD91 */ u8 field_0xd91;
+ /* 0xD92 */ u8 field_0xd92;
+ /* 0xD93 */ u8 field_0xd93;
+ /* 0xD94 */ f32 field_0xd94;
+ /* 0xD98 */ f32 field_0xd98;
+ /* 0xD9C */ f32 field_0xd9c;
+ /* 0xDA0 */ f32 field_0xda0;
+ /* 0xDA4 */ f32 field_0xda4;
+ /* 0xDA8 */ f32 field_0xda8;
+ /* 0xDAC */ f32 field_0xdac;
+ /* 0xDB0 */ f32 field_0xdb0;
+ /* 0xDB4 */ f32 field_0xdb4;
+ /* 0xDB8 */ f32 field_0xdb8;
+ /* 0xDBC */ f32 field_0xdbc;
+ /* 0xDC0 */ f32 field_0xdc0;
+ /* 0xDC4 */ f32 field_0xdc4;
+ /* 0xDC8 */ f32 field_0xdc8[1];
+ /* 0xDCC */ f32 field_0xdcc;
+ /* 0xDD0 */ u8 field_0xdd0;
+ /* 0xDD1 */ u8 field_0xdd1;
+ /* 0xDD2 */ u8 field_0xdd2;
+ /* 0xDD3 */ u8 field_0xdd3;
+ /* 0xDD4 */ s8 field_0xdd4;
+ /* 0xDD5 */ u8 field_0xdd5;
+ /* 0xDD6 */ s8 field_0xdd6;
+ /* 0xDD7 */ u8 field_0xdd7;
+ /* 0xDD8 */ u8 field_0xdd8;
+ /* 0xDD9 */ u8 field_0xdd9;
+ /* 0xDDA */ u8 field_0xdda;
+};
class dMenu_Dmap_c {
public:
@@ -22,12 +142,12 @@ public:
/* 801BB634 */ void screenInit();
/* 801BC788 */ void getPlayerIconPos(s8, f32);
/* 801BC848 */ void getIconPos(s8, f32);
- /* 801BD1D4 */ void getCurFloorPos();
- /* 801BD1E8 */ void getDefaultCurFloorPos();
+ /* 801BD1D4 */ s8 getCurFloorPos();
+ /* 801BD1E8 */ s8 getDefaultCurFloorPos();
/* 801BD208 */ void iconMoveCalc();
/* 801BD3B8 */ void drawFloorScreenBack(J2DScreen*, f32, f32, J2DOrthoGraph*);
/* 801BD524 */ void drawFloorScreenTop(J2DScreen*, f32, f32, J2DOrthoGraph*);
- /* 801BD690 */ void isMapMoveState();
+ /* 801BD690 */ bool isMapMoveState();
/* 801BD6C4 */ void floorChangeMode();
/* 801BD7C0 */ void _create();
/* 801BDDA4 */ void _move();
@@ -73,8 +193,11 @@ public:
void setInOutDir(u8 dir) { mInOutDir = dir; }
u8 getZoomState() { return mZoomState; }
+ u16 getCMessasgeNum() { return mCMessageNum; }
+ s8 getBottomFloor() { return mBottomFloor; }
+ s8 getFloorAll() { return mFloorAll; }
- static u8 myclass[4 + 4 /* padding */];
+ static dMenu_Dmap_c* myclass;
private:
/* 0x004 */ dMenu_DmapMapCtrl_c* mMapCtrl;
@@ -84,9 +207,7 @@ private:
/* 0x034 */ CPaneMgr* mIconLinkPos[8];
/* 0x054 */ CPaneMgr* mIconBossPos[8];
/* 0x074 */ CPaneMgr* mStayIcon[2];
- /* 0x07C */ CPaneMgr* field_0x7c;
- /* 0x080 */ CPaneMgr* field_0x80;
- /* 0x084 */ CPaneMgr* field_0x84;
+ /* 0x07C */ CPaneMgr* field_0x7c[3];
/* 0x088 */ CPaneMgr* field_0x88[3];
/* 0x094 */ CPaneMgr* field_0x94;
/* 0x098 */ CPaneMgr* field_0x98;
@@ -116,14 +237,14 @@ private:
/* 0x166 */ u16 mCMessageNum;
/* 0x168 */ u16 mJMessageNum;
/* 0x16A */ u16 field_0x16a;
- /* 0x16C */ u8 field_0x16c;
- /* 0x16D */ u8 field_0x16d;
+ /* 0x16C */ s8 field_0x16c;
+ /* 0x16D */ s8 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;
+ /* 0x170 */ s8 mFloorAll;
+ /* 0x171 */ s8 mBottomFloor;
+ /* 0x172 */ s8 field_0x172;
+ /* 0x173 */ s8 field_0x173;
/* 0x174 */ u8 field_0x174[3];
/* 0x177 */ u8 field_0x177;
/* 0x178 */ u8 field_0x178;
@@ -138,7 +259,7 @@ private:
/* 0x181 */ u8 field_0x181;
/* 0x182 */ u8 field_0x182;
/* 0x183 */ u8 field_0x183;
- /* 0x184 */ u8 field_0x184;
+ /* 0x184 */ bool field_0x184;
/* 0x185 */ u8 field_0x185;
};
diff --git a/include/d/menu/d_menu_dmap_map.h b/include/d/menu/d_menu_dmap_map.h
index 9b4ade2b4b..7e3c02247d 100644
--- a/include/d/menu/d_menu_dmap_map.h
+++ b/include/d/menu/d_menu_dmap_map.h
@@ -3,4 +3,69 @@
#include "dolphin/types.h"
+struct dMenu_StageMapCtrl_c {
+ /* 801C042C */ ~dMenu_StageMapCtrl_c();
+ /* 801C0EE0 */ f32 getMapBlendPer() const;
+ /* 801C0F24 */ void getPixelStageSizeX() const;
+ /* 801C0F3C */ void getPixelStageSizeZ() const;
+ /* 801C0F54 */ void getPixelCenterX() const;
+ /* 801C0F74 */ void getPixelCenterZ() const;
+ /* 801C0F94 */ void initGetTreasureList(u8, s8);
+ /* 801C0FF8 */ bool getTreasureList(f32*, f32*, s8*, u8*, s8*);
+ /* 801C1128 */ void cnvPosTo2Dpos(f32, f32, f32*, f32*) const;
+ /* 801C1194 */ void getPlayerDrawInfo(f32*, f32*, s16*) const;
+ /* 801C1218 */ s8 getRestartDrawInfo(f32*, f32*, s16*) const;
+ /* 801C12A8 */ void setPlusNowStayFloorNo(s8, u8);
+ /* 801C12B4 */ void moveFloor();
+ /* 801C1878 */ void wait_init_proc();
+ /* 801C188C */ void wait_proc();
+ /* 801C18AC */ void zoomIn_init_proc();
+ /* 801C1C40 */ void initZoomIn(u8);
+ /* 801C1CEC */ void initZoomIn(u8, f32, f32);
+ /* 801C1E00 */ void initZoomInCenterHold(u8);
+ /* 801C1E74 */ void zoomCalcSet(f32);
+ /* 801C1EC0 */ void zoomIn_proc();
+ /* 801C1F2C */ void initZoomOut(u8);
+ /* 801C1F70 */ void initZoomWait(f32, f32);
+ /* 801C2004 */ void zoomWait_init_proc();
+ /* 801C205C */ void zoomWait_proc();
+ /* 801C2198 */ void zoomOut_init_proc();
+ /* 801C21AC */ void zoomOut_proc();
+ /* 801C2234 */ void move();
+ /* 801C22F8 */ void getPlayerStayFloorNo() const;
+ /* 801C231C */ void _create(u16, u16, u16, u16, void*);
+ /* 801C235C */ void _create(u16, u16, u16, u16, s8, void*);
+ /* 801C2518 */ void _delete();
+ /* 801C2538 */ void isEnableZoomIn();
+ /* 801C2578 */ void isEnableZoomOut();
+ /* 801C2588 */ void setPlusZoomCenterX(f32);
+ /* 801C2590 */ void setPlusZoomCenterZ(f32);
+
+ static f32 m_zoomCenterMinX;
+ static f32 m_zoomCenterMaxX;
+ static f32 m_zoomCenterMinZ;
+ static f32 m_zoomCenterMaxZ[1 + 1 /* padding */];
+};
+
+struct dMenu_DmapMapCtrl_c : public dMenu_StageMapCtrl_c {
+ /* 801BD144 */ ~dMenu_DmapMapCtrl_c();
+ /* 801C18C0 */ void getZoomMinMaxCheck(f32*, f32*, f32*, f32*, bool*, bool*);
+ /* 801C1B14 */ void calcZoomCenter(f32*, f32*);
+ /* 801C1BA4 */ void getZoomCmPerPixel();
+ /* 801C2028 */ void isEnableZoomMove() const;
+ /* 801C22A8 */ void draw();
+ /* 801C2598 */ void getInitWholeMapScale(f32*, f32, f32, f32, f32);
+ /* 801C25C0 */ void getInitDispCenter(f32*, f32*);
+};
+
+struct dMenu_DmapMap_c {
+ /* 801C04AC */ ~dMenu_DmapMap_c();
+ /* 801C0CD8 */ void _create(u16, u16, u16, u16, void*);
+ /* 801C0D04 */ void _delete();
+ /* 801C0D70 */ void setTexture(u16, u16, u16, u16);
+ /* 801C0E4C */ void setPos(int, int, f32, f32, f32, bool, f32);
+};
+
+
+
#endif /* D_MENU_D_MENU_DMAP_MAP_H */
diff --git a/include/d/menu/d_menu_map_common.h b/include/d/menu/d_menu_map_common.h
index b91fbbb752..ee614cdc30 100644
--- a/include/d/menu/d_menu_map_common.h
+++ b/include/d/menu/d_menu_map_common.h
@@ -1,5 +1,55 @@
#ifndef D_MENU_D_MENU_MAP_COMMON_H
#define D_MENU_D_MENU_MAP_COMMON_H
+#include "dolphin/types.h"
+
+class J2DPicture;
+class JKRArchive;
+class dSelect_cursor_c;
+
+struct dMenuMapCommon_c {
+ /* 801C2718 */ dMenuMapCommon_c();
+ /* 801C27B4 */ virtual ~dMenuMapCommon_c();
+ /* 801C28D8 */ void initiate(JKRArchive*);
+ /* 801C38E4 */ void drawIcon(f32, f32, f32, f32);
+ /* 801C3EC4 */ void iconScale(int, f32, f32, f32);
+ /* 801C43A8 */ void setIconInfo(u8, f32, f32, f32, f32, f32, u8);
+ /* 801C443C */ void clearIconInfo();
+ /* 801C4494 */ void setBlendRatio(u8, f32, f32);
+ /* 801C452C */ void blinkMove(s16);
+ /* 801C4600 */ void moveLightDropAnime();
+ /* 801C4738 */ float getIconSizeX(u8 index);
+ /* 801C4778 */ float getIconSizeY(u8 index);
+ /* 801C47C4 */ void debugIcon();
+
+ struct data {
+ /* 0x00 */ float _0;
+ /* 0x04 */ float _4;
+ /* 0x08 */ float _8;
+ /* 0x0C */ float _C;
+ /* 0x10 */ float _10;
+ /* 0x14 */ u8 _14;
+ /* 0x15 */ u8 _15;
+ };
+
+ /* 0x004 */ J2DPicture* mPictures[23];
+ /* 0x060 */ J2DPicture* _60;
+ /* 0x064 */ dSelect_cursor_c* mpDrawCursor;
+ /* 0x068 */ dSelect_cursor_c* mpPortalIcon;
+ /* 0x06C */ u32 _6c;
+ /* 0x070 */ data _70[128];
+ /* 0xC70 */ u16 _c70;
+ /* 0xC72 */ u16 _c72;
+ /* 0xC74 */ u16 _c74;
+ /* 0xC76 */ u16 _c76;
+ /* 0xC78 */ float _c78;
+ /* 0xC7C */ float _c7c;
+ /* 0xC80 */ float _c80;
+ /* 0xC84 */ float _c84;
+ /* 0xC88 */ float _c88;
+ /* 0xC8C */ float _c8c;
+ /* 0xC90 */ u8 _c90;
+};
+
#endif /* D_MENU_D_MENU_MAP_COMMON_H */
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 2d898981f8..9e28b863a7 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -175,6 +175,8 @@ public:
mCollectCursorPosX = x;
mCollectCursorPosY = y;
}
+ void setMapDrugFlag(u8 flag) { mMapDrugFlag = flag; }
+ bool isTempBit(int bit) { return mTempBits & (1 << bit) != 0; }
public:
/* 0x04 */ u8 unk4[4];
@@ -700,6 +702,13 @@ inline bool dMeter2Info_isShopTalkFlag() {
return g_meter2_info.isShopTalkFlag();
}
+inline void dMeter2Info_setMapDrugFlag(u8 flag) {
+ g_meter2_info.setMapDrugFlag(flag);
+}
+
+inline bool dMeter2Info_isTempBit(int bit) {
+ return g_meter2_info.isTempBit(bit);
+}
const char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index f10e134d59..cb352fbb5c 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -99,9 +99,9 @@ public:
/* 80237A88 */ static void setNowTalkFlowNo(s16);
/* 80237A9C */ void getNowTalkFlowNo();
/* 80237AB0 */ void setDemoMessage(u32);
- /* 80237AE0 */ void setTalkHeap(void*);
+ /* 80237AE0 */ static void setTalkHeap(void*);
/* 80237B10 */ void setTalkHeapLocal(void*);
- /* 80237B54 */ void getTalkHeap();
+ /* 80237B54 */ static void* getTalkHeap();
/* 80237B68 */ void isDraw();
/* 80237BFC */ void setButtonStatusLocal();
/* 80237D88 */ void setDemoMessageLocal(u32);
@@ -391,6 +391,14 @@ inline bool dMsgObject_isFukidashiCheck() {
return dMsgObject_getMsgObjectClass()->getScrnDrawPtr() != NULL ? true : false;
}
+inline void* dMsgObject_getTalkHeap() {
+ return dMsgObject_c::getTalkHeap();
+}
+
+inline void dMsgObject_setTalkHeap(void* heap) {
+ dMsgObject_c::setTalkHeap(heap);
+}
+
class dMsgObject_HowlHIO_c {
public:
/* 80232AEC */ dMsgObject_HowlHIO_c();
diff --git a/libs/JSystem/JAudio2/JASBasicInst.cpp b/libs/JSystem/JAudio2/JASBasicInst.cpp
index ffeff4c682..286a38cd75 100644
--- a/libs/JSystem/JAudio2/JASBasicInst.cpp
+++ b/libs/JSystem/JAudio2/JASBasicInst.cpp
@@ -1,52 +1,10 @@
//
-// Generated By: dol2asm
-// Translation Unit: JASBasicInst
+// JASBasicInst
//
#include "JSystem/JAudio2/JASBasicInst.h"
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JKernel/JKRHeap.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__12JASBasicInstFv();
-extern "C" void __dt__12JASBasicInstFv();
-extern "C" void getParam__12JASBasicInstCFiiP12JASInstParam();
-extern "C" void setKeyRegionCount__12JASBasicInstFUlP7JKRHeap();
-extern "C" void setOsc__12JASBasicInstFiPCQ213JASOscillator4Data();
-extern "C" void getKeyRegion__12JASBasicInstFi();
-extern "C" void __dt__Q212JASBasicInst7TKeymapFv();
-extern "C" void __dt__7JASInstFv();
-extern "C" void __ct__Q212JASBasicInst7TKeymapFv();
-extern "C" void getType__12JASBasicInstCFv();
-
-//
-// External References:
-//
-
-extern "C" void bzero__7JASCalcFPvUl();
-extern "C" void* __nwa__FUlP7JKRHeapi();
-extern "C" void __dl__FPv();
-extern "C" void __destroy_new_array();
-extern "C" void __construct_new_array();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-
-// /* 803C76FC-803C7710 02481C 0014+00 3/3 2/2 0/0 .data __vt__7JASInst */
-SECTION_DATA extern void* __vt__7JASInst[5];
/* 80298014-8029807C 292954 0068+00 0/0 2/2 0/0 .text __ct__12JASBasicInstFv */
JASBasicInst::JASBasicInst() {
@@ -116,21 +74,3 @@ JASBasicInst::TKeymap* JASBasicInst::getKeyRegion(int param_0) {
/* 80298250-8029828C 292B90 003C+00 2/2 0/0 0/0 .text __dt__Q212JASBasicInst7TKeymapFv */
JASBasicInst::TKeymap::~TKeymap() {
}
-
-/* 8029828C-802982D4 292BCC 0048+00 1/0 0/0 0/0 .text __dt__7JASInstFv */
-// If not here, default placement is after JASBasicInst::JASBasicInst
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-//asm JASInst::~JASInst() {
-asm void __dt__7JASInstFv() {
- nofralloc
-#include "asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s"
-}
-#pragma pop
-
-/* 802982D4-802982E0 292C14 000C+00 1/1 0/0 0/0 .text __ct__Q212JASBasicInst7TKeymapFv */
-JASBasicInst::TKeymap::TKeymap() {
- field_0x0 = -1;
-}
-
diff --git a/libs/JSystem/JAudio2/JASCalc.cpp b/libs/JSystem/JAudio2/JASCalc.cpp
index 83ae399076..d8c71836aa 100644
--- a/libs/JSystem/JAudio2/JASCalc.cpp
+++ b/libs/JSystem/JAudio2/JASCalc.cpp
@@ -1,30 +1,12 @@
//
-// Generated By: dol2asm
-// Translation Unit: JASCalc
+// JASCalc
//
#include "JSystem/JAudio2/JASCalc.h"
-#include "dol2asm.h"
#include "dolphin/os/OSCache.h"
#include "math.h"
#include "limits.h"
-//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
/* 8028F2E8-8028F318 289C28 0030+00 0/0 1/1 0/0 .text imixcopy__7JASCalcFPCsPCsPsUl */
void JASCalc::imixcopy(const s16 *s1, const s16 *s2, s16 *dst, u32 n) {
for (n; n != 0; n--) {
@@ -154,7 +136,7 @@ void JASCalc::bzero(void *dest, u32 size) {
/* ############################################################################################## */
/* 8039ABB8-8039AFB8 027218 0400+00 0/0 4/4 0/0 .rodata CUTOFF_TO_IIR_TABLE__7JASCalc */
-SECTION_RODATA s16 const JASCalc::CUTOFF_TO_IIR_TABLE[128][4] = {
+s16 const JASCalc::CUTOFF_TO_IIR_TABLE[128][4] = {
0x0F5C, 0x0A3D, 0x4665, 0x1E73,
0x0F5E, 0x0A3D, 0x4664, 0x1E73,
0x0F63, 0x0A3C, 0x4661, 0x1E71,
@@ -284,7 +266,6 @@ SECTION_RODATA s16 const JASCalc::CUTOFF_TO_IIR_TABLE[128][4] = {
0x7E3B, 0x0029, 0x011B, 0x007A,
0x7FFF, 0x0000, 0x0000, 0x0000,
};
-COMPILER_STRIP_GATE(0x8039ABB8, &JASCalc::CUTOFF_TO_IIR_TABLE);
// currently required because of missing functions
// JASCalc::hannWindow(short *, unsigned long)
diff --git a/libs/JSystem/JUtility/JUTException.cpp b/libs/JSystem/JUtility/JUTException.cpp
index 5c304db5fd..f7c2b7cc16 100644
--- a/libs/JSystem/JUtility/JUTException.cpp
+++ b/libs/JSystem/JUtility/JUTException.cpp
@@ -6,6 +6,7 @@
#include "JSystem/JUtility/JUTException.h"
#include "JSystem/JUtility/JUTConsole.h"
#include "JSystem/JUtility/JUTDirectPrint.h"
+#include "JSystem/JUtility/JUTDirectFile.h"
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
@@ -997,7 +998,7 @@ bool JUTException::queryMapAddress_single(char* mapPath, u32 address, s32 sectio
return false;
}
- int result = 0;
+ bool result = 0;
do {
char* src = buffer;
int found_section = 0;
@@ -1012,11 +1013,10 @@ bool JUTException::queryMapAddress_single(char* mapPath, u32 address, s32 sectio
break;
}
- char* dst = section_name;
int i = 0;
char* src = buffer + 1;
- for (; *src != '\0'; i++, dst++, src++) {
- *dst = *src;
+ for (; *src != '\0'; i++, src++) {
+ section_name[i] = *src;
if (*src == ' ' || i == 0xf)
break;
}
@@ -1100,7 +1100,8 @@ bool JUTException::queryMapAddress_single(char* mapPath, u32 address, s32 sectio
}
end:
- bool bresult = (file.fclose() & 0xFF) != 0;
+ file.fclose();
+ bool bresult = result != false;
return bresult;
}
#else
diff --git a/obj_files.mk b/obj_files.mk
index e92ce4627c..8a4ace86ad 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -1051,6 +1051,7 @@ O_FILES_SYM_ON := \
$(BUILD_DIR)/libs/JSystem/JAudio2/JAUAudioArcLoader.o \
$(BUILD_DIR)/libs/JSystem/JAudio2/JAUClusterSound.o \
$(BUILD_DIR)/libs/JSystem/JAudio2/JAIStreamMgr.o \
+ $(BUILD_DIR)/libs/JSystem/JAudio2/JASBasicInst.o \
$(BUILD_DIR)/libs/JSystem/J2DGraph/J2DAnmLoader.o \
$(BUILD_DIR)/libs/JSystem/J2DGraph/J2DPicture.o \
$(BUILD_DIR)/libs/JSystem/J2DGraph/J2DMaterialFactory.o \
diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp
index a893a9396f..720eb7a4d4 100644
--- a/src/d/com/d_com_inf_game.cpp
+++ b/src/d/com/d_com_inf_game.cpp
@@ -2255,13 +2255,13 @@ u8 dComIfG_getNowCalcRegion() {
return 0xFF;
}
-BOOL dComIfGp_isLightDropMapVisible() {
+bool dComIfGp_isLightDropMapVisible() {
for (int i = 0; i < 3; i++) {
if (dComIfGs_isLightDropGetFlag(i) != FALSE && dComIfGs_getLightDropNum(i) < 16) {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
/* 8002EE60-8002EEB0 0297A0 0050+00 1/1 11/11 0/0 .text dComIfGp_getNowLevel__Fv */
diff --git a/src/d/menu/d_menu_dmap.cpp b/src/d/menu/d_menu_dmap.cpp
index d52d73966e..d00ce2342e 100644
--- a/src/d/menu/d_menu_dmap.cpp
+++ b/src/d/menu/d_menu_dmap.cpp
@@ -4,170 +4,38 @@
//
#include "d/menu/d_menu_dmap.h"
-#include "string.h"
+#include "d/menu/d_menu_item_explain.h"
+#include "d/msg/d_msg_string.h"
+#include "d/msg/d_msg_object.h"
+#include "d/msg/d_msg_class.h"
+#include "d/map/d_map_path_dmap.h"
+#include "d/meter/d_meter_haihai.h"
+#include "d/meter/d_meter_HIO.h"
+#include "d/meter/d_meter2_info.h"
+#include "d/a/d_a_player.h"
#include "d/d_lib.h"
+#include "d/d_item.h"
+#include "d/d_tresure.h"
+#include "d/pane/d_pane_class.h"
+#include "d/save/d_save.h"
+#include "f_op/f_op_msg_mng.h"
+#include "m_Do/m_Do_controller_pad.h"
+#include "m_Do/m_Do_dvd_thread.h"
+#include "m_Do/m_Do_graphic.h"
+#include "JSystem/J2DGraph/J2DAnmLoader.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
+#include "JSystem/J2DGraph/J2DOrthoGraph.h"
+#include "JSystem/J2DGraph/J2DAnimation.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRMemArchive.h"
+#include "SSystem/SComponent/c_math.h"
+#include "string.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
-// Types:
-//
-
-struct renderingDmap_c {
- /* 801C0380 */ ~renderingDmap_c();
- /* 801C051C */ renderingDmap_c();
-};
-
-struct mDoDvdThd_mountArchive_c {
- /* 80015E14 */ void create(char const*, u8, JKRHeap*);
-};
-
-struct mDoCPd_c {
- static u8 m_cpadInfo[256];
-};
-
-struct dTres_c {
- /* 8009C27C */ void getBossIconFloorNo(int*);
-};
-
-struct dSv_memBit_c {
- /* 80034860 */ void isSwitch(int) const;
- /* 80034934 */ void isDungeonItem(int) const;
-};
-
-struct dSv_info_c {
- /* 80035360 */ void isSwitch(int, int) const;
-};
-
-struct dSv_event_c {
- /* 800349BC */ void isEventBit(u16) const;
-};
-
-struct dMsgString_c {
- /* 80249C20 */ dMsgString_c();
- /* 80249D28 */ ~dMsgString_c();
-};
-
-struct dMsgObject_c {
- /* 80237AE0 */ void setTalkHeap(void*);
- /* 80237B54 */ void getTalkHeap();
- /* 8023822C */ void getStatus();
-};
-
-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 dMpath_c {
- static f32 mAllSizeX;
- static f32 mAllSizeZ;
-};
-
-struct dMeterHaihai_c {
- /* 8020AE8C */ dMeterHaihai_c(u8);
- /* 8020B814 */ void drawHaihai(u8, f32, f32, f32, f32);
- /* 8020BC20 */ void setScale(f32);
-};
-
-struct JMSMesgEntry_c {};
-
-struct dMeter2Info_c {
- /* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*);
- /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*);
- /* 8021CF08 */ void readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*,
- J2DPicture*, void*, J2DPicture*, int);
-};
-
-struct dMenu_StageMapCtrl_c {
- /* 801C042C */ ~dMenu_StageMapCtrl_c();
- /* 801C0EE0 */ void getMapBlendPer() const;
- /* 801C0F24 */ void getPixelStageSizeX() const;
- /* 801C0F3C */ void getPixelStageSizeZ() const;
- /* 801C0F54 */ void getPixelCenterX() const;
- /* 801C0F74 */ void getPixelCenterZ() const;
- /* 801C0F94 */ void initGetTreasureList(u8, s8);
- /* 801C0FF8 */ void getTreasureList(f32*, f32*, s8*, u8*, s8*);
- /* 801C1194 */ void getPlayerDrawInfo(f32*, f32*, s16*) const;
- /* 801C1218 */ void getRestartDrawInfo(f32*, f32*, s16*) const;
- /* 801C12A8 */ void setPlusNowStayFloorNo(s8, u8);
- /* 801C1C40 */ void initZoomIn(u8);
- /* 801C1CEC */ void initZoomIn(u8, f32, f32);
- /* 801C1E00 */ void initZoomInCenterHold(u8);
- /* 801C1F2C */ void initZoomOut(u8);
- /* 801C1F70 */ void initZoomWait(f32, f32);
- /* 801C2234 */ void move();
- /* 801C22F8 */ void getPlayerStayFloorNo() const;
- /* 801C231C */ void _create(u16, u16, u16, u16, void*);
- /* 801C235C */ void _create(u16, u16, u16, u16, s8, void*);
- /* 801C2518 */ void _delete();
- /* 801C2538 */ void isEnableZoomIn();
- /* 801C2578 */ void isEnableZoomOut();
- /* 801C2588 */ void setPlusZoomCenterX(f32);
- /* 801C2590 */ void setPlusZoomCenterZ(f32);
-};
-
-struct dMenu_ItemExplain_c {
- /* 801DA754 */ dMenu_ItemExplain_c(JKRExpHeap*, JKRArchive*, STControl*, bool);
- /* 801DB470 */ void move();
- /* 801DB514 */ void draw(J2DOrthoGraph*);
- /* 801DC3C8 */ void openExplainDmap(u8, u8, u8, bool, u8);
-};
-
-struct dMenu_DmapMap_c {
- /* 801C04AC */ ~dMenu_DmapMap_c();
-};
-
-struct dMenu_DmapMapCtrl_c {
- /* 801BD144 */ ~dMenu_DmapMapCtrl_c();
-};
-
-struct dMenu_DmapBg_c {
- /* 801B7F20 */ dMenu_DmapBg_c(JKRExpHeap*, STControl*);
- /* 801B8110 */ void mapScreenInit();
- /* 801B884C */ void mapScreenAnime();
- /* 801B88F4 */ void mapIconScaleSet(u8);
- /* 801B893C */ void iconScaleAnmInit(f32, f32, u8);
- /* 801B8954 */ void iconScaleAnm();
- /* 801B8A0C */ void buttonIconScreenInit();
- /* 801B8DE4 */ void setAButtonString(u32);
- /* 801B8EBC */ void setBButtonString(u32);
- /* 801B8F94 */ void setCButtonString(u32);
- /* 801B90BC */ void setJButtonString(u32);
- /* 801B90E0 */ void createExplain();
- /* 801B9164 */ void deleteExplain();
- /* 801B91DC */ void baseScreenInit();
- /* 801B944C */ void setFloorMessage();
- /* 801BA0B4 */ bool dpdMove(s8, s8, s8, u8*, u8);
- /* 801BA0BC */ ~dMenu_DmapBg_c();
- /* 801BA60C */ void setAllAlphaRate(f32, bool);
- /* 801BA700 */ void setGoldAnimation(bool);
- /* 801BA7F0 */ void setGoldFrameAlphaRate(f32);
- /* 801BA974 */ void addGoldFrameAlphaRate();
- /* 801BAA4C */ void decGoldFrameAlphaRate();
- /* 801BAB10 */ void draw();
- /* 801BB334 */ void update();
- /* 801BB464 */ void calcCursor();
- /* 801BB468 */ void drawCursor();
-};
-
-struct dMenuMapCommon_c {
- /* 801C2718 */ dMenuMapCommon_c();
- /* 801C27B4 */ ~dMenuMapCommon_c();
- /* 801C28D8 */ void initiate(JKRArchive*);
- /* 801C38E4 */ void drawIcon(f32, f32, f32, f32);
- /* 801C3EC4 */ void iconScale(int, f32, f32, f32);
- /* 801C43A8 */ void setIconInfo(u8, f32, f32, f32, f32, f32, u8);
- /* 801C443C */ void clearIconInfo();
-};
-
-struct J2DAnmLoaderDataBase {
- /* 80308A6C */ void load(void const*);
-};
-
-//
// Forward References:
//
@@ -407,9 +275,6 @@ extern "C" extern void* __vt__16renderingDAmap_c[38];
extern "C" extern void* __vt__19dMenu_DmapMapCtrl_c[10 + 51 /* padding */];
extern "C" extern void* __vt__15renderingDmap_c[43 + 1 /* padding */];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 g_fmapHIO[1188];
-extern "C" extern u8 g_meter2_info[248];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" f32 mAllSizeX__8dMpath_c;
extern "C" f32 mAllSizeZ__8dMpath_c;
@@ -431,7 +296,19 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+typedef void (dMenu_Dmap_c::*ProcFunc)();
+
/* 803BC7EC-803BC7F8 -00001 000C+00 0/1 0/0 0/0 .data @4861 */
+#ifdef NONMATCHING
+static ProcFunc init_process[5] = {
+ &dMenu_Dmap_c::itemInfo_init_proc,
+ &dMenu_Dmap_c::mapMode_init_proc,
+ &dMenu_Dmap_c::infoModeChange_init_proc,
+ &dMenu_Dmap_c::mapModeChange_init_proc,
+ &dMenu_Dmap_c::lv5_talk_init_proc,
+};
+
+#else
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4861[3] = {
@@ -488,8 +365,18 @@ SECTION_DATA static u8 init_process[60] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
/* 803BC864-803BC870 -00001 000C+00 0/1 0/0 0/0 .data @4866 */
+#ifdef NONMATCHING
+static ProcFunc move_process[5] = {
+ &dMenu_Dmap_c::itemInfo_proc,
+ &dMenu_Dmap_c::mapMode_proc,
+ &dMenu_Dmap_c::infoModeChange_proc,
+ &dMenu_Dmap_c::mapModeChange_proc,
+ &dMenu_Dmap_c::lv5_talk_proc,
+};
+#else
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4866[3] = {
@@ -546,7 +433,17 @@ SECTION_DATA static u8 move_process[60] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+#ifdef NONMATCHING
+static ProcFunc itemInfo_subProcess[5] = {
+ &dMenu_Dmap_c::itemSelect,
+ &dMenu_Dmap_c::itemSelectAnm,
+ &dMenu_Dmap_c::itemInfoOpenAnm,
+ &dMenu_Dmap_c::itemInfoWait,
+ &dMenu_Dmap_c::itemInfoCloseAnm,
+};
+#else
/* 803BC8DC-803BC8E8 -00001 000C+00 0/1 0/0 0/0 .data @4871 */
#pragma push
#pragma force_active on
@@ -604,7 +501,14 @@ SECTION_DATA static u8 itemInfo_subProcess[60] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+#ifdef NONMATCHING
+static ProcFunc floor_init_process[2] = {
+ &dMenu_Dmap_c::floorSelect_init_proc,
+ &dMenu_Dmap_c::floorChange_init_proc,
+};
+#else
/* 803BC954-803BC960 -00001 000C+00 0/1 0/0 0/0 .data @4876 */
#pragma push
#pragma force_active on
@@ -630,7 +534,14 @@ SECTION_DATA static u8 floor_init_process[24] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+#ifdef NONMATCHING
+static ProcFunc floor_move_process[2] = {
+ &dMenu_Dmap_c::floorSelect_proc,
+ &dMenu_Dmap_c::floorChange_proc,
+};
+#else
/* 803BC984-803BC990 -00001 000C+00 0/1 0/0 0/0 .data @4878 */
#pragma push
#pragma force_active on
@@ -656,7 +567,15 @@ SECTION_DATA static u8 floor_move_process[24] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+#ifdef NONMATCHING
+static ProcFunc map_init_process[3] = {
+ &dMenu_Dmap_c::zoomWait_init_proc,
+ &dMenu_Dmap_c::zoomIn_init_proc,
+ &dMenu_Dmap_c::zoomOut_init_proc,
+};
+#else
/* 803BC9B4-803BC9C0 -00001 000C+00 0/1 0/0 0/0 .data @4880 */
#pragma push
#pragma force_active on
@@ -693,7 +612,15 @@ SECTION_DATA static u8 map_init_process[36] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+#ifdef NONMATCHING
+static ProcFunc map_move_process[3] = {
+ &dMenu_Dmap_c::zoomWait_proc,
+ &dMenu_Dmap_c::zoomIn_proc,
+ &dMenu_Dmap_c::zoomOut_proc,
+};
+#else
/* 803BC9FC-803BCA08 -00001 000C+00 0/1 0/0 0/0 .data @4883 */
#pragma push
#pragma force_active on
@@ -920,6 +847,7 @@ SECTION_DATA static u8 map_move_process[36 + 156 /* padding */] = {
0x00,
0x00,
};
+#endif
/* 803BCAE0-803BCAEC 019C00 000C+00 4/4 0/0 0/0 .data __vt__15dMenu_DmapMap_c */
SECTION_DATA extern void* __vt__15dMenu_DmapMap_c[3] = {
@@ -984,6 +912,53 @@ SECTION_SDATA2 static f32 lit_3963 = 1.0f;
/* 801B7F20-801B8110 1B2860 01F0+00 1/1 0/0 0/0 .text
* __ct__14dMenu_DmapBg_cFP10JKRExpHeapP9STControl */
+// Matches with literals and inheritance
+#ifdef NONMATCHING
+dMenu_DmapBg_c::dMenu_DmapBg_c(JKRExpHeap* param_1, STControl* param_2) {
+ field_0xc98 = param_1;
+ field_0xca0 = param_2;
+ field_0xd94 = 0.0f;
+ field_0xd98 = 0.0f;
+ field_0xd9c = 0.0f;
+ field_0xda8 = 1.0f;
+ field_0xdb4 = 0.0f;
+ field_0xdb8 = 0.0f;
+ field_0xdd3 = 0xff;
+ field_0xdd4 = 0x9d;
+ field_0xdd6 = 0x9d;
+ field_0xdd5 = 0xff;
+ field_0xdd7 = 0;
+ field_0xdd8 = 1;
+ mString = new dMsgString_c();
+ JUT_ASSERT(621, mString != 0);
+ mpTalkHeap = JKRCreateExpHeap(0x32000, field_0xc98, 0);
+ JUT_ASSERT(624, mpTalkHeap != 0);
+ mpItemExplain = NULL;
+ mpMeterHaihai = new dMeterHaihai_c(2);
+ JUT_ASSERT(630, mpMeterHaihai != 0);
+ field_0xdda = 0;
+ OS_REPORT("remain ===> %d\n", field_0xc98->getTotalFreeSize());
+ baseScreenInit();
+ mapScreenInit();
+ char amStack_38[32];
+ strcpy(amStack_38, "/res/FieldMap/D_MN10.arc");
+ char acStack_40[8];
+ strcpy(acStack_40, dComIfGp_getStartStageName());
+ amStack_38[18] = acStack_40[4];
+ amStack_38[19] = acStack_40[5];
+ if (dComIfGs_isDungeonItemMap() || dComIfGs_isDungeonItemCompass()) {
+ field_0xd1c = mDoDvdThd_mountArchive_c::create(amStack_38, 2, mDoExt_getJ2dHeap());
+ } else {
+ field_0xd1c = NULL;
+ }
+ field_0xd20 = 0;
+ mpBackTexture = 0;
+ field_0xdbc = 0.0f;
+ memset(field_0xd80, 0, sizeof(field_0xd80));
+ buttonIconScreenInit();
+ field_0xdd0 = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -992,6 +967,7 @@ asm dMenu_DmapBg_c::dMenu_DmapBg_c(JKRExpHeap* param_0, STControl* param_1) {
#include "asm/d/menu/d_menu_dmap/__ct__14dMenu_DmapBg_cFP10JKRExpHeapP9STControl.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -1006,6 +982,80 @@ SECTION_SDATA2 static f32 lit_4073 = -15.0f;
/* 801B8110-801B884C 1B2A50 073C+00 1/1 0/0 0/0 .text mapScreenInit__14dMenu_DmapBg_cFv
*/
+// Matches with literals and inheritance
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::mapScreenInit() {
+ for (int i = 0; i < 2; i++) {
+ mMapScreen[i] = new J2DScreen();
+ JUT_ASSERT(689, mMapScreen[i] != 0);
+ bool fg = mMapScreen[i]->setPriority("zelda_dungeon_map_map.blo", 0x20000,
+ dComIfGp_getDmapResArchive());
+ JUT_ASSERT(693, fg != false);
+ dPaneClass_showNullPane(mMapScreen[i]);
+ }
+
+ #ifdef DEBUG
+ mpBlack = new CPaneMgrAlpha(mMapScreen[0], 'm_black', 2, NULL);
+ JUT_ASSERT(699, mpBlack != 0);
+ mpBlack->setAlphaRate(0.0f);
+ #else
+ mpBlack = NULL;
+ #endif
+
+ mMapScreen[0]->search('map_icon')->hide();
+ mMapScreen[0]->search('map_aria')->hide();
+ mMapScreen[0]->search('n_all')->hide();
+ mMapScreen[1]->search('n_all')->hide();
+ mMapScreen[0]->search('m_black')->hide();
+ mMapScreen[1]->search('bs_00_0')->hide();
+ mMapScreen[1]->search('bs_00_1')->hide();
+ mMapScreen[1]->search('gold00_0')->hide();
+ mMapScreen[1]->search('gold00_1')->hide();
+ mMapScreen[1]->search('m_black')->hide();
+ mMapScreen[1]->search('center_n')->hide();
+ mMapScreen[1]->search('map_ai_n')->setBasePosition(J2DBasePosition_0);
+ mMapScreen[0]->search('center_n')->setBasePosition(J2DBasePosition_4);
+ OSInitFastCast();
+ {
+ Mtx mtxVar1;
+ CPaneMgr aCStack_84;
+ Vec local_184 = aCStack_84.getGlobalVtx(mMapScreen[1]->search('map_icon'), &mtxVar1, 0, false, 0);
+ field_0xdc0 = local_184.x;
+ field_0xdc4 = local_184.y;
+ }
+ for (int i = 0; i < 2; i++) {
+ mpMapRoot[i] = new CPaneMgrAlphaMorf(mMapScreen[i], 'ROOT', 2, NULL);
+ JUT_ASSERT(751, mpMapRoot[i] != 0);
+ }
+ void* btk0 = JKRGetNameResource("zelda_dungeon_map_map.btk", dComIfGp_getDmapResArchive());
+ JUT_ASSERT(766, btk0 != 0);
+ field_0xd28[0] = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(btk0);
+ field_0xd28[0]->searchUpdateMaterialID(mMapScreen[0]);
+ field_0xdc8[0] = 0.0f;
+ field_0xd28[0]->setFrame(field_0xdc8[0]);
+ mMapScreen[0]->animation();
+ setGoldAnimation(true);
+ field_0xcc4 = (J2DPicture*)mMapScreen[1]->search('map_aria');
+ field_0xcc4->setCornerColor(JUtility::TColor(0xff, 0xff, 0xff, 0xff));
+ field_0xcc4->setWhite(JUtility::TColor(0xff, 0xff, 0xff, 0xff));
+ CPaneMgr aCStack_f0;
+ Mtx mtxVar1;
+ Vec vec1 = aCStack_f0.getGlobalVtx(field_0xcc4, &mtxVar1, 0, false, 0);
+ Vec vec2 = aCStack_f0.getGlobalVtx(field_0xcc4, &mtxVar1, 3, false, 0);
+ field_0xda0 = vec2.x - vec1.x;
+ field_0xda4 = vec2.y - vec1.y;
+ J2DPicture* local_1ac = (J2DPicture*) mMapScreen[1]->search('map_icon');
+ local_1ac->setBasePosition(J2DBasePosition_4);
+ local_1ac->setCornerColor(JUtility::TColor(0xff, 0xff, 0xff, 0xff));
+ local_1ac->setAlpha(0);
+ initiate(dComIfGp_getDmapResArchive());
+ for (int i = 0; i < 2; i++) {
+ mpMapSpace[i] = new CPaneMgr(mMapScreen[i], 'mapspace', 0, NULL);
+ JUT_ASSERT(817, mpMapSpace[i] != 0);
+ mpMapSpace[i]->paneTrans(0.0f, -15.0f);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1014,6 +1064,7 @@ asm void dMenu_DmapBg_c::mapScreenInit() {
#include "asm/d/menu/d_menu_dmap/mapScreenInit__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80453FF4-80453FF8 0025F4 0004+00 2/2 0/0 0/0 .sdata2 @4106 */
@@ -1024,6 +1075,21 @@ SECTION_SDATA2 static f64 lit_4108 = 4503601774854144.0 /* cast s32 to float */;
/* 801B884C-801B88F4 1B318C 00A8+00 1/1 0/0 0/0 .text mapScreenAnime__14dMenu_DmapBg_cFv
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::mapScreenAnime() {
+ if (0.0f == field_0xd94 && 0.0f == field_0xd98) {
+ for (int i = 0; i < 1; i++) {
+ field_0xdc8[i] += 0.4f;
+ if (field_0xdc8[i] >= field_0xd28[i]->getFrameMax()) {
+ field_0xdc8[i] -= field_0xd28[i]->getFrameMax();
+ }
+ field_0xd28[i]->setFrame(field_0xdc8[i]);
+ mMapScreen[i]->animation();
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1032,8 +1098,24 @@ asm void dMenu_DmapBg_c::mapScreenAnime() {
#include "asm/d/menu/d_menu_dmap/mapScreenAnime__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* 801B88F4-801B893C 1B3234 0048+00 1/1 0/0 0/0 .text mapIconScaleSet__14dMenu_DmapBg_cFUc */
+// Matches with literals and inheritance
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::mapIconScaleSet(u8 param_1) {
+ f32 fVar1;
+ f32 fVar2;
+ if (param_1 != 0) {
+ fVar1 = 0.0f;
+ fVar2 = 1.0f;
+ } else {
+ fVar1 = 1.0f;
+ fVar2 = 0.0f;
+ }
+ iconScale(1, fVar1, fVar1, fVar2);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1042,47 +1124,69 @@ asm void dMenu_DmapBg_c::mapIconScaleSet(u8 param_0) {
#include "asm/d/menu/d_menu_dmap/mapIconScaleSet__14dMenu_DmapBg_cFUc.s"
}
#pragma pop
+#endif
/* 801B893C-801B8954 1B327C 0018+00 2/2 0/0 0/0 .text iconScaleAnmInit__14dMenu_DmapBg_cFffUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::iconScaleAnmInit(f32 param_0, f32 param_1, u8 param_2) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/iconScaleAnmInit__14dMenu_DmapBg_cFffUc.s"
+void dMenu_DmapBg_c::iconScaleAnmInit(f32 param_0, f32 param_1, u8 param_2) {
+ field_0xdac = param_0;
+ field_0xdb0 = param_1;
+ field_0xdd1 = param_2;
+ field_0xdd2 = 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80454000-80454004 002600 0004+00 1/1 0/0 0/0 .sdata2 @4133 */
SECTION_SDATA2 static f32 lit_4133 = 1.0f / 20.0f;
/* 801B8954-801B8A0C 1B3294 00B8+00 2/2 0/0 0/0 .text iconScaleAnm__14dMenu_DmapBg_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::iconScaleAnm() {
+// Matches with literals and inheritance
+#ifdef NONMATCHING
+bool dMenu_DmapBg_c::iconScaleAnm() {
+ bool rv = false;
+ if (field_0xdd2 > field_0xdd1) {
+ return true;
+ }
+ f32 dVar7 = fopMsgM_valueIncrease(field_0xdd1, field_0xdd2, 4);
+ f32 dVar8;
+ f32 dVar1;
+ if (field_0xdac > field_0xdb0) {
+ dVar8 = 0.05f * dVar7;
+ dVar1 = 1.0f - dVar7;
+ } else {
+ dVar7 = 1.0f - dVar7;
+ dVar8 = dVar7;
+ dVar1 = 1.0f - dVar7;
+ }
+ iconScale(1, dVar7, dVar8, dVar1);
+ field_0xdd2++;
+ if (field_0xdd2 >= field_0xdd1) {
+ rv = true;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm bool dMenu_DmapBg_c::iconScaleAnm() {
nofralloc
#include "asm/d/menu/d_menu_dmap/iconScaleAnm__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80395518-80395540 021B78 0028+00 2/2 0/0 0/0 .rodata cont_at$4145 */
-SECTION_RODATA static u8 const cont_at_4145[40] = {
- 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
- 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74,
- 0x5F, 0x61, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x34,
+SECTION_RODATA static u64 const cont_at_4145[5] = {
+ 'cont_at', 'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4',
};
COMPILER_STRIP_GATE(0x80395518, &cont_at_4145);
/* 80395540-80395568 021BA0 0028+00 0/1 0/0 0/0 .rodata cont_bt$4146 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const cont_bt_4146[40] = {
- 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
- 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74,
- 0x5F, 0x62, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x34,
+SECTION_RODATA static u64 const cont_bt_4146[5] = {
+ 'cont_bt', 'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4',
};
COMPILER_STRIP_GATE(0x80395540, &cont_bt_4146);
#pragma pop
@@ -1090,10 +1194,8 @@ COMPILER_STRIP_GATE(0x80395540, &cont_bt_4146);
/* 80395568-80395590 021BC8 0028+00 0/1 0/0 0/0 .rodata font_at$4147 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const font_at[40] = {
- 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
- 0x74, 0x31, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x32, 0x66, 0x6F, 0x6E, 0x74,
- 0x5F, 0x61, 0x74, 0x33, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x34,
+SECTION_RODATA static u64 const font_at[5] = {
+ 'font_at', 'font_at1', 'font_at2', 'font_at3', 'font_at4',
};
COMPILER_STRIP_GATE(0x80395568, &font_at);
#pragma pop
@@ -1101,10 +1203,8 @@ COMPILER_STRIP_GATE(0x80395568, &font_at);
/* 80395590-803955B8 021BF0 0028+00 0/1 0/0 0/0 .rodata font_bt$4148 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const font_bt[40] = {
- 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
- 0x74, 0x31, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x32, 0x66, 0x6F, 0x6E, 0x74,
- 0x5F, 0x62, 0x74, 0x33, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x34,
+SECTION_RODATA static u64 const font_bt[5] = {
+ 'font_bt', 'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4',
};
COMPILER_STRIP_GATE(0x80395590, &font_bt);
#pragma pop
@@ -1112,8 +1212,8 @@ COMPILER_STRIP_GATE(0x80395590, &font_bt);
/* 803955B8-803955C8 021C18 0010+00 0/1 0/0 0/0 .rodata c_tag$4155 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const c_tag_4155[16] = {
- 0x66, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x5F, 0x73, 0x00, 0x00, 0x66, 0x5F, 0x74, 0x65, 0x78, 0x74,
+SECTION_RODATA static u64 const c_tag_4155[2] = {
+ 'f_text_s', 'f_text',
};
COMPILER_STRIP_GATE(0x803955B8, &c_tag_4155);
#pragma pop
@@ -1132,6 +1232,67 @@ SECTION_SDATA2 static f32 lit_4191 = 160.0f;
SECTION_SDATA2 static f32 lit_4192 = 321.0f;
/* 801B8A0C-801B8DE4 1B334C 03D8+00 1/1 0/0 0/0 .text buttonIconScreenInit__14dMenu_DmapBg_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::buttonIconScreenInit() {
+ mButtonScreen = new J2DScreen();
+ JUT_ASSERT(916, mButtonScreen != 0);
+ bool fg = mButtonScreen->setPriority("zelda_dungeon_map_spot_button_revo.blo", 0x20000, dComIfGp_getDmapResArchive());
+ JUT_ASSERT(922, fg != false);
+ dPaneClass_showNullPane(mButtonScreen);
+
+ #ifdef DEBUG
+ mDecorateScreen = new J2DScreen();
+ JUT_ASSERT(926, mDecorateScreen != 0);
+ fg = mDecorateScreen->setPriority("zelda_dungeon_map_decoration_revo.blo", 0x20000, dComIfGp_getDmapResArchive());
+ JUT_ASSERT(930, fg != false);
+ dPaneClass_showNullPane(mDecorateScreen);
+ mpDecorateRoot = new CPaneMgrAlphaMorf(mDecorateScreen, 'ROOT', 2, NULL);
+ JUT_ASSERT(934, mpDecorateRoot != 0);
+ #else
+ mDecorateScreen = NULL;
+ mpDecorateRoot = NULL;
+ mButtonScreen->search('w_spot')->hide();
+ mButtonScreen->search('spot00')->hide();
+ mButtonScreen->search('spot01')->hide();
+ #endif
+
+ mpButtonRoot = new CPaneMgrAlphaMorf(mButtonScreen, 'ROOT', 2, NULL);
+ JUT_ASSERT(952, mpButtonRoot != 0);
+ for (int i = 0; i < 2; i++) {
+ mpButtonAB[i] = NULL;
+ mpButtonText[i] = NULL;
+ }
+
+ mpCButton = new CPaneMgrAlpha(mButtonScreen, 'c_btn', 2, NULL);
+ JUT_ASSERT(978, mpCButton != 0);
+ mpJButton = NULL;
+
+ for (int i = 0; i < 5; i++) {
+ ((J2DTextBox*)mButtonScreen->search(font_at[i]))->setFont(mDoExt_getMesgFont());
+ ((J2DTextBox*)mButtonScreen->search(font_bt[i]))->setFont(mDoExt_getMesgFont());
+ ((J2DTextBox*)mButtonScreen->search(font_at[i]))->setString(32, "");
+ ((J2DTextBox*)mButtonScreen->search(font_bt[i]))->setString(32, "");
+ ((J2DTextBox*)mButtonScreen->search(cont_at_4145[i]))->hide();
+ ((J2DTextBox*)mButtonScreen->search(cont_bt_4146[i]))->hide();
+ }
+ field_0xcf4 = new CPaneMgr(mButtonScreen, 'c_n', 2, NULL);
+ field_0xcf8 = NULL;
+ J2DTextBox* textBox;
+ for (int i = 0; i < 2; i++) {
+ textBox = ((J2DTextBox*)mButtonScreen->search(c_tag_4155[i]));
+ textBox->setFont(mDoExt_getMesgFont());
+ textBox->setString(32, "");
+ }
+ if (field_0xcf4 != NULL) {
+ field_0xcf4->show();
+ }
+ if (field_0xcf8 != NULL) {
+ field_0xcf8->paneTrans(160.0f, 0.0f);
+ }
+ field_0xcf4->paneTrans(321.0f, 0.0f);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1140,49 +1301,46 @@ asm void dMenu_DmapBg_c::buttonIconScreenInit() {
#include "asm/d/menu/d_menu_dmap/buttonIconScreenInit__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 803955C8-803955F0 021C28 0028+00 1/1 0/0 0/0 .rodata cont_at$4196 */
-SECTION_RODATA static u8 const cont_at_4196[40] = {
- 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
- 0x74, 0x31, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x32, 0x66, 0x6F, 0x6E, 0x74,
- 0x5F, 0x61, 0x74, 0x33, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x34,
+static u64 const cont_at_4196[5] = {
+ 'font_at', 'font_at1', 'font_at2', 'font_at3', 'font_at4',
};
-COMPILER_STRIP_GATE(0x803955C8, &cont_at_4196);
/* 801B8DE4-801B8EBC 1B3724 00D8+00 7/7 0/0 0/0 .text setAButtonString__14dMenu_DmapBg_cFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::setAButtonString(u32 param_0) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/setAButtonString__14dMenu_DmapBg_cFUl.s"
+void dMenu_DmapBg_c::setAButtonString(u32 param_1) {
+ for (int i = 0; i < 5; i++) {
+ if (param_1 == 0) {
+ strcpy(((J2DTextBox*)mButtonScreen->search(cont_at_4196[i]))->getStringPtr(), "");
+ } else {
+ dMeter2Info_getStringKanji(param_1, ((J2DTextBox*)mButtonScreen->search(cont_at_4196[i]))->getStringPtr(), NULL);
+ }
+ }
}
-#pragma pop
/* ############################################################################################## */
/* 803955F0-80395618 021C50 0028+00 1/1 0/0 0/0 .rodata cont_bt$4211 */
-SECTION_RODATA static u8 const cont_bt_4211[40] = {
- 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
- 0x74, 0x31, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x32, 0x66, 0x6F, 0x6E, 0x74,
- 0x5F, 0x62, 0x74, 0x33, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x34,
+static u64 const cont_bt_4211[5] = {
+ 'font_bt', 'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4',
};
-COMPILER_STRIP_GATE(0x803955F0, &cont_bt_4211);
/* 801B8EBC-801B8F94 1B37FC 00D8+00 8/8 0/0 0/0 .text setBButtonString__14dMenu_DmapBg_cFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::setBButtonString(u32 param_0) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/setBButtonString__14dMenu_DmapBg_cFUl.s"
+void dMenu_DmapBg_c::setBButtonString(u32 param_1) {
+ for (int i = 0; i < 5; i++) {
+ if (param_1 == 0) {
+ strcpy(((J2DTextBox*)mButtonScreen->search(cont_bt_4211[i]))->getStringPtr(), "");
+ } else {
+ dMeter2Info_getStringKanji(param_1, ((J2DTextBox*)mButtonScreen->search(cont_bt_4211[i]))->getStringPtr(), NULL);
+ }
+ }
}
-#pragma pop
/* ############################################################################################## */
/* 80395618-80395628 021C78 0010+00 1/1 0/0 0/0 .rodata c_tag$4229 */
-SECTION_RODATA static u8 const c_tag_4229[16] = {
- 0x66, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x5F, 0x73, 0x00, 0x00, 0x66, 0x5F, 0x74, 0x65, 0x78, 0x74,
+SECTION_RODATA static u64 const c_tag_4229[2] = {
+ 'f_text_s', 'f_text',
};
COMPILER_STRIP_GATE(0x80395618, &c_tag_4229);
@@ -1193,12 +1351,35 @@ static f32 player_px;
static f32 player_py;
/* 80451080-80451088 000580 0004+04 6/6 0/0 0/0 .sbss myclass__12dMenu_Dmap_c */
-u8 dMenu_Dmap_c::myclass[4 + 4 /* padding */];
+dMenu_Dmap_c* dMenu_Dmap_c::myclass;
/* 8045400C-80454010 00260C 0004+00 7/7 0/0 0/0 .sdata2 @4249 */
SECTION_SDATA2 static f32 lit_4249 = 0.5f;
/* 801B8F94-801B90BC 1B38D4 0128+00 1/1 0/0 0/0 .text setCButtonString__14dMenu_DmapBg_cFUl */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::setCButtonString(u32 param_1) {
+ int i;
+ u32 r26;
+ if (!dMenu_Dmap_c::myclass->isMapMoveState()) {
+ r26 = 0;
+ } else {
+ r26 = dMenu_Dmap_c::myclass->getCMessasgeNum();
+ }
+ if (r26 == 0) {
+ for (i = 0; i < 2; i++) {
+ strcpy(((J2DTextBox*)mButtonScreen->search(c_tag_4229[i]))->getStringPtr(), "");
+ }
+ mpCButton->setAlphaRate(0.5f);
+ } else {
+ for (i = 0; i < 2; i++) {
+ dMeter2Info_getStringKanji(r26, ((J2DTextBox*)mButtonScreen->search(c_tag_4229[i]))->getStringPtr(), NULL);
+ }
+ mpCButton->setAlphaRate(1.0f);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1207,38 +1388,34 @@ asm void dMenu_DmapBg_c::setCButtonString(u32 param_0) {
#include "asm/d/menu/d_menu_dmap/setCButtonString__14dMenu_DmapBg_cFUl.s"
}
#pragma pop
+#endif
/* 801B90BC-801B90E0 1B39FC 0024+00 1/1 0/0 0/0 .text setJButtonString__14dMenu_DmapBg_cFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::setJButtonString(u32 param_0) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/setJButtonString__14dMenu_DmapBg_cFUl.s"
+void dMenu_DmapBg_c::setJButtonString(u32 param_0) {
+ dMenu_Dmap_c::myclass->isMapMoveState();
}
-#pragma pop
/* 801B90E0-801B9164 1B3A20 0084+00 1/1 0/0 0/0 .text createExplain__14dMenu_DmapBg_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::createExplain() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/createExplain__14dMenu_DmapBg_cFv.s"
+void dMenu_DmapBg_c::createExplain() {
+ if (mpItemExplain == NULL) {
+ JKRHeap* prevHeap = mDoExt_setCurrentHeap(mpTalkHeap);
+ mpItemExplain = new dMenu_ItemExplain_c(mpTalkHeap, dComIfGp_getDmapResArchive(), field_0xca0, true);
+ JUT_ASSERT(1308, mpItemExplain != 0);
+ mDoExt_setCurrentHeap(prevHeap);
+ }
}
-#pragma pop
/* 801B9164-801B91DC 1B3AA4 0078+00 2/2 0/0 0/0 .text deleteExplain__14dMenu_DmapBg_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::deleteExplain() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/deleteExplain__14dMenu_DmapBg_cFv.s"
+void dMenu_DmapBg_c::deleteExplain() {
+ if (mpItemExplain != NULL) {
+ JKRHeap* prevHeap = mDoExt_setCurrentHeap(mpTalkHeap);
+ delete mpItemExplain;
+ mpItemExplain = NULL;
+ mDoExt_setCurrentHeap(prevHeap);
+ }
}
-#pragma pop
/* ############################################################################################## */
/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -1262,6 +1439,41 @@ SECTION_SDATA2 static f32 lit_4315 = 3.0f / 5.0f;
/* 801B91DC-801B944C 1B3B1C 0270+00 1/1 0/0 0/0 .text baseScreenInit__14dMenu_DmapBg_cFv
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::baseScreenInit() {
+ mBaseScreen = new J2DScreen();
+ JUT_ASSERT(1336, mBaseScreen != 0);
+ bool fg = mBaseScreen->setPriority("zelda_dungeon_map_base_revo.blo", 0x20000, dComIfGp_getDmapResArchive());
+ JUT_ASSERT(1347, fg != false);
+ dPaneClass_showNullPane(mBaseScreen);
+ mFloorScreen = new J2DScreen();
+ JUT_ASSERT(1351, mFloorScreen != 0);
+ fg = mFloorScreen->setPriority("zelda_dungeon_map_floor_parts_revo.blo", 0x20000,
+ dComIfGp_getDmapResArchive());
+ JUT_ASSERT(1362, fg != false);
+ dPaneClass_showNullPane(mFloorScreen);
+ mBaseScreen->search('w_btn_n')->hide();
+ mpBaseRoot = new CPaneMgrAlphaMorf(mBaseScreen, 'ROOT', 2, NULL);
+ JUT_ASSERT(1396, mpBaseRoot != 0);
+ mpFloorRoot = new CPaneMgrAlphaMorf(mFloorScreen, 'ROOT', 2, NULL);
+ JUT_ASSERT(1399, mpFloorRoot != 0);
+ mpDrawCursor = new dSelect_cursor_c(2, 1.0f, NULL);
+ JUT_ASSERT(1403, mpDrawCursor != 0);
+ mpDrawCursor->setAlphaRate(1.0f);
+ mpDrawCursor->setParam(0.95f, 0.9f, 0.1f, 0.6f, 0.5f);
+ J2DTextBox* uVar9 = (J2DTextBox*)mBaseScreen->search('f_t_00');
+ mBaseScreen->search('t_t00')->hide();
+ uVar9->setFont(mDoExt_getSubFont());
+ uVar9->setString(32, "");
+ u32 stageTitleNo = dStage_stagInfo_GetStageTitleNo(i_dComIfGp_getStage()->getStagInfo());
+ if (stageTitleNo != 0) {
+ mString->getString((u16)stageTitleNo, uVar9, NULL, NULL, NULL, 0);
+ } else {
+ JUT_WARN(1426, "stage title message index zero!");
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1270,6 +1482,7 @@ asm void dMenu_DmapBg_c::baseScreenInit() {
#include "asm/d/menu/d_menu_dmap/baseScreenInit__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80395628-80395648 021C88 001A+06 1/1 0/0 0/0 .rodata @4325 */
@@ -1312,6 +1525,124 @@ COMPILER_STRIP_GATE(0x80395628, &lit_4325);
/* 801B944C-801BA0B4 1B3D8C 0C68+00 1/1 0/0 0/0 .text setFloorMessage__14dMenu_DmapBg_cFv
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::setFloorMessage() {
+ char acStack_98[128];
+ J2DTextBox* local_b8[8];
+ J2DTextBox* local_d8[8];
+ J2DTextBox* local_f8[8];
+ s16 local_118[13] = {
+ 0, 0, 0x03DB, 0x03DA, 0x036B, 0x036C, 0x036D,
+ 0x036E, 0x036F, 0x03DC, 0x03DD, 0x03D9, 0x03D8,
+ };
+
+ local_b8[0] = (J2DTextBox*)mFloorScreen->search('ffoor7_1');
+ local_d8[0] = (J2DTextBox*)mFloorScreen->search('ffoor7_2');
+ local_f8[0] = (J2DTextBox*)mFloorScreen->search('ffoor7_3');
+ mFloorScreen->search('floor7_1')->hide();
+ mFloorScreen->search('floor7_2')->hide();
+ mFloorScreen->search('floor7_3')->hide();
+ local_b8[0]->setFont(mDoExt_getSubFont());
+ local_d8[0]->setFont(mDoExt_getSubFont());
+ local_f8[0]->setFont(mDoExt_getSubFont());
+
+ local_b8[1] = (J2DTextBox*)mFloorScreen->search('ffoor0_1');
+ local_d8[1] = (J2DTextBox*)mFloorScreen->search('ffoor0_2');
+ local_f8[1] = (J2DTextBox*)mFloorScreen->search('ffoor0_3');
+ mFloorScreen->search('floor0_1')->hide();
+ mFloorScreen->search('floor0_2')->hide();
+ mFloorScreen->search('floor0_3')->hide();
+ local_b8[1]->setFont(mDoExt_getSubFont());
+ local_d8[1]->setFont(mDoExt_getSubFont());
+ local_f8[1]->setFont(mDoExt_getSubFont());
+
+ local_b8[2] = (J2DTextBox*)mFloorScreen->search('ffoor1_1');
+ local_d8[2] = (J2DTextBox*)mFloorScreen->search('ffoor1_2');
+ local_f8[2] = (J2DTextBox*)mFloorScreen->search('ffoor1_3');
+ mFloorScreen->search('floor1_1')->hide();
+ mFloorScreen->search('floor1_2')->hide();
+ mFloorScreen->search('floor1_3')->hide();
+ local_b8[2]->setFont(mDoExt_getSubFont());
+ local_d8[2]->setFont(mDoExt_getSubFont());
+ local_f8[2]->setFont(mDoExt_getSubFont());
+
+ local_b8[3] = (J2DTextBox*)mFloorScreen->search('ffoor2_1');
+ local_d8[3] = (J2DTextBox*)mFloorScreen->search('ffoor2_2');
+ local_f8[3] = (J2DTextBox*)mFloorScreen->search('ffoor2_3');
+ mFloorScreen->search('floor2_1')->hide();
+ mFloorScreen->search('floor2_2')->hide();
+ mFloorScreen->search('floor2_3')->hide();
+ local_b8[3]->setFont(mDoExt_getSubFont());
+ local_d8[3]->setFont(mDoExt_getSubFont());
+ local_f8[3]->setFont(mDoExt_getSubFont());
+
+ local_b8[4] = (J2DTextBox*)mFloorScreen->search('ffoor3_1');
+ local_d8[4] = (J2DTextBox*)mFloorScreen->search('ffoor3_2');
+ local_f8[4] = (J2DTextBox*)mFloorScreen->search('ffoor3_3');
+ mFloorScreen->search('floor3_1')->hide();
+ mFloorScreen->search('floor3_2')->hide();
+ mFloorScreen->search('floor3_3')->hide();
+ local_b8[4]->setFont(mDoExt_getSubFont());
+ local_d8[4]->setFont(mDoExt_getSubFont());
+ local_f8[4]->setFont(mDoExt_getSubFont());
+
+ local_b8[5] = (J2DTextBox*)mFloorScreen->search('ffoor4_1');
+ local_d8[5] = (J2DTextBox*)mFloorScreen->search('ffoor4_2');
+ local_f8[5] = (J2DTextBox*)mFloorScreen->search('ffoor4_3');
+ mFloorScreen->search('floor4_1')->hide();
+ mFloorScreen->search('floor4_2')->hide();
+ mFloorScreen->search('floor4_3')->hide();
+ local_b8[5]->setFont(mDoExt_getSubFont());
+ local_d8[5]->setFont(mDoExt_getSubFont());
+ local_f8[5]->setFont(mDoExt_getSubFont());
+
+ local_b8[6] = (J2DTextBox*)mFloorScreen->search('ffoor5_1');
+ local_d8[6] = (J2DTextBox*)mFloorScreen->search('ffoor5_2');
+ local_f8[6] = (J2DTextBox*)mFloorScreen->search('ffoor5_3');
+ mFloorScreen->search('floor5_1')->hide();
+ mFloorScreen->search('floor5_2')->hide();
+ mFloorScreen->search('floor5_3')->hide();
+ local_b8[6]->setFont(mDoExt_getSubFont());
+ local_d8[6]->setFont(mDoExt_getSubFont());
+ local_f8[6]->setFont(mDoExt_getSubFont());
+
+ local_b8[7] = (J2DTextBox*)mFloorScreen->search('ffoor6_1');
+ local_d8[7] = (J2DTextBox*)mFloorScreen->search('ffoor6_2');
+ local_f8[7] = (J2DTextBox*)mFloorScreen->search('ffoor6_3');
+ mFloorScreen->search('floor6_1')->hide();
+ mFloorScreen->search('floor6_2')->hide();
+ mFloorScreen->search('floor6_3')->hide();
+ local_b8[7]->setFont(mDoExt_getSubFont());
+ local_d8[7]->setFont(mDoExt_getSubFont());
+ local_f8[7]->setFont(mDoExt_getSubFont());
+
+ OS_REPORT("floor ===> %d\n", dMenu_Dmap_c::myclass->getFloorAll())
+ for (int i = 0; i < 8; i++) {
+ int bottomFloor = dMenu_Dmap_c::myclass->getBottomFloor();
+ u32 floorAll = dMenu_Dmap_c::myclass->getFloorAll();
+ u32 temp = (s8)((s8)floorAll - bottomFloor + 1);
+ if (i < (int)temp) {
+ bottomFloor += i;
+ if ((bottomFloor += 5) < 0 || bottomFloor >= 0xd) {
+ JUT_WARN(1609, "floor message index zero! %d", bottomFloor);
+ local_b8[i]->setString(16, "");
+ local_d8[i]->setString(16, "");
+ local_f8[i]->setString(16, "");
+ } else {
+ dMeter2Info_getString(local_118[bottomFloor], acStack_98,NULL);
+ local_b8[i]->setString(16, acStack_98);
+ local_d8[i]->setString(16, acStack_98);
+ local_f8[i]->setString(16, acStack_98);
+ }
+ } else {
+ local_b8[i]->setString(16, "");
+ local_d8[i]->setString(16, "");
+ local_f8[i]->setString(16, "");
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1320,6 +1651,7 @@ asm void dMenu_DmapBg_c::setFloorMessage() {
#include "asm/d/menu/d_menu_dmap/setFloorMessage__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* 801BA0B4-801BA0BC 1B49F4 0008+00 1/1 0/0 0/0 .text dpdMove__14dMenu_DmapBg_cFScScScPUcUc */
bool dMenu_DmapBg_c::dpdMove(s8 param_0, s8 param_1, s8 param_2, u8* param_3, u8 param_4) {
@@ -1327,6 +1659,106 @@ bool dMenu_DmapBg_c::dpdMove(s8 param_0, s8 param_1, s8 param_2, u8* param_3, u8
}
/* 801BA0BC-801BA60C 1B49FC 0550+00 2/1 0/0 0/0 .text __dt__14dMenu_DmapBg_cFv */
+// Matches with inheritance
+#ifdef NONMATCHING
+dMenu_DmapBg_c::~dMenu_DmapBg_c() {
+ dComIfGp_getDmapResArchive()->removeResourceAll();
+ delete mString;
+ if (mpMeterHaihai != NULL) {
+ delete mpMeterHaihai;
+ mpMeterHaihai = NULL;
+ }
+ delete mBaseScreen;
+ mBaseScreen = NULL;
+ delete mFloorScreen;
+ mFloorScreen = NULL;
+ delete mpBaseRoot;
+ mpBaseRoot = NULL;
+ delete mpFloorRoot;
+ mpFloorRoot = NULL;
+ delete mpDrawCursor;
+ mpDrawCursor = NULL;
+
+ for (int i = 0; i < 2; i++) {
+ delete mMapScreen[i];
+ mMapScreen[i] = NULL;
+ delete mpMapSpace[i];
+ mpMapSpace[i] = NULL;
+ delete mpMapRoot[i];
+ mpMapRoot[i] = NULL;
+ }
+ if (mpBlack != NULL) {
+ delete mpBlack;
+ mpBlack = NULL;
+ }
+ for (int i = 0; i < 1; i++) {
+ delete field_0xd28[i];
+ }
+ for (int i = 0; i < 2; i++) {
+ delete mpMapSpace[i];
+ mpMapSpace[i] = NULL;
+ }
+ if (field_0xcf4 != NULL) {
+ delete field_0xcf4;
+ field_0xcf4 = NULL;
+ }
+ if (field_0xcf8 != NULL) {
+ delete field_0xcf8;
+ field_0xcf8 = NULL;
+ }
+
+ deleteExplain();
+ if (field_0xd20 != NULL) {
+ JKRUnmountArchive(field_0xd20);
+ field_0xd20 = NULL;
+ }
+ if (field_0xd1c != NULL) {
+ JKRUnmountArchive(field_0xd1c->getArchive());
+ field_0xd1c->destroy();
+ field_0xd1c = NULL;
+ }
+ if (mpBackTexture != NULL) {
+ delete mpBackTexture;
+ mpBackTexture = NULL;
+ }
+ delete mButtonScreen;
+ mButtonScreen = NULL;
+ if (mDecorateScreen != NULL) {
+ delete mDecorateScreen;
+ mDecorateScreen = NULL;
+ }
+ if (mpDecorateRoot != NULL) {
+ delete mpDecorateRoot;
+ mpDecorateRoot = NULL;
+ }
+ delete mpButtonRoot;
+ mpButtonRoot = NULL;
+ for (int i = 0; i < 2; i++) {
+ if (mpButtonAB[i] != NULL) {
+ delete mpButtonAB[i];
+ mpButtonAB[i] = NULL;
+ }
+ if (mpButtonText[i] != NULL) {
+ delete mpButtonText[i];
+ mpButtonText[i] = NULL;
+ }
+ }
+ delete mpCButton;
+ mpCButton = NULL;
+ if (mpJButton != NULL) {
+ delete mpJButton;
+ mpJButton = NULL;
+ }
+
+ if (mpTalkHeap != NULL) {
+ if (dMsgObject_getTalkHeap() == mpTalkHeap) {
+ dMsgObject_setTalkHeap(NULL);
+ }
+ mDoExt_destroyExpHeap(mpTalkHeap);
+ mpTalkHeap = NULL;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1335,32 +1767,65 @@ asm dMenu_DmapBg_c::~dMenu_DmapBg_c() {
#include "asm/d/menu/d_menu_dmap/__dt__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* 801BA60C-801BA700 1B4F4C 00F4+00 2/2 0/0 0/0 .text setAllAlphaRate__14dMenu_DmapBg_cFfb */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::setAllAlphaRate(f32 param_0, bool param_1) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/setAllAlphaRate__14dMenu_DmapBg_cFfb.s"
+void dMenu_DmapBg_c::setAllAlphaRate(f32 param_1, bool param_2) {
+ field_0xd9c = param_1;
+ if (param_2) {
+ mpBaseRoot->setBackupAlpha();
+ mpFloorRoot->setBackupAlpha();
+ for (int i = 0; i < 2; i++) {
+ mpMapRoot[i]->setBackupAlpha();
+ }
+ mpButtonRoot->setBackupAlpha();
+ if (mpDecorateRoot != NULL) {
+ mpDecorateRoot->setBackupAlpha();
+ }
+ }
+ mpBaseRoot->setAlphaMorfRate(param_1);
+ mpFloorRoot->setAlphaMorfRate(param_1);
+ for (int i = 0; i < 2; i++) {
+ mpMapRoot[i]->setAlphaMorfRate(param_1);
+ }
+ mpButtonRoot->setAlphaMorfRate(param_1);
+ if (mpDecorateRoot != NULL) {
+ mpDecorateRoot->setAlphaMorfRate(param_1);
+ }
}
-#pragma pop
/* 801BA700-801BA7F0 1B5040 00F0+00 3/3 0/0 0/0 .text setGoldAnimation__14dMenu_DmapBg_cFb */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::setGoldAnimation(bool param_0) {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/setGoldAnimation__14dMenu_DmapBg_cFb.s"
+void dMenu_DmapBg_c::setGoldAnimation(bool param_1) {
+ J2DPane* gold0 = mMapScreen[0]->search('gold00_0');
+ J2DPane* gold1 = mMapScreen[0]->search('gold00_1');
+ if (param_1) {
+ gold0->setAnimation(field_0xd28[0]);
+ gold1->setAnimation(field_0xd28[0]);
+ } else {
+ gold0->setAnimation((J2DAnmTextureSRTKey*)NULL);
+ gold1->setAnimation((J2DAnmTextureSRTKey*)NULL);
+ }
}
-#pragma pop
/* ############################################################################################## */
/* 80454020-80454024 002620 0004+00 3/3 0/0 0/0 .sdata2 @4643 */
SECTION_SDATA2 static f32 lit_4643 = 255.0f;
/* 801BA7F0-801BA974 1B5130 0184+00 3/3 0/0 0/0 .text setGoldFrameAlphaRate__14dMenu_DmapBg_cFf */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::setGoldFrameAlphaRate(f32 param_1) {
+ if (0.0f == param_1) {
+ mMapScreen[0]->search('gold00_0')->hide();
+ mMapScreen[0]->search('gold00_1')->hide();
+ } else {
+ mMapScreen[0]->search('gold00_0')->show();
+ mMapScreen[0]->search('gold00_1')->show();
+ mMapScreen[0]->search('gold00_0')->setAlpha(param_1 * 255.0f);
+ mMapScreen[0]->search('gold00_1')->setAlpha(param_1 * 255.0f);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1369,8 +1834,26 @@ asm void dMenu_DmapBg_c::setGoldFrameAlphaRate(f32 param_0) {
#include "asm/d/menu/d_menu_dmap/setGoldFrameAlphaRate__14dMenu_DmapBg_cFf.s"
}
#pragma pop
+#endif
/* 801BA974-801BAA4C 1B52B4 00D8+00 1/1 0/0 0/0 .text addGoldFrameAlphaRate__14dMenu_DmapBg_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::addGoldFrameAlphaRate() {
+ f32 dVar4;
+ if (field_0xdd7 >= g_fmapHIO.mDisplayFrameNum) {
+ dVar4 = 1.0f;
+ setGoldAnimation(true);
+ } else {
+ field_0xdd7++;
+ if (field_0xdd7 == g_fmapHIO.mDisplayFrameNum) {
+ setGoldAnimation(true);
+ }
+ dVar4 = (f32)(field_0xdd7 * field_0xdd7) / (f32)(g_fmapHIO.mDisplayFrameNum * g_fmapHIO.mDisplayFrameNum);
+ }
+ setGoldFrameAlphaRate(dVar4);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1379,8 +1862,28 @@ asm void dMenu_DmapBg_c::addGoldFrameAlphaRate() {
#include "asm/d/menu/d_menu_dmap/addGoldFrameAlphaRate__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* 801BAA4C-801BAB10 1B538C 00C4+00 1/1 0/0 0/0 .text decGoldFrameAlphaRate__14dMenu_DmapBg_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::decGoldFrameAlphaRate() {
+ f32 dVar4;
+ setGoldAnimation(false);
+ if (field_0xdd7 >= g_fmapHIO.mUndisplayFrameNum) {
+ field_0xdd7 = g_fmapHIO.mUndisplayFrameNum / 2;
+ }
+ field_0xdd7 = 0;
+ if (field_0xdd7 == 0) {
+ dVar4 = 0.0f;
+ } else {
+ field_0xdd7--;
+ dVar4 = (f32)(field_0xdd7 * field_0xdd7) / (f32)(g_fmapHIO.mUndisplayFrameNum * g_fmapHIO.mUndisplayFrameNum);
+ }
+
+ setGoldFrameAlphaRate(dVar4);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1389,6 +1892,7 @@ asm void dMenu_DmapBg_c::decGoldFrameAlphaRate() {
#include "asm/d/menu/d_menu_dmap/decGoldFrameAlphaRate__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80454024-80454028 002624 0004+00 4/4 0/0 0/0 .sdata2 @4784 */
@@ -1410,6 +1914,102 @@ SECTION_SDATA2 static f32 lit_4788 = -35.0f;
SECTION_SDATA2 static f64 lit_4790 = 4503599627370496.0 /* cast u32 to float */;
/* 801BAB10-801BB334 1B5450 0824+00 1/0 0/0 0/0 .text draw__14dMenu_DmapBg_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::draw() {
+ u32 local_270;
+ u32 local_274;
+ u32 local_278;
+ u32 local_27c;
+ J2DOrthoGraph* grafContext = (J2DOrthoGraph*)dComIfGp_getCurrentGrafPort();
+ grafContext->setup2D();
+ GXGetScissor(&local_270, &local_274, &local_278, &local_27c);
+ grafContext->scissor(field_0xd94, 0.0f, 608.0f, 448.0f);
+ grafContext->setScissor();
+ mBaseScreen->draw(field_0xd94, field_0xd98, grafContext);
+ dMenu_Dmap_c::myclass->drawFloorScreenBack(mFloorScreen, field_0xd94, field_0xd98, grafContext);
+ f32 dVar21 = mDoGph_gInf_c::getWidthF() / 608.0f;
+ f32 dVar16 = mDoGph_gInf_c::getHeightF() / 448.0f;
+ mMapScreen[0]->draw(field_0xd94, field_0xd98, grafContext);
+ if (mpBackTexture != 0) {
+ J2DPane* local_280 = mMapScreen[0]->search('center_n');
+ CPaneMgr afStack_124;
+ Mtx mtx;
+ Vec local_200 = afStack_124.getGlobalVtx(local_280, &mtx, 0, false, 0);
+ Vec local_20c = afStack_124.getGlobalVtx(local_280, &mtx, 3, false, 0);
+ grafContext->scissor(
+ ((local_200.x - mDoGph_gInf_c::getMinXF()) / dVar21), ((local_200.y / dVar16) / dVar16),
+ ((local_20c.x - local_200.x) / dVar21), 2.0f + (local_20c.y - local_200.y));
+ grafContext->setScissor();
+ f32 dVar17 = field_0xd8c / 255.0f;
+ JUtility::TColor local_284;
+ JUtility::TColor local_288;
+ local_284.set(field_0xd91, field_0xd92, field_0xd93, 0xff);
+ local_288.set(field_0xd8d, field_0xd8e, field_0xd8f, 0xff);
+ mpBackTexture->setAlpha(dVar17 * (field_0xdbc * field_0xd9c));
+ f32 local_28c = mpBackTexture->getBounds().i.x;
+ mpBackTexture->setBlackWhite(local_284, local_288);
+ mpBackTexture->draw(
+ local_28c, field_0xd94 + mpBackTexture->getBounds().i.y, mpBackTexture->getWidth(),
+ mpBackTexture->getHeight(), false, false, false);
+ grafContext->scissor(field_0xd94 + mDoGph_gInf_c::getMinXF(),
+ local_274, mDoGph_gInf_c::getWidthF(),
+ local_27c);
+ grafContext->setScissor();
+ }
+ mMapScreen[1]->draw(field_0xd94, field_0xd98, grafContext);
+ J2DPane* local_290 = mMapScreen[1]->search('center_n');
+ CPaneMgr afStack_190;
+ Mtx local_110;
+ Vec local_218 = afStack_190.getGlobalVtx(local_290, &local_110, 0, false, 0);
+ Vec local_224 = afStack_190.getGlobalVtx(local_290, &local_110, 3, false, 0);
+ f32 local_294 = ((local_218.x - mDoGph_gInf_c::getMinXF()) / dVar21);
+ f32 local_298 = ((local_218.y / dVar16) / dVar16);
+ f32 local_29c = ((local_224.x - local_218.x) / dVar21);
+ f32 local_2a0 = 2.0f + (local_224.y - local_218.y);
+ grafContext->scissor(local_294, local_298, local_29c, local_2a0);
+ grafContext->setScissor();
+ //local_2a4 = field_0xd9c * field_0xda8;
+ Vec local_26c = afStack_190.getGlobalVtx(field_0xcc4, &local_110, 0, false, 0);
+ drawIcon(local_26c.x + field_0xd94, local_26c.y, field_0xda8, 1.0f);
+ grafContext->scissor(field_0xd94 + mDoGph_gInf_c::getMinXF(),
+ local_274,
+ mDoGph_gInf_c::getWidthF(),
+ local_27c);
+ grafContext->setScissor();
+ grafContext->scissor(local_270, local_274, local_278, local_27c);
+ grafContext->setScissor();
+ if (field_0xdda != 0 && mpMeterHaihai != NULL) {
+ mpMeterHaihai->setScale(0.7f);
+ f32 x1 = 0.0f;
+ f32 y1 = 0.0f;
+ mpMeterHaihai->drawHaihai(field_0xdda,
+ x1 + (local_224.x + local_218.x) / 2,
+ y1 + (local_224.y + local_218.y) / 2,
+ -35.0f + (local_224.x - local_218.x),
+ -35.0f + (local_224.y - local_218.y));
+ field_0xdda = 0;
+ }
+ dMenu_Dmap_c::myclass->drawFloorScreenTop(mFloorScreen, field_0xd94, field_0xd98, grafContext);
+ if (0.0f == field_0xd94 && 0.0f == field_0xd98) {
+ drawCursor();
+ }
+ if (mDecorateScreen != NULL) {
+ mDecorateScreen->draw(field_0xd94, field_0xd98, grafContext);
+ }
+ if (field_0xdd0 != 0 && mpItemExplain != NULL) {
+ mpItemExplain->draw(grafContext);
+ }
+ mButtonScreen->draw(field_0xd94, field_0xd98, grafContext);
+ grafContext->scissor(
+ local_270,
+ local_274,
+ local_278,
+ local_27c);
+ grafContext->setScissor();
+ grafContext->setup2D();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1418,6 +2018,7 @@ asm void dMenu_DmapBg_c::draw() {
#include "asm/d/menu/d_menu_dmap/draw__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -1431,6 +2032,31 @@ SECTION_DEAD static char const* const stringBase_80395818 = "spec/spec.dat";
SECTION_SDATA2 static f32 lit_4848 = 25.5f;
/* 801BB334-801BB464 1B5C74 0130+00 1/1 0/0 0/0 .text update__14dMenu_DmapBg_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_DmapBg_c::update() {
+ if (field_0xd1c !=NULL) {
+ if (field_0xd1c->sync() && field_0xd20 == NULL) {
+ field_0xd20 = field_0xd1c->getArchive();
+ field_0xd1c->destroy();
+ field_0xd1c = NULL;
+ ResTIMG* mp_image = (ResTIMG*) field_0xd20->getResource("tex/bg.bti");
+ JUT_ASSERT(2321, mp_image != 0);
+ mpBackTexture = new J2DPicture(mp_image);
+ JUT_ASSERT(2323, mpBackTexture != 0);
+ void* uVar1 = field_0xd20->getResource("spec/spec.dat");
+ memcpy(field_0xd80, uVar1, 20);
+ }
+ }
+
+ if (mpBackTexture != NULL && field_0xdbc < 255.0f) {
+ field_0xdbc += 25.5f;
+ if (field_0xdbc > 255.0f) {
+ field_0xdbc = 255.0f;
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1439,6 +2065,7 @@ asm void dMenu_DmapBg_c::update() {
#include "asm/d/menu/d_menu_dmap/update__14dMenu_DmapBg_cFv.s"
}
#pragma pop
+#endif
/* 801BB464-801BB468 1B5DA4 0004+00 1/1 0/0 0/0 .text calcCursor__14dMenu_DmapBg_cFv */
void dMenu_DmapBg_c::calcCursor() {
@@ -1446,14 +2073,9 @@ void dMenu_DmapBg_c::calcCursor() {
}
/* 801BB468-801BB498 1B5DA8 0030+00 1/1 0/0 0/0 .text drawCursor__14dMenu_DmapBg_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_DmapBg_c::drawCursor() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/drawCursor__14dMenu_DmapBg_cFv.s"
+void dMenu_DmapBg_c::drawCursor() {
+ mpDrawCursor->draw();
}
-#pragma pop
/* ############################################################################################## */
/* 80454044-80454048 002644 0004+00 3/3 0/0 0/0 .sdata2 @4926 */
@@ -1464,6 +2086,74 @@ SECTION_SDATA2 static f32 lit_4927 = -448.0f;
/* 801BB498-801BB634 1B5DD8 019C+00 0/0 1/1 0/0 .text
* __ct__12dMenu_Dmap_cFP10JKRExpHeapP9STControlP10CSTControlUcUc */
+// Matches with literals
+#ifdef NONMATCHING
+dMenu_Dmap_c::dMenu_Dmap_c(JKRExpHeap* param_1, STControl* param_2, CSTControl* param_3,
+ u8 param_4, u8 param_5) {
+ dMeter2Info_setMapDrugFlag(0);
+ dMenu_Dmap_c::myclass = this;
+ field_0xe8 = param_1;
+ mpStick = param_2;
+ mpCStick = param_3;
+ mZoomState = param_4;
+ mpDrawBg[0] = NULL;
+ mDmapHeap = NULL;
+ mItemTexBuf = NULL;
+ mSelStick = NULL;
+ field_0x94 = NULL;
+ field_0x17c = 0;
+ for (int i = 0; i < 8; i++) {
+ mSelFloor[i] = NULL;
+ }
+ for (int i = 0; i < 8; i++) {
+ mSelFloor[i] = NULL;
+ mIconLinkPos[i] = NULL;
+ mIconBossPos[i] = NULL;
+ }
+ for (int i = 0; i < 2; i++) {
+ mStayIcon[i] = NULL;
+ }
+ field_0x10 = NULL;
+ for (int i = 0; i < 3; i++) {
+ field_0x7c[i] = NULL;
+ field_0x88[i]= NULL;
+ }
+ field_0x98 = NULL;
+ mMapCtrl = NULL;
+ field_0x144 = 0.0f;
+ field_0x148 = 0.0f;
+ field_0x181 = 0;
+ if (param_5 == 1) {
+ field_0x104 = -mDoGph_gInf_c::getWidthF();
+ field_0x108 = 0.0f;
+ } else if (param_5 == 3) {
+ field_0x104 = mDoGph_gInf_c::getWidthF();
+ field_0x108 = 0.0f;
+ } else if (param_5 == 2) {
+ field_0x104 = 0.0f;
+ field_0x108 = -mDoGph_gInf_c::getHeightF();
+ } else if (param_5 == 0) {
+ field_0x104 = 0.0f;
+ field_0x108 = mDoGph_gInf_c::getHeightF();
+ } else {
+ field_0x104 = 0.0f;
+ field_0x108 = 0.0f;
+ }
+ field_0x10c = 0.0f;
+ field_0x110 = 0.0f;
+ field_0x134 = 0.0f;
+ field_0x138 = 0.0f;
+ field_0x13c = 0.0f;
+ field_0x140 = 0.0f;
+ mInOutDir = param_5;
+ field_0x164 = 0;
+ field_0x185 = 0;
+ field_0x180 = 0;
+ mMapCtrl = 0;
+ field_0xe0 = 0;
+ field_0xe4 = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1473,16 +2163,14 @@ asm dMenu_Dmap_c::dMenu_Dmap_c(JKRExpHeap* param_0, STControl* param_1, CSTContr
#include "asm/d/menu/d_menu_dmap/__ct__12dMenu_Dmap_cFP10JKRExpHeapP9STControlP10CSTControlUcUc.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80395648-80395688 021CA8 0040+00 0/1 0/0 0/0 .rodata floor_tag$4932 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const floor_tag[64] = {
- 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x37, 0x5F, 0x6E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x30, 0x5F, 0x6E,
- 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x31, 0x5F, 0x6E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x32, 0x5F, 0x6E,
- 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x33, 0x5F, 0x6E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x34, 0x5F, 0x6E,
- 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x35, 0x5F, 0x6E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x36, 0x5F, 0x6E,
+SECTION_RODATA static u64 const floor_tag[8] = {
+ 'floor7_n', 'floor0_n', 'floor1_n', 'floor2_n', 'floor3_n', 'floor4_n', 'floor5_n', 'floor6_n',
};
COMPILER_STRIP_GATE(0x80395648, &floor_tag);
#pragma pop
@@ -1490,11 +2178,8 @@ COMPILER_STRIP_GATE(0x80395648, &floor_tag);
/* 80395688-803956C8 021CE8 0040+00 0/1 0/0 0/0 .rodata icon_tag$4933 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const icon_tag[64] = {
- 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x37, 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x30,
- 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x31, 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x32,
- 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x33, 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x34,
- 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x35, 0x69, 0x63, 0x6F, 0x5F, 0x73, 0x65, 0x74, 0x36,
+SECTION_RODATA static u64 const icon_tag[8] = {
+ 'ico_set7', 'ico_set0', 'ico_set1', 'ico_set2', 'ico_set3', 'ico_set4', 'ico_set5', 'ico_set6',
};
COMPILER_STRIP_GATE(0x80395688, &icon_tag);
#pragma pop
@@ -1502,11 +2187,8 @@ COMPILER_STRIP_GATE(0x80395688, &icon_tag);
/* 803956C8-80395708 021D28 0040+00 0/1 0/0 0/0 .rodata boss_tag$4934 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const boss_tag[64] = {
- 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x37, 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x30,
- 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x31, 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x32,
- 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x33, 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x34,
- 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x35, 0x69, 0x63, 0x5F, 0x73, 0x74, 0x5F, 0x62, 0x36,
+SECTION_RODATA static u64 const boss_tag[8] = {
+ 'ic_st_b7', 'ic_st_b0', 'ic_st_b1', 'ic_st_b2', 'ic_st_b3', 'ic_st_b4', 'ic_st_b5', 'ic_st_b6',
};
COMPILER_STRIP_GATE(0x803956C8, &boss_tag);
#pragma pop
@@ -1514,8 +2196,8 @@ COMPILER_STRIP_GATE(0x803956C8, &boss_tag);
/* 80395708-80395718 021D68 0010+00 0/1 0/0 0/0 .rodata stay_tag$4935 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const stay_tag[16] = {
- 0x72, 0x69, 0x6E, 0x6B, 0x5F, 0x6E, 0x75, 0x6C, 0x62, 0x6F, 0x73, 0x73, 0x5F, 0x6E, 0x75, 0x6C,
+SECTION_RODATA static u64 const stay_tag[2] = {
+ 'rink_nul', 'boss_nul',
};
COMPILER_STRIP_GATE(0x80395708, &stay_tag);
#pragma pop
@@ -1523,9 +2205,8 @@ COMPILER_STRIP_GATE(0x80395708, &stay_tag);
/* 80395718-80395730 021D78 0018+00 0/1 0/0 0/0 .rodata waku_tag$4973 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waku_tag[24] = {
- 0x67, 0x72, 0x61, 0x79, 0x5F, 0x6D, 0x61, 0x70, 0x67, 0x72, 0x61, 0x79,
- 0x5F, 0x63, 0x6F, 0x6E, 0x67, 0x72, 0x61, 0x79, 0x5F, 0x6B, 0x65, 0x79,
+SECTION_RODATA static u64 const waku_tag[3] = {
+ 'gray_map', 'gray_con', 'gray_key',
};
COMPILER_STRIP_GATE(0x80395718, &waku_tag);
#pragma pop
@@ -1533,9 +2214,8 @@ COMPILER_STRIP_GATE(0x80395718, &waku_tag);
/* 80395730-80395748 021D90 0018+00 0/1 0/0 0/0 .rodata key_tag$5002 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const key_tag[24] = {
- 0x00, 0x00, 0x6B, 0x65, 0x79, 0x5F, 0x30, 0x30, 0x00, 0x00, 0x6B, 0x65,
- 0x79, 0x5F, 0x30, 0x31, 0x00, 0x00, 0x6B, 0x65, 0x79, 0x5F, 0x30, 0x32,
+SECTION_RODATA static u64 const key_tag[3] = {
+ 'key_00', 'key_01', 'key_02',
};
COMPILER_STRIP_GATE(0x80395730, &key_tag);
#pragma pop
@@ -1543,9 +2223,8 @@ COMPILER_STRIP_GATE(0x80395730, &key_tag);
/* 80395748-80395760 021DA8 0018+00 0/1 0/0 0/0 .rodata item_tag$5040 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const item_tag[24] = {
- 0x00, 0x00, 0x6D, 0x61, 0x70, 0x30, 0x30, 0x30, 0x00, 0x00, 0x63, 0x6F,
- 0x6E, 0x30, 0x30, 0x30, 0x00, 0x69, 0x5F, 0x6B, 0x65, 0x79, 0x5F, 0x6E,
+SECTION_RODATA static u64 const item_tag[3] = {
+ 'map000', 'con000', 'i_key_n',
};
COMPILER_STRIP_GATE(0x80395748, &item_tag);
#pragma pop
@@ -1554,6 +2233,188 @@ COMPILER_STRIP_GATE(0x80395748, &item_tag);
SECTION_SDATA2 static f32 lit_5277 = 7.0f;
/* 801BB634-801BC788 1B5F74 1154+00 1/1 0/0 0/0 .text screenInit__12dMenu_Dmap_cFv */
+// float reg issues
+#ifdef NONMATCHING
+void dMenu_Dmap_c::screenInit() {
+ field_0x10 = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'floo_s_n', 0, NULL);
+ for (int i = 0; i < 8; i++) {
+ field_0x114[i] = 0.0f;
+ mSelFloor[i] = new CPaneMgr(mpDrawBg[0]->mFloorScreen, floor_tag[i], 3, NULL);
+ JUT_ASSERT(2654, mSelFloor[i] != 0);
+ mIconLinkPos[i] = new CPaneMgr(mpDrawBg[0]->mFloorScreen, icon_tag[i], 0, NULL);
+ JUT_ASSERT(2657, mIconLinkPos[i] != 0);
+ mIconBossPos[i] = new CPaneMgr(mpDrawBg[0]->mFloorScreen, boss_tag[i], 0, NULL);
+ JUT_ASSERT(2660, mIconBossPos[i] != 0);
+ }
+ for (int i = 0; i < 2; i++) {
+ mStayIcon[i] = new CPaneMgr(mpDrawBg[0]->mFloorScreen, stay_tag[i], 0, NULL);
+ JUT_ASSERT(2665, mStayIcon[i] != 0);
+ mStayIcon[i]->hide();
+ field_0x14c[i] = mStayIcon[i]->getGlobalVtxCenter(false, 0);
+ if (i == 0) {
+ f32 dVar16;
+ f32 dVar17 = mpDrawBg[0]->mFloorScreen->search('rink')->getBounds().i.y;
+ dVar16 = mpDrawBg[0]->mFloorScreen->search('rink')->getBounds().i.x;
+ mpDrawBg[0]->mFloorScreen->search('wolf')->move(dVar16, dVar17);
+ if (daPy_py_c::i_checkNowWolf()) {
+ mpDrawBg[0]->mFloorScreen->search('wolf')->show();
+ mpDrawBg[0]->mFloorScreen->search('rink')->hide();
+ } else {
+ mpDrawBg[0]->mFloorScreen->search('wolf')->hide();
+ mpDrawBg[0]->mFloorScreen->search('rink')->show();
+ }
+ }
+ }
+
+ for (int i = 0; i < 8; i++) {
+ if (i >= (mFloorAll - mBottomFloor) + 1) {
+ mSelFloor[i]->hide();
+ } else if (i == getCurFloorPos()) {
+ mSelFloor[i]->getPanePtr()->scale(1.0f, 1.0f);
+ mSelFloor[i]->setAlpha(0xff);
+ } else {
+ mSelFloor[i]->getPanePtr()->scale(0.9f, 0.9f);
+ mSelFloor[i]->setAlpha(0x80);
+ }
+ }
+ f32 dVar16 = mpDrawBg[0]->mFloorScreen->search('s_n_all')->getHeight();
+ f32 dVar17 = mSelFloor[0]->getPanePtr()->getHeight();
+
+ f32 dVar18 = mFloorAll - mBottomFloor + 1;
+ f32 fVar1 = (dVar16 - (7.0f * (dVar18 - 1.0f) + dVar18 * dVar17)) / 2 + dVar17 / 2;
+ fVar1 -= (dVar16 / 2);
+ for (int i = mFloorAll - mBottomFloor; i >= 0; i--) {
+ mSelFloor[i]->getPanePtr()->translate(mSelFloor[i]->getPanePtr()->getTranslateX(), fVar1);
+ fVar1 += 7.0f + dVar17;
+ }
+
+ field_0x10->getPanePtr()->translate(mSelFloor[getCurFloorPos()]->getTranslateX(), mSelFloor[getCurFloorPos()]->getTranslateY());
+ iconMoveCalc();
+ Vec local_b0 = mSelFloor[getDefaultCurFloorPos()]->getGlobalVtxCenter(false, 0);
+ mpDrawBg[0]->mpDrawCursor->setPos(local_b0.x + field_0x104, local_b0.y, mSelFloor[getDefaultCurFloorPos()]->getPanePtr(), true);
+ field_0x94 = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'item_s_n', 0, NULL);
+ field_0x7c[0] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'map_n', 3, NULL);
+ field_0x7c[1] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'con_n', 3, NULL);
+ field_0x7c[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'key_n', 3, NULL);
+ field_0x88[0] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'map000', 3, NULL);
+ field_0x88[1] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'con000', 3, NULL);
+
+ if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) {
+ field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'i_key_n', 3, NULL);
+ } else if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) {
+ field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'lv5_k_n', 3, NULL);
+ } else {
+ field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'nor_k_n', 3, NULL);
+ }
+ for (int i = 0; i < 3; i++) {
+ field_0x88[i]->scale(0.9f, 0.9f);
+ }
+ if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) {
+ mpDrawBg[0]->mBaseScreen->search('lv5_k_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('nor_k_n')->hide();
+ u8 local_13f = 0;
+ if (checkItemGet(0xf9, 1)) {
+ local_13f = 1;
+ }
+ if (checkItemGet(0xfa, 1)) {
+ local_13f++;
+ }
+ if (checkItemGet(0xfb, 1)) {
+ local_13f++;
+ }
+ for (int i = 0; i < 3; i++) {
+ if (i == local_13f - 1) {
+ mpDrawBg[0]->mBaseScreen->search(key_tag[i])->show();
+ } else {
+ mpDrawBg[0]->mBaseScreen->search(key_tag[i])->hide();
+ }
+ }
+ if (local_13f != 0) {
+ field_0x174[2] = 0x26;
+ } else {
+ field_0x174[2] = 0;
+ }
+ if (local_13f == 0 || dMeter2Info_isTempBit(0)) {
+ mpDrawBg[0]->mBaseScreen->search('key_n_n')->hide();
+ } else {
+ ResTIMG* uVar20 = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(local_13f));
+ ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_2_s'))->changeTexture(uVar20, 0);
+ ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_2'))->changeTexture(uVar20, 0);
+ uVar20 = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(3));
+ ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_1_s'))->changeTexture(uVar20, 0);
+ ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_1'))->changeTexture(uVar20, 0);
+ }
+ } else if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) {
+ mpDrawBg[0]->mBaseScreen->search('i_key_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('nor_k_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('key_n_n')->hide();
+ u8 local_140 = 0xff;
+ field_0x174[2] = 0;
+ if (g_fmapHIO.mMapIconHIO.mLV5DungeonItemDebug) {
+ local_140 = g_fmapHIO.mMapIconHIO.mLV5DungeonItem;
+ if (local_140 != 0xff) {
+ field_0x174[2] = local_140;
+ }
+ } else {
+ if (dComIfGs_isDungeonItemBossKey()) {
+ local_140 = 0xf6;
+ field_0x174[2] = (u8)dComIfGs_isDungeonItemBossKey() ? 0xf6 : 0;
+ } else {
+ if (checkItemGet(0xf4, 1) && !i_dComIfGs_isEventBit(2)) {
+ local_140 = 0xf4;
+ field_0x174[2] = 0xf4;
+ } else {
+ if (checkItemGet(0xf5, 1) && !i_dComIfGs_isEventBit(1)) {
+ local_140 = 0xf5;
+ field_0x174[2] = 0xf5;
+ }
+ }
+ }
+ }
+ switch (local_140) {
+ case 0xf4:
+ case 0xf5:
+ dMeter2Info_readItemTexture(local_140, mItemTexBuf,
+ (J2DPicture*)mpDrawBg[0]->mBaseScreen->search('lv5_boss'), NULL, NULL, NULL, NULL,
+ NULL, NULL, -1);
+ break;
+ }
+ } else {
+ mpDrawBg[0]->mBaseScreen->search('i_key_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('lv5_k_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('key_n_n')->hide();
+ field_0x174[2] = (u8)dComIfGs_isDungeonItemBossKey() ? 0x26 : 0;
+ }
+
+ field_0x174[0] = (u8)dComIfGs_isDungeonItemMap() ? 0x23 : 0;
+ field_0x174[1] = (u8)dComIfGs_isDungeonItemCompass() ? 0x24 : 0;
+ field_0x177 = 0;
+ int bVar6 = 0;
+ for (int i = 0; i < 3; i++) {
+ if (field_0x174[i] != 0) {
+ if (!bVar6) {
+ field_0x177 = i;
+ bVar6 = 1;
+ }
+ field_0x88[i]->getPanePtr()->scale(0.9f, 0.9f);
+ } else {
+ mpDrawBg[0]->mBaseScreen->search(item_tag[i])->hide();
+ mpDrawBg[0]->mBaseScreen->search(waku_tag[i])->hide();
+ if (i == 2) {
+ mpDrawBg[0]->mBaseScreen->search('lv5_k_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('nor_k_n')->hide();
+ mpDrawBg[0]->mBaseScreen->search('key_n_n')->hide();
+ }
+ }
+ }
+ if (bVar6 == true) {
+ field_0x94->translate(field_0x7c[field_0x177]->getTranslateX(), field_0x7c[field_0x177]->getTranslateY());
+ }
+ field_0x94->hide();
+ field_0x98 = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'so_s_n', 0, NULL);
+ field_0x98->hide();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1562,12 +2423,27 @@ asm void dMenu_Dmap_c::screenInit() {
#include "asm/d/menu/d_menu_dmap/screenInit__12dMenu_Dmap_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80454050-80454054 002650 0004+00 2/2 0/0 0/0 .sdata2 @5288 */
SECTION_SDATA2 static f32 lit_5288 = 0.0054931640625f;
/* 801BC788-801BC848 1B70C8 00C0+00 1/1 0/0 0/0 .text getPlayerIconPos__12dMenu_Dmap_cFScf */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_Dmap_c::getPlayerIconPos(s8 param_1, f32 param_2) {
+ if (param_1 == field_0x172) {
+ f32 local_18;
+ f32 local_1c;
+ s16 local_20;
+ mMapCtrl->getPlayerDrawInfo(&local_18, &local_1c, &local_20);
+ mpDrawBg[0]->setIconInfo(17, local_18, local_1c, param_2, cM_sht2d(local_20), 1.0f, 1);
+ player_px = local_18;
+ player_py = local_1c;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1576,8 +2452,114 @@ asm void dMenu_Dmap_c::getPlayerIconPos(s8 param_0, f32 param_1) {
#include "asm/d/menu/d_menu_dmap/getPlayerIconPos__12dMenu_Dmap_cFScf.s"
}
#pragma pop
+#endif
/* 801BC848-801BCDF4 1B7188 05AC+00 2/2 0/0 0/0 .text getIconPos__12dMenu_Dmap_cFScf */
+// Matches with class definitions
+#ifdef NONMATCHING
+void dMenu_Dmap_c::getIconPos(s8 param_1, f32 param_2) {
+ f32 local_34;
+ f32 local_38;
+ f32 local_3c = mpDrawBg[0]->getMapWidth();
+ f32 local_40 = mpDrawBg[0]->getMapHeight();
+ s8 cStack_45;
+ mMapCtrl->initGetTreasureList(1, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, &cStack_45, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(20, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(8, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, &cStack_45, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(22, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(3, param_1);
+ if (mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL) == 1) {
+ mpDrawBg[0]->setIconInfo(4, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(0, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(19, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(5, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(18, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ if (dComIfGp_isLightDropMapVisible()) {
+ mMapCtrl->initGetTreasureList(4, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(5, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ }
+ mMapCtrl->initGetTreasureList(12, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(6, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(11, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(7, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(2, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(14, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(9, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(12, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(15, param_1);
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, NULL, NULL)) {
+ break;
+ }
+ mpDrawBg[0]->setIconInfo(8, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ mMapCtrl->initGetTreasureList(16, param_1);
+ s16 local_44;
+ u8 local_46;
+ s8 local_47;
+ while (true) {
+ if (!mMapCtrl->getTreasureList(&local_34, &local_38, NULL, &local_46, &local_47)) {
+ break;
+ }
+ if (local_46 == 0xff || (local_46 != 0xff && dComIfGs_isSwitch(local_46, (int)local_47))) {
+ mpDrawBg[0]->setIconInfo(15, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ } else {
+ mpDrawBg[0]->setIconInfo(16, local_34, local_38, param_2, 0.0f, 1.0f, 1);
+ }
+ }
+ s32 drawInfo = mMapCtrl->getRestartDrawInfo(&local_34, &local_38, &local_44);
+ if (drawInfo == param_1) {
+ mpDrawBg[0]->setIconInfo(21, local_34, local_38, param_2, cM_sht2d(local_44), 1.0f, 1);
+ }
+ getPlayerIconPos(param_1, param_2);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1586,8 +2568,89 @@ asm void dMenu_Dmap_c::getIconPos(s8 param_0, f32 param_1) {
#include "asm/d/menu/d_menu_dmap/getIconPos__12dMenu_Dmap_cFScf.s"
}
#pragma pop
+#endif
/* 801BCDF4-801BD144 1B7734 0350+00 1/0 0/0 0/0 .text __dt__12dMenu_Dmap_cFv */
+// Matches with virtual definitions
+#ifdef NONMATCHING
+dMenu_Dmap_c::~dMenu_Dmap_c() {
+ s32 iVar2 = field_0xe8->getTotalFreeSize();
+ s32 iVar4 = field_0xe8->getTotalFreeSize();
+ if (mpDrawBg[0] != NULL) {
+ delete mpDrawBg[0];
+ mpDrawBg[0] = NULL;
+ }
+ if (mDmapHeap != NULL) {
+ mDmapHeap->free(mItemTexBuf);
+ mItemTexBuf = NULL;
+ }
+ OS_REPORT("mpDrawBg free ==================> %d bytes use, %d bytes remain\n",
+ field_0xe8->getTotalFreeSize() - iVar4, field_0xe8->getTotalFreeSize());
+ if (mSelStick != NULL) {
+ delete mSelStick;
+ }
+ if (field_0x94 != NULL) {
+ delete field_0x94;
+ }
+ for (int i = 0; i < 8; i++) {
+ if (mSelFloor[i] != NULL) {
+ delete mSelFloor[i];
+ mSelFloor[i] = NULL;
+ }
+ if (mIconLinkPos[i] != NULL) {
+ delete mIconLinkPos[i];
+ mIconLinkPos[i] = NULL;
+ }
+ if (mIconBossPos[i] != NULL) {
+ delete mIconBossPos[i];
+ mIconBossPos[i] = NULL;
+ }
+ }
+ for (int i = 0; i < 2; i++) {
+ if (mStayIcon[i] != NULL) {
+ delete mStayIcon[i];
+ mStayIcon[i] = NULL;
+ }
+ }
+ if (field_0x10 != NULL) {
+ delete field_0x10;
+ }
+ for (int i = 0; i < 3; i++) {
+ if (field_0x7c[i] != NULL) {
+ delete field_0x7c[i];
+ field_0x7c[i] = NULL;
+ }
+ if (field_0x88[i] != NULL) {
+ delete field_0x88[i];
+ field_0x88[i] = NULL;
+ }
+ }
+ if (field_0x98 != NULL) {
+ delete field_0x98;
+ }
+ if (mMapCtrl != NULL) {
+ mMapCtrl->_delete();
+ delete mMapCtrl;
+ }
+ if (field_0xe0 != NULL) {
+ JKRUnmountArchive(field_0xe0->getArchive());
+ field_0xe0->destroy();
+ field_0xe0 = NULL;
+ }
+ if (field_0xe4 != NULL) {
+ JKRUnmountArchive(field_0xe4);
+ field_0xe4 = 0;
+ }
+ if (mDmapHeap != NULL) {
+ mDoExt_destroyExpHeap(mDmapHeap);
+ mDmapHeap = 0;
+ }
+ dMeter2Info_setMapDrugFlag(0);
+ OS_REPORT("MenuDmap free ==================> %d bytes use, %d bytes remain\n",
+ field_0xe8->getTotalFreeSize() - iVar2, field_0xe8->getTotalFreeSize());
+ dMenu_Dmap_c::myclass = NULL;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1597,6 +2660,7 @@ extern "C" asm void __dt__12dMenu_Dmap_cFv() {
#include "asm/d/menu/d_menu_dmap/__dt__12dMenu_Dmap_cFv.s"
}
#pragma pop
+#endif
/* 801BD144-801BD1D4 1B7A84 0090+00 0/0 1/0 0/0 .text __dt__19dMenu_DmapMapCtrl_cFv */
#pragma push
@@ -1610,37 +2674,66 @@ asm dMenu_DmapMapCtrl_c::~dMenu_DmapMapCtrl_c() {
/* 801BD1D4-801BD1E8 1B7B14 0014+00 10/10 0/0 0/0 .text getCurFloorPos__12dMenu_Dmap_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::getCurFloorPos() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/getCurFloorPos__12dMenu_Dmap_cFv.s"
+s8 dMenu_Dmap_c::getCurFloorPos() {
+ s8 i_floor = field_0x16c - mBottomFloor;
+ JUT_ASSERT(3393, i_floor >= 0 && i_floor < (8));
+ return i_floor;
}
-#pragma pop
/* 801BD1E8-801BD208 1B7B28 0020+00 4/4 0/0 0/0 .text getDefaultCurFloorPos__12dMenu_Dmap_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::getDefaultCurFloorPos() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/getDefaultCurFloorPos__12dMenu_Dmap_cFv.s"
+s8 dMenu_Dmap_c::getDefaultCurFloorPos() {
+ return getCurFloorPos();
}
-#pragma pop
/* 801BD208-801BD3B8 1B7B48 01B0+00 4/4 0/0 0/0 .text iconMoveCalc__12dMenu_Dmap_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::iconMoveCalc() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/iconMoveCalc__12dMenu_Dmap_cFv.s"
+void dMenu_Dmap_c::iconMoveCalc() {
+ s32 iVar7 = ((s16)field_0x172 - (s16)mBottomFloor);
+ mStayIcon[0]->show();
+ Vec local_3c = field_0x14c[0];
+ Vec local_6c = mIconLinkPos[iVar7]->getGlobalVtxCenter(false, 0);
+ mStayIcon[0]->paneTrans(local_6c.x - local_3c.x, local_6c.y - local_3c.y);
+ // !@bug Uses ScaleX for y coordinate
+ f32 yscale = mSelFloor[iVar7]->getPanePtr()->getScaleX();
+ f32 xscale = mSelFloor[iVar7]->getPanePtr()->getScaleX();
+ mStayIcon[0]->scale(xscale, yscale);
+ if (field_0x173 != -99) {
+ iVar7 = field_0x173 - (s16)mBottomFloor;
+ mStayIcon[1]->show();
+ Vec local_54 = field_0x14c[1];
+ Vec local_78 = mIconBossPos[iVar7]->getGlobalVtxCenter(false, 0);
+ mStayIcon[1]->paneTrans(local_78.x - local_54.x, local_78.y - local_54.y);
+ mStayIcon[1]->scale(xscale, yscale);
+ }
}
-#pragma pop
/* 801BD3B8-801BD524 1B7CF8 016C+00 1/1 0/0 0/0 .text
* drawFloorScreenBack__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_Dmap_c::drawFloorScreenBack(J2DScreen* param_1, f32 param_2, f32 param_3,
+ J2DOrthoGraph* param_4) {
+ for (int i = 0; i < (s8)(getFloorAll() - mBottomFloor + 1); i++) {
+ if (i == getCurFloorPos() && 0.0f == field_0x114[i]) {
+ mSelFloor[i]->hide();
+ } else {
+ mSelFloor[i]->show();
+ }
+ }
+ if (field_0x172 - mBottomFloor == getCurFloorPos()) {
+ mStayIcon[0]->hide();
+ } else {
+ mStayIcon[0]->show();
+ }
+ if (field_0x173 != -99) {
+ if (field_0x173 - mBottomFloor == getCurFloorPos()) {
+ mStayIcon[1]->hide();
+ } else {
+ mStayIcon[1]->show();
+ }
+ }
+ param_1->draw(param_2, param_3, param_4);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1650,9 +2743,36 @@ asm void dMenu_Dmap_c::drawFloorScreenBack(J2DScreen* param_0, f32 param_1, f32
#include "asm/d/menu/d_menu_dmap/drawFloorScreenBack__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph.s"
}
#pragma pop
+#endif
/* 801BD524-801BD690 1B7E64 016C+00 1/1 0/0 0/0 .text
* drawFloorScreenTop__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_Dmap_c::drawFloorScreenTop(J2DScreen* param_1, f32 param_2, f32 param_3,
+ J2DOrthoGraph* param_4) {
+ for (int i = 0; i < (s8)(getFloorAll() - mBottomFloor + 1); i++) {
+ if (i == getCurFloorPos() && 0.0f == field_0x114[i]) {
+ mSelFloor[i]->show();
+ } else {
+ mSelFloor[i]->hide();
+ }
+ }
+ if (field_0x172 - mBottomFloor == getCurFloorPos()) {
+ mStayIcon[0]->show();
+ } else {
+ mStayIcon[0]->hide();
+ }
+ if (field_0x173 != -99) {
+ if (field_0x173 - mBottomFloor == getCurFloorPos()) {
+ mStayIcon[1]->show();
+ } else {
+ mStayIcon[1]->hide();
+ }
+ }
+ param_1->draw(param_2, param_3, param_4);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1662,27 +2782,59 @@ asm void dMenu_Dmap_c::drawFloorScreenTop(J2DScreen* param_0, f32 param_1, f32 p
#include "asm/d/menu/d_menu_dmap/drawFloorScreenTop__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph.s"
}
#pragma pop
+#endif
/* 801BD690-801BD6C4 1B7FD0 0034+00 3/3 0/0 0/0 .text isMapMoveState__12dMenu_Dmap_cFv */
+// getDisableZoomMoveFlgX is not defined - needs the member variables and the class is not defined at all.
+#ifdef NONMATCHING
+bool dMenu_Dmap_c::isMapMoveState() {
+ field_0x184 = true;
+ if (mMapCtrl->getDisableZoomMoveFlgX() == 1 && mMapCtrl->getDisableZoomMoveFlgZ() == 1) {
+ field_0x184 = false;
+ }
+ if (field_0x17b == 0) {
+ field_0x184 = false;
+ }
+ return field_0x184;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMenu_Dmap_c::isMapMoveState() {
+asm bool dMenu_Dmap_c::isMapMoveState() {
nofralloc
#include "asm/d/menu/d_menu_dmap/isMapMoveState__12dMenu_Dmap_cFv.s"
}
#pragma pop
+#endif
/* 801BD6C4-801BD7C0 1B8004 00FC+00 1/1 0/0 0/0 .text floorChangeMode__12dMenu_Dmap_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::floorChangeMode() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/floorChangeMode__12dMenu_Dmap_cFv.s"
+void dMenu_Dmap_c::floorChangeMode() {
+ if (field_0x16d > field_0x16c) {
+ field_0x16e = field_0x16c;
+ field_0x179 = mSelStick->getYwaitTimer();
+ s8 dVar1 = field_0x16d - field_0x16c;
+ field_0x16c = field_0x16d;
+ mMapCtrl->setPlusNowStayFloorNo(dVar1, field_0x179);
+ field_0x17d = 1;
+ } else {
+ field_0x16e = field_0x16c;
+ field_0x179 = mSelStick->getYwaitTimer();
+ field_0x17d = 1;
+ s8 dVar1 = field_0x16d - field_0x16c;
+ field_0x16c = field_0x16d;
+ mMapCtrl->setPlusNowStayFloorNo(dVar1, field_0x179);
+ }
+ field_0x185 = 0;
+ if (mZoomState != 0) {
+ mpDrawBg[0]->setAButtonString(0);
+ mpDrawBg[0]->setBButtonString(0x522);
+ } else {
+ mpDrawBg[0]->setAButtonString(0x527);
+ mpDrawBg[0]->setBButtonString(0x3f9);
+ }
}
-#pragma pop
/* 801BD7C0-801BDD40 1B8100 0580+00 1/1 0/0 0/0 .text _create__12dMenu_Dmap_cFv */
#pragma push
@@ -1730,6 +2882,13 @@ asm void dMenu_Dmap_c::_move() {
#pragma pop
/* 801BDEF8-801BDF48 1B8838 0050+00 1/1 0/0 0/0 .text setMapTexture__12dMenu_Dmap_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMenu_Dmap_c::setMapTexture() {
+ f32 mapBlendPer = mMapCtrl->getMapBlendPer();
+ mpDrawBg[0]->getMapPane()->setBlendRatio(mapBlendPer, 1.0f - mapBlendPer);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1738,16 +2897,12 @@ asm void dMenu_Dmap_c::setMapTexture() {
#include "asm/d/menu/d_menu_dmap/setMapTexture__12dMenu_Dmap_cFv.s"
}
#pragma pop
+#endif
/* 801BDF48-801BDF6C 1B8888 0024+00 1/1 0/0 0/0 .text mapBgAnime__12dMenu_Dmap_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::mapBgAnime() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/mapBgAnime__12dMenu_Dmap_cFv.s"
+void dMenu_Dmap_c::mapBgAnime() {
+ mpDrawBg[0]->mapScreenAnime();
}
-#pragma pop
/* ############################################################################################## */
/* 80454058-8045405C 002658 0004+00 2/2 0/0 0/0 .sdata2 @6180 */
@@ -1869,14 +3024,9 @@ asm void dMenu_Dmap_c::itemSelectAnm() {
/* 801BF180-801BF18C 1B9AC0 000C+00 1/0 0/0 0/0 .text itemInfoOpenAnm__12dMenu_Dmap_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMenu_Dmap_c::itemInfoOpenAnm() {
- nofralloc
-#include "asm/d/menu/d_menu_dmap/itemInfoOpenAnm__12dMenu_Dmap_cFv.s"
+void dMenu_Dmap_c::itemInfoOpenAnm() {
+ field_0x17c = 3;
}
-#pragma pop
/* 801BF18C-801BF278 1B9ACC 00EC+00 1/0 0/0 0/0 .text itemInfoWait__12dMenu_Dmap_cFv */
#pragma push
diff --git a/src/d/menu/d_menu_dmap_map.cpp b/src/d/menu/d_menu_dmap_map.cpp
index 9d81a9d264..b86697bdb2 100644
--- a/src/d/menu/d_menu_dmap_map.cpp
+++ b/src/d/menu/d_menu_dmap_map.cpp
@@ -129,67 +129,6 @@ struct dMpath_c {
static f32 mAllSizeZ;
};
-struct dMenu_StageMapCtrl_c {
- /* 801C0EE0 */ void getMapBlendPer() const;
- /* 801C0F24 */ void getPixelStageSizeX() const;
- /* 801C0F3C */ void getPixelStageSizeZ() const;
- /* 801C0F54 */ void getPixelCenterX() const;
- /* 801C0F74 */ void getPixelCenterZ() const;
- /* 801C0F94 */ void initGetTreasureList(u8, s8);
- /* 801C0FF8 */ void getTreasureList(f32*, f32*, s8*, u8*, s8*);
- /* 801C1128 */ void cnvPosTo2Dpos(f32, f32, f32*, f32*) const;
- /* 801C1194 */ void getPlayerDrawInfo(f32*, f32*, s16*) const;
- /* 801C1218 */ void getRestartDrawInfo(f32*, f32*, s16*) const;
- /* 801C12A8 */ void setPlusNowStayFloorNo(s8, u8);
- /* 801C12B4 */ void moveFloor();
- /* 801C1878 */ void wait_init_proc();
- /* 801C188C */ void wait_proc();
- /* 801C18AC */ void zoomIn_init_proc();
- /* 801C1C40 */ void initZoomIn(u8);
- /* 801C1CEC */ void initZoomIn(u8, f32, f32);
- /* 801C1E00 */ void initZoomInCenterHold(u8);
- /* 801C1E74 */ void zoomCalcSet(f32);
- /* 801C1EC0 */ void zoomIn_proc();
- /* 801C1F2C */ void initZoomOut(u8);
- /* 801C1F70 */ void initZoomWait(f32, f32);
- /* 801C2004 */ void zoomWait_init_proc();
- /* 801C205C */ void zoomWait_proc();
- /* 801C2198 */ void zoomOut_init_proc();
- /* 801C21AC */ void zoomOut_proc();
- /* 801C2234 */ void move();
- /* 801C22F8 */ void getPlayerStayFloorNo() const;
- /* 801C231C */ void _create(u16, u16, u16, u16, void*);
- /* 801C235C */ void _create(u16, u16, u16, u16, s8, void*);
- /* 801C2518 */ void _delete();
- /* 801C2538 */ void isEnableZoomIn();
- /* 801C2578 */ void isEnableZoomOut();
- /* 801C2588 */ void setPlusZoomCenterX(f32);
- /* 801C2590 */ void setPlusZoomCenterZ(f32);
-
- static f32 m_zoomCenterMinX;
- static f32 m_zoomCenterMaxX;
- static f32 m_zoomCenterMinZ;
- static f32 m_zoomCenterMaxZ[1 + 1 /* padding */];
-};
-
-struct dMenu_DmapMap_c {
- /* 801C0CD8 */ void _create(u16, u16, u16, u16, void*);
- /* 801C0D04 */ void _delete();
- /* 801C0D70 */ void setTexture(u16, u16, u16, u16);
- /* 801C0E4C */ void setPos(int, int, f32, f32, f32, bool, f32);
-};
-
-struct dMenu_DmapMapCtrl_c {
- /* 801BD144 */ ~dMenu_DmapMapCtrl_c();
- /* 801C18C0 */ void getZoomMinMaxCheck(f32*, f32*, f32*, f32*, bool*, bool*);
- /* 801C1B14 */ void calcZoomCenter(f32*, f32*);
- /* 801C1BA4 */ void getZoomCmPerPixel();
- /* 801C2028 */ void isEnableZoomMove() const;
- /* 801C22A8 */ void draw();
- /* 801C2598 */ void getInitWholeMapScale(f32*, f32, f32, f32, f32);
- /* 801C25C0 */ void getInitDispCenter(f32*, f32*);
-};
-
struct dMdm_HIO_prm_res_dst_s {
static u8 m_res[4];
};
@@ -786,7 +725,7 @@ SECTION_SDATA2 static f64 lit_3947 = 1.0;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMenu_StageMapCtrl_c::getMapBlendPer() const {
+asm f32 dMenu_StageMapCtrl_c::getMapBlendPer() const {
nofralloc
#include "asm/d/menu/d_menu_dmap_map/getMapBlendPer__20dMenu_StageMapCtrl_cCFv.s"
}
@@ -852,7 +791,7 @@ asm void dMenu_StageMapCtrl_c::initGetTreasureList(u8 param_0, s8 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMenu_StageMapCtrl_c::getTreasureList(f32* param_0, f32* param_1, s8* param_2, u8* param_3,
+asm bool dMenu_StageMapCtrl_c::getTreasureList(f32* param_0, f32* param_1, s8* param_2, u8* param_3,
s8* param_4) {
nofralloc
#include "asm/d/menu/d_menu_dmap_map/getTreasureList__20dMenu_StageMapCtrl_cFPfPfPScPUcPSc.s"
@@ -887,7 +826,7 @@ asm void dMenu_StageMapCtrl_c::getPlayerDrawInfo(f32* param_0, f32* param_1, s16
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMenu_StageMapCtrl_c::getRestartDrawInfo(f32* param_0, f32* param_1, s16* param_2) const {
+asm s8 dMenu_StageMapCtrl_c::getRestartDrawInfo(f32* param_0, f32* param_1, s16* param_2) const {
nofralloc
#include "asm/d/menu/d_menu_dmap_map/getRestartDrawInfo__20dMenu_StageMapCtrl_cCFPfPfPs.s"
}
diff --git a/src/d/menu/d_menu_map_common.cpp b/src/d/menu/d_menu_map_common.cpp
index cbd5d62637..9a51ffbed6 100644
--- a/src/d/menu/d_menu_map_common.cpp
+++ b/src/d/menu/d_menu_map_common.cpp
@@ -8,53 +8,8 @@
#include "d/d_select_cursor.h"
#include "d/meter/d_meter_HIO.h"
#include "dol2asm.h"
-#include "dolphin/types.h"
#include "global.h"
-struct dMenuMapCommon_c {
- /* 801C2718 */ dMenuMapCommon_c();
- /* 801C27B4 */ virtual ~dMenuMapCommon_c();
- /* 801C28D8 */ void initiate(JKRArchive*);
- /* 801C38E4 */ void drawIcon(f32, f32, f32, f32);
- /* 801C3EC4 */ void iconScale(int, f32, f32, f32);
- /* 801C43A8 */ void setIconInfo(u8, f32, f32, f32, f32, f32, u8);
- /* 801C443C */ void clearIconInfo();
- /* 801C4494 */ void setBlendRatio(u8, f32, f32);
- /* 801C452C */ void blinkMove(s16);
- /* 801C4600 */ void moveLightDropAnime();
- /* 801C4738 */ float getIconSizeX(u8 index);
- /* 801C4778 */ float getIconSizeY(u8 index);
- /* 801C47C4 */ void debugIcon();
-
- struct data {
- /* 0x00 */ float _0;
- /* 0x04 */ float _4;
- /* 0x08 */ float _8;
- /* 0x0C */ float _C;
- /* 0x10 */ float _10;
- /* 0x14 */ u8 _14;
- /* 0x15 */ u8 _15;
- };
-
- /* 0x004 */ J2DPicture* mPictures[23];
- /* 0x060 */ J2DPicture* _60;
- /* 0x064 */ dSelect_cursor_c* mpDrawCursor;
- /* 0x068 */ dSelect_cursor_c* mpPortalIcon;
- /* 0x06C */ u32 _6c;
- /* 0x070 */ data _70[128];
- /* 0xC70 */ u16 _c70;
- /* 0xC72 */ u16 _c72;
- /* 0xC74 */ u16 _c74;
- /* 0xC76 */ u16 _c76;
- /* 0xC78 */ float _c78;
- /* 0xC7C */ float _c7c;
- /* 0xC80 */ float _c80;
- /* 0xC84 */ float _c84;
- /* 0xC88 */ float _c88;
- /* 0xC8C */ float _c8c;
- /* 0xC90 */ u8 _c90;
-};
-
//
// Forward References:
//
diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp
index a328147cce..7f1d159ddd 100644
--- a/src/d/msg/d_msg_object.cpp
+++ b/src/d/msg/d_msg_object.cpp
@@ -1471,7 +1471,7 @@ asm void dMsgObject_c::setTalkHeapLocal(void* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMsgObject_c::getTalkHeap() {
+asm void* dMsgObject_c::getTalkHeap() {
nofralloc
#include "asm/d/msg/d_msg_object/getTalkHeap__12dMsgObject_cFv.s"
}
diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp
index 67f287dd59..ca7f35770d 100644
--- a/src/f_op/f_op_msg_mng.cpp
+++ b/src/f_op/f_op_msg_mng.cpp
@@ -398,20 +398,10 @@ asm f32 fopMsgM_valueIncrease(int param_0, int param_1, u8 param_2) {
#pragma pop
#endif
-/* 800202CC-80020338 01AC0C 006C+00 0/0 2/0 0/0 .text setBlendRatio__10J2DPictureFff */
-void J2DPicture::setBlendRatio(f32 param_0, f32 param_1) {
- setBlendColorRatio(param_0, param_1);
- setBlendAlphaRatio(param_0, param_1);
-}
-
-/* 80020338-80020368 01AC78 0030+00 0/0 1/0 0/0 .text append__10J2DPictureFPCcf */
-bool J2DPicture::append(char const* param_0, f32 param_1) {
- return insert(param_0, mTextureNum, param_1);
-}
-
-/* 80020368-8002039C 01ACA8 0034+00 0/0 1/0 0/0 .text insert__10J2DPictureFPCcUcf */
-bool J2DPicture::insert(char const* param_0, u8 param_1, f32 param_2) {
- return insert(param_0, NULL, param_1, param_2);
+// Here to generate J2DPicture virtual inlines
+static void dummyVirtual(J2DPicture* picture, f32 param_1, f32 param_2, const char* param_3) {
+ picture->append(param_3, param_1);
+ picture->setBlendRatio(param_1, param_2);
}
/* 8002039C-800203E0 01ACDC 0044+00 0/0 3/3 0/0 .text fopMsgM_createExpHeap__FUlP7JKRHeap