mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
lv4bridge / lv4prwall done (#2728)
* lv4bridge / lv4prwall * fix jp/pal
This commit is contained in:
@@ -13,3 +13,4 @@ d/actor/d_a_obj_lv4bridge.cpp:
|
||||
.text start:0x00000078 end:0x00000968
|
||||
.rodata start:0x00000000 end:0x0000002C
|
||||
.data start:0x00000000 end:0x0000011C
|
||||
.bss start:0x00000000 end:0x00000004
|
||||
|
||||
@@ -13,3 +13,4 @@ d/actor/d_a_obj_lv4bridge.cpp:
|
||||
.text start:0x00000078 end:0x00000968
|
||||
.rodata start:0x00000000 end:0x0000002C
|
||||
.data start:0x00000000 end:0x0000011C
|
||||
.bss start:0x00000000 end:0x00000004
|
||||
|
||||
+2
-2
@@ -2070,13 +2070,13 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4PoGate"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4RailWall"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4SlideWall"),
|
||||
ActorRel(NonMatching, "d_a_obj_lv4bridge"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4bridge"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4chandelier"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4digsand"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4floor"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4gear"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4prelvtr"),
|
||||
ActorRel(NonMatching, "d_a_obj_lv4prwall"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4prwall"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4sand"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv5FloorBoard"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv5IceWall"),
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#define D_A_OBJ_LV4BRIDGE_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_event_lib.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -11,14 +13,13 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjLv4Brg_c : public fopAc_ac_c {
|
||||
class daObjLv4Brg_c : public dBgS_MoveBgActor, public dEvLib_callback_c {
|
||||
public:
|
||||
daObjLv4Brg_c() : dEvLib_callback_c(this) {}
|
||||
|
||||
/* 80C62878 */ void initBaseMtx();
|
||||
/* 80C628B4 */ void setBaseMtx();
|
||||
/* 80C62994 */ void Create();
|
||||
/* 80C62A2C */ void CreateHeap();
|
||||
/* 80C62A9C */ void create1st();
|
||||
/* 80C62B20 */ void Execute(Mtx**);
|
||||
/* 80C62A9C */ int create1st();
|
||||
/* 80C62B6C */ void action();
|
||||
/* 80C62C28 */ void mode_init_wait();
|
||||
/* 80C62C34 */ void mode_wait();
|
||||
@@ -26,13 +27,24 @@ public:
|
||||
/* 80C62CFC */ void mode_move();
|
||||
/* 80C62E24 */ void mode_init_dead();
|
||||
/* 80C62E30 */ void mode_dead();
|
||||
/* 80C62E34 */ void eventStart();
|
||||
/* 80C62EA0 */ void Draw();
|
||||
/* 80C62F44 */ void Delete();
|
||||
/* 80C630C4 */ ~daObjLv4Brg_c();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x5d0 - 0x568];
|
||||
/* 80C630C4 */ virtual ~daObjLv4Brg_c() {}
|
||||
/* 80C62E34 */ virtual bool eventStart();
|
||||
/* 80C62A2C */ virtual int CreateHeap();
|
||||
/* 80C62994 */ virtual int Create();
|
||||
/* 80C62B20 */ virtual int Execute(Mtx**);
|
||||
/* 80C62EA0 */ virtual int Draw();
|
||||
/* 80C62F44 */ virtual int Delete();
|
||||
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getEvID() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
|
||||
/* 0x5B0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B8 */ J3DModel* mpModel;
|
||||
/* 0x5BC */ f32 field_0x5bc;
|
||||
/* 0x5C0 */ u8 field_0x5c0;
|
||||
/* 0x5C1 */ u8 mMode;
|
||||
/* 0x5C4 */ cXyz field_0x5c4;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjLv4Brg_c) == 0x5d0);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_OBJ_LV4PRWALL_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -11,19 +12,37 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjLv4PRwall_c : public fopAc_ac_c {
|
||||
class daObjLv4PRwall_c : public dBgS_MoveBgActor, request_of_phase_process_class {
|
||||
public:
|
||||
/* 80C68C98 */ void create1st();
|
||||
/* 80C68C98 */ int create1st();
|
||||
/* 80C68DD8 */ void setMtx();
|
||||
/* 80C68F20 */ void CreateHeap();
|
||||
/* 80C68FA0 */ void Create();
|
||||
/* 80C690D8 */ void Execute(Mtx**);
|
||||
/* 80C696BC */ void Draw();
|
||||
/* 80C69760 */ void Delete();
|
||||
/* 80C69870 */ ~daObjLv4PRwall_c();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x62c - 0x568];
|
||||
/* 80C68F20 */ virtual int CreateHeap();
|
||||
/* 80C68FA0 */ virtual int Create();
|
||||
/* 80C690D8 */ virtual int Execute(Mtx**);
|
||||
/* 80C696BC */ virtual int Draw();
|
||||
/* 80C69760 */ virtual int Delete();
|
||||
/* 80C69870 */ virtual ~daObjLv4PRwall_c() {}
|
||||
|
||||
int getType() { return fopAcM_GetParamBit(this, 0, 3); }
|
||||
int getSwNo() { return fopAcM_GetParamBit(this, 3, 8); }
|
||||
int getSw2No() { return fopAcM_GetParamBit(this, 11, 8); }
|
||||
int getSw3No() { return fopAcM_GetParamBit(this, 19, 8); }
|
||||
|
||||
/* 0x5A8 */ Mtx mBgMtx2;
|
||||
/* 0x5D8 */ Mtx mModelMtx;
|
||||
/* 0x608 */ J3DModel* mpModel;
|
||||
/* 0x60C */ s16 field_0x60c;
|
||||
/* 0x60E */ s16 field_0x60e;
|
||||
/* 0x610 */ s16 field_0x610;
|
||||
/* 0x614 */ int mType;
|
||||
/* 0x618 */ u8 field_0x618;
|
||||
/* 0x619 */ u8 field_0x619;
|
||||
/* 0x61C */ f32 field_0x61c;
|
||||
/* 0x620 */ f32 field_0x620;
|
||||
/* 0x624 */ int field_0x624;
|
||||
/* 0x628 */ u8 field_0x628;
|
||||
/* 0x629 */ u8 field_0x629;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjLv4PRwall_c) == 0x62c);
|
||||
|
||||
+125
-314
@@ -6,288 +6,196 @@
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_lv4bridge.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void initBaseMtx__13daObjLv4Brg_cFv();
|
||||
extern "C" void setBaseMtx__13daObjLv4Brg_cFv();
|
||||
extern "C" void Create__13daObjLv4Brg_cFv();
|
||||
extern "C" void CreateHeap__13daObjLv4Brg_cFv();
|
||||
extern "C" void create1st__13daObjLv4Brg_cFv();
|
||||
extern "C" void Execute__13daObjLv4Brg_cFPPA3_A4_f();
|
||||
extern "C" void action__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_init_wait__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_wait__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_init_move__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_move__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_init_dead__13daObjLv4Brg_cFv();
|
||||
extern "C" void mode_dead__13daObjLv4Brg_cFv();
|
||||
extern "C" void eventStart__13daObjLv4Brg_cFv();
|
||||
extern "C" void Draw__13daObjLv4Brg_cFv();
|
||||
extern "C" void Delete__13daObjLv4Brg_cFv();
|
||||
extern "C" static void daObjLv4Brg_create1st__FP13daObjLv4Brg_c();
|
||||
extern "C" static void daObjLv4Brg_MoveBGDelete__FP13daObjLv4Brg_c();
|
||||
extern "C" static void daObjLv4Brg_MoveBGExecute__FP13daObjLv4Brg_c();
|
||||
extern "C" static void daObjLv4Brg_MoveBGDraw__FP13daObjLv4Brg_c();
|
||||
extern "C" void __dt__17dEvLib_callback_cFv();
|
||||
extern "C" bool eventStart__17dEvLib_callback_cFv();
|
||||
extern "C" bool eventRun__17dEvLib_callback_cFv();
|
||||
extern "C" bool eventEnd__17dEvLib_callback_cFv();
|
||||
extern "C" void __dt__13daObjLv4Brg_cFv();
|
||||
extern "C" static void func_80C63158();
|
||||
extern "C" static void func_80C63160();
|
||||
extern "C" extern char const* const d_a_obj_lv4bridge__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
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 eventUpdate__17dEvLib_callback_cFv();
|
||||
extern "C" void orderEvent__17dEvLib_callback_cFiii();
|
||||
extern "C" void StartShock__12dVibration_cFii4cXyz();
|
||||
extern "C" void StartQuake__12dVibration_cFii4cXyz();
|
||||
extern "C" void StopQuake__12dVibration_cFi();
|
||||
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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__16dBgS_MoveBgActor[10];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" extern u8 data_80C632B8[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80C62878-80C628B4 000078 003C+00 1/1 0/0 0/0 .text initBaseMtx__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
mpModel->setBaseScale(scale);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C63170-80C63174 000000 0004+00 6/6 0/0 0/0 .rodata @3653 */
|
||||
SECTION_RODATA static u8 const lit_3653[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C63170, &lit_3653);
|
||||
|
||||
/* 80C63174-80C63178 000004 0004+00 0/1 0/0 0/0 .rodata @3654 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3654 = 1700.0f;
|
||||
COMPILER_STRIP_GATE(0x80C63174, &lit_3654);
|
||||
#pragma pop
|
||||
|
||||
/* 80C63178-80C6317C 000008 0004+00 0/1 0/0 0/0 .rodata @3655 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3655 = -5050.0f;
|
||||
COMPILER_STRIP_GATE(0x80C63178, &lit_3655);
|
||||
#pragma pop
|
||||
|
||||
/* 80C628B4-80C62994 0000B4 00E0+00 2/2 0/0 0/0 .text setBaseMtx__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
}
|
||||
cXyz sp14(0.0f, 0.0f, field_0x5bc);
|
||||
mDoMtx_stack_c::YrotS(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(&sp14, &sp14);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transM(sp14);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C6317C-80C63180 00000C 0004+00 1/2 0/0 0/0 .rodata @3676 */
|
||||
SECTION_RODATA static f32 const lit_3676 = 2000.0f;
|
||||
COMPILER_STRIP_GATE(0x80C6317C, &lit_3676);
|
||||
cXyz sp8(0.0f, 1700.0f, -5050.0f);
|
||||
mDoMtx_stack_c::multVec(&sp8, &field_0x5c4);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80C62994-80C62A2C 000194 0098+00 1/0 0/0 0/0 .text Create__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::Create() {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::Create() {
|
||||
if (fopAcM_isSwitch(this, getSwbit())) {
|
||||
field_0x5bc = 2000.0f;
|
||||
mode_init_dead();
|
||||
} else {
|
||||
field_0x5bc = 0.0f;
|
||||
mode_init_wait();
|
||||
}
|
||||
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
MoveBGExecute();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C63190-80C63190 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C63190 = "Obj_l4brg";
|
||||
#pragma pop
|
||||
|
||||
/* 80C631BC-80C631C0 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_lv4bridge__stringBase0;
|
||||
static char* l_arcName = "Obj_l4brg";
|
||||
|
||||
/* 80C62A2C-80C62A9C 00022C 0070+00 1/0 0/0 0/0 .text CreateHeap__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(170, modelData != 0);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C62A9C-80C62B20 00029C 0084+00 1/1 0/0 0/0 .text create1st__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::create1st() {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::create1st() {
|
||||
int phase_state = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
phase_state = MoveBGCreate(l_arcName, 7, dBgS_MoveBGProc_TypicalRotY, 0x2260, NULL);
|
||||
if (phase_state == cPhs_ERROR_e) {
|
||||
return phase_state;
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80C62B20-80C62B6C 000320 004C+00 1/0 0/0 0/0 .text Execute__13daObjLv4Brg_cFPPA3_A4_f
|
||||
*/
|
||||
void daObjLv4Brg_c::Execute(Mtx** param_0) {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::Execute(Mtx** param_0) {
|
||||
action();
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C631C0-80C631CC -00001 000C+00 0/1 0/0 0/0 .data @3702 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3702[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)mode_wait__13daObjLv4Brg_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C631CC-80C631D8 -00001 000C+00 0/1 0/0 0/0 .data @3703 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3703[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)mode_move__13daObjLv4Brg_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C631D8-80C631E4 -00001 000C+00 0/1 0/0 0/0 .data @3704 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3704[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)mode_dead__13daObjLv4Brg_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C631E4-80C63208 000048 0024+00 0/1 0/0 0/0 .data l_func$3701 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_func[36] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C62B6C-80C62C28 00036C 00BC+00 1/1 0/0 0/0 .text action__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::action() {
|
||||
// NONMATCHING
|
||||
static void (daObjLv4Brg_c::*l_func[])() = {
|
||||
&daObjLv4Brg_c::mode_wait,
|
||||
&daObjLv4Brg_c::mode_move,
|
||||
&daObjLv4Brg_c::mode_dead,
|
||||
};
|
||||
|
||||
(this->*l_func[mMode])();
|
||||
eventUpdate();
|
||||
}
|
||||
|
||||
/* 80C62C28-80C62C34 000428 000C+00 1/1 0/0 0/0 .text mode_init_wait__13daObjLv4Brg_cFv
|
||||
*/
|
||||
void daObjLv4Brg_c::mode_init_wait() {
|
||||
// NONMATCHING
|
||||
mMode = 0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C63180-80C63184 000010 0004+00 2/3 0/0 0/0 .rodata @3740 */
|
||||
SECTION_RODATA static f32 const lit_3740 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C63180, &lit_3740);
|
||||
|
||||
/* 80C62C34-80C62CE4 000434 00B0+00 1/0 0/0 0/0 .text mode_wait__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::mode_wait() {
|
||||
// NONMATCHING
|
||||
if (fopAcM_isSwitch(this, getSwbit())) {
|
||||
if (getEvID() != 0xFF) {
|
||||
orderEvent(getEvID(), 0xFF, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
dComIfGp_getVibration().StartQuake(4, 0xF, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mode_init_move();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C62CE4-80C62CFC 0004E4 0018+00 2/2 0/0 0/0 .text mode_init_move__13daObjLv4Brg_cFv
|
||||
*/
|
||||
void daObjLv4Brg_c::mode_init_move() {
|
||||
// NONMATCHING
|
||||
speed.y = 0.0f;
|
||||
mMode = 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C63184-80C63188 000014 0004+00 0/1 0/0 0/0 .rodata @3766 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3766 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C63184, &lit_3766);
|
||||
#pragma pop
|
||||
|
||||
/* 80C63188-80C6318C 000018 0004+00 0/1 0/0 0/0 .rodata @3767 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3767 = 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80C63188, &lit_3767);
|
||||
#pragma pop
|
||||
|
||||
/* 80C6318C-80C63190 00001C 0004+00 0/1 0/0 0/0 .rodata @3768 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3768 = 2.0f;
|
||||
COMPILER_STRIP_GATE(0x80C6318C, &lit_3768);
|
||||
#pragma pop
|
||||
|
||||
/* 80C62CFC-80C62E24 0004FC 0128+00 1/0 0/0 0/0 .text mode_move__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::mode_move() {
|
||||
// NONMATCHING
|
||||
mDoAud_seStartLevel(Z2SE_OBJ_DS_END_BRG, &field_0x5c4, 0, 0);
|
||||
cLib_chaseF(&speed.y, 20.0f, 2.0f);
|
||||
|
||||
if (cLib_chaseF(&field_0x5bc, 2000.0f, speed.y)) {
|
||||
mDoAud_seStart(Z2SE_OBJ_DS_END_BRG_ST, &field_0x5c4, 0, 0);
|
||||
dComIfGp_getVibration().StopQuake(0x1F);
|
||||
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mode_init_dead();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C62E24-80C62E30 000624 000C+00 2/2 0/0 0/0 .text mode_init_dead__13daObjLv4Brg_cFv
|
||||
*/
|
||||
void daObjLv4Brg_c::mode_init_dead() {
|
||||
// NONMATCHING
|
||||
mMode = 2;
|
||||
}
|
||||
|
||||
/* 80C62E30-80C62E34 000630 0004+00 1/0 0/0 0/0 .text mode_dead__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::mode_dead() {
|
||||
/* empty function */
|
||||
}
|
||||
void daObjLv4Brg_c::mode_dead() {}
|
||||
|
||||
/* 80C62E34-80C62EA0 000634 006C+00 2/1 0/0 0/0 .text eventStart__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::eventStart() {
|
||||
// NONMATCHING
|
||||
bool daObjLv4Brg_c::eventStart() {
|
||||
dComIfGp_getVibration().StartQuake(4, 0xF, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mode_init_move();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80C62EA0-80C62F44 0006A0 00A4+00 1/0 0/0 0/0 .text Draw__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::Draw() {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::Draw() {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C62F44-80C62F78 000744 0034+00 1/0 0/0 0/0 .text Delete__13daObjLv4Brg_cFv */
|
||||
void daObjLv4Brg_c::Delete() {
|
||||
// NONMATCHING
|
||||
int daObjLv4Brg_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C62F78-80C62FF8 000778 0080+00 1/0 0/0 0/0 .text daObjLv4Brg_create1st__FP13daObjLv4Brg_c */
|
||||
static int daObjLv4Brg_create1st(daObjLv4Brg_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, daObjLv4Brg_c);
|
||||
return i_this->create1st();
|
||||
}
|
||||
|
||||
/* 80C62FF8-80C63018 0007F8 0020+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGDelete__FP13daObjLv4Brg_c
|
||||
*/
|
||||
static int daObjLv4Brg_MoveBGDelete(daObjLv4Brg_c* i_this) {
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80C63018-80C63038 000818 0020+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGExecute__FP13daObjLv4Brg_c
|
||||
*/
|
||||
static int daObjLv4Brg_MoveBGExecute(daObjLv4Brg_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80C63038-80C63064 000838 002C+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGDraw__FP13daObjLv4Brg_c */
|
||||
static int daObjLv4Brg_MoveBGDraw(daObjLv4Brg_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C63208-80C63228 -00001 0020+00 1/0 0/0 0/0 .data daObjLv4Brg_METHODS */
|
||||
static actor_method_class daObjLv4Brg_METHODS = {
|
||||
(process_method_func)daObjLv4Brg_create1st__FP13daObjLv4Brg_c,
|
||||
(process_method_func)daObjLv4Brg_MoveBGDelete__FP13daObjLv4Brg_c,
|
||||
(process_method_func)daObjLv4Brg_MoveBGExecute__FP13daObjLv4Brg_c,
|
||||
(process_method_func)daObjLv4Brg_create1st,
|
||||
(process_method_func)daObjLv4Brg_MoveBGDelete,
|
||||
(process_method_func)daObjLv4Brg_MoveBGExecute,
|
||||
0,
|
||||
(process_method_func)daObjLv4Brg_MoveBGDraw__FP13daObjLv4Brg_c,
|
||||
(process_method_func)daObjLv4Brg_MoveBGDraw,
|
||||
};
|
||||
|
||||
/* 80C63228-80C63258 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4Bridge */
|
||||
@@ -307,100 +215,3 @@ extern actor_process_profile_definition g_profile_Obj_Lv4Bridge = {
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C63258-80C63270 0000BC 0018+00 3/3 0/0 0/0 .data __vt__17dEvLib_callback_c */
|
||||
SECTION_DATA extern void* __vt__17dEvLib_callback_c[6] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__17dEvLib_callback_cFv,
|
||||
(void*)eventStart__17dEvLib_callback_cFv,
|
||||
(void*)eventRun__17dEvLib_callback_cFv,
|
||||
(void*)eventEnd__17dEvLib_callback_cFv,
|
||||
};
|
||||
|
||||
/* 80C63270-80C632B8 0000D4 0048+00 2/2 0/0 0/0 .data __vt__13daObjLv4Brg_c */
|
||||
SECTION_DATA extern void* __vt__13daObjLv4Brg_c[18] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__13daObjLv4Brg_cFv,
|
||||
(void*)Create__13daObjLv4Brg_cFv,
|
||||
(void*)Execute__13daObjLv4Brg_cFPPA3_A4_f,
|
||||
(void*)Draw__13daObjLv4Brg_cFv,
|
||||
(void*)Delete__13daObjLv4Brg_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80C63160,
|
||||
(void*)func_80C63158,
|
||||
(void*)eventRun__17dEvLib_callback_cFv,
|
||||
(void*)eventEnd__17dEvLib_callback_cFv,
|
||||
(void*)__dt__13daObjLv4Brg_cFv,
|
||||
(void*)eventStart__13daObjLv4Brg_cFv,
|
||||
};
|
||||
|
||||
/* 80C62F78-80C62FF8 000778 0080+00 1/0 0/0 0/0 .text daObjLv4Brg_create1st__FP13daObjLv4Brg_c */
|
||||
static void daObjLv4Brg_create1st(daObjLv4Brg_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C62FF8-80C63018 0007F8 0020+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGDelete__FP13daObjLv4Brg_c
|
||||
*/
|
||||
static void daObjLv4Brg_MoveBGDelete(daObjLv4Brg_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63018-80C63038 000818 0020+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGExecute__FP13daObjLv4Brg_c
|
||||
*/
|
||||
static void daObjLv4Brg_MoveBGExecute(daObjLv4Brg_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63038-80C63064 000838 002C+00 1/0 0/0 0/0 .text daObjLv4Brg_MoveBGDraw__FP13daObjLv4Brg_c */
|
||||
static void daObjLv4Brg_MoveBGDraw(daObjLv4Brg_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63064-80C630AC 000864 0048+00 1/0 0/0 0/0 .text __dt__17dEvLib_callback_cFv */
|
||||
// dEvLib_callback_c::~dEvLib_callback_c() {
|
||||
extern "C" void __dt__17dEvLib_callback_cFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C630AC-80C630B4 0008AC 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv
|
||||
*/
|
||||
// bool dEvLib_callback_c::eventStart() {
|
||||
extern "C" bool eventStart__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80C630B4-80C630BC 0008B4 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */
|
||||
// bool dEvLib_callback_c::eventRun() {
|
||||
extern "C" bool eventRun__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80C630BC-80C630C4 0008BC 0008+00 2/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */
|
||||
// bool dEvLib_callback_c::eventEnd() {
|
||||
extern "C" bool eventEnd__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80C630C4-80C63158 0008C4 0094+00 2/1 0/0 0/0 .text __dt__13daObjLv4Brg_cFv */
|
||||
daObjLv4Brg_c::~daObjLv4Brg_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63158-80C63160 000958 0008+00 1/0 0/0 0/0 .text @1440@eventStart__13daObjLv4Brg_cFv
|
||||
*/
|
||||
static void func_80C63158() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63160-80C63168 000960 0008+00 1/0 0/0 0/0 .text @1440@__dt__13daObjLv4Brg_cFv */
|
||||
static void func_80C63160() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C63190-80C63190 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+277
-230
@@ -6,228 +6,321 @@
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_lv4prwall.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/actor/d_a_obj_swturn.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void create1st__16daObjLv4PRwall_cFv();
|
||||
extern "C" void setMtx__16daObjLv4PRwall_cFv();
|
||||
extern "C" void CreateHeap__16daObjLv4PRwall_cFv();
|
||||
extern "C" void Create__16daObjLv4PRwall_cFv();
|
||||
extern "C" static void searchObjSwTurn__FPvPv();
|
||||
extern "C" void Execute__16daObjLv4PRwall_cFPPA3_A4_f();
|
||||
extern "C" void Draw__16daObjLv4PRwall_cFv();
|
||||
extern "C" void Delete__16daObjLv4PRwall_cFv();
|
||||
extern "C" static void daObjLv4PRwall_create1st__FP16daObjLv4PRwall_c();
|
||||
extern "C" static void daObjLv4PRwall_MoveBGDelete__FP16daObjLv4PRwall_c();
|
||||
extern "C" static void daObjLv4PRwall_MoveBGExecute__FP16daObjLv4PRwall_c();
|
||||
extern "C" static void daObjLv4PRwall_MoveBGDraw__FP16daObjLv4PRwall_c();
|
||||
extern "C" void __dt__16daObjLv4PRwall_cFv();
|
||||
extern "C" extern char const* const d_a_obj_lv4prwall__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 fopAc_IsActor__FPv();
|
||||
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
|
||||
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 onSwitch__10dSv_info_cFii();
|
||||
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 StartQuake__12dVibration_cFii4cXyz();
|
||||
extern "C" void StopQuake__12dVibration_cFi();
|
||||
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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void cM_rndFX__Ff();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__16dBgS_MoveBgActor[10];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C698E8-80C698F4 000000 000C+00 2/2 0/0 0/0 .rodata l_dzbidx */
|
||||
SECTION_RODATA static u8 const l_dzbidx[12] = {
|
||||
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07,
|
||||
static const int l_dzbidx[] = {
|
||||
7,
|
||||
7,
|
||||
7,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C698E8, &l_dzbidx);
|
||||
|
||||
/* 80C69974-80C69974 00008C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C69974 = "PRWallR09";
|
||||
SECTION_DEAD static char const* const stringBase_80C6997E = "P_Rwall";
|
||||
SECTION_DEAD static char const* const stringBase_80C69986 = "PRWallR04";
|
||||
#pragma pop
|
||||
/* 80C698F4-80C69900 00000C 000C+00 1/1 0/0 0/0 .rodata l_bmdidx */
|
||||
static const int l_bmdidx[] = {
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
};
|
||||
|
||||
/* 80C69990-80C6999C -00001 000C+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName[3] = {
|
||||
(void*)&d_a_obj_lv4prwall__stringBase0,
|
||||
(void*)(((char*)&d_a_obj_lv4prwall__stringBase0) + 0xA),
|
||||
(void*)(((char*)&d_a_obj_lv4prwall__stringBase0) + 0x12),
|
||||
static char* l_arcName[3] = {
|
||||
"PRWallR09",
|
||||
"P_Rwall",
|
||||
"PRWallR04",
|
||||
};
|
||||
|
||||
/* 80C68C98-80C68DD8 000078 0140+00 1/1 0/0 0/1 .text create1st__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::create1st() {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::create1st() {
|
||||
mType = getType();
|
||||
|
||||
int phase_state = dComIfG_resLoad(this, l_arcName[mType]);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
field_0x60e = 0;
|
||||
|
||||
if (mType == 0 && getSw2No() != 0xFF && fopAcM_isSwitch(this, getSw2No())) {
|
||||
field_0x629 = 1;
|
||||
field_0x60e = -0x3FFF;
|
||||
} else if (getSwNo() != 0xFF && fopAcM_isSwitch(this, getSwNo())) {
|
||||
field_0x60e = 0x3FFF;
|
||||
}
|
||||
|
||||
setMtx();
|
||||
|
||||
phase_state = MoveBGCreate(l_arcName[mType], l_dzbidx[mType], dBgS_MoveBGProc_TypicalRotY, 0x8440, &mBgMtx2);
|
||||
if (phase_state == cPhs_ERROR_e) {
|
||||
return phase_state;
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C698F4-80C69900 00000C 000C+00 1/1 0/0 0/0 .rodata l_bmdidx */
|
||||
SECTION_RODATA static u8 const l_bmdidx[12] = {
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C698F4, &l_bmdidx);
|
||||
|
||||
/* 80C69900-80C69948 000018 0048+00 1/1 0/0 0/0 .rodata l_cull_box */
|
||||
SECTION_RODATA static u8 const l_cull_box[72] = {
|
||||
0xC4, 0xC8, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, 0xC4, 0xC8, 0x00, 0x00, 0x44, 0xC8, 0x00,
|
||||
0x00, 0x44, 0xB3, 0xB6, 0x66, 0x44, 0xC8, 0x00, 0x00, 0xC4, 0x89, 0x81, 0x48, 0xC2, 0x70,
|
||||
0x00, 0x00, 0xC4, 0x89, 0x90, 0x00, 0x44, 0x89, 0x80, 0x00, 0x44, 0xAF, 0x00, 0x00, 0x44,
|
||||
0x89, 0x90, 0x00, 0xC4, 0x89, 0x87, 0x5C, 0xC3, 0x48, 0x33, 0x33, 0xC4, 0x89, 0x87, 0x5C,
|
||||
0x44, 0x89, 0x87, 0x5C, 0x44, 0x7A, 0x2C, 0xCD, 0x44, 0x89, 0x87, 0x5C,
|
||||
static const Vec l_cull_box[] = {
|
||||
{-1600.0f, -100.0f, -1600.0f},
|
||||
{1600.0f, 1437.7f, 1600.0f},
|
||||
{-1100.04, -60.0f, -1100.5f},
|
||||
{1100.0f, 1400.0f, 1100.5f},
|
||||
{-1100.23f, -200.2f, -1100.23f},
|
||||
{1100.23f, 1000.7f, 1100.23f},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C69900, &l_cull_box);
|
||||
|
||||
/* 80C69948-80C6994C 000060 0004+00 1/1 0/0 0/0 .rodata @3688 */
|
||||
SECTION_RODATA static u32 const lit_3688 = 0x3C800000;
|
||||
COMPILER_STRIP_GATE(0x80C69948, &lit_3688);
|
||||
|
||||
/* 80C6994C-80C69950 000064 0004+00 1/1 0/0 0/0 .rodata @3689 */
|
||||
SECTION_RODATA static f32 const lit_3689 = 2.0f;
|
||||
COMPILER_STRIP_GATE(0x80C6994C, &lit_3689);
|
||||
|
||||
/* 80C69950-80C69958 000068 0008+00 1/1 0/0 0/0 .rodata @3691 */
|
||||
SECTION_RODATA static u8 const lit_3691[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C69950, &lit_3691);
|
||||
|
||||
/* 80C68DD8-80C68F20 0001B8 0148+00 3/3 0/0 0/0 .text setMtx__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::setMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y + field_0x620, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y + field_0x60e);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx2);
|
||||
|
||||
if (field_0x60c != 0) {
|
||||
s16 var_r29 = field_0x60c;
|
||||
if (var_r29 < 0) {
|
||||
var_r29 *= -1;
|
||||
}
|
||||
if (var_r29 > 64) {
|
||||
var_r29 = 64;
|
||||
}
|
||||
|
||||
f32 temp_f31 = (f32)var_r29 / (f32)64;
|
||||
mDoMtx_stack_c::transM(cM_rndFX(2.0f * temp_f31), cM_rndFX(2.0f * temp_f31), cM_rndFX(2.0f * temp_f31));
|
||||
}
|
||||
|
||||
MTXCopy(mDoMtx_stack_c::get(), mModelMtx);
|
||||
}
|
||||
|
||||
/* 80C68F20-80C68FA0 000300 0080+00 1/0 0/0 0/0 .text CreateHeap__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mType], l_bmdidx[mType]);
|
||||
JUT_ASSERT(226, model_data != 0);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C69958-80C6995C 000070 0004+00 1/2 0/0 0/0 .rodata @3713 */
|
||||
SECTION_RODATA static u8 const lit_3713[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C69958, &lit_3713);
|
||||
|
||||
/* 80C68FA0-80C69064 000380 00C4+00 1/0 0/0 0/0 .text Create__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::Create() {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::Create() {
|
||||
fopAcM_SetMtx(this, mModelMtx);
|
||||
mpModel->setBaseTRMtx(mModelMtx);
|
||||
|
||||
int cull_idx = mType * 2;
|
||||
fopAcM_setCullSizeBox(this, l_cull_box[cull_idx].x, l_cull_box[cull_idx].y, l_cull_box[cull_idx].z,
|
||||
l_cull_box[cull_idx + 1].x, l_cull_box[cull_idx + 1].y, l_cull_box[cull_idx + 1].z);
|
||||
|
||||
field_0x60c = 0;
|
||||
field_0x610 = 0;
|
||||
field_0x618 = 1;
|
||||
field_0x628 = 0;
|
||||
field_0x624 = 0;
|
||||
field_0x619 = 0;
|
||||
field_0x61c = 0.0f;
|
||||
field_0x620 = 0.0f;
|
||||
field_0x629 = 0;
|
||||
|
||||
setMtx();
|
||||
mpModel->setBaseTRMtx(mModelMtx);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C69064-80C690D8 000444 0074+00 1/1 0/0 0/0 .text searchObjSwTurn__FPvPv */
|
||||
static void searchObjSwTurn(void* param_0, void* param_1) {
|
||||
// NONMATCHING
|
||||
static void* searchObjSwTurn(void* i_actor, void* i_data) {
|
||||
daObjSwTurn_c* swturn = (daObjSwTurn_c*)i_actor;
|
||||
daObjLv4PRwall_c* prwall = (daObjLv4PRwall_c*)i_data;
|
||||
if (swturn != NULL && fopAcM_IsActor(swturn) && fopAcM_GetProfName(swturn) == PROC_Obj_SwTurn) {
|
||||
if (swturn->getSwNo() == prwall->getSwNo()) {
|
||||
return i_actor;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C6995C-80C69960 000074 0004+00 0/1 0/0 0/0 .rodata @3959 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3959 = -2.0f;
|
||||
COMPILER_STRIP_GATE(0x80C6995C, &lit_3959);
|
||||
#pragma pop
|
||||
|
||||
/* 80C69960-80C69964 000078 0004+00 0/1 0/0 0/0 .rodata @3960 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3960 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C69960, &lit_3960);
|
||||
#pragma pop
|
||||
|
||||
/* 80C69964-80C69968 00007C 0004+00 0/1 0/0 0/0 .rodata @3961 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3961 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C69964, &lit_3961);
|
||||
#pragma pop
|
||||
|
||||
/* 80C69968-80C6996C 000080 0004+00 0/1 0/0 0/0 .rodata @3962 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3962 = 0.5f;
|
||||
COMPILER_STRIP_GATE(0x80C69968, &lit_3962);
|
||||
#pragma pop
|
||||
|
||||
/* 80C6996C-80C69970 000084 0004+00 0/1 0/0 0/0 .rodata @3963 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3963 = -1.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80C6996C, &lit_3963);
|
||||
#pragma pop
|
||||
|
||||
/* 80C69970-80C69974 000088 0004+00 0/1 0/0 0/0 .rodata @3964 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3964 = 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80C69970, &lit_3964);
|
||||
#pragma pop
|
||||
|
||||
/* 80C690D8-80C696BC 0004B8 05E4+00 1/0 0/0 0/0 .text Execute__16daObjLv4PRwall_cFPPA3_A4_f */
|
||||
void daObjLv4PRwall_c::Execute(Mtx** param_0) {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::Execute(Mtx** param_0) {
|
||||
daObjSwTurn_c* swturn = (daObjSwTurn_c*)fopAcM_Search(searchObjSwTurn, this);
|
||||
if (swturn != NULL) {
|
||||
field_0x60e = swturn->getRotateAngle();
|
||||
if (field_0x60e != field_0x610) {
|
||||
field_0x60c = 1;
|
||||
field_0x618 = 0;
|
||||
} else {
|
||||
if (field_0x618 == 0) {
|
||||
field_0x618 = 1;
|
||||
field_0x61c = -2.0f;
|
||||
field_0x619 = 1;
|
||||
}
|
||||
field_0x60c = 0;
|
||||
}
|
||||
field_0x610 = field_0x60e;
|
||||
} else if (field_0x629 == 0) {
|
||||
if (fopAcM_isSwitch(this, getSwNo()) || (getSw3No() != 0xFF && fopAcM_isSwitch(this, getSw3No()))) {
|
||||
if (field_0x60e > -0x3FFF) {
|
||||
field_0x60e += field_0x60c;
|
||||
if (field_0x60c <= -64) {
|
||||
field_0x60c = -64;
|
||||
} else {
|
||||
field_0x60c -= 1;
|
||||
}
|
||||
field_0x618 = 0;
|
||||
} else {
|
||||
if (field_0x618 == 0) {
|
||||
field_0x618 = 1;
|
||||
dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
field_0x61c = -2.0f;
|
||||
field_0x619 = 1;
|
||||
|
||||
if (mType == 0) {
|
||||
field_0x629 = 1;
|
||||
if (getSw2No() != 0xFF) {
|
||||
fopAcM_onSwitch(this, getSw2No());
|
||||
}
|
||||
}
|
||||
|
||||
if (mType == 0) {
|
||||
Z2GetAudioMgr()->seStart(Z2SE_OBJ_STN_WL_RL_ST, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
field_0x60e = -0x3FFF;
|
||||
field_0x60c = 0;
|
||||
}
|
||||
} else if (field_0x60e < 0) {
|
||||
field_0x60e += field_0x60c;
|
||||
if (field_0x60c >= 64) {
|
||||
field_0x60c = 64;
|
||||
} else {
|
||||
field_0x60c += 1;
|
||||
}
|
||||
field_0x618 = 0;
|
||||
} else {
|
||||
if (field_0x618 == 0) {
|
||||
field_0x618 = 1;
|
||||
dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
field_0x61c = -2.0f;
|
||||
field_0x619 = 1;
|
||||
|
||||
if (mType == 0) {
|
||||
Z2GetAudioMgr()->seStart(Z2SE_OBJ_STN_WL_RL_ST, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
field_0x60e = 0;
|
||||
field_0x60c = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (fopAcM_isSwitch(this, getSwNo()) && getSw3No() != 0xFF && !fopAcM_isSwitch(this, getSw3No()) && field_0x60e < -6735) {
|
||||
fopAcM_onSwitch(this, getSw3No());
|
||||
}
|
||||
|
||||
if (field_0x619 != 0) {
|
||||
field_0x620 += field_0x61c;
|
||||
field_0x61c += 0.5f;
|
||||
|
||||
if (field_0x620 >= 0.0f) {
|
||||
field_0x620 = 0.0f;
|
||||
field_0x61c *= -0.2f;
|
||||
|
||||
if (fabsf(field_0x61c) < 0.5f) {
|
||||
field_0x61c = 0.0f;
|
||||
field_0x619 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x60c != 0) {
|
||||
int var_r28 = 20.0f * cM_ssin(field_0x60e * 2);
|
||||
if (var_r28 < 0) {
|
||||
var_r28 *= -1;
|
||||
}
|
||||
|
||||
var_r28++;
|
||||
if (var_r28 < 1) {
|
||||
var_r28 = 1;
|
||||
}
|
||||
if (var_r28 > 5) {
|
||||
var_r28 = 5;
|
||||
}
|
||||
|
||||
if (field_0x624 != var_r28) {
|
||||
field_0x624 = var_r28;
|
||||
dComIfGp_getVibration().StartQuake(field_0x624, 2, cXyz(0.0f, 1.0f, 0.0f));
|
||||
field_0x628 = 1;
|
||||
}
|
||||
|
||||
if (mType == 0) {
|
||||
if (field_0x60c < 0) {
|
||||
int sp18 = field_0x60c * -1;
|
||||
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_STN_WL_RL, NULL, sp18, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
} else {
|
||||
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_STN_WL_RL_OP, NULL, field_0x60c, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (field_0x628 != 0) {
|
||||
dComIfGp_getVibration().StopQuake(2);
|
||||
field_0x628 = 0;
|
||||
}
|
||||
field_0x624 = 0;
|
||||
}
|
||||
|
||||
setMtx();
|
||||
mpModel->setBaseTRMtx(mModelMtx);
|
||||
*param_0 = &mBgMtx2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C696BC-80C69760 000A9C 00A4+00 1/0 0/0 0/0 .text Draw__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::Draw() {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::Draw() {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C69760-80C697A4 000B40 0044+00 1/0 0/0 0/0 .text Delete__16daObjLv4PRwall_cFv */
|
||||
void daObjLv4PRwall_c::Delete() {
|
||||
// NONMATCHING
|
||||
int daObjLv4PRwall_c::Delete() {
|
||||
dComIfG_resDelete(this, l_arcName[mType]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C697A4-80C69804 000B84 0060+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_create1st__FP16daObjLv4PRwall_c */
|
||||
static int daObjLv4PRwall_create1st(daObjLv4PRwall_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, daObjLv4PRwall_c);
|
||||
return i_this->create1st();
|
||||
}
|
||||
|
||||
/* 80C69804-80C69824 000BE4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGDelete__FP16daObjLv4PRwall_c */
|
||||
static int daObjLv4PRwall_MoveBGDelete(daObjLv4PRwall_c* i_this) {
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80C69824-80C69844 000C04 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGExecute__FP16daObjLv4PRwall_c */
|
||||
static int daObjLv4PRwall_MoveBGExecute(daObjLv4PRwall_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80C69844-80C69870 000C24 002C+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGDraw__FP16daObjLv4PRwall_c */
|
||||
static int daObjLv4PRwall_MoveBGDraw(daObjLv4PRwall_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C6999C-80C699BC -00001 0020+00 1/0 0/0 0/0 .data daObjLv4PRwall_METHODS */
|
||||
static actor_method_class daObjLv4PRwall_METHODS = {
|
||||
(process_method_func)daObjLv4PRwall_create1st__FP16daObjLv4PRwall_c,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGDelete__FP16daObjLv4PRwall_c,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGExecute__FP16daObjLv4PRwall_c,
|
||||
0,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGDraw__FP16daObjLv4PRwall_c,
|
||||
(process_method_func)daObjLv4PRwall_create1st,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGDelete,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGExecute,
|
||||
(process_method_func)NULL,
|
||||
(process_method_func)daObjLv4PRwall_MoveBGDraw,
|
||||
};
|
||||
|
||||
/* 80C699BC-80C699EC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4PRwall */
|
||||
@@ -247,49 +340,3 @@ extern actor_process_profile_definition g_profile_Obj_Lv4PRwall = {
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C699EC-80C69A18 00005C 002C+00 2/2 0/0 0/0 .data __vt__16daObjLv4PRwall_c */
|
||||
SECTION_DATA extern void* __vt__16daObjLv4PRwall_c[11] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__16daObjLv4PRwall_cFv,
|
||||
(void*)Create__16daObjLv4PRwall_cFv,
|
||||
(void*)Execute__16daObjLv4PRwall_cFPPA3_A4_f,
|
||||
(void*)Draw__16daObjLv4PRwall_cFv,
|
||||
(void*)Delete__16daObjLv4PRwall_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
(void*)__dt__16daObjLv4PRwall_cFv,
|
||||
};
|
||||
|
||||
/* 80C697A4-80C69804 000B84 0060+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_create1st__FP16daObjLv4PRwall_c */
|
||||
static void daObjLv4PRwall_create1st(daObjLv4PRwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C69804-80C69824 000BE4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGDelete__FP16daObjLv4PRwall_c */
|
||||
static void daObjLv4PRwall_MoveBGDelete(daObjLv4PRwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C69824-80C69844 000C04 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGExecute__FP16daObjLv4PRwall_c */
|
||||
static void daObjLv4PRwall_MoveBGExecute(daObjLv4PRwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C69844-80C69870 000C24 002C+00 1/0 0/0 0/0 .text
|
||||
* daObjLv4PRwall_MoveBGDraw__FP16daObjLv4PRwall_c */
|
||||
static void daObjLv4PRwall_MoveBGDraw(daObjLv4PRwall_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C69870-80C698E0 000C50 0070+00 1/0 0/0 0/0 .text __dt__16daObjLv4PRwall_cFv */
|
||||
daObjLv4PRwall_c::~daObjLv4PRwall_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C69974-80C69974 00008C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
Reference in New Issue
Block a user