diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-10-10 07:29:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-10 08:29:58 -0600 |
| commit | 12eb254d769d84743b5cc6cd5424057c57eaf0ad (patch) | |
| tree | 4509be332b2ccfc6fe939f47740d68f7746eca3e /include/d/d_menu_fmap2D.h | |
| parent | 2fd702c0ac170a789af879b8b92a82d4dcc9080c (diff) | |
switch to dtk setup (#2203)
* switch to dtk setup
* some cleanup / fixes
* cleanup d_a_alink literals
* Restore doxygen, update CI & README.md (#1)
* Fix build image ref (#2)
---------
Co-authored-by: Luke Street <luke@street.dev>
Diffstat (limited to 'include/d/d_menu_fmap2D.h')
| -rw-r--r-- | include/d/d_menu_fmap2D.h | 407 |
1 files changed, 407 insertions, 0 deletions
diff --git a/include/d/d_menu_fmap2D.h b/include/d/d_menu_fmap2D.h new file mode 100644 index 0000000000..01c27cf337 --- /dev/null +++ b/include/d/d_menu_fmap2D.h @@ -0,0 +1,407 @@ +#ifndef D_MENU_D_MENU_FMAP2D_H +#define D_MENU_D_MENU_FMAP2D_H + +#include "JSystem/JUtility/TColor.h" +#include "d/d_map_path_fmap.h" +#include "d/d_menu_fmap_map.h" +#include "d/d_menu_map_common.h" +#include "d/d_meter_haihai.h" +#include "d/d_pane_class.h" +#include "dolphin/types.h" + +class dMsgScrnExplain_c; + +class dMenu_Fmap2DBack_c : public dDlst_base_c, public dMenuMapCommon_c { +public: + /* 801CF56C */ dMenu_Fmap2DBack_c(); + /* 801D0804 */ void setRegionTexData(u8, ResTIMG*, f32, f32, f32, f32, f32, f32, f32, f32, f32); + /* 801D0AC8 */ void calcAllMapPos(); + /* 801D0BF8 */ f32 calcAllMapScaleRate(); + /* 801D0C6C */ void calcAllMapPos2DFirst(f32, f32, f32*, f32*); + /* 801D0E00 */ void calcAllMapPos2D(f32, f32, f32*, f32*, f32, f32, f32); + /* 801D0D18 */ void calcAllMapPos2D(f32, f32, f32*, f32*); + /* 801D0D50 */ void calcAllMapPos2D(char const*, f32, f32, f32*, f32*); + /* 801D0F7C */ void calcAllMapPosWorld(f32, f32, f32*, f32*); + /* 801D1094 */ void setSpotPane(ResTIMG*); + /* 801D10F4 */ void deleteSpotPane(); + /* 801D1148 */ void zoomMapCalc(f32); + /* 801D1478 */ void zoomMapCalc2(f32); + /* 801D1858 */ void zoomMapCalcHIO(); + /* 801D1AA4 */ void scrollCalc(f32); + /* 801D1D50 */ void mapBlink(s16*); + /* 801D1D74 */ void setSpotCursor(u8); + /* 801D1DC4 */ void allmap_move2(STControl*); + /* 801D2100 */ void setIcon2DPos(u8, f32, f32, f32, u8, bool); + /* 801D241C */ void setIcon2DPos(u8, char const*, f32, f32, f32, u8, bool); + /* 801D2454 */ void setIcon2DPos(u8, u8, char const*, f32, f32, f32, u8, bool); + /* 801D2508 */ int isShowRegion(int); + /* 801D2658 */ f32 getMapAreaGlobalPosX(); + /* 801D2668 */ f32 getMapAreaGlobalPosY(); + /* 801D2678 */ f32 getMapAreaGlobalCenterPosX(); + /* 801D26C8 */ f32 getMapAreaGlobalCenterPosY(); + /* 801D2718 */ f32 getMapAreaSizeX(); + /* 801D2728 */ f32 getMapAreaSizeY(); + /* 801D2738 */ f32 getMapScissorAreaLX(); + /* 801D2790 */ f32 getMapScissorAreaLY(); + /* 801D27E8 */ f32 getMapScissorAreaSizeX(); + /* 801D2860 */ f32 getMapScissorAreaSizeRealX(); + /* 801D2880 */ f32 getMapScissorAreaCenterPosX(); + /* 801D28D0 */ f32 getMapScissorAreaCenterPosY(); + /* 801D2920 */ f32 getMapScissorAreaSizeY(); + /* 801D2998 */ f32 getMapScissorAreaSizeRealY(); + /* 801D29B8 */ void calcRenderingPos(); + /* 801D2A34 */ void calcRenderingScale(); + /* 801D2AC8 */ f32 getPathScale(f32); + /* 801D2B5C */ f32 getAllMapZoomRate(); + /* 801D2B64 */ f32 getRegionMapZoomRate(int); + /* 801D2C4C */ f32 getSpotMapZoomRate(); + /* 801D2C88 */ void getStageOriginPath(u8, f32*, f32*); + /* 801D2CC8 */ void calcOffset(u8, char const*, f32*, f32*); + /* 801D2DA8 */ void regionTextureDraw(); + /* 801D3094 */ void stageTextureDraw(); + /* 801D31D0 */ void worldGridDraw(); + /* 801D34DC */ void regionGridDraw(); + /* 801D382C */ void worldOriginDraw(); + /* 801D38FC */ void scrollAreaDraw(); + /* 801D3AF8 */ void regionOriginDraw(); + /* 801D3BBC */ void stageOriginDraw(); + /* 801D3CB8 */ void calcBlink(); + /* 801D4928 */ void calcBackAlpha(bool); + /* 801D49E0 */ void btkAnimeLoop(f32); + /* 801D4AFC */ void setBaseBackAlpha(u8); + /* 801D4B2C */ void regionMapMove(STControl*); + /* 801D4E80 */ void stageMapMove(STControl*, u8, bool); + /* 801D5334 */ void setAllAlphaRate(f32, bool); + /* 801D5388 */ void drawDebugStageArea(); + /* 801D564C */ void drawDebugRegionArea(); + /* 801D58F8 */ void setArrowPos3D(u8, char const*, f32, f32); + /* 801D59C0 */ void setArrowPos3DOffset(u8, char const*, f32, f32, f32); + /* 801D5AC4 */ void calcDrawPriority(); + /* 801D5BB8 */ void setArrowPosAxis(f32, f32); + + /* 801CFF34 */ virtual void draw(); + /* 801CFCDC */ virtual ~dMenu_Fmap2DBack_c(); + + void setDebugData(dMenu_FmapMap_c* fmap_map, dMenu_Fmap_region_data_c* region_data, + int param_2) { + mpFmapMap = fmap_map; + mpRegionData = region_data; + field_0x1244 = param_2; + } + + void setAllTrans(f32 i_transX, f32 i_transZ) { + mTransX = i_transX; + mTransZ = i_transZ; + } + + void setStageTransForceXZ(f32 param_0, f32 param_1) { + mStageTransX = param_0; + mStageTransZ = param_1; + } + + void setStageInfo(u8 i_spotNum, dMenu_FmapMap_c* i_fmapMap) { + mSpotNum = i_spotNum; + mpMenuFmapMap = i_fmapMap; + } + + void setWorldPosMinMax(f32 i_minX, f32 i_minZ, f32 i_maxX, f32 i_maxZ) { + mWorldMinX = i_minX; + mWorldMinZ = i_minZ; + mWorldMaxX = i_maxX; + mWorldMaxZ = i_maxZ; + } + + void setStageOriginXZ(int i_stageNo, f32 i_originX, f32 i_originZ) { + mStageOriginX[i_stageNo] = i_originX; + mStageOriginZ[i_stageNo] = i_originZ; + } + + void setStageOriginPathXZ(int i_stageNo, f32 i_originX, f32 i_originZ) { + mStageOriginPathX[i_stageNo] = i_originX; + mStageOriginPathZ[i_stageNo] = i_originZ; + } + + void setStageData(Stage_c* i_stageData, u8 i_dataNum) { + mpStages = i_stageData; + mStageDataNum = i_dataNum; + } + + void setRegionTextureReadNum(int i_region, u8 i_num) { + mRegionTextureReadNum[i_region] = i_num; + } + + f32 getArrowPos2DX() { return mArrowPos2DX; } + f32 getArrowPos2DY() { return mArrowPos2DY; } + f32 getRenderingPosX() { return mRenderingPosX; } + f32 getRenderingPosZ() { return mRenderingPosZ; } + f32 getStageTransX() { return mStageTransX; } + f32 getStageTransZ() { return mStageTransZ; } + f32 getRenderingScale() { return mRenderingScale; } + f32 getMapZoomRate() { return mMapZoomRate; } + u8 getRegionCursor() { return mRegionCursor; } + u8 getSpotCursor() { return mSpotCursor; } + u8 getSelectRegion() { return mSelectRegion; } + bool getAllPathShowFlag() { return mAllPathShowFlag; } + f32 getRegionOriginX(u8 i_region) { return mRegionOriginX[i_region]; } + f32 getRegionOriginZ(u8 i_region) { return mRegionOriginZ[i_region]; } + + void setArrowAlpha(f32 i_alpha) { mArrowAlpha = i_alpha; } + void setSpotTextureFadeAlpha(f32 i_alpha) { mSpotTextureFadeAlpha = i_alpha; } + void setRegionCursor(u8 i_value) { mRegionCursor = i_value; } + void setMapDrawFlag(bool i_flag) { mMapDrawFlag = i_flag; } + void resetDrug() { field_0x1238 = 0; } + + void offArrowDrawFlag() { mArrowDrawFlag = false; } + void onArrowDrawFlag() { mArrowDrawFlag = true; } + bool isArrowDrawFlag() { return mArrowDrawFlag; } + + void onShowRegionFlag(int region_bit) { mRegionFlag |= ((1 << region_bit) & 0xFF); } + bool isShowRegionFlag(int region_bit) { return mRegionFlag & ((1 << region_bit) & 0xFF); } + + void mapBlink() {} + + // Unknown name + struct RegionTexData { + /* 0x00 */ float mMinX; + /* 0x04 */ float mMinZ; + /* 0x08 */ float mMaxX; + /* 0x0C */ float mMaxZ; + /* 0x10 */ float mScale; + }; + + /* 0x0C98 */ J2DScreen* mpBackScreen; + /* 0x0C9C */ J2DScreen* mpBaseScreen; + /* 0x0CA0 */ CPaneMgrAlphaMorf* mpBaseRoot; + /* 0x0CA4 */ CPaneMgr* mpMapArea; + /* 0x0CA8 */ CPaneMgr* mpMapBlack; + /* 0x0CAC */ CPaneMgr* mpPointParent; + /* 0x0CB0 */ J2DPicture* mpBackTex; + /* 0x0CB4 */ J2DPicture* mpAreaTex[8]; + /* 0x0CD4 */ J2DPicture* mpSpotTexture; + /* 0x0CD8 */ J2DScreen* mpPointScreen; + /* 0x0CDC */ dMenu_FmapMap_c* mpMenuFmapMap; + /* 0x0CE0 */ dMeterHaihai_c* mpMeterHaihai; + /* 0x0CE4 */ J2DAnmTextureSRTKey* mpBaseAnm; + /* 0x0CE8 */ RegionTexData mRegionTexData[8]; + /* 0x0D88 */ Stage_c* mpStages; + /* 0x0D8C */ float mRegionScrollMinX[8]; + /* 0x0D0C */ float mRegionScrollMinZ[8]; + /* 0x0D0C */ float mRegionScrollMaxX[8]; + /* 0x0D0C */ float mRegionScrollMaxZ[8]; + /* 0x0E0C */ float mRegionScrollMapMinX[8]; + /* 0x0E2C */ float mRegionScrollMapMinY[8]; + /* 0x0E4C */ float mRegionScrollMapMaxX[8]; + /* 0x0E6C */ float mRegionScrollMapMaxY[8]; + /* 0x0E8C */ float mRegionMinMapX[8]; + /* 0x0EAC */ float mRegionMinMapY[8]; + /* 0x0ECC */ float mRegionMapSizeX[8]; + /* 0x0EEC */ float mRegionMapSizeY[8]; + /* 0x0F0C */ float field_0xf0c[8]; + /* 0x0F2C */ float field_0xf2c[8]; + /* 0x0F4C */ float field_0xf4c[8]; + /* 0x0F6C */ float field_0xf6c[8]; + /* 0x0F8C */ float mRenderingPosX; + /* 0x0F90 */ float mRenderingPosZ; + /* 0x0F94 */ float mRenderingScale; + /* 0x0F98 */ float field_0xf98; + /* 0x0F9C */ float mZoom; + /* 0x0FA0 */ float mMapZoomRate; + /* 0x0FA4 */ float field_0xfa4; + /* 0x0FA8 */ float field_0xfa8; + /* 0x0FAC */ float mAnmFrame; + /* 0x0FB0 */ float field_0xfb0; + /* 0x0FB4 */ float field_0xfb4; + /* 0x0FB8 */ float field_0xfb8; + /* 0x0FBC */ float mTransX; + /* 0x0FC0 */ float mTransZ; + /* 0x0FC4 */ float mAlphaRate; + /* 0x0FC8 */ float mStageTransX; + /* 0x0FCC */ float mStageTransZ; + /* 0x0FD0 */ float field_0xfd0; + /* 0x0FD4 */ float field_0xfd4; + /* 0x0FD8 */ float field_0xfd8; + /* 0x0FDC */ float field_0xfdc; + /* 0x0FE0 */ float mTexMinX; + /* 0x0FE4 */ float mTexMinZ; + /* 0x0FE8 */ float mTexMaxX; + /* 0x0FEC */ float mTexMaxZ; + /* 0x0FF0 */ float mAllMapScaleRate; + /* 0x0FF4 */ float mWorldMinX; + /* 0x0FF8 */ float mWorldMinZ; + /* 0x0FFC */ float mWorldMaxX; + /* 0x1000 */ float mWorldMaxZ; + /* 0x1004 */ float mRegionOriginX[8]; + /* 0x1024 */ float mRegionOriginZ[8]; + /* 0x1044 */ float mStageOriginX[20]; + /* 0x1094 */ float mStageOriginZ[20]; + /* 0x10E4 */ float mStageOriginPathX[20]; + /* 0x1134 */ float mStageOriginPathZ[20]; + /* 0x1184 */ float field_0x1184; + /* 0x1188 */ float field_0x1188; + /* 0x118C */ float mArrowPos3DX; + /* 0x1190 */ float mArrowPos3DZ; + /* 0x1194 */ float mArrowPos2DX; + /* 0x1198 */ float mArrowPos2DY; + /* 0x119C */ float control_xpos; + /* 0x11A0 */ float control_ypos; + /* 0x11A4 */ float field_0x11a4; + /* 0x11A8 */ float field_0x11a8; + /* 0x11AC */ float field_0x11ac; + /* 0x11B0 */ float field_0x11b0; + /* 0x11B4 */ float field_0x11b4; + /* 0x11B8 */ float field_0x11b8; + /* 0x11BC */ float field_0x11bc; + /* 0x11C0 */ float field_0x11c0; + /* 0x11C4 */ float field_0x11c4; + /* 0x11C8 */ float field_0x11c8; + /* 0x11CC */ float field_0x11cc; + /* 0x11D0 */ float field_0x11d0; + /* 0x11D4 */ float mArrowAlpha; + /* 0x11D8 */ float mSpotTextureFadeAlpha; + /* 0x11DC */ float field_0x11dc; + /* 0x11E0 */ float field_0x11e0; + /* 0x11E4 */ float mBackAlpha; + /* 0x11E8 */ float field_0x11e8; + /* 0x11EC */ float field_0x11ec; + /* 0x11F0 */ JUtility::TColor mSelectedRegionBlack; + /* 0x11F4 */ JUtility::TColor mSelectedRegionWhite; + /* 0x11F8 */ JUtility::TColor mUnselectedRegionBlack; + /* 0x11FC */ JUtility::TColor mUnselectedRegionWhite; + /* 0x1200 */ JUtility::TColor mUnreachedRegionBlack; + /* 0x1204 */ JUtility::TColor mUnreachedRegionWhite; + /* 0x1208 */ JUtility::TColor field_0x1208; + /* 0x120C */ JUtility::TColor field_0x120c; + /* 0x1210 */ float field_0x1210; + /* 0x1214 */ float field_0x1214; + /* 0x1218 */ s16 field_0x1218; + /* 0x121A */ s16 field_0x121a; + /* 0x121C */ u8 mRegionTextureReadNum[8]; + /* 0x1224 */ u8 mSpotNum; + /* 0x1225 */ u8 mStageDataNum; + /* 0x1226 */ u8 mSelectRegion; + /* 0x1227 */ u8 mRegionCursor; + /* 0x1228 */ u8 field_0x1228; + /* 0x1229 */ u8 mSpotCursor; + /* 0x122A */ u8 field_0x122a; + /* 0x122B */ u8 field_0x122b; + /* 0x122C */ u8 mRegionFlag; + /* 0x122D */ u8 field_0x122d; + /* 0x122E */ bool field_0x122e; + /* 0x122F */ bool mAllPathShowFlag; + /* 0x1230 */ u8 field_0x1230[8]; + /* 0x1238 */ u8 field_0x1238; + /* 0x1239 */ bool mMapDrawFlag; + /* 0x123A */ bool mArrowDrawFlag; + /* 0x123B */ u8 field_0x123b; + /* 0x123C */ dMenu_FmapMap_c* mpFmapMap; + /* 0x1240 */ dMenu_Fmap_region_data_c* mpRegionData; + /* 0x1244 */ s32 field_0x1244; +}; + +class dMenu_Fmap2DTop_c : public dDlst_base_c { +public: + /* 801D5BD0 */ dMenu_Fmap2DTop_c(JKRExpHeap*, STControl*); + /* 801D6A44 */ void _execute(); + /* 801D6C44 */ void setAllAlphaRate(f32, bool); + /* 801D6DF8 */ void btkAnimeLoop(J2DAnmTextureSRTKey*, f32); + /* 801D6EDC */ void setMoyaAlpha(u8); + /* 801D6F38 */ void setTitleNameString(u32); + /* 801D7010 */ void setAreaNameString(u32); + /* 801D70E8 */ void setZButtonString(u32, u8); + /* 801D7210 */ void setBButtonString(u32, u8); + /* 801D72D4 */ void setAButtonString(u32, u8); + /* 801D7398 */ void setCrossLRString(u32); + /* 801D74EC */ void set3DStickString(u32); + /* 801D7640 */ void createExplain(JKRExpHeap*, STControl*); + /* 801D76C0 */ void deleteExplain(); + /* 801D7714 */ void setArrowAlphaRatio(u8, f32); + /* 801D77C4 */ void setAlphaAnimeMin(CPaneMgrAlpha*); + /* 801D7858 */ void setAlphaAnimeMid(CPaneMgrAlpha*); + /* 801D78FC */ void setAlphaAnimeMax(CPaneMgrAlpha*); + /* 801D7994 */ bool checkPlayerWarpAccept(); + /* 801D7A08 */ bool checkWarpAcceptRegion(int); + /* 801D7AB4 */ bool checkWarpAcceptRegion4(); + /* 801D7B58 */ bool checkWarpAcceptCannon(); + /* 801D7BCC */ void setHIO(bool); + /* 801D8088 */ bool isWarpAccept(); + + /* 801D6C98 */ virtual void draw(); + /* 801D6700 */ virtual ~dMenu_Fmap2DTop_c(); + + void setAllTrans(f32 i_transX, f32 i_transY) { + mTransX = i_transX; + mTransY = i_transY; + } + + dMsgScrnExplain_c* getScrnExplainPtr() { return mpScrnExplain; } + + void setPortalBin(void* i_bin) { mpPortalBin = i_bin; } + void btkAnimeLoop(f32 i_delta) { btkAnimeLoop(mpAnm, i_delta); } + + enum Arrow { + ARROW_UP = 1, + ARROW_DOWN = 2, + ARROW_UPDOWN = ARROW_UP | ARROW_DOWN, + ARROW_LEFT = 4, + ARROW_RIGHT = 8, + ARROW_LEFTRIGHT = ARROW_LEFT | ARROW_RIGHT, + }; + + enum Alpha { + ALPHA_MIN = 0, + ALPHA_MID = 1, + ALPHA_MAX = 2, + ALPHA_DEFAULT = 0xFF, + }; + + /* 0x04 */ JKRExpHeap* mpHeap; + /* 0x08 */ J2DScreen* mpTitleScreen; + /* 0x0C */ CPaneMgrAlphaMorf* mpTitleRoot; + /* 0x10 */ J2DAnmTextureSRTKey* mpAnm; + /* 0x14 */ u8 field_0x14[4]; + /* 0x18 */ CPaneMgr* mpButtonA; + /* 0x1C */ CPaneMgr* mpButtonB; + /* 0x20 */ CPaneMgr* mpButtonZ; + /* 0x24 */ CPaneMgr* mpButtonTextA; + /* 0x28 */ CPaneMgr* mpButtonTextB; + /* 0x2C */ CPaneMgr* mpButtonTextZ; + /* 0x30 */ CPaneMgrAlpha* mpAnalogStickAlpha; + /* 0x34 */ CPaneMgrAlpha* mpDpadAlpha; + /* 0x38 */ CPaneMgrAlpha* mpArrowLAlpha[2]; + /* 0x40 */ CPaneMgrAlpha* mpArrowRAlpha[2]; + /* 0x48 */ u8 field_0x48[8]; + /* 0x50 */ CPaneMgr* mpNamePane; + /* 0x54 */ CPaneMgr* mpSubPane; + /* 0x58 */ CPaneMgr* mpAnalogStick; + /* 0x5C */ CPaneMgr* mpDpad; + /* 0x60 */ CPaneMgr* mpContPane; + /* 0x64 */ u8 field_0x64[8]; + /* 0x6C */ dMsgScrnExplain_c* mpScrnExplain; + /* 0x70 */ void* mpPortalBin; + /* 0x74 */ f32 mAnmFrame; + /* 0x78 */ f32 mTransX; + /* 0x7C */ f32 mTransY; + /* 0x80 */ f32 mAlphaRate; + /* 0x84 */ f32 mTitlePosX; + /* 0x88 */ f32 mTitlePosY; + /* 0x8C */ f32 mTitleScale; + /* 0x90 */ f32 mSubTitlePosX; + /* 0x94 */ f32 mSubTitlePosY; + /* 0x98 */ f32 mSubTitleScale; + /* 0x9C */ f32 mAreaMovementPosX; + /* 0xA0 */ f32 mAreaMovementPosY; + /* 0xA4 */ f32 mAreaMovementScale; + /* 0xA8 */ f32 mClosingPosX; + /* 0xAC */ f32 mClosingPosY; + /* 0xB0 */ f32 mClosingScale; + /* 0xB4 */ f32 mDoIconPosX; + /* 0xB8 */ f32 mDoIconPosY; + /* 0xBC */ f32 mDoIconScale; + /* 0xC0 */ u8 mAlphaButtonA; + /* 0xC1 */ u8 mAlphaButtonB; + /* 0xC2 */ u8 mAlphaButtonZ; + /* 0xC3 */ u8 mAlphaAnalogStick; + /* 0xC4 */ u8 mAlphaDpad; + }; + +#endif /* D_MENU_D_MENU_FMAP2D_H */ |
