d_s_room / d_a_bg first pass

This commit is contained in:
TakaRikka
2023-01-03 17:43:38 -08:00
parent ba08966f58
commit f1518a9a93
23 changed files with 973 additions and 707 deletions
+5
View File
@@ -17,6 +17,10 @@ class dBgW_Base : public cBgW_BgId {
public:
enum PushPullLabel {};
enum PRIORITY {
PRIORITY_0,
};
typedef s32 (*PushPull_CallBack)(cBgS_PolyInfo const&, fopAc_ac_c*, s16,
dBgW_Base::PushPullLabel);
@@ -91,6 +95,7 @@ public:
bool ChkPushPullOk() const { return m_pushPull_Ok; }
void SetRoomId(int id) { m_roomId = id; }
bool ChkPriority(int prio) { return m_priority == prio; }
void SetPriority(PRIORITY priority) { m_priority = priority; }
private:
/* 0x08 */ u8 m_priority;
+29 -2
View File
@@ -825,6 +825,7 @@ BOOL dComIfGs_isEventBit(u16 i_flag);
int dComIfGs_isItemFirstBit(u8 i_no);
u16 dComIfGs_getRupee();
static u16 dComIfGs_getLife();
s8 dComIfGs_BossLife_public_Get();
inline void dComIfGs_init() {
g_dComIfG_gameInfo.info.init();
@@ -1523,6 +1524,10 @@ inline void dComIfGs_setMemoryToCard(u8* i_saveData, int i_dataNum) {
g_dComIfG_gameInfo.info.memory_to_card((char*)i_saveData, i_dataNum);
}
inline int dComIfGs_createZone(int roomNo) {
return g_dComIfG_gameInfo.info.createZone(roomNo);
}
void dComIfGp_setSelectItem(int index);
s32 dComIfGp_offHeapLockFlag(int flag);
@@ -1544,6 +1549,7 @@ int dComIfGp_getSelectItemMaxNum(int index);
void dComIfGp_mapShow();
void dComIfGp_mapHide();
bool dComIfGp_checkMapShow();
void dComIfGp_ret_wp_set(s8);
s32 dComIfGp_setHeapLockFlag(u8 flag);
u8 dComIfGp_world_dark_get();
JKRExpHeap* dComIfGp_getSubHeap2D(int flag);
@@ -1567,6 +1573,7 @@ static u8 dComIfGp_getDoStatus();
static u8 dComIfGp_getRStatus();
static dAttCatch_c* dComIfGp_att_getCatghTarget();
static void dComIfGp_setBottleStatus(u8 param_0, u8 param_1);
bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle);
inline bool i_dComIfGp_checkPlayerStatus0(int param_0, u32 flag) {
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, flag);
@@ -2347,6 +2354,10 @@ inline s32 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
inline s32 dComIfGp_roomControl_getZoneNo(int i_roomNo) {
return dStage_roomControl_c::getZoneNo(i_roomNo);
}
inline void dComIfGp_roomControl_initZone() {
g_dComIfG_gameInfo.play.getRoomControl()->initZone();
}
@@ -2375,12 +2386,28 @@ inline void dComIfGp_roomControl_setStayNo(int stayNo) {
g_dComIfG_gameInfo.play.getRoomControl()->setStayNo(stayNo);
}
inline void dComIfGp_roomControl_setZoneNo(int roomNo, int zoneNo) {
g_dComIfG_gameInfo.play.getRoomControl()->setZoneNo(roomNo, zoneNo);
}
inline dKy_tevstr_c* dComIfGp_roomControl_getTevStr(int i_roomNo) {
return g_dComIfG_gameInfo.play.getRoomControl()->getTevStr(i_roomNo);
}
inline bool dComIfGp_roomControl_checkStatusFlag(int i_roomNo, u8 flag) {
return g_dComIfG_gameInfo.play.mRoomControl.checkStatusFlag(i_roomNo, flag);
inline BOOL dComIfGp_roomControl_checkStatusFlag(int i_roomNo, u8 flag) {
return g_dComIfG_gameInfo.play.getRoomControl()->checkStatusFlag(i_roomNo, flag);
}
inline void dComIfGp_roomControl_offStatusFlag(int i_roomNo, u8 flag) {
return g_dComIfG_gameInfo.play.getRoomControl()->offStatusFlag(i_roomNo, flag);
}
inline void dComIfGp_roomControl_onStatusFlag(int i_roomNo, u8 flag) {
return g_dComIfG_gameInfo.play.getRoomControl()->onStatusFlag(i_roomNo, flag);
}
inline void dComIfGp_roomControl_setStatusFlag(int i_roomNo, u8 flag) {
return g_dComIfG_gameInfo.play.getRoomControl()->setStatusFlag(i_roomNo, flag);
}
inline void dComIfGp_roomControl_zoneCountCheck(int i_roomNo) {
+5
View File
@@ -48,6 +48,11 @@ public:
/* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos);
/* 800315A4 */ static void execute();
static void reset(int roomNo) {
room_c* room = (room_c*)mRoom; // tmp
room[roomNo].reset();
}
static u8 mData[1152];
static u8 mRoom[256];
static s16 mSetTop;
+1
View File
@@ -273,6 +273,7 @@ public:
static dDemo_actor_c* getActor(u8 param_0) { return m_object->getActor(param_0); }
static u32 getFrameNoMsg() { return m_frameNoMsg; }
static s32 getMode() { return m_mode; }
static int getFrame() { return m_frame; }
static JStudio::stb::TControl* getControl() { return m_control; }
static bool isStatus(u32 status) { return m_status & status; }
static void onStatus(u32 status) { m_status |= status; }
+33 -3
View File
@@ -684,6 +684,7 @@ public:
/* 0x68 */ int mVrboxcolNumInfo;
}; // Size: 0x6C
class dBgW_base;
class dStage_roomStatus_c {
public:
/* 0x000 */ dStage_roomDt_c mRoomDt;
@@ -695,7 +696,7 @@ public:
/* 0x3F8 */ s8 mMemBlockID;
/* 0x3F9 */ u8 mRegionNo;
/* 0x3FC */ int mProcID;
/* 0x400 */ int field_0x400;
/* 0x400 */ dBgW_base* mpBgW;
int getZoneNo() const { return mZoneNo; }
~dStage_roomStatus_c() {}
@@ -723,6 +724,11 @@ public:
/* 0x04 */ void** m_dzs;
};
struct nameData {
/* 0x0 */ s8 m_num;
/* 0x1 */ char m_names[32][10]; // ?
};
static void createRoomDzs(u8 i_num) { m_roomDzs.create(i_num); }
static void* addRoomDzs(u8 i_num, u8 roomNo) { return m_roomDzs.add(i_num, roomNo); }
static void removeRoomDzs() { m_roomDzs.remove(); }
@@ -744,7 +750,7 @@ public:
/* 80024940 */ static char* getArcBank(int);
/* 80024954 */ static bool resetArchiveBank(int);
/* 80024DB0 */ static void SetTimePass(int);
/* 8025BAAC */ void setZoneNo(int, int);
/* 8025BAAC */ static void setZoneNo(int, int);
static s32 GetTimePass();
static s8 getStayNo() { return mStayNo; }
@@ -763,14 +769,28 @@ public:
static void offNoChangeRoom() { mNoChangeRoom = false; }
static void setProcID(u32 id) { mProcID = id; }
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 setFileList2(int i_roomNo, dStage_FileList2_dt_c* list) {
mStatus[i_roomNo].mRoomDt.mFileList2Info = list;
}
bool checkStatusFlag(int i_roomNo, u8 flag) const {
static void setBgW(int param_0, dBgW_base* i_bgw) {
mStatus[param_0].mpBgW = i_bgw;
}
BOOL checkStatusFlag(int i_roomNo, u8 flag) const {
return cLib_checkBit(mStatus[i_roomNo].mFlag, flag);
}
void offStatusFlag(int i_roomNo, u8 flag) {
return cLib_offBit(mStatus[i_roomNo].mFlag, flag);
}
void onStatusFlag(int i_roomNo, u8 flag) {
return cLib_onBit(mStatus[i_roomNo].mFlag, flag);
}
static JKRExpHeap* mMemoryBlock[19];
static char mArcBank[32][10];
static dStage_roomStatus_c mStatus[0x40];
@@ -917,6 +937,12 @@ static s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0);
void dStage_restartRoom(u32 roomParam, u32 mode, int param_2);
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);
inline bool dStage_roomRead_dt_c_ChkBg(u8 param_0) {
return param_0 & 0x80;
}
inline s32 dStage_roomRead_dt_c_GetVrboxswitch(roomRead_data_class& data) {
return data.field_0x2 & 8;
@@ -970,6 +996,10 @@ inline s8 dStage_stagInfo_GetTimeH(stage_stag_info_class* p_info) {
return p_info->field_0x0c >> 8;
}
inline BOOL dStage_staginfo_GetArchiveHeap(stage_stag_info_class* p_info) {
return p_info->field_0x0a & 0x1000;
}
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
+1 -1
View File
@@ -37,7 +37,7 @@ static void GxFog_set();
static void GxXFog_set();
u8 dKy_pol_argument_get(cBgS_PolyInfo const* i_poly);
void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int param_3);
void dKy_bg_MAxx_proc(void* param_0);
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE() {}
+2
View File
@@ -344,6 +344,8 @@ public:
JKRExpHeap* getResHeap() { return m_resHeap; }
void levelAllForceOnEventMove() { field_0x210.allForceOnEventMove(); }
static void onStatus(u8 status) { mStatus |= status; }
static void offStatus(u8 status) { mStatus &= ~status; }
static bool isStatus(u8 status) { return mStatus & status; }