mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
obj_pdwall / obj_rw / obj_stopper2 done (#2760)
* obj_pdwall / obj_rw / obj_stopper2 done * fix jp/pal * Use NULL instead of 0 * Use dEvtCnd_CANDEMO_e --------- Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
This commit is contained in:
@@ -13,3 +13,4 @@ d/actor/d_a_obj_stopper2.cpp:
|
||||
.text start:0x00000078 end:0x00000BC8
|
||||
.rodata start:0x00000000 end:0x00000074
|
||||
.data start:0x00000000 end:0x000000F4
|
||||
.bss start:0x00000000 end:0x00000004
|
||||
|
||||
@@ -13,3 +13,4 @@ d/actor/d_a_obj_stopper2.cpp:
|
||||
.text start:0x00000078 end:0x00000BC8
|
||||
.rodata start:0x00000000 end:0x00000074
|
||||
.data start:0x00000000 end:0x000000F4
|
||||
.bss start:0x00000000 end:0x00000004
|
||||
|
||||
+3
-3
@@ -2147,7 +2147,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_onsenTaru"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdoor"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdtile"),
|
||||
ActorRel(NonMatching, "d_a_obj_pdwall"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdwall"),
|
||||
ActorRel(NonMatching, "d_a_obj_picture"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pillar"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pleaf"),
|
||||
@@ -2165,7 +2165,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_rotTrap"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_roten"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_rstair"),
|
||||
ActorRel(NonMatching, "d_a_obj_rw"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_rw"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_saidan"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_sakuita"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_sakuita_rope"),
|
||||
@@ -2191,7 +2191,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_stairBlock"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_stone"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_stopper"),
|
||||
ActorRel(NonMatching, "d_a_obj_stopper2"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_stopper2"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_suisya"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_sw"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_swBallA"),
|
||||
|
||||
@@ -132,7 +132,11 @@ struct J3DSys {
|
||||
J3DMatPacket* getMatPacket() { return mMatPacket; }
|
||||
void setMaterialMode(u32 mode) { mMaterialMode = mode; }
|
||||
|
||||
void setCurrentMtxCalc(J3DMtxCalc * pCalc) { mCurrentMtxCalc = pCalc; }
|
||||
void setCurrentMtxCalc(J3DMtxCalc * pCalc) {
|
||||
J3D_ASSERT_NULLPTR(210, pCalc != NULL);
|
||||
mCurrentMtxCalc = pCalc;
|
||||
}
|
||||
|
||||
J3DMtxCalc * getCurrentMtxCalc() const { return mCurrentMtxCalc; }
|
||||
|
||||
void setTexture(J3DTexture* pTex) { mTexture = pTex; }
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_OBJ_PDWALL_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -11,19 +12,31 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjPDwall_c : public fopAc_ac_c {
|
||||
class daObjPDwall_c : public dBgS_MoveBgActor, public request_of_phase_process_class {
|
||||
public:
|
||||
/* 80CAC7F8 */ void create1st();
|
||||
/* 80CAC7F8 */ int create1st();
|
||||
/* 80CAC8DC */ void setMtx();
|
||||
/* 80CACA44 */ void CreateHeap();
|
||||
/* 80CACBA8 */ void Create();
|
||||
/* 80CACCE0 */ void Execute(Mtx**);
|
||||
/* 80CACF14 */ void Draw();
|
||||
/* 80CACFD4 */ void Delete();
|
||||
/* 80CAD140 */ ~daObjPDwall_c();
|
||||
|
||||
/* 80CACA44 */ virtual int CreateHeap();
|
||||
/* 80CACBA8 */ virtual int Create();
|
||||
/* 80CACCE0 */ virtual int Execute(Mtx**);
|
||||
/* 80CACF14 */ virtual int Draw();
|
||||
/* 80CACFD4 */ virtual int Delete();
|
||||
/* 80CAD140 */ virtual ~daObjPDwall_c() {}
|
||||
|
||||
int getSwNo() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xa18 - 0x568];
|
||||
/* 0x5A8 */ Mtx field_0x5a8;
|
||||
/* 0x5D8 */ J3DModel* mpModels[10];
|
||||
/* 0x600 */ Mtx field_0x600[10];
|
||||
/* 0x7E0 */ f32 field_0x7e0[10];
|
||||
/* 0x808 */ f32 field_0x808[10];
|
||||
/* 0x830 */ u8 field_0x830[10];
|
||||
/* 0x83C */ dBgW* mpBgw[9];
|
||||
/* 0x860 */ Mtx mMtx[9];
|
||||
/* 0xA10 */ u8 field_0xa10;
|
||||
/* 0xA14 */ int field_0xa14;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjPDwall_c) == 0xa18);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -12,23 +13,30 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class obj_rw_class : public fopAc_ac_c {
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xe3c - 0x568];
|
||||
class obj_rw_class {
|
||||
public:
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
/* 0x5AC */ request_of_phase_process_class phase;
|
||||
/* 0x5B4 */ J3DModel* model;
|
||||
/* 0x5B8 */ Z2CreatureEnemy sound;
|
||||
/* 0x65C */ u32 shadowId;
|
||||
/* 0x660 */ s16 field_0x660;
|
||||
/* 0x662 */ s16 action;
|
||||
/* 0x664 */ s16 mode;
|
||||
/* 0x666 */ s16 field_0x666[2];
|
||||
/* 0x66A */ s16 invulnerability_timer;
|
||||
/* 0x66C */ f32 field_0x66c;
|
||||
/* 0x670 */ s16 field_0x670;
|
||||
/* 0x672 */ s16 field_0x672;
|
||||
/* 0x674 */ s16 field_0x674;
|
||||
/* 0x678 */ dCcD_Stts ccStts;
|
||||
/* 0x6B4 */ dCcD_Sph ccSph[2];
|
||||
/* 0x924 */ dCcD_Cyl ccCyl[4];
|
||||
/* 0xE14 */ dCcU_AtInfo atInfo;
|
||||
/* 0xE38 */ s8 field_0xe38;
|
||||
/* 0xE39 */ u8 HIOInit;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(obj_rw_class) == 0xe3c);
|
||||
|
||||
struct daObj {
|
||||
public:
|
||||
/* 80037900 */ void HitSeStart(cXyz const*, int, dCcD_GObjInf const*, u32);
|
||||
};
|
||||
|
||||
class daOBJ_RW_HIO_c {
|
||||
public:
|
||||
/* 80CC298C */ daOBJ_RW_HIO_c();
|
||||
/* 80CC3A5C */ ~daOBJ_RW_HIO_c();
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_RW_H */
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
/* 80CEF368 */ J3DModelData* getStopModelData();
|
||||
/* 80CEF38C */ void initBaseMtx();
|
||||
/* 80CEF3C8 */ void setBaseMtx();
|
||||
/* 80CEF434 */ float getMaxOffsetY();
|
||||
/* 80CEF434 */ f32 getMaxOffsetY();
|
||||
/* 80CEF44C */ int Create();
|
||||
/* 80CEF57C */ int CreateHeap();
|
||||
/* 80CEF5C8 */ int create();
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
/* 80CEF98C */ void actionOrderEvent();
|
||||
/* 80CEFA60 */ void actionEvent();
|
||||
/* 80CEFAD4 */ void actionDead();
|
||||
/* 80CEFAD8 */ void demoProc();
|
||||
/* 80CEFAD8 */ int demoProc();
|
||||
/* 80CEFD40 */ int draw();
|
||||
/* 80CEFDB8 */ int _delete();
|
||||
|
||||
@@ -38,13 +38,13 @@ public:
|
||||
private:
|
||||
/* 0x568 */ request_of_phase_process_class mPhaseReq;
|
||||
/* 0x570 */ J3DModel* mpModel;
|
||||
/* 0x574 */ f32 field_0x574;
|
||||
/* 0x578 */ s32 field_0x578;
|
||||
/* 0x57C */ u16 field_0x57c[4];
|
||||
/* 0x574 */ f32 mOffsetY;
|
||||
/* 0x578 */ int mStaffId;
|
||||
/* 0x57C */ s16 mEventIdx[4];
|
||||
/* 0x584 */ u8 field_0x584;
|
||||
/* 0x585 */ u8 field_0x585;
|
||||
/* 0x585 */ u8 mTool;
|
||||
/* 0x586 */ u8 mAction;
|
||||
/* 0x587 */ u8 field_0x587;
|
||||
/* 0x587 */ u8 mTimer;
|
||||
/* 0x588 */ u8 field_0x588;
|
||||
};
|
||||
|
||||
|
||||
+174
-201
@@ -6,196 +6,213 @@
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_pdwall.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void create1st__13daObjPDwall_cFv();
|
||||
extern "C" void setMtx__13daObjPDwall_cFv();
|
||||
extern "C" void CreateHeap__13daObjPDwall_cFv();
|
||||
extern "C" void Create__13daObjPDwall_cFv();
|
||||
extern "C" void Execute__13daObjPDwall_cFPPA3_A4_f();
|
||||
extern "C" void Draw__13daObjPDwall_cFv();
|
||||
extern "C" void Delete__13daObjPDwall_cFv();
|
||||
extern "C" static void daObjPDwall_create1st__FP13daObjPDwall_c();
|
||||
extern "C" static void daObjPDwall_MoveBGDelete__FP13daObjPDwall_c();
|
||||
extern "C" static void daObjPDwall_MoveBGExecute__FP13daObjPDwall_c();
|
||||
extern "C" static void daObjPDwall_MoveBGDraw__FP13daObjPDwall_c();
|
||||
extern "C" void __dt__13daObjPDwall_cFv();
|
||||
extern "C" extern char const* const d_a_obj_pdwall__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void StartShock__12dVibration_cFii4cXyz();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
|
||||
extern "C" void
|
||||
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
|
||||
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void Move__4dBgWFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" extern void* __vt__16dBgS_MoveBgActor[10];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CAD1F4-80CAD1F4 00003C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CAD1F4 = "P_Dwall";
|
||||
#pragma pop
|
||||
static const int l_dzbidx = 7;
|
||||
|
||||
/* 80CAD1FC-80CAD200 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_pdwall__stringBase0;
|
||||
static char* l_arcName = "P_Dwall";
|
||||
|
||||
/* 80CAC7F8-80CAC8DC 000078 00E4+00 1/1 0/0 0/0 .text create1st__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::create1st() {
|
||||
// NONMATCHING
|
||||
int daObjPDwall_c::create1st() {
|
||||
int phase_state = dComIfG_resLoad(this, l_arcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
setMtx();
|
||||
|
||||
phase_state = MoveBGCreate(l_arcName, l_dzbidx, dBgS_MoveBGProc_TypicalRotY, 0xB1C0, &field_0x5a8);
|
||||
if (phase_state == cPhs_ERROR_e) {
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
if (dComIfG_Bgsp().Regist(mpBgw[i], this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CAD1B8-80CAD1D0 000000 0018+00 2/2 0/0 0/0 .rodata l_cull_box */
|
||||
SECTION_RODATA static u8 const l_cull_box[24] = {
|
||||
0xC2, 0xC8, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
|
||||
0x44, 0x3B, 0x80, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
|
||||
static const cull_box l_cull_box = {
|
||||
{-100.0f, -800.0f, -300.0f},
|
||||
{750.0f, 500.0f, 300.0f},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CAD1B8, &l_cull_box);
|
||||
|
||||
/* 80CAD1D0-80CAD1D4 000018 0004+00 1/1 0/0 0/0 .rodata @3666 */
|
||||
SECTION_RODATA static f32 const lit_3666 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1D0, &lit_3666);
|
||||
|
||||
/* 80CAD1D4-80CAD1D8 00001C 0004+00 1/3 0/0 0/0 .rodata @3667 */
|
||||
SECTION_RODATA static u8 const lit_3667[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CAD1D4, &lit_3667);
|
||||
|
||||
/* 80CAD1D8-80CAD1E0 000020 0008+00 1/3 0/0 0/0 .rodata @3669 */
|
||||
SECTION_RODATA static u8 const lit_3669[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CAD1D8, &lit_3669);
|
||||
|
||||
/* 80CAC8DC-80CACA44 00015C 0168+00 2/2 0/0 0/0 .text setMtx__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::setMtx() {
|
||||
// NONMATCHING
|
||||
for (int i = 0; i < 10; i++) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y + field_0x808[i], current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y - 0x3FFF);
|
||||
mDoMtx_stack_c::transM(50.0f * i, 0.0f, 0.0f);
|
||||
MTXCopy(mDoMtx_stack_c::get(), field_0x600[i]);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::copy(field_0x600[0]);
|
||||
MTXCopy(mDoMtx_stack_c::get(), field_0x5a8);
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
mDoMtx_stack_c::copy(field_0x600[i + 1]);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CACA44-80CACBA8 0002C4 0164+00 1/0 0/0 0/0 .text CreateHeap__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
int daObjPDwall_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(175, model_data != NULL);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CAD1E0-80CAD1E4 000028 0004+00 0/2 0/0 0/0 .rodata @3731 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3731 = -30.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1E0, &lit_3731);
|
||||
#pragma pop
|
||||
for (int i = 0; i < 10; i++) {
|
||||
mpModels[i] = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModels[i] == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
mpBgw[i] = new dBgW();
|
||||
if (mpBgw[i] == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!mpBgw[i]->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, l_dzbidx), 1, &mMtx[i])) {
|
||||
mpBgw[i]->SetCrrFunc(dBgS_MoveBGProc_TypicalRotY);
|
||||
} else {
|
||||
mpBgw[i] = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CACBA8-80CACCE0 000428 0138+00 1/0 0/0 0/0 .text Create__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::Create() {
|
||||
// NONMATCHING
|
||||
int daObjPDwall_c::Create() {
|
||||
field_0xa14 = 0;
|
||||
|
||||
if (fopAcM_isSwitch(this, getSwNo())) {
|
||||
field_0xa10 = 1;
|
||||
} else {
|
||||
field_0xa10 = 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
mpModels[i]->setBaseTRMtx(field_0x600[i]);
|
||||
field_0x7e0[i] = 0.0f;
|
||||
|
||||
if (field_0xa10) {
|
||||
field_0x808[i] = (i + 1) * -30.0f;
|
||||
} else {
|
||||
field_0x808[i] = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(this, field_0x600[0]);
|
||||
fopAcM_setCullSizeBox(this, l_cull_box.min.x, l_cull_box.min.y, l_cull_box.min.z,
|
||||
l_cull_box.max.x, l_cull_box.max.y, l_cull_box.max.z);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CAD1E4-80CAD1E8 00002C 0004+00 0/1 0/0 0/0 .rodata @3787 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3787 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1E4, &lit_3787);
|
||||
#pragma pop
|
||||
|
||||
/* 80CAD1E8-80CAD1EC 000030 0004+00 0/1 0/0 0/0 .rodata @3788 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3788 = -1.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1E8, &lit_3788);
|
||||
#pragma pop
|
||||
|
||||
/* 80CAD1EC-80CAD1F0 000034 0004+00 0/1 0/0 0/0 .rodata @3789 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3789 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1EC, &lit_3789);
|
||||
#pragma pop
|
||||
|
||||
/* 80CAD1F0-80CAD1F4 000038 0004+00 0/1 0/0 0/0 .rodata @3790 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3790 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CAD1F0, &lit_3790);
|
||||
#pragma pop
|
||||
|
||||
/* 80CACCE0-80CACF14 000560 0234+00 1/0 0/0 0/0 .text Execute__13daObjPDwall_cFPPA3_A4_f
|
||||
*/
|
||||
void daObjPDwall_c::Execute(Mtx** param_0) {
|
||||
// NONMATCHING
|
||||
int daObjPDwall_c::Execute(Mtx** param_0) {
|
||||
if (field_0xa10 == 0 && fopAcM_isSwitch(this, getSwNo())) {
|
||||
field_0xa14++;
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if (field_0xa14 >= (9 - i) * 15) {
|
||||
field_0x7e0[i] -= 5.0f;
|
||||
field_0x808[i] += field_0x7e0[i];
|
||||
|
||||
if (field_0x808[i] <= -30.0f * (i + 1)) {
|
||||
field_0x808[i] = -30.0f * (i + 1);
|
||||
field_0x7e0[i] *= -0.2f;
|
||||
|
||||
if (field_0x830[i] == 0) {
|
||||
field_0x830[i] = 1;
|
||||
dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
Vec sp20;
|
||||
sp20.x = (field_0x600[i])[0][3];
|
||||
sp20.y = (field_0x600[i])[1][3];
|
||||
sp20.z = (field_0x600[i])[2][3];
|
||||
Z2GetAudioMgr()->seStart(Z2SE_OBJ_FALL_STAIR, &sp20, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setMtx();
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
mpModels[i]->setBaseTRMtx(field_0x600[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
mpBgw[i]->Move();
|
||||
}
|
||||
|
||||
*param_0 = &field_0x5a8;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CACF14-80CACFD4 000794 00C0+00 1/0 0/0 0/0 .text Draw__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::Draw() {
|
||||
// NONMATCHING
|
||||
int daObjPDwall_c::Draw() {
|
||||
dComIfGd_setListBG();
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModels[i], &tevStr);
|
||||
mDoExt_modelUpdateDL(mpModels[i]);
|
||||
}
|
||||
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CACFD4-80CAD074 000854 00A0+00 1/0 0/0 0/0 .text Delete__13daObjPDwall_cFv */
|
||||
void daObjPDwall_c::Delete() {
|
||||
// NONMATCHING
|
||||
int daObjPDwall_c::Delete() {
|
||||
for (int i = 0; i < 9; i++) {
|
||||
if (mpBgw[i] != NULL && mpBgw[i]->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgw[i]);
|
||||
}
|
||||
}
|
||||
|
||||
dComIfG_resDelete(this, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CAD074-80CAD0D4 0008F4 0060+00 1/0 0/0 0/0 .text daObjPDwall_create1st__FP13daObjPDwall_c */
|
||||
static int daObjPDwall_create1st(daObjPDwall_c* i_this) {
|
||||
fopAcM_ct(i_this, daObjPDwall_c);
|
||||
return i_this->create1st();
|
||||
}
|
||||
|
||||
/* 80CAD0D4-80CAD0F4 000954 0020+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGDelete__FP13daObjPDwall_c
|
||||
*/
|
||||
static int daObjPDwall_MoveBGDelete(daObjPDwall_c* i_this) {
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80CAD0F4-80CAD114 000974 0020+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGExecute__FP13daObjPDwall_c
|
||||
*/
|
||||
static int daObjPDwall_MoveBGExecute(daObjPDwall_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80CAD114-80CAD140 000994 002C+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGDraw__FP13daObjPDwall_c */
|
||||
static int daObjPDwall_MoveBGDraw(daObjPDwall_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CAD200-80CAD220 -00001 0020+00 1/0 0/0 0/0 .data daObjPDwall_METHODS */
|
||||
static actor_method_class daObjPDwall_METHODS = {
|
||||
(process_method_func)daObjPDwall_create1st__FP13daObjPDwall_c,
|
||||
(process_method_func)daObjPDwall_MoveBGDelete__FP13daObjPDwall_c,
|
||||
(process_method_func)daObjPDwall_MoveBGExecute__FP13daObjPDwall_c,
|
||||
(process_method_func)daObjPDwall_create1st,
|
||||
(process_method_func)daObjPDwall_MoveBGDelete,
|
||||
(process_method_func)daObjPDwall_MoveBGExecute,
|
||||
0,
|
||||
(process_method_func)daObjPDwall_MoveBGDraw__FP13daObjPDwall_c,
|
||||
(process_method_func)daObjPDwall_MoveBGDraw,
|
||||
};
|
||||
|
||||
/* 80CAD220-80CAD250 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_PDwall */
|
||||
@@ -215,47 +232,3 @@ extern actor_process_profile_definition g_profile_Obj_PDwall = {
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CAD250-80CAD27C 000054 002C+00 2/2 0/0 0/0 .data __vt__13daObjPDwall_c */
|
||||
SECTION_DATA extern void* __vt__13daObjPDwall_c[11] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__13daObjPDwall_cFv,
|
||||
(void*)Create__13daObjPDwall_cFv,
|
||||
(void*)Execute__13daObjPDwall_cFPPA3_A4_f,
|
||||
(void*)Draw__13daObjPDwall_cFv,
|
||||
(void*)Delete__13daObjPDwall_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
(void*)__dt__13daObjPDwall_cFv,
|
||||
};
|
||||
|
||||
/* 80CAD074-80CAD0D4 0008F4 0060+00 1/0 0/0 0/0 .text daObjPDwall_create1st__FP13daObjPDwall_c */
|
||||
static void daObjPDwall_create1st(daObjPDwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CAD0D4-80CAD0F4 000954 0020+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGDelete__FP13daObjPDwall_c
|
||||
*/
|
||||
static void daObjPDwall_MoveBGDelete(daObjPDwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CAD0F4-80CAD114 000974 0020+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGExecute__FP13daObjPDwall_c
|
||||
*/
|
||||
static void daObjPDwall_MoveBGExecute(daObjPDwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CAD114-80CAD140 000994 002C+00 1/0 0/0 0/0 .text daObjPDwall_MoveBGDraw__FP13daObjPDwall_c */
|
||||
static void daObjPDwall_MoveBGDraw(daObjPDwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CAD140-80CAD1B0 0009C0 0070+00 1/0 0/0 0/0 .text __dt__13daObjPDwall_cFv */
|
||||
daObjPDwall_c::~daObjPDwall_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CAD1F4-80CAD1F4 00003C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+391
-462
File diff suppressed because it is too large
Load Diff
+235
-259
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user