mirror of
https://github.com/zeldaret/tp
synced 2026-07-31 00:04:58 -04:00
d_menu_fmap and d_menu_fmap2D OK (#2202)
This commit is contained in:
@@ -162,7 +162,7 @@ public:
|
||||
/* vt[12] */ virtual u32 getResSize(const void*) const; /* override */
|
||||
/* vt[13] */ virtual u32 countFile(const char*) const; /* override */
|
||||
/* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */
|
||||
/* vt[15] */ virtual u32 getExpandedResSize(const void*) const;
|
||||
/* vt[15] */ virtual u32 getExpandedResSize(const void* res) const { return getResSize(res); }
|
||||
/* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*) = 0;
|
||||
/* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*) = 0;
|
||||
/* vt[18] */ virtual void setExpandSize(SDIFileEntry*, u32);
|
||||
|
||||
@@ -1008,6 +1008,7 @@ u8 dComIfGs_staffroll_next_go_check();
|
||||
s8 dComIfGs_BossLife_public_Get();
|
||||
u8 dComIfGs_checkGetInsectNum();
|
||||
u8 dComIfGs_getSelectMixItemNoArrowIndex(int i_selmixItemIdx);
|
||||
BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no);
|
||||
|
||||
inline void dComIfGs_init() {
|
||||
g_dComIfG_gameInfo.info.init();
|
||||
@@ -1659,6 +1660,14 @@ inline void dComIfGs_setPlayerFieldLastStayInfo(const char* i_stage, cXyz& i_pos
|
||||
i_point, i_region);
|
||||
}
|
||||
|
||||
inline char* dComIfGs_getPlayerFieldLastStayName() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().getName();
|
||||
}
|
||||
|
||||
inline s16 dComIfGs_getPlayerFieldLastStayAngleY() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().getAngleY();
|
||||
}
|
||||
|
||||
inline void dComIfGs_setPlayerName(const char* i_name) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerInfo().setPlayerName(i_name);
|
||||
}
|
||||
@@ -1947,6 +1956,7 @@ u8 dComIfGp_TargetWarpPt_get();
|
||||
void dComIfGp_TargetWarpPt_set(u8);
|
||||
BOOL dComIfGp_TransportWarp_check();
|
||||
u8 dComIfGp_SelectWarpPt_get();
|
||||
void dComIfGp_SelectWarpPt_set(u8);
|
||||
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed,
|
||||
u32 lastMode, int, s8 wipe, s16 lastAngle, int, int);
|
||||
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer);
|
||||
|
||||
@@ -1012,6 +1012,7 @@ class 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);
|
||||
void dStage_dt_c_fieldMapLoader(void* i_data, dStage_dt_c* stageDt);
|
||||
dStage_KeepDoorInfo* dStage_GetKeepDoorInfo();
|
||||
dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo();
|
||||
|
||||
|
||||
+34
-2
@@ -3,6 +3,40 @@
|
||||
|
||||
#include "d/map/d_map_path_dmap.h"
|
||||
|
||||
struct dMap_prm_res_s {
|
||||
/* 0x000 */ dMpath_RGB5A3_palDt_s palette_data[51];
|
||||
/* 0x198 */ u8 field_0x198;
|
||||
/* 0x199 */ u8 field_0x199;
|
||||
/* 0x19A */ u8 field_0x19a;
|
||||
/* 0x19B */ u8 field_0x19b;
|
||||
/* 0x19C */ u8 field_0x19c;
|
||||
/* 0x19D */ u8 field_0x19d;
|
||||
/* 0x19E */ u8 field_0x19e;
|
||||
/* 0x19F */ u8 field_0x19f;
|
||||
/* 0x1A0 */ u8 field_0x1a0;
|
||||
/* 0x1A1 */ u8 field_0x1a1;
|
||||
/* 0x1A2 */ u8 field_0x1a2;
|
||||
/* 0x1A3 */ u8 field_0x1a3;
|
||||
/* 0x1A4 */ u8 field_0x1a4;
|
||||
/* 0x1A5 */ u8 field_0x1a5;
|
||||
/* 0x1A6 */ u8 field_0x1a6;
|
||||
/* 0x1A7 */ u8 field_0x1a7;
|
||||
/* 0x1A8 */ u8 field_0x1a8;
|
||||
/* 0x1A9 */ u8 field_0x1a9;
|
||||
/* 0x1AA */ s16 field_0x1aa;
|
||||
/* 0x1AC */ s16 field_0x1ac;
|
||||
/* 0x1AE */ s16 field_0x1ae;
|
||||
/* 0x1B0 */ s16 field_0x1b0;
|
||||
/* 0x1B2 */ s16 field_0x1b2;
|
||||
/* 0x1B4 */ s16 field_0x1b4;
|
||||
/* 0x1B6 */ s16 field_0x1b6;
|
||||
/* 0x1B8 */ f32 cursor_size;
|
||||
};
|
||||
|
||||
struct dMap_HIO_prm_res_dst_s {
|
||||
static dMap_prm_res_s* m_res;
|
||||
};
|
||||
|
||||
class renderingAmap_c : public renderingPlusDoorAndCursor_c {
|
||||
public:
|
||||
/* 800288C4 */ int getDispType() const;
|
||||
@@ -48,8 +82,6 @@ private:
|
||||
/* 0x3C */ s32 field_0x3c;
|
||||
}; // Size: 0x40
|
||||
|
||||
struct dMap_prm_res_s;
|
||||
|
||||
class dMap_c : public renderingAmap_c {
|
||||
public:
|
||||
/* 8002974C */ void copyPalette();
|
||||
|
||||
+26
-15
@@ -20,7 +20,7 @@ public:
|
||||
}; // Size: 0x8
|
||||
|
||||
struct group_class {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x00 */ u8 mSwbit;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 mLineNum;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
/* 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); }
|
||||
/* 8002AD84 */ virtual const 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;
|
||||
@@ -91,11 +91,11 @@ public:
|
||||
field_0x4 = NULL;
|
||||
field_0x8 = 0.0f;
|
||||
field_0xc = 0.0f;
|
||||
field_0x10 = 0.0f;
|
||||
field_0x14 = 0.0f;
|
||||
mPosX = 0.0f;
|
||||
mPosZ = 0.0f;
|
||||
mCmPerTexel = 0.0f;
|
||||
field_0x1c = 0;
|
||||
field_0x1e = 0;
|
||||
mTexWidth = 0;
|
||||
mTexHeight = 0;
|
||||
field_0x20 = 0;
|
||||
field_0x22 = 0;
|
||||
}
|
||||
@@ -108,25 +108,25 @@ public:
|
||||
/* 8002ABF8 */ virtual ~dRenderingFDAmap_c() {}
|
||||
/* 8003D188 */ virtual void preRenderingMap();
|
||||
/* 8003D320 */ virtual void postRenderingMap();
|
||||
virtual GXColor* getBackColor() const = 0;
|
||||
virtual const GXColor* getBackColor() const = 0;
|
||||
/* 8003D68C */ virtual const GXColor* getDecoLineColor(int, int);
|
||||
/* 8003D6B8 */ virtual s32 getDecorationLineWidth(int);
|
||||
|
||||
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);
|
||||
return (param_0.x >= mPosX - field_0x8 * 2.0f &&
|
||||
param_0.x <= mPosX + field_0x8 * 2.0f) &&
|
||||
(param_0.z >= mPosZ - field_0xc * 2.0f &&
|
||||
param_0.z <= mPosZ + field_0xc * 2.0f);
|
||||
}
|
||||
|
||||
/* 0x04 */ u8* field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x10 */ f32 mPosX;
|
||||
/* 0x14 */ f32 mPosZ;
|
||||
/* 0x18 */ f32 mCmPerTexel;
|
||||
/* 0x1C */ u16 field_0x1c;
|
||||
/* 0x1E */ u16 field_0x1e;
|
||||
/* 0x1C */ u16 mTexWidth;
|
||||
/* 0x1E */ u16 mTexHeight;
|
||||
/* 0x20 */ u16 field_0x20;
|
||||
/* 0x22 */ u16 field_0x22;
|
||||
}; // Size: 0x24
|
||||
@@ -154,4 +154,15 @@ struct dMpath_n {
|
||||
|
||||
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28);
|
||||
|
||||
struct dMpath_RGB5A3_s {
|
||||
u16 color;
|
||||
};
|
||||
|
||||
struct dMpath_RGB5A3_palDt_s {
|
||||
/* 0x0 */ dMpath_RGB5A3_s field_0x0;
|
||||
/* 0x2 */ dMpath_RGB5A3_s field_0x2;
|
||||
/* 0x4 */ dMpath_RGB5A3_s field_0x4;
|
||||
/* 0x6 */ dMpath_RGB5A3_s field_0x6;
|
||||
};
|
||||
|
||||
#endif /* D_MAP_D_MAP_PATH_H */
|
||||
|
||||
+155
-18
@@ -12,7 +12,11 @@ public:
|
||||
mpNext = NULL;
|
||||
}
|
||||
|
||||
/* 8003EB70 */ ~fmpTresTypeGroupData_c();
|
||||
/* 8003EB70 */ ~fmpTresTypeGroupData_c() {
|
||||
if (mpNext != NULL) {
|
||||
delete mpNext;
|
||||
}
|
||||
}
|
||||
|
||||
void setTypeGroupNo(u8 i_no) { mTypeGroupNo = i_no; }
|
||||
void setNextData(fmpTresTypeGroupData_c* i_next) { mpNext = i_next; }
|
||||
@@ -31,6 +35,8 @@ public:
|
||||
/* 8003EB10 */ ~fmpTresTypeGroupDataList_c();
|
||||
/* 8003EC90 */ fmpTresTypeGroupDataList_c();
|
||||
|
||||
fmpTresTypeGroupData_c* getTypeGroupDataHead() { return mpTypeGroupDataHead; }
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpTypeGroupDataHead;
|
||||
/* 0x4 */ fmpTresTypeGroupData_c* mpNextData;
|
||||
};
|
||||
@@ -40,21 +46,34 @@ public:
|
||||
void addTypeGroupData(u8 i_typeGroupNo, const dTres_c::data_s* i_data) {
|
||||
mpTypeGroupData[i_typeGroupNo].addTypeGroupData(i_typeGroupNo, i_data);
|
||||
}
|
||||
fmpTresTypeGroupDataList_c* getTypeGroupDataList(int i_typeGroupNo) {
|
||||
return &mpTypeGroupData[i_typeGroupNo];
|
||||
}
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupDataList_c mpTypeGroupData[17];
|
||||
};
|
||||
|
||||
class dMenu_Fmap_data_c {
|
||||
public:
|
||||
dMenu_Fmap_data_c() {
|
||||
mp_tresure = NULL;
|
||||
m_fileList2 = NULL;
|
||||
mp_mapPath = NULL;
|
||||
mp_dzsData = NULL;
|
||||
}
|
||||
|
||||
dTres_c::list_class* getTresure() { return mp_tresure; }
|
||||
f32 getFilelist2MinX() { return m_fileList2->mLeftRmX; }
|
||||
f32 getFilelist2MinZ() { return m_fileList2->mInnerRmZ; }
|
||||
f32 getFilelist2MaxX() { return m_fileList2->mRightRmX; }
|
||||
f32 getFilelist2MaxZ() { return m_fileList2->mFrontRmZ; }
|
||||
dDrawPath_c::room_class* getMapPath() { return mp_mapPath; }
|
||||
void* getDzsData() { return mp_dzsData; }
|
||||
|
||||
void setFileList2(dStage_FileList2_dt_c* i_fileList) { m_fileList2 = i_fileList; }
|
||||
void setTresure(dTres_c::list_class* i_list) { mp_tresure = i_list; }
|
||||
void setMapPath(dDrawPath_c::room_class* i_path) { mp_mapPath = i_path; }
|
||||
void setDzsData(void* i_dzsData) { mp_dzsData = i_dzsData; }
|
||||
|
||||
/* 0x0 */ dTres_c::list_class* mp_tresure;
|
||||
/* 0x4 */ dStage_FileList2_dt_c* m_fileList2;
|
||||
@@ -69,12 +88,30 @@ public:
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
|
||||
dMenu_Fmap_room_data_c(u8 i_roomNo, dMenu_Fmap_stage_data_c* i_stageData,
|
||||
dMenu_Fmap_data_c* i_data) {
|
||||
mp_fmapData = i_data;
|
||||
mp_fmpTresTypeGroupDataListAll = NULL;
|
||||
mp_nextData = NULL;
|
||||
mp_parentStage = i_stageData;
|
||||
m_roomNo = i_roomNo;
|
||||
}
|
||||
|
||||
~dMenu_Fmap_room_data_c() {
|
||||
if (mp_fmpTresTypeGroupDataListAll != NULL) {
|
||||
delete mp_fmpTresTypeGroupDataListAll;
|
||||
}
|
||||
}
|
||||
|
||||
fmpTresTypeGroupDataListAll_c* getTypeGroupDataListAll() { return mp_fmpTresTypeGroupDataListAll; }
|
||||
f32 getFileList2MinX() { return mp_fmapData->getFilelist2MinX(); }
|
||||
f32 getFileList2MinZ() { return mp_fmapData->getFilelist2MinZ(); }
|
||||
f32 getFileList2MaxX() { return mp_fmapData->getFilelist2MaxX(); }
|
||||
f32 getFileList2MaxZ() { return mp_fmapData->getFilelist2MaxZ(); }
|
||||
dMenu_Fmap_room_data_c* getNextData() { return mp_nextData; }
|
||||
dMenu_Fmap_data_c* getFmapData() { return mp_fmapData; }
|
||||
int getRoomNo() { return m_roomNo; }
|
||||
void setNextData(dMenu_Fmap_room_data_c* i_nextData) { mp_nextData = i_nextData; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_data_c* mp_fmapData;
|
||||
/* 0x04 */ fmpTresTypeGroupDataListAll_c* mp_fmpTresTypeGroupDataListAll;
|
||||
@@ -85,11 +122,14 @@ public:
|
||||
|
||||
class dMenu_Fmap_stage_arc_data_c {
|
||||
public:
|
||||
u8 getSaveTableNo() { return mSaveTableNo; }
|
||||
u8 getVisitedRoomSaveTableNo() { return mVisitedRoomSaveTableNo; }
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x0 */ u8 mSize;
|
||||
/* 0x1 */ u8 mSaveTableNo;
|
||||
/* 0x2 */ u8 mVisitedRoomSaveTableNo;
|
||||
/* 0x3 */ u8 field_0x3;
|
||||
/* 0x4 */ u8 mRoomNos[0];
|
||||
};
|
||||
|
||||
class dMenu_Fmap_stage_data_c {
|
||||
@@ -97,8 +137,47 @@ public:
|
||||
/* 8003D95C */ bool isArrival();
|
||||
/* 8003D9D8 */ int buildFmapStageData(int, f32, f32);
|
||||
|
||||
dMenu_Fmap_stage_data_c() {
|
||||
mpStageArc = NULL;
|
||||
mp_roomTop = NULL;
|
||||
mpNextData = NULL;
|
||||
m_stageMinX = 0.0f;
|
||||
m_stageMinZ = 0.0f;
|
||||
m_stageMaxX = 0.0f;
|
||||
m_stageMaxZ = 0.0f;
|
||||
m_offsetX = 0.0f;
|
||||
m_offsetZ = 0.0f;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
name[i] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
f32 getStageCenterX() { return (m_stageMaxX + m_stageMinX) * 0.5f; }
|
||||
f32 getStageCenterZ() { return (m_stageMaxZ + m_stageMinZ) * 0.5f; }
|
||||
f32 getStageCenterX_CoordRegion() { return m_offsetX + getStageCenterX(); }
|
||||
f32 getStageCenterZ_CoordRegion() { return m_offsetZ + getStageCenterZ(); }
|
||||
char* getStageName() { return name; }
|
||||
dMenu_Fmap_stage_arc_data_c* getStageArc() { return mpStageArc; }
|
||||
dMenu_Fmap_stage_data_c* getNextData() { return mpNextData; }
|
||||
dMenu_Fmap_room_data_c* getFmapRoomDataTop() { return mp_roomTop; }
|
||||
f32 getOffsetX() { return m_offsetX; }
|
||||
f32 getOffsetZ() { return m_offsetZ; }
|
||||
f32 getStageMinX() { return m_stageMinX; }
|
||||
f32 getStageMinZ() { return m_stageMinZ; }
|
||||
f32 getStageMaxX() { return m_stageMaxX; }
|
||||
f32 getStageMaxZ() { return m_stageMaxZ; }
|
||||
void setStageArc(dMenu_Fmap_stage_arc_data_c* i_stageArc) { mpStageArc = i_stageArc; }
|
||||
void setFmapRoomDataTop(dMenu_Fmap_room_data_c* i_roomTop) { mp_roomTop = i_roomTop; }
|
||||
void setNextData(dMenu_Fmap_stage_data_c* i_nextData) { mpNextData = i_nextData; }
|
||||
void setStageCntNo(int i_no) { m_stageCntNo = i_no; }
|
||||
void setOffsetX(f32 i_offsetX) { m_offsetX = i_offsetX; }
|
||||
void setOffsetZ(f32 i_offsetZ) { m_offsetZ = i_offsetZ; }
|
||||
|
||||
void setName(char* i_name) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
name[i] = i_name[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* 0x00 */ char name[8];
|
||||
/* 0x08 */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
|
||||
@@ -116,8 +195,41 @@ public:
|
||||
class dMenu_Fmap_region_data_c {
|
||||
public:
|
||||
/* 8003DB48 */ dMenu_Fmap_stage_data_c* getMenuFmapStageData(int);
|
||||
/* 8003DB70 */ void getPointStagePathInnerNo(f32, f32, int, int*, int*);
|
||||
/* 8003DEE0 */ void buildFmapRegionData(int);
|
||||
/* 8003DB70 */ int getPointStagePathInnerNo(f32, f32, int, int*, int*);
|
||||
/* 8003DEE0 */ int buildFmapRegionData(int);
|
||||
|
||||
dMenu_Fmap_region_data_c(int i_no, dMenu_Fmap_stage_data_c* i_stageData,
|
||||
f32 i_offsetX, f32 i_offsetZ) {
|
||||
mpMenuFmapStageDataTop = i_stageData;
|
||||
mpNextData = NULL;
|
||||
mRegionOffsetX = i_offsetX;
|
||||
mRegionOffsetZ = i_offsetZ;
|
||||
mRegionMinX = 0.0f;
|
||||
mRegionMaxX = 0.0f;
|
||||
mRegionMinZ = 0.0f;
|
||||
mRegionMaxZ = 0.0f;
|
||||
mRegionNo = i_no;
|
||||
buildFmapRegionData(0);
|
||||
}
|
||||
|
||||
f32 getStageCenterX_CoordWorld(int i_stageNo) {
|
||||
return mRegionOffsetX + getMenuFmapStageData(i_stageNo)->getStageCenterX_CoordRegion();
|
||||
}
|
||||
|
||||
f32 getStageCenterZ_CoordWorld(int i_stageNo) {
|
||||
return mRegionOffsetZ + getMenuFmapStageData(i_stageNo)->getStageCenterZ_CoordRegion();
|
||||
}
|
||||
|
||||
dMenu_Fmap_stage_data_c* getMenuFmapStageDataTop() { return mpMenuFmapStageDataTop; }
|
||||
dMenu_Fmap_region_data_c* getNextData() { return mpNextData; }
|
||||
f32 getRegionOffsetX() { return mRegionOffsetX; }
|
||||
f32 getRegionOffsetZ() { return mRegionOffsetZ; }
|
||||
f32 getRegionMinX() { return mRegionMinX; }
|
||||
f32 getRegionMaxX() { return mRegionMaxX; }
|
||||
f32 getRegionMinZ() { return mRegionMinZ; }
|
||||
f32 getRegionMaxZ() { return mRegionMaxZ; }
|
||||
int getRegionNo() { return mRegionNo; }
|
||||
void setNextData(dMenu_Fmap_region_data_c* i_data) { mpNextData = i_data; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_stage_data_c* mpMenuFmapStageDataTop;
|
||||
/* 0x04 */ dMenu_Fmap_region_data_c* mpNextData;
|
||||
@@ -130,9 +242,17 @@ public:
|
||||
/* 0x20 */ int mRegionNo;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_world_data_c {
|
||||
class dMenu_Fmap_world_data_c {
|
||||
public:
|
||||
/* 8003E028 */ void create(dMenu_Fmap_region_data_c*);
|
||||
/* 8003E04C */ void buildFmapWorldData();
|
||||
/* 8003E04C */ int buildFmapWorldData();
|
||||
|
||||
dMenu_Fmap_world_data_c(dMenu_Fmap_region_data_c* i_regionData) { create(i_regionData); }
|
||||
dMenu_Fmap_region_data_c* getMenuFmapRegionTop() { return mp_fmapRegionData; }
|
||||
f32 getWorldMinX() { return m_worldMinX; }
|
||||
f32 getWorldMinZ() { return m_worldMinZ; }
|
||||
f32 getWorldMaxX() { return m_worldMaxX; }
|
||||
f32 getWorldMaxZ() { return m_worldMaxZ; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_region_data_c* mp_fmapRegionData;
|
||||
/* 0x04 */ f32 m_worldMinX;
|
||||
@@ -141,21 +261,38 @@ struct dMenu_Fmap_world_data_c {
|
||||
/* 0x10 */ f32 m_worldMaxZ;
|
||||
};
|
||||
|
||||
struct dMenuFmapIconPointer_c {
|
||||
/* 8003E114 */ void init(dMenu_Fmap_region_data_c*, dMenu_Fmap_stage_data_c*, u8, int, int);
|
||||
/* 8003E1C0 */ void getFirstData();
|
||||
/* 8003E2BC */ void getData();
|
||||
class dMenuFmapIconPointer_c {
|
||||
public:
|
||||
/* 8003E114 */ bool init(dMenu_Fmap_region_data_c*, dMenu_Fmap_stage_data_c*, u8, int, int);
|
||||
/* 8003E1C0 */ bool getFirstData();
|
||||
/* 8003E2BC */ bool getData();
|
||||
/* 8003E350 */ void getFirstRoomData();
|
||||
/* 8003E37C */ void getNextRoomData();
|
||||
/* 8003E3A4 */ void getNextStageData();
|
||||
/* 8003E3D8 */ void getNextData();
|
||||
/* 8003E490 */ void nextData();
|
||||
/* 8003E510 */ void getValidData();
|
||||
/* 8003E37C */ bool getNextRoomData();
|
||||
/* 8003E3A4 */ bool getNextStageData();
|
||||
/* 8003E3D8 */ bool getNextData();
|
||||
/* 8003E490 */ bool nextData();
|
||||
/* 8003E510 */ bool getValidData();
|
||||
|
||||
/* 0x00 */ int mStageNo;
|
||||
/* 0x04 */ int mStayStageNo;
|
||||
/* 0x08 */ int mStayRoomNo;
|
||||
/* 0x0C */ int mSaveTbl;
|
||||
/* 0x10 */ dMenu_Fmap_region_data_c* mpRegionData;
|
||||
/* 0x14 */ dMenu_Fmap_stage_data_c* mpStageData;
|
||||
/* 0x18 */ dMenu_Fmap_room_data_c* mpRoomData;
|
||||
/* 0x1C */ fmpTresTypeGroupDataListAll_c* mpFmpTresTypeGroupDataListAll;
|
||||
/* 0x20 */ fmpTresTypeGroupDataList_c* mpFmpTresTypeGroupDataList;
|
||||
/* 0x24 */ fmpTresTypeGroupData_c* mpFmpTresTypeGroupData;
|
||||
/* 0x28 */ dTres_c::typeGroupData_c* mpTresTypeGroupData;
|
||||
/* 0x2C */ const dTres_c::data_s* mpTresData;
|
||||
/* 0x30 */ u8 mTypeGroupNo;
|
||||
/* 0x31 */ u8 mType;
|
||||
};
|
||||
|
||||
struct dMenuFmapIconDisp_c {
|
||||
/* 8003E578 */ void getPosition(int*, int*, f32*, f32*, dTres_c::data_s const**);
|
||||
/* 8003E6E8 */ void isDrawDisp();
|
||||
class dMenuFmapIconDisp_c : public dMenuFmapIconPointer_c {
|
||||
public:
|
||||
/* 8003E578 */ bool getPosition(int*, int*, f32*, f32*, dTres_c::data_s const**);
|
||||
/* 8003E6E8 */ virtual bool isDrawDisp();
|
||||
};
|
||||
|
||||
#endif /* D_MAP_D_MAP_PATH_FMAP_H */
|
||||
|
||||
+203
-72
@@ -2,14 +2,17 @@
|
||||
#define D_MENU_D_MENU_FMAP_H
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "d/menu/d_menu_map_common.h"
|
||||
#include "d/msg/d_msg_flow.h"
|
||||
|
||||
struct CSTControl;
|
||||
class J2DAnmTextureSRTKey;
|
||||
class JKRArchive;
|
||||
class JKRAramArchive;
|
||||
class JKRExpHeap;
|
||||
class JKRHeap;
|
||||
class STControl;
|
||||
class ResTIMG;
|
||||
class dMenu_Fmap_stage_data_c;
|
||||
class dMenu_Fmap_world_data_c;
|
||||
class dMenu_Fmap_region_data_c;
|
||||
@@ -17,10 +20,91 @@ class dMenu_Fmap2DBack_c;
|
||||
class dMenu_Fmap2DTop_c;
|
||||
class dMenu_FmapMap_c;
|
||||
class mDoDvdThd_mountArchive_c;
|
||||
struct RoomData_c;
|
||||
|
||||
// Unknown name
|
||||
class dMenu_Fmap_field_data_c {
|
||||
public:
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
/* 0x04 */ u32 mStageDataOffset;
|
||||
/* 0x08 */ u32 mRegionDataOffset;
|
||||
/* 0x0C */ u32 mVirtualStageOffset;
|
||||
/* 0x10 */ u32 mRoomDataOffset;
|
||||
};
|
||||
|
||||
// Unknown name
|
||||
class dMenu_Fmap_field_region_data_c {
|
||||
public:
|
||||
struct data {
|
||||
/* 0x00 */ u8 mTextureReadNum;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u16 mTitleName;
|
||||
/* 0x04 */ f32 mOriginX;
|
||||
/* 0x08 */ f32 mOriginZ;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
};
|
||||
|
||||
/* 0x0 */ u8 mCount;
|
||||
/* 0x4 */ data mData[0];
|
||||
};
|
||||
|
||||
// Unknown name
|
||||
class dMenu_Fmap_virtual_stage_data_c {
|
||||
public:
|
||||
struct data {
|
||||
/* 0x0 */ char mStageName[8];
|
||||
/* 0x8 */ char mVirtualStageName[8];
|
||||
};
|
||||
|
||||
/* 0x0 */ u8 mCount;
|
||||
/* 0x1 */ u8 pad[3];
|
||||
/* 0x4 */ data mData[0];
|
||||
};
|
||||
|
||||
// Unknown name
|
||||
class dMenu_Fmap_field_room_data_c {
|
||||
public:
|
||||
struct data {
|
||||
/* 0x0 */ char mStageName[8];
|
||||
/* 0x8 */ u16 mAreaName;
|
||||
/* 0xA */ u8 mCount;
|
||||
/* 0xB */ u8 mRoomNos[0];
|
||||
};
|
||||
|
||||
/* 0x0 */ u8 mCount;
|
||||
/* 0x1 */ u8 pad[3];
|
||||
/* 0x4 */ data mData[0];
|
||||
};
|
||||
|
||||
// Unknown name
|
||||
class dMenu_Fmap_portal_data_c {
|
||||
public:
|
||||
struct data {
|
||||
/* 0x00 */ u8 mSelectWarpPt;
|
||||
/* 0x01 */ u8 mRegionNo;
|
||||
/* 0x02 */ const char mStageName[8];
|
||||
/* 0x0A */ u8 mRoomNo;
|
||||
/* 0x0B */ u8 mWarpPlayerNo;
|
||||
/* 0x0C */ u16 mMessageID;
|
||||
/* 0x0E */ u8 mStageNo;
|
||||
/* 0x0F */ u8 mSwitchNo;
|
||||
/* 0x10 */ cXyz mPosition;
|
||||
};
|
||||
|
||||
/* 0x0 */ u8 field_0x0[8];
|
||||
/* 0x8 */ u8 mCount;
|
||||
/* 0xC */ data mData[0];
|
||||
};
|
||||
|
||||
class dMenu_Fmap_c {
|
||||
public:
|
||||
typedef void (dMenu_Fmap_c::*process)();
|
||||
|
||||
/* 801C66E4 */ dMenu_Fmap_c(JKRExpHeap*, STControl*, CSTControl*, u8, u8, u8, f32, f32, u8);
|
||||
/* 801C6D64 */ void _create();
|
||||
/* 801C74A4 */ void _delete();
|
||||
@@ -95,26 +179,26 @@ public:
|
||||
/* 801CB230 */ u8 getStageCursor();
|
||||
/* 801CB260 */ f32 getStageTransX();
|
||||
/* 801CB290 */ f32 getStageTransZ();
|
||||
/* 801CB2C0 */ void isRoomCheck(int, int);
|
||||
/* 801CB570 */ void checkStRoomData();
|
||||
/* 801CB2C0 */ bool isRoomCheck(int, int);
|
||||
/* 801CB570 */ u16 checkStRoomData();
|
||||
/* 801CB664 */ void talkButton();
|
||||
/* 801CB6D0 */ void setProcess(u8);
|
||||
/* 801CB6E0 */ void setFlash(u8, bool);
|
||||
/* 801CB770 */ void readWorldData(u8);
|
||||
/* 801CB938 */ void readAreaData(u8, bool);
|
||||
/* 801CBF04 */ void readRoomData(char const*, dMenu_Fmap_stage_data_c*, void*, int, u8);
|
||||
/* 801CC094 */ void readFieldMapData(void**, char const*, bool, bool);
|
||||
/* 801CB770 */ bool readWorldData(u8);
|
||||
/* 801CB938 */ bool readAreaData(u8, bool);
|
||||
/* 801CBF04 */ bool readRoomData(char const*, dMenu_Fmap_stage_data_c*, void*, int, u8);
|
||||
/* 801CC094 */ bool readFieldMapData(void**, char const*, bool, bool);
|
||||
/* 801CC2B0 */ void decodeFieldMapData();
|
||||
/* 801CC4EC */ void decodePortalData();
|
||||
/* 801CC51C */ void readRoomDzsData(void**, u32, char const*);
|
||||
/* 801CC61C */ void removeAreaData();
|
||||
/* 801CC7A8 */ void removeRoomData(dMenu_Fmap_stage_data_c*);
|
||||
/* 801CC51C */ bool readRoomDzsData(void**, u32, char const*);
|
||||
/* 801CC61C */ bool removeAreaData();
|
||||
/* 801CC7A8 */ bool removeRoomData(dMenu_Fmap_stage_data_c*);
|
||||
/* 801CC85C */ void setTitleName(u32);
|
||||
/* 801CC880 */ void setAreaName(u32);
|
||||
/* 801CC8AC */ void setAreaNameZero();
|
||||
/* 801CC8DC */ void portalWarpMapMove(STControl*);
|
||||
/* 801CCA70 */ void onRoomDataBit(int);
|
||||
/* 801CCA98 */ void isRoomDataBit(int);
|
||||
/* 801CCA98 */ BOOL isRoomDataBit(int);
|
||||
/* 801CCAC4 */ void resetRoomDataBit();
|
||||
/* 801CCB08 */ void drawIcon(f32, bool);
|
||||
/* 801CD10C */ void drawIcon(u8, int);
|
||||
@@ -124,97 +208,144 @@ public:
|
||||
/* 801CCE48 */ void drawGoldWolfIcon();
|
||||
/* 801CCE70 */ void drawCoachIcon();
|
||||
/* 801CCE98 */ void drawPlayEnterIcon();
|
||||
/* 801CCFB0 */ void checkDrawPortalIcon(int, int);
|
||||
/* 801CD000 */ void searchIcon(u8, int, f32*, f32*);
|
||||
/* 801CCFB0 */ bool checkDrawPortalIcon(int, int);
|
||||
/* 801CD000 */ bool searchIcon(u8, int, f32*, f32*);
|
||||
/* 801CD210 */ void drawEnterIcon();
|
||||
/* 801CD254 */ void drawPortalIcon();
|
||||
/* 801CD2FC */ void getRegionStageNum(int);
|
||||
/* 801CD350 */ void getNowFmapRegionData();
|
||||
/* 801CD368 */ void getNowFmapStageData();
|
||||
/* 801CD380 */ void searchPortalStageID(char*);
|
||||
/* 801CD2FC */ u8 getRegionStageNum(int);
|
||||
/* 801CD350 */ dMenu_Fmap_region_data_c* getNowFmapRegionData();
|
||||
/* 801CD368 */ dMenu_Fmap_stage_data_c* getNowFmapStageData();
|
||||
/* 801CD380 */ u8 searchPortalStageID(char*);
|
||||
/* 801CD3F0 */ void drawDebugStage();
|
||||
/* 801CD460 */ void arrowPosInit();
|
||||
/* 801CD5CC */ void tableArrowPosInit(bool);
|
||||
/* 801CD770 */ void yamibossArrowPosInit();
|
||||
/* 801CD814 */ void howlArrowPosInit();
|
||||
/* 801CD8B4 */ void getHowlRegionID();
|
||||
/* 801CD92C */ void isLightVesselGet();
|
||||
/* 801CD95C */ void getPlayerPos2D();
|
||||
/* 801CD8B4 */ u8 getHowlRegionID();
|
||||
/* 801CD92C */ bool isLightVesselGet();
|
||||
/* 801CD95C */ cXyz* getPlayerPos2D();
|
||||
|
||||
/* 801C6AC8 */ virtual ~dMenu_Fmap_c();
|
||||
|
||||
static u8 MyClass[4];
|
||||
enum process_e {
|
||||
/* 0x00 */ PROC_ALL_MAP,
|
||||
/* 0x01 */ PROC_PORTAL_DEMO2,
|
||||
/* 0x02 */ PROC_PORTAL_DEMO3,
|
||||
/* 0x03 */ PROC_TABLE_DEMO1,
|
||||
/* 0x04 */ PROC_ZOOM_ALL_TO_REGION,
|
||||
/* 0x05 */ PROC_ZOOM_REGION_TO_ALL,
|
||||
/* 0x06 */ PROC_REGION_MAP,
|
||||
/* 0x07 */ PROC_TO_PORTAL_WARP_MAP,
|
||||
/* 0x08 */ PROC_PORTAL_WARP_MAP,
|
||||
/* 0x09 */ PROC_PORTAL_WARP_SELECT,
|
||||
/* 0x0A */ PROC_PORTAL_WARP_FORBID,
|
||||
/* 0x0B */ PROC_ZOOM_REGION_TO_SPOT,
|
||||
/* 0x0C */ PROC_ZOOM_SPOT_TO_REGION,
|
||||
/* 0x0D */ PROC_SPOT_MAP,
|
||||
/* 0x0E */ PROC_PORTAL_DEMO1,
|
||||
/* 0x0F */ PROC_PORTAL_DEMO4,
|
||||
/* 0x10 */ PROC_PORTAL_DEMO5,
|
||||
/* 0x11 */ PROC_PORTAL_DEMO6,
|
||||
/* 0x12 */ PROC_YAMIBOSS_DEMO1,
|
||||
/* 0x13 */ PROC_YAMIBOSS_DEMO2,
|
||||
/* 0x14 */ PROC_YAMIBOSS_DEMO3,
|
||||
/* 0x15 */ PROC_YAMIBOSS_DEMO4,
|
||||
/* 0x16 */ PROC_YAMIBOSS_DEMO5,
|
||||
/* 0x17 */ PROC_LIGHT_DEMO1,
|
||||
/* 0x18 */ PROC_LIGHT_DEMO2,
|
||||
/* 0x19 */ PROC_TABLE_DEMO2,
|
||||
/* 0x1A */ PROC_TABLE_DEMO3,
|
||||
/* 0x1B */ PROC_HOWL_DEMO1,
|
||||
/* 0x1C */ PROC_HOWL_DEMO2,
|
||||
/* 0x1D */ PROC_HOWL_DEMO3,
|
||||
};
|
||||
|
||||
static dMenu_Fmap_c* MyClass;
|
||||
|
||||
private:
|
||||
/* 0x004 */ JKRHeap* mpHeap;
|
||||
/* 0x004 */ JKRExpHeap* mpHeap;
|
||||
/* 0x008 */ JKRExpHeap* mpTalkHeap;
|
||||
/* 0x00C */ STControl* mpStick;
|
||||
/* 0x010 */ CSTControl* mpCStick;
|
||||
/* 0x014 */ dMenu_Fmap2DBack_c* mpDraw2DBack;
|
||||
/* 0x018 */ dMenu_Fmap2DTop_c* mpDraw2DTop;
|
||||
/* 0x01C */ mDoDvdThd_mountArchive_c* field_0x1c;
|
||||
/* 0x01C */ mDoDvdThd_mountArchive_c* mpMountArchive;
|
||||
/* 0x020 */ dMenu_Fmap_world_data_c* mpWorldData;
|
||||
/* 0x024 */ dMenu_Fmap_region_data_c* field_0x24[8];
|
||||
/* 0x044 */ dMenu_Fmap_stage_data_c* field_0x44[8];
|
||||
/* 0x064 */ JKRArchive* field_0x64;
|
||||
/* 0x068 */ int field_0x68;
|
||||
/* 0x06C */ RoomData_c* field_0x6c[8];
|
||||
/* 0x08C */ void* field_0x8c;
|
||||
/* 0x090 */ void* field_0x90;
|
||||
/* 0x094 */ int field_0x94[8];
|
||||
/* 0x024 */ dMenu_Fmap_region_data_c* mpRegionData[8];
|
||||
/* 0x044 */ dMenu_Fmap_stage_data_c* mpStageData[8];
|
||||
/* 0x064 */ JKRAramArchive* mpMapArchive;
|
||||
/* 0x068 */ JKRArchive* mpResArchive;
|
||||
/* 0x06C */ dMenuMapCommon_c::RoomData_c* mpRoomData[8];
|
||||
/* 0x08C */ dMenu_Fmap_field_data_c* mpFieldDat;
|
||||
/* 0x090 */ dMenu_Fmap_portal_data_c* mpPortalDat;
|
||||
/* 0x094 */ ResTIMG* mRegionTexture[8];
|
||||
/* 0x0B4 */ int field_0xb4;
|
||||
/* 0x0B8 */ dMenu_FmapMap_c* mpMenuFmapMap;
|
||||
/* 0x0BC */ int field_0xbc;
|
||||
/* 0x0C0 */ u8* field_0xc0;
|
||||
/* 0x0C4 */ dMsgFlow_c field_0xc4;
|
||||
/* 0x110 */ cXyz field_0x110;
|
||||
/* 0x11C */ f32 field_0x11c;
|
||||
/* 0x120 */ f32 field_0x120;
|
||||
/* 0x124 */ f32 field_0x124;
|
||||
/* 0x0BC */ void* mpFmapMapRes;
|
||||
/* 0x0C0 */ u8* mFlashRooms;
|
||||
/* 0x0C4 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x110 */ cXyz mPlayerPos;
|
||||
/* 0x11C */ f32 mTransX;
|
||||
/* 0x120 */ f32 mTransY;
|
||||
/* 0x124 */ f32 mAlphaRatio;
|
||||
/* 0x128 */ f32 field_0x128[8];
|
||||
/* 0x148 */ f32 field_0x148[8];
|
||||
/* 0x168 */ f32 field_0x168[8];
|
||||
/* 0x188 */ f32 field_0x188[8];
|
||||
/* 0x1A8 */ f32 field_0x1a8;
|
||||
/* 0x1AC */ f32 field_0x1ac[8];
|
||||
/* 0x1CC */ f32 field_0x1cc[8];
|
||||
/* 0x1A8 */ f32 mSpotTextureFadeAlpha;
|
||||
/* 0x1AC */ f32 mRegionOffsetX[8];
|
||||
/* 0x1CC */ f32 mRegionOffsetZ[8];
|
||||
/* 0x1EC */ f32 field_0x1ec;
|
||||
/* 0x1F0 */ f32 field_0x1f0;
|
||||
/* 0x1F4 */ f32 field_0x1f4;
|
||||
/* 0x1F8 */ int field_0x1f8[2];
|
||||
/* 0x200 */ int field_0x200;
|
||||
/* 0x204 */ int field_0x204;
|
||||
/* 0x208 */ int field_0x208;
|
||||
/* 0x20C */ int field_0x20c;
|
||||
/* 0x210 */ u16 field_0x210;
|
||||
/* 0x212 */ u16 field_0x212;
|
||||
/* 0x214 */ u16 field_0x214;
|
||||
/* 0x216 */ u16 field_0x216;
|
||||
/* 0x218 */ u16 field_0x218[8];
|
||||
/* 0x228 */ u16 field_0x228[20];
|
||||
/* 0x250 */ char field_0x250[8];
|
||||
/* 0x258 */ char field_0x258[8];
|
||||
/* 0x260 */ char field_0x260[20][8];
|
||||
/* 0x1F0 */ f32 mOldStageTransX;
|
||||
/* 0x1F4 */ f32 mOldStageTransZ;
|
||||
/* 0x1F8 */ u32 mRoomDataBits[2];
|
||||
/* 0x200 */ u32 field_0x200;
|
||||
/* 0x204 */ int mStageCursor;
|
||||
/* 0x208 */ int mRoomCursor;
|
||||
/* 0x20C */ int mStayStageNo;
|
||||
/* 0x210 */ s16 field_0x210;
|
||||
/* 0x212 */ s16 mDisplayFrame;
|
||||
/* 0x214 */ s16 mZoomLevel;
|
||||
/* 0x216 */ u16 mAllTitleName;
|
||||
/* 0x218 */ u16 mTitleName[8];
|
||||
/* 0x228 */ u16 mAreaName[20];
|
||||
/* 0x250 */ char mMarkedStageName[8];
|
||||
/* 0x258 */ char mTmpStageName[8];
|
||||
/* 0x260 */ char mStageName[20][8];
|
||||
/* 0x300 */ u8 mProcess;
|
||||
/* 0x301 */ u8 field_0x301;
|
||||
/* 0x302 */ u8 field_0x302;
|
||||
/* 0x301 */ u8 mPrevProcess;
|
||||
/* 0x302 */ u8 mPrevProcessAlt;
|
||||
/* 0x303 */ u8 mDataNumMax;
|
||||
/* 0x304 */ u8 field_0x304;
|
||||
/* 0x305 */ u8 field_0x305;
|
||||
/* 0x304 */ u8 mPanDirection;
|
||||
/* 0x305 */ bool field_0x305;
|
||||
/* 0x306 */ u8 mSpotNum;
|
||||
/* 0x307 */ u8 field_0x307;
|
||||
/* 0x308 */ u8 field_0x308;
|
||||
/* 0x309 */ u8 field_0x309;
|
||||
/* 0x30A */ u8 field_0x30a;
|
||||
/* 0x30B */ u8 field_0x31b;
|
||||
/* 0x30C */ u8 field_0x31c;
|
||||
/* 0x30D */ u8 field_0x31d;
|
||||
/* 0x30E */ u8 field_0x30e;
|
||||
/* 0x307 */ bool mIsWarpMap;
|
||||
/* 0x308 */ u8 mPortalNo;
|
||||
/* 0x309 */ bool mErrorSound;
|
||||
/* 0x30A */ u8 mStartStageNo;
|
||||
/* 0x30B */ bool field_0x30b;
|
||||
/* 0x30C */ u8 mOldRegionCursor;
|
||||
/* 0x30D */ u8 mOldStageCursor;
|
||||
/* 0x30E */ u8 mFlashRoomCount;
|
||||
/* 0x30F */ u8 field_0x30f;
|
||||
/* 0x310 */ u8 field_0x310;
|
||||
/* 0x311 */ u8 field_0x311;
|
||||
/* 0x312 */ u8 field_0x312;
|
||||
/* 0x313 */ u8 field_0x313;
|
||||
/* 0x311 */ u8 mRegionNo;
|
||||
/* 0x312 */ bool mResetAreaName;
|
||||
/* 0x313 */ bool mAreaNameSet;
|
||||
};
|
||||
|
||||
class dMf_HIO_c {
|
||||
public:
|
||||
/* 801C65F8 */ dMf_HIO_c();
|
||||
/* 801CDA2C */ virtual ~dMf_HIO_c() {}
|
||||
|
||||
/* 0x04 */ u8 field_0x4[4];
|
||||
/* 0x08 */ f32 mBackAnimeStep;
|
||||
/* 0x0C */ f32 mTopAnimeStep;
|
||||
/* 0x10 */ u8 mBaseBackAlpha;
|
||||
/* 0x11 */ u8 mMoyaAlpha;
|
||||
|
||||
static dMf_HIO_c* mMySelfPointer;
|
||||
};
|
||||
|
||||
const char* dMenuFmap_getStartStageName(void* param_0);
|
||||
|
||||
+224
-80
@@ -9,6 +9,8 @@
|
||||
#include "d/pane/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();
|
||||
@@ -87,17 +89,84 @@ public:
|
||||
field_0x1244 = param_2;
|
||||
}
|
||||
|
||||
u8 isArrowDrawFlag() { return mArrowDrawFlag; }
|
||||
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); }
|
||||
|
||||
struct unkData {
|
||||
/* 0x00 */ float field_0x0;
|
||||
/* 0x04 */ float field_0x4;
|
||||
/* 0x08 */ float field_0x8;
|
||||
/* 0x0C */ float field_0xc;
|
||||
/* 0x10 */ float field_0x10;
|
||||
void mapBlink() {}
|
||||
|
||||
// Unknown name
|
||||
struct RegionTexData {
|
||||
/* 0x00 */ float mMinX;
|
||||
/* 0x04 */ float mMinZ;
|
||||
/* 0x08 */ float mMaxX;
|
||||
/* 0x0C */ float mMaxZ;
|
||||
/* 0x10 */ float mScale;
|
||||
};
|
||||
|
||||
/* 0x0C98 */ J2DScreen* mpBackScreen;
|
||||
@@ -110,71 +179,71 @@ public:
|
||||
/* 0x0CB4 */ J2DPicture* mpAreaTex[8];
|
||||
/* 0x0CD4 */ J2DPicture* mpSpotTexture;
|
||||
/* 0x0CD8 */ J2DScreen* mpPointScreen;
|
||||
/* 0x0CDC */ u32 field_0xcdc;
|
||||
/* 0x0CDC */ dMenu_FmapMap_c* mpMenuFmapMap;
|
||||
/* 0x0CE0 */ dMeterHaihai_c* mpMeterHaihai;
|
||||
/* 0x0CE4 */ J2DAnmBase* mpBaseAnm;
|
||||
/* 0x0CE8 */ unkData field_0xce8[8];
|
||||
/* 0x0CE4 */ J2DAnmTextureSRTKey* mpBaseAnm;
|
||||
/* 0x0CE8 */ RegionTexData mRegionTexData[8];
|
||||
/* 0x0D88 */ Stage_c* mpStages;
|
||||
/* 0x0D8C */ float field_0xd8c[8];
|
||||
/* 0x0D0C */ float field_0xdac[8];
|
||||
/* 0x0D0C */ float field_0xdcc[8];
|
||||
/* 0x0D0C */ float field_0xdec[8];
|
||||
/* 0x0E0C */ float field_0xe0c[8];
|
||||
/* 0x0E2C */ float field_0xe2c[8];
|
||||
/* 0x0E4C */ float field_0xe4c[8];
|
||||
/* 0x0E6C */ float field_0xe6c[8];
|
||||
/* 0x0E8C */ float field_0xe8c[8];
|
||||
/* 0x0EAC */ float field_0xeac[8];
|
||||
/* 0x0ECC */ float field_0xecc[8];
|
||||
/* 0x0EEC */ float field_0xeec[8];
|
||||
/* 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 field_0xf8c;
|
||||
/* 0x0F90 */ float field_0xf90;
|
||||
/* 0x0F94 */ float field_0xf94;
|
||||
/* 0x0F8C */ float mRenderingPosX;
|
||||
/* 0x0F90 */ float mRenderingPosZ;
|
||||
/* 0x0F94 */ float mRenderingScale;
|
||||
/* 0x0F98 */ float field_0xf98;
|
||||
/* 0x0F9C */ float field_0xf9c; // Likely called mZoom or something similar
|
||||
/* 0x0FA0 */ float field_0xfa0;
|
||||
/* 0x0F9C */ float mZoom;
|
||||
/* 0x0FA0 */ float mMapZoomRate;
|
||||
/* 0x0FA4 */ float field_0xfa4;
|
||||
/* 0x0FA8 */ float field_0xfa8;
|
||||
/* 0x0FAC */ float field_0xfac;
|
||||
/* 0x0FAC */ float mAnmFrame;
|
||||
/* 0x0FB0 */ float field_0xfb0;
|
||||
/* 0x0FB4 */ float field_0xfb4;
|
||||
/* 0x0FB8 */ float field_0xfb8;
|
||||
/* 0x0FBC */ float field_0xfbc;
|
||||
/* 0x0FC0 */ float field_0xfc0;
|
||||
/* 0x0FC4 */ float field_0xfc4;
|
||||
/* 0x0FC8 */ float field_0xfc8;
|
||||
/* 0x0FCC */ float field_0xfcc;
|
||||
/* 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 field_0xfe0;
|
||||
/* 0x0FE4 */ float field_0xfe4;
|
||||
/* 0x0FE8 */ float field_0xfe8;
|
||||
/* 0x0FEC */ float field_0xfec;
|
||||
/* 0x0FE0 */ float mTexMinX;
|
||||
/* 0x0FE4 */ float mTexMinZ;
|
||||
/* 0x0FE8 */ float mTexMaxX;
|
||||
/* 0x0FEC */ float mTexMaxZ;
|
||||
/* 0x0FF0 */ float mAllMapScaleRate;
|
||||
/* 0x0FF4 */ float field_0xff4;
|
||||
/* 0x0FF8 */ float field_0xff8;
|
||||
/* 0x0FFC */ float field_0xffc;
|
||||
/* 0x1000 */ float field_0x1000;
|
||||
/* 0x1004 */ float field_0x1004[8];
|
||||
/* 0x1024 */ float field_0x1024[8];
|
||||
/* 0x1044 */ float field_0x1044[20];
|
||||
/* 0x1094 */ float field_0x1094[20];
|
||||
/* 0x10E4 */ float field_0x10e4[20];
|
||||
/* 0x1134 */ float field_0x1134[20];
|
||||
/* 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 field_0x118c;
|
||||
/* 0x1190 */ float field_0x1190;
|
||||
/* 0x1194 */ float field_0x1194;
|
||||
/* 0x1198 */ float field_0x1198;
|
||||
/* 0x119C */ float control_ypos;
|
||||
/* 0x11A0 */ float control_xpos;
|
||||
/* 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;
|
||||
@@ -187,42 +256,42 @@ public:
|
||||
/* 0x11C8 */ float field_0x11c8;
|
||||
/* 0x11CC */ float field_0x11cc;
|
||||
/* 0x11D0 */ float field_0x11d0;
|
||||
/* 0x11D4 */ float field_0x11d4;
|
||||
/* 0x11D8 */ float field_0x11d8;
|
||||
/* 0x11D4 */ float mArrowAlpha;
|
||||
/* 0x11D8 */ float mSpotTextureFadeAlpha;
|
||||
/* 0x11DC */ float field_0x11dc;
|
||||
/* 0x11E0 */ float field_0x11e0;
|
||||
/* 0x11E4 */ float field_0x11e4;
|
||||
/* 0x11E4 */ float mBackAlpha;
|
||||
/* 0x11E8 */ float field_0x11e8;
|
||||
/* 0x11EC */ float field_0x11ec;
|
||||
/* 0x11F0 */ JUtility::TColor field_0x11f0;
|
||||
/* 0x11F4 */ JUtility::TColor field_0x11f4;
|
||||
/* 0x11F8 */ JUtility::TColor field_0x11f8;
|
||||
/* 0x11FC */ JUtility::TColor field_0x11fc;
|
||||
/* 0x1200 */ JUtility::TColor field_0x1200;
|
||||
/* 0x1204 */ JUtility::TColor field_0x1204;
|
||||
/* 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 */ u16 field_0x1218;
|
||||
/* 0x121A */ u16 field_0x121a;
|
||||
/* 0x121C */ u8 field_0x121c[8];
|
||||
/* 0x1224 */ u8 field_0x1224;
|
||||
/* 0x1225 */ u8 field_0x1225;
|
||||
/* 0x1226 */ u8 field_0x1226;
|
||||
/* 0x1227 */ u8 field_0x1227;
|
||||
/* 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 field_0x1229;
|
||||
/* 0x1229 */ u8 mSpotCursor;
|
||||
/* 0x122A */ u8 field_0x122a;
|
||||
/* 0x122B */ u8 field_0x122b;
|
||||
/* 0x122C */ u8 mRegionFlag;
|
||||
/* 0x122D */ u8 field_0x122d;
|
||||
/* 0x122E */ u8 field_0x122e;
|
||||
/* 0x122F */ u8 field_0x122f;
|
||||
/* 0x122E */ bool field_0x122e;
|
||||
/* 0x122F */ bool mAllPathShowFlag;
|
||||
/* 0x1230 */ u8 field_0x1230[8];
|
||||
/* 0x1238 */ u8 field_0x1238;
|
||||
/* 0x1239 */ u8 field_0x1239;
|
||||
/* 0x123A */ u8 mArrowDrawFlag;
|
||||
/* 0x1239 */ bool mMapDrawFlag;
|
||||
/* 0x123A */ bool mArrowDrawFlag;
|
||||
/* 0x123B */ u8 field_0x123b;
|
||||
/* 0x123C */ dMenu_FmapMap_c* mpFmapMap;
|
||||
/* 0x1240 */ dMenu_Fmap_region_data_c* mpRegionData;
|
||||
@@ -249,15 +318,90 @@ public:
|
||||
/* 801D77C4 */ void setAlphaAnimeMin(CPaneMgrAlpha*);
|
||||
/* 801D7858 */ void setAlphaAnimeMid(CPaneMgrAlpha*);
|
||||
/* 801D78FC */ void setAlphaAnimeMax(CPaneMgrAlpha*);
|
||||
/* 801D7994 */ void checkPlayerWarpAccept();
|
||||
/* 801D7A08 */ void checkWarpAcceptRegion(int);
|
||||
/* 801D7AB4 */ void checkWarpAcceptRegion4();
|
||||
/* 801D7B58 */ void checkWarpAcceptCannon();
|
||||
/* 801D7994 */ bool checkPlayerWarpAccept();
|
||||
/* 801D7A08 */ bool checkWarpAcceptRegion(int);
|
||||
/* 801D7AB4 */ bool checkWarpAcceptRegion4();
|
||||
/* 801D7B58 */ bool checkWarpAcceptCannon();
|
||||
/* 801D7BCC */ void setHIO(bool);
|
||||
/* 801D8088 */ void isWarpAccept();
|
||||
/* 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 */
|
||||
|
||||
@@ -1,60 +1,187 @@
|
||||
#ifndef D_MENU_D_MENU_FMAP_MAP_H
|
||||
#define D_MENU_D_MENU_FMAP_MAP_H
|
||||
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/menu/d_menu_fmap.h"
|
||||
#include "d/map/d_map.h"
|
||||
#include "d/map/d_map_path.h"
|
||||
#include "d/map/d_map_path_fmap.h"
|
||||
|
||||
class renderingFmap_c {
|
||||
struct dMfm_prm_res_s {
|
||||
/* 0x000 */ dMpath_RGB5A3_palDt_s palette_data[27];
|
||||
/* 0x0D8 */ GXColor field_0xd8;
|
||||
/* 0x0DC */ GXColor field_0xdc;
|
||||
/* 0x0E0 */ GXColor field_0xe0;
|
||||
/* 0x0E4 */ GXColor field_0xe4;
|
||||
/* 0x0E8 */ GXColor field_0xe8[8];
|
||||
/* 0x108 */ GXColor field_0x108[8];
|
||||
/* 0x128 */ GXColor field_0x128[8];
|
||||
/* 0x148 */ GXColor field_0x148[8];
|
||||
/* 0x168 */ s16 field_0x168;
|
||||
/* 0x16A */ s16 field_0x16a;
|
||||
/* 0x16C */ u8 field_0x16c;
|
||||
/* 0x16D */ u8 field_0x16d;
|
||||
};
|
||||
|
||||
struct dMfm_HIO_prm_res_src_s {
|
||||
/* 0x0 */ u8 mFlashDuration;
|
||||
|
||||
static const dMfm_HIO_prm_res_src_s m_other;
|
||||
};
|
||||
|
||||
class renderingFmap_c : public dRenderingFDAmap_c {
|
||||
public:
|
||||
enum palette_e {};
|
||||
enum palette_e {
|
||||
/* 0x11 */ PALETTE_11 = 0x11,
|
||||
/* 0x12 */ PALETTE_12,
|
||||
/* 0x13 */ PALETTE_13,
|
||||
/* 0x14 */ PALETTE_14,
|
||||
/* 0x15 */ PALETTE_15,
|
||||
/* 0x16 */ PALETTE_16,
|
||||
/* 0x17 */ PALETTE_17,
|
||||
/* 0x18 */ PALETTE_18,
|
||||
/* 0x19 */ PALETTE_19,
|
||||
/* 0x1A */ PALETTE_1A,
|
||||
};
|
||||
|
||||
renderingFmap_c() {
|
||||
mpWorldData = NULL;
|
||||
mpRegionData = NULL;
|
||||
mpStageData = NULL;
|
||||
mpRoomData = NULL;
|
||||
mpFmapData = NULL;
|
||||
mpStageArc = NULL;
|
||||
mStartStageNo = 0;
|
||||
mRegionIndex = 0;
|
||||
mStageNo = 0;
|
||||
mRoomNo = 0;
|
||||
mRegionNo = 0;
|
||||
mRoomIndex = 0;
|
||||
mStageOffsetX = 0.0f;
|
||||
mStageOffsetZ = 0.0f;
|
||||
mRegionOffsetX = 0.0f;
|
||||
mRegionOffsetZ = 0.0f;
|
||||
field_0xb8 = 0;
|
||||
mSaveTableNo = 0;
|
||||
mVisitedRoomSaveTableNo = 0;
|
||||
mDrawEnable = false;
|
||||
}
|
||||
|
||||
/* 801CE15C */ void init(u8*, u16, u16, u16, u16);
|
||||
/* 801CE188 */ void entry(dMenu_Fmap_world_data_c*, int, f32, f32, f32);
|
||||
/* 801CE224 */ void isSwitchSpecialOff(int);
|
||||
/* 801CE288 */ void isSwitch(dDrawPath_c::group_class const*);
|
||||
/* 801CE3C0 */ void getPointStagePathInnerNo(dMenu_Fmap_region_data_c*, f32, f32, int, int*,
|
||||
int*);
|
||||
/* 801CE224 */ bool isSwitchSpecialOff(int);
|
||||
/* 801CE288 */ bool isSwitch(group_class const*);
|
||||
/* 801CE3C0 */ int getPointStagePathInnerNo(dMenu_Fmap_region_data_c*, f32, f32, int, int*,
|
||||
int*);
|
||||
/* 801CE410 */ void preDrawPath();
|
||||
/* 801CE4D4 */ bool isDrawPath();
|
||||
/* 801CE4DC */ void isDrawRoom();
|
||||
/* 801CE4DC */ bool isDrawRoom();
|
||||
/* 801CE560 */ void postDrawPath();
|
||||
/* 801CE5B8 */ void postRenderingMap();
|
||||
/* 801CE5EC */ void roomSetteing();
|
||||
/* 801CE6A8 */ void getFirstRoomPointer();
|
||||
/* 801CE6A8 */ room_class* getFirstRoomPointer();
|
||||
/* 801CE75C */ void getFirstRegion();
|
||||
/* 801CE7A8 */ void getFirstStage();
|
||||
/* 801CE80C */ void getFirstRoom();
|
||||
/* 801CE84C */ void getNextRoom();
|
||||
/* 801CE8B8 */ void getNextStage();
|
||||
/* 801CE93C */ void getNextRegion();
|
||||
/* 801CE9A4 */ void getNextRoomPointer();
|
||||
/* 801CF4D0 */ ~renderingFmap_c();
|
||||
/* 801CF55C */ bool isRenderingFloor(int);
|
||||
/* 801CF564 */ void beforeDrawPath();
|
||||
/* 801CF568 */ void afterDrawPath();
|
||||
};
|
||||
/* 801CE84C */ bool getNextRoom();
|
||||
/* 801CE8B8 */ bool getNextStage();
|
||||
/* 801CE93C */ bool getNextRegion();
|
||||
/* 801CE9A4 */ room_class* getNextRoomPointer();
|
||||
|
||||
class dMenu_FmapMap_c {
|
||||
/* 801CF4D0 */ ~renderingFmap_c(); // {}
|
||||
/* 801CF55C */ bool isRenderingFloor(int); // { return true; }
|
||||
/* 801CF564 */ void beforeDrawPath(); // {}
|
||||
/* 801CF568 */ void afterDrawPath(); // {}
|
||||
int getNowDrawRegionNo() { return mRegionNo; }
|
||||
bool isDrawEnable() { return mDrawEnable; }
|
||||
|
||||
/* 0x24 */ Mtx mViewMtx;
|
||||
/* 0x54 */ cXyz mEye;
|
||||
/* 0x60 */ cXyz mCenter;
|
||||
/* 0x6C */ cXyz mUp;
|
||||
/* 0x78 */ dMenu_Fmap_world_data_c* mpWorldData;
|
||||
/* 0x7C */ dMenu_Fmap_region_data_c* mpRegionData;
|
||||
/* 0x80 */ dMenu_Fmap_stage_data_c* mpStageData;
|
||||
/* 0x84 */ dMenu_Fmap_room_data_c* mpRoomData;
|
||||
/* 0x88 */ dMenu_Fmap_data_c* mpFmapData;
|
||||
/* 0x8C */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
|
||||
/* 0x90 */ int mStartStageNo;
|
||||
/* 0x94 */ int mRegionIndex;
|
||||
/* 0x98 */ int mStageNo;
|
||||
/* 0x9C */ int mRoomNo;
|
||||
/* 0xA0 */ int mRegionNo;
|
||||
/* 0xA4 */ int mRoomIndex;
|
||||
/* 0xA8 */ f32 mStageOffsetX;
|
||||
/* 0xAC */ f32 mStageOffsetZ;
|
||||
/* 0xB0 */ f32 mRegionOffsetX;
|
||||
/* 0xB4 */ f32 mRegionOffsetZ;
|
||||
/* 0xB8 */ u8 field_0xb8;
|
||||
/* 0xB9 */ u8 mSaveTableNo;
|
||||
/* 0xBA */ u8 mVisitedRoomSaveTableNo;
|
||||
/* 0xBB */ bool mDrawEnable;
|
||||
};
|
||||
|
||||
class dMenu_FmapMap_c : public renderingFmap_c {
|
||||
public:
|
||||
/* 801CEAAC */ void setFmapPaletteColor(renderingFmap_c::palette_e, _GXColor const&);
|
||||
/* 801CEA38 */ void setFmapPaletteColor(renderingFmap_c::palette_e, u8, u8, u8, u8);
|
||||
/* 801CEAE0 */ void isFlashRoomNoCheck(int) const;
|
||||
/* 801CEAAC */ void setFmapPaletteColor(palette_e, GXColor const&);
|
||||
/* 801CEA38 */ void setFmapPaletteColor(palette_e, u8, u8, u8, u8);
|
||||
/* 801CEAE0 */ bool isFlashRoomNoCheck(int) const;
|
||||
/* 801CEB1C */ void setPointColor(f32);
|
||||
/* 801CEC24 */ dMenu_FmapMap_c();
|
||||
/* 801CED38 */ ~dMenu_FmapMap_c();
|
||||
/* 801CEDE8 */ void _create(u16, u16, u16, u16, void*);
|
||||
/* 801CEE3C */ void _delete();
|
||||
/* 801CEE94 */ void draw();
|
||||
/* 801CF0B4 */ void rendering(dDrawPath_c::line_class const*);
|
||||
/* 801CF12C */ void getLineWidth(int);
|
||||
/* 801CF1D4 */ void isDrawType(int);
|
||||
/* 801CF0B4 */ void rendering(line_class const*);
|
||||
/* 801CF12C */ int getLineWidth(int);
|
||||
/* 801CF1D4 */ bool isDrawType(int);
|
||||
/* 801CF1E0 */ void setFlashOn(int, int, u8*, int);
|
||||
/* 801CF208 */ void getLineColor(int, int);
|
||||
/* 801CF298 */ void getBackColor() const;
|
||||
/* 801CF2A0 */ void getColor(int);
|
||||
/* 801CF208 */ const GXColor* getLineColor(int, int);
|
||||
/* 801CF298 */ const GXColor* getBackColor() const;
|
||||
/* 801CF2A0 */ const GXColor* getColor(int);
|
||||
/* 801CF394 */ void setTexture(u16, u16, u16, u16);
|
||||
/* 801CF450 */ void setRendering(dMenu_Fmap_world_data_c*, int, f32, f32, f32, f32);
|
||||
|
||||
f32 getRateWithFrameCount(int param_0) {
|
||||
return (f32)(g_Counter.mCounter0 % param_0) / (f32)param_0;
|
||||
}
|
||||
|
||||
bool isDrawEnable() {
|
||||
// probably a fakematch
|
||||
bool ret = true;
|
||||
ret &= renderingFmap_c::isDrawEnable();
|
||||
return ret;
|
||||
}
|
||||
|
||||
void setFlashOff() {
|
||||
mLastFlash = mFlash;
|
||||
mFlash = false;
|
||||
}
|
||||
|
||||
int getPointStagePathInnerNo(dMenu_Fmap_region_data_c* i_regionData, f32 i_offsetX,
|
||||
f32 i_offsetY, int i_stageNo, int* o_stageNo, int* o_roomNo) {
|
||||
return renderingFmap_c::getPointStagePathInnerNo(i_regionData, i_offsetX, i_offsetY,
|
||||
i_stageNo, o_stageNo, o_roomNo);
|
||||
}
|
||||
|
||||
ResTIMG* getResTIMGPointer() { return mResTIMG; }
|
||||
|
||||
/* 0xBC */ ResTIMG* mResTIMG;
|
||||
/* 0xC0 */ u8* mMapImage_p;
|
||||
/* 0xC4 */ dMfm_prm_res_s* m_res;
|
||||
/* 0xC8 */ dMpath_RGB5A3_palDt_s* m_palette;
|
||||
/* 0xCC */ int field_0xcc;
|
||||
/* 0xD0 */ f32 mZoomRate;
|
||||
/* 0xD4 */ int mLineNo;
|
||||
/* 0xD8 */ bool mFlash;
|
||||
/* 0xD9 */ bool mLastFlash;
|
||||
/* 0xDC */ int mStageCursor;
|
||||
/* 0xE0 */ int mLastStageCursor;
|
||||
/* 0xE4 */ u8 mRegionCursor;
|
||||
/* 0xE5 */ u8 mFlashTimer;
|
||||
/* 0xE8 */ u8* mFlashRooms;
|
||||
/* 0xEC */ int mFlashRoomCount;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -40,18 +40,36 @@ struct dMenuMapCommon_c {
|
||||
struct Stage_c {
|
||||
// Incomplete class
|
||||
|
||||
struct Stage_c_data {
|
||||
struct data {
|
||||
// Unknown name
|
||||
|
||||
/* 0x00 */ char mName[8];
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x08 */ u8 mRoomNo;
|
||||
/* 0x09 */ u8 mRegionNo;
|
||||
/* 0x0A */ u16 mAreaName;
|
||||
/* 0x0C */ f32 mOffsetX;
|
||||
/* 0x10 */ f32 mOffsetZ;
|
||||
};
|
||||
|
||||
/* 0x0 */ u32 field_0x0;
|
||||
/* 0x4 */ Stage_c_data field_0x4[0];
|
||||
/* 0x0 */ u8 mCount;
|
||||
/* 0x4 */ data mData[0];
|
||||
};
|
||||
|
||||
class RoomData_c {
|
||||
public:
|
||||
struct data {
|
||||
/* 0x0 */ u8 mSize;
|
||||
/* 0x1 */ u8 field_0x1[3];
|
||||
/* 0x4 */ u8 mData[0];
|
||||
};
|
||||
|
||||
data* getRoomData() { return mpRoomData; }
|
||||
RoomData_c* getNextData() { return mpNextData; }
|
||||
void setRoomData(void* i_data) { mpRoomData = (data*)i_data; }
|
||||
void setNextData(RoomData_c* i_nextData) { mpNextData = i_nextData; }
|
||||
|
||||
/* 0x0 */ data* mpRoomData;
|
||||
/* 0x4 */ RoomData_c* mpNextData;
|
||||
};
|
||||
|
||||
/* 0x004 */ J2DPicture* mPictures[23];
|
||||
|
||||
@@ -278,8 +278,8 @@ private:
|
||||
/* 0x130 */ dMenu_Skill_c* mpMenuSkill;
|
||||
/* 0x134 */ dMenu_Insect_c* mpMenuInsect;
|
||||
/* 0x138 */ s32 mMemSize;
|
||||
/* 0x13C */ f32 field_0x13c;
|
||||
/* 0x140 */ f32 field_0x140;
|
||||
/* 0x13C */ f32 mFmapStageTransX;
|
||||
/* 0x140 */ f32 mFmapStageTransZ;
|
||||
/* 0x144 */ u8 field_0x144;
|
||||
/* 0x145 */ u8 mButtons;
|
||||
/* 0x146 */ u8 mMenuStatus;
|
||||
@@ -290,9 +290,9 @@ private:
|
||||
/* 0x14B */ u8 field_0x14B;
|
||||
/* 0x14C */ u8 field_0x14C;
|
||||
/* 0x14D */ u8 field_0x14D;
|
||||
/* 0x14E */ u8 field_0x14E;
|
||||
/* 0x14F */ u8 field_0x14F;
|
||||
/* 0x150 */ u8 field_0x150;
|
||||
/* 0x14E */ u8 mFmapProcess;
|
||||
/* 0x14F */ u8 mFmapRegionCursor;
|
||||
/* 0x150 */ u8 mFmapStageCursor;
|
||||
/* 0x151 */ u8 field_0x151;
|
||||
/* 0x152 */ u8 field_0x152;
|
||||
/* 0x153 */ u8 field_0x153;
|
||||
|
||||
@@ -284,6 +284,7 @@ public:
|
||||
bool isEmphasisR() { return field_0x768[2] == 7 ? true : false; }
|
||||
void setEmphasisA(u8 param_0) { field_0x761 = param_0; }
|
||||
void setEmphasisB(u8 param_0) { field_0x762 = param_0; }
|
||||
u8 getInsideObjCheck() { return field_0x772; }
|
||||
|
||||
private:
|
||||
/* 0x004 */ item_params mItemParams[4];
|
||||
|
||||
@@ -118,7 +118,9 @@ public:
|
||||
void resetPauseStatus() { mPauseStatus = 0; }
|
||||
u8 getPauseStatus() { return mPauseStatus; }
|
||||
bool isGameStatus(int status) { return mGameStatus & status; }
|
||||
bool isTouchKeyCheck(int i_status) { return mTouchKeyCheck & i_status; }
|
||||
bool isTouchKeyCheck(int i_status) { return mTouchKeyCheck & (1 << i_status); }
|
||||
// fake function, should be isTouchKeyCheck
|
||||
bool isTouchKeyCheck_alt(int i_status) { return (mTouchKeyCheck >> i_status) & 1; }
|
||||
void setMapKeyDirection(u16 direction) { mMapKeyDirection = direction; }
|
||||
bool isSub2DStatus(int flag) { return mSub2DStatus & (1 << flag); }
|
||||
void offMenuInForce(int flag) { unk152 &= ~(1 << flag); }
|
||||
@@ -177,13 +179,17 @@ public:
|
||||
mCollectCursorPosY = y;
|
||||
}
|
||||
void setMapDrugFlag(u8 flag) { mMapDrugFlag = flag; }
|
||||
bool isTempBit(int bit) { return mTempBits & (1 << bit) != 0; }
|
||||
bool isTempBit(int bit) { return mTempBits & (1 << bit); }
|
||||
void offSub2DStatus(int bit) { mSub2DStatus &= ~(1 << bit); }
|
||||
void onSub2DStatus(int bit) { mSub2DStatus |= 1 << bit; }
|
||||
void set2DWidth(float width) { m2DWidth = width; }
|
||||
void set2DHeight(float height) { m2DHeight = height; }
|
||||
void set2DPosH(float posH) { m2DPosH = posH; }
|
||||
void set2DPosV(float posV) { m2DPosV = posV; }
|
||||
f32 get2DWidth() { return m2DWidth; }
|
||||
f32 get2DHeight() { return m2DHeight; }
|
||||
u8 getTableMapRegionNo() { return mTableMapRegionNo; }
|
||||
u8 getGoldWolfMapType() { return mGoldWolfMapType; }
|
||||
|
||||
public:
|
||||
/* 0x04 */ u8 unk4[4];
|
||||
@@ -448,6 +454,11 @@ inline bool dMeter2Info_isTouchKeyCheck(int i_status) {
|
||||
return g_meter2_info.isTouchKeyCheck(i_status);
|
||||
}
|
||||
|
||||
// fake function, should be dMeter2Info_isTouchKeyCheck
|
||||
inline bool dMeter2Info_isTouchKeyCheck_alt(int i_status) {
|
||||
return g_meter2_info.isTouchKeyCheck_alt(i_status);
|
||||
}
|
||||
|
||||
inline void dMeter2Info_setMapKeyDirection(u16 direction) {
|
||||
g_meter2_info.setMapKeyDirection(direction);
|
||||
}
|
||||
@@ -752,6 +763,27 @@ inline void dMeter2Info_offShopTalkFlag() {
|
||||
g_meter2_info.offShopTalkFlag();
|
||||
}
|
||||
|
||||
inline f32 dMeter2Info_get2DWidth() {
|
||||
return g_meter2_info.get2DWidth();
|
||||
}
|
||||
|
||||
inline f32 dMeter2Info_get2DHeight() {
|
||||
return g_meter2_info.get2DHeight();
|
||||
}
|
||||
|
||||
inline void dMeter2Info_setWarpInfo(const char* i_stageName, const cXyz& i_position, s16 i_angle,
|
||||
u8 i_roomNo, u8 param_4, u8 i_warpPlayerNo) {
|
||||
g_meter2_info.setWarpInfo(i_stageName, i_position, i_angle, i_roomNo, param_4, i_warpPlayerNo);
|
||||
}
|
||||
|
||||
inline u8 dMeter2Info_getTableMapRegionNo() {
|
||||
return g_meter2_info.getTableMapRegionNo();
|
||||
}
|
||||
|
||||
inline u8 dMeter2Info_getGoldWolfMapType() {
|
||||
return g_meter2_info.getGoldWolfMapType();
|
||||
}
|
||||
|
||||
const char* dMeter2Info_getPlusTextureName();
|
||||
const char* dMeter2Info_getNumberTextureName(int pIndex);
|
||||
int dMeter2Info_recieveLetter();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class JKRArchive;
|
||||
class JKRAramArchive;
|
||||
|
||||
class dMeter_menuHIO_c {
|
||||
public:
|
||||
@@ -1132,7 +1132,7 @@ public:
|
||||
/* 80200BCC */ virtual ~dMeter_fmapHIO_c();
|
||||
|
||||
/* 0x004 */ s8 field_0x4;
|
||||
/* 0x008 */ JKRArchive* field_0x8;
|
||||
/* 0x008 */ JKRAramArchive* mpArchive;
|
||||
/* 0x00C */ void* field_0xc;
|
||||
/* 0x010 */ void* field_0x10;
|
||||
/* 0x014 */ void* field_0x14;
|
||||
@@ -1215,7 +1215,7 @@ public:
|
||||
/* 0x2F6 */ bool mDisplayWorldGrid;
|
||||
/* 0x2F7 */ bool mDisplayRegionGrid;
|
||||
/* 0x2F8 */ bool mDisplayReferenceArea;
|
||||
/* 0x2F9 */ u8 field_0x2f9;
|
||||
/* 0x2F9 */ bool field_0x2f9;
|
||||
/* 0x2FA */ bool mTerminalOutput;
|
||||
/* 0x2FB */ bool mPortalDataTerminalOutput;
|
||||
/* 0x2FC */ bool mAllRegionsUnlocked;
|
||||
|
||||
@@ -484,6 +484,10 @@ inline void dMsgObject_setMsgOutputType(u8 outputType) {
|
||||
dMsgObject_getMsgObjectClass()->setMsgOutputType(outputType);
|
||||
}
|
||||
|
||||
inline void dMsgObject_setPortalMessageID(u16 id) {
|
||||
dMsgObject_getMsgObjectClass()->setPortalMessageID(id);
|
||||
}
|
||||
|
||||
class dMsgObject_HowlHIO_c {
|
||||
public:
|
||||
/* 80232AEC */ dMsgObject_HowlHIO_c();
|
||||
|
||||
@@ -519,6 +519,8 @@ public:
|
||||
void onFieldDataExistFlag() { mFieldDataExistFlag = true; }
|
||||
cXyz& getPos() { return mPos; }
|
||||
u8 getRegionNo() const { return mRegionNo; }
|
||||
char* getName() { return mName; }
|
||||
s16 getAngleY() { return mAngleY; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ cXyz mPos;
|
||||
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; }
|
||||
void onStateFlg1(daMidna_FLG1 i_flag) { mStateFlg1 |= i_flag; }
|
||||
void offStateFlg1(daMidna_FLG1 i_flag) { mStateFlg1 &= ~i_flag; }
|
||||
u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
BOOL checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; }
|
||||
void setFaceNum(int num) { mFaceNum = num; }
|
||||
void setMotionNum(int num) { mMotionNum = num; }
|
||||
|
||||
@@ -38,6 +38,8 @@ public:
|
||||
/* 804CE1F0 */ void setListStart();
|
||||
/* 804CE214 */ void _delete();
|
||||
|
||||
void setPos(cXyz);
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x9d4 - 0x568];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user