diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-02-17 11:47:45 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-17 20:47:45 +0100 |
| commit | fa3be5d11de6eff42205dc0af23b992cfc71df6e (patch) | |
| tree | 02d5e2acff805bc998d396b13d7803ed4a8a1793 /include/d/map | |
| parent | 8164c34142ebaafbd70ef0f8032343d25b1e58fc (diff) | |
d_map OK (#2074)
Diffstat (limited to 'include/d/map')
| -rw-r--r-- | include/d/map/d_map.h | 119 | ||||
| -rw-r--r-- | include/d/map/d_map_path.h | 19 | ||||
| -rw-r--r-- | include/d/map/d_map_path_dmap.h | 26 |
3 files changed, 151 insertions, 13 deletions
diff --git a/include/d/map/d_map.h b/include/d/map/d_map.h index f813cbc16e..357c91f889 100644 --- a/include/d/map/d_map.h +++ b/include/d/map/d_map.h @@ -1,6 +1,123 @@ #ifndef D_MAP_D_MAP_H #define D_MAP_D_MAP_H -#include "dolphin/types.h" +#include "d/map/d_map_path_dmap.h" +#include "d/d_tresure.h" + +class renderingAmap_c : public renderingPlusDoorAndCursor_c { +public: + /* 800288C4 */ int getDispType() const; + /* 80028BB4 */ bool isDrawOutSideTrim(); + /* 80028C4C */ int getOutSideBlackLineNumber(); + /* 80028C60 */ bool isOutSideBlackLine(); + /* 80028C90 */ int getLineWidthSub(int); + /* 80029160 */ int getStayType() const; + /* 8002AE6C */ renderingAmap_c() {} + + /* 800284D0 */ virtual void draw(); + /* 8002ADB0 */ virtual ~renderingAmap_c() {} + /* 80028EE4 */ virtual GXColor* getLineColor(int, int); + /* 80028DD4 */ virtual int getLineWidth(int); + /* 80028A10 */ virtual void drawPath(); + /* 80028A30 */ virtual void rendering(dDrawPath_c::line_class const*); + /* 80028B3C */ virtual void rendering(dDrawPath_c::poly_class const*); + /* 800289F0 */ virtual void rendering(dDrawPath_c::room_class const*); + /* 80028960 */ virtual void beforeDrawPath(); + /* 800289D0 */ virtual void afterDrawPath(); + /* 80028FB4 */ virtual const GXColor* getDecoLineColor(int, int); + /* 80028CF4 */ virtual s32 getDecorationLineWidth(int); + /* 80029058 */ virtual int getIconGroupNumber(u8) const; + /* 80029078 */ virtual bool hasMap() const; + /* 8002911C */ virtual bool isRendAllRoom() const; + /* 800290C0 */ virtual bool isRendDoor() const; + /* 80029104 */ virtual bool isCheckFloor() const; + /* 80029190 */ virtual bool isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const; + /* 8002910C */ virtual bool isRendRestart() const; + /* 80029114 */ virtual bool isRendCursor() const; + /* 8002B000 */ virtual bool isRendIcon() const { return true; } + /* 800284BC */ virtual f32 getIconSize(u8) const; + /* 80028B04 */ virtual f32 getPlayerCursorSize(); + /* 80028B10 */ virtual f32 getRestartCursorSize(); + virtual void setAmapPaletteColor(int, u8, u8, u8, u8) = 0; + virtual bool isSpecialOutline() = 0; + + static const int PALETTE_NUMBER = 50; + +private: + /* 0x34 */ s32 m_outSideBlackLineCnt; + /* 0x38 */ s32 field_0x38; + /* 0x3C */ s32 field_0x3c; +}; // Size: 0x40 + +struct dMap_prm_res_s; + +class dMap_c : public renderingAmap_c { +public: + /* 8002974C */ void copyPalette(); + /* 8002A064 */ void copyPalette(int, int, f32); + /* 80029F84 */ void setMapPaletteColorAlphaPer(int, f32); + /* 800297A8 */ void setMapPaletteColorAlphaPer(int, int, f32); + /* 80029818 */ void resCopy(); + /* 80029874 */ dMap_c(int, int, int, int); + /* 80029A1C */ void _remove(); + /* 80029A8C */ void getMapMinMaxXZ(int, f32*, f32*, f32*, f32*); + /* 80029C10 */ void getPack(int, f32*, f32*); + /* 80029D78 */ void calcMapCenterXZ(int, f32*, f32*); + /* 80029E1C */ void calcMapCmPerTexel(int, f32*); + /* 8002A1BC */ int getDispType() const; + /* 8002A32C */ void _move(f32, f32, int, f32); + /* 8002AB54 */ void _draw(); + + /* 8002AF20 */ virtual ~dMap_c() { _remove(); } + /* 800296EC */ virtual bool isDrawType(int); + /* 80028DF4 */ virtual const GXColor* getColor(int); + /* 800296F8 */ virtual bool isRendAllRoom() const; + /* 8002A254 */ virtual int getRoomNoSingle(); + /* 8002A1DC */ virtual bool isDrawRoom(int, int) const; + /* 8002A294 */ virtual bool isDrawRoomIcon(int, int) const; + /* 80029038 */ virtual const Vec* getIconPosition(dTres_c::typeGroupData_c*) const; + /* 8002ABAC */ virtual dTres_c::typeGroupData_c* getFirstData(u8); + /* 8002ABCC */ virtual dTres_c::typeGroupData_c* getNextData(dTres_c::typeGroupData_c*); + /* 8002A148 */ virtual void setAmapPaletteColor(int, u8, u8, u8, u8); + /* 80029744 */ virtual bool isSpecialOutline(); + + bool isDraw() const { return renderingDAmap_c::isDraw(); } + + ResTIMG* getResTIMGPointer() { return mResTIMG; } + f32 getTopEdgePlus() { return mTopEdgePlus; } + f32 getPackPlusZ() { return mPackPlusZ; } + f32 getPackZ() { return mPackZ; } + f32 getTexelPerCm() { return 1.0f / field_0x58; } + u16 getTexSizeY() { return mTexSizeY; } + f32 getRightEdgePlus() { return mRightEdgePlus; } + f32 getPackX() { return mPackX; } + +private: + /* 0x40 */ dMap_prm_res_s* m_res_src; + /* 0x44 */ dMap_prm_res_s* m_res; + /* 0x48 */ ResTIMG* mResTIMG; + /* 0x4C */ u8* mImage_p; + /* 0x50 */ f32 mCenterX; + /* 0x54 */ f32 mCenterZ; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 mPackX; + /* 0x60 */ f32 mPackZ; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 mPackPlusZ; + /* 0x6C */ f32 mRightEdgePlus; + /* 0x70 */ f32 mTopEdgePlus; + /* 0x74 */ int field_0x74; + /* 0x78 */ u16 mTexSizeX; + /* 0x7A */ u16 mTexSizeY; + /* 0x7C */ int mStayRoomNo; + /* 0x80 */ int field_0x80; + /* 0x84 */ int field_0x84; + /* 0x88 */ int field_0x88; + /* 0x8C */ u8 field_0x8c; + /* 0x8D */ u8 field_0x8d; + /* 0x8E */ u8 field_0x8e; + /* 0x8F */ u8 field_0x8f; + /* 0x90 */ u8 field_0x90; +}; // Size: 0x94 #endif /* D_MAP_D_MAP_H */ diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h index 16dc959ed7..fb8aefc50f 100644 --- a/include/d/map/d_map_path.h +++ b/include/d/map/d_map_path.h @@ -46,10 +46,10 @@ public: /* 8003CB00 */ void rendering(dDrawPath_c::group_class const*); /* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*); - /* 8002AD3C */ virtual ~dDrawPath_c(); - /* 8002ABF0 */ virtual bool isDrawType(int); - virtual GXColor* getColor(int) = 0; - /* 8002AD84 */ virtual GXColor* getLineColor(int, int); + /* 8002AD3C */ virtual ~dDrawPath_c() {} + /* 8002ABF0 */ virtual bool isDrawType(int) { return true; } + virtual const GXColor* getColor(int) = 0; + /* 8002AD84 */ virtual GXColor* getLineColor(int param_0, int) { return (GXColor*)getColor(param_0); } virtual int getLineWidth(int) = 0; virtual bool isSwitch(dDrawPath_c::group_class const*) = 0; virtual bool isRenderingFloor(int) = 0; @@ -63,7 +63,7 @@ public: class dDrawPathWithNormalPattern_c : public dDrawPath_c { public: - /* 8002ACE0 */ virtual ~dDrawPathWithNormalPattern_c(); + /* 8002ACE0 */ virtual ~dDrawPathWithNormalPattern_c() {} }; class dRenderingMap_c : public dDrawPathWithNormalPattern_c { @@ -71,15 +71,15 @@ public: /* 8003CD38 */ void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const; /* 8003CDAC */ void renderingMap(); - /* 8002AC74 */ virtual ~dRenderingMap_c(); + /* 8002AC74 */ virtual ~dRenderingMap_c() {} virtual void beforeDrawPath() = 0; virtual void afterDrawPath() = 0; + virtual void preDrawPath() = 0; virtual void postDrawPath() = 0; virtual bool isDrawPath() = 0; virtual void preRenderingMap() = 0; virtual void postRenderingMap() = 0; - virtual GXColor* getBackColor() const = 0; }; class dRenderingFDAmap_c : public dRenderingMap_c { @@ -102,10 +102,11 @@ public: /* 8003D0AC */ void drawBack() const; /* 8003D3C0 */ void renderingDecoration(dDrawPath_c::line_class const*); - /* 8002ABF8 */ virtual ~dRenderingFDAmap_c(); + /* 8002ABF8 */ virtual ~dRenderingFDAmap_c() {} /* 8003D188 */ virtual void preRenderingMap(); /* 8003D320 */ virtual void postRenderingMap(); - /* 8003D68C */ virtual GXColor* getDecoLineColor(int, int); + virtual GXColor* getBackColor() const = 0; + /* 8003D68C */ virtual const GXColor* getDecoLineColor(int, int); /* 8003D6B8 */ virtual s32 getDecorationLineWidth(int); bool isDrawAreaCheck(const Vec& param_0) { diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h index 1f2386c7ac..059531080a 100644 --- a/include/d/map/d_map_path_dmap.h +++ b/include/d/map/d_map_path_dmap.h @@ -21,6 +21,11 @@ public: return (mLayerList + 0x40*layerNo)[roomNo]; } + static f32 getMinX() { return mMinX; } + static f32 getMinZ() { return mMinZ; } + static f32 getMaxX() { return mMaxX; } + static f32 getMaxZ() { return mMaxZ; } + static dDrawPath_c::room_class** mLayerList; // this doesn't seem right, but can't figure it out atm static f32 mMinX; static f32 mMaxX; @@ -61,6 +66,19 @@ public: /* 8003F734 */ static void create(); /* 8003F754 */ static void remove(); + static s8 getNowStayFloorNo() { + JUT_ASSERT(mNowStayFloorNoDecisionFlg); + + s8 floor_no = 0; + if (mNowStayFloorNoDecisionFlg) { + floor_no = mNowStayFloorNo; + } + return floor_no; + } + + static void setNextRoomNoForMapPat0(int i_roomNo) { mNextRoomNo = i_roomNo; } + static int getNextRoomNoForMapPat0() { return mNextRoomNo; } + static int mNextRoomNo; static int mNowStayRoomNo; static s8 mNowStayFloorNo; @@ -85,7 +103,7 @@ public: /* 80040094 */ int getNextDrawRoomNo(int); /* 8003FE18 */ virtual void draw(); - /* 8002B150 */ virtual ~renderingDAmap_c(); + /* 8002B150 */ virtual ~renderingDAmap_c() {} /* 8003FD9C */ virtual bool isSwitch(dDrawPath_c::group_class const*); /* 8003FE54 */ virtual bool isRenderingFloor(int); /* 80040134 */ virtual dDrawPath_c::room_class* getFirstRoomPointer(); @@ -121,13 +139,14 @@ class stage_tgsc_data_class; class renderingPlusDoor_c : public renderingDAmap_c { public: + renderingPlusDoor_c() {} /* 80040574 */ void drawDoor1(); /* 800405B8 */ void drawDoor2(); /* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool); /* 80040710 */ bool checkDispDoorS(int, int, f32); /* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool); - /* 8002B0B4 */ virtual ~renderingPlusDoor_c(); + /* 8002B0B4 */ virtual ~renderingPlusDoor_c() {} /* 8004145C */ virtual void beforeDrawPath(); /* 80040518 */ virtual void afterDrawPath(); virtual bool isRendRestart() const = 0; @@ -141,8 +160,9 @@ public: /* 80040E84 */ void drawTreasureAfterPlayer(); /* 80041208 */ void drawIconSingle(Vec const&, f32, f32); /* 800412C0 */ void drawCursor(Vec const&, s16, int, f32); + renderingPlusDoorAndCursor_c() {} - /* 8002B008 */ virtual ~renderingPlusDoorAndCursor_c(); + /* 8002B008 */ virtual ~renderingPlusDoorAndCursor_c() {} /* 800402FC */ virtual void afterDrawPath(); virtual f32 getIconSize(u8) const = 0; /* 80040ADC */ virtual const Vec* getIconPosition(dTres_c::typeGroupData_c*) const; |
