summaryrefslogtreecommitdiff
path: root/src/d/d_menu_dmap.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-10 07:29:58 -0700
committerGitHub <noreply@github.com>2024-10-10 08:29:58 -0600
commit12eb254d769d84743b5cc6cd5424057c57eaf0ad (patch)
tree4509be332b2ccfc6fe939f47740d68f7746eca3e /src/d/d_menu_dmap.cpp
parent2fd702c0ac170a789af879b8b92a82d4dcc9080c (diff)
switch to dtk setup (#2203)
* switch to dtk setup * some cleanup / fixes * cleanup d_a_alink literals * Restore doxygen, update CI & README.md (#1) * Fix build image ref (#2) --------- Co-authored-by: Luke Street <luke@street.dev>
Diffstat (limited to 'src/d/d_menu_dmap.cpp')
-rw-r--r--src/d/d_menu_dmap.cpp2851
1 files changed, 2851 insertions, 0 deletions
diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp
new file mode 100644
index 0000000000..6a01cd4237
--- /dev/null
+++ b/src/d/d_menu_dmap.cpp
@@ -0,0 +1,2851 @@
+//
+// Generated By: dol2asm
+// Translation Unit: d/d_menu_dmap
+//
+
+#include "d/d_menu_dmap.h"
+#include "d/d_menu_item_explain.h"
+#include "d/d_msg_object.h"
+#include "d/d_meter_HIO.h"
+#include "d/d_meter2_info.h"
+#include "d/d_lib.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"
+#include "d/d_msg_string.h"
+#include "d/d_meter_haihai.h"
+#include "f_op/f_op_msg_mng.h"
+#include "m_Do/m_Do_graphic.h"
+
+//
+// Forward References:
+//
+
+extern "C" void __ct__14dMenu_DmapBg_cFP10JKRExpHeapP9STControl();
+extern "C" void mapScreenInit__14dMenu_DmapBg_cFv();
+extern "C" void mapScreenAnime__14dMenu_DmapBg_cFv();
+extern "C" void mapIconScaleSet__14dMenu_DmapBg_cFUc();
+extern "C" void iconScaleAnmInit__14dMenu_DmapBg_cFffUc();
+extern "C" void iconScaleAnm__14dMenu_DmapBg_cFv();
+extern "C" void buttonIconScreenInit__14dMenu_DmapBg_cFv();
+extern "C" void setAButtonString__14dMenu_DmapBg_cFUl();
+extern "C" void setBButtonString__14dMenu_DmapBg_cFUl();
+extern "C" void setCButtonString__14dMenu_DmapBg_cFUl();
+extern "C" void setJButtonString__14dMenu_DmapBg_cFUl();
+extern "C" void createExplain__14dMenu_DmapBg_cFv();
+extern "C" void deleteExplain__14dMenu_DmapBg_cFv();
+extern "C" void baseScreenInit__14dMenu_DmapBg_cFv();
+extern "C" void setFloorMessage__14dMenu_DmapBg_cFv();
+extern "C" bool dpdMove__14dMenu_DmapBg_cFScScScPUcUc();
+extern "C" void __dt__14dMenu_DmapBg_cFv();
+extern "C" void setAllAlphaRate__14dMenu_DmapBg_cFfb();
+extern "C" void setGoldAnimation__14dMenu_DmapBg_cFb();
+extern "C" void setGoldFrameAlphaRate__14dMenu_DmapBg_cFf();
+extern "C" void addGoldFrameAlphaRate__14dMenu_DmapBg_cFv();
+extern "C" void decGoldFrameAlphaRate__14dMenu_DmapBg_cFv();
+extern "C" void draw__14dMenu_DmapBg_cFv();
+extern "C" void update__14dMenu_DmapBg_cFv();
+extern "C" void calcCursor__14dMenu_DmapBg_cFv();
+extern "C" void drawCursor__14dMenu_DmapBg_cFv();
+extern "C" void __ct__12dMenu_Dmap_cFP10JKRExpHeapP9STControlP10CSTControlUcUc();
+extern "C" void screenInit__12dMenu_Dmap_cFv();
+extern "C" void getPlayerIconPos__12dMenu_Dmap_cFScf();
+extern "C" void getIconPos__12dMenu_Dmap_cFScf();
+extern "C" void __dt__12dMenu_Dmap_cFv();
+extern "C" void __dt__19dMenu_DmapMapCtrl_cFv();
+extern "C" void getCurFloorPos__12dMenu_Dmap_cFv();
+extern "C" void getDefaultCurFloorPos__12dMenu_Dmap_cFv();
+extern "C" void iconMoveCalc__12dMenu_Dmap_cFv();
+extern "C" void drawFloorScreenBack__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph();
+extern "C" void drawFloorScreenTop__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph();
+extern "C" void isMapMoveState__12dMenu_Dmap_cFv();
+extern "C" void floorChangeMode__12dMenu_Dmap_cFv();
+extern "C" void _create__12dMenu_Dmap_cFv();
+extern "C" void append__10J2DPictureFPC7ResTIMGf();
+extern "C" void insert__10J2DPictureFPC7ResTIMGUcf();
+extern "C" void _move__12dMenu_Dmap_cFv();
+extern "C" void setMapTexture__12dMenu_Dmap_cFv();
+extern "C" void mapBgAnime__12dMenu_Dmap_cFv();
+extern "C" void mapControl__12dMenu_Dmap_cFv();
+extern "C" void isOpen__12dMenu_Dmap_cFv();
+extern "C" void isClose__12dMenu_Dmap_cFv();
+extern "C" void _draw__12dMenu_Dmap_cFv();
+extern "C" void itemInfo_init_proc__12dMenu_Dmap_cFv();
+extern "C" void itemInfo_proc__12dMenu_Dmap_cFv();
+extern "C" void itemSelect__12dMenu_Dmap_cFv();
+extern "C" void getNextItem__12dMenu_Dmap_cFi();
+extern "C" void itemSelectAnmInit__12dMenu_Dmap_cFv();
+extern "C" void itemSelectAnm__12dMenu_Dmap_cFv();
+extern "C" void itemInfoOpenAnm__12dMenu_Dmap_cFv();
+extern "C" void itemInfoWait__12dMenu_Dmap_cFv();
+extern "C" void itemInfoCloseAnm__12dMenu_Dmap_cFv();
+extern "C" void getNextStatus__12dMenu_Dmap_cFv();
+extern "C" void isSync__12dMenu_Dmap_cFv();
+extern "C" void isKeyCheck__12dMenu_Dmap_cFv();
+extern "C" void infoModeChange_init_proc__12dMenu_Dmap_cFv();
+extern "C" void infoModeChange_proc__12dMenu_Dmap_cFv();
+extern "C" void mapModeChange_init_proc__12dMenu_Dmap_cFv();
+extern "C" void mapModeChange_proc__12dMenu_Dmap_cFv();
+extern "C" void lv5_talk_init_proc__12dMenu_Dmap_cFv();
+extern "C" void lv5_talk_proc__12dMenu_Dmap_cFv();
+extern "C" void mapMode_init_proc__12dMenu_Dmap_cFv();
+extern "C" void mapMode_proc__12dMenu_Dmap_cFv();
+extern "C" void floorSelect_init_proc__12dMenu_Dmap_cFv();
+extern "C" void floorSelect_proc__12dMenu_Dmap_cFv();
+extern "C" void itemCarryCheck__12dMenu_Dmap_cFv();
+extern "C" void floorChange_init_proc__12dMenu_Dmap_cFv();
+extern "C" void floorChange_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomWait_init_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomWait_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomIn_init_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomIn_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomOut_init_proc__12dMenu_Dmap_cFv();
+extern "C" void zoomOut_proc__12dMenu_Dmap_cFv();
+extern "C" void __dt__15renderingDmap_cFv();
+extern "C" void __dt__20dMenu_StageMapCtrl_cFv();
+extern "C" void __dt__15dMenu_DmapMap_cFv();
+extern "C" void __ct__15renderingDmap_cFv();
+extern "C" void __sinit_d_menu_dmap_cpp();
+extern "C" static void func_801C0844();
+extern "C" extern char const* const d_menu_d_menu_dmap__stringBase0;
+extern "C" u8 myclass__12dMenu_Dmap_c[4 + 4 /* padding */];
+
+//
+// External References:
+//
+
+extern "C" void mDoExt_getJ2dHeap__Fv();
+extern "C" void mDoExt_destroyExpHeap__FP10JKRExpHeap();
+extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
+extern "C" void mDoExt_getMesgFont__Fv();
+extern "C" void mDoExt_getSubFont__Fv();
+extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap();
+extern "C" void fopMsgM_valueIncrease__FiiUc();
+extern "C" void dComIfGp_isLightDropMapVisible__Fv();
+extern "C" void __ct__9STControlFssssffss();
+extern "C" void checkTrigger__9STControlFv();
+extern "C" void checkLeftTrigger__9STControlFv();
+extern "C" void checkRightTrigger__9STControlFv();
+extern "C" void checkUpTrigger__9STControlFv();
+extern "C" void checkDownTrigger__9STControlFv();
+extern "C" void isSwitch__12dSv_memBit_cCFi();
+extern "C" void isDungeonItem__12dSv_memBit_cCFi();
+extern "C" void isEventBit__11dSv_event_cCFUs();
+extern "C" void isSwitch__10dSv_info_cCFii();
+extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
+extern "C" void checkItemGet__FUci();
+extern "C" void getBossIconFloorNo__7dTres_cFPi();
+extern "C" void __ct__16dSelect_cursor_cFUcfP10JKRArchive();
+extern "C" void setPos__16dSelect_cursor_cFffP7J2DPaneb();
+extern "C" void setParam__16dSelect_cursor_cFfffff();
+extern "C" void setAlphaRate__16dSelect_cursor_cFf();
+extern "C" void getMapBlendPer__20dMenu_StageMapCtrl_cCFv();
+extern "C" void getPixelStageSizeX__20dMenu_StageMapCtrl_cCFv();
+extern "C" void getPixelStageSizeZ__20dMenu_StageMapCtrl_cCFv();
+extern "C" void getPixelCenterX__20dMenu_StageMapCtrl_cCFv();
+extern "C" void getPixelCenterZ__20dMenu_StageMapCtrl_cCFv();
+extern "C" void initGetTreasureList__20dMenu_StageMapCtrl_cFUcSc();
+extern "C" void getTreasureList__20dMenu_StageMapCtrl_cFPfPfPScPUcPSc();
+extern "C" void getPlayerDrawInfo__20dMenu_StageMapCtrl_cCFPfPfPs();
+extern "C" void getRestartDrawInfo__20dMenu_StageMapCtrl_cCFPfPfPs();
+extern "C" void setPlusNowStayFloorNo__20dMenu_StageMapCtrl_cFScUc();
+extern "C" void initZoomIn__20dMenu_StageMapCtrl_cFUc();
+extern "C" void initZoomIn__20dMenu_StageMapCtrl_cFUcff();
+extern "C" void initZoomInCenterHold__20dMenu_StageMapCtrl_cFUc();
+extern "C" void initZoomOut__20dMenu_StageMapCtrl_cFUc();
+extern "C" void initZoomWait__20dMenu_StageMapCtrl_cFff();
+extern "C" void move__20dMenu_StageMapCtrl_cFv();
+extern "C" void getPlayerStayFloorNo__20dMenu_StageMapCtrl_cCFv();
+extern "C" void _create__20dMenu_StageMapCtrl_cFUsUsUsUsPv();
+extern "C" void _create__20dMenu_StageMapCtrl_cFUsUsUsUsScPv();
+extern "C" void _delete__20dMenu_StageMapCtrl_cFv();
+extern "C" void isEnableZoomIn__20dMenu_StageMapCtrl_cFv();
+extern "C" void isEnableZoomOut__20dMenu_StageMapCtrl_cFv();
+extern "C" void setPlusZoomCenterX__20dMenu_StageMapCtrl_cFf();
+extern "C" void setPlusZoomCenterZ__20dMenu_StageMapCtrl_cFf();
+extern "C" void __ct__16dMenuMapCommon_cFv();
+extern "C" void __dt__16dMenuMapCommon_cFv();
+extern "C" void initiate__16dMenuMapCommon_cFP10JKRArchive();
+extern "C" void drawIcon__16dMenuMapCommon_cFffff();
+extern "C" void iconScale__16dMenuMapCommon_cFifff();
+extern "C" void setIconInfo__16dMenuMapCommon_cFUcfffffUc();
+extern "C" void clearIconInfo__16dMenuMapCommon_cFv();
+extern "C" void __ct__19dMenu_ItemExplain_cFP10JKRExpHeapP10JKRArchiveP9STControlb();
+extern "C" void move__19dMenu_ItemExplain_cFv();
+extern "C" void draw__19dMenu_ItemExplain_cFP13J2DOrthoGraph();
+extern "C" void openExplainDmap__19dMenu_ItemExplain_cFUcUcUcbUc();
+extern "C" void dMw_LEFT_TRIGGER__Fv();
+extern "C" void dMw_RIGHT_TRIGGER__Fv();
+extern "C" void dMw_B_TRIGGER__Fv();
+extern "C" void __ct__14dMeterHaihai_cFUc();
+extern "C" void drawHaihai__14dMeterHaihai_cFUcffff();
+extern "C" void setScale__14dMeterHaihai_cFf();
+extern "C" void getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c();
+extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c();
+extern "C" void
+readItemTexture__13dMeter2Info_cFUcPvP10J2DPicturePvP10J2DPicturePvP10J2DPicturePvP10J2DPicturei();
+extern "C" void dMeter2Info_getNumberTextureName__Fi();
+extern "C" void setTalkHeap__12dMsgObject_cFPv();
+extern "C" void getTalkHeap__12dMsgObject_cFv();
+extern "C" void getStatus__12dMsgObject_cFv();
+extern "C" void __ct__12dMsgString_cFv();
+extern "C" void __dt__12dMsgString_cFv();
+extern "C" void __ct__10dMsgFlow_cFv();
+extern "C" void __dt__10dMsgFlow_cFv();
+extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
+extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
+extern "C" void __ct__8CPaneMgrFv();
+extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
+extern "C" void __dt__8CPaneMgrFv();
+extern "C" void paneTrans__8CPaneMgrFff();
+extern "C" void scaleAnime__8CPaneMgrFsffUc();
+extern "C" void getGlobalVtx__8CPaneMgrFP7J2DPanePA3_A4_fUcbs();
+extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs();
+extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
+extern "C" void __ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap();
+extern "C" void show__13CPaneMgrAlphaFv();
+extern "C" void hide__13CPaneMgrAlphaFv();
+extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
+extern "C" void alphaAnime__13CPaneMgrAlphaFsUcUcUc();
+extern "C" void __ct__17CPaneMgrAlphaMorfFP9J2DScreenUxUcP10JKRExpHeap();
+extern "C" void setBackupAlpha__17CPaneMgrAlphaMorfFv();
+extern "C" void setAlphaMorfRate__17CPaneMgrAlphaMorfFf();
+extern "C" void cLib_addCalc2__FPffff();
+extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
+extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
+extern "C" void alloc__7JKRHeapFUli();
+extern "C" void free__7JKRHeapFPv();
+extern "C" void getFreeSize__7JKRHeapFv();
+extern "C" void getTotalFreeSize__7JKRHeapFv();
+extern "C" void* __nw__FUl();
+extern "C" void __dl__FPv();
+extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
+extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
+extern "C" void func_802E90C0();
+extern "C" void getBounds__7J2DPaneFv();
+extern "C" void setBasePosition__7J2DPaneF15J2DBasePosition();
+extern "C" void __ct__9J2DScreenFv();
+extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
+extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
+extern "C" void animation__9J2DScreenFv();
+extern "C" void __ct__10J2DPictureFPC7ResTIMG();
+extern "C" void getStringPtr__10J2DTextBoxCFv();
+extern "C" void setString__10J2DTextBoxFsPCce();
+extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
+extern "C" void __destroy_arr();
+extern "C" void __construct_array();
+extern "C" void __ptmf_scall();
+extern "C" void _savegpr_22();
+extern "C" void _savegpr_24();
+extern "C" void _savegpr_26();
+extern "C" void _savegpr_27();
+extern "C" void _savegpr_28();
+extern "C" void _savegpr_29();
+extern "C" void _restgpr_22();
+extern "C" void _restgpr_24();
+extern "C" void _restgpr_26();
+extern "C" void _restgpr_27();
+extern "C" void _restgpr_28();
+extern "C" void _restgpr_29();
+extern "C" extern void* __vt__12dDlst_base_c[3];
+extern "C" extern void* __vt__28dDrawPathWithNormalPattern_c[16];
+extern "C" extern void* __vt__15dRenderingMap_c[23];
+extern "C" extern void* __vt__18dRenderingFDAmap_c[26];
+extern "C" extern void* __vt__11dDrawPath_c[16];
+extern "C" extern void* __vt__19renderingPlusDoor_c[41];
+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" u8 sincosTable___5JMath[65536];
+extern "C" f32 mAllSizeX__8dMpath_c;
+extern "C" f32 mAllSizeZ__8dMpath_c;
+extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
+
+//
+// Declarations:
+//
+
+/* ############################################################################################## */
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_80395760 = "/res/FieldMap/D_MN10.arc";
+#pragma pop
+
+/* 803BC7E0-803BC7EC 019900 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
+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] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemInfo_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC7F8-803BC804 -00001 000C+00 0/1 0/0 0/0 .data @4862 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4862[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)mapMode_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC804-803BC810 -00001 000C+00 0/1 0/0 0/0 .data @4863 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4863[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)infoModeChange_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC810-803BC81C -00001 000C+00 0/1 0/0 0/0 .data @4864 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4864[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)mapModeChange_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC81C-803BC828 -00001 000C+00 0/1 0/0 0/0 .data @4865 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4865[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)lv5_talk_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC828-803BC864 019948 003C+00 2/3 0/0 0/0 .data init_process */
+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,
+ 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] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemInfo_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC870-803BC87C -00001 000C+00 0/1 0/0 0/0 .data @4867 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4867[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)mapMode_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC87C-803BC888 -00001 000C+00 0/1 0/0 0/0 .data @4868 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4868[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)infoModeChange_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC888-803BC894 -00001 000C+00 0/1 0/0 0/0 .data @4869 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4869[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)mapModeChange_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC894-803BC8A0 -00001 000C+00 0/1 0/0 0/0 .data @4870 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4870[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)lv5_talk_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC8A0-803BC8DC 0199C0 003C+00 1/2 0/0 0/0 .data move_process */
+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,
+ 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
+SECTION_DATA static void* lit_4871[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemSelect__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC8E8-803BC8F4 -00001 000C+00 0/1 0/0 0/0 .data @4872 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4872[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemSelectAnm__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC8F4-803BC900 -00001 000C+00 0/1 0/0 0/0 .data @4873 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4873[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemInfoOpenAnm__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC900-803BC90C -00001 000C+00 0/1 0/0 0/0 .data @4874 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4874[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemInfoWait__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC90C-803BC918 -00001 000C+00 0/1 0/0 0/0 .data @4875 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4875[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)itemInfoCloseAnm__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC918-803BC954 019A38 003C+00 1/2 0/0 0/0 .data itemInfo_subProcess */
+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,
+ 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
+SECTION_DATA static void* lit_4876[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)floorSelect_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC960-803BC96C -00001 000C+00 0/1 0/0 0/0 .data @4877 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4877[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)floorChange_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC96C-803BC984 019A8C 0018+00 1/2 0/0 0/0 .data floor_init_process */
+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
+SECTION_DATA static void* lit_4878[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)floorSelect_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC990-803BC99C -00001 000C+00 0/1 0/0 0/0 .data @4879 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4879[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)floorChange_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC99C-803BC9B4 019ABC 0018+00 1/2 0/0 0/0 .data floor_move_process */
+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
+SECTION_DATA static void* lit_4880[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomWait_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC9C0-803BC9CC -00001 000C+00 0/1 0/0 0/0 .data @4881 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4881[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomIn_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC9CC-803BC9D8 -00001 000C+00 0/1 0/0 0/0 .data @4882 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4882[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomOut_init_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BC9D8-803BC9FC 019AF8 0024+00 3/4 0/0 0/0 .data map_init_process */
+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,
+ 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
+SECTION_DATA static void* lit_4883[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomWait_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BCA08-803BCA14 -00001 000C+00 0/1 0/0 0/0 .data @4884 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4884[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomIn_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BCA14-803BCA20 -00001 000C+00 0/1 0/0 0/0 .data @4885 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static void* lit_4885[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)zoomOut_proc__12dMenu_Dmap_cFv,
+};
+#pragma pop
+
+/* 803BCA20-803BCAE0 019B40 0024+9C 1/2 0/0 0/0 .data map_move_process */
+SECTION_DATA static u8 map_move_process[36 + 156 /* padding */] = {
+ 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,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ /* padding */
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 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] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)__dt__15dMenu_DmapMap_cFv,
+};
+
+/* 803BCAEC-803BCB10 019C0C 0024+00 3/3 0/0 0/0 .data __vt__20dMenu_StageMapCtrl_c */
+SECTION_DATA extern void* __vt__20dMenu_StageMapCtrl_c[9] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)__dt__20dMenu_StageMapCtrl_cFv,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+};
+
+/* 803BCB10-803BCB38 019C30 000C+1C 2/2 0/0 0/0 .data __vt__12dMenu_Dmap_c */
+SECTION_DATA extern void* __vt__12dMenu_Dmap_c[3 + 7 /* padding */] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)__dt__12dMenu_Dmap_cFv,
+ /* padding */
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+};
+
+/* 803BCB38-803BCB60 019C58 001C+0C 2/2 0/0 0/0 .data __vt__14dMenu_DmapBg_c */
+SECTION_DATA extern void* __vt__14dMenu_DmapBg_c[7 + 3 /* padding */] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)draw__14dMenu_DmapBg_cFv,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)func_801C0844,
+ (void*)__dt__14dMenu_DmapBg_cFv,
+ /* padding */
+ NULL,
+ NULL,
+ NULL,
+};
+
+/* 80453FE8-80453FEC 0025E8 0004+00 20/20 0/0 0/0 .sdata2 @3962 */
+SECTION_SDATA2 static u8 lit_3962[4] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+
+/* 80453FEC-80453FF0 0025EC 0004+00 26/26 0/0 0/0 .sdata2 @3963 */
+SECTION_SDATA2 static f32 lit_3963 = 1.0f;
+
+/* 801B7F20-801B8110 1B2860 01F0+00 1/1 0/0 0/0 .text
+ * __ct__14dMenu_DmapBg_cFP10JKRExpHeapP9STControl */
+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;
+}
+
+
+/* ############################################################################################## */
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_80395779 = "zelda_dungeon_map_map.blo";
+SECTION_DEAD static char const* const stringBase_80395793 = "zelda_dungeon_map_map.btk";
+#pragma pop
+
+/* 80453FF0-80453FF4 0025F0 0004+00 1/1 0/0 0/0 .sdata2 @4073 */
+SECTION_SDATA2 static f32 lit_4073 = -15.0f;
+
+/* 801B8110-801B884C 1B2A50 073C+00 1/1 0/0 0/0 .text mapScreenInit__14dMenu_DmapBg_cFv
+ */
+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);
+ }
+}
+
+/* ############################################################################################## */
+/* 80453FF4-80453FF8 0025F4 0004+00 2/2 0/0 0/0 .sdata2 @4106 */
+SECTION_SDATA2 static f32 lit_4106 = 2.0f / 5.0f;
+
+/* 80453FF8-80454000 0025F8 0008+00 8/8 0/0 0/0 .sdata2 @4108 */
+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
+ */
+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();
+ }
+ }
+}
+
+
+/* 801B88F4-801B893C 1B3234 0048+00 1/1 0/0 0/0 .text mapIconScaleSet__14dMenu_DmapBg_cFUc */
+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);
+}
+
+
+/* 801B893C-801B8954 1B327C 0018+00 2/2 0/0 0/0 .text iconScaleAnmInit__14dMenu_DmapBg_cFffUc */
+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;
+}
+
+/* ############################################################################################## */
+/* 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 */
+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;
+}
+
+
+/* ############################################################################################## */
+/* 80395518-80395540 021B78 0028+00 2/2 0/0 0/0 .rodata cont_at$4145 */
+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 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
+
+/* 80395568-80395590 021BC8 0028+00 0/1 0/0 0/0 .rodata font_at$4147 */
+#pragma push
+#pragma force_active on
+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
+
+/* 80395590-803955B8 021BF0 0028+00 0/1 0/0 0/0 .rodata font_bt$4148 */
+#pragma push
+#pragma force_active on
+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
+
+/* 803955B8-803955C8 021C18 0010+00 0/1 0/0 0/0 .rodata c_tag$4155 */
+#pragma push
+#pragma force_active on
+SECTION_RODATA static u64 const c_tag_4155[2] = {
+ 'f_text_s', 'f_text',
+};
+COMPILER_STRIP_GATE(0x803955B8, &c_tag_4155);
+#pragma pop
+
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_803957AD = "zelda_dungeon_map_spot_button.blo";
+SECTION_DEAD static char const* const stringBase_803957CF = "";
+#pragma pop
+
+/* 80454004-80454008 002604 0004+00 1/1 0/0 0/0 .sdata2 @4191 */
+SECTION_SDATA2 static f32 lit_4191 = 160.0f;
+
+/* 80454008-8045400C 002608 0004+00 1/1 0/0 0/0 .sdata2 @4192 */
+SECTION_SDATA2 static f32 lit_4192 = 321.0f;
+
+/* 801B8A0C-801B8DE4 1B334C 03D8+00 1/1 0/0 0/0 .text buttonIconScreenInit__14dMenu_DmapBg_cFv */
+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);
+}
+
+/* ############################################################################################## */
+/* 803955C8-803955F0 021C28 0028+00 1/1 0/0 0/0 .rodata cont_at$4196 */
+static u64 const cont_at_4196[5] = {
+ 'font_at', 'font_at1', 'font_at2', 'font_at3', 'font_at4',
+};
+
+/* 801B8DE4-801B8EBC 1B3724 00D8+00 7/7 0/0 0/0 .text setAButtonString__14dMenu_DmapBg_cFUl */
+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);
+ }
+ }
+}
+
+/* ############################################################################################## */
+/* 803955F0-80395618 021C50 0028+00 1/1 0/0 0/0 .rodata cont_bt$4211 */
+static u64 const cont_bt_4211[5] = {
+ 'font_bt', 'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4',
+};
+
+/* 801B8EBC-801B8F94 1B37FC 00D8+00 8/8 0/0 0/0 .text setBButtonString__14dMenu_DmapBg_cFUl */
+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);
+ }
+ }
+}
+
+/* ############################################################################################## */
+/* 80395618-80395628 021C78 0010+00 1/1 0/0 0/0 .rodata c_tag$4229 */
+SECTION_RODATA static u64 const c_tag_4229[2] = {
+ 'f_text_s', 'f_text',
+};
+COMPILER_STRIP_GATE(0x80395618, &c_tag_4229);
+
+/* 80451078-8045107C 000578 0004+00 1/1 0/0 0/0 .sbss player_px */
+static f32 player_px;
+
+/* 8045107C-80451080 00057C 0004+00 1/1 0/0 0/0 .sbss player_py */
+static f32 player_py;
+
+/* 80451080-80451088 000580 0004+04 6/6 0/0 0/0 .sbss myclass__12dMenu_Dmap_c */
+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 */
+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);
+ }
+}
+
+
+/* 801B90BC-801B90E0 1B39FC 0024+00 1/1 0/0 0/0 .text setJButtonString__14dMenu_DmapBg_cFUl */
+void dMenu_DmapBg_c::setJButtonString(u32 param_0) {
+ dMenu_Dmap_c::myclass->isMapMoveState();
+}
+
+/* 801B90E0-801B9164 1B3A20 0084+00 1/1 0/0 0/0 .text createExplain__14dMenu_DmapBg_cFv
+ */
+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);
+ }
+}
+
+/* 801B9164-801B91DC 1B3AA4 0078+00 2/2 0/0 0/0 .text deleteExplain__14dMenu_DmapBg_cFv
+ */
+void dMenu_DmapBg_c::deleteExplain() {
+ if (mpItemExplain != NULL) {
+ JKRHeap* prevHeap = mDoExt_setCurrentHeap(mpTalkHeap);
+ delete mpItemExplain;
+ mpItemExplain = NULL;
+ mDoExt_setCurrentHeap(prevHeap);
+ }
+}
+
+/* ############################################################################################## */
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_803957D0 = "zelda_dungeon_map_base.blo";
+SECTION_DEAD static char const* const stringBase_803957EB = "zelda_dungeon_map_floor_parts.blo";
+#pragma pop
+
+/* 80454010-80454014 002610 0004+00 1/1 0/0 0/0 .sdata2 @4312 */
+SECTION_SDATA2 static f32 lit_4312 = 19.0f / 20.0f;
+
+/* 80454014-80454018 002614 0004+00 7/7 0/0 0/0 .sdata2 @4313 */
+SECTION_SDATA2 static f32 lit_4313 = 9.0f / 10.0f;
+
+/* 80454018-8045401C 002618 0004+00 1/1 0/0 0/0 .sdata2 @4314 */
+SECTION_SDATA2 static f32 lit_4314 = 1.0f / 10.0f;
+
+/* 8045401C-80454020 00261C 0004+00 1/1 0/0 0/0 .sdata2 @4315 */
+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
+ */
+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(dComIfGp_getStage()->getStagInfo());
+ if (stageTitleNo != 0) {
+ mString->getString((u16)stageTitleNo, uVar9, NULL, NULL, NULL, 0);
+ } else {
+ JUT_WARN(1426, "stage title message index zero!");
+ }
+}
+
+
+/* ############################################################################################## */
+/* 80395628-80395648 021C88 001A+06 1/1 0/0 0/0 .rodata @4325 */
+SECTION_RODATA static u8 const lit_4325[26 + 6 /* padding */] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x03,
+ 0xDB,
+ 0x03,
+ 0xDA,
+ 0x03,
+ 0x6B,
+ 0x03,
+ 0x6C,
+ 0x03,
+ 0x6D,
+ 0x03,
+ 0x6E,
+ 0x03,
+ 0x6F,
+ 0x03,
+ 0xDC,
+ 0x03,
+ 0xDD,
+ 0x03,
+ 0xD9,
+ 0x03,
+ 0xD8,
+ /* padding */
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+COMPILER_STRIP_GATE(0x80395628, &lit_4325);
+
+/* 801B944C-801BA0B4 1B3D8C 0C68+00 1/1 0/0 0/0 .text setFloorMessage__14dMenu_DmapBg_cFv
+ */
+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, "");
+ }
+ }
+}
+
+
+/* 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) {
+ return false;
+}
+
+/* 801BA0BC-801BA60C 1B49FC 0550+00 2/1 0/0 0/0 .text __dt__14dMenu_DmapBg_cFv */
+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;
+ }
+}
+
+
+/* 801BA60C-801BA700 1B4F4C 00F4+00 2/2 0/0 0/0 .text setAllAlphaRate__14dMenu_DmapBg_cFfb */
+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);
+ }
+}
+
+/* 801BA700-801BA7F0 1B5040 00F0+00 3/3 0/0 0/0 .text setGoldAnimation__14dMenu_DmapBg_cFb */
+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);
+ }
+}
+
+/* ############################################################################################## */
+/* 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 */
+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);
+ }
+}
+
+
+/* 801BA974-801BAA4C 1B52B4 00D8+00 1/1 0/0 0/0 .text addGoldFrameAlphaRate__14dMenu_DmapBg_cFv */
+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);
+}
+
+
+/* 801BAA4C-801BAB10 1B538C 00C4+00 1/1 0/0 0/0 .text decGoldFrameAlphaRate__14dMenu_DmapBg_cFv */
+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);
+}
+
+
+/* ############################################################################################## */
+/* 80454024-80454028 002624 0004+00 4/4 0/0 0/0 .sdata2 @4784 */
+SECTION_SDATA2 static f32 lit_4784 = 608.0f;
+
+/* 80454028-8045402C 002628 0004+00 4/4 0/0 0/0 .sdata2 @4785 */
+SECTION_SDATA2 static f32 lit_4785 = 448.0f;
+
+/* 8045402C-80454030 00262C 0004+00 1/1 0/0 0/0 .sdata2 @4786 */
+SECTION_SDATA2 static f32 lit_4786 = 2.0f;
+
+/* 80454030-80454034 002630 0004+00 1/1 0/0 0/0 .sdata2 @4787 */
+SECTION_SDATA2 static f32 lit_4787 = 7.0f / 10.0f;
+
+/* 80454034-80454038 002634 0004+00 1/1 0/0 0/0 .sdata2 @4788 */
+SECTION_SDATA2 static f32 lit_4788 = -35.0f;
+
+/* 80454038-80454040 002638 0008+00 2/2 0/0 0/0 .sdata2 @4790 */
+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 */
+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();
+}
+
+
+/* ############################################################################################## */
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_8039580D = "tex/bg.bti";
+SECTION_DEAD static char const* const stringBase_80395818 = "spec/spec.dat";
+#pragma pop
+
+/* 80454040-80454044 002640 0004+00 1/1 0/0 0/0 .sdata2 @4848 */
+SECTION_SDATA2 static f32 lit_4848 = 25.5f;
+
+/* 801BB334-801BB464 1B5C74 0130+00 1/1 0/0 0/0 .text update__14dMenu_DmapBg_cFv */
+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;
+ }
+ }
+}
+
+
+/* 801BB464-801BB468 1B5DA4 0004+00 1/1 0/0 0/0 .text calcCursor__14dMenu_DmapBg_cFv */
+void dMenu_DmapBg_c::calcCursor() {
+ /* empty function */
+}
+
+/* 801BB468-801BB498 1B5DA8 0030+00 1/1 0/0 0/0 .text drawCursor__14dMenu_DmapBg_cFv */
+void dMenu_DmapBg_c::drawCursor() {
+ mpDrawCursor->draw();
+}
+
+/* ############################################################################################## */
+/* 80454044-80454048 002644 0004+00 3/3 0/0 0/0 .sdata2 @4926 */
+SECTION_SDATA2 static f32 lit_4926 = -608.0f;
+
+/* 80454048-8045404C 002648 0004+00 3/3 0/0 0/0 .sdata2 @4927 */
+SECTION_SDATA2 static f32 lit_4927 = -448.0f;
+
+/* 801BB498-801BB634 1B5DD8 019C+00 0/0 1/1 0/0 .text
+ * __ct__12dMenu_Dmap_cFP10JKRExpHeapP9STControlP10CSTControlUcUc */
+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;
+}
+
+
+/* ############################################################################################## */
+/* 80395648-80395688 021CA8 0040+00 0/1 0/0 0/0 .rodata floor_tag$4932 */
+#pragma push
+#pragma force_active on
+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
+
+/* 80395688-803956C8 021CE8 0040+00 0/1 0/0 0/0 .rodata icon_tag$4933 */
+#pragma push
+#pragma force_active on
+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
+
+/* 803956C8-80395708 021D28 0040+00 0/1 0/0 0/0 .rodata boss_tag$4934 */
+#pragma push
+#pragma force_active on
+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
+
+/* 80395708-80395718 021D68 0010+00 0/1 0/0 0/0 .rodata stay_tag$4935 */
+#pragma push
+#pragma force_active on
+SECTION_RODATA static u64 const stay_tag[2] = {
+ 'rink_nul', 'boss_nul',
+};
+COMPILER_STRIP_GATE(0x80395708, &stay_tag);
+#pragma pop
+
+/* 80395718-80395730 021D78 0018+00 0/1 0/0 0/0 .rodata waku_tag$4973 */
+#pragma push
+#pragma force_active on
+SECTION_RODATA static u64 const waku_tag[3] = {
+ 'gray_map', 'gray_con', 'gray_key',
+};
+COMPILER_STRIP_GATE(0x80395718, &waku_tag);
+#pragma pop
+
+/* 80395730-80395748 021D90 0018+00 0/1 0/0 0/0 .rodata key_tag$5002 */
+#pragma push
+#pragma force_active on
+SECTION_RODATA static u64 const key_tag[3] = {
+ 'key_00', 'key_01', 'key_02',
+};
+COMPILER_STRIP_GATE(0x80395730, &key_tag);
+#pragma pop
+
+/* 80395748-80395760 021DA8 0018+00 0/1 0/0 0/0 .rodata item_tag$5040 */
+#pragma push
+#pragma force_active on
+SECTION_RODATA static u64 const item_tag[3] = {
+ 'map000', 'con000', 'i_key_n',
+};
+COMPILER_STRIP_GATE(0x80395748, &item_tag);
+#pragma pop
+
+/* 8045404C-80454050 00264C 0004+00 1/1 0/0 0/0 .sdata2 @5277 */
+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) && !dComIfGs_isEventBit(2)) {
+ local_140 = 0xf4;
+ field_0x174[2] = 0xf4;
+ } else {
+ if (checkItemGet(0xf5, 1) && !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
+void dMenu_Dmap_c::screenInit() {
+ // NONMATCHING
+}
+#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 */
+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;
+ }
+}
+
+
+/* 801BC848-801BCDF4 1B7188 05AC+00 2/2 0/0 0/0 .text getIconPos__12dMenu_Dmap_cFScf */
+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);
+}
+
+
+/* 801BCDF4-801BD144 1B7734 0350+00 1/0 0/0 0/0 .text __dt__12dMenu_Dmap_cFv */
+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;
+}
+
+
+/* 801BD144-801BD1D4 1B7A84 0090+00 0/0 1/0 0/0 .text __dt__19dMenu_DmapMapCtrl_cFv */
+dMenu_DmapMapCtrl_c::~dMenu_DmapMapCtrl_c() {
+ // NONMATCHING
+}
+
+/* 801BD1D4-801BD1E8 1B7B14 0014+00 10/10 0/0 0/0 .text getCurFloorPos__12dMenu_Dmap_cFv
+ */
+s8 dMenu_Dmap_c::getCurFloorPos() {
+ s8 i_floor = field_0x16c - mBottomFloor;
+ JUT_ASSERT(3393, i_floor >= 0 && i_floor < (8));
+ return i_floor;
+}
+
+/* 801BD1E8-801BD208 1B7B28 0020+00 4/4 0/0 0/0 .text getDefaultCurFloorPos__12dMenu_Dmap_cFv */
+s8 dMenu_Dmap_c::getDefaultCurFloorPos() {
+ return getCurFloorPos();
+}
+
+/* 801BD208-801BD3B8 1B7B48 01B0+00 4/4 0/0 0/0 .text iconMoveCalc__12dMenu_Dmap_cFv */
+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);
+ }
+}
+
+/* 801BD3B8-801BD524 1B7CF8 016C+00 1/1 0/0 0/0 .text
+ * drawFloorScreenBack__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph */
+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);
+}
+
+
+/* 801BD524-801BD690 1B7E64 016C+00 1/1 0/0 0/0 .text
+ * drawFloorScreenTop__12dMenu_Dmap_cFP9J2DScreenffP13J2DOrthoGraph */
+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);
+}
+
+
+/* 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
+bool dMenu_Dmap_c::isMapMoveState() {
+ // NONMATCHING
+}
+#endif
+
+/* 801BD6C4-801BD7C0 1B8004 00FC+00 1/1 0/0 0/0 .text floorChangeMode__12dMenu_Dmap_cFv
+ */
+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);
+ }
+}
+
+/* 801BD7C0-801BDD40 1B8100 0580+00 1/1 0/0 0/0 .text _create__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::_create() {
+ // NONMATCHING
+}
+
+/* 801BDD40-801BDD70 1B8680 0030+00 0/0 1/0 0/0 .text append__10J2DPictureFPC7ResTIMGf */
+bool J2DPicture::append(ResTIMG const* param_0, f32 param_1) {
+ // NONMATCHING
+}
+
+/* 801BDD70-801BDDA4 1B86B0 0034+00 0/0 1/0 0/0 .text insert__10J2DPictureFPC7ResTIMGUcf
+ */
+void J2DPicture::insert(ResTIMG const* param_0, u8 param_1, f32 param_2) {
+ // NONMATCHING
+}
+
+/* ############################################################################################## */
+/* 80454054-80454058 002654 0004+00 1/1 0/0 0/0 .sdata2 @6017 */
+SECTION_SDATA2 static f32 lit_6017 = 12.0f / 17.0f;
+
+/* 801BDDA4-801BDEF8 1B86E4 0154+00 0/0 1/1 0/0 .text _move__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::_move() {
+ // NONMATCHING
+}
+
+/* 801BDEF8-801BDF48 1B8838 0050+00 1/1 0/0 0/0 .text setMapTexture__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::setMapTexture() {
+ f32 mapBlendPer = mMapCtrl->getMapBlendPer();
+ mpDrawBg[0]->getMapPane()->setBlendRatio(mapBlendPer, 1.0f - mapBlendPer);
+}
+
+
+/* 801BDF48-801BDF6C 1B8888 0024+00 1/1 0/0 0/0 .text mapBgAnime__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::mapBgAnime() {
+ mpDrawBg[0]->mapScreenAnime();
+}
+
+/* ############################################################################################## */
+/* 80454058-8045405C 002658 0004+00 2/2 0/0 0/0 .sdata2 @6180 */
+SECTION_SDATA2 static f32 lit_6180 = 100.0f;
+
+/* 8045405C-80454060 00265C 0004+00 7/7 0/0 0/0 .sdata2 @6181 */
+SECTION_SDATA2 static f32 lit_6181 = -1.0f;
+
+/* 801BDF6C-801BE328 1B88AC 03BC+00 1/1 0/0 0/0 .text mapControl__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::mapControl() {
+ // NONMATCHING
+}
+
+/* ############################################################################################## */
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_80395826 = "/res/FieldMap/res-d.arc";
+SECTION_DEAD static char const* const stringBase_8039583E = "dat/data.dat";
+/* @stringBase0 padding */
+SECTION_DEAD static char const* const pad_8039584B = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
+#pragma pop
+
+/* 801BE328-801BE670 1B8C68 0348+00 0/0 1/1 0/0 .text isOpen__12dMenu_Dmap_cFv */
+bool dMenu_Dmap_c::isOpen() {
+ // NONMATCHING
+}
+
+/* 801BE670-801BE7E0 1B8FB0 0170+00 0/0 1/1 0/0 .text isClose__12dMenu_Dmap_cFv */
+bool dMenu_Dmap_c::isClose() {
+ // NONMATCHING
+}
+
+/* 801BE7E0-801BEAFC 1B9120 031C+00 0/0 1/1 0/0 .text _draw__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::_draw() {
+ // NONMATCHING
+}
+
+/* 801BEAFC-801BEB0C 1B943C 0010+00 1/0 0/0 0/0 .text itemInfo_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemInfo_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BEB0C-801BEB44 1B944C 0038+00 1/0 0/0 0/0 .text itemInfo_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemInfo_proc() {
+ // NONMATCHING
+}
+
+/* 801BEB44-801BEF28 1B9484 03E4+00 1/0 0/0 0/0 .text itemSelect__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemSelect() {
+ // NONMATCHING
+}
+
+/* 801BEF28-801BEFCC 1B9868 00A4+00 1/1 0/0 0/0 .text getNextItem__12dMenu_Dmap_cFi */
+void dMenu_Dmap_c::getNextItem(int param_0) {
+ // NONMATCHING
+}
+
+/* 801BEFCC-801BF030 1B990C 0064+00 1/1 0/0 0/0 .text itemSelectAnmInit__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::itemSelectAnmInit() {
+ // NONMATCHING
+}
+
+/* 801BF030-801BF180 1B9970 0150+00 1/0 0/0 0/0 .text itemSelectAnm__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemSelectAnm() {
+ // NONMATCHING
+}
+
+/* 801BF180-801BF18C 1B9AC0 000C+00 1/0 0/0 0/0 .text itemInfoOpenAnm__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::itemInfoOpenAnm() {
+ field_0x17c = 3;
+}
+
+/* 801BF18C-801BF278 1B9ACC 00EC+00 1/0 0/0 0/0 .text itemInfoWait__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemInfoWait() {
+ // NONMATCHING
+}
+
+/* 801BF278-801BF334 1B9BB8 00BC+00 1/0 0/0 0/0 .text itemInfoCloseAnm__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::itemInfoCloseAnm() {
+ // NONMATCHING
+}
+
+/* 801BF334-801BF410 1B9C74 00DC+00 0/0 1/1 0/0 .text getNextStatus__12dMenu_Dmap_cFv */
+u8 dMenu_Dmap_c::getNextStatus() {
+ // NONMATCHING
+}
+
+/* 801BF410-801BF464 1B9D50 0054+00 1/1 1/1 0/0 .text isSync__12dMenu_Dmap_cFv */
+bool dMenu_Dmap_c::isSync() {
+ // NONMATCHING
+}
+
+/* 801BF464-801BF4A4 1B9DA4 0040+00 1/1 0/0 0/0 .text isKeyCheck__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::isKeyCheck() {
+ // NONMATCHING
+}
+
+/* 801BF4A4-801BF528 1B9DE4 0084+00 1/0 0/0 0/0 .text infoModeChange_init_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::infoModeChange_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BF528-801BF688 1B9E68 0160+00 1/0 0/0 0/0 .text infoModeChange_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::infoModeChange_proc() {
+ // NONMATCHING
+}
+
+/* 801BF688-801BF70C 1B9FC8 0084+00 1/0 0/0 0/0 .text mapModeChange_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::mapModeChange_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BF70C-801BF8A0 1BA04C 0194+00 1/0 0/0 0/0 .text mapModeChange_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::mapModeChange_proc() {
+ // NONMATCHING
+}
+
+/* 801BF8A0-801BF8F8 1BA1E0 0058+00 1/0 0/0 0/0 .text lv5_talk_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::lv5_talk_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BF8F8-801BF9D4 1BA238 00DC+00 1/0 0/0 0/0 .text lv5_talk_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::lv5_talk_proc() {
+ // NONMATCHING
+}
+
+/* 801BF9D4-801BF9E0 1BA314 000C+00 1/0 0/0 0/0 .text mapMode_init_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::mapMode_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BF9E0-801BFA84 1BA320 00A4+00 1/0 0/0 0/0 .text mapMode_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::mapMode_proc() {
+ // NONMATCHING
+}
+
+/* 801BFA84-801BFA88 1BA3C4 0004+00 1/0 0/0 0/0 .text floorSelect_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::floorSelect_init_proc() {
+ /* empty function */
+}
+
+/* 801BFA88-801BFC78 1BA3C8 01F0+00 1/0 0/0 0/0 .text floorSelect_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::floorSelect_proc() {
+ // NONMATCHING
+}
+
+/* 801BFC78-801BFCAC 1BA5B8 0034+00 2/2 0/0 0/0 .text itemCarryCheck__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::itemCarryCheck() {
+ // NONMATCHING
+}
+
+/* 801BFCAC-801BFD5C 1BA5EC 00B0+00 1/0 0/0 0/0 .text floorChange_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::floorChange_init_proc() {
+ // NONMATCHING
+}
+
+/* 801BFD5C-801BFF84 1BA69C 0228+00 1/0 0/0 0/0 .text floorChange_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::floorChange_proc() {
+ // NONMATCHING
+}
+
+/* 801BFF84-801BFF88 1BA8C4 0004+00 1/0 0/0 0/0 .text zoomWait_init_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::zoomWait_init_proc() {
+ /* empty function */
+}
+
+/* 801BFF88-801C008C 1BA8C8 0104+00 1/0 0/0 0/0 .text zoomWait_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::zoomWait_proc() {
+ // NONMATCHING
+}
+
+/* 801C008C-801C01A0 1BA9CC 0114+00 1/0 0/0 0/0 .text zoomIn_init_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::zoomIn_init_proc() {
+ // NONMATCHING
+}
+
+/* 801C01A0-801C023C 1BAAE0 009C+00 1/0 0/0 0/0 .text zoomIn_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::zoomIn_proc() {
+ // NONMATCHING
+}
+
+/* 801C023C-801C02F0 1BAB7C 00B4+00 1/0 0/0 0/0 .text zoomOut_init_proc__12dMenu_Dmap_cFv
+ */
+void dMenu_Dmap_c::zoomOut_init_proc() {
+ // NONMATCHING
+}
+
+/* 801C02F0-801C0380 1BAC30 0090+00 1/0 0/0 0/0 .text zoomOut_proc__12dMenu_Dmap_cFv */
+void dMenu_Dmap_c::zoomOut_proc() {
+ // NONMATCHING
+}
+
+/* 801C0380-801C042C 1BACC0 00AC+00 4/4 1/0 0/0 .text __dt__15renderingDmap_cFv */
+renderingDmap_c::~renderingDmap_c() {
+ // NONMATCHING
+}
+
+/* 801C042C-801C04AC 1BAD6C 0080+00 1/0 0/0 0/0 .text __dt__20dMenu_StageMapCtrl_cFv */
+dMenu_StageMapCtrl_c::~dMenu_StageMapCtrl_c() {
+ // NONMATCHING
+}
+
+/* 801C04AC-801C051C 1BADEC 0070+00 1/0 0/0 0/0 .text __dt__15dMenu_DmapMap_cFv */
+dMenu_DmapMap_c::~dMenu_DmapMap_c() {
+ // NONMATCHING
+}
+
+/* 801C051C-801C05C4 1BAE5C 00A8+00 1/1 0/0 0/0 .text __ct__15renderingDmap_cFv */
+renderingDmap_c::renderingDmap_c() {
+ // NONMATCHING
+}
+
+/* 801C05C4-801C0844 1BAF04 0280+00 0/0 1/0 0/0 .text __sinit_d_menu_dmap_cpp */
+void __sinit_d_menu_dmap_cpp() {
+ // NONMATCHING
+}
+
+#pragma push
+#pragma force_active on
+REGISTER_CTORS(0x801C05C4, __sinit_d_menu_dmap_cpp);
+#pragma pop
+
+/* 801C0844-801C084C 1BB184 0008+00 1/0 0/0 0/0 .text @4@__dt__14dMenu_DmapBg_cFv */
+static void func_801C0844() {
+ // NONMATCHING
+}
+
+/* 80395760-80395760 021DC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file