summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-10-31 01:13:14 -0700
committerGitHub <noreply@github.com>2025-10-31 10:13:14 +0200
commitc9838e29fa7dcbc7d05e3a2ea6a8eb77a8ee938e (patch)
treea11f9a38d80ecd5b7e80bb0c1ee21cd96e66b60c /src/d
parent194282d2c268947588c1b39108ce7e9b0100de91 (diff)
obj_lv8kekkaitrap / obj_nougu done, obj_lv7bridge almost (#2763)
* obj_lv8kekkaitrap / obj_nougu done, obj_lv7bridge almost * kekkaitrap cleanup
Diffstat (limited to 'src/d')
-rw-r--r--src/d/actor/d_a_obj_lv4gear.cpp2
-rw-r--r--src/d/actor/d_a_obj_lv7bridge.cpp912
-rw-r--r--src/d/actor/d_a_obj_lv8KekkaiTrap.cpp442
-rw-r--r--src/d/actor/d_a_obj_nougu.cpp559
-rw-r--r--src/d/actor/d_a_obj_swspinner.cpp12
5 files changed, 729 insertions, 1198 deletions
diff --git a/src/d/actor/d_a_obj_lv4gear.cpp b/src/d/actor/d_a_obj_lv4gear.cpp
index c72debfe76..ec9b7a4cfe 100644
--- a/src/d/actor/d_a_obj_lv4gear.cpp
+++ b/src/d/actor/d_a_obj_lv4gear.cpp
@@ -19,7 +19,7 @@ static void* searchSwSpinSub(void* i_actor, void* i_data) {
daObjLv4Gear_c* gear = (daObjLv4Gear_c*)i_data;
if (sw != NULL && fopAc_IsActor(sw) && fpcM_GetProfName(sw) == PROC_Obj_SwSpinner) {
- u8 sw_bit = sw->getSwBit();
+ u8 sw_bit = sw->getSwbit();
if (sw_bit != 0xFF && sw_bit == gear->getSwBit()) {
return sw;
}
diff --git a/src/d/actor/d_a_obj_lv7bridge.cpp b/src/d/actor/d_a_obj_lv7bridge.cpp
index 36d82c3e9a..d390f1469d 100644
--- a/src/d/actor/d_a_obj_lv7bridge.cpp
+++ b/src/d/actor/d_a_obj_lv7bridge.cpp
@@ -6,236 +6,97 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_lv7bridge.h"
-#include "d/d_cc_d.h"
-#include "dol2asm.h"
-
-
-//
-// Forward References:
-//
-
-extern "C" static void searchSwSpinner__FPvPv();
-extern "C" void search_swspinner__13daObjLv7Brg_cFv();
-extern "C" void initBaseMtx__13daObjLv7Brg_cFv();
-extern "C" void setBaseMtx__13daObjLv7Brg_cFv();
-extern "C" void Create__13daObjLv7Brg_cFv();
-extern "C" void CreateHeap__13daObjLv7Brg_cFv();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" void create1st__13daObjLv7Brg_cFv();
-extern "C" void Execute__13daObjLv7Brg_cFPPA3_A4_f();
-extern "C" void action__13daObjLv7Brg_cFv();
-extern "C" void mode_action__13daObjLv7Brg_cFv();
-extern "C" void mode_end__13daObjLv7Brg_cFv();
-extern "C" void calcCoPos__13daObjLv7Brg_cFv();
-extern "C" void Draw__13daObjLv7Brg_cFv();
-extern "C" void Delete__13daObjLv7Brg_cFv();
-extern "C" static void daObjLv7Brg_create1st__FP13daObjLv7Brg_c();
-extern "C" void __dt__8dCcD_CylFv();
-extern "C" void __ct__8dCcD_CylFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" static void daObjLv7Brg_MoveBGDelete__FP13daObjLv7Brg_c();
-extern "C" static void daObjLv7Brg_MoveBGExecute__FP13daObjLv7Brg_c();
-extern "C" static void daObjLv7Brg_MoveBGDraw__FP13daObjLv7Brg_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" static void func_80C87988();
-extern "C" static void func_80C87990();
-extern "C" extern char const* const d_a_obj_lv7bridge__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 play__14mDoExt_baseAnmFv();
-extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb();
-extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void fopAc_IsActor__FPv();
-extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
-extern "C" void fpcEx_Search__FPFPvPv_PvPv();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-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
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void StartShock__12dVibration_cFii4cXyz();
-extern "C" void StartQuake__12dVibration_cFii4cXyz();
-extern "C" void StopQuake__12dVibration_cFi();
-extern "C" void Release__4cBgSFP9dBgW_Base();
-extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
-extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-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 SetObj__16dBgS_PolyPassChkFv();
-extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
-extern "C" void __ct__4dBgWFv();
-extern "C" void Move__4dBgWFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void ChkUsed__9cBgW_BgIdCFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void cLib_addCalc__FPfffff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void __construct_array();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_23();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_23();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 data_80C87BB8[4];
-
-//
-// Declarations:
-//
+#include "d/actor/d_a_obj_swspinner.h"
+#include "d/d_s_play.h"
/* 80C86378-80C863EC 000078 0074+00 1/1 0/0 0/0 .text searchSwSpinner__FPvPv */
-static void searchSwSpinner(void* param_0, void* param_1) {
- // NONMATCHING
+static void* searchSwSpinner(void* i_actor, void* i_data) {
+ fopAc_ac_c* swspinner = (fopAc_ac_c*)i_actor;
+ fopAc_ac_c* brg = (fopAc_ac_c*)i_data;
+
+ if (swspinner != NULL && fopAcM_IsActor(swspinner) && fopAcM_GetProfName(swspinner) == PROC_Obj_SwSpinner) {
+ if (((daObjLv7Brg_c*)brg)->getSwbit() == ((daObjSwSpinner_c*)swspinner)->getSwbit()) {
+ return swspinner;
+ }
+ }
+
+ return NULL;
}
/* 80C863EC-80C86454 0000EC 0068+00 1/1 0/0 0/0 .text search_swspinner__13daObjLv7Brg_cFv
*/
-void daObjLv7Brg_c::search_swspinner() {
- // NONMATCHING
+daObjSwSpinner_c* daObjLv7Brg_c::search_swspinner() {
+ daObjSwSpinner_c* swspinner = NULL;
+ if (parentActorID == fpcM_ERROR_PROCESS_ID_e) {
+ swspinner = (daObjSwSpinner_c*)fpcM_Search(searchSwSpinner, this);
+ if (swspinner != NULL) {
+ parentActorID = fopAcM_GetID(swspinner);
+ }
+ }
+
+ return swspinner;
}
/* 80C86454-80C864B4 000154 0060+00 1/1 0/0 0/0 .text initBaseMtx__13daObjLv7Brg_cFv */
void daObjLv7Brg_c::initBaseMtx() {
- // NONMATCHING
+ mpModel->setBaseScale(scale);
+
+ if (mpBrokenModel != NULL) {
+ mpBrokenModel->setBaseScale(scale);
+ }
+
+ setBaseMtx();
}
-/* ############################################################################################## */
/* 80C879A0-80C879A8 000000 0008+00 4/4 0/0 0/0 .rodata l_bmd */
-SECTION_RODATA static u8 const l_bmd[8] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A,
-};
-COMPILER_STRIP_GATE(0x80C879A0, &l_bmd);
+static const int l_bmd[] = {4, 10};
/* 80C879A8-80C879B0 000008 0008+00 1/1 0/0 0/0 .rodata l_dzb */
-SECTION_RODATA static u8 const l_dzb[8] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D,
-};
-COMPILER_STRIP_GATE(0x80C879A8, &l_dzb);
+static const int l_dzb[] = {7, 13};
/* 80C879B0-80C879C4 000010 0012+02 0/1 0/0 0/0 .rodata l_eff_id */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_eff_id[18 + 2 /* padding */] = {
- 0x8B,
- 0x55,
- 0x8B,
- 0x56,
- 0x8B,
- 0x57,
- 0x8B,
- 0x58,
- 0x8B,
- 0x59,
- 0x8B,
- 0x5A,
- 0x8B,
- 0x5B,
- 0x8B,
- 0x5C,
- 0x8B,
- 0x5D,
- /* padding */
- 0x00,
- 0x00,
+static const u16 l_eff_id[] = {
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_A),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_B),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_C),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_D),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_E),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_F),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_G),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_H),
+ dPa_RM(ID_ZI_S_LV7BRDG_BREAK_I),
};
-COMPILER_STRIP_GATE(0x80C879B0, &l_eff_id);
-#pragma pop
/* 80C879C4-80C879CC 000024 0008+00 1/1 0/0 0/0 .rodata l_heap_size */
-SECTION_RODATA static u8 const l_heap_size[8] = {
- 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C879C4, &l_heap_size);
-
-/* 80C879CC-80C879D0 00002C 0004+00 3/5 0/0 0/0 .rodata @3697 */
-SECTION_RODATA static u8 const lit_3697[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80C879CC, &lit_3697);
+static const u32 l_heap_size[] = {0x6000, 0x20000};
/* 80C864B4-80C865B8 0001B4 0104+00 2/2 0/0 0/0 .text setBaseMtx__13daObjLv7Brg_cFv */
void daObjLv7Brg_c::setBaseMtx() {
- // NONMATCHING
+ cXyz sp8(field_0xa78, 0.0f, 0.0f);
+ if (mKind == 1) {
+ sp8.set(-field_0xa78, 0.0f, 0.0f);
+ }
+
+ mDoMtx_stack_c::YrotS(shape_angle.y);
+ mDoMtx_stack_c::multVec(&sp8, &sp8);
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(sp8);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
+ MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
+
+ if (mKind == 1) {
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(sp8);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mpBrokenModel->setBaseTRMtx(mDoMtx_stack_c::get());
+ }
}
-/* ############################################################################################## */
-/* 80C879D0-80C879D4 000030 0004+00 1/2 0/0 0/0 .rodata @3767 */
-SECTION_RODATA static f32 const lit_3767 = 5100.0f;
-COMPILER_STRIP_GATE(0x80C879D0, &lit_3767);
-
-/* 80C879D4-80C879D8 000034 0004+00 1/1 0/0 0/0 .rodata @3768 */
-SECTION_RODATA static f32 const lit_3768 = 100.0f;
-COMPILER_STRIP_GATE(0x80C879D4, &lit_3768);
-
-/* 80C879D8-80C879E0 000038 0008+00 1/1 0/0 0/0 .rodata @3770 */
-SECTION_RODATA static u8 const lit_3770[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C879D8, &lit_3770);
-
-/* 80C87A20-80C87A20 000080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80C87A20 = "Obj_l7brg";
-SECTION_DEAD static char const* const stringBase_80C87A2A = "K_bridge";
-#pragma pop
-
/* 80C87A54-80C87A5C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */
-SECTION_DATA static void* l_arcName[2] = {
- (void*)&d_a_obj_lv7bridge__stringBase0,
- (void*)(((char*)&d_a_obj_lv7bridge__stringBase0) + 0xA),
+static char* l_arcName[2] = {
+ "Obj_l7brg",
+ "K_bridge",
};
/* 80C87A5C-80C87AA0 000028 0044+00 1/1 0/0 0/0 .data l_cyl_src */
@@ -254,377 +115,370 @@ static dCcD_SrcCyl l_cyl_src = {
};
/* 80C865B8-80C867CC 0002B8 0214+00 1/0 0/0 0/0 .text Create__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::Create() {
- // NONMATCHING
+int daObjLv7Brg_c::Create() {
+ field_0xa94 = -1;
+ field_0xa95 = field_0xa94;
+
+ if (mKind == 1) {
+ if (fopAcM_isSwitch(this, getSwbit3())) {
+ if (mpBgW != NULL && mpBgW->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+
+ if (mpBgw2 != NULL && !mpBgw2->ChkUsed()) {
+ dComIfG_Bgsp().Regist(mpBgw2, this);
+ }
+
+ field_0xa94 = 1;
+ mpBck[1]->setFrame(mpBck[1]->getEndFrame());
+ field_0xa96 = 1;
+ OS_REPORT("壊れる橋:破壊済みです!\n");
+ }
+
+ if (fopAcM_isSwitch(this, getSwbit2())) {
+ field_0xa78 = 5100.0f;
+ setMode(1);
+ OS_REPORT("壊れる橋:移動済みです!\n");
+ }
+ } else if (mType == 0 && fopAcM_isSwitch(this, getSwbit2())) {
+ field_0xa78 = 5100.0f;
+ setMode(1);
+ }
+
+ fopAcM_setCullSizeFar(this, 100.0f);
+ initBaseMtx();
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mpModel->getModelData());
+ mCcStts.Init(0xFF, 0xFF, this);
+
+ for (int i = 0; i < 2; i++) {
+ mCcCyl[i].Set(l_cyl_src);
+ mCcCyl[i].SetStts(&mCcStts);
+ }
+
+ calcCoPos();
+ MoveBGExecute();
+ return 1;
}
-/* ############################################################################################## */
-/* 80C879E0-80C879E8 000040 0008+00 0/1 0/0 0/0 .rodata l_bck$3780 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_bck[8] = {
- 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06,
-};
-COMPILER_STRIP_GATE(0x80C879E0, &l_bck);
-#pragma pop
-
-/* 80C879E8-80C879EC 000048 0004+00 0/3 0/0 0/0 .rodata @3830 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3830 = 1.0f;
-COMPILER_STRIP_GATE(0x80C879E8, &lit_3830);
-#pragma pop
-
-/* 80C87AA0-80C87AAC -00001 000C+00 0/1 0/0 0/0 .data @3941 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3941[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_action__13daObjLv7Brg_cFv,
-};
-#pragma pop
-
-/* 80C87AAC-80C87AB8 -00001 000C+00 0/1 0/0 0/0 .data @3942 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3942[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_end__13daObjLv7Brg_cFv,
-};
-#pragma pop
-
-/* 80C87AB8-80C87AD0 000084 0018+00 0/1 0/0 0/0 .data mode_proc$3940 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 mode_proc[24] = {
- 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
-
-/* 80C87AD0-80C87AF0 -00001 0020+00 1/0 0/0 0/0 .data daObjLv7Brg_METHODS */
-static actor_method_class daObjLv7Brg_METHODS = {
- (process_method_func)daObjLv7Brg_create1st__FP13daObjLv7Brg_c,
- (process_method_func)daObjLv7Brg_MoveBGDelete__FP13daObjLv7Brg_c,
- (process_method_func)daObjLv7Brg_MoveBGExecute__FP13daObjLv7Brg_c,
- 0,
- (process_method_func)daObjLv7Brg_MoveBGDraw__FP13daObjLv7Brg_c,
-};
-
-/* 80C87AF0-80C87B20 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv7Bridge */
-extern actor_process_profile_definition g_profile_Obj_Lv7Bridge = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Lv7Bridge, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjLv7Brg_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 566, // mPriority
- &daObjLv7Brg_METHODS, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80C87B20-80C87B2C 0000EC 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
-
-/* 80C87B2C-80C87B38 0000F8 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80C87B38-80C87B44 000104 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80C87B44-80C87B50 000110 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 80C87B50-80C87B5C 00011C 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-/* 80C87B5C-80C87B80 000128 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80C87990,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80C87988,
-};
-
-/* 80C87B80-80C87B8C 00014C 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
-SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12J3DFrameCtrlFv,
-};
-
/* 80C867CC-80C869FC 0004CC 0230+00 1/0 0/0 0/0 .text CreateHeap__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::CreateHeap() {
- // NONMATCHING
-}
-
-/* 80C869FC-80C86A44 0006FC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
+int daObjLv7Brg_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mKind], l_bmd[mKind]);
+ JUT_ASSERT(374, modelData != NULL);
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
+
+ if (mKind == 1) {
+ J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mKind], 9);
+ JUT_ASSERT(374, modelData2 != NULL);
+ mpBrokenModel = mDoExt_J3DModel__create(modelData2, 0x80000, 0x11000084);
+ if (mpBrokenModel == NULL) {
+ return 0;
+ }
+
+ for (int i = 0; i < 2; i++) {
+ static const int l_bck[] = {5, 6};
+
+ J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName[mKind], l_bck[i]);
+ JUT_ASSERT(411, pbck != NULL);
+
+ mpBck[i] = new mDoExt_bckAnm();
+ if (mpBck[i] == NULL || !mpBck[i]->init(pbck, 1, 0, 1.0f, 0, -1, 0)) {
+ return 0;
+ }
+ }
+
+ mpBgw2 = new dBgW();
+ if (mpBgw2 != NULL && !mpBgw2->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName[mKind], 0xE), 1, &mBgMtx)) {
+ mpBgw2->SetCrrFunc(dBgS_MoveBGProc_Typical);
+ } else {
+ mpBgw2 = NULL;
+ return 0;
+ }
+ }
+
+ return 1;
}
/* 80C86A44-80C86B40 000744 00FC+00 1/1 0/0 0/0 .text create1st__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::create1st() {
- // NONMATCHING
+int daObjLv7Brg_c::create1st() {
+ if (!mInitParams) {
+ mInitParams = TRUE;
+ field_0xa80 = home.angle.x;
+ field_0xa82 = home.angle.z;
+ shape_angle.x = 0;
+ current.angle.x = 0;
+ home.angle.x = 0;
+ shape_angle.z = 0;
+ current.angle.z = 0;
+ home.angle.z = 0;
+ }
+
+ mType = getType();
+ mKind = getKind();
+
+ int phase_state = dComIfG_resLoad(&mPhase, l_arcName[mKind]);
+ if (phase_state == cPhs_COMPLEATE_e) {
+ phase_state = MoveBGCreate(l_arcName[mKind], l_dzb[mKind], dBgS_MoveBGProc_Typical, l_heap_size[mKind], NULL);
+ if (phase_state == cPhs_ERROR_e) {
+ return phase_state;
+ }
+ }
+
+ return phase_state;
}
-/* ############################################################################################## */
-/* 80C879EC-80C879F0 00004C 0004+00 0/1 0/0 0/0 .rodata @3935 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3935 = 2550.0f;
-COMPILER_STRIP_GATE(0x80C879EC, &lit_3935);
-#pragma pop
-
-/* 80C879F0-80C879F4 000050 0004+00 0/1 0/0 0/0 .rodata @3936 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3936 = 7650.0f;
-COMPILER_STRIP_GATE(0x80C879F0, &lit_3936);
-#pragma pop
-
/* 80C86B40-80C86E68 000840 0328+00 1/0 0/0 0/0 .text Execute__13daObjLv7Brg_cFPPA3_A4_f
*/
-void daObjLv7Brg_c::Execute(Mtx** param_0) {
- // NONMATCHING
+int daObjLv7Brg_c::Execute(Mtx** param_0) {
+ search_swspinner();
+ action();
+
+ *param_0 = &mBgMtx;
+ setBaseMtx();
+
+ cXyz sp1C(2550.0f, 0.0f, 0.0f);
+ if (mKind == 1) {
+ sp1C.x = -sp1C.x;
+ }
+
+ mDoMtx_stack_c::YrotS(shape_angle.y);
+ mDoMtx_stack_c::multVec(&sp1C, &sp1C);
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(sp1C);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mDoMtx_stack_c::multVecZero(&eyePos);
+
+ sp1C.set(7650.0f, 0.0f, 0.0f);
+ if (mKind == 1) {
+ sp1C.x = -sp1C.x;
+ }
+
+ mDoMtx_stack_c::YrotS(shape_angle.y);
+ mDoMtx_stack_c::multVec(&sp1C, &sp1C);
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(sp1C);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mDoMtx_stack_c::multVecZero(&field_0xa98);
+
+ if (field_0xa94 == 0) {
+ mpBck[0]->setPlaySpeed(1.0f);
+ mpBck[0]->play();
+
+ if (field_0xa95 == -1) {
+ cXyz effpos(-field_0xa78, 0.0f, 0.0f);
+ mDoMtx_stack_c::YrotS(shape_angle.y);
+ mDoMtx_stack_c::multVec(&effpos, &effpos);
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::transM(effpos);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mDoMtx_stack_c::multVecZero(&effpos);
+
+ for (int i = 0; i < 9; i++) {
+ dComIfGp_particle_set(l_eff_id[i], &effpos, &home.angle, &scale, 0xFF, NULL, -1, NULL, NULL, NULL);
+ }
+ }
+ } else if (field_0xa94 == 1) {
+ mpBck[1]->setPlaySpeed(1.0f);
+ if (mpBck[1]->play()) {
+ if (mpBgW->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+
+ if (mpBgw2 != NULL && !mpBgw2->ChkUsed()) {
+ dComIfG_Bgsp().Regist(mpBgw2, this);
+ }
+
+ field_0xa96 = 1;
+ }
+ }
+
+ if (mpBgw2 != NULL && mpBgw2->ChkUsed()) {
+ mpBgw2->Move();
+ }
+
+ field_0xa95 = field_0xa94;
+ return 1;
}
/* 80C86E68-80C86F44 000B68 00DC+00 1/1 0/0 0/0 .text action__13daObjLv7Brg_cFv */
void daObjLv7Brg_c::action() {
- // NONMATCHING
-}
+ static void (daObjLv7Brg_c::*mode_proc[])() = {
+ &daObjLv7Brg_c::mode_action,
+ &daObjLv7Brg_c::mode_end,
+ };
+
+ (this->*mode_proc[mMode])();
-/* ############################################################################################## */
-/* 80C879F4-80C879F8 000054 0004+00 0/1 0/0 0/0 .rodata @4027 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4027 = 30.0f;
-COMPILER_STRIP_GATE(0x80C879F4, &lit_4027);
-#pragma pop
-
-/* 80C879F8-80C879FC 000058 0004+00 0/1 0/0 0/0 .rodata @4028 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4028 = -45.0f;
-COMPILER_STRIP_GATE(0x80C879F8, &lit_4028);
-#pragma pop
-
-/* 80C879FC-80C87A00 00005C 0004+00 0/1 0/0 0/0 .rodata @4029 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4029 = 1.0f / 50.0f;
-COMPILER_STRIP_GATE(0x80C879FC, &lit_4029);
-#pragma pop
-
-/* 80C87A00-80C87A04 000060 0004+00 0/1 0/0 0/0 .rodata @4030 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4030 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80C87A00, &lit_4030);
-#pragma pop
-
-/* 80C87A04-80C87A08 000064 0004+00 0/1 0/0 0/0 .rodata @4031 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4031 = 127.0f;
-COMPILER_STRIP_GATE(0x80C87A04, &lit_4031);
-#pragma pop
-
-/* 80C87A08-80C87A0C 000068 0004+00 0/1 0/0 0/0 .rodata @4032 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4032 = -1.0f;
-COMPILER_STRIP_GATE(0x80C87A08, &lit_4032);
-#pragma pop
+ if (speedF < 0.0f || KREG_S(7) != 0) {
+ dComIfG_Ccsp()->Set(&mCcCyl[0]);
+ dComIfG_Ccsp()->Set(&mCcCyl[1]);
+ }
+}
/* 80C86F44-80C87210 000C44 02CC+00 1/0 0/0 0/0 .text mode_action__13daObjLv7Brg_cFv */
+// NONMATCHING - small regalloc
void daObjLv7Brg_c::mode_action() {
- // NONMATCHING
+ f32 var_f31;
+ f32 temp_f30 = field_0xa78;
+ f32 temp_f29 = speedF;
+
+ if (fopAcM_isSwitch(this, getSwbit())) {
+ if (5100.0f == field_0xa78) {
+ var_f31 = 0.0f;
+ } else {
+ var_f31 = 30.0f;
+ }
+ } else if (0.0f == field_0xa78) {
+ var_f31 = 0.0f;
+ } else {
+ var_f31 = -45.0f;
+ }
+
+ cLib_addCalc(&speedF, var_f31, 0.02f, 1.0f, 0.1f);
+ field_0xa78 += speedF;
+
+ if (0.0f != speedF) {
+ fopAcM_seStartLevel(this, 0x8025F, (127.0f * speedF) / 30.0f);
+ }
+
+ if (0.0f != speedF && 0.0f == temp_f29) {
+ dComIfGp_getVibration().StartQuake(2, 0xF, cXyz(0.0f, 1.0f, 0.0f));
+ }
+
+ if (field_0xa78 < 0.0f) {
+ field_0xa78 = 0.0f;
+ speedF = 0.0f;
+ dComIfGp_getVibration().StopQuake(0x1F);
+
+ if (temp_f30 > 0.0f) {
+ dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
+ }
+ } else if (field_0xa78 > 5100.0f) {
+ field_0xa78 = 5100.0f;
+ speedF = 0.0f;
+ dComIfGp_getVibration().StopQuake(0x1F);
+
+ if (temp_f30 < 5100.0f) {
+ mDoAud_seStart(Z2SE_OBJ_BRDG_STOP, &field_0xa98, 0, 0);
+ dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
+ if (mType == 0) {
+ fopAcM_onSwitch(this, getSwbit2());
+ setMode(1);
+ }
+ }
+ }
}
/* 80C87210-80C87214 000F10 0004+00 1/0 0/0 0/0 .text mode_end__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::mode_end() {
- /* empty function */
-}
-
-/* ############################################################################################## */
-/* 80C87A0C-80C87A10 00006C 0004+00 0/1 0/0 0/0 .rodata @4067 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4067 = 2700.0f;
-COMPILER_STRIP_GATE(0x80C87A0C, &lit_4067);
-#pragma pop
-
-/* 80C87A10-80C87A14 000070 0004+00 0/1 0/0 0/0 .rodata @4068 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4068 = -80.0f;
-COMPILER_STRIP_GATE(0x80C87A10, &lit_4068);
-#pragma pop
-
-/* 80C87A14-80C87A18 000074 0004+00 0/1 0/0 0/0 .rodata @4069 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4069 = 450.0f;
-COMPILER_STRIP_GATE(0x80C87A14, &lit_4069);
-#pragma pop
-
-/* 80C87A18-80C87A1C 000078 0004+00 0/1 0/0 0/0 .rodata @4070 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4070 = -450.0f;
-COMPILER_STRIP_GATE(0x80C87A18, &lit_4070);
-#pragma pop
-
-/* 80C87A1C-80C87A20 00007C 0004+00 0/1 0/0 0/0 .rodata @4071 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4071 = -2700.0f;
-COMPILER_STRIP_GATE(0x80C87A1C, &lit_4071);
-#pragma pop
+void daObjLv7Brg_c::mode_end() {}
/* 80C87214-80C87304 000F14 00F0+00 1/1 0/0 0/0 .text calcCoPos__13daObjLv7Brg_cFv */
void daObjLv7Brg_c::calcCoPos() {
- // NONMATCHING
-}
+ cXyz sp8[2];
+ sp8[0].set(2700.0f, -80.0f, 450.0f);
+ sp8[1].set(2700.0f, -80.0f, -450.0f);
-/* 80C87304-80C87458 001004 0154+00 1/0 0/0 0/0 .text Draw__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::Draw() {
- // NONMATCHING
-}
+ if (mKind == 1) {
+ sp8[0].set(-2700.0f, -80.0f, 450.0f);
+ sp8[1].set(-2700.0f, -80.0f, -450.0f);
+ }
-/* 80C87458-80C874CC 001158 0074+00 1/0 0/0 0/0 .text Delete__13daObjLv7Brg_cFv */
-void daObjLv7Brg_c::Delete() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80C87B8C-80C87BB4 000158 0028+00 1/1 0/0 0/0 .data __vt__13daObjLv7Brg_c */
-SECTION_DATA extern void* __vt__13daObjLv7Brg_c[10] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__13daObjLv7Brg_cFv,
- (void*)Create__13daObjLv7Brg_cFv,
- (void*)Execute__13daObjLv7Brg_cFPPA3_A4_f,
- (void*)Draw__13daObjLv7Brg_cFv,
- (void*)Delete__13daObjLv7Brg_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
-};
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
-/* 80C874CC-80C875B8 0011CC 00EC+00 1/0 0/0 0/0 .text daObjLv7Brg_create1st__FP13daObjLv7Brg_c */
-static void daObjLv7Brg_create1st(daObjLv7Brg_c* param_0) {
- // NONMATCHING
-}
-
-/* 80C875B8-80C87684 0012B8 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_CylFv */
-// dCcD_Cyl::~dCcD_Cyl() {
-extern "C" void __dt__8dCcD_CylFv() {
- // NONMATCHING
-}
+ for (int i = 0; i < 2; i++) {
+ mDoMtx_stack_c::multVec(&sp8[i], &sp8[i]);
+ }
-/* 80C87684-80C87708 001384 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */
-// dCcD_Cyl::dCcD_Cyl() {
-extern "C" void __ct__8dCcD_CylFv() {
- // NONMATCHING
+ mCcCyl[0].SetC(sp8[0]);
+ mCcCyl[1].SetC(sp8[1]);
}
-/* 80C87708-80C87750 001408 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80C87750-80C87798 001450 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
+/* 80C87304-80C87458 001004 0154+00 1/0 0/0 0/0 .text Draw__13daObjLv7Brg_cFv */
+int daObjLv7Brg_c::Draw() {
+ if (0.0f == field_0xa78) {
+ return 1;
+ }
+
+ g_env_light.settingTevStruct(16, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+ dComIfGd_setListBG();
+ mDoExt_modelUpdateDL(mpModel);
+
+ if (mKind == 1) {
+ g_env_light.setLightTevColorType_MAJI(mpBrokenModel, &tevStr);
+ if (mpBck[0] != NULL && mpBck[1] != NULL && field_0xa96 == 0) {
+ if (field_0xa94 != -1) {
+ mpBck[field_0xa94]->entry(mpBrokenModel->getModelData());
+ }
+ mDoExt_modelUpdateDL(mpBrokenModel);
+ mDoExt_bckAnmRemove(mpBrokenModel->getModelData());
+ }
+ }
+
+ dComIfGd_setList();
+ return 1;
}
-/* 80C87798-80C877F4 001498 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
+/* 80C87458-80C874CC 001158 0074+00 1/0 0/0 0/0 .text Delete__13daObjLv7Brg_cFv */
+int daObjLv7Brg_c::Delete() {
+ if (mpBgw2 != NULL && mpBgw2->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgw2);
+ }
-/* 80C877F4-80C87864 0014F4 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
+ dComIfG_resDelete(&mPhase, l_arcName[mKind]);
+ return 1;
}
-/* 80C87864-80C878D4 001564 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
+/* 80C874CC-80C875B8 0011CC 00EC+00 1/0 0/0 0/0 .text daObjLv7Brg_create1st__FP13daObjLv7Brg_c */
+static int daObjLv7Brg_create1st(daObjLv7Brg_c* i_this) {
+ fopAcM_ct(i_this, daObjLv7Brg_c);
+ return i_this->create1st();
}
/* 80C878D4-80C878F4 0015D4 0020+00 1/0 0/0 0/0 .text daObjLv7Brg_MoveBGDelete__FP13daObjLv7Brg_c
*/
-static void daObjLv7Brg_MoveBGDelete(daObjLv7Brg_c* param_0) {
- // NONMATCHING
+static int daObjLv7Brg_MoveBGDelete(daObjLv7Brg_c* i_this) {
+ return i_this->MoveBGDelete();
}
/* 80C878F4-80C87914 0015F4 0020+00 1/0 0/0 0/0 .text daObjLv7Brg_MoveBGExecute__FP13daObjLv7Brg_c
*/
-static void daObjLv7Brg_MoveBGExecute(daObjLv7Brg_c* param_0) {
- // NONMATCHING
+static int daObjLv7Brg_MoveBGExecute(daObjLv7Brg_c* i_this) {
+ return i_this->MoveBGExecute();
}
/* 80C87914-80C87940 001614 002C+00 1/0 0/0 0/0 .text daObjLv7Brg_MoveBGDraw__FP13daObjLv7Brg_c */
-static void daObjLv7Brg_MoveBGDraw(daObjLv7Brg_c* param_0) {
- // NONMATCHING
+static int daObjLv7Brg_MoveBGDraw(daObjLv7Brg_c* i_this) {
+ return i_this->MoveBGDraw();
}
-/* 80C87940-80C87988 001640 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80C87988-80C87990 001688 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80C87988() {
- // NONMATCHING
-}
-
-/* 80C87990-80C87998 001690 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80C87990() {
- // NONMATCHING
-}
+/* 80C87AD0-80C87AF0 -00001 0020+00 1/0 0/0 0/0 .data daObjLv7Brg_METHODS */
+static actor_method_class daObjLv7Brg_METHODS = {
+ (process_method_func)daObjLv7Brg_create1st,
+ (process_method_func)daObjLv7Brg_MoveBGDelete,
+ (process_method_func)daObjLv7Brg_MoveBGExecute,
+ 0,
+ (process_method_func)daObjLv7Brg_MoveBGDraw,
+};
-/* 80C87A20-80C87A20 000080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80C87AF0-80C87B20 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv7Bridge */
+extern actor_process_profile_definition g_profile_Obj_Lv7Bridge = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Lv7Bridge, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjLv7Brg_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 566, // mPriority
+ &daObjLv7Brg_METHODS, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_lv8KekkaiTrap.cpp b/src/d/actor/d_a_obj_lv8KekkaiTrap.cpp
index 95b1d291c3..ff8e26847f 100644
--- a/src/d/actor/d_a_obj_lv8KekkaiTrap.cpp
+++ b/src/d/actor/d_a_obj_lv8KekkaiTrap.cpp
@@ -6,346 +6,252 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_lv8KekkaiTrap.h"
-#include "dol2asm.h"
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__17daKekaiTrap_HIO_cFv();
-extern "C" void __dt__14mDoHIO_entry_cFv();
-extern "C" void setBaseMtx__13daKekaiTrap_cFv();
-extern "C" void CreateHeap__13daKekaiTrap_cFv();
-extern "C" void create__13daKekaiTrap_cFv();
-extern "C" void Execute__13daKekaiTrap_cFPPA3_A4_f();
-extern "C" void moveMain__13daKekaiTrap_cFv();
-extern "C" void init_modeWait__13daKekaiTrap_cFv();
-extern "C" void modeWait__13daKekaiTrap_cFv();
-extern "C" void init_modeMoveUp__13daKekaiTrap_cFv();
-extern "C" void modeMoveUp__13daKekaiTrap_cFv();
-extern "C" void init_modeMoveDown__13daKekaiTrap_cFv();
-extern "C" void modeMoveDown__13daKekaiTrap_cFv();
-extern "C" void Draw__13daKekaiTrap_cFv();
-extern "C" void Delete__13daKekaiTrap_cFv();
-extern "C" static void daKekaiTrap_Draw__FP13daKekaiTrap_c();
-extern "C" static void daKekaiTrap_Execute__FP13daKekaiTrap_c();
-extern "C" static void daKekaiTrap_Delete__FP13daKekaiTrap_c();
-extern "C" static void daKekaiTrap_Create__FP10fopAc_ac_c();
-extern "C" void __dt__17daKekaiTrap_HIO_cFv();
-extern "C" void __sinit_d_a_obj_lv8KekkaiTrap_cpp();
-extern "C" extern char const* const d_a_obj_lv8KekkaiTrap__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
-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 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 Create__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_addCalc__FPfffff();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void __dl__FPv();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80C884E4-80C884E8 000000 0004+00 4/4 0/0 0/0 .rodata @3651 */
-SECTION_RODATA static u8 const lit_3651[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80C884E4, &lit_3651);
-
-/* 80C884E8-80C884EC 000004 0004+00 1/1 0/0 0/0 .rodata @3652 */
-SECTION_RODATA static f32 const lit_3652 = 7.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80C884E8, &lit_3652);
-/* 80C884F8-80C884F8 000014 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80C884F8 = "Lv8Kekkai";
-#pragma pop
+class daKekaiTrap_HIO_c : public mDoHIO_entry_c {
+public:
+ /* 80C87CAC */ daKekaiTrap_HIO_c();
+ /* 80C88438 */ virtual ~daKekaiTrap_HIO_c() {}
-/* 80C88524-80C88528 -00001 0004+00 3/3 0/0 0/0 .data l_type */
-SECTION_DATA static void* l_type = (void*)&d_a_obj_lv8KekkaiTrap__stringBase0;
-
-/* 80C88528-80C8852C 000024 0004+00 1/1 0/0 0/0 .data l_bmdIdx */
-SECTION_DATA static u32 l_bmdIdx = 0x00000004;
-
-/* 80C8852C-80C88530 000028 0004+00 1/1 0/0 0/0 .data l_dzbIdx */
-SECTION_DATA static u32 l_dzbIdx = 0x00000007;
-
-/* 80C88530-80C8853C -00001 000C+00 0/1 0/0 0/0 .data @3756 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3756[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWait__13daKekaiTrap_cFv,
-};
-#pragma pop
-
-/* 80C8853C-80C88548 -00001 000C+00 0/1 0/0 0/0 .data @3757 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3757[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMoveUp__13daKekaiTrap_cFv,
-};
-#pragma pop
-
-/* 80C88548-80C88554 -00001 000C+00 0/1 0/0 0/0 .data @3758 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3758[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMoveDown__13daKekaiTrap_cFv,
-};
-#pragma pop
-
-/* 80C88554-80C88578 000050 0024+00 0/1 0/0 0/0 .data mode_proc$3755 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 mode_proc[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
+ void genMessage(JORMContext*);
-/* 80C88578-80C88598 -00001 0020+00 1/0 0/0 0/0 .data l_daKekaiTrap_Method */
-static actor_method_class l_daKekaiTrap_Method = {
- (process_method_func)daKekaiTrap_Create__FP10fopAc_ac_c,
- (process_method_func)daKekaiTrap_Delete__FP13daKekaiTrap_c,
- (process_method_func)daKekaiTrap_Execute__FP13daKekaiTrap_c,
- 0,
- (process_method_func)daKekaiTrap_Draw__FP13daKekaiTrap_c,
+ /* 0x04 */ f32 appear_init_speed;
+ /* 0x08 */ f32 appear_max_speed;
+ /* 0x0C */ u8 appear_wait;
+ /* 0x10 */ f32 disappear_init_speed;
+ /* 0x14 */ f32 disappear_max_speed;
+ /* 0x18 */ u8 disappear_wait;
};
-/* 80C88598-80C885C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv8KekkaiTrap */
-extern actor_process_profile_definition g_profile_Obj_Lv8KekkaiTrap = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Lv8KekkaiTrap, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daKekaiTrap_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 644, // mPriority
- &l_daKekaiTrap_Method, // sub_method
- 0x00044000, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+/* 80C8861C-80C88638 000014 001C+00 5/5 0/0 0/0 .bss l_HIO */
+static daKekaiTrap_HIO_c l_HIO;
-/* 80C885C8-80C885F0 0000C4 0028+00 1/1 0/0 0/0 .data __vt__13daKekaiTrap_c */
-SECTION_DATA extern void* __vt__13daKekaiTrap_c[10] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__13daKekaiTrap_cFv,
- (void*)Create__16dBgS_MoveBgActorFv,
- (void*)Execute__13daKekaiTrap_cFPPA3_A4_f,
- (void*)Draw__13daKekaiTrap_cFv,
- (void*)Delete__13daKekaiTrap_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
-};
+/* 80C88524-80C88528 -00001 0004+00 3/3 0/0 0/0 .data l_type */
+static char* l_type[] = {"Lv8Kekkai"};
-/* 80C885F0-80C885FC 0000EC 000C+00 2/2 0/0 0/0 .data __vt__17daKekaiTrap_HIO_c */
-SECTION_DATA extern void* __vt__17daKekaiTrap_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__17daKekaiTrap_HIO_cFv,
-};
+/* 80C88528-80C8852C 000024 0004+00 1/1 0/0 0/0 .data l_bmdIdx */
+static int l_bmdIdx[] = {4};
-/* 80C885FC-80C88608 0000F8 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */
-SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14mDoHIO_entry_cFv,
-};
+/* 80C8852C-80C88530 000028 0004+00 1/1 0/0 0/0 .data l_dzbIdx */
+static int l_dzbIdx[] = {7};
/* 80C87CAC-80C87CF8 0000EC 004C+00 1/1 0/0 0/0 .text __ct__17daKekaiTrap_HIO_cFv */
daKekaiTrap_HIO_c::daKekaiTrap_HIO_c() {
- // NONMATCHING
-}
-
-/* 80C87CF8-80C87D40 000138 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
-// mDoHIO_entry_c::~mDoHIO_entry_c() {
-extern "C" void __dt__14mDoHIO_entry_cFv() {
- // NONMATCHING
+ appear_init_speed = 0.0f;
+ appear_max_speed = 0.7f;
+ appear_wait = 10;
+ disappear_init_speed = 0.0f;
+ disappear_max_speed = 0.7f;
+ disappear_wait = 30;
}
/* 80C87D40-80C87DC8 000180 0088+00 2/2 0/0 0/0 .text setBaseMtx__13daKekaiTrap_cFv */
void daKekaiTrap_c::setBaseMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
+ mpModel->setBaseScale(scale);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80C87DC8-80C87E48 000208 0080+00 1/0 0/0 0/0 .text CreateHeap__13daKekaiTrap_cFv */
-void daKekaiTrap_c::CreateHeap() {
- // NONMATCHING
+int daKekaiTrap_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_type[mType], l_bmdIdx[mType]);
+ JUT_ASSERT(170, modelData != NULL);
+
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
+
+ return 1;
}
/* 80C87E48-80C87FB0 000288 0168+00 1/1 0/0 0/0 .text create__13daKekaiTrap_cFv */
-void daKekaiTrap_c::create() {
- // NONMATCHING
+int daKekaiTrap_c::create() {
+ fopAcM_ct(this, daKekaiTrap_c);
+
+ mType = getType();
+
+ int phase_state = dComIfG_resLoad(&mPhase, l_type[mType]);
+ if (phase_state == cPhs_COMPLEATE_e) {
+ if (MoveBGCreate(l_type[mType], l_dzbIdx[mType], dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL) == cPhs_ERROR_e) {
+ return cPhs_ERROR_e;
+ }
+
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mpModel->getModelData());
+
+ mSwbit = getSwBit();
+ mIsSwitch = fopAcM_isSwitch(this, mSwbit);
+ if (!mIsSwitch) {
+ if (mpBgW != NULL) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+ scale.y = 0.0f;
+ }
+
+ init_modeWait();
+ setBaseMtx();
+
+ #if DEBUG
+ l_HIO.entryHIO("結界トラップ(Lv8)");
+ #endif
+ }
+
+ return phase_state;
}
/* 80C87FB0-80C88000 0003F0 0050+00 1/0 0/0 0/0 .text Execute__13daKekaiTrap_cFPPA3_A4_f
*/
-void daKekaiTrap_c::Execute(Mtx** param_0) {
- // NONMATCHING
+int daKekaiTrap_c::Execute(Mtx** param_0) {
+ moveMain();
+ *param_0 = &mpModel->getBaseTRMtx();
+ setBaseMtx();
+ return 1;
}
-/* ############################################################################################## */
-/* 80C88610-80C8861C 000008 000C+00 1/1 0/0 0/0 .bss @3645 */
-static u8 lit_3645[12];
-
-/* 80C8861C-80C88638 000014 001C+00 5/5 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[28];
-
-/* 80C88638-80C8863C 000030 0004+00 1/1 0/0 0/0 .bss None */
-static u8 data_80C88638[4];
-
/* 80C88000-80C88104 000440 0104+00 1/1 0/0 0/0 .text moveMain__13daKekaiTrap_cFv */
void daKekaiTrap_c::moveMain() {
- // NONMATCHING
+ static void (daKekaiTrap_c::*mode_proc[])() = {
+ &daKekaiTrap_c::modeWait,
+ &daKekaiTrap_c::modeMoveUp,
+ &daKekaiTrap_c::modeMoveDown,
+ };
+
+ u8 prev_switch = mIsSwitch;
+ mIsSwitch = fopAcM_isSwitch(this, mSwbit);
+ if (mIsSwitch != prev_switch) {
+ if (mIsSwitch) {
+ init_modeMoveUp();
+ } else {
+ init_modeMoveDown();
+ }
+ }
+
+ (this->*mode_proc[mMode])();
}
/* 80C88104-80C88110 000544 000C+00 3/3 0/0 0/0 .text init_modeWait__13daKekaiTrap_cFv */
void daKekaiTrap_c::init_modeWait() {
- // NONMATCHING
+ mMode = 0;
}
/* 80C88110-80C88114 000550 0004+00 1/0 0/0 0/0 .text modeWait__13daKekaiTrap_cFv */
-void daKekaiTrap_c::modeWait() {
- /* empty function */
-}
+void daKekaiTrap_c::modeWait() {}
/* 80C88114-80C88138 000554 0024+00 1/1 0/0 0/0 .text init_modeMoveUp__13daKekaiTrap_cFv
*/
void daKekaiTrap_c::init_modeMoveUp() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, l_HIO.appear_init_speed);
+ mTimer = l_HIO.appear_wait;
+ mMode = 1;
}
-/* ############################################################################################## */
-/* 80C884EC-80C884F0 000008 0004+00 0/2 0/0 0/0 .rodata @3802 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3802 = 30.0f;
-COMPILER_STRIP_GATE(0x80C884EC, &lit_3802);
-#pragma pop
-
-/* 80C884F0-80C884F4 00000C 0004+00 0/2 0/0 0/0 .rodata @3803 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3803 = 1.0f;
-COMPILER_STRIP_GATE(0x80C884F0, &lit_3803);
-#pragma pop
-
-/* 80C884F4-80C884F8 000010 0004+00 0/2 0/0 0/0 .rodata @3804 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3804 = 3.0f / 100.0f;
-COMPILER_STRIP_GATE(0x80C884F4, &lit_3804);
-#pragma pop
-
/* 80C88138-80C881F0 000578 00B8+00 1/0 0/0 0/0 .text modeMoveUp__13daKekaiTrap_cFv */
void daKekaiTrap_c::modeMoveUp() {
- // NONMATCHING
+ if (mTimer != 0) {
+ mTimer--;
+ return;
+ }
+
+ cLib_chaseF(&speedF, l_HIO.appear_max_speed, l_HIO.appear_max_speed / 30.0f);
+
+ if (cLib_addCalc(&scale.y, 1.0f, 1.0f, fopAcM_GetSpeedF(this), 0.03f) == 0.0f) {
+ if (mpBgW != NULL) {
+ dComIfG_Bgsp().Regist(mpBgW, this);
+ }
+ init_modeWait();
+ }
}
/* 80C881F0-80C88214 000630 0024+00 1/1 0/0 0/0 .text init_modeMoveDown__13daKekaiTrap_cFv */
void daKekaiTrap_c::init_modeMoveDown() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, l_HIO.disappear_init_speed);
+ mTimer = l_HIO.disappear_wait;
+ mMode = 2;
}
/* 80C88214-80C882C8 000654 00B4+00 1/0 0/0 0/0 .text modeMoveDown__13daKekaiTrap_cFv */
void daKekaiTrap_c::modeMoveDown() {
- // NONMATCHING
+ if (mTimer != 0) {
+ mTimer--;
+ return;
+ }
+
+ cLib_chaseF(&speedF, l_HIO.disappear_max_speed, l_HIO.disappear_max_speed / 30.0f);
+
+ if (cLib_addCalc(&scale.y, 0.0f, 1.0f, fopAcM_GetSpeedF(this), 0.03f) == 0.0f) {
+ if (mpBgW != NULL) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+ init_modeWait();
+ }
}
/* 80C882C8-80C8836C 000708 00A4+00 1/0 0/0 0/0 .text Draw__13daKekaiTrap_cFv */
-void daKekaiTrap_c::Draw() {
- // NONMATCHING
+int daKekaiTrap_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;
}
/* 80C8836C-80C883AC 0007AC 0040+00 1/0 0/0 0/0 .text Delete__13daKekaiTrap_cFv */
-void daKekaiTrap_c::Delete() {
- // NONMATCHING
+int daKekaiTrap_c::Delete() {
+ dComIfG_resDelete(&mPhase, l_type[mType]);
+ #if DEBUG
+ l_HIO.removeHIO();
+ #endif
+ return 1;
}
/* 80C883AC-80C883D8 0007EC 002C+00 1/0 0/0 0/0 .text daKekaiTrap_Draw__FP13daKekaiTrap_c
*/
-static void daKekaiTrap_Draw(daKekaiTrap_c* param_0) {
- // NONMATCHING
+static int daKekaiTrap_Draw(daKekaiTrap_c* i_this) {
+ return i_this->MoveBGDraw();
}
/* 80C883D8-80C883F8 000818 0020+00 1/0 0/0 0/0 .text daKekaiTrap_Execute__FP13daKekaiTrap_c */
-static void daKekaiTrap_Execute(daKekaiTrap_c* param_0) {
- // NONMATCHING
+static int daKekaiTrap_Execute(daKekaiTrap_c* i_this) {
+ return i_this->MoveBGExecute();
}
/* 80C883F8-80C88418 000838 0020+00 1/0 0/0 0/0 .text daKekaiTrap_Delete__FP13daKekaiTrap_c */
-static void daKekaiTrap_Delete(daKekaiTrap_c* param_0) {
- // NONMATCHING
+static int daKekaiTrap_Delete(daKekaiTrap_c* i_this) {
+ return i_this->MoveBGDelete();
}
/* 80C88418-80C88438 000858 0020+00 1/0 0/0 0/0 .text daKekaiTrap_Create__FP10fopAc_ac_c
*/
-static void daKekaiTrap_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daKekaiTrap_Create(fopAc_ac_c* i_this) {
+ return ((daKekaiTrap_c*)i_this)->create();
}
-/* 80C88438-80C88494 000878 005C+00 2/1 0/0 0/0 .text __dt__17daKekaiTrap_HIO_cFv */
-daKekaiTrap_HIO_c::~daKekaiTrap_HIO_c() {
- // NONMATCHING
-}
-
-/* 80C88494-80C884D0 0008D4 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv8KekkaiTrap_cpp
- */
-void __sinit_d_a_obj_lv8KekkaiTrap_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80C88494, __sinit_d_a_obj_lv8KekkaiTrap_cpp);
-#pragma pop
+/* 80C88578-80C88598 -00001 0020+00 1/0 0/0 0/0 .data l_daKekaiTrap_Method */
+static actor_method_class l_daKekaiTrap_Method = {
+ (process_method_func)daKekaiTrap_Create,
+ (process_method_func)daKekaiTrap_Delete,
+ (process_method_func)daKekaiTrap_Execute,
+ NULL,
+ (process_method_func)daKekaiTrap_Draw,
+};
-/* 80C884F8-80C884F8 000014 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80C88598-80C885C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv8KekkaiTrap */
+extern actor_process_profile_definition g_profile_Obj_Lv8KekkaiTrap = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Lv8KekkaiTrap, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daKekaiTrap_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 644, // mPriority
+ &l_daKekaiTrap_Method, // sub_method
+ 0x00044000, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_nougu.cpp b/src/d/actor/d_a_obj_nougu.cpp
index fd7211a03c..aeb729f17f 100644
--- a/src/d/actor/d_a_obj_nougu.cpp
+++ b/src/d/actor/d_a_obj_nougu.cpp
@@ -6,476 +6,247 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_nougu.h"
-#include "dol2asm.h"
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __dt__13daObj_Nougu_cFv();
-extern "C" void __dt__8dCcD_SphFv();
-extern "C" void create__13daObj_Nougu_cFv();
-extern "C" void __ct__8dCcD_SphFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void CreateHeap__13daObj_Nougu_cFv();
-extern "C" void Delete__13daObj_Nougu_cFv();
-extern "C" void Execute__13daObj_Nougu_cFv();
-extern "C" void Draw__13daObj_Nougu_cFv();
-extern "C" void createHeapCallBack__13daObj_Nougu_cFP10fopAc_ac_c();
-extern "C" void getResName__13daObj_Nougu_cFv();
-extern "C" void isDelete__13daObj_Nougu_cFv();
-extern "C" void setEnvTevColor__13daObj_Nougu_cFv();
-extern "C" void setRoomNo__13daObj_Nougu_cFv();
-extern "C" void setMtx__13daObj_Nougu_cFv();
-extern "C" static void daObj_Nougu_Create__FPv();
-extern "C" static void daObj_Nougu_Delete__FPv();
-extern "C" static void daObj_Nougu_Execute__FPv();
-extern "C" static void daObj_Nougu_Draw__FPv();
-extern "C" static bool daObj_Nougu_IsDelete__FPv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __sinit_d_a_obj_nougu_cpp();
-extern "C" void __dt__19daObj_Nougu_Param_cFv();
-extern "C" static void func_80CA4994();
-extern "C" static void func_80CA499C();
-extern "C" u8 const m__19daObj_Nougu_Param_c[16];
-extern "C" extern char const* const d_a_obj_nougu__stringBase0;
-extern "C" u8 mCcDSph__13daObj_Nougu_c[64];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void __dt__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-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
-dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __ct__11cBgS_GndChkFv();
-extern "C" void __dt__11cBgS_GndChkFv();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void __dl__FPv();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void _savegpr_24();
-extern "C" void _restgpr_24();
-extern "C" u8 const mCcDObjData__8daNpcT_c[48];
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80CA49F8-80CA49F8 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CA49F8 = "Jagar4";
-#pragma pop
+#include "d/actor/d_a_npc.h"
+#include "SSystem/SComponent/c_counter.h"
/* 80CA4A00-80CA4A40 000000 0040+00 2/2 0/0 0/0 .data mCcDSph__13daObj_Nougu_c */
-SECTION_DATA u8 daObj_Nougu_c::mCcDSph[64] = {
- 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, 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,
+dCcD_SrcSph daObj_Nougu_c::mCcDSph = {
+ daNpcT_c::mCcDObjData,
+ {
+ {{0.0f, 0.0f, 0.0f}, 0.0f}
+ },
};
/* 80CA4A40-80CA4A44 -00001 0004+00 1/1 0/0 0/0 .data l_resName */
-SECTION_DATA static void* l_resName = (void*)&d_a_obj_nougu__stringBase0;
+static char* l_resName = "Jagar4";
-/* 80CA4A44-80CA4A64 -00001 0020+00 1/0 0/0 0/0 .data daObj_Nougu_MethodTable */
-static actor_method_class daObj_Nougu_MethodTable = {
- (process_method_func)daObj_Nougu_Create__FPv,
- (process_method_func)daObj_Nougu_Delete__FPv,
- (process_method_func)daObj_Nougu_Execute__FPv,
- (process_method_func)daObj_Nougu_IsDelete__FPv,
- (process_method_func)daObj_Nougu_Draw__FPv,
-};
+/* 80CA3C0C-80CA3D58 0000EC 014C+00 1/0 0/0 0/0 .text __dt__13daObj_Nougu_cFv */
+daObj_Nougu_c::~daObj_Nougu_c() {
+ OS_REPORT("|%06d:%x|daObj_Nougu_c -> デストラクト\n", g_Counter.mCounter0, this);
+ dComIfG_resDelete(&mPhase, getResName());
+}
-/* 80CA4A64-80CA4A94 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_NOUGU */
-extern actor_process_profile_definition g_profile_OBJ_NOUGU = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_OBJ_NOUGU, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObj_Nougu_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 84, // mPriority
- &daObj_Nougu_MethodTable, // sub_method
- 0x00044100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
+/* 80CA49B8-80CA49C8 000000 0010+00 3/3 0/0 0/0 .rodata m__19daObj_Nougu_Param_c */
+const daObj_Nougu_HIOParam daObj_Nougu_Param_c::m = {
+ 0.0f,
+ -3.0f,
+ 1.0f,
+ 200.0f
};
-/* 80CA4A94-80CA4AA0 000094 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
+/* 80CA3E24-80CA40D8 000304 02B4+00 1/1 0/0 0/0 .text create__13daObj_Nougu_cFv */
+int daObj_Nougu_c::create() {
+ fopAcM_ct(this, daObj_Nougu_c);
-/* 80CA4AA0-80CA4AAC 0000A0 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
+ mType = getType();
-/* 80CA4AAC-80CA4AD0 0000AC 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CA499C,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CA4994,
-};
+ int phase_state = dComIfG_resLoad(&mPhase, getResName());
+ if (phase_state == cPhs_COMPLEATE_e) {
+ OS_REPORT("\t(%s:%d) <%08x> -> roomNo.%d", fopAcM_getProcNameString(this), getType(), fopAcM_GetParam(this), fopAcM_GetRoomNo(this));
-/* 80CA4AD0-80CA4ADC 0000D0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
+ if (isDelete()) {
+ OS_REPORT("===>isDelete:TRUE\n");
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("\n");
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x800)) {
+ return cPhs_ERROR_e;
+ }
+
+ mpModel->getModelData();
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -75.0f, -50.0f, -100.0f, 75.0f, 50.0f, 100.0f);
-/* 80CA4ADC-80CA4AE8 0000DC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
-/* 80CA4AE8-80CA4AF4 0000E8 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
+ mCcStts.Init(0xFF, 0, this);
-/* 80CA4AF4-80CA4B00 0000F4 000C+00 2/2 0/0 0/0 .data __vt__13daObj_Nougu_c */
-SECTION_DATA extern void* __vt__13daObj_Nougu_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__13daObj_Nougu_cFv,
-};
+ for (int i = 0; i < 5; i++) {
+ mCcSph[i].Set(mCcDSph);
+ mCcSph[i].SetStts(&mCcStts);
+ }
-/* 80CA3C0C-80CA3D58 0000EC 014C+00 1/0 0/0 0/0 .text __dt__13daObj_Nougu_cFv */
-daObj_Nougu_c::~daObj_Nougu_c() {
- // NONMATCHING
-}
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
-/* 80CA3D58-80CA3E24 000238 00CC+00 2/2 0/0 0/0 .text __dt__8dCcD_SphFv */
-// dCcD_Sph::~dCcD_Sph() {
-extern "C" void __dt__8dCcD_SphFv() {
- // NONMATCHING
-}
+ mGroundH = mAcch.GetGroundH();
+ if (-G_CM3D_F_INF != mGroundH) {
+ setEnvTevColor();
+ setRoomNo();
+ }
-/* ############################################################################################## */
-/* 80CA49B8-80CA49C8 000000 0010+00 3/3 0/0 0/0 .rodata m__19daObj_Nougu_Param_c */
-SECTION_RODATA u8 const daObj_Nougu_Param_c::m[16] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CA49B8, &daObj_Nougu_Param_c::m);
-
-/* 80CA49C8-80CA49CC 000010 0004+00 0/1 0/0 0/0 .rodata @3916 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3916 = -75.0f;
-COMPILER_STRIP_GATE(0x80CA49C8, &lit_3916);
-#pragma pop
-
-/* 80CA49CC-80CA49D0 000014 0004+00 0/1 0/0 0/0 .rodata @3917 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3917 = -50.0f;
-COMPILER_STRIP_GATE(0x80CA49CC, &lit_3917);
-#pragma pop
-
-/* 80CA49D0-80CA49D4 000018 0004+00 0/1 0/0 0/0 .rodata @3918 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3918 = -100.0f;
-COMPILER_STRIP_GATE(0x80CA49D0, &lit_3918);
-#pragma pop
-
-/* 80CA49D4-80CA49D8 00001C 0004+00 0/1 0/0 0/0 .rodata @3919 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3919 = 75.0f;
-COMPILER_STRIP_GATE(0x80CA49D4, &lit_3919);
-#pragma pop
-
-/* 80CA49D8-80CA49DC 000020 0004+00 0/1 0/0 0/0 .rodata @3920 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3920 = 50.0f;
-COMPILER_STRIP_GATE(0x80CA49D8, &lit_3920);
-#pragma pop
-
-/* 80CA49DC-80CA49E0 000024 0004+00 0/1 0/0 0/0 .rodata @3921 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3921 = 100.0f;
-COMPILER_STRIP_GATE(0x80CA49DC, &lit_3921);
-#pragma pop
-
-/* 80CA49E0-80CA49E4 000028 0004+00 0/3 0/0 0/0 .rodata @3922 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3922 = -G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x80CA49E0, &lit_3922);
-#pragma pop
+ Execute();
+ }
-/* 80CA3E24-80CA40D8 000304 02B4+00 1/1 0/0 0/0 .text create__13daObj_Nougu_cFv */
-void daObj_Nougu_c::create() {
- // NONMATCHING
+ return phase_state;
}
-/* 80CA40D8-80CA415C 0005B8 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */
-// dCcD_Sph::dCcD_Sph() {
-extern "C" void __ct__8dCcD_SphFv() {
- // NONMATCHING
-}
+/* 80CA4328-80CA43A0 000808 0078+00 1/1 0/0 0/0 .text CreateHeap__13daObj_Nougu_cFv */
+int daObj_Nougu_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(getResName(), 3);
+ if (mdlData_p == NULL) {
+ return 0;
+ }
-/* 80CA415C-80CA41A4 00063C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
+ mpModel = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
-/* 80CA41A4-80CA41EC 000684 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
+ return 1;
}
-/* 80CA41EC-80CA425C 0006CC 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
+/* 80CA43A0-80CA43D4 000880 0034+00 1/1 0/0 0/0 .text Delete__13daObj_Nougu_cFv */
+int daObj_Nougu_c::Delete() {
+ OS_REPORT("|%06d:%x|daObj_Nougu_c -> Delete\n", g_Counter.mCounter0, this);
+ this->~daObj_Nougu_c();
+ return 1;
}
-/* 80CA425C-80CA42B8 00073C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
+/* 80CA43D4-80CA45F4 0008B4 0220+00 2/2 0/0 0/0 .text Execute__13daObj_Nougu_cFv */
+int daObj_Nougu_c::Execute() {
+ cXyz sp14;
+ cXyz sp8;
-/* 80CA42B8-80CA4328 000798 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
-/* 80CA4328-80CA43A0 000808 0078+00 1/1 0/0 0/0 .text CreateHeap__13daObj_Nougu_cFv */
-void daObj_Nougu_c::CreateHeap() {
- // NONMATCHING
-}
+ if (-G_CM3D_F_INF != mGroundH) {
+ setEnvTevColor();
+ setRoomNo();
+ }
-/* 80CA43A0-80CA43D4 000880 0034+00 1/1 0/0 0/0 .text Delete__13daObj_Nougu_cFv */
-void daObj_Nougu_c::Delete() {
- // NONMATCHING
-}
+ setMtx();
-/* ############################################################################################## */
-/* 80CA49E4-80CA49E8 00002C 0004+00 0/1 0/0 0/0 .rodata @4046 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4046 = 60.0f;
-COMPILER_STRIP_GATE(0x80CA49E4, &lit_4046);
-#pragma pop
-
-/* 80CA49E8-80CA49EC 000030 0004+00 0/1 0/0 0/0 .rodata @4047 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4047[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CA49E8, &lit_4047);
-#pragma pop
+ f32 var_f31 = 60.0f;
+ for (int i = 0; i < 5; i++) {
+ sp14.set(0.0f, 0.0f, var_f31);
+ mDoMtx_stack_c::YrotS(shape_angle.y);
+ mDoMtx_stack_c::multVec(&sp14, &sp14);
+ sp14 += current.pos;
-/* 80CA49EC-80CA49F0 000034 0004+00 0/1 0/0 0/0 .rodata @4048 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4048 = 30.0f;
-COMPILER_STRIP_GATE(0x80CA49EC, &lit_4048);
-#pragma pop
+ mCcSph[i].SetC(sp14);
+ mCcSph[i].SetR(30.0f);
+ dComIfG_Ccsp()->Set(&mCcSph[i]);
-/* 80CA43D4-80CA45F4 0008B4 0220+00 2/2 0/0 0/0 .text Execute__13daObj_Nougu_cFv */
-void daObj_Nougu_c::Execute() {
- // NONMATCHING
-}
+ mCcSph[i].ClrCoHit();
+ var_f31 -= 30.0f;
+ }
-/* ############################################################################################## */
-/* 80CA49F0-80CA49F4 000038 0004+00 0/1 0/0 0/0 .rodata @4060 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4060 = 20.0f;
-COMPILER_STRIP_GATE(0x80CA49F0, &lit_4060);
-#pragma pop
-
-/* 80CA49F4-80CA49F8 00003C 0004+00 0/1 0/0 0/0 .rodata @4061 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4061 = 1.0f;
-COMPILER_STRIP_GATE(0x80CA49F4, &lit_4061);
-#pragma pop
+ attention_info.position = current.pos;
+ attention_info.position.y += daObj_Nougu_Param_c::m.attention_offset;
+ eyePos = attention_info.position;
+ attention_info.flags = 0;
+ return 1;
+}
/* 80CA45F4-80CA46B8 000AD4 00C4+00 1/1 0/0 0/0 .text Draw__13daObj_Nougu_cFv */
-void daObj_Nougu_c::Draw() {
- // NONMATCHING
+int daObj_Nougu_c::Draw() {
+ g_env_light.settingTevStruct(0, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+ mDoExt_modelUpdateDL(mpModel);
+
+ if (-G_CM3D_F_INF != mGroundH) {
+ mShadowId = dComIfGd_setShadow(mShadowId, 1, mpModel, &current.pos, daObj_Nougu_Param_c::m.shadow_size, 20.0f, current.pos.y, mGroundH, mGndChk, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
+ }
+
+ return 1;
}
/* 80CA46B8-80CA46D8 000B98 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__13daObj_Nougu_cFP10fopAc_ac_c */
-void daObj_Nougu_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daObj_Nougu_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ return ((daObj_Nougu_c*)i_this)->CreateHeap();
}
/* 80CA46D8-80CA46E8 000BB8 0010+00 3/3 0/0 0/0 .text getResName__13daObj_Nougu_cFv */
-void daObj_Nougu_c::getResName() {
- // NONMATCHING
+const char* daObj_Nougu_c::getResName() {
+ return l_resName;
}
/* 80CA46E8-80CA4708 000BC8 0020+00 1/1 0/0 0/0 .text isDelete__13daObj_Nougu_cFv */
-void daObj_Nougu_c::isDelete() {
- // NONMATCHING
+int daObj_Nougu_c::isDelete() {
+ switch (mType) {
+ case 0:
+ return 0;
+ }
+
+ return 0;
}
/* 80CA4708-80CA4764 000BE8 005C+00 2/2 0/0 0/0 .text setEnvTevColor__13daObj_Nougu_cFv
*/
void daObj_Nougu_c::setEnvTevColor() {
- // NONMATCHING
+ tevStr.YukaCol = dComIfG_Bgsp().GetPolyColor(mGndChk);
+ tevStr.room_no = dComIfG_Bgsp().GetRoomId(mGndChk);
}
/* 80CA4764-80CA47A4 000C44 0040+00 2/2 0/0 0/0 .text setRoomNo__13daObj_Nougu_cFv */
void daObj_Nougu_c::setRoomNo() {
- // NONMATCHING
+ fopAcM_SetRoomNo(this, dComIfG_Bgsp().GetRoomId(mGndChk));
}
/* 80CA47A4-80CA4808 000C84 0064+00 1/1 0/0 0/0 .text setMtx__13daObj_Nougu_cFv */
void daObj_Nougu_c::setMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::scaleM(scale);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80CA4808-80CA4828 000CE8 0020+00 1/0 0/0 0/0 .text daObj_Nougu_Create__FPv */
-static void daObj_Nougu_Create(void* param_0) {
- // NONMATCHING
+static int daObj_Nougu_Create(void* i_this) {
+ return ((daObj_Nougu_c*)i_this)->create();
}
/* 80CA4828-80CA4848 000D08 0020+00 1/0 0/0 0/0 .text daObj_Nougu_Delete__FPv */
-static void daObj_Nougu_Delete(void* param_0) {
- // NONMATCHING
+static int daObj_Nougu_Delete(void* i_this) {
+ return ((daObj_Nougu_c*)i_this)->Delete();
}
/* 80CA4848-80CA4868 000D28 0020+00 1/0 0/0 0/0 .text daObj_Nougu_Execute__FPv */
-static void daObj_Nougu_Execute(void* param_0) {
- // NONMATCHING
+static int daObj_Nougu_Execute(void* i_this) {
+ return ((daObj_Nougu_c*)i_this)->Execute();
}
/* 80CA4868-80CA4888 000D48 0020+00 1/0 0/0 0/0 .text daObj_Nougu_Draw__FPv */
-static void daObj_Nougu_Draw(void* param_0) {
- // NONMATCHING
+static int daObj_Nougu_Draw(void* i_this) {
+ return ((daObj_Nougu_c*)i_this)->Draw();
}
/* 80CA4888-80CA4890 000D68 0008+00 1/0 0/0 0/0 .text daObj_Nougu_IsDelete__FPv */
-static bool daObj_Nougu_IsDelete(void* param_0) {
- return true;
+static int daObj_Nougu_IsDelete(void* i_this) {
+ return 1;
}
-/* 80CA4890-80CA48D8 000D70 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80CA4B00-80CA4B0C 000100 000C+00 2/2 0/0 0/0 .data __vt__19daObj_Nougu_Param_c */
-SECTION_DATA extern void* __vt__19daObj_Nougu_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__19daObj_Nougu_Param_cFv,
-};
-
-/* 80CA4B18-80CA4B24 000008 000C+00 1/1 0/0 0/0 .bss @3805 */
-static u8 lit_3805[12];
-
/* 80CA4B24-80CA4B28 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
-/* 80CA48D8-80CA494C 000DB8 0074+00 0/0 1/0 0/0 .text __sinit_d_a_obj_nougu_cpp */
-void __sinit_d_a_obj_nougu_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80CA48D8, __sinit_d_a_obj_nougu_cpp);
-#pragma pop
-
-/* 80CA494C-80CA4994 000E2C 0048+00 2/1 0/0 0/0 .text __dt__19daObj_Nougu_Param_cFv */
-daObj_Nougu_Param_c::~daObj_Nougu_Param_c() {
- // NONMATCHING
-}
-
-/* 80CA4994-80CA499C 000E74 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80CA4994() {
- // NONMATCHING
-}
+static daObj_Nougu_Param_c l_HIO;
-/* 80CA499C-80CA49A4 000E7C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80CA499C() {
- // NONMATCHING
-}
+/* 80CA4A44-80CA4A64 -00001 0020+00 1/0 0/0 0/0 .data daObj_Nougu_MethodTable */
+static actor_method_class daObj_Nougu_MethodTable = {
+ (process_method_func)daObj_Nougu_Create,
+ (process_method_func)daObj_Nougu_Delete,
+ (process_method_func)daObj_Nougu_Execute,
+ (process_method_func)daObj_Nougu_IsDelete,
+ (process_method_func)daObj_Nougu_Draw,
+};
-/* 80CA49F8-80CA49F8 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80CA4A64-80CA4A94 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_NOUGU */
+extern actor_process_profile_definition g_profile_OBJ_NOUGU = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_OBJ_NOUGU, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObj_Nougu_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 84, // mPriority
+ &daObj_Nougu_MethodTable, // sub_method
+ 0x00044100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_swspinner.cpp b/src/d/actor/d_a_obj_swspinner.cpp
index b38a98b668..73f63b135a 100644
--- a/src/d/actor/d_a_obj_swspinner.cpp
+++ b/src/d/actor/d_a_obj_swspinner.cpp
@@ -56,7 +56,7 @@ void daObjSwSpinner_c::setBaseMtx() {
/* 80D00284-80D0035C 000384 00D8+00 1/0 0/0 0/0 .text Create__16daObjSwSpinner_cFv */
int daObjSwSpinner_c::Create() {
- if (fopAcM_isSwitch(this, getSwBit2())) {
+ if (fopAcM_isSwitch(this, getSwbit2())) {
mPartBHeight = 50.0f;
mCanUse = false;
} else {
@@ -141,7 +141,7 @@ int daObjSwSpinner_c::Execute(Mtx** param_0) {
mCount++;
}
- if (fopAcM_isSwitch(this, getSwBit2())) {
+ if (fopAcM_isSwitch(this, getSwbit2())) {
if (cLib_addCalc(&mPartBHeight, 50.0f, 0.1f, 10.0f, 2.0f) == 0.0f && mCanUse) {
if (mSpinnerIn) {
spinner->offSpinnerTag();
@@ -158,13 +158,13 @@ int daObjSwSpinner_c::Execute(Mtx** param_0) {
} else if (mSpinnerIn) {
if (mCount > 200) {
if (mRotSpeedY > 3000) {
- fopAcM_onSwitch(this, getSwBit());
+ fopAcM_onSwitch(this, getSwbit());
} else {
- fopAcM_offSwitch(this, getSwBit());
+ fopAcM_offSwitch(this, getSwbit());
}
}
} else {
- dComIfGs_offSwitch(getSwBit() & 0xFF, fopAcM_GetHomeRoomNo(this));
+ dComIfGs_offSwitch(getSwbit() & 0xFF, fopAcM_GetHomeRoomNo(this));
}
if (mSpinnerIn && !mPrevSpinnerIn) {
@@ -182,7 +182,7 @@ int daObjSwSpinner_c::Execute(Mtx** param_0) {
attention_info.position = current.pos;
attention_info.position.y -= 100.0f;
- mPrevIsSwbit2 = fopAcM_isSwitch(this, getSwBit2());
+ mPrevIsSwbit2 = fopAcM_isSwitch(this, getSwbit2());
mPrevSpinnerIn = mSpinnerIn;
return 1;
}