mirror of
https://github.com/zeldaret/tp
synced 2026-08-11 03:26:25 -04:00
d_a_obj_lv4floor OK / d_stage wip and cleanup
This commit is contained in:
+18
-2
@@ -223,7 +223,10 @@ public:
|
||||
/* 0x1C */ s16 field_0x1c;
|
||||
}; // Size: 0x20
|
||||
|
||||
struct dStage_MemoryMap_c {};
|
||||
struct dStage_MemoryMap_c {
|
||||
/* 0x0 */ int m_num;
|
||||
/* 0x4 */ u32* field_0x4;
|
||||
};
|
||||
|
||||
struct dPath;
|
||||
struct dStage_dPath_c {
|
||||
@@ -300,7 +303,15 @@ struct dStage_Elst_c {
|
||||
/* 0x4 */ unkData* field_0x4;
|
||||
};
|
||||
|
||||
struct dStage_MemoryConfig_c {};
|
||||
struct dStage_MemoryConfig_data {
|
||||
/* 0x0 */ u8 m_roomNo;
|
||||
/* 0x1 */ u8 m_blockID;
|
||||
}; // Size: 0x2
|
||||
|
||||
struct dStage_MemoryConfig_c {
|
||||
/* 0x0 */ int m_num;
|
||||
/* 0x4 */ dStage_MemoryConfig_data* field_0x4;
|
||||
};
|
||||
|
||||
struct dStage_DMap_c {
|
||||
// DMAP
|
||||
@@ -791,6 +802,11 @@ public:
|
||||
static u32 getProcID() { return mProcID; }
|
||||
static void setStatusProcID(int i_roomNo, unsigned int i_id) { mStatus[i_roomNo].mProcID = i_id; }
|
||||
static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; }
|
||||
|
||||
static void setMemoryBlockID(int i_roomNo, int i_blockID) {
|
||||
mStatus[i_roomNo].mMemBlockID = i_blockID;
|
||||
}
|
||||
|
||||
static void setFileList2(int i_roomNo, dStage_FileList2_dt_c* list) {
|
||||
mStatus[i_roomNo].mRoomDt.mFileList2Info = list;
|
||||
}
|
||||
|
||||
+13
-13
@@ -8,40 +8,40 @@
|
||||
class dDrawPath_c : public dDlst_base_c {
|
||||
public:
|
||||
struct line_class {
|
||||
/* 0x00 */ u8 unk0;
|
||||
/* 0x01 */ u8 unk1;
|
||||
/* 0x02 */ u8 unk2;
|
||||
/* 0x03 */ u8 unk3;
|
||||
/* 0x04 */ u16* unk4;
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 mDataNum;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u16* mpData;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct poly_class {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x04 */ u16* field_0x4;
|
||||
/* 0x01 */ u8 mDataNum;
|
||||
/* 0x04 */ u16* mpData;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct group_class {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x02 */ u8 mLineNum;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x04 */ u8 mPolyNum;
|
||||
/* 0x08 */ dDrawPath_c::line_class* mpLine;
|
||||
/* 0x0C */ u8 field_0xc[4];
|
||||
/* 0x10 */ dDrawPath_c::poly_class* mpPoly;
|
||||
}; // Size: 0x14
|
||||
|
||||
struct floor_class {
|
||||
/* 0x0 */ s8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x0 */ s8 mFloorNo;
|
||||
/* 0x1 */ u8 mGroupNum;
|
||||
/* 0x4 */ dDrawPath_c::group_class* mpGroup;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct room_class {
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x0 */ u8 mFloorNum;
|
||||
/* 0x4 */ dDrawPath_c::floor_class* mpFloor;
|
||||
/* 0x8 */ void* field_0x8;
|
||||
/* 0x8 */ f32* mpFloatData; // might be Vec or cXyz instead
|
||||
};
|
||||
|
||||
/* 8003CB00 */ void rendering(dDrawPath_c::group_class const*);
|
||||
|
||||
@@ -1,6 +1,161 @@
|
||||
#ifndef D_MAP_D_MAP_PATH_FMAP_H
|
||||
#define D_MAP_D_MAP_PATH_FMAP_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/map/d_map_path.h"
|
||||
#include "d/d_tresure.h"
|
||||
#include "d/d_stage.h"
|
||||
|
||||
class fmpTresTypeGroupData_c {
|
||||
public:
|
||||
fmpTresTypeGroupData_c() {
|
||||
mpTresData = NULL;
|
||||
mpNext = NULL;
|
||||
}
|
||||
|
||||
/* 8003EB70 */ ~fmpTresTypeGroupData_c();
|
||||
|
||||
void setTypeGroupNo(u8 i_no) { mTypeGroupNo = i_no; }
|
||||
void setNextData(fmpTresTypeGroupData_c* i_next) { mpNext = i_next; }
|
||||
void setTresData(const dTres_c::data_s* i_data) { mpTresData = i_data; }
|
||||
const dTres_c::data_s* getTresData() { return mpTresData; }
|
||||
fmpTresTypeGroupData_c* getNextData() { return mpNext; }
|
||||
|
||||
/* 0x0 */ const dTres_c::data_s* mpTresData;
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpNext;
|
||||
/* 0x8 */ u8 mTypeGroupNo;
|
||||
}; // Size: 0xC
|
||||
|
||||
class fmpTresTypeGroupDataList_c {
|
||||
public:
|
||||
/* 8003D790 */ void addTypeGroupData(u8, dTres_c::data_s const*);
|
||||
/* 8003EB10 */ ~fmpTresTypeGroupDataList_c();
|
||||
/* 8003EC90 */ fmpTresTypeGroupDataList_c();
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpTypeGroupDataHead;
|
||||
/* 0x4 */ fmpTresTypeGroupData_c* mpNextData;
|
||||
};
|
||||
|
||||
class fmpTresTypeGroupDataListAll_c {
|
||||
public:
|
||||
void addTypeGroupData(u8 i_typeGroupNo, const dTres_c::data_s* i_data) {
|
||||
mpTypeGroupData[i_typeGroupNo].addTypeGroupData(i_typeGroupNo, i_data);
|
||||
}
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupDataList_c mpTypeGroupData[17];
|
||||
};
|
||||
|
||||
class dMenu_Fmap_data_c {
|
||||
public:
|
||||
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; }
|
||||
|
||||
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; }
|
||||
|
||||
/* 0x0 */ dTres_c::list_class* mp_tresure;
|
||||
/* 0x4 */ dStage_FileList2_dt_c* m_fileList2;
|
||||
/* 0x8 */ dDrawPath_c::room_class* mp_mapPath;
|
||||
/* 0xC */ void* mp_dzsData;
|
||||
};
|
||||
|
||||
class dMenu_Fmap_stage_data_c;
|
||||
class dMenu_Fmap_room_data_c {
|
||||
public:
|
||||
/* 8003D818 */ bool isArrival();
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
|
||||
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; }
|
||||
int getRoomNo() { return m_roomNo; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_data_c* mp_fmapData;
|
||||
/* 0x04 */ fmpTresTypeGroupDataListAll_c* mp_fmpTresTypeGroupDataListAll;
|
||||
/* 0x08 */ dMenu_Fmap_room_data_c* mp_nextData;
|
||||
/* 0x0C */ dMenu_Fmap_stage_data_c* mp_parentStage;
|
||||
/* 0x10 */ u8 m_roomNo;
|
||||
};
|
||||
|
||||
class dMenu_Fmap_stage_arc_data_c {
|
||||
public:
|
||||
u8 getVisitedRoomSaveTableNo() { return mVisitedRoomSaveTableNo; }
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 mSaveTableNo;
|
||||
/* 0x2 */ u8 mVisitedRoomSaveTableNo;
|
||||
};
|
||||
|
||||
class dMenu_Fmap_stage_data_c {
|
||||
public:
|
||||
/* 8003D95C */ bool isArrival();
|
||||
/* 8003D9D8 */ int buildFmapStageData(int, f32, f32);
|
||||
|
||||
dMenu_Fmap_stage_arc_data_c* getStageArc() { return mpStageArc; }
|
||||
dMenu_Fmap_stage_data_c* getNextData() { return mpNextData; }
|
||||
|
||||
/* 0x00 */ char name[8];
|
||||
/* 0x08 */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
|
||||
/* 0x0C */ dMenu_Fmap_room_data_c* mp_roomTop;
|
||||
/* 0x10 */ dMenu_Fmap_stage_data_c* mpNextData;
|
||||
/* 0x14 */ f32 m_offsetX;
|
||||
/* 0x18 */ f32 m_offsetZ;
|
||||
/* 0x1C */ f32 m_stageMinX;
|
||||
/* 0x20 */ f32 m_stageMinZ;
|
||||
/* 0x24 */ f32 m_stageMaxX;
|
||||
/* 0x28 */ f32 m_stageMaxZ;
|
||||
/* 0x2C */ int m_stageCntNo;
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_stage_data_c* mpMenuFmapStageDataTop;
|
||||
/* 0x04 */ dMenu_Fmap_region_data_c* mpNextData;
|
||||
/* 0x08 */ f32 mRegionOffsetX;
|
||||
/* 0x0C */ f32 mRegionOffsetZ;
|
||||
/* 0x10 */ f32 mRegionMinX;
|
||||
/* 0x14 */ f32 mRegionMaxX;
|
||||
/* 0x18 */ f32 mRegionMinZ;
|
||||
/* 0x1C */ f32 mRegionMaxZ;
|
||||
/* 0x20 */ int mRegionNo;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_world_data_c {
|
||||
/* 8003E028 */ void create(dMenu_Fmap_region_data_c*);
|
||||
/* 8003E04C */ void buildFmapWorldData();
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_region_data_c* mp_fmapRegionData;
|
||||
/* 0x04 */ f32 m_worldMinX;
|
||||
/* 0x08 */ f32 m_worldMinZ;
|
||||
/* 0x0C */ f32 m_worldMaxX;
|
||||
/* 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();
|
||||
/* 8003E350 */ void getFirstRoomData();
|
||||
/* 8003E37C */ void getNextRoomData();
|
||||
/* 8003E3A4 */ void getNextStageData();
|
||||
/* 8003E3D8 */ void getNextData();
|
||||
/* 8003E490 */ void nextData();
|
||||
/* 8003E510 */ void getValidData();
|
||||
};
|
||||
|
||||
struct dMenuFmapIconDisp_c {
|
||||
/* 8003E578 */ void getPosition(int*, int*, f32*, f32*, dTres_c::data_s const**);
|
||||
/* 8003E6E8 */ void isDrawDisp();
|
||||
};
|
||||
|
||||
#endif /* D_MAP_D_MAP_PATH_FMAP_H */
|
||||
|
||||
@@ -1,6 +1,39 @@
|
||||
#ifndef D_A_OBJ_LV4FLOOR_H
|
||||
#define D_A_OBJ_LV4FLOOR_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/bg/d_bg_s_movebg_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daObjLv4Floor_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
enum Action_e {
|
||||
MODE_WAIT_e,
|
||||
MODE_MOVE_e,
|
||||
MODE_DEAD_e,
|
||||
};
|
||||
|
||||
/* 80C677F8 */ void initBaseMtx();
|
||||
/* 80C67834 */ void setBaseMtx();
|
||||
/* 80C67944 */ int create1st();
|
||||
/* 80C67A30 */ void action();
|
||||
/* 80C67AD4 */ void mode_wait();
|
||||
/* 80C67B28 */ void mode_init_move();
|
||||
/* 80C67B40 */ void mode_move();
|
||||
/* 80C67BA8 */ void mode_init_dead();
|
||||
/* 80C67BB4 */ void mode_dead();
|
||||
|
||||
/* 80C678D4 */ virtual int CreateHeap();
|
||||
/* 80C678B0 */ virtual int Create();
|
||||
/* 80C679E4 */ virtual int Execute(f32 (**)[3][4]);
|
||||
/* 80C67BD4 */ virtual int Draw();
|
||||
/* 80C67C78 */ virtual int Delete();
|
||||
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8) & 0xFF; }
|
||||
|
||||
/* 0x5A0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5A8 */ J3DModel* mpModel;
|
||||
/* 0x5AC */ f32 mMoveYPos;
|
||||
/* 0x5B0 */ u8 mAction;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_LV4FLOOR_H */
|
||||
|
||||
Reference in New Issue
Block a user