diff --git a/include/d/d_menu_fmap.h b/include/d/d_menu_fmap.h index 423317c75..94b0339fd 100644 --- a/include/d/d_menu_fmap.h +++ b/include/d/d_menu_fmap.h @@ -311,10 +311,6 @@ public: /* 0x0018 */ ResTIMG * mChkPntTxt_p; /* 0x001C */ dDlst_FMAP_c fmapDl; /* 0x0024 */ dMenu_Fmap2_c mFmap2; -#if VERSION == VERSION_DEMO - u8 pad4[0x38 * 2]; -#endif - /* 0x2874 */ u8 padding_0x2874[0x2878 - 0x2874]; /* 0x2878 */ dMenu_FmapSv_c* fmapSv; /* 0x287C */ aramCmapDat_c mCmapDatPnt; /* 0x2884 */ dDlst_2DOutFont_c* outFont; diff --git a/include/d/d_menu_fmap2.h b/include/d/d_menu_fmap2.h index 9eab2ff22..c546d69ab 100644 --- a/include/d/d_menu_fmap2.h +++ b/include/d/d_menu_fmap2.h @@ -1,27 +1,30 @@ #ifndef D_MENU_FMAP2_H #define D_MENU_FMAP2_H -#include "dolphin/types.h" #include "d/d_drawlist.h" -#include "dolphin/types.h" +#include "d/d_menu_fmapSv.h" struct fopMsgM_pane_class; class J2DScreen; +class JUTFont; struct ResTIMG; -class aramCmapDat_c; -class aramCmapDatPnt_t; -class dMenu_FmapSv_c; +class STControl; +class dDlst_2DOutFont_c; class dDlst_FMAP2GS_c : public dDlst_base_c { public: virtual ~dDlst_FMAP2GS_c() {} virtual void draw(); + + /* 0x04 */ J2DScreen* scrn; }; class dDlst_FMAP2_c : public dDlst_base_c { public: virtual ~dDlst_FMAP2_c() {} virtual void draw(); + + /* 0x04 */ J2DScreen* scrn; }; class dMenu_Fmap2_c { @@ -30,19 +33,8 @@ public: void getCmapDatPnt(int) {} void getCmapDatValue() {} - void getCtActive() {} - void getCtCmapSelNo() {} - void getCtCurHX() {} - void getCtCurHY() {} - void getCtCurX() {} - void getCtCurY() {} - void getCtDispMode() {} - void lineInter0to1ForU8(unsigned char, unsigned char, float) {} + void lineInter0to1ForU8(u8, u8, f32) {} void setAramCmapDat(aramCmapDat_c* i_ptr) { mpFmapDatPnt = i_ptr; } - void setCtActive(unsigned char) {} - void setCtCmapSelNo(signed char) {} - void setCtCurHX(signed char) {} - void setCtCurHY(signed char) {} void setSvPtr(dMenu_FmapSv_c*) {} void _create(); @@ -56,10 +48,10 @@ public: void FmapProcMain(); void FmapChange(); void CmapProcMain(); - void spMapLoadForDVD(unsigned char); - void cmapOpenCheck(); + void spMapLoadForDVD(u8); + BOOL cmapOpenCheck(); void CmapScroll(); - void isSpMap(int); + BOOL isSpMap(int); void CmapOpen(); void CmapSpLoadWait(); void screenSetGs(); @@ -110,77 +102,364 @@ public: void changeFmapTexture(); void changeIslandName(); void fmapPlayerPosDisp(); - void fmapPlayerPosDispCheck(float*, float*); + void fmapPlayerPosDispCheck(f32*, f32*); void changeCmapName(); void cmapPlayerPosDisp(); void cmapSalvagePosDisp(); - void cmapPlayerPosDispCheck(float*, float*); - void paneTransBase(short, unsigned char, float, float, unsigned char, unsigned char, int); - void paneAlphaFmapBase(short, unsigned char, unsigned char, int); - void paneAlphaCmapBase(short, unsigned char, unsigned char, int); - void paneAlphaZoomCmapBase(short, unsigned char, float, float, unsigned char, unsigned char, int); - void paneAlphaCmapName(short, unsigned char, unsigned char); - void paneAlphaMessage2(short, unsigned char, unsigned char, int); - void paneTranceMessage(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int); - void paneScaleXYChild(fopMsgM_pane_class*, float); - void paneTransSelCmapCle(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int); - void paneTransSelCmapOpn(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int); - void paneAlphaGostShipMap(short, unsigned char, unsigned char, int); - void paneAlphaTingleMap(short, unsigned char, unsigned char, int); - void paneAlphaTreasureMap(short, unsigned char, unsigned char, int); - void paneAlphaSubdanMap(short, unsigned char, unsigned char, int); - void paneAlphaHeartMMap(short, unsigned char, unsigned char, int); - void paneAlphaYaguraMap(short, unsigned char, unsigned char, int); - void paneAlphaDfaliyMap(short, unsigned char, unsigned char, int); - void paneAlphaHeartPMap(short, unsigned char, unsigned char, int); - void paneAlphaTerryMap(short, unsigned char, unsigned char, int); - void paneAlphaSubMaMap(short, unsigned char, unsigned char, int); - void paneAlphaMoonMap(short, unsigned char, unsigned char, int); - void paneAlphaDoctaMap(short, unsigned char, unsigned char, int); - void setPaneOnOff(J2DScreen*, unsigned long, bool); + void cmapPlayerPosDispCheck(f32*, f32*); + void paneTransBase(s16, u8, f32, f32, u8, u8, int); + void paneAlphaFmapBase(s16, u8, u8, int); + void paneAlphaCmapBase(s16, u8, u8, int); + void paneAlphaZoomCmapBase(s16, u8, f32, f32, u8, u8, int); + void paneAlphaCmapName(s16, u8, u8); + void paneAlphaMessage2(s16, u8, u8, int); + void paneTranceMessage(s16, u8, f32, f32, f32, f32, u8, u8, int); + void paneScaleXYChild(fopMsgM_pane_class*, f32); + void paneTransSelCmapCle(s16, u8, f32, f32, f32, f32, u8, u8, int); + void paneTransSelCmapOpn(s16, u8, f32, f32, f32, f32, u8, u8, int); + void paneAlphaGostShipMap(s16, u8, u8, int); + void paneAlphaTingleMap(s16, u8, u8, int); + void paneAlphaTreasureMap(s16, u8, u8, int); + void paneAlphaSubdanMap(s16, u8, u8, int); + void paneAlphaHeartMMap(s16, u8, u8, int); + void paneAlphaYaguraMap(s16, u8, u8, int); + void paneAlphaDfaliyMap(s16, u8, u8, int); + void paneAlphaHeartPMap(s16, u8, u8, int); + void paneAlphaTerryMap(s16, u8, u8, int); + void paneAlphaSubMaMap(s16, u8, u8, int); + void paneAlphaMoonMap(s16, u8, u8, int); + void paneAlphaDoctaMap(s16, u8, u8, int); + void setPaneOnOff(J2DScreen*, u32, bool); void getCollectMapTexChange(); void finCollectMapTexChange(); - void calcGetCollectMap(); - void calcGetCollectMap2(); - void calcFinCollectMap(); - void getNowCmapFirstNum(); - void getNowCmapNextNum(signed char, int); + int calcGetCollectMap(); + int calcGetCollectMap2(); + int calcFinCollectMap(); + int getNowCmapFirstNum(); + int getNowCmapNextNum(s8, int); aramCmapDatPnt_t* getCmapDatPnt4(int); void readPaneCmapTexture(const ResTIMG*, int); void readFmapTexture(const char*); int getButtonIconMode(); BOOL isLockBbutton(); - void isGetCollectMap(signed char); - void isOpenCollectMap(signed char); - void isOpenCollectMapTriforce(signed char); - void getCollectMapKind(signed char); - void isCompleteCollectMap(signed char); + BOOL isGetCollectMap(s8); + BOOL isOpenCollectMap(s8); + BOOL isOpenCollectMapTriforce(s8); + int getCollectMapKind(s8); + BOOL isCompleteCollectMap(s8); + + u8 getCtDispMode() { + JUT_ASSERT(VERSION_SELECT(409, 409, 428, 428), fmapSv != NULL); + return fmapSv->getDispMode(); + } + + u8 getCtActive() { + JUT_ASSERT(VERSION_SELECT(415, 415, 434, 434), fmapSv != NULL); + return fmapSv->getActive(); + } + + void setCtActive(u8 active) { + JUT_ASSERT(VERSION_SELECT(420, 420, 439, 439), fmapSv != NULL); + fmapSv->setActive(active); + } + + s8 getCtCurX() { + JUT_ASSERT(VERSION_SELECT(426, 426, 445, 445), fmapSv != NULL); + return fmapSv->getCurX(); + } + + s8 getCtCurY() { + JUT_ASSERT(VERSION_SELECT(436, 436, 455, 455), fmapSv != NULL); + return fmapSv->getCurY(); + } + + s8 getCtCurHX() { + JUT_ASSERT(VERSION_SELECT(447, 447, 466, 466), fmapSv != NULL); + return fmapSv->getCurHX(); + } + + void setCtCurHX(s8 x) { + JUT_ASSERT(VERSION_SELECT(452, 452, 471, 471), fmapSv != NULL); + fmapSv->setCurHX(x); + } + + s8 getCtCurHY() { + JUT_ASSERT(VERSION_SELECT(457, 457, 476, 476), fmapSv != NULL); + return fmapSv->getCurHY(); + } + + void setCtCurHY(s8 y) { + JUT_ASSERT(VERSION_SELECT(462, 462, 481, 481), fmapSv != NULL); + fmapSv->setCurHY(y); + } + + s8 getCtCmapSelNo() { + JUT_ASSERT(VERSION_SELECT(469, 469, 488, 488), fmapSv != NULL); + return fmapSv->getCmapSelNo(); + } + + void setCtCmapSelNo(s8 no) { + JUT_ASSERT(VERSION_SELECT(474, 474, 493, 493), fmapSv != NULL); + fmapSv->setCmapSelNo(no); + } public: - /* 0x0004 */ u8 padding_0x4[0x10 - 0x4]; + /* 0x0004 */ void* mChkPntTxt_p; + /* 0x0008 */ void* mCmapTxtMain_p[2]; /* 0x0010 */ dMenu_FmapSv_c* fmapSv; - /* 0x0014 */ u8 padding_0x14[0x1C - 0x14]; + /* 0x0014 */ u8 padding_0x14[0x18 - 0x14]; + /* 0x0018 */ mDoDvdThd_mountArchive_c* field_0x18; /* 0x001C */ aramCmapDat_c* mpFmapDatPnt; - /* 0x0020 */ dDlst_FMAP2_c mDlst; - /* 0x0024 */ u8 padding_0x24[0x28 - 0x24]; - /* 0x0028 */ dDlst_FMAP2GS_c mDlstGs; -#if VERSION > VERSION_JPN - /* 0x002C */ u8 padding_0x2C[0x2820 - 0x2C]; -#else - /* 0x002C */ u8 padding_0x2C[0x2650 - 0x2C]; + /* 0x0020 */ dDlst_FMAP2_c fmap2Dl; + /* 0x0028 */ dDlst_FMAP2GS_c fmap2GsDl; + /* 0x0030 */ STControl* stick; + /* 0x0034 */ JUTFont* field_0x34; + /* 0x0038 */ JUTFont* field_0x38; + /* 0x003C */ dDlst_2DOutFont_c* outFont[2]; + /* 0x0044 */ dDlst_2DOutFont_c* outFontS[2]; + /* 0x004C */ fopMsgM_pane_class mClPane; + /* 0x0084 */ fopMsgM_pane_class mFc0xPanes[4]; + /* 0x0164 */ fopMsgM_pane_class mFc1xPanes[4]; + /* 0x0244 */ fopMsgM_pane_class mCc0xPanes[4]; + /* 0x0324 */ fopMsgM_pane_class mCc1xPanes[4]; + /* 0x0404 */ fopMsgM_pane_class mKdmPane; + /* 0x043c */ fopMsgM_pane_class field_0x43c[5]; + /* 0x0554 */ fopMsgM_pane_class field_0x554[17]; + /* 0x090C */ fopMsgM_pane_class field_0x90c[17]; + /* 0x0CC4 */ fopMsgM_pane_class* field_0xcc4[2]; + /* 0x0CCC */ fopMsgM_pane_class mCi22Pane; + /* 0x0D04 */ fopMsgM_pane_class mCi21Pane; + /* 0x0D3C */ fopMsgM_pane_class mCi12Pane; + /* 0x0D74 */ fopMsgM_pane_class mCi11Pane; + /* 0x0DAC */ fopMsgM_pane_class mLnk3Pane; + /* 0x0DE4 */ fopMsgM_pane_class mAreaPane; + /* 0x0E1C */ fopMsgM_pane_class field_0xe1c[2]; + /* 0x0E8C */ fopMsgM_pane_class mCmyuPane; + /* 0x0EC4 */ fopMsgM_pane_class mCmydPane; + /* 0x0EFC */ fopMsgM_pane_class mCnd0Pane; + /* 0x0F34 */ fopMsgM_pane_class mCm1xPanes[2]; + /* 0x0FA4 */ fopMsgM_pane_class mCm2xPanes[2]; + /* 0x1014 */ fopMsgM_pane_class field_0x1014[5]; + /* 0x112C */ fopMsgM_pane_class field_0x112c[5]; + /* 0x1244 */ fopMsgM_pane_class* field_0x1244[2]; + /* 0x124C */ fopMsgM_pane_class* field_0x124c[2]; + /* 0x1254 */ fopMsgM_pane_class mMkfdPane; + /* 0x128C */ fopMsgM_pane_class mMkcdPane; + /* 0x12C4 */ fopMsgM_pane_class mMkm0Pane; + /* 0x12FC */ fopMsgM_pane_class mNcddPane; + /* 0x1334 */ fopMsgM_pane_class mNfkdPane; + /* 0x136C */ fopMsgM_pane_class mR01gPane; + /* 0x13A4 */ fopMsgM_pane_class mClgPane; + /* 0x13DC */ fopMsgM_pane_class mFmk1Pane; + /* 0x1414 */ fopMsgM_pane_class mRkjnPane; + /* 0x144C */ fopMsgM_pane_class mClg2Pane; + /* 0x1484 */ fopMsgM_pane_class field_0x1484[8]; + /* 0x1644 */ fopMsgM_pane_class field_0x1644[10]; + /* 0x1874 */ fopMsgM_pane_class field_0x1874[10]; + /* 0x1AA4 */ fopMsgM_pane_class* field_0x1aa4[2]; + /* 0x1AAC */ fopMsgM_pane_alpha_class mMs01PaneAlpha; + /* 0x1AB4 */ fopMsgM_pane_alpha_class mMs02PaneAlpha; + /* 0x1ABC */ fopMsgM_pane_alpha_class mSd05PaneAlpha; + /* 0x1AC4 */ fopMsgM_pane_alpha_class mHs04PaneAlpha; + /* 0x1ACC */ fopMsgM_pane_alpha_class mYg01PaneAlpha; +#if VERSION == VERSION_DEMO + /* 0x1AD4 */ fopMsgM_pane_alpha_class mWk3PaneAlpha; #endif + /* 0x1AD4 */ fopMsgM_pane_alpha_class mBsdmPaneAlpha; + /* 0x1ADC */ fopMsgM_pane_alpha_class mTk0xPaneAlpha[7]; + /* 0x1B14 */ fopMsgM_pane_alpha_class mTkd2PaneAlpha; + /* 0x1B1C */ fopMsgM_pane_alpha_class mTkd1PaneAlpha; + /* 0x1B24 */ fopMsgM_pane_alpha_class mS02PaneAlpha; + /* 0x1B2C */ fopMsgM_pane_alpha_class mKz05PaneAlpha; + /* 0x1B34 */ fopMsgM_pane_alpha_class mKz01PaneAlpha; +#if VERSION == VERSION_DEMO + /* 0x1B44 */ fopMsgM_pane_alpha_class mBt1PaneAlpha; + /* 0x1B4C */ fopMsgM_pane_alpha_class mBt2PaneAlpha; + /* 0x1B54 */ fopMsgM_pane_alpha_class mBt3PaneAlpha; +#endif +#if VERSION > VERSION_JPN + /* 0x1B3C */ fopMsgM_pane_alpha_class mGsixPaneAlpha[7]; +#endif + /* 0x1B74 */ fopMsgM_pane_alpha_class mHk00PaneAlpha; + /* 0x1B7C */ fopMsgM_pane_alpha_class mHk01PaneAlpha; + /* 0x1B84 */ fopMsgM_pane_alpha_class mHn19PaneAlpha; + /* 0x1B8C */ fopMsgM_pane_alpha_class mHk29PaneAlpha; + /* 0x1B94 */ fopMsgM_pane_class mGddmPane; + /* 0x1BCC */ fopMsgM_pane_alpha_class field_0x1bcc[22]; + /* 0x1C7C */ fopMsgM_pane_class mLnkPane; + /* 0x1CB4 */ fopMsgM_pane_class mGdgtPane; +#if VERSION > VERSION_JPN + /* 0x1CEC */ u8 padding_0x1cec[0x27a1 - 0x1CEC]; +#else + /* 0x1CB4 */ u8 padding_0x1cb4[0x25D9 - 0x1CB4]; +#endif + /* 0x27A1 */ u8 field_0x27a1; + /* 0x27A2 */ u8 padding_0x27a2[0x27A8 - 0x27A2]; + /* 0x27A8 */ u8 field_0x27a8; + /* 0x27A9 */ s8 field_0x27a9; + /* 0x27AA */ u8 field_0x27aa; + /* 0x27AB */ s8 field_0x27ab; + /* 0x27AC */ s16 field_0x27ac; + /* 0x27AE */ u8 padding_0x27ae[0x27B0 - 0x27AE]; + /* 0x27B0 */ f32 field_0x27b0; + /* 0x27B4 */ f32 field_0x27b4; + /* 0x27B8 */ f32 field_0x27b8; + /* 0x27BC */ s8 field_0x27bc; + /* 0x27BD */ s8 field_0x27bd; + /* 0x27C0 */ char* field_0x27c0[2]; + /* 0x27C8 */ char* field_0x27c8[4]; + /* 0x27D8 */ char* field_0x27d8; + /* 0x27DC */ char* field_0x27dc; + /* 0x27E0 */ char* field_0x27e0; + /* 0x27E4 */ char* field_0x27e4; + /* 0x27E8 */ char* field_0x27e8; + /* 0x27EC */ char* field_0x27ec; + /* 0x27F0 */ char* field_0x27f0; + /* 0x27F4 */ char* field_0x27f4; + /* 0x27F8 */ u8 field_0x27f8; + /* 0x27F9 */ u8 field_0x27f9; + /* 0x27FA */ u8 field_0x27fa; + /* 0x27FB */ u8 field_0x27fb; + /* 0x27FC */ u8 field_0x27fc; + /* 0x2800 */ f32 field_0x2800; + /* 0x2804 */ f32 field_0x2804; + /* 0x2808 */ f32 field_0x2808; + /* 0x280C */ u8 field_0x280c; + /* 0x280D */ u8 field_0x280d; + /* 0x280E */ u8 field_0x280e; + /* 0x280F */ u8 field_0x280f; + /* 0x2810 */ u8 field_0x2810; + /* 0x2811 */ u8 field_0x2811; + /* 0x2812 */ u8 field_0x2812; + /* 0x2813 */ u8 field_0x2813; + /* 0x2814 */ u8 field_0x2814; + /* 0x2815 */ u8 field_0x2815; + /* 0x2816 */ u8 field_0x2816; + /* 0x2817 */ u8 field_0x2817; + /* 0x2818 */ u8 field_0x2818; + /* 0x2819 */ u8 field_0x2819; + /* 0x281A */ u8 field_0x281a; + /* 0x281B */ u8 field_0x281b; + /* 0x281C */ u8 field_0x281c; + /* 0x281D */ u8 padding_0x281d[0x2820 - 0x281D]; /* 0x2820 */ JUtility::TColor color_0x2820; /* 0x2824 */ JUtility::TColor color_0x2824; /* 0x2828 */ JUtility::TColor color_0x2828; /* 0x282C */ JUtility::TColor color_0x282C; - /* 0x2830 */ u8 padding_0x2830[0x2850 - 0x2830]; -}; // Size: 0x2850 + /* 0x2830 */ f32 field_0x2830; + /* 0x2834 */ f32 field_0x2834; + /* 0x2838 */ f32 field_0x2838; + /* 0x283C */ f32 field_0x283c; + /* 0x2840 */ f32 field_0x2840; + /* 0x2844 */ f32 field_0x2844; + /* 0x2848 */ u16 field_0x2848[2]; +#if VERSION > VERSION_JPN + /* 0x284C */ u8 field_0x284c; + /* 0x284D */ u8 field_0x284d; + /* 0x284E */ u8 field_0x284e; + /* 0x284F */ u8 padding_0x284f[0x2854 - 0x284F]; +#endif +#if VERSION == VERSION_DEMO + // TODO: move these bytes to the correct offsets + u8 pad4[0x50]; +#endif +}; // Size: 0x2854 -STATIC_ASSERT(sizeof(dMenu_Fmap2_c) == VERSION_SELECT(0x2680, 0x2680, 0x2850, 0x2850)); +STATIC_ASSERT(sizeof(dMenu_Fmap2_c) == VERSION_SELECT(0x26F4, 0x2684, 0x2854, 0x2854)); -class dMf2_HIO_c { +class dMf2_HIO_c : public JORReflexible { public: dMf2_HIO_c(); + virtual ~dMf2_HIO_c() {} + + /* 0x04 */ s8 mNo; + /* 0x05 */ u8 field_0x5; + /* 0x06 */ u8 field_0x6; + /* 0x07 */ u8 field_0x7; + /* 0x08 */ u8 field_0x8; + /* 0x09 */ u8 field_0x9; + /* 0x0A */ u8 field_0xa; + /* 0x0B */ u8 field_0xb; + /* 0x0C */ u8 field_0xc; + /* 0x0D */ u8 field_0xd; + /* 0x0E */ u8 field_0xe; + /* 0x0F */ u8 field_0xf; + /* 0x10 */ u8 field_0x10; + /* 0x11 */ u8 field_0x11; + /* 0x12 */ u8 field_0x12; + /* 0x13 */ u8 field_0x13; + /* 0x14 */ u8 field_0x14; + /* 0x16 */ u16 field_0x16; + /* 0x18 */ u8 field_0x18[0x1E - 0x18]; + /* 0x1E */ u8 field_0x1e; + /* 0x1F */ u8 field_0x1f; + /* 0x20 */ u8 field_0x20; + /* 0x21 */ u8 field_0x21; + /* 0x22 */ u8 field_0x22; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ u8 field_0x28; + /* 0x29 */ u8 field_0x29[0x30 - 0x29]; + /* 0x30 */ u8 field_0x30; + /* 0x31 */ u8 field_0x31; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ u8 field_0x38; + /* 0x3A */ s16 field_0x3a; + /* 0x3C */ u16 field_0x3c; + /* 0x3E */ u8 field_0x3e; + /* 0x3F */ u8 field_0x3f; + /* 0x40 */ u8 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ u8 field_0x48; + /* 0x49 */ u8 field_0x49; + /* 0x4A */ u8 field_0x4a; + /* 0x4B */ u8 field_0x4b; + /* 0x4C */ u8 field_0x4c; + /* 0x4D */ u8 field_0x4d; + /* 0x4E */ u8 field_0x4e; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ u8 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ u8 field_0x74; + /* 0x75 */ u8 field_0x75; + /* 0x76 */ u8 field_0x76; + /* 0x77 */ u8 field_0x77; + /* 0x78 */ u8 field_0x78; + /* 0x79 */ u8 field_0x79; + /* 0x7A */ u8 field_0x7a; + /* 0x7B */ u8 field_0x7b; + /* 0x7C */ u8 field_0x7c; + /* 0x7D */ u8 field_0x7d; + /* 0x7E */ u8 field_0x7e; + /* 0x7F */ u8 field_0x7f; + /* 0x80 */ u8 field_0x80; + /* 0x81 */ u8 field_0x81; + /* 0x82 */ u8 field_0x82; + /* 0x83 */ u8 field_0x83; + /* 0x84 */ u8 field_0x84; + /* 0x85 */ u8 field_0x85; + /* 0x86 */ u8 field_0x86; + /* 0x87 */ u8 field_0x87; + /* 0x88 */ u8 field_0x88; + /* 0x89 */ u8 field_0x89; + /* 0x8A */ u8 field_0x8a; + /* 0x8B */ u8 field_0x8b; + /* 0x8C */ u8 field_0x8c; + /* 0x8D */ u8 field_0x8d; +#if VERSION > VERSION_JPN + /* 0x8E */ u8 field_0x8e; + /* 0x8F */ u8 field_0x8f; + /* 0x90 */ u8 field_0x90; + /* 0x91 */ u8 field_0x91; + /* 0x92 */ u8 field_0x92; + /* 0x93 */ u8 field_0x93; + /* 0x94 */ u8 field_0x94; +#endif }; #endif /* D_MENU_FMAP2_H */ diff --git a/include/d/d_menu_fmapSv.h b/include/d/d_menu_fmapSv.h index 60218c8b2..fd1e538e1 100644 --- a/include/d/d_menu_fmapSv.h +++ b/include/d/d_menu_fmapSv.h @@ -115,7 +115,7 @@ public: void setCurWY(s8 val) { curWY = val; } u8 getActive() { return active; } void setActive(u8 val) { active = val; } - u8 getCmapSelNo() { return cmapSelNo; } + s8 getCmapSelNo() { return cmapSelNo; } void setCmapSelNo(s8 val) { cmapSelNo = val; } s8 getCurHX() { return curHX; } void setCurHX(s8 val) { curHX = val; } diff --git a/src/d/d_menu_fmap2.cpp b/src/d/d_menu_fmap2.cpp index 4a4030e4f..d18b44599 100644 --- a/src/d/d_menu_fmap2.cpp +++ b/src/d/d_menu_fmap2.cpp @@ -4,77 +4,866 @@ // #include "d/dolzel.h" // IWYU pragma: keep +#include "JSystem/J2DGraph/J2DOrthoGraph.h" +#include "JSystem/J2DGraph/J2DPicture.h" +#include "JSystem/J2DGraph/J2DTextBox.h" #include "d/d_menu_fmap2.h" #include "d/d_menu_fmap.h" +#include "f_op/f_op_msg_mng.h" +#include "m_Do/m_Do_dvd_thread.h" +#include "m_Do/m_Do_controller_pad.h" + +dMf2_HIO_c g_mf2HIO; + +const char* rollmapTex[] = { + "cmap_tri.bti", + "cmap_treasure.bti", + "cmap_treasure.bti", + "cmap_tingle.bti", + "cmap_phantomship.bti", + "cmap_treasure.bti", + "cmap_treasure.bti", + DEMO_SELECT("cmap_hint.bti" ,"cmap_tingle.bti"), + "cmap_treasure.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", + "cmap_hint.bti", +}; /* 801BB3E4-801BB5B8 .text __ct__10dMf2_HIO_cFv */ dMf2_HIO_c::dMf2_HIO_c() { - /* Nonmatching */ + field_0x77 = 1; + field_0x78 = 1; + field_0x79 = 1; + field_0x76 = 0; + field_0x16 = 25; + field_0x9 = 255; + field_0xa = 0; + field_0xb = 0; + field_0xc = 255; + field_0x5 = 255; + field_0x6 = 255; + field_0x7 = 0; + field_0x8 = 255; + field_0x11 = 255; + field_0x12 = 0x8e; + field_0x13 = 0; + field_0x14 = 255; + field_0xd = 255; + field_0xe = 255; + field_0xf = 130; + field_0x10 = 155; + field_0x1e = 0; + field_0x20 = 0; + field_0x1f = 0; + field_0x22 = 50; + field_0x28 = 30; + field_0x24 = 5.0; + field_0x30 = 5; + field_0x31 = 11; + field_0x34 = 10.0; + field_0x38 = 8; + field_0x3a = 0; + field_0x3c = 0; + field_0x3e = 8; + field_0x48 = 8; + field_0x3f = 10; + field_0x40 = 10; + field_0x44 = 0.05; + field_0x58 = 80.0; + field_0x5c = 75.0; + field_0x60 = 0.5; + field_0x64 = 4; + field_0x68 = 0.0; + field_0x6c = 0.0; + field_0x70 = 1.0; + field_0x74 = 0; + field_0x75 = 45; + field_0x49 = 8; + field_0x4a = 2; + field_0x4b = 12; + field_0x4c = 0; + field_0x4d = 0; + field_0x4e = 0; + field_0x50 = 30.0; + field_0x54 = 30.0; + field_0x7a = 30; + field_0x7b = 6; + field_0x7c = DEMO_SELECT(0, 255); + field_0x7c = DEMO_SELECT(0, 255); + field_0x7c = DEMO_SELECT(128, 255); + field_0x7f = 255; + field_0x80 = 0; + field_0x81 = 0; + field_0x82 = DEMO_SELECT(0, 168); + field_0x83 = 0; + field_0x84 = 15; + field_0x85 = 60; + field_0x86 = 255; + field_0x87 = 255; + field_0x88 = 255; + field_0x89 = 255; + field_0x8a = 0; + field_0x8b = 0; + field_0x8c = 0; + field_0x8d = 0; +#if VERSION > VERSION_JPN + field_0x8e = 30; + field_0x8f = 0; + field_0x90 = 255; + field_0x91 = 32; + field_0x92 = 15; + field_0x93 = 255; + field_0x94 = 32; +#endif } /* 801BB5B8-801BBA2C .text _create__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::_create() { /* Nonmatching */ + fmap2Dl.scrn = new J2DScreen(); + JUT_ASSERT(VERSION_SELECT(293, 293, 316, 316), fmap2Dl.scrn != NULL); + fmap2Dl.scrn->set("f_hikaku_1.blo", dComIfGp_getFmapResArchive()); + stick = new STControl(5, 2, 3, 2); + JUT_ASSERT(VERSION_SELECT(297, 297, 320, 320), stick != NULL); + outFont[0] = new dDlst_2DOutFont_c(); + JUT_ASSERT(VERSION_SELECT(301, 301, 324, 324), outFont[0] != NULL); + outFont[1] = new dDlst_2DOutFont_c(); + JUT_ASSERT(VERSION_SELECT(304, 304, 327, 327), outFont[1] != NULL); + outFontS[0] = new dDlst_2DOutFont_c(); + JUT_ASSERT(VERSION_SELECT(307, 307, 330, 330), outFontS[0] != NULL); + outFontS[1] = new dDlst_2DOutFont_c(); + JUT_ASSERT(VERSION_SELECT(310, 310, 333, 333), outFontS[1] != NULL); + field_0x34 = mDoExt_getMesgFont(); + field_0x38 = mDoExt_getRubyFont(); + mChkPntTxt_p = new(0x20) u8[0x2c00]; + JUT_ASSERT(VERSION_SELECT(317, 317, 340, 340), mChkPntTxt_p != NULL); + mCmapTxtMain_p[0] = new(0x20) u8[0x2c00]; + JUT_ASSERT(VERSION_SELECT(321, 321, 344, 344), mCmapTxtMain_p[0] != NULL); + mCmapTxtMain_p[1] = new(0x20) u8[0x2c00]; + JUT_ASSERT(VERSION_SELECT(323, 323, 346, 346), mCmapTxtMain_p[1] != NULL); + screenSet(); + field_0x27fb = 0; + g_mf2HIO.mNo = mDoHIO_root.m_subroot.createChild("フィールドマップ画面2", &g_mf2HIO); } /* 801BBA2C-801BCC74 .text screenSet__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::screenSet() { /* Nonmatching */ + fopMsgM_setPaneData(&mClPane, fmap2Dl.scrn->search('cl')); + fopMsgM_setPaneData(&mKdmPane, fmap2Dl.scrn->search('Kdm')); + u32 r26 = 'Fc01'; + u32 r30 = 'Fc11'; + u32 r24 = 'cc01'; + u32 r23 = 'cc11'; + for (int i = 0; i < 4; r26++, r30++, r24++, r23++, i++) { + fopMsgM_setPaneData(&mFc0xPanes[i], fmap2Dl.scrn->search(r26)); + fopMsgM_setPaneData(&mFc1xPanes[i], fmap2Dl.scrn->search(r30)); + fopMsgM_setPaneData(&mCc0xPanes[i], fmap2Dl.scrn->search(r24)); + fopMsgM_setPaneData(&mCc1xPanes[i], fmap2Dl.scrn->search(r23)); + } + fopMsgM_setPaneData(&mNcddPane, fmap2Dl.scrn->search('ncdd')); + fopMsgM_setPaneData(&mMkcdPane, fmap2Dl.scrn->search('mkCD')); + fopMsgM_setPaneData(&mMkm0Pane, fmap2Dl.scrn->search('mkm0')); + fopMsgM_setPaneData(&field_0x43c[0], fmap2Dl.scrn->search('msw')); + fopMsgM_setPaneData(&field_0x43c[1], fmap2Dl.scrn->search('msT')); + fopMsgM_setPaneData(&field_0x43c[2], fmap2Dl.scrn->search('msT2')); + fopMsgM_setPaneData(&field_0x43c[3], fmap2Dl.scrn->search('msR1')); + fopMsgM_setPaneData(&field_0x43c[4], fmap2Dl.scrn->search('msR2')); + ((J2DTextBox*)field_0x43c[1].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x43c[2].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x43c[3].pane)->setFont(field_0x38); + ((J2DTextBox*)field_0x43c[4].pane)->setFont(field_0x38); + dDlst_2DOutFont_c local_178; + dDlst_2DOutFont_c local_2c8; + local_178.setPaneEx(field_0x34, &field_0x43c[1], NULL, NULL, NULL, NULL); + local_2c8.setPaneEx(field_0x34, &field_0x43c[2], NULL, NULL, NULL, NULL); + local_178.setRuby(field_0x38, &field_0x43c[3]); + local_2c8.setRuby(field_0x38, &field_0x43c[4]); + local_178.messageSet(0x319f); + local_2c8.messageSet(0x319f); + local_178.setLeftUpPos(field_0x43c[1].mPosTopLeft.x, field_0x43c[1].mPosTopLeft.y); + local_2c8.setLeftUpPos(field_0x43c[2].mPosTopLeft.x, field_0x43c[2].mPosTopLeft.y); + local_178.move(); + local_2c8.move(); + char local_3c8[256]; + for (int i = 0; i < 256; i++) { + local_3c8[i] = 'A'; + } + local_3c8[255] = 0; + static const u32 l_tagNm01[] = { + 'ck', 'ckT0', 'ckT1', 'cTR0', + 'cTR1', 'ck01', 'ck02', 'ck03', + 'ck04', 'ck05', 'ck06', 'ck07', + 'ck08', 'ck09', 'ck0a', 'bt01', + 'bt02', + }; + static const u32 l_tagNm02[] = { + 'ck2', 'cyT1', 'cyT2', 'cTR2', + 'cTR3', 'ck11', 'ck12', 'ck13', + 'ck14', 'ck15', 'ck16', 'ck17', + 'ck18', 'ck19', 'ck1a', 'bt11', + 'bt12', + }; + for (int i = 0; i < 17; i++) { + fopMsgM_setPaneData(&field_0x554[i], fmap2Dl.scrn->search(l_tagNm01[i])); + fopMsgM_setPaneData(&field_0x90c[i], fmap2Dl.scrn->search(l_tagNm02[i])); + } + field_0x2830 = field_0x554[1].pane->mGlobalBounds.i.x; + field_0x2834 = field_0x554[1].pane->mGlobalBounds.i.y; + field_0x2838 = field_0x554[3].pane->mGlobalBounds.i.x; + field_0x283c = field_0x554[3].pane->mGlobalBounds.i.y; + field_0x2840 = field_0x554[1].pane->mGlobalBounds.f.y; + field_0x2844 = field_0x554[3].pane->mGlobalBounds.f.y; + ((J2DTextBox*)field_0x554[1].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x554[2].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x554[3].pane)->setFont(field_0x38); + ((J2DTextBox*)field_0x554[4].pane)->setFont(field_0x38); + ((J2DTextBox*)field_0x554[1].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x554[2].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x554[3].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x554[4].pane)->setString(local_3c8); + field_0x27d8 = ((J2DTextBox*)field_0x554[1].pane)->getStringPtr(); + field_0x27dc = ((J2DTextBox*)field_0x554[2].pane)->getStringPtr(); + field_0x27e8 = ((J2DTextBox*)field_0x554[3].pane)->getStringPtr(); + field_0x27ec = ((J2DTextBox*)field_0x554[4].pane)->getStringPtr(); + field_0x27d8[0] = 0; + field_0x27dc[0] = 0; + field_0x27e8[0] = 0; + field_0x27ec[0] = 0; + outFont[0]->setPaneEx(field_0x34, &field_0x554[1], &field_0x554[15], NULL, NULL, field_0x27d8); + outFont[0]->setRubyEx(field_0x38, &field_0x554[3], field_0x27e8); + outFontS[0]->setPaneEx(field_0x34, &field_0x554[2], &field_0x554[16], NULL, NULL, field_0x27dc); + outFontS[0]->setRubyEx(field_0x38, &field_0x554[4], field_0x27ec); + ((J2DTextBox*)field_0x90c[1].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x90c[2].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x90c[3].pane)->setFont(field_0x38); + ((J2DTextBox*)field_0x90c[4].pane)->setFont(field_0x38); + ((J2DTextBox*)field_0x90c[1].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x90c[2].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x90c[3].pane)->setString(local_3c8); + ((J2DTextBox*)field_0x90c[4].pane)->setString(local_3c8); + field_0x27e0 = ((J2DTextBox*)field_0x90c[1].pane)->getStringPtr(); + field_0x27e4 = ((J2DTextBox*)field_0x90c[2].pane)->getStringPtr(); + field_0x27f0 = ((J2DTextBox*)field_0x90c[3].pane)->getStringPtr(); + field_0x27f4 = ((J2DTextBox*)field_0x90c[4].pane)->getStringPtr(); + field_0x27e0[0] = 0; + field_0x27e4[0] = 0; + field_0x27f0[0] = 0; + field_0x27f4[0] = 0; + field_0xcc4[0] = field_0x554; + field_0xcc4[1] = field_0x90c; + field_0x2816 = 0; + outFont[1]->setPaneEx(field_0x34, &field_0x90c[1], &field_0x90c[15], NULL, NULL, field_0x27e0); + outFont[1]->setRubyEx(field_0x38, &field_0x90c[3], field_0x27f0); + outFontS[1]->setPaneEx(field_0x34, &field_0x90c[2], &field_0x90c[16], NULL, NULL, field_0x27e4); + outFontS[1]->setRubyEx(field_0x38, &field_0x90c[4], field_0x27f4); + fopMsgM_setPaneData(&mCi22Pane, fmap2Dl.scrn->search('ci22')); + fopMsgM_setPaneData(&mCi21Pane, fmap2Dl.scrn->search('ci21')); + fopMsgM_setPaneData(&mCi12Pane, fmap2Dl.scrn->search('ci12')); + fopMsgM_setPaneData(&mCi11Pane, fmap2Dl.scrn->search('ci11')); + fopMsgM_setPaneData(&mCmyuPane, fmap2Dl.scrn->search('cmyu')); + fopMsgM_setPaneData(&mCmydPane, fmap2Dl.scrn->search('cmyd')); + fopMsgM_setPaneData(&mCnd0Pane, fmap2Dl.scrn->search('cnd0')); + fopMsgM_setPaneData(&mCm1xPanes[0], fmap2Dl.scrn->search('cm11')); + fopMsgM_setPaneData(&mCm1xPanes[1], fmap2Dl.scrn->search('cm12')); + fopMsgM_setPaneData(&mCm2xPanes[0], fmap2Dl.scrn->search('cm21')); + fopMsgM_setPaneData(&mCm2xPanes[1], fmap2Dl.scrn->search('cm22')); + field_0x2814 = 0; + field_0x1244[0] = mCm1xPanes; + field_0x1244[1] = mCm2xPanes; + fopMsgM_setPaneData(&field_0x1014[0], fmap2Dl.scrn->search('clS1')); + fopMsgM_setPaneData(&field_0x1014[1], fmap2Dl.scrn->search('cm01')); + fopMsgM_setPaneData(&field_0x1014[2], fmap2Dl.scrn->search('cms1')); + fopMsgM_setPaneData(&field_0x1014[3], fmap2Dl.scrn->search('NZ01')); + fopMsgM_setPaneData(&field_0x1014[4], fmap2Dl.scrn->search('cck1')); + field_0x1014[0].mUserArea = field_0x1014[0].mInitAlpha; + field_0x1014[1].mUserArea = field_0x1014[1].mInitAlpha; + field_0x1014[2].mUserArea = field_0x1014[2].mInitAlpha; + fopMsgM_setPaneData(&field_0x112c[0], fmap2Dl.scrn->search('clS2')); + fopMsgM_setPaneData(&field_0x112c[1], fmap2Dl.scrn->search('cm02')); + fopMsgM_setPaneData(&field_0x112c[2], fmap2Dl.scrn->search('cms2')); + fopMsgM_setPaneData(&field_0x112c[3], fmap2Dl.scrn->search('NZ02')); + fopMsgM_setPaneData(&field_0x112c[4], fmap2Dl.scrn->search('cck2')); + field_0x112c[0].mUserArea = field_0x112c[0].mInitAlpha; + field_0x112c[1].mUserArea = field_0x112c[1].mInitAlpha; + field_0x112c[2].mUserArea = field_0x112c[2].mInitAlpha; + field_0x124c[0] = field_0x1014; + field_0x124c[1] = field_0x112c; + field_0x2813 = 0; + fopMsgM_setPaneData(&field_0x1644[0], fmap2Dl.scrn->search('cdd1')); + fopMsgM_setPaneData(&field_0x1644[1], fmap2Dl.scrn->search('clc1')); + fopMsgM_setPaneData(&field_0x1644[2], fmap2Dl.scrn->search('clyg')); + fopMsgM_setPaneData(&field_0x1644[3], fmap2Dl.scrn->search('clB1')); + fopMsgM_setPaneData(&field_0x1644[4], fmap2Dl.scrn->search('lnk4')); + fopMsgM_setPaneData(&field_0x1644[5], fmap2Dl.scrn->search('cbt1')); + fopMsgM_setPaneData(&field_0x1644[6], fmap2Dl.scrn->search('cbt2')); + fopMsgM_setPaneData(&field_0x1644[7], fmap2Dl.scrn->search('cmr1')); + fopMsgM_setPaneData(&field_0x1644[8], fmap2Dl.scrn->search('cmr3')); + fopMsgM_setPaneData(&field_0x1644[9], fmap2Dl.scrn->search('clc2')); + field_0x1644[0].mUserArea = field_0x1644[0].mInitAlpha; + field_0x1644[1].mUserArea = field_0x1644[1].mInitAlpha; + field_0x1644[2].mUserArea = field_0x1644[2].mInitAlpha; + field_0x1644[3].mUserArea = field_0x1644[3].mInitAlpha; + field_0x1644[9].mUserArea = field_0x1644[9].mInitAlpha; + fopMsgM_setPaneData(&field_0x1874[0], fmap2Dl.scrn->search('cdd2')); + fopMsgM_setPaneData(&field_0x1874[1], fmap2Dl.scrn->search('clc3')); + fopMsgM_setPaneData(&field_0x1874[2], fmap2Dl.scrn->search('cly2')); + fopMsgM_setPaneData(&field_0x1874[3], fmap2Dl.scrn->search('clB2')); + fopMsgM_setPaneData(&field_0x1874[4], fmap2Dl.scrn->search('lnk5')); + fopMsgM_setPaneData(&field_0x1874[5], fmap2Dl.scrn->search('cbt3')); + fopMsgM_setPaneData(&field_0x1874[6], fmap2Dl.scrn->search('cbt4')); + fopMsgM_setPaneData(&field_0x1874[7], fmap2Dl.scrn->search('cmr2')); + fopMsgM_setPaneData(&field_0x1874[8], fmap2Dl.scrn->search('cmr4')); + fopMsgM_setPaneData(&field_0x1874[9], fmap2Dl.scrn->search('clc4')); + field_0x1874[0].mUserArea = field_0x1874[0].mInitAlpha; + field_0x1874[1].mUserArea = field_0x1874[1].mInitAlpha; + field_0x1874[2].mUserArea = field_0x1874[2].mInitAlpha; + field_0x1874[3].mUserArea = field_0x1874[3].mInitAlpha; + field_0x1874[9].mUserArea = field_0x1874[9].mInitAlpha; + field_0x1aa4[0] = field_0x1644; + field_0x1aa4[1] = field_0x1874; + field_0x2815 = 0; + fopMsgM_setPaneData(&field_0x1484[0], fmap2Dl.scrn->search('cmt1')); + fopMsgM_setPaneData(&field_0x1484[1], fmap2Dl.scrn->search('cmt2')); + fopMsgM_setPaneData(&field_0x1484[2], fmap2Dl.scrn->search('ct3')); + fopMsgM_setPaneData(&field_0x1484[3], fmap2Dl.scrn->search('ct4')); + fopMsgM_setPaneData(&field_0x1484[4], fmap2Dl.scrn->search('cmt3')); + fopMsgM_setPaneData(&field_0x1484[5], fmap2Dl.scrn->search('cmt4')); + fopMsgM_setPaneData(&field_0x1484[6], fmap2Dl.scrn->search('cmk1')); + fopMsgM_setPaneData(&field_0x1484[7], fmap2Dl.scrn->search('cmk2')); + char local_448[128]; + for (int i = 0; i < 128; i++) { + local_448[i] = 'A'; + } + local_448[127] = 0; + for (int i = 0; i < 4; i++) { + ((J2DTextBox*)field_0x1484[i].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0x1484[i].pane)->setString(local_448); + field_0x27c8[i] = ((J2DTextBox*)field_0x1484[i].pane)->getStringPtr(); + field_0x27c8[i][0] = 0; + } + fopMsgM_setPaneData(&mNfkdPane, fmap2Dl.scrn->search('nfkd')); + fopMsgM_setPaneData(&mMkfdPane, fmap2Dl.scrn->search('mkFD')); + fopMsgM_setPaneData(&mLnk3Pane, fmap2Dl.scrn->search('lnk3')); + fopMsgM_setPaneData(&mR01gPane, fmap2Dl.scrn->search('R01G')); + fopMsgM_setPaneData(&mClgPane, fmap2Dl.scrn->search('clg')); + fopMsgM_setPaneData(&mFmk1Pane, fmap2Dl.scrn->search('fmk1')); + fopMsgM_setPaneData(&mRkjnPane, fmap2Dl.scrn->search('Rkjn')); + fopMsgM_setPaneData(&mClg2Pane, fmap2Dl.scrn->search('clg2')); + fopMsgM_setPaneData(&mAreaPane, fmap2Dl.scrn->search('area')); + JUtility::TColor local_454 = ((J2DPicture*)mAreaPane.pane)->getWhite(); + JUtility::TColor local_458 = ((J2DPicture*)mAreaPane.pane)->getBlack(); + field_0x27f8 = local_458.a; + field_0x27f9 = local_454.a; + fopMsgM_setPaneData(&field_0xe1c[0], fmap2Dl.scrn->search('fdt1')); + fopMsgM_setPaneData(&field_0xe1c[1], fmap2Dl.scrn->search('fts1')); + for (int i = 0; i < 2; i++) { + ((J2DTextBox*)field_0xe1c[i].pane)->setFont(field_0x34); + ((J2DTextBox*)field_0xe1c[i].pane)->setString(local_448); + field_0x27c0[i] = ((J2DTextBox*)field_0xe1c[i].pane)->getStringPtr(); + field_0x27c0[i][0] = 0; + } } /* 801BCC74-801BD258 .text initialize__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::initialize() { /* Nonmatching */ + field_0x27ac = 0; + field_0x280d = 0; + field_0x280e = 0; + field_0x2848[0] = -1; + field_0x2848[1] = -1; + field_0x27fc = 0; + field_0x2810 = 1; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + field_0x27b0 = player->current.pos.x; + field_0x27b4 = player->current.pos.z; + field_0x27b8 = ((player->shape_angle.y + 0x8000) * 180.0f) / 32768.0f; + if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) { + s8 local_27; + s8 local_28; + dMap_point2Grid(field_0x27b0, field_0x27b4, &local_27, &local_28); + field_0x27bc = local_27; + field_0x27bd = local_28; + } else { + field_0x2810 = 0; + if (strcmp(dComIfGp_getStartStageName(), "Obshop") == 0 || strcmp(dComIfGp_getStartStageName(), "Abship") == 0 || strcmp(dComIfGp_getStartStageName(), "PShip") == 0) { + u8 tmp = dComIfGp_getIkadaShipBeforeRoomId(); + field_0x27bc = tmp % 7 - 3; + field_0x27bd = tmp / 7 - 3; + } else { + stage_map_info_class* mapInfo = dComIfGp_getStage().getMapInfo(); + if (mapInfo) { + field_0x27bc = dStage_mapInfo_GetOceanX(mapInfo); + if (field_0x27bc == 4) { + field_0x27bc = 0; + } + field_0x27bd = dStage_mapInfo_GetOceanZ(mapInfo); + if (field_0x27bd == 4) { + field_0x27bd = 0; + } + } else { + field_0x27bc = 0; + field_0x27bd = 0; + } + } + } + if (getCtCurHX() < -3 || getCtCurHY() < -3) { + setCtCurHX(field_0x27bc); + setCtCurHY(field_0x27bd); + } else if (getCtDispMode() == 0) { + setCtCurHX(getCtCurX()); + setCtCurHY(getCtCurY()); + } + playerPointGridAnimeInit(); + mCmyuPane.mUserArea = g_mf2HIO.field_0x4a + 1; + field_0x27a8 = calcGetCollectMap(); + if (getCtCmapSelNo() == -1) { + field_0x27a9 = getNowCmapFirstNum(); +#if VERSION > VERSION_DEMO + setCtCmapSelNo(field_0x27a9); +#endif + } else { + field_0x27a9 = getCtCmapSelNo(); + } } /* 801BD258-801BD588 .text displayInit__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::displayInit() { /* Nonmatching */ + static const u32 hist[] = { + 'mR01', 'mR02', 'mR03', 'mR04', 'mR05', 'mR06', 'mR07', + 'mR08', 'mR09', 'mR0A', 'mR0B', 'mR0C', 'mR0D', 'mR0E', + 'mR0F', 'mR10', 'mR11', 'mR12', 'mR13', 'mR14', 'mR15', + 'mR16', 'mR17', 'mR18', 'mR19', 'mR1A', 'mR1B', 'mR1C', + 'mR1D', 'mR1E', 'mR1F', 'mR20', 'mR21', 'mR22', 'mR23', + 'mR24', 'mR25', 'mR26', 'mR27', 'mR28', 'mR29', 'mR2A', + 'mR2B', 'mR2C', 'mR2D', 'mR2E', 'mR2F', 'mR30', 'mR31', + }; + + for (int i = 0; i < 49; i++) { + setPaneOnOff(fmap2Dl.scrn, hist[i], dComIfGs_isSaveArriveGrid(i) == 0); + } + fopMsgM_paneTrans(&mAreaPane, field_0x27bc * 16.0f, field_0x27bd * 16.0f); + fCursorMove(); + getCollectMapTexChange(); + finCollectMapTexChange(); + field_0xcc4[field_0x2816][0].pane->hide(); + field_0xcc4[field_0x2816 ^ 1][0].pane->hide(); + if (dComIfGs_getOptRuby()) { + for (int i = 3; i < 5; i++) { + field_0x43c[i].pane->hide(); + field_0x554[i].pane->hide(); + field_0x90c[i].pane->hide(); + } + for (int i = 1; i < 3; i++) { + field_0x43c[i].mPosCenterOrig.y -= 4.0f; + field_0x43c[i].mPosCenter.y = field_0x43c[i].mPosCenterOrig.y; + field_0x554[i].mPosCenterOrig.y -= 4.0f; + field_0x554[i].mPosCenter.y = field_0x554[i].mPosCenterOrig.y; + field_0x90c[i].mPosCenterOrig.y -= 4.0f; + field_0x90c[i].mPosCenter.y = field_0x90c[i].mPosCenterOrig.y; + fopMsgM_cposMove(&field_0x43c[i]); + fopMsgM_cposMove(&field_0x554[i]); + fopMsgM_cposMove(&field_0x90c[i]); + field_0x43c[i].mPosTopLeftOrig.y = field_0x43c[i].mPosTopLeft.y; + field_0x554[i].mPosTopLeftOrig.y = field_0x554[i].mPosTopLeft.y; + field_0x90c[i].mPosTopLeftOrig.y = field_0x90c[i].mPosTopLeft.y; + } + } + collectMapCheck(); + switch (getCtActive()) { + case 0: + fmapPaneInit(); + stick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 2048); + field_0x27a1 = 0; + break; + case 1: + cmapPaneInit(); + stick->setWaitParm(0, 0, 0, 0, 0.9f, 0.5f, 0, 2048); + field_0x27a1 = 2; + break; + } + paneTransBase(0, g_mf2HIO.field_0x38, g_mf2HIO.field_0x3a, 0.0f, 0, field_0x2815, 0); } /* 801BD588-801BD6B4 .text fmapPaneInit__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::fmapPaneInit() { - /* Nonmatching */ + mMkcdPane.pane->show(); + mMkfdPane.pane->hide(); + if (field_0x43c[0].pane->isVisible()) { + paneAlphaMessage2(field_0x27ac, g_mf2HIO.field_0x3e, 0, 0); + } + if (field_0xcc4[field_0x2816][0].pane->isVisible()) { + paneTranceMessage(field_0x27ac, g_mf2HIO.field_0x3e, 1.0f, 1.0f, 0.0f, 0.0f, 0, field_0x2816, 0); + } + if (field_0x1aa4[field_0x2815][0].pane->isVisible()) { + mMkm0Pane.mNowAlpha = 64; + mMkm0Pane.mInitAlpha = 64; + } else { + mMkm0Pane.mNowAlpha = 128; + mMkm0Pane.mInitAlpha = 128; + } + fopMsgM_setAlpha(&mMkm0Pane); + mCnd0Pane.mNowAlpha = 48; + mCnd0Pane.mInitAlpha = 48; + fopMsgM_setAlpha(&mCnd0Pane); + cSelCursorHide(); + cCursorHide(); + fCursorInit(); } /* 801BD6B4-801BD710 .text cmapPaneInit__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::cmapPaneInit() { - /* Nonmatching */ + mMkfdPane.pane->show(); + mMkcdPane.pane->hide(); + mCnd0Pane.mNowAlpha = 170; + mCnd0Pane.mInitAlpha = 170; + fopMsgM_setAlpha(&mCnd0Pane); + fCursorInit(); } /* 801BD710-801BDB38 .text collectMapCheck__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::collectMapCheck() { /* Nonmatching */ + if (field_0x27a8 == 0) { + field_0x43c[0].pane->show(); + cSelCursorHide(); + cCursorHide(); + mCnd0Pane.pane->hide(); + for (int i = 0; i < 8; i++) { + field_0x1484[i].pane->hide(); + } + for (int i = 0; i < 5; i++) { + field_0x124c[field_0x2813][i].pane->hide(); + } + for (int i = 0; i < 2; i++) { + field_0x1244[field_0x2814][i].pane->hide(); + } + field_0x1aa4[field_0x2815][0].pane->hide(); + } else { + cCursorAnimeInit(); + if (field_0x27a8 > 1) { + cSelCursorInit(); + } else { + cSelCursorHide(); + } +#if VERSION > VERSION_DEMO + field_0x1aa4[field_0x2815 ^ 1][0].pane->hide(); + field_0xcc4[field_0x2816 ^ 1][0].pane->hide(); + for (int i = 0; i < 2; i++) { + field_0x1244[field_0x2814 ^ 1][i].pane->hide(); + } + for (int i = 0; i < 5; i++) { + field_0x124c[field_0x2813 ^ 1][i].pane->hide(); + } +#endif + paneTransSelCmapCle(0, g_mf2HIO.field_0x64, g_mf2HIO.field_0x60, 1.0f, 0.0f, 0.0f, 4, field_0x2814 ^ 1, 0); + paneTransSelCmapOpn(0, g_mf2HIO.field_0x64, g_mf2HIO.field_0x60, 1.0f, 0.0f, 0.0f, 4, field_0x2813 ^ 1, 0); + paneAlphaZoomCmapBase(0, g_mf2HIO.field_0x64, 0.0f, 0.0f, 0, field_0x2815 ^ 1, 0); + paneTranceMessage(0, g_mf2HIO.field_0x64, 1.0f, 1.0f, 0.0f, 0.0f, 0, field_0x2816 ^ 1, 0); + paneAlphaCmapName(0, g_mf2HIO.field_0x64, 0); + field_0x2813 ^= 1; + field_0x2814 ^= 1; + field_0x2815 ^= 1; + field_0x2816 ^= 1; + cmapMove(); + field_0x2813 ^= 1; + field_0x2814 ^= 1; + field_0x2815 ^= 1; + field_0x2816 ^= 1; + outFont[field_0x2816]->setLeftUpPos(field_0xcc4[field_0x2816][1].mPosTopLeft.x, field_0xcc4[field_0x2816][1].mPosTopLeft.y); + outFontS[field_0x2816]->setLeftUpPos(field_0xcc4[field_0x2816][2].mPosTopLeft.x, field_0xcc4[field_0x2816][2].mPosTopLeft.y); + outFont[field_0x2816]->move(); + outFontS[field_0x2816]->move(); + ((J2DPicture*)field_0xcc4[field_0x2816][16].pane)->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255)); + field_0xcc4[field_0x2816][16].pane->setAlpha(64); + } } +typedef void (dMenu_Fmap2_c::*mainProcFunc)(); + +static mainProcFunc mainProc[] = { + &dMenu_Fmap2_c::FmapProcMain, + &dMenu_Fmap2_c::FmapChange, + &dMenu_Fmap2_c::CmapProcMain, + &dMenu_Fmap2_c::CmapProc2, + &dMenu_Fmap2_c::CmapOpen, + &dMenu_Fmap2_c::CmapSpLoadWait, + &dMenu_Fmap2_c::CmapOpenSp, + &dMenu_Fmap2_c::CmapScroll, + &dMenu_Fmap2_c::CmapClose, + &dMenu_Fmap2_c::ChangeProcMode, +}; + /* 801BDB38-801BE0D8 .text _move__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::_move() { /* Nonmatching */ + stick->checkTrigger(); + if (field_0x27a1 == 0 || field_0x27a1 == 2) { + if (mDoCPd_R_LOCK_BUTTON(0)) { + if (getCtActive() == 0) { + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_COMP_LR); + setCtActive(1); + fCursorInit(); + playerPointGridAnimeInit(); + playerPointGridAnime(&mAreaPane); + stick->setWaitParm(0, 0, 0, 0, 0.9f, 0.5f, 0, 2048); + mMkfdPane.pane->show(); + paneAlphaCmapBase(field_0x27ac, g_mf2HIO.field_0x3e, 0, 0); + field_0x27a1 = 9; + } + } else if (mDoCPd_L_LOCK_BUTTON(0)) { + if (getCtActive() == 1) { + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_COMP_LR); + setCtActive(0); + if (field_0x1aa4[field_0x2815][0].pane->isVisible()) { + mMkm0Pane.mNowAlpha = 64; + mMkm0Pane.mInitAlpha = 64; + } else { + mMkm0Pane.mNowAlpha = 128; + mMkm0Pane.mInitAlpha = 128; + } + fopMsgM_setAlpha(&mMkm0Pane); + cCursorHide(); + cSelCursorHide(); + playerPointGridAnimeInit(); + stick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 2048); + mMkcdPane.pane->show(); + paneAlphaFmapBase(field_0x27ac, g_mf2HIO.field_0x3e, 0, 0); + field_0x27a1 = 9; + } + } + } + if (field_0x27a1 >= 2) { + if (stick->checkLeftTrigger()) { + if (field_0x280d < g_mf2HIO.field_0x75) { + field_0x280d++; + } + } else { + field_0x280d = 0; + } + if (stick->checkRightTrigger()) { + if (field_0x280e < g_mf2HIO.field_0x75) { + field_0x280e++; + } + } else { + field_0x280e = 0; + } + } + (this->*mainProc[field_0x27a1])(); + if (getCtActive() == 1) { + cSelCursorAnime(); + if (field_0x2848[0] != 0xFFFF) { + outFont[0]->messageSet(field_0x2848[0]); + outFontS[0]->messageSet(field_0x2848[0]); + } + outFont[0]->setLeftUpPos(field_0xcc4[0][1].mPosTopLeft.x, field_0xcc4[0][1].mPosTopLeft.y); + outFontS[0]->setLeftUpPos(field_0xcc4[0][2].mPosTopLeft.x, field_0xcc4[0][2].mPosTopLeft.y); + outFont[0]->move(); + outFontS[0]->move(); + if (field_0x2848[1] != 0xFFFF) { + outFont[1]->messageSet(field_0x2848[1]); + outFontS[1]->messageSet(field_0x2848[1]); + } + outFont[1]->setLeftUpPos(field_0xcc4[1][1].mPosTopLeft.x, field_0xcc4[1][1].mPosTopLeft.y); + outFontS[1]->setLeftUpPos(field_0xcc4[1][2].mPosTopLeft.x, field_0xcc4[1][2].mPosTopLeft.y); + outFont[1]->move(); + outFontS[1]->move(); + ((J2DPicture*)field_0xcc4[field_0x2816][16].pane)->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255)); + field_0xcc4[field_0x2816][16].pane->setAlpha(64); + } } /* 801BE0D8-801BE628 .text FmapProcMain__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::FmapProcMain() { - /* Nonmatching */ + if (stick->checkLeftTrigger()) { + if (getCtCurHX() > -3) { + setCtCurHX(getCtCurHX() - 1); + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_CURSOR); + mR01gPane.pane->hide(); + field_0x27a1 = 1; + } + } else if (stick->checkRightTrigger()) { + if (getCtCurHX() < 3) { + setCtCurHX(getCtCurHX() + 1); + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_CURSOR); + mR01gPane.pane->hide(); + field_0x27a1 = 1; + } + } else if (stick->checkUpTrigger()) { + if (getCtCurHY() > -3) { + setCtCurHY(getCtCurHY() - 1); + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_CURSOR); + mR01gPane.pane->hide(); + field_0x27a1 = 1; + } + } else if (stick->checkDownTrigger()) { + if (getCtCurHY() < 3) { + setCtCurHY(getCtCurHY() + 1); + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_CURSOR); + mR01gPane.pane->hide(); + field_0x27a1 = 1; + } + } + fCursorAnime(); + playerPointGridAnime(&mAreaPane); } /* 801BE628-801BE668 .text FmapChange__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::FmapChange() { - /* Nonmatching */ + fCursorMove(); + mR01gPane.pane->show(); + field_0x27a1 = 0; } /* 801BE668-801BEA58 .text CmapProcMain__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::CmapProcMain() { /* Nonmatching */ + if (field_0x27a8 == 0) { + return; + } + int r31 = field_0x27a9; + if (CPad_CHECK_TRIG_A(0)) { + int r29 = getCollectMapKind(field_0x27a9); +#if VERSION > VERSION_DEMO + field_0x27ac = 0; +#endif + if (isSpMap(r29)) { + if (isOpenCollectMap(field_0x27a9)) { + field_0x2848[field_0x2816] = 0x319c; + } else { + field_0x2848[field_0x2816] = 0x319e; + } + field_0x27fc = 1; + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_OPEN_MAP); + field_0x280f = r29; + spMapLoadForDVD(field_0x280f); + field_0x27a1 = 5; + } else if (cmapOpenCheck() == true) { + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_OPEN_MAP); + field_0x27fc = 1; + for (int i = 0; i < 3; i++) { + field_0x124c[field_0x2813][i].mInitAlpha = field_0x124c[field_0x2813][i].mUserArea; + } + for (int i = 0; i < 4; i++) { + field_0x1aa4[field_0x2815][i].mInitAlpha = field_0x1aa4[field_0x2815][i].mUserArea; + } + field_0x1aa4[field_0x2815][9].mInitAlpha = field_0x1aa4[field_0x2815][9].mUserArea; + field_0x27a1 = 4; + } + } else if (stick->checkLeftTrigger()) { + field_0x27ab = -1; + r31 = getNowCmapNextNum(field_0x27a9, field_0x27ab); + } else if (stick->checkRightTrigger()) { + field_0x27ab = 1; + r31 = getNowCmapNextNum(field_0x27a9, field_0x27ab); + } + if (r31 != field_0x27a9) { + JAIZelBasic::getInterface()->seStart(JA_SE_CHART_SEL_MAP); + field_0x27fc = 1; + field_0x27aa = field_0x27a9; + field_0x27a9 = r31; + cCursorHide(); + cSelCursorAnimeInit(); + if (field_0x280d == g_mf2HIO.field_0x75 || field_0x280e == g_mf2HIO.field_0x75) { + field_0x2800 = g_mf2HIO.field_0x68; + field_0x2804 = g_mf2HIO.field_0x6c; + field_0x2808 = g_mf2HIO.field_0x70; + field_0x280c = g_mf2HIO.field_0x74; + } else { + field_0x2800 = g_mf2HIO.field_0x58; + field_0x2804 = g_mf2HIO.field_0x5c; + field_0x2808 = g_mf2HIO.field_0x60; + field_0x280c = g_mf2HIO.field_0x64; + } +#if VERSION > VERSION_DEMO + paneTransSelCmapCle(0, g_mf2HIO.field_0x64, g_mf2HIO.field_0x60, 1.0f, 0.0f, 0.0f, 4, field_0x2814 ^ 1, 0); + paneTransSelCmapOpn(0, g_mf2HIO.field_0x64, g_mf2HIO.field_0x60, 1.0f, 0.0f, 0.0f, 4, field_0x2813 ^ 1, 0); + paneAlphaZoomCmapBase(0, g_mf2HIO.field_0x64, 0.0f, 0.0f, 0, field_0x2815 ^ 1, 0); + paneTranceMessage(0, g_mf2HIO.field_0x64, 1.0f, 1.0f, 0.0f, 0.0f, 0, field_0x2816 ^ 1, 0); +#endif + cmapMove(); + field_0x27a1 = 7; + } + cCursorAnime(); } /* 801BEA58-801BEC40 .text spMapLoadForDVD__13dMenu_Fmap2_cFUc */ -void dMenu_Fmap2_c::spMapLoadForDVD(unsigned char) { +void dMenu_Fmap2_c::spMapLoadForDVD(u8 param_1) { /* Nonmatching */ + field_0x124c[field_0x2813]->pane->hide(); + switch (param_1) { + case 3: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/tnmapres.arc", 0, NULL); + break; + case 4: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/gsmapres.arc", 0, NULL); + break; + case 7: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/trmapres.arc", 0, NULL); + break; + case 9: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/docmapres.arc", 0, NULL); + break; + case 10: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/ysmapres.arc", 0, NULL); + break; + case 11: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/heartmapres.arc", 0, NULL); + break; + case 12: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/htmmapres.arc", 0, NULL); + break; + case 13: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/irmapres.arc", 0, NULL); + break; + case 14: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/moonmapres.arc", 0, NULL); + break; + case 15: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/ygmapres.arc", 0, NULL); + break; + case 16: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/terrymapres.arc", 0, NULL); + break; + case 17: + field_0x18 = mDoDvdThd_mountArchive_c::create("/res/Msg/submamapres.arc", 0, NULL); + break; + } } /* 801BEC40-801BEDFC .text cmapOpenCheck__13dMenu_Fmap2_cFv */ -void dMenu_Fmap2_c::cmapOpenCheck() { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::cmapOpenCheck() { + if (isOpenCollectMap(field_0x27a9)) { + return false; + } + for (int i = 0; i < 5; i++) { + field_0x124c[field_0x2813][i].pane->show(); + } + field_0x124c[field_0x2813][4].pane->hide(); + field_0x1aa4[field_0x2815][0].pane->show(); + field_0x2848[field_0x2816] = 0x319e; + if (getCollectMapKind(field_0x27a9) == 0) { + if (isOpenCollectMapTriforce(field_0x27a9)) { + field_0x124c[field_0x2813][3].pane->hide(); + } else { + field_0x124c[field_0x2813][0].pane->hide(); + field_0x1aa4[field_0x2815][0].pane->hide(); + } + } else { + field_0x124c[field_0x2813][3].pane->hide(); + } + paneTransSelCmapOpn(field_0x27ac, g_mf2HIO.field_0x3f, 1.0f, 1.0f, 0.0f, 0.0f, 0, field_0x2813, 0); + paneAlphaZoomCmapBase(field_0x27ac, g_mf2HIO.field_0x3f, 0.0f, 0.0f, 0, field_0x2815, 0); + return true; } /* 801BEDFC-801BF2B0 .text CmapScroll__13dMenu_Fmap2_cFv */ @@ -83,8 +872,11 @@ void dMenu_Fmap2_c::CmapScroll() { } /* 801BF2B0-801BF2E8 .text isSpMap__13dMenu_Fmap2_cFi */ -void dMenu_Fmap2_c::isSpMap(int) { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::isSpMap(int param_1) { + if (param_1 - 3 <= 1u || param_1 == 7 || param_1 - 9 <= 7u || param_1 == 17) { + return true; + } + return false; } /* 801BF2E8-801BF5A0 .text CmapOpen__13dMenu_Fmap2_cFv */ @@ -100,11 +892,80 @@ void dMenu_Fmap2_c::CmapSpLoadWait() { /* 801BF7F4-801BFCB8 .text screenSetGs__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::screenSetGs() { /* Nonmatching */ + static u32 moon[] = { + 'tk01', 'tk02', 'tk03', 'tk04', + 'tk05', 'tk06', 'tk07', + }; + + static u32 shipicon[] = { + 'gsi1', 'gsi2', 'gsi3', 'gsi4', + 'gsi5', 'gsi6', 'gsi7', + }; + + fmap2GsDl.scrn = new J2DScreen(); + JUT_ASSERT(VERSION_SELECT(1728, 1749, 1793, 1806), fmap2GsDl.scrn != NULL); + fmap2GsDl.scrn->set("g_map_01.blo", field_0x18->getArchive()); + fopMsgM_setPaneData(&mMs01PaneAlpha, fmap2GsDl.scrn->search('ms01')); + fopMsgM_setPaneData(&mMs02PaneAlpha, fmap2GsDl.scrn->search('ms02')); + fopMsgM_setPaneData(&mSd05PaneAlpha, fmap2GsDl.scrn->search('sd05')); + fopMsgM_setPaneData(&mHs04PaneAlpha, fmap2GsDl.scrn->search('hs04')); + fopMsgM_setPaneData(&mYg01PaneAlpha, fmap2GsDl.scrn->search('yg01')); +#if VERSION == VERSION_DEMO + fopMsgM_setPaneData(&mWk3PaneAlpha, fmap2GsDl.scrn->search('WK3')); +#endif + fopMsgM_setPaneData(&mBsdmPaneAlpha, fmap2GsDl.scrn->search('BSdm')); + fopMsgM_setPaneData(&mTkd2PaneAlpha, fmap2GsDl.scrn->search('tkd2')); + fopMsgM_setPaneData(&mTkd1PaneAlpha, fmap2GsDl.scrn->search('tkd1')); + fopMsgM_setPaneData(&mS02PaneAlpha, fmap2GsDl.scrn->search('S02')); + fopMsgM_setPaneData(&mKz05PaneAlpha, fmap2GsDl.scrn->search('kz05')); + fopMsgM_setPaneData(&mKz01PaneAlpha, fmap2GsDl.scrn->search('kz01')); + color_0x2828 = ((J2DPicture*)mKz01PaneAlpha.pane)->getBlack(); + color_0x282C = ((J2DPicture*)mKz01PaneAlpha.pane)->getWhite(); +#if VERSION == VERSION_DEMO + fopMsgM_setPaneData(&mBt1PaneAlpha, fmap2GsDl.scrn->search('BT1')); + fopMsgM_setPaneData(&mBt2PaneAlpha, fmap2GsDl.scrn->search('BT2')); + fopMsgM_setPaneData(&mBt3PaneAlpha, fmap2GsDl.scrn->search('BT3')); +#endif + for (int i = 0; i < 7; i++) { + fopMsgM_setPaneData(&mTk0xPaneAlpha[i], fmap2GsDl.scrn->search(moon[i])); +#if VERSION > VERSION_JPN + fopMsgM_setPaneData(&mGsixPaneAlpha[i], fmap2GsDl.scrn->search(shipicon[i])); +#endif + } + color_0x2820 = ((J2DPicture*)mTk0xPaneAlpha[0].pane)->getBlack(); + color_0x2824 = ((J2DPicture*)mTk0xPaneAlpha[0].pane)->getWhite(); + if (dComIfGs_getEventReg(0x8803) == 3) { + field_0x2811 = 1; + for (int i = 0; i < 7; i++) { + mTk0xPaneAlpha[i].pane->hide(); + } + mKz01PaneAlpha.pane->hide(); + mTkd1PaneAlpha.mNowAlpha = 200; + mTkd1PaneAlpha.mInitAlpha = 200; + fopMsgM_setAlpha(&mTkd1PaneAlpha); + } else { + field_0x2811 = 0; + field_0x2817 = 0; + if (dComIfGs_getTime() >= 285.0f || (dComIfGs_getTime() >= 0.0f && dComIfGs_getTime() <= 90.0f)) { + field_0x2817 = 1; +#if VERSION > VERSION_JPN + mGsixPaneAlpha[dKy_moon_type_chk()].pane->show(); +#endif + } + gsMoonAnimeInit(); +#if VERSION > VERSION_JPN + gsIconAnimeInit(); +#endif + } } /* 801BFCB8-801BFCEC .text gsMoonAnimeInit__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::gsMoonAnimeInit() { - /* Nonmatching */ + field_0x2818 = g_mf2HIO.field_0x7a; + field_0x2819 = g_mf2HIO.field_0x7b; + field_0x281a = 1; + field_0x281b = g_mf2HIO.field_0x84; + field_0x281c = g_mf2HIO.field_0x85; } /* 801BFCEC-801C002C .text gsMoonAnime__13dMenu_Fmap2_cFv */ @@ -117,19 +978,49 @@ void dMenu_Fmap2_c::gsShipAnime() { /* Nonmatching */ } +#if VERSION > VERSION_JPN /* 801C0378-801C039C .text gsIconAnimeInit__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::gsIconAnimeInit() { - /* Nonmatching */ + field_0x284c = g_mf2HIO.field_0x8e; + field_0x284d = g_mf2HIO.field_0x8f; + field_0x284e = 1; } /* 801C039C-801C04CC .text gsIconAnime__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::gsIconAnime() { /* Nonmatching */ } +#endif /* 801C04CC-801C073C .text screenSetTn__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::screenSetTn() { - /* Nonmatching */ + static u32 blTag[] = { + 'TWy1', 'TWy2', 'TWy3', 'yg22', + 'yg21', 'kb11', 'kb12', 'kb13', + 'kb14', 'kb15', 'kb18', 'kb20', + 'kb21', 'kb22', 'kb23', 'ti03', + 'ti04', 'ti05', 'ti06', 'ti07', + 'ys01', 'ys02', + }; + + fmap2GsDl.scrn = new J2DScreen(); + JUT_ASSERT(VERSION_SELECT(1927, 1938, 2055, 2068), fmap2GsDl.scrn != NULL); + fmap2GsDl.scrn->set("t_map_01.blo", field_0x18->getArchive()); + fopMsgM_setPaneData(&mHk00PaneAlpha, fmap2GsDl.scrn->search('HK00')); + fopMsgM_setPaneData(&mHk01PaneAlpha, fmap2GsDl.scrn->search('HK01')); + fopMsgM_setPaneData(&mHn19PaneAlpha, fmap2GsDl.scrn->search('HN19')); + fopMsgM_setPaneData(&mHk29PaneAlpha, fmap2GsDl.scrn->search('HK29')); +#if VERSION > VERSION_JPN + fopMsgM_setPaneData(&mGddmPane, fmap2GsDl.scrn->search('gddm')); + fopMsgM_setPaneData(&mLnkPane, fmap2GsDl.scrn->search('lnk')); + fopMsgM_setPaneData(&mGdgtPane, fmap2GsDl.scrn->search('gdgt')); +#endif + for (int i = 0; i < 22; i++) { + fopMsgM_setPaneData(&field_0x1bcc[i], fmap2GsDl.scrn->search(blTag[i])); + } +#if VERSION > VERSION_JPN + setPlayerPos(&mLnkPane, &mGdgtPane, &mGddmPane); +#endif } /* 801C073C-801C0ADC .text screenSetTr__13dMenu_Fmap2_cFv */ @@ -338,7 +1229,7 @@ void dMenu_Fmap2_c::fmapPlayerPosDisp() { } /* 801C4634-801C4834 .text fmapPlayerPosDispCheck__13dMenu_Fmap2_cFPfPf */ -void dMenu_Fmap2_c::fmapPlayerPosDispCheck(float*, float*) { +void dMenu_Fmap2_c::fmapPlayerPosDispCheck(f32*, f32*) { /* Nonmatching */ } @@ -358,158 +1249,236 @@ void dMenu_Fmap2_c::cmapSalvagePosDisp() { } /* 801C4F80-801C50FC .text cmapPlayerPosDispCheck__13dMenu_Fmap2_cFPfPf */ -void dMenu_Fmap2_c::cmapPlayerPosDispCheck(float*, float*) { +void dMenu_Fmap2_c::cmapPlayerPosDispCheck(f32*, f32*) { /* Nonmatching */ } /* 801C50FC-801C5350 .text paneTransBase__13dMenu_Fmap2_cFsUcffUcUci */ -void dMenu_Fmap2_c::paneTransBase(short, unsigned char, float, float, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneTransBase(s16, u8, f32, f32, u8, u8, int) { /* Nonmatching */ } /* 801C5350-801C53E0 .text paneAlphaFmapBase__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaFmapBase(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaFmapBase(s16, u8, u8, int) { /* Nonmatching */ } /* 801C53E0-801C54C0 .text paneAlphaCmapBase__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaCmapBase(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaCmapBase(s16, u8, u8, int) { /* Nonmatching */ } /* 801C54C0-801C55D8 .text paneAlphaZoomCmapBase__13dMenu_Fmap2_cFsUcffUcUci */ -void dMenu_Fmap2_c::paneAlphaZoomCmapBase(short, unsigned char, float, float, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaZoomCmapBase(s16, u8, f32, f32, u8, u8, int) { /* Nonmatching */ } /* 801C55D8-801C5730 .text paneAlphaCmapName__13dMenu_Fmap2_cFsUcUc */ -void dMenu_Fmap2_c::paneAlphaCmapName(short, unsigned char, unsigned char) { +void dMenu_Fmap2_c::paneAlphaCmapName(s16, u8, u8) { /* Nonmatching */ } /* 801C5730-801C57C0 .text paneAlphaMessage2__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaMessage2(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaMessage2(s16, u8, u8, int) { /* Nonmatching */ } /* 801C57C0-801C5AEC .text paneTranceMessage__13dMenu_Fmap2_cFsUcffffUcUci */ -void dMenu_Fmap2_c::paneTranceMessage(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneTranceMessage(s16, u8, f32, f32, f32, f32, u8, u8, int) { /* Nonmatching */ } /* 801C5AEC-801C5BF4 .text paneScaleXYChild__13dMenu_Fmap2_cFP18fopMsgM_pane_classf */ -void dMenu_Fmap2_c::paneScaleXYChild(fopMsgM_pane_class*, float) { +void dMenu_Fmap2_c::paneScaleXYChild(fopMsgM_pane_class*, f32) { /* Nonmatching */ } /* 801C5BF4-801C5D6C .text paneTransSelCmapCle__13dMenu_Fmap2_cFsUcffffUcUci */ -void dMenu_Fmap2_c::paneTransSelCmapCle(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneTransSelCmapCle(s16, u8, f32, f32, f32, f32, u8, u8, int) { /* Nonmatching */ } /* 801C5D6C-801C5EE4 .text paneTransSelCmapOpn__13dMenu_Fmap2_cFsUcffffUcUci */ -void dMenu_Fmap2_c::paneTransSelCmapOpn(short, unsigned char, float, float, float, float, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneTransSelCmapOpn(s16, u8, f32, f32, f32, f32, u8, u8, int) { /* Nonmatching */ } /* 801C5EE4-801C609C .text paneAlphaGostShipMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaGostShipMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaGostShipMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C609C-801C61F0 .text paneAlphaTingleMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaTingleMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaTingleMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C61F0-801C6338 .text paneAlphaTreasureMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaTreasureMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaTreasureMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6338-801C64A0 .text paneAlphaSubdanMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaSubdanMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaSubdanMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C64A0-801C663C .text paneAlphaHeartMMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaHeartMMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaHeartMMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C663C-801C6790 .text paneAlphaYaguraMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaYaguraMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaYaguraMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6790-801C68B0 .text paneAlphaDfaliyMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaDfaliyMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaDfaliyMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C68B0-801C6A34 .text paneAlphaHeartPMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaHeartPMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaHeartPMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6A34-801C6B54 .text paneAlphaTerryMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaTerryMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaTerryMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6B54-801C6C74 .text paneAlphaSubMaMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaSubMaMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaSubMaMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6C74-801C6DC8 .text paneAlphaMoonMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaMoonMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaMoonMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6DC8-801C6EFC .text paneAlphaDoctaMap__13dMenu_Fmap2_cFsUcUci */ -void dMenu_Fmap2_c::paneAlphaDoctaMap(short, unsigned char, unsigned char, int) { +void dMenu_Fmap2_c::paneAlphaDoctaMap(s16, u8, u8, int) { /* Nonmatching */ } /* 801C6EFC-801C6F60 .text setPaneOnOff__13dMenu_Fmap2_cFP9J2DScreenUlb */ -void dMenu_Fmap2_c::setPaneOnOff(J2DScreen*, unsigned long, bool) { - /* Nonmatching */ +void dMenu_Fmap2_c::setPaneOnOff(J2DScreen* screen, u32 tag, bool visible) { + J2DPane* pane = screen->search(tag); + if (!pane) { + return; + } + if (visible) { + pane->show(); + } else { + pane->hide(); + } } /* 801C6F60-801C7000 .text getCollectMapTexChange__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::getCollectMapTexChange() { /* Nonmatching */ + char buffer[16]; + int r31 = calcGetCollectMap2(); + sprintf(buffer, "rupy_num_%02d.bti", r31 % 10); + ((J2DPicture*)mCi22Pane.pane)->changeTexture(buffer, 0); + sprintf(buffer, "rupy_num_%02d.bti", r31 / 10); + ((J2DPicture*)mCi21Pane.pane)->changeTexture(buffer, 0); } /* 801C7000-801C70A0 .text finCollectMapTexChange__13dMenu_Fmap2_cFv */ void dMenu_Fmap2_c::finCollectMapTexChange() { /* Nonmatching */ + char buffer[16]; + int r31 = calcFinCollectMap(); + sprintf(buffer, "rupy_num_%02d.bti", r31 % 10); + ((J2DPicture*)mCi12Pane.pane)->changeTexture(buffer, 0); + sprintf(buffer, "rupy_num_%02d.bti", r31 / 10); + ((J2DPicture*)mCi11Pane.pane)->changeTexture(buffer, 0); } /* 801C70A0-801C7164 .text calcGetCollectMap__13dMenu_Fmap2_cFv */ -void dMenu_Fmap2_c::calcGetCollectMap() { +int dMenu_Fmap2_c::calcGetCollectMap() { /* Nonmatching */ + int result = 0; + for (int i = 0; i < 61; i++) { + int r28 = getCmapDatPnt4(i)->collectMapNo; + if (isGetCollectMap(r28)) { + result++; + continue; + } +#if VERSION > VERSION_DEMO + if (dComIfGs_isOpenCollectMap(r28)) { + dComIfGs_offOpenCollectMap(r28); + } + if (dComIfGs_isCompleteCollectMap(r28)) { + dComIfGs_offCompleteCollectMap(r28); + } +#endif + } + return result; } /* 801C7164-801C71D4 .text calcGetCollectMap2__13dMenu_Fmap2_cFv */ -void dMenu_Fmap2_c::calcGetCollectMap2() { +int dMenu_Fmap2_c::calcGetCollectMap2() { /* Nonmatching */ + int result = 0; + for (int i = 0; i < 49; i++) { + if (isGetCollectMap(s8(getCmapDatPnt4(i)->collectMapNo))) { + result++; + } + } + return result; } /* 801C71D4-801C724C .text calcFinCollectMap__13dMenu_Fmap2_cFv */ -void dMenu_Fmap2_c::calcFinCollectMap() { +int dMenu_Fmap2_c::calcFinCollectMap() { /* Nonmatching */ + int result = 0; + for (int i = 0; i < 52; i++) { + if (i != 34 && i != 35 && dComIfGs_isCompleteCollectMap(i + 1)) { + result++; + } + } + return result; } /* 801C724C-801C72D8 .text getNowCmapFirstNum__13dMenu_Fmap2_cFv */ -void dMenu_Fmap2_c::getNowCmapFirstNum() { - /* Nonmatching */ +int dMenu_Fmap2_c::getNowCmapFirstNum() { + if (field_0x27a8 == 0) { + return -1; + } + int i; + for (i = 0; i < 61; i++) { + int collectMapNo = getCmapDatPnt4(i)->collectMapNo; + if (isGetCollectMap(collectMapNo)) { + break; + } + } + if (i > 61) { + return -1; + } + return i; } /* 801C72D8-801C7364 .text getNowCmapNextNum__13dMenu_Fmap2_cFSci */ -void dMenu_Fmap2_c::getNowCmapNextNum(signed char, int) { +int dMenu_Fmap2_c::getNowCmapNextNum(s8 param_1, int param_2) { /* Nonmatching */ + if (field_0x27a8 == 1) { + return param_1; + } + int r31 = param_1; + do { + r31 += param_2; + if (r31 < 0) { + r31 = 60; + } + if (r31 > 60) { + r31 = 0; + } + } while (!isGetCollectMap(s8(getCmapDatPnt4(r31)->collectMapNo))); + return r31; } /* 801C7364-801C73B0 .text getCmapDatPnt4__13dMenu_Fmap2_cFi */ @@ -518,57 +1487,82 @@ aramCmapDatPnt_t* dMenu_Fmap2_c::getCmapDatPnt4(int i_cmapIdx) { } /* 801C73B0-801C7474 .text readPaneCmapTexture__13dMenu_Fmap2_cFPC7ResTIMGi */ -void dMenu_Fmap2_c::readPaneCmapTexture(const ResTIMG*, int) { +void dMenu_Fmap2_c::readPaneCmapTexture(const ResTIMG* param_1, int i_cmapIdx) { /* Nonmatching */ + char buffer[32]; + sprintf(buffer, "R%02X_col_%d.bti", mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)->gridNo, dComIfGs_getRandomSalvagePoint()); + JKRReadTypeResource(const_cast(param_1), 0x2c00, 'CM ', buffer, dComIfGp_getFmapArchive()); } /* 801C7474-801C74B4 .text readFmapTexture__13dMenu_Fmap2_cFPCc */ -void dMenu_Fmap2_c::readFmapTexture(const char*) { - /* Nonmatching */ +void dMenu_Fmap2_c::readFmapTexture(const char* name) { + JKRReadTypeResource(mChkPntTxt_p, 0x2c00, 'FM ', name, dComIfGp_getFmapArchive()); } /* 801C74B4-801C756C .text getButtonIconMode__13dMenu_Fmap2_cFv */ int dMenu_Fmap2_c::getButtonIconMode() { - /* Nonmatching */ - return 0; + int ret; + switch (getCtActive()) { + case 0: + ret = 0; + break; + case 1: + if (field_0x27a8 == 0) { + ret = 1; + } else { + ret = field_0x2812; + } + break; + } + return ret; } /* 801C756C-801C7574 .text isLockBbutton__13dMenu_Fmap2_cFv */ BOOL dMenu_Fmap2_c::isLockBbutton() { - /* Nonmatching */ + return field_0x27fc; } /* 801C7574-801C75A8 .text isGetCollectMap__13dMenu_Fmap2_cFSc */ -void dMenu_Fmap2_c::isGetCollectMap(signed char) { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::isGetCollectMap(s8 i_no) { + return dComIfGs_isGetCollectMap(i_no); } /* 801C75A8-801C7684 .text isOpenCollectMap__13dMenu_Fmap2_cFSc */ -void dMenu_Fmap2_c::isOpenCollectMap(signed char) { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::isOpenCollectMap(s8 i_cmapIdx) { + if (!mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)) { + return false; + } + return dComIfGs_isOpenCollectMap(mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)->collectMapNo); } /* 801C7684-801C7760 .text isOpenCollectMapTriforce__13dMenu_Fmap2_cFSc */ -void dMenu_Fmap2_c::isOpenCollectMapTriforce(signed char) { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::isOpenCollectMapTriforce(s8 i_cmapIdx) { + if (!mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)) { + return false; + } + return dComIfGs_isCollectMapTriforce(mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)->collectMapNo); } /* 801C7760-801C77BC .text getCollectMapKind__13dMenu_Fmap2_cFSc */ -void dMenu_Fmap2_c::getCollectMapKind(signed char) { - /* Nonmatching */ +int dMenu_Fmap2_c::getCollectMapKind(s8 i_cmapIdx) { + return mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)->mapType; } /* 801C77BC-801C7844 .text isCompleteCollectMap__13dMenu_Fmap2_cFSc */ -void dMenu_Fmap2_c::isCompleteCollectMap(signed char) { - /* Nonmatching */ +BOOL dMenu_Fmap2_c::isCompleteCollectMap(s8 i_cmapIdx) { + return dComIfGs_isCompleteCollectMap(mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx)->collectMapNo); } /* 801C7844-801C78A8 .text draw__13dDlst_FMAP2_cFv */ void dDlst_FMAP2_c::draw() { - /* Nonmatching */ + J2DOrthoGraph* ortho = dComIfGp_getCurrentGrafPort(); + ortho->setPort(); + scrn->draw(0.0f, 0.0f, ortho); } /* 801C78A8-801C790C .text draw__15dDlst_FMAP2GS_cFv */ void dDlst_FMAP2GS_c::draw() { - /* Nonmatching */ + J2DOrthoGraph* ortho = dComIfGp_getCurrentGrafPort(); + ortho->setPort(); + scrn->draw(0.0f, 0.0f, ortho); }