mirror of https://github.com/zeldaret/tp.git
d_s_room / d_a_bg first pass
This commit is contained in:
parent
e1114ebcf9
commit
92c2ef1ce3
|
|
@ -15,8 +15,8 @@ lbl_804582B8:
|
|||
/* 804582EC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 804582F0 3C 63 00 02 */ addis r3, r3, 2
|
||||
/* 804582F4 3B A3 D4 F8 */ addi r29, r3, -11016
|
||||
/* 804582F8 3C 60 80 46 */ lis r3, data_80459424@ha /* 0x80459424@ha */
|
||||
/* 804582FC 3A C3 94 24 */ addi r22, r3, data_80459424@l /* 0x80459424@l */
|
||||
/* 804582F8 3C 60 80 46 */ lis r3, l_modelName@ha /* 0x80459424@ha */
|
||||
/* 804582FC 3A C3 94 24 */ addi r22, r3, l_modelName@l /* 0x80459424@l */
|
||||
lbl_80458300:
|
||||
/* 80458300 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80458304 7C 96 DA 14 */ add r4, r22, r27
|
||||
|
|
@ -26,8 +26,8 @@ lbl_80458300:
|
|||
/* 80458314 7C 78 1B 79 */ or. r24, r3, r3
|
||||
/* 80458318 40 82 00 24 */ bne lbl_8045833C
|
||||
/* 8045831C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80458320 3C 80 80 46 */ lis r4, data_80459468@ha /* 0x80459468@ha */
|
||||
/* 80458324 38 04 94 68 */ addi r0, r4, data_80459468@l /* 0x80459468@l */
|
||||
/* 80458320 3C 80 80 46 */ lis r4, l_modelName2@ha /* 0x80459468@ha */
|
||||
/* 80458324 38 04 94 68 */ addi r0, r4, l_modelName2@l /* 0x80459468@l */
|
||||
/* 80458328 7C 80 DA 14 */ add r4, r0, r27
|
||||
/* 8045832C 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80458330 38 C0 00 40 */ li r6, 0x40
|
||||
|
|
@ -55,8 +55,8 @@ lbl_80458374:
|
|||
/* 8045837C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80458380 41 80 FF E0 */ blt lbl_80458360
|
||||
/* 80458384 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80458388 3C 80 80 46 */ lis r4, data_804594AC@ha /* 0x804594AC@ha */
|
||||
/* 8045838C 38 04 94 AC */ addi r0, r4, data_804594AC@l /* 0x804594AC@l */
|
||||
/* 80458388 3C 80 80 46 */ lis r4, l_btkName@ha /* 0x804594AC@ha */
|
||||
/* 8045838C 38 04 94 AC */ addi r0, r4, l_btkName@l /* 0x804594AC@l */
|
||||
/* 80458390 7C 80 DA 14 */ add r4, r0, r27
|
||||
/* 80458394 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80458398 38 C0 00 40 */ li r6, 0x40
|
||||
|
|
@ -91,8 +91,8 @@ lbl_804583F8:
|
|||
/* 804583FC C0 03 93 88 */ lfs f0, lit_4125@l(r3) /* 0x80459388@l */
|
||||
/* 80458400 D0 1E 00 10 */ stfs f0, 0x10(r30)
|
||||
/* 80458404 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80458408 3C 80 80 46 */ lis r4, data_804594F0@ha /* 0x804594F0@ha */
|
||||
/* 8045840C 38 04 94 F0 */ addi r0, r4, data_804594F0@l /* 0x804594F0@l */
|
||||
/* 80458408 3C 80 80 46 */ lis r4, l_brkName@ha /* 0x804594F0@ha */
|
||||
/* 8045840C 38 04 94 F0 */ addi r0, r4, l_brkName@l /* 0x804594F0@l */
|
||||
/* 80458410 7C 80 DA 14 */ add r4, r0, r27
|
||||
/* 80458414 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80458418 38 C0 00 40 */ li r6, 0x40
|
||||
|
|
|
|||
|
|
@ -106,8 +106,8 @@ lbl_80458A38:
|
|||
/* 80458A44 41 80 FF AC */ blt lbl_804589F0
|
||||
/* 80458A48 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 80458A4C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 80458A50 3C 80 80 46 */ lis r4, data_80459534@ha /* 0x80459534@ha */
|
||||
/* 80458A54 38 84 95 34 */ addi r4, r4, data_80459534@l /* 0x80459534@l */
|
||||
/* 80458A50 3C 80 80 46 */ lis r4, l_tevStrType@ha /* 0x80459534@ha */
|
||||
/* 80458A54 38 84 95 34 */ addi r4, r4, l_tevStrType@l /* 0x80459534@l */
|
||||
/* 80458A58 7C 84 F0 2E */ lwzx r4, r4, r30
|
||||
/* 80458A5C 38 A0 00 00 */ li r5, 0
|
||||
/* 80458A60 80 D6 00 0C */ lwz r6, 0xc(r22)
|
||||
|
|
|
|||
|
|
@ -368,6 +368,9 @@ public:
|
|||
calcTransform(getFrame(), param_0, pSRTInfo);
|
||||
}
|
||||
|
||||
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
|
||||
u16 getUpdateMaterialNum() const { return field_0x14 / 3; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x10 */ int field_0x10;
|
||||
|
|
@ -379,7 +382,7 @@ private:
|
|||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ int field_0x24;
|
||||
/* 0x28 */ u8 mUpdateTexMtxID[4];
|
||||
/* 0x2C */ u16 mUpdateMaterialID[2];
|
||||
/* 0x2C */ u16* mUpdateMaterialID;
|
||||
/* 0x30 */ JUTNameTab field_0x30;
|
||||
/* 0x40 */ int field_0x40;
|
||||
/* 0x44 */ u16 field_0x44;
|
||||
|
|
@ -427,6 +430,12 @@ public:
|
|||
/* 8032BD9C */ virtual ~J3DAnmTevRegKey();
|
||||
/* 8032BE24 */ virtual s32 getKind() const;
|
||||
|
||||
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
|
||||
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
|
||||
|
||||
u16 getCRegUpdateMaterialID(u16 idx) const { return mCRegUpdateMaterialID[idx]; }
|
||||
u16 getKRegUpdateMaterialID(u16 idx) const { return mKRegUpdateMaterialID[idx]; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ u16 mCRegUpdateMaterialNum;
|
||||
/* 0x0E */ u16 mKRegUpdateMaterialNum;
|
||||
|
|
@ -438,8 +447,10 @@ private:
|
|||
/* 0x1A */ u16 field_0x1a;
|
||||
/* 0x1C */ u16 field_0x1c;
|
||||
/* 0x1E */ u16 field_0x1e;
|
||||
/* 0x20 */ u16 mCRegUpdateMaterialID[20];
|
||||
/* 0x34 */ u16 mKRegUpdateMaterialID[20];
|
||||
/* 0x20 */ u16* mCRegUpdateMaterialID;
|
||||
/* 0x24 */ u8 field_0x24[0x34 - 0x24];
|
||||
/* 0x34 */ u16* mKRegUpdateMaterialID;
|
||||
/* 0x38 */ u8 field_0x38[0x48 - 0x38];
|
||||
/* 0x48 */ void* field_0x48;
|
||||
/* 0x4C */ void* field_0x4c;
|
||||
/* 0x50 */ int field_0x50;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public:
|
|||
J3DTexture* getTexture() const { return mTexture; }
|
||||
JUTNameTab* getTextureName() const { return mTextureName; }
|
||||
|
||||
JUTNameTab* getMaterialName() const { return mMaterialName; }
|
||||
|
||||
u16 getMaterialNum() const { return mMaterialNum; }
|
||||
bool isLocked() const { return field_0x1c == 1; }
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public:
|
|||
/* 8032617C */ virtual ~J3DModelData();
|
||||
|
||||
J3DMaterialTable& getMaterialTable() { return mMaterialTable; }
|
||||
JUTNameTab* getMaterialName() const { return mMaterialTable.getMaterialName(); }
|
||||
J3DVertexData& getVertexData() { return mVertexData; }
|
||||
u16 getShapeNum() const { return mShapeTable.getShapeNum(); }
|
||||
u16 getMaterialNum() const { return mMaterialTable.getMaterialNum(); }
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@ public:
|
|||
u32 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
|
||||
|
||||
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
|
||||
void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
|
||||
void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
|
||||
|
||||
public:
|
||||
/* 0x04 */ J3DMaterial* mNext;
|
||||
|
|
|
|||
|
|
@ -97,16 +97,19 @@ public:
|
|||
void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; }
|
||||
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
|
||||
void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; }
|
||||
void setTexMtxLoadType(u32 type) { mFlags = (mFlags & 0xFFFF0FFF) | type; }
|
||||
bool getNBTFlag() const { return mHasNBT; }
|
||||
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
|
||||
|
||||
inline J3DMaterial* getMaterial() const { return mMaterial; }
|
||||
inline u32 getIndex() const { return mIndex; }
|
||||
inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
|
||||
inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
||||
inline u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
||||
inline J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
|
||||
inline J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
|
||||
J3DMaterial* getMaterial() const { return mMaterial; }
|
||||
u32 getIndex() const { return mIndex; }
|
||||
u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
|
||||
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
||||
u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
||||
J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
|
||||
J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
|
||||
Vec* getMin() { return &mMin; }
|
||||
Vec* getMax() { return &mMax; }
|
||||
|
||||
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -26,4 +26,8 @@ inline int fopScnM_LayerID(void* proc) {
|
|||
return fpcM_LayerID(proc);
|
||||
}
|
||||
|
||||
inline u32 fopScnM_GetParam(void* proc) {
|
||||
return fpcM_GetParam(proc);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "f_pc/f_pc_stdcreate_req.h"
|
||||
#include "f_pc/f_pc_executor.h"
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
#include "f_pc/f_pc_layer_iter.h"
|
||||
|
||||
typedef int (*FastCreateReqFunc)(void*);
|
||||
typedef void (*fpcM_ManagementFunc)(void);
|
||||
|
|
@ -66,6 +67,10 @@ inline BOOL fpcM_IsExecuting(unsigned int id) {
|
|||
return fpcEx_IsExist(id);
|
||||
}
|
||||
|
||||
inline void* fpcM_LyJudge(process_node_class* i_node, fpcLyIt_JudgeFunc i_func, void* i_data) {
|
||||
return fpcLyIt_Judge(&i_node->mLayer, i_func, i_data);
|
||||
}
|
||||
|
||||
void fpcM_Draw(void* pProc);
|
||||
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc);
|
||||
s32 fpcM_Execute(void* pProc);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,10 @@ public:
|
|||
}
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeTexMtxAnimator(mpAnm); }
|
||||
void entryFrame() { entryFrame(getFrame()); }
|
||||
void entryFrame(f32 frame) { setFrame(frame); }
|
||||
|
||||
J3DAnmTextureSRTKey* getBtkAnm() const { return mpAnm; }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmTextureSRTKey* mpAnm;
|
||||
|
|
@ -87,6 +91,10 @@ public:
|
|||
}
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeTevRegAnimator(mpAnm); }
|
||||
void entryFrame() { entryFrame(getFrame()); }
|
||||
void entryFrame(f32 frame) { setFrame(frame); }
|
||||
|
||||
J3DAnmTevRegKey* getBrkAnm() const { return mpAnm; }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmTevRegKey* mpAnm;
|
||||
|
|
@ -508,6 +516,7 @@ J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 param_1, u32 pa
|
|||
void mDoExt_setAraCacheSize(u32 size);
|
||||
int mDoExt_resIDToIndex(JKRArchive* p_archive, u16 id);
|
||||
void mDoExt_modelEntryDL(J3DModel* i_model);
|
||||
void mDoExt_setupStageTexture(J3DModelData* i_modelData);
|
||||
|
||||
struct JUTFont;
|
||||
JUTFont* mDoExt_getMesgFont();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,15 @@
|
|||
struct mDoLib_clipper {
|
||||
/* 8001528C */ void setup(f32, f32, f32, f32);
|
||||
|
||||
static void changeFar(f32 far) {
|
||||
mClipper.setFar(far);
|
||||
mClipper.calcViewFrustum();
|
||||
}
|
||||
|
||||
static u32 clip(const Mtx m, const Vec* param_1, const Vec* param_2) {
|
||||
return mClipper.clip(m, (Vec*)param_1, (Vec*)param_2);
|
||||
}
|
||||
|
||||
static J3DUClipper mClipper;
|
||||
static f32 mSystemFar;
|
||||
static f32 mFovyRate;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ M3_O_FILES := \
|
|||
M3_LIBS := \
|
||||
|
||||
M3_CFLAGS := \
|
||||
-pool off \
|
||||
-sdata 0 \
|
||||
-sdata2 0 \
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1365,10 +1365,10 @@ int dComIfGd_setSimpleShadow(cXyz* i_pos, f32 param_1, f32 param_2, cBgS_PolyInf
|
|||
}
|
||||
|
||||
/* 8002D1AC-8002D25C 027AEC 00B0+00 0/0 0/0 1/1 .text dComIfGp_getMapTrans__FiPfPfPs */
|
||||
int dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle) {
|
||||
bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle) {
|
||||
dStage_Multi_c* multi = dComIfGp_getMulti();
|
||||
if (multi == NULL) {
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
dStage_Mult_info* info = multi->mInfo;
|
||||
|
|
@ -1377,12 +1377,12 @@ int dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angl
|
|||
*o_transX = info->mTransX;
|
||||
*o_transY = info->mTransY;
|
||||
*o_angle = info->mAngle;
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
info++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8002D25C-8002D2AC 027B9C 0050+00 0/0 3/3 3/3 .text dComIfGp_getRoomCamera__Fi */
|
||||
|
|
|
|||
|
|
@ -528,7 +528,7 @@ void dStage_roomControl_c::init() {
|
|||
}
|
||||
|
||||
status->mMemBlockID = -1;
|
||||
status->field_0x400 = 0;
|
||||
status->mpBgW = NULL;
|
||||
status++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,24 +5,25 @@
|
|||
|
||||
#include "d/s/d_s_room.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_scene.h"
|
||||
|
||||
static bool resetArchiveBank(int param_0);
|
||||
static bool setArchiveBank(int param_0);
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
class room_of_scene_class : public process_node_class {
|
||||
class room_of_scene_class : public scene_class {
|
||||
public:
|
||||
/* 0x1AC */ process_method_class* mpProcessMtd;
|
||||
/* 0x1B0 */ scene_tag_class* field_0x1b0;
|
||||
/* 0x1B4 */ u8 field_0x1b4[0x10];
|
||||
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
|
||||
/* 0x1CC */ void* field_0x1cc;
|
||||
/* 0x1D0 */ dStage_roomDt_c* field_0x1d0;
|
||||
/* 0x1CC */ void* mpDzrRes;
|
||||
/* 0x1D0 */ dStage_roomDt_c* mpRoomDt;
|
||||
/* 0x1D4 */ s8 field_0x1d4;
|
||||
/* 0x1D5 */ s8 field_0x1d5;
|
||||
/* 0x1D5 */ u8 field_0x1d5;
|
||||
/* 0x1D6 */ u8 field_0x1d6[2];
|
||||
/* 0x1D8 */ u8 field_0x1d8;
|
||||
};
|
||||
|
|
@ -110,15 +111,14 @@ extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
|
|||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 mArcBankName__20dStage_roomControl_c[4];
|
||||
extern "C" u8 mArcBankData__20dStage_roomControl_c[4];
|
||||
extern "C" extern u8 pauseTimer__9dScnPly_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8025AE1C-8025AE24 25575C 0008+00 1/0 0/0 0/0 .text dScnRoom_Draw__FP19room_of_scene_class */
|
||||
static bool dScnRoom_Draw(room_of_scene_class* param_0) {
|
||||
return true;
|
||||
static int dScnRoom_Draw(room_of_scene_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
|
|
@ -132,21 +132,17 @@ SECTION_DEAD static char const* const stringBase_8039A388 = "";
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void getResetArchiveBank(int param_0, u8 const** param_1) {
|
||||
static asm int getResetArchiveBank(int param_0, u8 const** param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/getResetArchiveBank__FiPPCUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025AF24-8025AF4C 255864 0028+00 1/1 0/0 0/0 .text resetArchiveBank__Fi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void resetArchiveBank(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/resetArchiveBank__Fi.s"
|
||||
static bool resetArchiveBank(int param_0) {
|
||||
const u8* tmp;
|
||||
return dStage_roomControl_c::resetArchiveBank(getResetArchiveBank(param_0, &tmp));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A388-8039A388 0269E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
@ -161,51 +157,44 @@ SECTION_DEAD static char const* const stringBase_8039A39B = "Bank[%d] : %s.arc R
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void setArchiveBank(int param_0) {
|
||||
static asm bool setArchiveBank(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/setArchiveBank__Fi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B0F0-8025B150 255A30 0060+00 1/1 0/0 0/0 .text objectDeleteJugge__FPvPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void objectDeleteJugge(void* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/objectDeleteJugge__FPvPv.s"
|
||||
static int objectDeleteJugge(void* i_obj, void*) {
|
||||
if (fpcM_GetProfName(i_obj) != PROC_BG) {
|
||||
if (fopAcM_IsActor(i_obj) && !fopAcM_CheckCondition((fopAc_ac_c*)i_obj, 4)) {
|
||||
return 0;
|
||||
}
|
||||
fpcM_Delete(i_obj);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B150-8025B174 255A90 0024+00 1/1 0/0 0/0 .text deleteJugge__FPvPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void deleteJugge(void* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/deleteJugge__FPvPv.s"
|
||||
static int deleteJugge(void* i_obj, void*) {
|
||||
fpcM_Delete(i_obj);
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B174-8025B194 255AB4 0020+00 1/1 0/0 0/0 .text isCreatingCallback__FP10create_tagPUi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void isCreatingCallback(create_tag* param_0, unsigned int* param_1) {
|
||||
static asm void* isCreatingCallback(create_tag* param_0, unsigned int* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/isCreatingCallback__FP10create_tagPUi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B194-8025B1D0 255AD4 003C+00 2/2 0/0 0/0 .text isCreating__FUi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void isCreating(unsigned int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/isCreating__FUi.s"
|
||||
static bool isCreating(unsigned int param_0) {
|
||||
return fpcCtIt_Judge((fpcCtIt_JudgeFunc)isCreatingCallback, ¶m_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A388-8039A388 0269E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
@ -225,146 +214,269 @@ static asm void loadDemoArchive(int param_0) {
|
|||
#pragma pop
|
||||
|
||||
/* 8025B2EC-8025B564 255C2C 0278+00 3/3 0/0 0/0 .text objectSetCheck__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void objectSetCheck(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/objectSetCheck__FP19room_of_scene_class.s"
|
||||
static bool objectSetCheck(room_of_scene_class* i_this) {
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
BOOL status_flag_8 = dComIfGp_roomControl_checkStatusFlag(roomNo, 8);
|
||||
BOOL status_flag_20 = dComIfGp_roomControl_checkStatusFlag(roomNo, 0x20);
|
||||
|
||||
if (i_this->field_0x1d4 == 0 || (i_this->field_0x1d4 > 0 && !status_flag_8)) {
|
||||
if (!status_flag_8) {
|
||||
switch (i_this->field_0x1d4) {
|
||||
case 0:
|
||||
if (!resetArchiveBank(roomNo)) {
|
||||
return 0;
|
||||
}
|
||||
i_this->field_0x1d4++;
|
||||
case 1:
|
||||
if (!setArchiveBank(roomNo)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (i_this->mpDzrRes != NULL) {
|
||||
loadDemoArchive(roomNo);
|
||||
}
|
||||
default:
|
||||
if (*dStage_roomControl_c::getDemoArcName() != '\0') {
|
||||
int phase = dComIfG_syncObjectRes(dStage_roomControl_c::getDemoArcName());
|
||||
|
||||
if (phase >= 0 && phase > 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
fopAcM_create(PROC_BG, roomNo, NULL, -1, NULL, NULL, -1);
|
||||
dComIfGp_getPEvtManager()->demoInit();
|
||||
dComIfGp_getPEvtManager()->roomInit(roomNo);
|
||||
dStage_dt_c_roomReLoader(i_this->mpDzrRes, i_this->mpRoomDt, roomNo);
|
||||
dComIfGp_ret_wp_set(roomNo);
|
||||
i_this->field_0x1d4 = -1;
|
||||
i_this->field_0x1d5 = 1;
|
||||
}
|
||||
}
|
||||
} else if (status_flag_8) {
|
||||
if (isCreating(fpcM_LayerID(i_this))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fpcM_LyJudge(&i_this->mBase, (fpcLyIt_JudgeFunc)deleteJugge, NULL);
|
||||
g_dComIfG_gameInfo.play.getParticle()->levelAllForceOnEventMove();
|
||||
dComIfGs_clearRoomSwitch(dComIfGp_roomControl_getZoneNo(roomNo));
|
||||
dComIfGs_clearRoomItem(dComIfGp_roomControl_getZoneNo(roomNo));
|
||||
dComIfGp_roomControl_offStatusFlag(roomNo, 0x20);
|
||||
i_this->field_0x1d4 = 0;
|
||||
} else if (status_flag_20) {
|
||||
fpcM_LyJudge(&i_this->mBase, (fpcLyIt_JudgeFunc)objectDeleteJugge, NULL);
|
||||
g_dComIfG_gameInfo.play.getParticle()->levelAllForceOnEventMove();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B564-8025B674 255EA4 0110+00 1/0 0/0 0/0 .text dScnRoom_Execute__FP19room_of_scene_class */
|
||||
#ifdef NONMATCHING
|
||||
static int dScnRoom_Execute(room_of_scene_class* i_this) {
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
|
||||
if (dComIfGp_roomControl_checkStatusFlag(roomNo, 2)) {
|
||||
dComIfGp_roomControl_offStatusFlag(roomNo, 2);
|
||||
dComIfGp_roomControl_onStatusFlag(roomNo, 1);
|
||||
} else if (objectSetCheck(i_this)) {
|
||||
if (dComIfGp_roomControl_checkStatusFlag(roomNo, 4)) {
|
||||
fopScnM_DeleteReq(i_this);
|
||||
} else if (i_this->field_0x1d4 < 0 && i_this->field_0x1d5 != 0 &&
|
||||
!i_dComIfGp_event_runCheck() &&
|
||||
(int)fopScnM_GetParam(i_this) == dComIfGp_roomControl_getStayNo()) {
|
||||
if (isCreating(fpcM_LayerID(i_this))) {
|
||||
dScnPly_c::setPauseTimer(2);
|
||||
} else {
|
||||
i_this->field_0x1d5 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dScnRoom_Execute(room_of_scene_class* param_0) {
|
||||
static asm int dScnRoom_Execute(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/dScnRoom_Execute__FP19room_of_scene_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8025B674-8025B67C 255FB4 0008+00 1/0 0/0 0/0 .text dScnRoom_IsDelete__FP19room_of_scene_class
|
||||
*/
|
||||
static bool dScnRoom_IsDelete(room_of_scene_class* param_0) {
|
||||
return true;
|
||||
static int dScnRoom_IsDelete(room_of_scene_class*) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8025B67C-8025B73C 255FBC 00C0+00 1/1 0/0 0/0 .text isReadRoom__Fi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void isReadRoom(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/isReadRoom__Fi.s"
|
||||
static bool isReadRoom(int param_0) {
|
||||
roomRead_class* room = dComIfGp_getStageRoom();
|
||||
|
||||
if (room == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (room->field_0x0 <= param_0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
roomRead_data_class* roomData = room->field_0x4[dComIfGp_getNextStageRoomNo()];
|
||||
u8* tmp = roomData->field_0x4;
|
||||
|
||||
for (int i = 0; i < roomData->field_0x0; i++) {
|
||||
if (dStage_roomRead_dt_c_ChkBg(*tmp) &&
|
||||
param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp)) {
|
||||
return true;
|
||||
}
|
||||
tmp++;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
inline const char* setArcName(room_of_scene_class* i_room) {
|
||||
return dComIfG_getRoomArcName(fopAcM_GetParam(i_room));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B73C-8025B870 25607C 0134+00 1/0 0/0 0/0 .text dScnRoom_Delete__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dScnRoom_Delete(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/dScnRoom_Delete__FP19room_of_scene_class.s"
|
||||
static int dScnRoom_Delete(room_of_scene_class* i_this) {
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
dComIfGp_roomControl_setStatusFlag(roomNo, 0);
|
||||
dComIfGp_roomControl_getStatusRoomDt(roomNo)->mRoomDt.init();
|
||||
|
||||
if (mDoRst::isReset() || !dComIfGp_isEnableNextStage() ||
|
||||
strcmp(dComIfGp_getNextStageName(), dComIfGp_getStartStageName()) ||
|
||||
(roomNo != dComIfGp_getNextStageRoomNo() && !isReadRoom(roomNo))) {
|
||||
dComIfG_deleteStageRes(setArcName(i_this));
|
||||
|
||||
JKRExpHeap* heap = dStage_roomControl_c::getMemoryBlock(roomNo);
|
||||
if (heap != NULL) {
|
||||
heap->freeAll();
|
||||
}
|
||||
}
|
||||
|
||||
dComIfGp_roomControl_getStatusRoomDt(roomNo)->mRoomDt.init();
|
||||
dComIfGp_getPEvtManager()->roomFinish(roomNo);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B870-8025B8A4 2561B0 0034+00 1/0 0/0 0/0 .text phase_0__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void phase_0(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/phase_0__FP19room_of_scene_class.s"
|
||||
static int phase_0(room_of_scene_class* i_this) {
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
dStage_roomControl_c::setStatusProcID(roomNo, fopScnM_GetID(i_this));
|
||||
return 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025B8A4-8025B980 2561E4 00DC+00 1/0 0/0 0/0 .text phase_1__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void phase_1(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/phase_1__FP19room_of_scene_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
static int phase_1(room_of_scene_class* i_this) {
|
||||
i_this->field_0x1d8 = 1;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A388-8039A388 0269E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039A3CA = "room.dzr";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039A3D3 = "\0\0\0\0";
|
||||
#pragma pop
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
const char* arcName = setArcName(i_this);
|
||||
|
||||
if (dComIfG_syncStageRes(arcName) < 0) {
|
||||
JKRExpHeap* heap = dStage_roomControl_c::getMemoryBlock(roomNo);
|
||||
|
||||
if (heap != NULL) {
|
||||
if (heap->getTotalUsedSize() != 0) {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
stage_stag_info_class* stagInfo = i_dComIfGp_getStage()->getStagInfo();
|
||||
|
||||
if (dStage_staginfo_GetArchiveHeap(stagInfo) != NULL) {
|
||||
heap = mDoExt_getArchiveHeap();
|
||||
}
|
||||
}
|
||||
|
||||
if (!dComIfG_setStageRes(arcName, heap)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* 8025B980-8025BAAC 2562C0 012C+00 1/0 0/0 0/0 .text phase_2__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void phase_2(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/phase_2__FP19room_of_scene_class.s"
|
||||
static int phase_2(room_of_scene_class* i_this) {
|
||||
const char* arcName = setArcName(i_this);
|
||||
int phase = dComIfG_syncStageRes(arcName);
|
||||
|
||||
if (phase < 0) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (phase != 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int roomNo = fopScnM_GetParam(i_this);
|
||||
if (dComIfGp_roomControl_getZoneNo(roomNo) < 0) {
|
||||
dComIfGp_roomControl_setZoneNo(roomNo, dComIfGs_createZone(roomNo));
|
||||
}
|
||||
|
||||
i_this->mpRoomDt = &dComIfGp_roomControl_getStatusRoomDt(roomNo)->mRoomDt;
|
||||
i_this->mpRoomDt->setRoomNo(roomNo);
|
||||
i_this->mpDzrRes = dComIfG_getStageRes(arcName, "room.dzr");
|
||||
|
||||
if (i_this->mpDzrRes != NULL) {
|
||||
dStage_dt_c_roomLoader(i_this->mpDzrRes, i_this->mpRoomDt, roomNo);
|
||||
}
|
||||
|
||||
JKRHeap* old_heap = NULL;
|
||||
JKRExpHeap* heap = dStage_roomControl_c::getMemoryBlock(roomNo);
|
||||
|
||||
if (heap != NULL) {
|
||||
old_heap = mDoExt_setCurrentHeap(heap);
|
||||
}
|
||||
|
||||
if (old_heap != NULL) {
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
}
|
||||
|
||||
return 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BAAC-8025BAC4 2563EC 0018+00 1/1 0/0 0/0 .text setZoneNo__20dStage_roomControl_cFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dStage_roomControl_c::setZoneNo(int param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/setZoneNo__20dStage_roomControl_cFii.s"
|
||||
void dStage_roomControl_c::setZoneNo(int i_roomNo, int i_zoneNo) {
|
||||
mStatus[i_roomNo].mZoneNo = i_zoneNo;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BAC4-8025BAF8 256404 0034+00 1/0 0/0 0/0 .text phase_3__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void phase_3(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/phase_3__FP19room_of_scene_class.s"
|
||||
static int phase_3(room_of_scene_class* i_this) {
|
||||
return objectSetCheck(i_this) ? 2 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BAF8-8025BB48 256438 0050+00 1/0 0/0 0/0 .text phase_4__FP19room_of_scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void phase_4(room_of_scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/phase_4__FP19room_of_scene_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
static int phase_4(room_of_scene_class* i_this) {
|
||||
if (dComIfGp_getPlayer(0) == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3260-803C3274 -00001 0014+00 1/1 0/0 0/0 .data l_method$4056 */
|
||||
SECTION_DATA static void* l_method[5] = {
|
||||
(void*)phase_0__FP19room_of_scene_class, (void*)phase_1__FP19room_of_scene_class,
|
||||
(void*)phase_2__FP19room_of_scene_class, (void*)phase_3__FP19room_of_scene_class,
|
||||
(void*)phase_4__FP19room_of_scene_class,
|
||||
};
|
||||
return objectSetCheck(i_this) ? cPhs_COMPLEATE_e : 0;
|
||||
}
|
||||
|
||||
/* 8025BB48-8025BB78 256488 0030+00 1/0 0/0 0/0 .text dScnRoom_Create__FP11scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dScnRoom_Create(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_room/dScnRoom_Create__FP11scene_class.s"
|
||||
static int dScnRoom_Create(scene_class* i_this) {
|
||||
static int (*l_method[5])(void*) = {
|
||||
(int (*)(void*))phase_0, (int (*)(void*))phase_1, (int (*)(void*))phase_2,
|
||||
(int (*)(void*))phase_3, (int (*)(void*))phase_4,
|
||||
};
|
||||
|
||||
room_of_scene_class* room = static_cast<room_of_scene_class*>(i_this);
|
||||
return dComLbG_PhaseHandler(&room->field_0x1c4, l_method, i_this);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3274-803C3288 -00001 0014+00 1/0 0/0 0/0 .data l_dScnRoom_Method */
|
||||
SECTION_DATA static void* l_dScnRoom_Method[5] = {
|
||||
(void*)dScnRoom_Create__FP11scene_class,
|
||||
(void*)dScnRoom_Delete__FP19room_of_scene_class,
|
||||
(void*)dScnRoom_Execute__FP19room_of_scene_class,
|
||||
(void*)dScnRoom_IsDelete__FP19room_of_scene_class,
|
||||
(void*)dScnRoom_Draw__FP19room_of_scene_class,
|
||||
(void*)dScnRoom_Create, (void*)dScnRoom_Delete, (void*)dScnRoom_Execute,
|
||||
(void*)dScnRoom_IsDelete, (void*)dScnRoom_Draw,
|
||||
};
|
||||
|
||||
/* 803C3288-803C32B0 -00001 0028+00 0/0 0/0 1/0 .data g_profile_ROOM_SCENE */
|
||||
|
|
|
|||
Loading…
Reference in New Issue