diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-02-01 16:14:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-01 16:14:19 +0200 |
| commit | 4172847eff2658c4114fd1ea8a11fa720c160591 (patch) | |
| tree | 556ed28e9b073959e6da0d2f74e698be7e118434 /include | |
| parent | d9a0324b53a7e005fb559c4b8f39d8e02a6a7a09 (diff) | |
| parent | c515b3298f2b02a82995c00fcadec35e3a71229b (diff) | |
Merge pull request #262 from TakaRikka/dmap1
most of d_map_path_dmap decompiled
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 4 | ||||
| -rw-r--r-- | include/d/d_drawlist.h | 1 | ||||
| -rw-r--r-- | include/d/d_path.h | 1 | ||||
| -rw-r--r-- | include/d/d_stage.h | 40 | ||||
| -rw-r--r-- | include/d/d_tresure.h | 10 | ||||
| -rw-r--r-- | include/d/map/d_map_path.h | 25 | ||||
| -rw-r--r-- | include/d/map/d_map_path_dmap.h | 106 | ||||
| -rw-r--r-- | include/d/meter/d_meter_map.h | 34 | ||||
| -rw-r--r-- | include/dolphin/gx/GX.h | 15 | ||||
| -rw-r--r-- | include/m_Do/m_Do_mtx.h | 7 | ||||
| -rw-r--r-- | include/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h | 15 |
11 files changed, 188 insertions, 70 deletions
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 84ba45a17f..85a7ab14a8 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -2788,6 +2788,10 @@ inline void dComIfGd_set2DOpaTop(dDlst_base_c* dlst) { g_dComIfG_gameInfo.drawlist.set2DOpaTop(dlst); } +inline void dComIfGd_setCopy2D(dDlst_base_c* dlst) { + g_dComIfG_gameInfo.drawlist.setCopy2D(dlst); +} + inline view_class* dComIfGd_getView() { return g_dComIfG_gameInfo.drawlist.getView(); } diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index c2de5e7e6a..51bea81b87 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -286,6 +286,7 @@ public: void set2DOpa(dDlst_base_c* dlst) { set(mp2DOpaSet[0], mp2DOpaSet[1], dlst); } void set2DOpaTop(dDlst_base_c* dlst) { set(mp2DOpaTopSet[0], mp2DOpaTopSet[1], dlst); } void set2DXlu(dDlst_base_c* dlst) { set(mp2DXluSet[0], mp2DXluSet[1], dlst); } + void setCopy2D(dDlst_base_c* dlst) { set(mpCopy2DSet[0], mpCopy2DSet[1], dlst); } view_class* getView() { return mView; } void setView(view_class* view) { mView = view; } void setWindow(dDlst_window_c* window) { mWindow = window; } diff --git a/include/d/d_path.h b/include/d/d_path.h index e3c17df3b9..0ff854677d 100644 --- a/include/d/d_path.h +++ b/include/d/d_path.h @@ -18,5 +18,6 @@ struct dPath { inline int dPath_ChkClose(dPath* i_path) { return (i_path->m_closed & 1); } dPath* dPath_GetRoomPath(int path_index, int room_no); +dStage_dPnt_c* dPath_GetPnt(dPath const* path, int pnt_index); #endif /* D_D_PATH_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 67e0da5cdb..62838f3e70 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -868,7 +868,7 @@ struct dStage_objectNameInf { class dStage_KeepDoorInfo { public: /* 80028418 */ ~dStage_KeepDoorInfo() {} - /* 0x000 */ stage_tgsc_class* unk_0x0; + /* 0x000 */ int unk_0x0; /* 0x004 */ stage_tgsc_data_class unk_0x4[0x40]; }; // Size = 0x904 @@ -953,6 +953,8 @@ struct cBgS_GndChk; int dStage_RoomCheck(cBgS_GndChk* gndChk); void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2); void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2); +dStage_KeepDoorInfo* dStage_GetKeepDoorInfo(); +dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo(); inline bool dStage_roomRead_dt_c_ChkBg(u8 param_0) { return param_0 & 0x80; @@ -1014,6 +1016,18 @@ inline BOOL dStage_staginfo_GetArchiveHeap(stage_stag_info_class* p_info) { return p_info->field_0x0a & 0x1000; } +inline int dStage_stagInfo_GetGapLevel(stage_stag_info_class* pstag) { + return pstag->mGapLevel; +} + +inline int dStage_stagInfo_GetRangeUp(stage_stag_info_class* pstag) { + return pstag->mRangeUp; +} + +inline int dStage_stagInfo_GetRangeDown(stage_stag_info_class* pstag) { + return pstag->mRangeDown; +} + inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) { return p_info->field_0xb & 0xF; } @@ -1042,6 +1056,30 @@ inline int dStage_FileList_dt_GetBitSw(dStage_FileList_dt_c* p_fList) { return p_fList->mBitSw; } +inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mLeftRmX; +} + +inline f32 dStage_FileList2_dt_GetRightRmX(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mRightRmX; +} + +inline f32 dStage_FileList2_dt_GetInnerRmZ(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mInnerRmZ; +} + +inline f32 dStage_FileList2_dt_GetFrontRmZ(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mFrontRmZ; +} + +inline s8 dStage_FileList2_dt_GetMinFloorNo(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mMinFloorNo; +} + +inline s8 dStage_FileList2_dt_GetMaxFloorNo(dStage_FileList2_dt_c* p_fList2) { + return p_fList2->mMaxFloorNo; +} + inline int dStage_MapEvent_dt_c_getEventSCutSW(dStage_MapEvent_dt_c* event) { return event->field_0x8 & 1; } diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h index cc9567ad82..b8feddbd26 100644 --- a/include/d/d_tresure.h +++ b/include/d/d_tresure.h @@ -15,12 +15,13 @@ public: /* 0x10 */ u8 mSwBit; /* 0x11 */ u8 mType; /* 0x12 */ u8 mArg2; - /* 0x13 */ u8 mAngleY; + /* 0x13 */ s8 mAngleY; }; class typeGroupData_c { public: data_s* getDataPointer() { return &mData; } + const data_s* getConstDataPointer() const { return &mData; } typeGroupData_c* getNextDataPointer() const { return mNextData; } void setNextDataPointer(typeGroupData_c* data) { mNextData = data; } void setTypeGroupNo(u8 no) { mTypeGroupNo = no; } @@ -32,6 +33,7 @@ public: void setPos(const Vec& pos) { mData.mPos = pos; } u8 getSwBit() const { return mData.mSwBit; } const Vec* getPos() const { return &mData.mPos; } + int getAngleY() const { return mData.mAngleY; } /* 0x00 */ data_s mData; /* 0x14 */ typeGroupData_c* mNextData; @@ -39,8 +41,8 @@ public: }; // Size: 0x1C struct list_class { - /* 0x0 */ typeGroupData_c* field_0x0; - /* 0x4 */ typeGroupData_c* field_0x4; + /* 0x0 */ int field_0x0; + /* 0x4 */ data_s* field_0x4; /* 0x8 */ u8 mNumber; }; @@ -58,7 +60,7 @@ public: /* 8009C3B4 */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c const*); /* 8009C3CC */ static void setPosition(int, u8, Vec const*, int); /* 8009C49C */ static int getTypeGroupNoToType(u8); - /* 8009C4B0 */ static int getTypeToTypeGroupNo(u8); + /* 8009C4B0 */ static u8 getTypeToTypeGroupNo(u8); static int getTypeGroupNumber(int index) { return mTypeGroupListAll[index].mNumber; diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h index 23b511d6ae..670b172441 100644 --- a/include/d/map/d_map_path.h +++ b/include/d/map/d_map_path.h @@ -84,6 +84,19 @@ public: class dRenderingFDAmap_c : public dRenderingMap_c { public: + dRenderingFDAmap_c() { + field_0x4 = NULL; + field_0x8 = 0.0f; + field_0xc = 0.0f; + field_0x10 = 0.0f; + field_0x14 = 0.0f; + mCmPerTexel = 0.0f; + field_0x1c = 0; + field_0x1e = 0; + field_0x20 = 0; + field_0x22 = 0; + } + /* 8003CE78 */ void setTevSettingNonTextureDirectColor() const; /* 8003CF40 */ void setTevSettingIntensityTextureToCI() const; /* 8003D0AC */ void drawBack() const; @@ -95,8 +108,14 @@ public: /* 8003D68C */ virtual GXColor* getDecoLineColor(int, int); /* 8003D6B8 */ virtual s32 getDecorationLineWidth(int); -private: - /* 0x04 */ void* field_0x4; + bool isDrawAreaCheck(const Vec& param_0) { + return (param_0.x >= field_0x10 - field_0x8 * 2.0f && + param_0.x <= field_0x10 + field_0x8 * 2.0f) && + (param_0.z >= field_0x14 - field_0xc * 2.0f && + param_0.z <= field_0x14 + field_0xc * 2.0f); + } + + /* 0x04 */ u8* field_0x4; /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 field_0xc; /* 0x10 */ f32 field_0x10; @@ -115,6 +134,8 @@ struct dMpath_n { /* 8003C8F4 */ void remove(); /* 8003D740 */ ~dTexObjAggregate_c() { remove(); }; + GXTexObj* getTexObjPointer(int i_no) { return mp_texObj[i_no]; } + dTexObjAggregate_c() { for (int i = 0; i < 7; i++) { mp_texObj[i] = NULL; diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h index 210d09079f..957afae8b6 100644 --- a/include/d/map/d_map_path_dmap.h +++ b/include/d/map/d_map_path_dmap.h @@ -8,16 +8,16 @@ class dMpath_c { public: - /* 8003F758 */ static u8 isExistMapPathData(); - /* 8003F760 */ void getTopBottomFloorNo(s8*, s8*); + /* 8003F758 */ static bool isExistMapPathData(); + /* 8003F760 */ static int getTopBottomFloorNo(s8*, s8*); /* 8003F7E8 */ static void createWork(); - /* 8003FA40 */ void setPointer(s8, void*, int); - /* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*); + /* 8003FA40 */ static void setPointer(s8, void*, int); + /* 8003F810 */ static void setPointer(dDrawPath_c::room_class*, s8*, s8*); /* 8003FB70 */ static void create(); - /* 8003FBD0 */ void reset(); - /* 8003FC70 */ void remove(); + /* 8003FBD0 */ static void reset(); + /* 8003FC70 */ static void remove(); - static u8 mLayerList[4]; + static dDrawPath_c::room_class** mLayerList; // this doesn't seem right, but can't figure it out atm static f32 mMinX; static f32 mMaxX; static f32 mMinZ; @@ -26,33 +26,59 @@ public: static f32 mAllCenterZ; static f32 mAllSizeX; static f32 mAllSizeZ; + static s8 mBottomFloorNo; + static s8 mTopFloorNo; }; struct dMapInfo_n { - /* 8003ECA0 */ bool chkGetCompass(); - /* 8003ECD8 */ bool chkGetMap(); + /* 8003ECA0 */ static bool chkGetCompass(); + /* 8003ECD8 */ static bool chkGetMap(); /* 8003ED10 */ static bool isVisitedRoom(int); /* 8003ED60 */ static void correctionOriginPos(s8, Vec*); /* 8003EDC0 */ static void offsetPlus(dStage_FileList2_dt_c const*, Vec*); /* 8003EDEC */ static void rotAngle(dStage_FileList2_dt_c const*, Vec*); /* 8003EE5C */ static Vec getMapPlayerPos(); - /* 8003EF20 */ void getMapPlayerAngleY(); - /* 8003EF70 */ void getConstRestartIconPointer(); - /* 8003F02C */ void getMapRestartPos(); - /* 8003F0F8 */ void getMapRestartAngleY(); - /* 8003F19C */ void getRoomCenter(int, f32*, f32*); - /* 8003F1F4 */ void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*); - /* 8003F24C */ void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*); + /* 8003EF20 */ static s16 getMapPlayerAngleY(); + /* 8003EF70 */ static const dTres_c::typeGroupData_c* getConstRestartIconPointer(); + /* 8003F02C */ static Vec getMapRestartPos(); + /* 8003F0F8 */ static s16 getMapRestartAngleY(); + /* 8003F19C */ static void getRoomCenter(int, f32*, f32*); + /* 8003F1F4 */ static void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*); + /* 8003F24C */ static void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*); +}; + +class dMapInfo_c { +public: + /* 8003F40C */ static s8 calcFloorNo(f32, bool, int); + /* 8003F570 */ static s8 calcNowStayFloorNo(f32, bool); + /* 8003F6C8 */ static void move(int, f32); + /* 8003F6FC */ static void init(); + /* 8003F714 */ static void reset(); + /* 8003F734 */ static void create(); + /* 8003F754 */ static void remove(); + + static int mNextRoomNo; + static int mNowStayRoomNo; + static s8 mNowStayFloorNo; + static u8 mNowStayFloorNoDecisionFlg; }; class renderingDAmap_c : public dRenderingFDAmap_c { public: - /* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const; + renderingDAmap_c() { + mRoomNo = 0; + field_0x28 = 0; + mRoomNoSingle = 0; + mRenderedFloor = 0; + mIsDraw = false; + } + + /* 8003FCA4 */ s8 calcFloorNoForObjectByMapPathRend(f32, int) const; /* 8003FCC8 */ void init(u8*, u16, u16, u16, u16); /* 8003FD08 */ void entry(f32, f32, f32, int, s8); /* 8003FE6C */ void setSingleRoomSetting(); - /* 8003FFF4 */ void getFirstDrawRoomNo(); - /* 80040094 */ void getNextDrawRoomNo(int); + /* 8003FFF4 */ int getFirstDrawRoomNo(); + /* 80040094 */ int getNextDrawRoomNo(int); /* 8003FE18 */ virtual void draw(); /* 8002B150 */ virtual ~renderingDAmap_c(); @@ -65,27 +91,26 @@ public: /* 800402C0 */ virtual bool isDrawPath(); /* 8003FE4C */ virtual GXColor* getBackColor() const; /* 800402E0 */ virtual bool getFirstDrawLayerNo(); - /* 800402E8 */ virtual void getNextDrawLayerNo(int); - /* 800409E0 */ virtual void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool, + /* 800402E8 */ virtual int getNextDrawLayerNo(int); + /* 800409E0 */ virtual bool isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool, Vec const*) const; - /* 80040AE4 */ virtual void getIconGroupNumber(u8) const; - virtual void hasMap() const = 0; - virtual void isRendAllRoom() const = 0; - virtual void isRendDoor() const = 0; + /* 80040AE4 */ virtual int getIconGroupNumber(u8) const; + virtual bool hasMap() const = 0; + virtual bool isRendAllRoom() const = 0; + virtual bool isRendDoor() const = 0; virtual bool isCheckFloor() const = 0; - virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const = 0; - /* 8003FFEC */ virtual void getRoomNoSingle(); - /* 8003FE70 */ virtual void isDrawRoom(int, int) const; - /* 800409B4 */ virtual void isDrawRoomIcon(int, int) const; + virtual bool isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const = 0; + /* 8003FFEC */ virtual int getRoomNoSingle(); + /* 8003FE70 */ virtual bool isDrawRoom(int, int) const; + /* 800409B4 */ virtual bool isDrawRoomIcon(int, int) const; - bool isDraw() const { return mDraw; } + bool isDraw() const { return mIsDraw; } -private: - /* 0x24 */ int field_0x24; + /* 0x24 */ int mRoomNo; /* 0x28 */ int field_0x28; /* 0x2C */ int mRoomNoSingle; - /* 0x30 */ u8 field_0x30; - /* 0x31 */ bool mDraw; + /* 0x30 */ s8 mRenderedFloor; + /* 0x31 */ bool mIsDraw; }; // Size: 0x34 class stage_tgsc_data_class; @@ -95,7 +120,7 @@ public: /* 80040574 */ void drawDoor1(); /* 800405B8 */ void drawDoor2(); /* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool); - /* 80040710 */ void checkDispDoorS(int, int, f32); + /* 80040710 */ bool checkDispDoorS(int, int, f32); /* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool); /* 8002B0B4 */ virtual ~renderingPlusDoor_c(); @@ -115,11 +140,12 @@ public: /* 8002B008 */ virtual ~renderingPlusDoorAndCursor_c(); /* 800402FC */ virtual void afterDrawPath(); - /* 80040ADC */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const; - /* 80040A94 */ virtual void getFirstData(u8); - /* 80040AB8 */ virtual void getNextData(dTres_c::typeGroupData_c*); - virtual void getPlayerCursorSize() = 0; - virtual void getRestartCursorSize() = 0; + virtual f32 getIconSize(u8) const = 0; + /* 80040ADC */ virtual const Vec* getIconPosition(dTres_c::typeGroupData_c*) const; + /* 80040A94 */ virtual dTres_c::typeGroupData_c* getFirstData(u8); + /* 80040AB8 */ virtual dTres_c::typeGroupData_c* getNextData(dTres_c::typeGroupData_c*); + virtual f32 getPlayerCursorSize() = 0; + virtual f32 getRestartCursorSize() = 0; }; #endif /* D_MAP_D_MAP_PATH_DMAP_H */ diff --git a/include/d/meter/d_meter_map.h b/include/d/meter/d_meter_map.h index 2cdc3ac04f..33b0e506b1 100644 --- a/include/d/meter/d_meter_map.h +++ b/include/d/meter/d_meter_map.h @@ -27,20 +27,20 @@ public: /* 800289F0 */ virtual void rendering(dDrawPath_c::room_class const*); /* 80028960 */ virtual void beforeDrawPath(); /* 800289D0 */ virtual void afterDrawPath(); - /* 80028FB4 */ virtual void getDecoLineColor(int, int); - /* 80028CF4 */ virtual void getDecorationLineWidth(int); - /* 80029058 */ virtual void getIconGroupNumber(u8) const; - /* 80029078 */ virtual void hasMap() const; - /* 8002911C */ virtual void isRendAllRoom() const; - /* 800290C0 */ virtual void isRendDoor() const; + /* 80028FB4 */ virtual 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 void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) 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; - /* 800284BC */ virtual void getIconSize(u8) const; - /* 80028B04 */ virtual void getPlayerCursorSize(); - /* 80028B10 */ virtual void getRestartCursorSize(); + /* 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; @@ -70,13 +70,13 @@ public: /* 8002AF20 */ virtual ~dMap_c(); /* 800296EC */ virtual bool isDrawType(int); /* 80028DF4 */ virtual GXColor* getColor(int); - /* 800296F8 */ virtual void isRendAllRoom() const; - /* 8002A254 */ virtual void getRoomNoSingle(); - /* 8002A1DC */ virtual void isDrawRoom(int, int) const; - /* 8002A294 */ virtual void isDrawRoomIcon(int, int) const; - /* 80029038 */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const; - /* 8002ABAC */ virtual void getFirstData(u8); - /* 8002ABCC */ virtual void getNextData(dTres_c::typeGroupData_c*); + /* 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(); diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index 978639b8ad..d1d57bdd39 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -45,9 +45,14 @@ volatile PPCWGPipe GXFIFO : 0xCC008000; #define GFX_FIFO(T) (*(volatile T*)0xCC008000) inline void GXPosition3f32(f32 x, f32 y, f32 z) { - GFX_FIFO(f32) = x; - GFX_FIFO(f32) = y; - GFX_FIFO(f32) = z; + GXFIFO.f32 = x; + GXFIFO.f32 = y; + GXFIFO.f32 = z; +} + +inline void GXPosition2f32(f32 x, f32 z) { + GXFIFO.f32 = x; + GXFIFO.f32 = z; } inline void GXColor1u32(u32 c) { @@ -64,6 +69,10 @@ inline void GXTexCoord2u8(u8 s, u8 t) { GFX_FIFO(u8) = t; } +inline void GXTexCoord1x8(u8 s) { + GFX_FIFO(u8) = s; +} + inline void GXPosition2u16(u16 x, u16 y) { GFX_FIFO(u16) = x; GFX_FIFO(u16) = y; diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 642cf2fdbe..f4829044d0 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -19,6 +19,8 @@ void mDoMtx_XrotM(Mtx mtx, s16 x); void mDoMtx_YrotM(Mtx, s16); void mDoMtx_MtxToRot(CMtxP, csXyz*); void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3); +void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, Vec const* param_3, + s16 param_4); void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]); void mDoMtx_ZrotM(Mtx mtx, s16 z); @@ -35,7 +37,7 @@ inline void mDoMtx_copy(const Mtx src, Mtx dst) { } inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) { - PSMTXTrans(m,x,y,z); + PSMTXTrans(m, x, y, z); } inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { @@ -66,7 +68,8 @@ public: static void scaleS(f32 x, f32 y, f32 z) { PSMTXScale(now, x, y, z); } static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); } static void multVecSR(const Vec* a, Vec* b) { PSMTXMultVecSR(now, a, b); } - static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); } + static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); } + static void multVecArray(const Vec* src, Vec* dst, u32 count) { PSMTXMultVecArray(now, src, dst, count); } static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); } static void XYZrotM(s16 x, s16 y, s16 z) { mDoMtx_XYZrotM(now, x, y, z); } static void ZXYrotS(s16 x, s16 y, s16 z) { mDoMtx_ZXYrotS(now, x, y, z); } diff --git a/include/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h b/include/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h index 324c439670..f71874c820 100644 --- a/include/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h +++ b/include/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h @@ -1,6 +1,19 @@ #ifndef D_A_TAG_GUARD_H #define D_A_TAG_GUARD_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_path.h" + +class daTagGuard_c : public fopAc_ac_c { +public: + /* 80D597F8 */ int getAppearPoint(Vec*); + /* 80D5985C */ void createGuard(u32); + + u8 getPathID() { return fopAcM_GetParam(this) >> 8; } + inline int create(); + inline void create_init(); + + /* 0x568 */ dPath* mPath; +}; // Size: 0x56C #endif /* D_A_TAG_GUARD_H */ |
