d_menu_fmap (#1195)

* checkDspLargeMapLink()

* close on dispEndSalvageLargeMark()

* setDspHugeMapLink(), dispEndSalvageHugeMark()

* checkDspHugeMapLink(), checkDspHugeMapShip(), _close_normalMode()

* _delete()

* decomp.me help

* FmapProcMain()

* SelectGrid(), zoom1000x1000Init()

* ZoomGridLv1In()

* ZoomGridLv2Out(), fmap2Move(), paneTransBase(), paneTranceZoomMapAlpah()

* paneTranceZoomMap()

* paneTranceZoom2Map(), _open_warpMode(), init_warpMode()

* enums for procIdx values

* paneTranceWarpMsg(), paneAlphaWarpMsgBack(), fmMapWrite(), fmMapWait(), paneAlphaZoom2Map()

* wrapMove()

* warpAreaAnime0(), warpSelCursorAnime()

* areaTextChangeAnimeInit()

* fmDispArea(), fmZoomGridLv1/2In/Out

* wtf setDspWarpBackCornerColor

* screenSet() .data order

* cleanup u8/bool

* field renames

* bool/BOOL cleanup, enum for confusing fmapZoom

* configure.py

* GZLP01

* GZLJ01
This commit is contained in:
Teddy Heidmann
2026-09-04 15:01:21 -07:00
committed by GitHub
parent 9afcc6d974
commit 7735a21e14
10 changed files with 1694 additions and 676 deletions
+5 -5
View File
@@ -642,7 +642,7 @@ config.libs = [
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_menu_cloth.cpp"),
Object(NonMatching, "d/d_menu_collect.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_menu_dmap.cpp"),
Object(NonMatching, "d/d_menu_fmap.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_menu_fmap.cpp"),
Object(NonMatching, "d/d_menu_fmap2.cpp"),
Object(NonMatching, "d/d_menu_item.cpp"),
Object(Matching, "d/d_menu_option.cpp"),
@@ -1706,7 +1706,7 @@ config.libs = [
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_os"),
ActorRel(Matching, "d_a_npc_p1"),
ActorRel(NonMatching, "d_a_npc_p2"),
ActorRel(EquivalentFor("GZLJ01", "GZLE01", "GZLP01") or MatchingFor("D44J01"), "d_a_npc_people"), # regalloc
ActorRel(EquivalentFor("GZLJ01", "GZLE01", "GZLP01") or MatchingFor("D44J01"), "d_a_npc_people"), # regalloc
ActorRel(NonMatching, "d_a_npc_pf1"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_photo"),
ActorRel(NonMatching, "d_a_npc_pm1"),
@@ -1928,7 +1928,7 @@ def link_order_callback(module_id: int, objects: List[str]) -> List[str]:
# Don't modify the link order for matching builds
if not config.non_matching:
return objects
if args.debug and module_id == 0: # Debug DOL
# Insert debug-only objects.
objects.insert(objects.index("d/actor/d_a_agb.cpp"), "d/d_debug_viewer.cpp")
@@ -1940,13 +1940,13 @@ def link_order_callback(module_id: int, objects: List[str]) -> List[str]:
objects.insert(objects.index("dolphin/pad/Padclamp.c"), "dolphin/vi/initphilips.c")
objects.insert(objects.index("dolphin/pad/Padclamp.c"), "dolphin/vi/gpioexi.c")
objects.insert(objects.index("dolphin/gx/GXPixel.c"), "dolphin/gx/GXDraw.c")
# Example of adding new files for modding:
# This adds "dummy.c" to the end of the DOL link order if configured with --non-matching.
# "dummy.c" *must* be configured as a Matching (or Equivalent) object in order to be linked.
# if module_id == 0: # DOL
# return objects + ["dummy.c"]
return objects
# Uncomment to enable the link order callback.
+17 -2
View File
@@ -83,9 +83,16 @@ public:
class dDlst_2DOutFont_c {
public:
dDlst_2DOutFont_c() { m20 = NULL; m18 = NULL; m2C = NULL; m74 = 0; }
dDlst_2DOutFont_c() {
m20 = NULL;
m18 = NULL;
m2C = NULL;
#if VERSION > VERSION_JPN
m74 = 0;
#endif
}
void setLeftUpPos(f32 x, f32 y) { mPosTopLeftX = x; mPosTopLeftY = y; }
void initial();
void setPane(JUTFont*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*);
void setPaneEx(JUTFont*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, char*);
@@ -102,7 +109,9 @@ public:
void move();
void setAlpha(u8);
#if VERSION > VERSION_JPN
/* 0x00 */ u8 m00[0x08 - 0x00];
#endif
/* 0x08 */ J2DPane* m08[3];
/* 0x14 */ J2DPane* m14;
/* 0x18 */ J2DPane* m18;
@@ -112,9 +121,15 @@ public:
/* 0x2C */ JUTFont* m2C;
/* 0x30 */ f32 mPosTopLeftX;
/* 0x34 */ f32 mPosTopLeftY;
#if VERSION > VERSION_JPN
/* 0x38 */ u8 m38[0x74 - 0x38];
/* 0x74 */ u8 m74;
/* 0x75 */ u8 m75[0x150 - 0x75];
#else
/* 0x30 */ u8 m30[0x148 - 0x30];
#endif
}; // Size = 0x150
STATIC_ASSERT(sizeof(dDlst_2DOutFont_c) == VERSION_SELECT(0x148, 0x148, 0x150, 0x150));
#endif /* D_2DNUMBER_H */
+146 -175
View File
@@ -25,14 +25,19 @@ struct cursorTable_t {
/* 0x6 */ s8 down;
};
enum FmapMode {
enum dMf_DispMode {
FMAP_DISP_NORMAL = 0,
FMAP_DISP_HIKAKU = 1,
};
enum dMf_Mode {
FMAP_MODE_NORMAL = 0,
FMAP_MODE_WARP = 1,
FMAP_MODE_WALLPAPER = 2,
FMAP_MODE_FISHMAN = 3,
};
enum FmapButtonIconMode {
enum dMf_ButtonIconMode {
FMAP_BTN_ICON_WORLD = 0,
FMAP_BTN_ICON_SECTOR = 1,
FMAP_BTN_ICON_DETAIL = 2,
@@ -42,6 +47,11 @@ enum FmapButtonIconMode {
FMAP_BTN_ICON_FISHMAN = 6,
};
enum dMf_WarpSel {
FMAP_WARP_SEL_YES = 0,
FMAP_WARP_SEL_NO = 1,
};
class dDlst_FMAP_c : public dDlst_base_c {
public:
virtual ~dDlst_FMAP_c() {}
@@ -57,75 +67,75 @@ public:
void draw() { _draw(); }
u8 getCtDispMode() {
JUT_ASSERT(467, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(456, 456, 467, 467), fmapSv != NULL);
return fmapSv->dispMode;
}
void setCtDispMode(u8 val) {
JUT_ASSERT(472, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(461, 461, 472, 472), fmapSv != NULL);
fmapSv->dispMode = val;
}
s8 getCtFmapZoom() {
JUT_ASSERT(478, fmapSv != NULL);
u8 getCtFmapZoom() {
JUT_ASSERT(VERSION_SELECT(467, 467, 478, 478), fmapSv != NULL);
return fmapSv->fmapZoom;
}
void setCtFmapZoom(u8 val) {
JUT_ASSERT(483, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(472, 472, 483, 483), fmapSv != NULL);
fmapSv->fmapZoom = val;
}
s8 getCtCurX() {
JUT_ASSERT(489, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(478, 478, 489, 489), fmapSv != NULL);
return fmapSv->curX;
}
void setCtCurX(s8 val) {
JUT_ASSERT(494, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(483, 483, 494, 494), fmapSv != NULL);
fmapSv->curX = val;
}
s8 getCtCurY() {
JUT_ASSERT(500, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(489, 489, 500, 500), fmapSv != NULL);
return fmapSv->curY;
}
void setCtCurY(s8 val) {
JUT_ASSERT(505, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(494, 494, 505, 505), fmapSv != NULL);
fmapSv->curY = val;
}
s8 getCtCurWX() {
JUT_ASSERT(511, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(500, 500, 511, 511), fmapSv != NULL);
return fmapSv->curWX;
}
void setCtCurWX(s8 val) {
JUT_ASSERT(516, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(505, 505, 516, 516), fmapSv != NULL);
fmapSv->curWX = val;
}
s8 getCtCurWY() {
JUT_ASSERT(522, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(511, 511, 522, 522), fmapSv != NULL);
return fmapSv->curWY;
}
void setCtCurWY(s8 val) {
JUT_ASSERT(527, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(516, 516, 527, 527), fmapSv != NULL);
fmapSv->curWY = val;
}
s8 getCtZoomGridX() {
JUT_ASSERT(533, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(522, 522, 533, 533), fmapSv != NULL);
return fmapSv->zoomGridX;
}
void setCtZoomGridX(s8 val) {
JUT_ASSERT(538, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(527, 527, 538, 538), fmapSv != NULL);
fmapSv->zoomGridX = val;
}
s8 getCtZoomGridY() {
JUT_ASSERT(543, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(532, 532, 543, 543), fmapSv != NULL);
return fmapSv->zoomGridY;
}
void setCtZoomGridY(s8 val) {
JUT_ASSERT(548, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(537, 537, 548, 548), fmapSv != NULL);
fmapSv->zoomGridY = val;
}
void setCtCurHX(s8 val) {
JUT_ASSERT(559, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(548, 548, 559, 559), fmapSv != NULL);
fmapSv->curHX = val;
}
void setCtCurHY(s8 val) {
JUT_ASSERT(569, fmapSv != NULL);
JUT_ASSERT(VERSION_SELECT(558, 558, 569, 569), fmapSv != NULL);
fmapSv->curHY = val;
}
void lineInter0to1(f32, f32, f32) {}
@@ -144,13 +154,13 @@ public:
mTxtDummy[1] = dummy1;
}
void stopWrapBackEmitter() {
if (mMainWarpPane != NULL) {
mMainWarpPane->becomeInvalidEmitter();
if (mWrapBackEmitter != NULL) {
mWrapBackEmitter->becomeInvalidEmitter();
}
}
void stopWrapSpotEmitter(int i_idx) {
if (mWarpPanes[i_idx] != NULL) {
mWarpPanes[i_idx]->becomeInvalidEmitter();
if (mWrapSpotEmitters[i_idx] != NULL) {
mWrapSpotEmitters[i_idx]->becomeInvalidEmitter();
}
}
@@ -168,8 +178,8 @@ public:
bool isFmapClose();
void setPaneOnOff(J2DScreen*, u32, bool);
void childPaneMoveSp(fopMsgM_pane_class*, fopMsgM_pane_class*, f32, f32, f32);
BOOL selGridMaskAlphaCtrl(short, u8, u8, int);
BOOL fmapMaskAlphaCtrl(short, u8, u8, int);
BOOL selGridMaskAlphaCtrl(s16, u8, u8, int);
BOOL fmapMaskAlphaCtrl(s16, u8, u8, int);
void selCursorInit();
void selCursorHide();
void selCursorMove();
@@ -229,14 +239,16 @@ public:
void fmap2Open();
void fmap2Move();
void fmap2Close();
int paneTransBase(short, u8, f32, f32, u8, int);
BOOL paneTranceZoomMap(short, u8, f32, f32, f32, f32, f32, f32, u8, int);
BOOL paneTranceZoomMapAlpah(short, u8, u8, int);
BOOL paneTranceZoom2Map(short, u8, f32, f32, f32, f32, f32, f32, u8, int);
BOOL paneAlphaFmapCursor(fopMsgM_pane_class*, short, u8, u8, int);
BOOL PaneAlphaSelvageItem(short, u8);
BOOL paneTransBase(s16, u8, f32, f32, u8, int);
BOOL paneTranceZoomMap(s16, u8, f32, f32, f32, f32, f32, f32, u8, int);
BOOL paneTranceZoomMapAlpah(s16, u8, u8, int);
BOOL paneTranceZoom2Map(s16, u8, f32, f32, f32, f32, f32, f32, u8, int);
BOOL paneAlphaFmapCursor(fopMsgM_pane_class*, s16, u8, u8, int);
BOOL PaneAlphaSelvageItem(s16, u8);
#if VERSION > VERSION_JPN
void gShipMarkAnimeInit();
void gShipMarkAnime();
#endif
bool _open_warpMode();
void init_warpMode();
void selCursorMoveWarp();
@@ -248,8 +260,8 @@ public:
void wrapSelWinFadeOut();
void wrapSelWarp();
void warpAreaAnime0();
BOOL paneTranceWarpMsg(fopMsgM_pane_class*, short, u8, f32, f32, u8, int);
BOOL paneAlphaWarpMsgBack(short, u8, u8, int);
BOOL paneTranceWarpMsg(fopMsgM_pane_class*, s16, u8, f32, f32, u8, int);
BOOL paneAlphaWarpMsgBack(s16, u8, u8, int);
void warpSelCursorMove();
void warpSelCursorAnimeInit();
void warpSelCursorAnime();
@@ -263,7 +275,7 @@ public:
const cursorTable_t* getWarpAreaTablePtr(s8, s8);
void areaTextChangeAnimeInit();
void areaTextChangeAnime();
BOOL PaneAlphaAreaTxt(short, u8, int);
BOOL PaneAlphaAreaTxt(s16, u8, int);
void setDspWarpBackCornerColor(f32);
void setWrapBackEmitter(cXyz);
void setWrapSpotEmitter(int, cXyz);
@@ -277,7 +289,7 @@ public:
void islandNameSet(u8);
void fmMapWrite();
void fmMapWait();
void paneAlphaZoom2Map(short, u8, u8, int);
BOOL paneAlphaZoom2Map(s16, u8, u8, int);
void fmZoomGridLv2Out();
void fmZoomGridLv1Out();
void fmEndWait();
@@ -317,24 +329,12 @@ public:
/* 0x3034 */ fopMsgM_pane_class mKtx2Pane;
/* 0x306C */ fopMsgM_pane_class mClb2Pane;
/* 0x30A4 */ fopMsgM_pane_class mClbPane;
/* 0x30DC */ fopMsgM_pane_class mSc11Pane;
/* 0x3114 */ fopMsgM_pane_class mSc12Pane;
/* 0x314C */ fopMsgM_pane_class mSc13Pane;
/* 0x3184 */ fopMsgM_pane_class mSc14Pane;
/* 0x31BC */ fopMsgM_pane_class mSc15Pane;
/* 0x31F4 */ fopMsgM_pane_class mSc16Pane;
/* 0x322C */ fopMsgM_pane_class mSc17Pane;
/* 0x3264 */ fopMsgM_pane_class mSc18Pane;
/* 0x329C */ fopMsgM_pane_class mSc19Pane;
/* 0x30DC */ fopMsgM_pane_class mSc1xPanes[9];
/* 0x32D4 */ fopMsgM_pane_class mLnk3Pane;
/* 0x330C */ fopMsgM_pane_class mSpi3Pane;
/* 0x3344 */ fopMsgM_pane_class mStl1Pane;
/* 0x337C */ fopMsgM_pane_class mR01gPane;
/* 0x33B4 */ fopMsgM_pane_class mFmumPane;
/* 0x33EC */ fopMsgM_pane_class mFmw1Pane;
/* 0x3424 */ fopMsgM_pane_class mFmw2Pane;
/* 0x345C */ fopMsgM_pane_class mFmw3Pane;
/* 0x3494 */ fopMsgM_pane_class mFmw4Pane;
/* 0x33B4 */ fopMsgM_pane_class mFmxxPanes[5];
/* 0x34CC */ fopMsgM_pane_class mFmnPanes[15];
/* 0x3814 */ fopMsgM_pane_class mClgPane;
/* 0x384C */ fopMsgM_pane_class mSc2xPanes[7];
@@ -342,8 +342,7 @@ public:
/* 0x3C3C */ fopMsgM_pane_class mStxxPanes[49];
/* 0x46F4 */ fopMsgM_pane_class mCk1xPanes[3];
/* 0x479C */ fopMsgM_pane_class mCk2xPanes[3];
/* 0x4844 */ fopMsgM_pane_class mCk31Pane;
/* 0x487C */ fopMsgM_pane_class mCk32Pane;
/* 0x4844 */ fopMsgM_pane_class mCk3xPanes[2];
/* 0x48B4 */ fopMsgM_pane_class mKr0xPanes[8];
/* 0x4A74 */ fopMsgM_pane_class mWnd1Pane;
/* 0x4AAC */ fopMsgM_pane_class mWnd2Pane;
@@ -365,20 +364,22 @@ public:
/* 0x4E9C */ fopMsgM_pane_class mNok0Pane;
/* 0x4ED4 */ fopMsgM_pane_class mNoPane;
/* 0x4F0C */ fopMsgM_pane_class mCur1Pane;
#if VERSION > VERSION_JPN
/* 0x4F44 */ fopMsgM_pane_class mGsPanes[7];
#endif
/* 0x50CC */ STControl* stick;
/* 0x50D0 */ JUTFont* mFont;
/* 0x50D4 */ JUTFont* mRFont;
/* 0x50D8 */ JPABaseEmitter* mMainWarpPane;
/* 0x50DC */ JPABaseEmitter* mWarpPanes[9];
/* 0x50D8 */ JPABaseEmitter* mWrapBackEmitter;
/* 0x50DC */ JPABaseEmitter* mWrapSpotEmitters[9];
/* 0x5100 */ u8 padding_0x5100[0x510C - 0x5100];
/* 0x510C */ bool mMapClose;
/* 0x510D */ u8 mSelCursorBufIdx;
/* 0x510E */ u8 mCursorBufIdx;
/* 0x510F */ u8 field_0x510F;
/* 0x5110 */ u8 field_0x5110;
/* 0x5111 */ u8 field_0x5111;
/* 0x5112 */ u8 field_0x5112;
/* 0x510F */ u8 mPlayerPointTimer;
/* 0x5110 */ u8 mPlayerPointToggle;
/* 0x5111 */ s8 mCurChkPntNo;
/* 0x5112 */ s8 mPlayerChkPntNo;
/* 0x5113 */ u8 mMainProcIdx;
/* 0x5114 */ u8 mFmapProcIdx;
/* 0x5115 */ u8 mHikakuProcIdx;
@@ -387,10 +388,10 @@ public:
/* 0x5119 */ s8 mGridY;
/* 0x511A */ s8 mTargetGridX;
/* 0x511B */ s8 mTargetGridY;
/* 0x511C */ cXyz field_0x511C;
/* 0x5128 */ cXyz field_0x5128;
/* 0x5134 */ f32 field_0x5134;
/* 0x5138 */ f32 field_0x5138;
/* 0x511C */ cXyz mPlayerPos;
/* 0x5128 */ cXyz mShipPos;
/* 0x5134 */ f32 mDispIslandPosX;
/* 0x5138 */ f32 mDispIslandPosY;
/* 0x513C */ bool mFullMapMode;
/* 0x513D */ u8 mSalvItmBufIdx;
/* 0x513E */ u8 mSalvItmTimer;
@@ -420,17 +421,17 @@ public:
/* 0x5178 */ u8 mFishmanTimer1;
/* 0x5179 */ u8 mFishmanTimer2;
/* 0x517A */ u8 mFishmanTimer3;
/* 0x517B */ u8 mFishmanMsgTimer;
/* 0x517C */ u8 mFishmanMsgToggle;
/* 0x517B */ u8 mCheckMarkTimer;
/* 0x517C */ u8 mCheckMarkToggle;
/* 0x517D */ u8 padding_0x517D[0x517F-0x517D];
/* 0x517F */ bool mFishmanActive;
/* 0x5180 */ u8 field_0x5180;
/* 0x5180 */ u8 mSalvagePntIdx;
/* 0x5181 */ u8 mButtonIconMode;
/* 0x5182 */ u8 field_0x5182;
/* 0x5183 */ bool field_0x5183;
/* 0x5184 */ bool field_0x5184;
/* 0x5185 */ bool field_0x5185;
/* 0x5186 */ bool field_0x5186;
/* 0x5182 */ bool mDspLargeMapLink;
/* 0x5183 */ bool mDspHugeMapLink;
/* 0x5184 */ bool mDspLargeMapShip;
/* 0x5185 */ bool mDspHugeMapShip;
/* 0x5186 */ bool mShipOpenWater;
/* 0x5187 */ u8 padding_0x5187[0x518C-0x5187];
/* 0x518C */ char* mpKtx1String;
/* 0x5190 */ char* mpKtx2String;
@@ -440,15 +441,17 @@ public:
/* 0x51A0 */ JUtility::TColor mKr0Color2;
/* 0x51A4 */ JUtility::TColor mYs01Color;
/* 0x51A8 */ JUtility::TColor mYs01Color2;
/* 0x51AC */ bool mMsgValueActive;
/* 0x51AD */ bool mMsgValueState1;
/* 0x51AE */ bool mMsgValueState2;
/* 0x51AF */ u8 mMsgValueTimer;
/* 0x51B0 */ bool mMsgValueToggle;
#if VERSION > VERSION_JPN
/* 0x51AC */ bool mMoonAlphaActive;
/* 0x51AD */ bool mMoonAlphaState1;
/* 0x51AE */ bool mMoonAlphaState2;
/* 0x51AF */ u8 mMoonAlphaTimer;
/* 0x51B0 */ u8 mMoonAlphaToggle;
/* 0x51B1 */ u8 padding_0x51B1[0x51B4-0x51B1];
#endif
}; // Size: 0x51B4
STATIC_ASSERT(sizeof(dMenu_Fmap_c) == 0x51B4);
STATIC_ASSERT(sizeof(dMenu_Fmap_c) == VERSION_SELECT(0x4E54, 0x4E54, 0x51B4, 0x51B4));
class dMf_HIO_c : public JORReflexible {
public:
@@ -463,81 +466,53 @@ public:
/* 0x006 */ u8 field_0x06;
/* 0x007 */ u8 field_0x07;
/* 0x008 */ u8 field_0x08;
/* 0x009 */ GXColor field_0x09;
/* 0x00D */ GXColor field_0x0D;
/* 0x009 */ GXColor mWindArrowColor1;
/* 0x00D */ GXColor mWindArrowColor2;
/* 0x011 */ u8 padding_0x11[0x12 - 0x11];
/* 0x012 */ s16 field_0x12;
/* 0x014 */ s16 field_0x14;
/* 0x016 */ u8 field_0x16;
/* 0x017 */ u8 field_0x17;
/* 0x018 */ u8 field_0x18;
/* 0x019 */ u8 field_0x19;
/* 0x01A */ u8 field_0x1A;
/* 0x01B */ u8 field_0x1B;
/* 0x01C */ u8 field_0x1C;
/* 0x01D */ u8 field_0x1D;
/* 0x01E */ u8 field_0x1E;
/* 0x01F */ u8 field_0x1F;
/* 0x020 */ u8 field_0x20;
/* 0x021 */ u8 field_0x21;
/* 0x022 */ u8 field_0x22;
/* 0x023 */ u8 field_0x23;
/* 0x024 */ u8 field_0x24;
/* 0x025 */ u8 field_0x25;
/* 0x026 */ s16 field_0x26;
/* 0x028 */ s16 field_0x28;
/* 0x02A */ s16 field_0x2A;
/* 0x02C */ s16 field_0x2C;
/* 0x02E */ u8 field_0x2E;
/* 0x02F */ u8 field_0x2F;
/* 0x030 */ u8 field_0x30;
/* 0x031 */ u8 field_0x31;
/* 0x032 */ u8 field_0x32;
/* 0x033 */ u8 field_0x33;
/* 0x034 */ u8 field_0x34;
/* 0x012 */ s16 mWindArrowPivotX;
/* 0x014 */ s16 mWindArrowPivotY;
/* 0x016 */ GXColor mPlayerPointWhite1;
/* 0x01A */ GXColor mPlayerPointWhite2;
/* 0x01E */ GXColor mPlayerPointBlack1;
/* 0x022 */ GXColor mPlayerPointBlack2;
/* 0x026 */ s16 mWindArrowPeriod;
/* 0x028 */ s16 mPlayerPointTimer;
/* 0x02A */ s16 mWindArrowHold1;
/* 0x02C */ s16 mWindArrowHold2;
/* 0x02E */ u8 mZoomAnimFrame;
/* 0x02F */ u8 mZoom2AnimFrame;
/* 0x030 */ u8 mZoomOutDelay;
/* 0x031 */ u8 mAreaTxtChangeFrame;
/* 0x032 */ u8 mAreaTxtAlphaFrame;
/* 0x033 */ u8 mOpenDelay;
/* 0x034 */ u8 mBaseAnimFrame;
/* 0x035 */ u8 padding_0x35[0x36 - 0x35];
/* 0x036 */ s16 field_0x36;
/* 0x038 */ u16 field_0x38;
/* 0x03A */ u8 field_0x3A;
/* 0x03B */ u8 field_0x3B;
/* 0x03C */ u8 field_0x3C;
/* 0x036 */ s16 mOpenPosY;
/* 0x038 */ s16 mClosePosY;
/* 0x03A */ u8 mCursorFlashFrame;
/* 0x03B */ u8 mSelCursorAlphaFrame;
/* 0x03C */ u8 mZoomMapDelay;
/* 0x03D */ u8 field_0x3D;
/* 0x03E */ u8 field_0x3E;
/* 0x03F */ u8 field_0x3F;
/* 0x040 */ u8 field_0x40;
/* 0x041 */ u8 field_0x41;
/* 0x042 */ u8 field_0x42;
/* 0x03E */ u8 mWarpMsgBackAlphaFrame;
/* 0x03F */ u8 mWarpMsgBackInDelay;
/* 0x040 */ u8 mWarpMsgBackOutDelay;
/* 0x041 */ u8 mWarpMsgAnimFrame;
/* 0x042 */ u8 mWarpMsgDelay;
/* 0x043 */ u8 field_0x43;
/* 0x044 */ s16 field_0x44;
/* 0x046 */ u8 field_0x46;
/* 0x044 */ s16 mWarpMsgPosY;
/* 0x046 */ u8 mWarpYesNoAnimFrame;
/* 0x047 */ u8 field_0x47;
/* 0x048 */ u8 field_0x48;
/* 0x049 */ u8 field_0x49;
/* 0x04A */ s16 field_0x4A;
/* 0x04C */ u8 field_0x4C;
/* 0x04D */ u8 field_0x4D;
/* 0x04E */ u8 field_0x4E;
/* 0x049 */ u8 mWarpNoDelay;
/* 0x04A */ s16 mWarpYesNoPosY;
/* 0x04C */ u8 mWarpCursorBlinkFrame;
/* 0x04D */ u8 mWarpCursorAlphaMin;
/* 0x04E */ u8 mWarpCursorAlphaMax;
/* 0x04F */ u8 padding_0x4F[0x50 - 0x4F];
/* 0x050 */ f32 field_0x50;
/* 0x054 */ f32 field_0x54;
/* 0x058 */ f32 field_0x58;
/* 0x05C */ f32 field_0x5C;
/* 0x060 */ f32 field_0x60;
/* 0x064 */ f32 field_0x64;
/* 0x068 */ f32 field_0x68;
/* 0x06C */ f32 field_0x6C;
/* 0x070 */ f32 field_0x70;
/* 0x074 */ f32 field_0x74;
/* 0x078 */ f32 field_0x78;
/* 0x07C */ f32 field_0x7C;
/* 0x080 */ f32 field_0x80;
/* 0x084 */ f32 field_0x84;
/* 0x088 */ f32 field_0x88;
/* 0x08C */ f32 field_0x8C;
/* 0x090 */ f32 field_0x90;
/* 0x094 */ f32 field_0x94;
/* 0x098 */ f32 field_0x98;
/* 0x09C */ f32 field_0x9C;
/* 0x050 */ f32 mWarpSpotPosX[9];
/* 0x074 */ f32 mWarpSpotPosY[9];
/* 0x098 */ f32 mWarpSpotScaleSel;
/* 0x09C */ f32 mWarpSpotScale;
/* 0x0A0 */ f32 field_0xA0;
/* 0x0A4 */ f32 field_0xA4;
/* 0x0A8 */ f32 field_0xA8;
@@ -554,46 +529,42 @@ public:
/* 0x0D4 */ f32 field_0xD4;
/* 0x0D8 */ f32 field_0xD8;
/* 0x0DC */ f32 field_0xDC;
/* 0x0E0 */ u8 field_0xE0;
/* 0x0E1 */ GXColor field_0xE1;
/* 0x0E5 */ GXColor field_0xE5;
/* 0x0E0 */ u8 mCheckMarkAnimFrame;
/* 0x0E1 */ GXColor mCheckMarkWhite;
/* 0x0E5 */ GXColor mCheckMarkBlack;
/* 0x0E9 */ u8 field_0xE9;
/* 0x0EA */ GXColor field_0xEA;
/* 0x0EE */ GXColor field_0xEE;
/* 0x0F2 */ u8 field_0xF2;
/* 0x0F3 */ GXColor field_0xF3;
/* 0x0F7 */ GXColor field_0xF7;
/* 0x0F3 */ GXColor mKorokWhite;
/* 0x0F7 */ GXColor mKorokBlack;
/* 0x0FB */ u8 field_0xFB;
/* 0x0FC */ GXColor field_0xFC;
/* 0x100 */ GXColor field_0x100;
/* 0x0FC */ GXColor mAreaTxtColor;
/* 0x100 */ GXColor mAreaTxtColorMain;
/* 0x104 */ u8 field_0x104;
/* 0x105 */ u8 field_0x105;
/* 0x106 */ u8 field_0x106;
/* 0x107 */ u8 field_0x107;
/* 0x108 */ u8 field_0x108;
/* 0x109 */ u8 field_0x109;
/* 0x10A */ u8 field_0x10A;
/* 0x10B */ u8 field_0x10B;
/* 0x10C */ u8 field_0x10C;
/* 0x10D */ u8 field_0x10D;
/* 0x10E */ u8 field_0x10E;
/* 0x10F */ u8 field_0x10F;
/* 0x110 */ u8 field_0x110;
/* 0x111 */ u8 field_0x111;
/* 0x107 */ u8 mWarpBackColorCycle;
/* 0x108 */ GXColor mWarpBackColor1;
/* 0x10C */ GXColor mWarpBackColor2;
/* 0x110 */ u8 mFishmanOpenFrame;
/* 0x111 */ u8 mFishmanZoom1Frame;
/* 0x112 */ u8 field_0x112;
/* 0x113 */ u8 field_0x113;
/* 0x114 */ u8 field_0x114;
/* 0x115 */ u8 field_0x115;
/* 0x116 */ u8 field_0x116;
/* 0x117 */ u8 field_0x117;
/* 0x118 */ u8 field_0x118;
/* 0x119 */ u8 field_0x119;
/* 0x11A */ u8 field_0x11A;
/* 0x11B */ u8 field_0x11B;
/* 0x11C */ u8 field_0x11C;
/* 0x11D */ u8 field_0x11D;
/* 0x11E */ u8 field_0x11E;
/* 0x113 */ u8 mFishmanZoom1OutFrame;
/* 0x114 */ u8 mFishmanZoom2Frame;
/* 0x115 */ u8 mFishmanZoom2AlphaFrame;
/* 0x116 */ u8 mFishmanMapWriteWait;
/* 0x117 */ u8 mFishmanMapWriteFrame;
/* 0x118 */ u8 mFishmanBlinkFrame;
/* 0x119 */ u8 mFishmanDispWait;
/* 0x11A */ u8 mFishmanCloseWait;
/* 0x11B */ u8 mFishmanCloseFrame;
#if VERSION > VERSION_JPN
/* 0x11C */ u8 mMoonAlphaFrame;
/* 0x11D */ u8 mMoonAlphaMax;
/* 0x11E */ u8 mMoonAlphaMin;
/* 0x11F */ u8 padding_0x11F[0x120 - 0x11F];
#endif
};
extern dMf_HIO_c g_mfHIO;
+7 -3
View File
@@ -149,7 +149,7 @@ public:
void readPaneCmapTexture(const ResTIMG*, int);
void readFmapTexture(const char*);
int getButtonIconMode();
void isLockBbutton();
BOOL isLockBbutton();
void isGetCollectMap(signed char);
void isOpenCollectMap(signed char);
void isOpenCollectMapTriforce(signed char);
@@ -164,15 +164,19 @@ public:
/* 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];
#endif
/* 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?
}; // Size: 0x2850
STATIC_ASSERT(sizeof(dMenu_Fmap2_c) == 0x2850);
STATIC_ASSERT(sizeof(dMenu_Fmap2_c) == VERSION_SELECT(0x2680, 0x2680, 0x2850, 0x2850));
class dMf2_HIO_c {
public:
+6
View File
@@ -4,6 +4,12 @@
#include "JSystem/JUtility/JUTAssert.h"
#include "global.h"
enum dMf_ZoomLevel {
FMAP_ZOOM_WORLD = 0,
FMAP_ZOOM_SECTOR = 1,
FMAP_ZOOM_DETAIL = 2,
};
struct aramCmapSalvagePnt_t {
/* 0x0 */ s16 field_0x0;
/* 0x2 */ s16 field_0x2;
+13
View File
@@ -61,6 +61,18 @@ struct fopMsg_prm_timer : public fopMsg_prm_class {
/* 0x2C */ cXy mRupeePos;
}; // Size: 0x34
struct fopMsgM_unk_struct {
u16 _0;
u16 _2;
u16 _4;
u16 _6;
u16 _8;
u16 _A;
s16 _C;
u16 _E;
u8 _10;
};
class J2DScreen;
class fopMsgM_f2d_class {
@@ -514,6 +526,7 @@ void fopMsgM_messageSendOn();
void fopMsgM_messageSendOff();
bool fopMsgM_checkMessageSend();
u32 fopMsgM_tactMessageSet();
fopMsgM_unk_struct fopMsgM_selectMessageGet(J2DPane* i_textPane, J2DPane* i_rubyPane, char* param_3, char* param_4, char* param_5, char* param_6, u32 i_msgNo);
void fopMsgM_demoMsgFlagOn();
bool fopMsgM_getScopeMode();
+2
View File
@@ -3603,7 +3603,9 @@ void dMenu_Collect_c::_create() {
outFont = new dDlst_2DOutFont_c();
JUT_ASSERT(VERSION_SELECT(0xe55, 0xe55, 0xe55, 0xe55), outFont != NULL);
#if VERSION > VERSION_JPN
outFont->m74 = 1;
#endif
dMo_c = new dMenu_Option_c();
JUT_ASSERT(VERSION_SELECT(0xe59, 0xe59, 0xe59, 0xe59), dMo_c != NULL);
+1472 -453
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -534,7 +534,7 @@ int dMenu_Fmap2_c::getButtonIconMode() {
}
/* 801C756C-801C7574 .text isLockBbutton__13dMenu_Fmap2_cFv */
void dMenu_Fmap2_c::isLockBbutton() {
BOOL dMenu_Fmap2_c::isLockBbutton() {
/* Nonmatching */
}
+25 -37
View File
@@ -809,18 +809,6 @@ static f32 dummyfloat2(int _) {
}
}
struct fopMsgM_unk_struct {
u16 _0;
u16 _2;
u16 _4;
u16 _6;
u16 _8;
u16 _A;
s16 _C;
u16 _E;
u8 _10;
};
/* 8002C02C-8002C568 .text fopMsgM_selectMessageGet__FP7J2DPaneP7J2DPanePcPcPcPcUl */
fopMsgM_unk_struct fopMsgM_selectMessageGet(J2DPane* i_textPane, J2DPane* i_rubyPane, char* param_3, char* param_4, char* param_5, char* param_6, u32 i_msgNo) {
fopMsgM_msgDataProc_c msgData;
@@ -1885,7 +1873,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
field_0xE8[i] = 0;
field_0x108[i] = 0;
}
while (bmgData[r29] != '\0') {
if (bmgData[r29] == 0x1A) {
if ((u8)bmgData[r29 + 2] == 0xFF && (u8)bmgData[r29 + 3] == 0 && (u8)bmgData[r29 + 4] == SpclCode_UNK1) {
@@ -1949,7 +1937,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
c = (u8)player_name[i++];
}
#endif
f32 f1;
if (sp10 != 0) {
f1 = charLength(sp08, c, false) + sp0C;
@@ -3099,7 +3087,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
if (bmgData[r29] == 0xA) {
sp10 = 0;
sp0C = 0.0f;
r29++;
if (bmgData[r29] == 0) {
f32 f3 = (int)(field_0x28 + field_0x1C / 2.0f - field_0x18 / 2.0f + 0.5f);
@@ -3199,7 +3187,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
}
sp0C = f1;
sp10 += 1;
int r7 = sp18[sp14];
#if VERSION <= VERSION_JPN
sp18[sp14] = (int)(sp0C + 0.5f);
@@ -3212,7 +3200,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
lineCount++;
}
}
if (lineWidth <= sp18[sp14]) {
sp18[sp14] = r7;
sp14++;
@@ -3222,7 +3210,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
if (bmgData[r29] == '\0') {
field_0x140 = aimLine;
}
if (aimLine == nowLine) {
if (sp14 >= mesgEntry->field_0x16) {
if (
@@ -3256,7 +3244,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
sp18[sp14] = sp0C + 0.5f;
}
}
if (r25) {
r29++;
} else {
@@ -3269,7 +3257,7 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
if (bmgData[r29] == '\0') {
field_0x140 = aimLine;
}
if (r27) {
field_0xE8[sp14] = sp18[sp14];
} else {
@@ -3280,9 +3268,9 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
lineCount = 1;
}
}
field_0x134 = lineCount;
return r30;
}
@@ -3927,7 +3915,7 @@ void fopMsgM_msgDataProc_c::stringSet() {
field_0xD4[1] = '\0';
}
#endif
if (field_0x150 == 0) {
field_0x14 = charLength(field_0x148, c, true);
} else {
@@ -4580,7 +4568,7 @@ void fopMsgM_msgDataProc_c::stringSet() {
}
if (seconds != 0 || minutes == 0) {
fopMsgM_int_to_char(buf, seconds, false);
while (buf[i] != '\0') {
int hi = (u8)buf[i++];
int lo = (u8)buf[i++];
@@ -5490,26 +5478,26 @@ void fopMsgM_msgDataProc_c::stringSet() {
}
field_0x150 = 0;
nowCursorPos = field_0xF8[lineCount];
char sp54[16];
sprintf(sp54, "\x1b""CR[%d]", (int)nowCursorPos);
strcat(field_0x60, sp54);
strcat(field_0x68, sp54);
if (autoSendFlag == 0) {
waitTimer = spaceTimer;
}
if (field_0x299 == 0 && field_0x29A == 0 && autoSendFlag == 0 && handSendFlag == 0 && selectFlag == Select_OFF) {
return;
}
} else {
field_0x150 = 0;
nowCursorPos = field_0x108[lineCount];
char sp44[16];
sprintf(sp44, "\x1b""CR[%d]", (int)(nowCursorPos));
strcat(field_0x60, sp44);
@@ -5568,13 +5556,13 @@ void fopMsgM_msgDataProc_c::stringSet() {
}
field_0x150++;
if (selectFlag != Select_ON) {
nowCursorPos = field_0xF8[lineCount] + field_0x14 + 0.5f;
} else {
nowCursorPos = field_0x108[lineCount] + field_0x14 + 0.5f;
}
if (lineWidth <= (int)(field_0x14 + 0.5f)) {
strcat(field_0x60, "\n");
strcat(field_0x64, "\n");
@@ -5631,7 +5619,7 @@ void fopMsgM_msgDataProc_c::stringSet() {
} else {
field_0x150 = 0;
nowCursorPos = field_0x108[lineCount];
char sp24[16];
sprintf(sp24, "\x1b""CR[%d]", (int)(nowCursorPos));
strcat(field_0x60, sp24);
@@ -6052,7 +6040,7 @@ void fopMsgM_msgDataProc_c::getString(char* i_dest, char* param_2, char* param_3
*param_6 += charLength(field_0x148, c, false);
}
*param_8 += 1;
if (r21 != 0 && --r21 == 0) {
char sp0C[16];
f32 f0 = (*param_6 - f30) / 2.0f;
@@ -8422,7 +8410,7 @@ void fopMsgM_msgDataProc_c::tag_forest_timer() {
if (minutes == 0 && seconds == 0) {
seconds = 1;
}
if (dComIfGs_getPalLanguage() != 0 && dComIfGs_getPalLanguage() != 1) {
if (seconds != 0 || minutes == 0) {
if (dComIfGs_getPalLanguage() == 3 && minutes != 0) {
@@ -8432,7 +8420,7 @@ void fopMsgM_msgDataProc_c::tag_forest_timer() {
strcat(field_0x60, " ");
strcat(field_0x68, " ");
}
fopMsgM_int_to_char(buf, seconds, false);
while (buf[i] != '\0') {
@@ -8947,7 +8935,7 @@ void fopMsgM_msgDataProc_c::tag_pig_timer() {
if (minutes == 0 && seconds == 0) {
seconds = 1;
}
if (dComIfGs_getPalLanguage() != 0 && dComIfGs_getPalLanguage() != 1) {
if (seconds != 0 || minutes == 0) {
if (dComIfGs_getPalLanguage() == 3 && minutes != 0) {
@@ -8957,7 +8945,7 @@ void fopMsgM_msgDataProc_c::tag_pig_timer() {
strcat(field_0x60, " ");
strcat(field_0x68, " ");
}
fopMsgM_int_to_char(buf, seconds, false);
while (buf[i] != '\0') {