lv4bridge / lv4prwall done (#2728)

* lv4bridge / lv4prwall

* fix jp/pal
This commit is contained in:
TakaRikka
2025-10-07 10:42:10 -07:00
committed by GitHub
parent 8a99c051d1
commit fc6c0fd88c
7 changed files with 458 additions and 567 deletions
@@ -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
View File
@@ -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"),
+23 -11
View File
@@ -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);
+29 -10
View File
@@ -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
View File
@@ -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, &current.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
View File
@@ -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, &current.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 */