diff options
| author | Teddy Heidmann <ateddy42@users.noreply.github.com> | 2026-08-23 15:56:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-23 18:56:14 -0400 |
| commit | a2817a5702a72e8cf3f53a32e9ce6b2df200da78 (patch) | |
| tree | c4e7129181746971e258705914f426601a3d760a /include | |
| parent | 4b9a87e0f83ddebff166acb90755bf77306bf7db (diff) | |
d_menu_fmap Progress (#1148)
* class model
* g_mfHIO
* more progress
* more matching
* menu interactions
* zoom functions
* zoom map alpha set
* zoom 200
* more zooms
* gship
* inlines
* g_cursorTable and best practices
* create
* some screenSet and rodata
* worst constructor ever
* review cleanup
* forgot a file
* undo fmap_sv type changes
* wrapSelWarp
* .data renames
* initialize()
* displayinit()
* calcGetMapCount
* dispEndSalvageMark()
* checkMarks
* pane fns
* selMaskAlphaCtrl()
* salvage/are txt chgs
* checkMarkCheck3 and CursorAnime fns
* collapse arrays
* setDspWindAngle()
* windArrowColorAnime()
* checkMarkAnime(), setDispIslandPos()
* setDspNormalMapLink()
* setDspLargeMapLink()
* Added enums, NULL checks for pointers, remove inlines
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/d_com_inf_game.h | 11 | ||||
| -rw-r--r-- | include/d/d_map.h | 26 | ||||
| -rw-r--r-- | include/d/d_menu_fmap.h | 577 | ||||
| -rw-r--r-- | include/d/d_menu_fmap2.h | 20 | ||||
| -rw-r--r-- | include/d/d_menu_fmap_sv.h | 97 | ||||
| -rw-r--r-- | include/d/d_save_event_flag.inc | 2 |
6 files changed, 585 insertions, 148 deletions
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 5d9f3715..f74501b0 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -590,11 +590,13 @@ public: JKRArchive* getAnmArchive() { return mpAnmArchive; } void setLkDArc(JKRArchive * pArc) { mpLkDArc = pArc; } void setFmapArchive(JKRArchive * pArc) { mpFmapArchive = pArc; } + JKRArchive* getFmapArchive() { return mpFmapArchive; } void setItemResArchive(JKRArchive * pArc) { mpItemResArchive = pArc; } JKRArchive* getItemResArchive() { return mpItemResArchive; } void setCollectResArchive(JKRArchive * pArc) { mpCollectResArchive = pArc; } JKRArchive* getCollectResArchive() { return mpCollectResArchive; } void setFmapResArchive(JKRArchive * pArc) { mpFmapResArchive = pArc; } + JKRArchive* getFmapResArchive() { return mpFmapResArchive; } void setDmapResArchive(JKRArchive * pArc) { mpDmapResArchive = pArc; } JKRArchive* getDmapResArchive() { return mpDmapResArchive; } void setOptionResArchive(JKRArchive * pArc) { mpOptionResArchive = pArc; } @@ -1240,6 +1242,13 @@ inline s32 dComIfGs_getCollectMapNum() { return g_dComIfG_gameInfo.save.getPlayer().getMap().getCollectMapNum(); } +inline void dComIfGs_onSaveArriveGrid(int i_no) { + g_dComIfG_gameInfo.save.getPlayer().getMap().onSaveArriveGrid(i_no); +} +inline BOOL dComIfGs_isSaveArriveGrid(int i_no) { + return g_dComIfG_gameInfo.save.getPlayer().getMap().isSaveArriveGrid(i_no); +} + inline void dComIfGs_onSaveArriveGridForAgb(int i_no) { g_dComIfG_gameInfo.save.getPlayer().getMap().onSaveArriveGridForAgb(i_no); } @@ -3959,11 +3968,13 @@ inline JKRArchive* dComIfGp_getFontArchive() { return g_dComIfG_gameInfo.play.ge inline JKRArchive* dComIfGp_getRubyArchive() { return g_dComIfG_gameInfo.play.getRubyArchive(); } inline void dComIfGp_setLkDArc(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setLkDArc(pArc); } inline void dComIfGp_setFmapArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setFmapArchive(pArc); } +inline JKRArchive* dComIfGp_getFmapArchive() { return g_dComIfG_gameInfo.play.getFmapArchive(); } inline void dComIfGp_setItemResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setItemResArchive(pArc); } inline JKRArchive* dComIfGp_getItemResArchive() { return g_dComIfG_gameInfo.play.getItemResArchive(); } inline void dComIfGp_setCollectResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setCollectResArchive(pArc); } inline JKRArchive* dComIfGp_getCollectResArchive() { return g_dComIfG_gameInfo.play.getCollectResArchive(); } inline void dComIfGp_setFmapResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setFmapResArchive(pArc); } +inline JKRArchive* dComIfGp_getFmapResArchive() { return g_dComIfG_gameInfo.play.getFmapResArchive(); } inline void dComIfGp_setDmapResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setDmapResArchive(pArc); } inline JKRArchive* dComIfGp_getDmapResArchive() { return g_dComIfG_gameInfo.play.getDmapResArchive(); } inline void dComIfGp_setOptionResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setOptionResArchive(pArc); } diff --git a/include/d/d_map.h b/include/d/d_map.h index 0c91de6c..5aaf866a 100644 --- a/include/d/d_map.h +++ b/include/d/d_map.h @@ -43,6 +43,14 @@ struct dMap_CollectPoint { u8 field_0x17; }; +struct FmapChkPnt { + /* 0x0 */ char mSectorX; + /* 0x1 */ char mSectorY; + /* 0x2 */ s16 field_0x2; + /* 0x4 */ s16 field_0x4; + /* 0x6 */ u8 field_0x6; +}; // Size: 0x8 + class dMap_2DMtMapSpcl_tex_c { public: dMap_2DMtMapSpcl_tex_c() {} @@ -400,10 +408,10 @@ public: static void draw(f32, f32, int, f32); static void point2Grid(f32, f32, s8*, s8*); static void point2GridAndLocal(f32, f32, s8*, s8*, s16*, s16*); - static void getCheckPointUseGrid(s8, s8); + static int getCheckPointUseGrid(s8, s8); static void getFmapChkPntPrm(int, s8*, s8*, s16*, s16*, u8*); static void setFmapChkDtPrm(); - static void getFmapChkPntDtPnt(int); + static FmapChkPnt* getFmapChkPntDtPnt(int); static void initPoint(); static void setGbaPoint_ocean(u8, f32, f32, s16, u8, u8, u8, u8); static BOOL isPointStayInDspNowRoomAgbScr(s16, s16); @@ -495,7 +503,7 @@ public: static f32 mEnlargementSizeScaleX; static f32 mEnlargementSizeScaleZ; static u8 mFmapChkPntValue; - static int mFmapChkPntData_p; + static FmapChkPnt* mFmapChkPntData_p; static s16 mDispPosLeftUpX; static s16 mDispPosLeftUpY; static s16 mDispSizeX; @@ -537,14 +545,20 @@ inline void dMap_setIconSelfAlpha(u8 alpha) { return dMap_c::setIconSelfAlpha(al inline void dMap_setIconSelfScale(f32 scale) { return dMap_c::setIconSelfScale(scale); } inline void dMap_setIconDispMode(u8 mode) { return dMap_c::setIconDispMode(mode); } -inline void dMap_getCheckPointUseGrid(s8, s8) {} -inline void dMap_getFmapChkPntPrm(int, s8*, s8*, s16*, s16*, u8*) {} +inline int dMap_getCheckPointUseGrid(s8 i_x, s8 i_y) { + return dMap_c::getCheckPointUseGrid(i_x, i_y); +} +inline void dMap_getFmapChkPntPrm(int i, s8* gx, s8* gy, s16* x, s16* y, u8* prm) { + dMap_c::getFmapChkPntPrm(i, gx, gy, x, y, prm); +} inline void dMap_getMapDispSizeHeight() {} inline void dMap_getMapDispSizeWidth() {} inline void dMap_isSaveArriveGridUseGridNo(int) {} inline void dMap_isSaveArriveGridUseGridPos(int, int) {} inline void dMap_isSaveArriveGrid_UseWorldPos(f32, f32) {} inline void dMap_onSaveArriveGridUseGridNo(int) {} -inline void dMap_point2Grid(f32, f32, s8*, s8*) {} +inline void dMap_point2Grid(f32 i_x, f32 i_z, s8* i_gridX_p, s8* i_gridY_p) { + dMap_c::point2Grid(i_x, i_z, i_gridX_p, i_gridY_p); +} #endif /* D_MAP_H */ diff --git a/include/d/d_menu_fmap.h b/include/d/d_menu_fmap.h index bb0928ff..16aa0b9b 100644 --- a/include/d/d_menu_fmap.h +++ b/include/d/d_menu_fmap.h @@ -1,22 +1,75 @@ #ifndef D_MENU_FMAP_H #define D_MENU_FMAP_H +#include "d/d_2dnumber.h" #include "d/d_drawlist.h" +#include "d/d_lib.h" +#include "d/d_menu_fmap_sv.h" #include "dolphin/types.h" +#include "JSystem/JParticle/JPAEmitter.h" #include "SSystem/SComponent/c_xyz.h" #include "d/d_menu_fmap2.h" +#include "f_op/f_op_msg_mng.h" +#include "m_Do/m_Do_hostIO.h" class JUTFont; class J2DScreen; -struct fopMsgM_pane_class; -class dMenu_FmapSv_c; -struct cursorTable_t; -struct aramCmapDatPat_t; + +struct cursorTable_t { + /* 0x0 */ s8 gridX; + /* 0x1 */ s8 gridY; + /* 0x2 */ s8 no; + /* 0x3 */ s8 left; + /* 0x4 */ s8 right; + /* 0x5 */ s8 up; + /* 0x6 */ s8 down; +}; + +struct aramCmapSalvagePnt_t { + /* 0x0 */ s16 field_0x0; + /* 0x2 */ s16 field_0x2; + /* 0x4 */ s16 x; + /* 0x6 */ s16 y; +}; // Size: 0x8 + +struct aramCmapDatPnt_t { + /* 0x00 */ s8 gridNo; + /* 0x01 */ s8 collectMapNo; + /* 0x02 */ s8 cmapIdx; + /* 0x03 */ s8 field_0x3; + /* 0x04 */ s16 field_0x4; + /* 0x06 */ aramCmapSalvagePnt_t salvagePnt[4]; +}; // Size: 0x26 + +struct aramCmapDatPat_t { + u32 m_0x0; + aramCmapDatPnt_t* m_0x4; +}; + +enum FmapMode { + FMAP_MODE_NORMAL = 0, + FMAP_MODE_WARP = 1, + FMAP_MODE_WALLPAPER = 2, + FMAP_MODE_FISHMAN = 3, +}; + +enum FmapButtonIconMode { + FMAP_BTN_ICON_WORLD = 0, + FMAP_BTN_ICON_SECTOR = 1, + FMAP_BTN_ICON_DETAIL = 2, + FMAP_BTN_ICON_LOCKED = 3, + FMAP_BTN_ICON_WARP = 4, + FMAP_BTN_ICON_WALLPAPER = 5, + FMAP_BTN_ICON_FISHMAN = 6, +}; class dDlst_FMAP_c : public dDlst_base_c { public: virtual ~dDlst_FMAP_c() {} virtual void draw(); + +public: + /* 0x0004 */ J2DScreen* scrn; }; class dMenu_Fmap_c { @@ -24,41 +77,115 @@ public: virtual ~dMenu_Fmap_c() {} void draw() { _draw(); } - void getCtCurWX() {} - void getCtCurWY() {} - void getCtCurX() {} - void getCtCurY() {} + u8 getCtActive() { + JUT_ASSERT(467, fmapSv != NULL); + return fmapSv->active; + } + void setCtActive(u8 val) { + JUT_ASSERT(472, fmapSv != NULL); + fmapSv->active = val; + } + s8 getCtCmapSelNo() { + JUT_ASSERT(478, fmapSv != NULL); + return fmapSv->cmapSelNo; + } + void setCtCmapSelNo(s8 val) { + JUT_ASSERT(483, fmapSv != NULL); + fmapSv->cmapSelNo = val; + } + s8 getCtCurWX() { + JUT_ASSERT(489, fmapSv != NULL); + return fmapSv->curWX; + } + void setCtCurWX(s8 val) { + JUT_ASSERT(494, fmapSv != NULL); + fmapSv->curWX = val; + } + s8 getCtCurWY() { + JUT_ASSERT(500, fmapSv != NULL); + return fmapSv->curWY; + } + void setCtCurWY(s8 val) { + JUT_ASSERT(505, fmapSv != NULL); + fmapSv->curWY = val; + } + s8 getCtCurHX() { + JUT_ASSERT(511, fmapSv != NULL); + return fmapSv->curHX; + } + void setCtCurHX(s8 val) { + JUT_ASSERT(516, fmapSv != NULL); + fmapSv->curHX = val; + } + s8 getCtCurHY() { + JUT_ASSERT(522, fmapSv != NULL); + return fmapSv->curHY; + } + void setCtCurHY(s8 val) { + JUT_ASSERT(527, fmapSv != NULL); + fmapSv->curHY = val; + } + s8 getCtCurX() { + JUT_ASSERT(533, fmapSv != NULL); + return fmapSv->curX; + } + void setCtCurX(s8 val) { + JUT_ASSERT(538, fmapSv != NULL); + fmapSv->curX = val; + } + s8 getCtCurY() { + JUT_ASSERT(543, fmapSv != NULL); + return fmapSv->curY; + } + void setCtCurY(s8 val) { + JUT_ASSERT(548, fmapSv != NULL); + fmapSv->curY = val; + } + s8 getCtZoomGridX() { + JUT_ASSERT(553, fmapSv != NULL); + return fmapSv->zoomGridX; + } + void setCtZoomGridX(s8 val) { + JUT_ASSERT(559, fmapSv != NULL); + fmapSv->zoomGridX = val; + } + s8 getCtZoomGridY() { + JUT_ASSERT(563, fmapSv != NULL); + return fmapSv->zoomGridY; + } + void setCtZoomGridY(s8 val) { + JUT_ASSERT(569, fmapSv != NULL); + fmapSv->zoomGridY = val; + } void getCtDispMode() {} + void setCtDispMode(u8) {} void getCtFmapZoom() {} - void getCtZoomGridX() {} - void getCtZoomGridY() {} - void lineInter0to1(float, float, float) {} - void lineInter0to1ForU8(unsigned char, unsigned char, float) {} - void setCtCurHX(signed char) {} - void setCtCurHY(signed char) {} - void setCtCurWX(signed char) {} - void setCtCurWY(signed char) {} - void setCtCurX(signed char) {} - void setCtCurY(signed char) {} - void setCtDispMode(unsigned char) {} - void setCtFmapZoom(unsigned char) {} - void setCtZoomGridX(signed char) {} - void setCtZoomGridY(signed char) {} + void setCtFmapZoom(u8) {} + void lineInter0to1(f32, f32, f32) {} + void lineInter0to1ForU8(u8, u8, f32) {} void setFont(JUTFont* font, JUTFont* rfont) { mFont = font; mRFont = rfont; } void setSvPtr(dMenu_FmapSv_c* i_ptr) { fmapSv = i_ptr; } void setTextArea_New(char* name0, char* name1, char* note0, char* note1, char* dummy0, char* dummy1) { - name[0] = name0; - name[1] = name1; - note[0] = note0; - note[1] = note1; - dummy[0] = dummy0; - dummy[1] = dummy1; + mTxtName[0] = name0; + mTxtName[1] = name1; + mTxtNote[0] = note0; + mTxtNote[1] = note1; + mTxtDummy[0] = dummy0; + mTxtDummy[1] = dummy1; + } + void stopWrapBackEmitter() { + if (mMainWarpPane != NULL) { + mMainWarpPane->becomeInvalidEmitter(); + } + } + void stopWrapSpotEmitter(int i_idx) { + if (mWarpPanes[i_idx] != NULL) { + mWarpPanes[i_idx]->becomeInvalidEmitter(); + } } - void stopWrapBackEmitter() {} - void stopWrapSpotEmitter(int) {} void _create(); void phantomShipCheck(); @@ -72,21 +199,21 @@ public: void checkMarkCheck2(); void checkMarkCheck3(); bool isFmapClose(); - void setPaneOnOff(J2DScreen*, unsigned long, bool); - void childPaneMoveSp(fopMsgM_pane_class*, fopMsgM_pane_class*, float, float, float); - void selGridMaskAlphaCtrl(short, unsigned char, unsigned char, int); - void fmapMaskAlphaCtrl(short, unsigned char, unsigned char, int); + 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); void selCursorInit(); void selCursorHide(); void selCursorMove(); void islandNameChange(); - void changeIslandName(unsigned char); + void changeIslandName(u8); void AreaTxtChg(); void AreaTxtChgFast(); void salvageGetItemChg(); void salvageGetItemChange(); void SalvItmDispChgFast(); - void changeSalvageGetItem(unsigned char); + void changeSalvageGetItem(u8); void selCursorAnime(); void zoomCursorInit(); void zoomCursorAnime(); @@ -96,32 +223,32 @@ public: void windArrowColorAnime(); void checkMarkAnimeInit(); void checkMarkAnime(); - void readFmapTexture(const char*); + u32 readFmapTexture(const char*); void aramCmapDatRead(); void initCmapDatPnt(aramCmapDatPat_t*); - void getGridNumToCmapDatPnt(int); - void setDispIslandPos(signed char, signed char); - void setIslandPos(fopMsgM_pane_class*, float, float); - void changeFmapTexture(signed char, signed char); + aramCmapDatPnt_t* getGridNumToCmapDatPnt(int); + void setDispIslandPos(s8, s8); + void setIslandPos(fopMsgM_pane_class*, f32, f32); + void changeFmapTexture(s8, s8); void setDspNormalMapLink(); void setDspLargeMapLink(); void checkDspLargeMapLink(); void checkDspLargeMapShip(); void dispEndSalvageLargeMark(); void setDspHugeMapLink(); - void dispEndSalvageHugeMark(float, float); + void dispEndSalvageHugeMark(f32, f32); void checkDspHugeMapLink(); void checkDspHugeMapShip(); bool _open(); bool _close(); - void _close_normalMode(); + BOOL _close_normalMode(); void _move(); void _draw(); void _delete(); void FmapProcMain(); void SelectGrid(); void zoom1000x1000Init(); - void zoomMapAlphaSet(signed char, signed char, fopMsgM_pane_class*, unsigned char); + void zoomMapAlphaSet(s8, s8, fopMsgM_pane_class*, u8); void ZoomGridLv1In(); void ZoomGridLv1Proc(); void zoom200x200Init(); @@ -135,18 +262,18 @@ public: void fmap2Open(); void fmap2Move(); void fmap2Close(); - void paneTransBase(short, unsigned char, float, float, unsigned char, int); - void paneTranceZoomMap(short, unsigned char, float, float, float, float, float, float, unsigned char, int); - void paneTranceZoomMapAlpah(short, unsigned char, unsigned char, int); - void paneTranceZoom2Map(short, unsigned char, float, float, float, float, float, float, unsigned char, int); - void paneAlphaFmapCursor(fopMsgM_pane_class*, short, unsigned char, unsigned char, int); - void PaneAlphaSelvageItem(short, unsigned char); + 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); void gShipMarkAnimeInit(); void gShipMarkAnime(); bool _open_warpMode(); void init_warpMode(); void selCursorMoveWarp(); - void _close_warpMode(); + BOOL _close_warpMode(); void moveMain_warpMode(); void wrapMove(); void wrapSelWinFadeIn1(); @@ -154,72 +281,352 @@ public: void wrapSelWinFadeOut(); void wrapSelWarp(); void warpAreaAnime0(); - void paneTranceWarpMsg(fopMsgM_pane_class*, short, unsigned char, float, float, unsigned char, int); - void paneAlphaWarpMsgBack(short, unsigned char, unsigned char, int); + BOOL paneTranceWarpMsg(fopMsgM_pane_class*, short, u8, f32, f32, u8, int); + BOOL paneAlphaWarpMsgBack(short, u8, u8, int); void warpSelCursorMove(); void warpSelCursorAnimeInit(); void warpSelCursorAnime(); - void getWarpAreaGridX(int); - void getWarpAreaGridY(int); - void getWarpAreaNo(const cursorTable_t*); - void getWarpAreaNoUp(const cursorTable_t*); - void getWarpAreaNoDown(const cursorTable_t*); - void getWarpAreaNoLeft(const cursorTable_t*); - void getWarpAreaNoRight(const cursorTable_t*); - void getWarpAreaTablePtr(signed char, signed char); + s8 getWarpAreaGridX(int); + s8 getWarpAreaGridY(int); + int getWarpAreaNo(const cursorTable_t*); + int getWarpAreaNoUp(const cursorTable_t*); + int getWarpAreaNoDown(const cursorTable_t*); + int getWarpAreaNoLeft(const cursorTable_t*); + int getWarpAreaNoRight(const cursorTable_t*); + const cursorTable_t* getWarpAreaTablePtr(s8, s8); void areaTextChangeAnimeInit(); void areaTextChangeAnime(); - void PaneAlphaAreaTxt(short, unsigned char, int); - void setDspWarpBackCornerColor(float); + BOOL PaneAlphaAreaTxt(short, u8, int); + void setDspWarpBackCornerColor(f32); void setWrapBackEmitter(cXyz); void setWrapSpotEmitter(int, cXyz); bool _open_fishManMode(); - void _close_fishManMode(); + BOOL _close_fishManMode(); void init_fishManMode(); void movefishManMode(); void fmDispArea(); void fmZoomGridLv1In(); void fmZoomGridLv2In(); - void islandNameSet(unsigned char); + void islandNameSet(u8); void fmMapWrite(); void fmMapWait(); - void paneAlphaZoom2Map(short, unsigned char, unsigned char, int); + void paneAlphaZoom2Map(short, u8, u8, int); void fmZoomGridLv2Out(); void fmZoomGridLv1Out(); void fmEndWait(); bool _open_wallPaper(); - u8 getButtonIconMode(); + int getButtonIconMode(); public: - /* 0x0004 */ u8 padding_0x4[0x1C - 0x4]; - /* 0x001C */ dDlst_FMAP_c mDlst; - /* 0x0020 */ J2DScreen* scrn; + /* 0x0004 */ u8 padding_0x4[0x18 - 0x4]; + /* 0x0018 */ ResTIMG * mChkPntTxt_p; + /* 0x001C */ dDlst_FMAP_c fmapDl; /* 0x0024 */ dMenu_Fmap2_c mFmap2; /* 0x2874 */ u8 padding_0x2874[0x2878 - 0x2874]; /* 0x2878 */ dMenu_FmapSv_c* fmapSv; - /* 0x287C */ u8 padding_0x287C[0x50D0 - 0x287C]; + /* 0x287C */ aramCmapDatPat_t mCmapDatPnt; + /* 0x2884 */ dDlst_2DOutFont_c* outFont; + /* 0x2888 */ dDlst_2DOutFont_c* outFont2; + /* 0x288C */ fopMsgM_pane_class mFddmPane; + /* 0x28C4 */ fopMsgM_pane_class mClPane; + /* 0x28FC */ fopMsgM_pane_class mCi22Pane; + /* 0x2934 */ fopMsgM_pane_class mCi21Pane; + /* 0x296C */ fopMsgM_pane_class mCi32Pane; + /* 0x29A4 */ fopMsgM_pane_class mCi31Pane; + /* 0x29DC */ fopMsgM_pane_class mGtixPanes[2]; + /* 0x2A4C */ fopMsgM_pane_class mKk1xPanes[8]; + /* 0x2C0C */ fopMsgM_pane_class mKk3xPanes[8]; + /* 0x2DCC */ fopMsgM_pane_class mAreaPane; + /* 0x2E04 */ fopMsgM_pane_class mLnk1Pane; + /* 0x2E3C */ fopMsgM_pane_class mSpi1Pane; + /* 0x2E74 */ fopMsgM_pane_class mKkdmPane; + /* 0x2EAC */ fopMsgM_pane_class mSmskPane; + /* 0x2EE4 */ fopMsgM_pane_class mLnk2Pane; + /* 0x2F1C */ fopMsgM_pane_class mSpi2Pane; + /* 0x2F54 */ fopMsgM_pane_class mTsw1Pane; + /* 0x2F8C */ fopMsgM_pane_class mR01bPane; + /* 0x2FC4 */ fopMsgM_pane_class mStm1Pane; + /* 0x2FFC */ fopMsgM_pane_class mKtx1Pane; + /* 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; + /* 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; + /* 0x34CC */ fopMsgM_pane_class mFmnPanes[15]; + /* 0x3814 */ fopMsgM_pane_class mClgPane; + /* 0x384C */ fopMsgM_pane_class mSc2xPanes[7]; + /* 0x39D4 */ fopMsgM_pane_class mR0xPanes[11]; + /* 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; + /* 0x48B4 */ fopMsgM_pane_class mKr0xPanes[8]; + /* 0x4A74 */ fopMsgM_pane_class mWnd1Pane; + /* 0x4AAC */ fopMsgM_pane_class mWnd2Pane; + /* 0x4AE4 */ fopMsgM_pane_class mMr01Pane; + /* 0x4B1C */ fopMsgM_pane_class mAreaTxtPanes[3]; + /* 0x4BC4 */ fopMsgM_pane_class mBt00Pane; + /* 0x4BFC */ fopMsgM_pane_class mBt01Pane; + /* 0x4C34 */ fopMsgM_pane_class mBt02Pane; + /* 0x4C6C */ fopMsgM_pane_class mWts1Pane; + /* 0x4CA4 */ fopMsgM_pane_class mCc01Pane; + /* 0x4CDC */ fopMsgM_pane_class mWt1Pane; + /* 0x4D14 */ fopMsgM_pane_class mWt0Pane; + /* 0x4D4C */ fopMsgM_pane_class mYs01Pane; + /* 0x4D84 */ fopMsgM_pane_class mYs00Pane; + /* 0x4DBC */ fopMsgM_pane_class mYsk0Pane; + /* 0x4DF4 */ fopMsgM_pane_class mYesPane; + /* 0x4E2C */ fopMsgM_pane_class mNo01Pane; + /* 0x4E64 */ fopMsgM_pane_class mNo00Pane; + /* 0x4E9C */ fopMsgM_pane_class mNok0Pane; + /* 0x4ED4 */ fopMsgM_pane_class mNoPane; + /* 0x4F0C */ fopMsgM_pane_class mCur1Pane; + /* 0x4F44 */ fopMsgM_pane_class mGsPanes[7]; + /* 0x50CC */ STControl* stick; /* 0x50D0 */ JUTFont* mFont; /* 0x50D4 */ JUTFont* mRFont; - /* 0x50D8 */ u8 padding_0x50D8[0x5148 - 0x50D8]; - /* 0x5148 */ char* name[2]; - /* 0x5150 */ u8 padding_0x5150[0x5154 - 0x5150]; - /* 0x5154 */ char* note[2]; - /* 0x515C */ char* dummy[2]; - /* 0x5164 */ u8 padding_0x5164[0x5194 - 0x5164]; - /* 0x5194 */ JUtility::TColor color_0x5194; - /* 0x5198 */ JUtility::TColor color_0x5198; - /* 0x519C */ JUtility::TColor color_0x519C; - /* 0x51A0 */ JUtility::TColor color_0x51A0; - /* 0x51A4 */ JUtility::TColor color_0x51A4; - /* 0x51A8 */ JUtility::TColor color_0x51A8; - /* 0x51AC */ u8 padding_0x51AC[0x51B4 - 0x51AC]; + /* 0x50D8 */ JPABaseEmitter* mMainWarpPane; + /* 0x50DC */ JPABaseEmitter* mWarpPanes[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; + /* 0x5113 */ u8 mMainProcIdx; + /* 0x5114 */ u8 mFmapProcIdx; + /* 0x5115 */ u8 mHikakuProcIdx; + /* 0x5116 */ s16 mFrameTimer; + /* 0x5118 */ s8 mGridX; + /* 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; + /* 0x513C */ bool mFullMapMode; + /* 0x513D */ u8 mSalvItmBufIdx; + /* 0x513E */ u8 mSalvItmTimer; + /* 0x513F */ bool mSalvItmChanging; + /* 0x5140 */ u8 mAreaTxtBufIdx; + /* 0x5141 */ u8 mAreaTxtTimer; + /* 0x5142 */ bool mAreaTxtChanging; + /* 0x5143 */ u8 mWarpAnimTimer; + /* 0x5144 */ u8 mWarpBlinkToggle; + /* 0x5145 */ u8 padding_0x5145[0x5148-0x5145]; + /* 0x5148 */ char* mTxtName[3]; + /* 0x5154 */ char* mTxtNote[2]; + /* 0x515C */ char* mTxtDummy[2]; + /* 0x5164 */ bool mWarpScrollGuard; + /* 0x5165 */ bool mWarpAnimActive; + /* 0x5166 */ u8 mBlackAlpha; + /* 0x5167 */ u8 mWhiteAlpha; + /* 0x5168 */ bool mMapSelectActive; + /* 0x5169 */ bool mZoomLocked; + /* 0x516A */ bool mInputDisabled; + /* 0x516B */ u8 mFmapMode; + /* 0x516C */ u8 mWarpProcIdx; + /* 0x516D */ u8 mWarpSubState; + /* 0x516E */ u8 padding_0x516E[0x5176-0x516E]; + /* 0x5176 */ u8 mFrameCounter; + /* 0x5177 */ u8 mFishmanProcIdx; + /* 0x5178 */ u8 mFishmanTimer1; + /* 0x5179 */ u8 mFishmanTimer2; + /* 0x517A */ u8 mFishmanTimer3; + /* 0x517B */ u8 mFishmanMsgTimer; + /* 0x517C */ u8 mFishmanMsgToggle; + /* 0x517D */ u8 padding_0x517D[0x517F-0x517D]; + /* 0x517F */ bool mFishmanActive; + /* 0x5180 */ u8 field_0x5180; + /* 0x5181 */ u8 mButtonIconMode; + /* 0x5182 */ u8 field_0x5182; + /* 0x5183 */ bool field_0x5183; + /* 0x5184 */ bool field_0x5184; + /* 0x5185 */ bool field_0x5185; + /* 0x5186 */ bool field_0x5186; + /* 0x5187 */ u8 padding_0x5187[0x518C-0x5187]; + /* 0x518C */ char* mpKtx1String; + /* 0x5190 */ char* mpKtx2String; + /* 0x5194 */ JUtility::TColor mCk1Color; + /* 0x5198 */ JUtility::TColor mCk1Color2; + /* 0x519C */ JUtility::TColor mKr0Color; + /* 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; + /* 0x51B1 */ u8 padding_0x51B1[0x51B4-0x51B1]; }; // Size: 0x51B4 STATIC_ASSERT(sizeof(dMenu_Fmap_c) == 0x51B4); -class dMf_HIO_c { +class dMf_HIO_c : public JORReflexible { public: dMf_HIO_c(); + virtual ~dMf_HIO_c() {} + +public: + /* 0x004 */ s8 mNo; + /* 0x005 */ u8 field_0x05; + /* 0x006 */ u8 field_0x06; + /* 0x007 */ u8 field_0x07; + /* 0x008 */ u8 field_0x08; + /* 0x009 */ GXColor field_0x09; + /* 0x00D */ GXColor field_0x0D; + /* 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; + /* 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; + /* 0x03D */ u8 field_0x3D; + /* 0x03E */ u8 field_0x3E; + /* 0x03F */ u8 field_0x3F; + /* 0x040 */ u8 field_0x40; + /* 0x041 */ u8 field_0x41; + /* 0x042 */ u8 field_0x42; + /* 0x043 */ u8 field_0x43; + /* 0x044 */ s16 field_0x44; + /* 0x046 */ u8 field_0x46; + /* 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; + /* 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; + /* 0x0A0 */ f32 field_0xA0; + /* 0x0A4 */ f32 field_0xA4; + /* 0x0A8 */ f32 field_0xA8; + /* 0x0AC */ f32 field_0xAC; + /* 0x0B0 */ f32 field_0xB0; + /* 0x0B4 */ f32 field_0xB4; + /* 0x0B8 */ f32 field_0xB8; + /* 0x0BC */ f32 field_0xBC; + /* 0x0C0 */ f32 field_0xC0; + /* 0x0C4 */ f32 field_0xC4; + /* 0x0C8 */ f32 field_0xC8; + /* 0x0CC */ f32 field_0xCC; + /* 0x0D0 */ f32 field_0xD0; + /* 0x0D4 */ f32 field_0xD4; + /* 0x0D8 */ f32 field_0xD8; + /* 0x0DC */ f32 field_0xDC; + /* 0x0E0 */ u8 field_0xE0; + /* 0x0E1 */ GXColor field_0xE1; + /* 0x0E5 */ GXColor field_0xE5; + /* 0x0E9 */ u8 field_0xE9; + /* 0x0EA */ GXColor field_0xEA; + /* 0x0EE */ GXColor field_0xEE; + /* 0x0F2 */ u8 field_0xF2; + /* 0x0F3 */ GXColor field_0xF3; + /* 0x0F7 */ GXColor field_0xF7; + /* 0x0FB */ u8 field_0xFB; + /* 0x0FC */ GXColor field_0xFC; + /* 0x100 */ GXColor field_0x100; + /* 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; + /* 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; + /* 0x11F */ u8 padding_0x11F[0x120 - 0x11F]; }; +extern dMf_HIO_c g_mfHIO; + #endif /* D_MENU_FMAP_H */ diff --git a/include/d/d_menu_fmap2.h b/include/d/d_menu_fmap2.h index 6a44db4e..b351bf06 100644 --- a/include/d/d_menu_fmap2.h +++ b/include/d/d_menu_fmap2.h @@ -2,6 +2,8 @@ #define D_MENU_FMAP2_H #include "dolphin/types.h" +#include "d/d_drawlist.h" +#include "dolphin/types.h" struct fopMsgM_pane_class; class J2DScreen; @@ -9,6 +11,8 @@ struct ResTIMG; class aramCmapDat_c; class dMenu_FmapSv_c; +struct aramCmapDatPat_t; + class dDlst_FMAP2GS_c : public dDlst_base_c { public: virtual ~dDlst_FMAP2GS_c() {} @@ -35,7 +39,7 @@ public: void getCtCurY() {} void getCtDispMode() {} void lineInter0to1ForU8(unsigned char, unsigned char, float) {} - void setAramCmapDat(aramCmapDat_c*) {} + void setAramCmapDat(aramCmapDatPat_t* i_ptr) { mpFmapDatPnt = i_ptr; } void setCtActive(unsigned char) {} void setCtCmapSelNo(signed char) {} void setCtCurHX(signed char) {} @@ -88,8 +92,8 @@ public: void cmapAlphaSet(); void changeZoomCmap(); void ChangeProcMode(); - void _open(); - void _close(); + bool _open(); + bool _close(); void _draw(); void _delete(); void fCursorInit(); @@ -142,10 +146,10 @@ public: void calcFinCollectMap(); void getNowCmapFirstNum(); void getNowCmapNextNum(signed char, int); - void getCmapDatPnt4(int); + aramCmapDatPat_t* getCmapDatPnt4(int); void readPaneCmapTexture(const ResTIMG*, int); void readFmapTexture(const char*); - void getButtonIconMode(); + int getButtonIconMode(); void isLockBbutton(); void isGetCollectMap(signed char); void isOpenCollectMap(signed char); @@ -154,8 +158,10 @@ public: void isCompleteCollectMap(signed char); public: - /* 0x0004 */ u8 padding_0x4[0x1C - 0x4]; - /* 0x001C */ void* mpFmapDatPnt; + /* 0x0004 */ u8 padding_0x4[0x10 - 0x4]; + /* 0x0010 */ dMenu_FmapSv_c* fmapSv; + /* 0x0014 */ u8 padding_0x14[0x1C - 0x14]; + /* 0x001C */ aramCmapDatPat_t* mpFmapDatPnt; /* 0x0020 */ dDlst_FMAP2_c mDlst; /* 0x0024 */ u8 padding_0x24[0x28 - 0x24]; /* 0x0028 */ dDlst_FMAP2GS_c mDlstGs; diff --git a/include/d/d_menu_fmap_sv.h b/include/d/d_menu_fmap_sv.h index 52071d1c..dfffba20 100644 --- a/include/d/d_menu_fmap_sv.h +++ b/include/d/d_menu_fmap_sv.h @@ -6,61 +6,60 @@ class dMenu_FmapSv_c { public: dMenu_FmapSv_c() { - field_0x0 = 0; - field_0x1 = 0; - field_0x2 = -10; - field_0x3 = -10; - field_0x4 = -10; - field_0x5 = -10; - field_0x6 = -10; - field_0x7 = -10; - field_0x8 = 0; - field_0x9 = -1; - field_0xA = -10; - field_0xB = -10; + active = 0; + cmapSelNo = 0; + curX = -10; + curY = -10; + curWX = -10; + curWY = -10; + curHX = -10; + curHY = -10; + dispMode = 0; + fmapZoom = -1; + zoomGridX = -10; + zoomGridY = -10; } ~dMenu_FmapSv_c() {} - // TODO - u8 getActive() {} - void setActive(u8 val) {} - s8 getCmapSelNo() {} - void setCmapSelNo(s8 val) {} - s8 getCurX() {} - void setCurX(s8 val) {} - s8 getCurY() {} - void setCurY(s8 val) {} - s8 getCurWX() {} - void setCurWX(s8 val) {} - s8 getCurWY() {} - void setCurWY(s8 val) {} - s8 getCurHX() {} - void setCurHX(s8 val) {} - s8 getCurHY() {} - void setCurHY(s8 val) {} - u8 getDispMode() {} - void setDispMode(u8 val) {} - u8 getFmapZoom() {} - void setFmapZoom(u8 val) {} - s8 getZoomGridX() {} - void setZoomGridX(s8 val) {} - s8 getZoomGridY() {} - void setZoomGridY(s8 val) {} + s8 getActive() { return active; } + void setActive(s8 val) { active = val; } + s8 getCmapSelNo() { return cmapSelNo; } + void setCmapSelNo(s8 val) { cmapSelNo = val; } + s8 getCurX() { return curX; } + void setCurX(s8 val) { curX = val; } + s8 getCurY() { return curY; } + void setCurY(s8 val) { curY = val; } + s8 getCurWX() { return curWX; } + void setCurWX(s8 val) { curWX = val; } + s8 getCurWY() { return curWY; } + void setCurWY(s8 val) { curWY = val; } + s8 getCurHX() { return curHX; } + void setCurHX(s8 val) { curHX = val; } + s8 getCurHY() { return curHY; } + void setCurHY(s8 val) { curHY = val; } + s8 getDispMode() { return dispMode; } + void setDispMode(s8 val) { dispMode = val; } + s8 getFmapZoom() { return fmapZoom; } + void setFmapZoom(s8 val) { fmapZoom = val; } + s8 getZoomGridX() { return zoomGridX; } + void setZoomGridX(s8 val) { zoomGridX = val; } + s8 getZoomGridY() { return zoomGridY; } + void setZoomGridY(s8 val) { zoomGridY = val; } public: - /* 0x0 */ s8 field_0x0; - /* 0x1 */ s8 field_0x1; - /* 0x2 */ s8 field_0x2; - /* 0x3 */ s8 field_0x3; - /* 0x4 */ s8 field_0x4; - /* 0x5 */ s8 field_0x5; - /* 0x6 */ s8 field_0x6; - /* 0x7 */ s8 field_0x7; - /* 0x8 */ s8 field_0x8; - /* 0x9 */ s8 field_0x9; - /* 0xA */ s8 field_0xA; - /* 0xB */ s8 field_0xB; + /* 0x0 */ s8 active; + /* 0x1 */ s8 cmapSelNo; + /* 0x2 */ s8 curX; + /* 0x3 */ s8 curY; + /* 0x4 */ s8 curWX; + /* 0x5 */ s8 curWY; + /* 0x6 */ s8 curHX; + /* 0x7 */ s8 curHY; + /* 0x8 */ s8 dispMode; + /* 0x9 */ s8 fmapZoom; + /* 0xA */ s8 zoomGridX; + /* 0xB */ s8 zoomGridY; }; #endif //D_MENU_FMAP_SV_H diff --git a/include/d/d_save_event_flag.inc b/include/d/d_save_event_flag.inc index fd99336c..8e52ca33 100644 --- a/include/d/d_save_event_flag.inc +++ b/include/d/d_save_event_flag.inc @@ -510,7 +510,7 @@ public: /* 0x85FF */ UNK_85FF = 0x85FF, /* 0x86FF */ UNK_86FF = 0x86FF, /* 0x870F */ UNK_870F = 0x870F, - /* 0x8803 */ UNK_8803 = 0x8803, + /* 0x8803 */ GHOST_SHIP = 0x8803, /* 0x89FF */ UNK_89FF = 0x89FF, /* 0x8AFF */ UNK_8AFF = 0x8AFF, /* 0x8B03 */ LETTER_ARYLL = 0x8B03, |
