summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-11-05 17:19:01 -0800
committerGitHub <noreply@github.com>2025-11-06 03:19:01 +0200
commit226325284dc69f85a75104b084b4481781fe33f2 (patch)
tree6c3c1e55d97698735936411a51d41adab9f6eef6 /src
parent957a743742f5e9a93ec30e641bb7daf49633c767 (diff)
lv6togetrap, swpush2, tafence done (#2771)
* lv6togetrap, swpush2, tafence done * fix jp/pal * Use dEvtCnd_CANDEMO_e --------- Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_obj_ladder.cpp4
-rw-r--r--src/d/actor/d_a_obj_lv6TogeTrap.cpp1456
-rw-r--r--src/d/actor/d_a_obj_swpush.cpp4
-rw-r--r--src/d/actor/d_a_obj_swpush2.cpp1185
-rw-r--r--src/d/actor/d_a_obj_taFence.cpp863
5 files changed, 1623 insertions, 1889 deletions
diff --git a/src/d/actor/d_a_obj_ladder.cpp b/src/d/actor/d_a_obj_ladder.cpp
index ae0526a4c2..c505de2326 100644
--- a/src/d/actor/d_a_obj_ladder.cpp
+++ b/src/d/actor/d_a_obj_ladder.cpp
@@ -254,10 +254,6 @@ void daObjLadder::Act_c::mode_demoreq_init() {
mInDemo = false;
}
-static inline bool dComIfGp_evmng_existence(s16 eventIdx) {
- return g_dComIfG_gameInfo.play.getEvtManager().getEventData(eventIdx) != NULL;
-}
-
/* 8058D628-8058D6E8 000548 00C0+00 1/0 0/0 0/0 .text mode_demoreq__Q211daObjLadder5Act_cFv */
void daObjLadder::Act_c::mode_demoreq() {
bool isDemo = false;
diff --git a/src/d/actor/d_a_obj_lv6TogeTrap.cpp b/src/d/actor/d_a_obj_lv6TogeTrap.cpp
index ba8c61acda..89ff9b1e3f 100644
--- a/src/d/actor/d_a_obj_lv6TogeTrap.cpp
+++ b/src/d/actor/d_a_obj_lv6TogeTrap.cpp
@@ -6,1013 +6,855 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_lv6TogeTrap.h"
-#include "dol2asm.h"
-
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__19daLv6TogeTrap_HIO_cFv();
-extern "C" void __dt__14mDoHIO_entry_cFv();
-extern "C" void setBaseMtx__15daLv6TogeTrap_cFv();
-extern "C" void CreateHeap__15daLv6TogeTrap_cFv();
-extern "C" void create__15daLv6TogeTrap_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__8cM3dGLinFv();
-extern "C" void searchSekizoAct__15daLv6TogeTrap_cFPvPv();
-extern "C" void Execute__15daLv6TogeTrap_cFPPA3_A4_f();
-extern "C" void moveLift__15daLv6TogeTrap_cFv();
-extern "C" void executeType1__15daLv6TogeTrap_cFv();
-extern "C" void init_modeBound__15daLv6TogeTrap_cFv();
-extern "C" void modeBound__15daLv6TogeTrap_cFv();
-extern "C" void init_modeBoundWait__15daLv6TogeTrap_cFv();
-extern "C" void modeBoundWait__15daLv6TogeTrap_cFv();
-extern "C" void init_modeAcc__15daLv6TogeTrap_cFv();
-extern "C" void modeAcc__15daLv6TogeTrap_cFv();
-extern "C" void init_modeMove__15daLv6TogeTrap_cFv();
-extern "C" void modeMove__15daLv6TogeTrap_cFv();
-extern "C" void init_modeBrk__15daLv6TogeTrap_cFv();
-extern "C" void modeBrk__15daLv6TogeTrap_cFv();
-extern "C" void init_modeMove2__15daLv6TogeTrap_cFv();
-extern "C" void modeMove2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeWaitInit__15daLv6TogeTrap_cFv();
-extern "C" void modeWaitInit__15daLv6TogeTrap_cFv();
-extern "C" void init_modeWait__15daLv6TogeTrap_cFv();
-extern "C" void modeWait__15daLv6TogeTrap_cFv();
-extern "C" void executeType2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeWaitType2__15daLv6TogeTrap_cFv();
-extern "C" void modeWaitType2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeMoveInitType2__15daLv6TogeTrap_cFv();
-extern "C" void modeMoveInitType2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeAccType2__15daLv6TogeTrap_cFv();
-extern "C" void modeAccType2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeWaitAttackType2__15daLv6TogeTrap_cFv();
-extern "C" void modeWaitAttackType2__15daLv6TogeTrap_cFv();
-extern "C" void init_modeRotate__15daLv6TogeTrap_cFv();
-extern "C" void modeRotate__15daLv6TogeTrap_cFv();
-extern "C" void init_modeBreak__15daLv6TogeTrap_cFv();
-extern "C" void modeBreak__15daLv6TogeTrap_cFv();
-extern "C" void setNextPoint__15daLv6TogeTrap_cFv();
-extern "C" void Draw__15daLv6TogeTrap_cFv();
-extern "C" void Delete__15daLv6TogeTrap_cFv();
-extern "C" static void daLv6TogeTrap_Draw__FP15daLv6TogeTrap_c();
-extern "C" static void daLv6TogeTrap_Execute__FP15daLv6TogeTrap_c();
-extern "C" static void daLv6TogeTrap_Delete__FP15daLv6TogeTrap_c();
-extern "C" static void daLv6TogeTrap_Create__FP10fopAc_ac_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__19daLv6TogeTrap_HIO_cFv();
-extern "C" void __sinit_d_a_obj_lv6TogeTrap_cpp();
-extern "C" u8 const mCcDObjInfo__15daLv6TogeTrap_c[48];
-extern "C" u8 const mCcDObjInfo2__15daLv6TogeTrap_c[48];
-extern "C" u8 const mSpeed__15daLv6TogeTrap_c[64];
-extern "C" extern char const* const d_a_obj_lv6TogeTrap__stringBase0;
-extern "C" u8 mCcDSph__15daLv6TogeTrap_c[64];
-extern "C" u8 mCcDCyl__15daLv6TogeTrap_c[68];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotS__FPA4_fsss();
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void transM__14mDoMtx_stack_cFfff();
-extern "C" void scaleM__14mDoMtx_stack_cFfff();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void fopAc_IsActor__FPv();
-extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-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 dComIfGp_getReverb__Fi();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void dPath_GetRoomPath__Fii();
-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 GetAc__22dCcD_GAtTgCoCommonBaseFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Move__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObjSe__12dCcD_GObjInfFv();
-extern "C" void getHitSeID__12dCcD_GObjInfFUci();
-extern "C" void ChkCoHit__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-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 GetAc__8cCcD_ObjFv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __pl__4cXyzCFRC3Vec();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" bool __eq__4cXyzCFRC3Vec();
-extern "C" void cM3d_InDivPos2__FPC3VecPC3VecfP3Vec();
-extern "C" void cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalcPos__FP4cXyzRC4cXyzfff();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void deleteObject__14Z2SoundObjBaseFv();
-extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
-extern "C" void __ct__16Z2SoundObjSimpleFv();
-extern "C" void __dl__FPv();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-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" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80C7C618-80C7C61C 000000 0004+00 11/11 0/0 0/0 .rodata @3631 */
-SECTION_RODATA static f32 const lit_3631 = 300.0f;
-COMPILER_STRIP_GATE(0x80C7C618, &lit_3631);
-
-/* 80C7C61C-80C7C620 000004 0004+00 7/17 0/0 0/0 .rodata @3632 */
-SECTION_RODATA static f32 const lit_3632 = 1.0f;
-COMPILER_STRIP_GATE(0x80C7C61C, &lit_3632);
-
-/* 80C7C620-80C7C624 000008 0004+00 0/1 0/0 0/0 .rodata @3633 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3633 = 0.25f;
-COMPILER_STRIP_GATE(0x80C7C620, &lit_3633);
-#pragma pop
-
-/* 80C7C624-80C7C628 00000C 0004+00 0/1 0/0 0/0 .rodata @3634 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3634 = 15.0f;
-COMPILER_STRIP_GATE(0x80C7C624, &lit_3634);
-#pragma pop
-
-/* 80C7C628-80C7C62C 000010 0004+00 0/2 0/0 0/0 .rodata @3635 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3635 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80C7C628, &lit_3635);
-#pragma pop
-
-/* 80C7C62C-80C7C630 000014 0004+00 0/2 0/0 0/0 .rodata @3636 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3636 = 10.0f;
-COMPILER_STRIP_GATE(0x80C7C62C, &lit_3636);
-#pragma pop
-
-/* 80C7C75C-80C7C75C 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80C7C75C = "L6TogeTp";
-SECTION_DEAD static char const* const stringBase_80C7C765 = "L4TogeTp";
-SECTION_DEAD static char const* const stringBase_80C7C76E = "L9Toge";
-#pragma pop
-
-/* 80C7C798-80C7C7D8 000020 0040+00 1/2 0/0 0/0 .data mCcDSph__15daLv6TogeTrap_c */
-SECTION_DATA u8 daLv6TogeTrap_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,
-};
-
-/* 80C7C7D8-80C7C81C 000060 0044+00 1/2 0/0 0/0 .data mCcDCyl__15daLv6TogeTrap_c */
-SECTION_DATA u8 daLv6TogeTrap_c::mCcDCyl[68] = {
- 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, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80C7C81C-80C7C828 -00001 000C+00 2/3 0/0 0/0 .data l_resNameIdx */
-SECTION_DATA static void* l_resNameIdx[3] = {
- (void*)&d_a_obj_lv6TogeTrap__stringBase0,
- (void*)(((char*)&d_a_obj_lv6TogeTrap__stringBase0) + 0x9),
- (void*)(((char*)&d_a_obj_lv6TogeTrap__stringBase0) + 0x12),
-};
-
-/* 80C7C828-80C7C834 -00001 000C+00 0/1 0/0 0/0 .data @4038 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4038[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeAcc__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C834-80C7C840 -00001 000C+00 0/1 0/0 0/0 .data @4039 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4039[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMove__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C840-80C7C84C -00001 000C+00 0/1 0/0 0/0 .data @4040 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4040[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMove2__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C84C-80C7C858 -00001 000C+00 0/1 0/0 0/0 .data @4041 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4041[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeBrk__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C858-80C7C864 -00001 000C+00 0/1 0/0 0/0 .data @4042 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4042[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWait__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C864-80C7C870 -00001 000C+00 0/1 0/0 0/0 .data @4043 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4043[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWaitInit__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C870-80C7C87C -00001 000C+00 0/1 0/0 0/0 .data @4044 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4044[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeBound__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C87C-80C7C888 -00001 000C+00 0/1 0/0 0/0 .data @4045 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4045[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeBoundWait__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C888-80C7C894 -00001 000C+00 0/1 0/0 0/0 .data @4046 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4046[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWaitType2__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C894-80C7C8A0 -00001 000C+00 0/1 0/0 0/0 .data @4047 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4047[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMoveInitType2__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C8A0-80C7C8AC -00001 000C+00 0/1 0/0 0/0 .data @4048 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4048[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeAccType2__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C8AC-80C7C8B8 -00001 000C+00 0/1 0/0 0/0 .data @4049 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4049[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWaitAttackType2__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C8B8-80C7C8C4 -00001 000C+00 0/1 0/0 0/0 .data @4050 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4050[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeBreak__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C8C4-80C7C8D0 -00001 000C+00 0/1 0/0 0/0 .data @4051 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4051[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeRotate__15daLv6TogeTrap_cFv,
-};
-#pragma pop
-
-/* 80C7C8D0-80C7C978 000158 00A8+00 0/1 0/0 0/0 .data mode_proc$4037 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 mode_proc[168] = {
- 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,
- 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,
- 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,
-};
-#pragma pop
-
-/* 80C7C978-80C7C998 -00001 0020+00 1/0 0/0 0/0 .data l_daLv6TogeTrap_Method */
-static actor_method_class l_daLv6TogeTrap_Method = {
- (process_method_func)daLv6TogeTrap_Create__FP10fopAc_ac_c,
- (process_method_func)daLv6TogeTrap_Delete__FP15daLv6TogeTrap_c,
- (process_method_func)daLv6TogeTrap_Execute__FP15daLv6TogeTrap_c,
- 0,
- (process_method_func)daLv6TogeTrap_Draw__FP15daLv6TogeTrap_c,
-};
-
-/* 80C7C998-80C7C9C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv6TogeTrap */
-extern actor_process_profile_definition g_profile_Obj_Lv6TogeTrap = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Lv6TogeTrap, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daLv6TogeTrap_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 622, // mPriority
- &l_daLv6TogeTrap_Method, // sub_method
- 0x00040000, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80C7C9C8-80C7C9D4 000250 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,
+#include "d/d_s_play.h"
+#include "d/d_path.h"
+#include "d/d_cc_uty.h"
+
+class daLv6TogeTrap_HIO_c : public mDoHIO_entry_c {
+public:
+ /* 80C79E4C */ daLv6TogeTrap_HIO_c();
+ /* 80C7C504 */ virtual ~daLv6TogeTrap_HIO_c() {}
+
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ u8 field_0x4;
+ /* 0x05 */ u8 field_0x5;
+ /* 0x08 */ f32 search_range;
+ /* 0x0C */ f32 search_ratio;
+ /* 0x10 */ f32 return_ratio;
+ /* 0x14 */ u8 return_wait;
+ /* 0x15 */ u8 test;
+ /* 0x16 */ u8 search_wait;
+ /* 0x18 */ f32 search_return_speed;
+ /* 0x1C */ f32 search_accel;
+ /* 0x20 */ f32 return_accel;
+ /* 0x24 */ f32 rotate_speed;
};
-/* 80C7C9D4-80C7C9E0 00025C 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,
-};
+/* 80C79E4C-80C79EC8 0000EC 007C+00 1/1 0/0 0/0 .text __ct__19daLv6TogeTrap_HIO_cFv */
+daLv6TogeTrap_HIO_c::daLv6TogeTrap_HIO_c() {
+ field_0x4 = 60;
+ field_0x5 = 1;
-/* 80C7C9E0-80C7C9EC 000268 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
+ search_range = 300.0f;
+ search_ratio = 1.0f;
+ search_wait = 15;
+ search_return_speed = 0.25f;
+ search_accel = 15.0f;
-/* 80C7C9EC-80C7C9F8 000274 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
+ return_ratio = 0.3f;
+ return_wait = 15;
-/* 80C7C9F8-80C7CA04 000280 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
+ rotate_speed = 15.0f;
+ test = 0;
+ return_accel = 10.0f;
+}
-/* 80C7CA04-80C7CA10 00028C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGLin */
-SECTION_DATA extern void* __vt__8cM3dGLin[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGLinFv,
-};
+/* 80C7CA64-80C7CA8C 000014 0028+00 9/9 0/0 0/0 .bss l_HIO */
+static daLv6TogeTrap_HIO_c l_HIO;
-/* 80C7CA10-80C7CA38 000298 0028+00 1/1 0/0 0/0 .data __vt__15daLv6TogeTrap_c */
-SECTION_DATA extern void* __vt__15daLv6TogeTrap_c[10] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__15daLv6TogeTrap_cFv,
- (void*)Create__16dBgS_MoveBgActorFv,
- (void*)Execute__15daLv6TogeTrap_cFPPA3_A4_f,
- (void*)Draw__15daLv6TogeTrap_cFv,
- (void*)Delete__15daLv6TogeTrap_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
+/* 80C7C630-80C7C660 000018 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__15daLv6TogeTrap_c */
+const dCcD_SrcGObjInf daLv6TogeTrap_c::mCcDObjInfo = {
+ {0, {{0x800, 0x1, 0x1F}, {0xD8FBFDFF, 0x11}, {0x79}}},
+ {dCcD_SE_SWORD, 0, 1, 0, 1},
+ {dCcD_SE_STONE, 5, 0, 0, 0},
+ {0},
};
-/* 80C7CA38-80C7CA44 0002C0 000C+00 2/2 0/0 0/0 .data __vt__19daLv6TogeTrap_HIO_c */
-SECTION_DATA extern void* __vt__19daLv6TogeTrap_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__19daLv6TogeTrap_HIO_cFv,
+/* 80C7C660-80C7C690 000048 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo2__15daLv6TogeTrap_c */
+const dCcD_SrcGObjInf daLv6TogeTrap_c::mCcDObjInfo2 = {
+ {0, {{0x0, 0x0, 0}, {0xDAFBFDFF, 0x11}, {0x0}}},
+ {dCcD_SE_SWORD, 0, 0, 0, 0},
+ {dCcD_SE_STONE, 1, 0, 0, 2},
+ {0},
};
-/* 80C7CA44-80C7CA50 0002CC 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,
+/* 80C7C798-80C7C7D8 000020 0040+00 1/2 0/0 0/0 .data mCcDSph__15daLv6TogeTrap_c */
+dCcD_SrcSph daLv6TogeTrap_c::mCcDSph = {
+ daLv6TogeTrap_c::mCcDObjInfo,
+ {
+ {{0.0f, 0.0f, 0.0f}, 0.0f} // mSph
+ } // mSphAttr
};
-/* 80C79E4C-80C79EC8 0000EC 007C+00 1/1 0/0 0/0 .text __ct__19daLv6TogeTrap_HIO_cFv */
-daLv6TogeTrap_HIO_c::daLv6TogeTrap_HIO_c() {
- // NONMATCHING
-}
-
-/* 80C79EC8-80C79F10 000168 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
-}
-
-/* ############################################################################################## */
-/* 80C7C630-80C7C660 000018 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__15daLv6TogeTrap_c */
-SECTION_RODATA u8 const daLv6TogeTrap_c::mCcDObjInfo[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
- 0xD8, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x0A, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+/* 80C7C7D8-80C7C81C 000060 0044+00 1/2 0/0 0/0 .data mCcDCyl__15daLv6TogeTrap_c */
+dCcD_SrcCyl daLv6TogeTrap_c::mCcDCyl = {
+ daLv6TogeTrap_c::mCcDObjInfo2,
+ {
+ {0.0f, 0.0f, 0.0f}, // mCenter
+ 0.0f, // mRadius
+ 0.0f // mHeight
+ } // mCyl
};
-COMPILER_STRIP_GATE(0x80C7C630, &daLv6TogeTrap_c::mCcDObjInfo);
-/* 80C7C660-80C7C690 000048 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo2__15daLv6TogeTrap_c */
-SECTION_RODATA u8 const daLv6TogeTrap_c::mCcDObjInfo2[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xDA, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+/* 80C7C81C-80C7C828 -00001 000C+00 2/3 0/0 0/0 .data l_resNameIdx */
+static char* l_resNameIdx[3] = {
+ "L6TogeTp",
+ "L4TogeTp",
+ "L9Toge",
};
-COMPILER_STRIP_GATE(0x80C7C660, &daLv6TogeTrap_c::mCcDObjInfo2);
/* 80C7C690-80C7C6D0 000078 0040+00 0/1 0/0 0/0 .rodata mSpeed__15daLv6TogeTrap_c */
-#pragma push
-#pragma force_active on
-SECTION_RODATA u8 const daLv6TogeTrap_c::mSpeed[64] = {
- 0x41, 0x20, 0x00, 0x00, 0x41, 0x85, 0x55, 0x55, 0x41, 0xBA, 0xAA, 0xAB, 0x41, 0xC8, 0x00, 0x00,
- 0x41, 0xD5, 0x55, 0x55, 0x41, 0xE2, 0xAA, 0xAB, 0x41, 0xF0, 0x00, 0x00, 0x41, 0xFD, 0x55, 0x55,
- 0x42, 0x05, 0x55, 0x55, 0x42, 0x20, 0x00, 0x00, 0x42, 0x3A, 0xAA, 0xAB, 0x42, 0x55, 0x55, 0x55,
- 0x42, 0x70, 0x00, 0x00, 0x42, 0x85, 0x55, 0x55, 0x42, 0xA6, 0xAA, 0xAB, 0x40, 0x55, 0x55, 0x55,
+const f32 daLv6TogeTrap_c::mSpeed[16] = {
+ 10.0f,
+ 16.666666f,
+ 23.333334f,
+ 25.0f,
+ 26.666666f,
+ 28.333334f,
+ 30.0f,
+ 31.666666f,
+ 33.333332f,
+ 40.0f,
+ 46.666668f,
+ 53.333332f,
+ 60.0f,
+ 66.666664f,
+ 83.333336f,
+ 3.3333333f,
};
-COMPILER_STRIP_GATE(0x80C7C690, &daLv6TogeTrap_c::mSpeed);
-#pragma pop
/* 80C7C6D0-80C7C6DC 0000B8 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(0x80C7C6D0, &l_bmdIdx);
+static const int l_bmdIdx[] = {4, 4, 4};
/* 80C7C6DC-80C7C6E8 0000C4 000C+00 0/0 0/0 0/0 .rodata l_dzbIdx */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_dzbIdx[12] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07,
-};
-COMPILER_STRIP_GATE(0x80C7C6DC, &l_dzbIdx);
-#pragma pop
-
-/* 80C7C6E8-80C7C6EC 0000D0 0004+00 9/18 0/0 0/0 .rodata @3665 */
-SECTION_RODATA static u8 const lit_3665[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C6E8, &lit_3665);
+static const int l_dzbIdx[] = {7, 7, 7};
/* 80C79F10-80C79FE8 0001B0 00D8+00 2/2 0/0 0/0 .text setBaseMtx__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::setBaseMtx() {
- // NONMATCHING
-}
-
-/* 80C79FE8-80C7A068 000288 0080+00 1/0 0/0 0/0 .text CreateHeap__15daLv6TogeTrap_cFv */
-void daLv6TogeTrap_c::CreateHeap() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80C7C6EC-80C7C6F4 0000D4 0006+02 0/0 0/0 0/0 .rodata estimateSizeTbl$3689 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const estimateSizeTbl[6 + 2 /* padding */] = {
- 0x08,
- 0x10,
- 0x2A,
- 0x00,
- 0x15,
- 0x40,
- /* padding */
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C6EC, &estimateSizeTbl);
-#pragma pop
-
-/* 80C7C6F4-80C7C6F8 0000DC 0004+00 0/2 0/0 0/0 .rodata @3843 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3843 = 100.0f;
-COMPILER_STRIP_GATE(0x80C7C6F4, &lit_3843);
-#pragma pop
-
-/* 80C7C6F8-80C7C700 0000E0 0004+04 0/1 0/0 0/0 .rodata @3844 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3844[1 + 1 /* padding */] = {
- 21.0f / 20.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80C7C6F8, &lit_3844);
-#pragma pop
-
-/* 80C7C700-80C7C708 0000E8 0008+00 0/1 0/0 0/0 .rodata @3846 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3846[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C700, &lit_3846);
-#pragma pop
-
-/* 80C7C708-80C7C710 0000F0 0008+00 0/1 0/0 0/0 .rodata @3847 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3847[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C708, &lit_3847);
-#pragma pop
-
-/* 80C7A068-80C7A534 000308 04CC+00 1/1 0/0 0/0 .text create__15daLv6TogeTrap_cFv */
-void daLv6TogeTrap_c::create() {
- // NONMATCHING
-}
+ mDoMtx_stack_c::transS(current.pos.x * (field_0x610 + oREG_F(19)), current.pos.y, current.pos.z * (field_0x610 + oREG_F(19)));
+ mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
+ mDoMtx_stack_c::transM(mRadius, 0.0f, 0.0f);
+ mDoMtx_stack_c::ZXYrotM(0, field_0x600, 0);
+ mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z);
-/* 80C7A534-80C7A57C 0007D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
+ cXyz scale(1.0f, 1.0f, 1.0f);
+ mpModel->setBaseScale(scale);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
-/* 80C7A57C-80C7A5C4 00081C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
+/* 80C79FE8-80C7A068 000288 0080+00 1/0 0/0 0/0 .text CreateHeap__15daLv6TogeTrap_cFv */
+int daLv6TogeTrap_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameIdx[mModelType], l_bmdIdx[mModelType]);
+ JUT_ASSERT(376, modelData != NULL);
-/* 80C7A5C4-80C7A60C 000864 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
-/* 80C7A60C-80C7A668 0008AC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
+ return 1;
}
-/* 80C7A668-80C7A6B0 000908 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */
-// cM3dGLin::~cM3dGLin() {
-extern "C" void __dt__8cM3dGLinFv() {
- // NONMATCHING
+/* 80C7A068-80C7A534 000308 04CC+00 1/1 0/0 0/0 .text create__15daLv6TogeTrap_cFv */
+int daLv6TogeTrap_c::create() {
+ fopAcM_ct(this, daLv6TogeTrap_c);
+
+ mModelType = getModelType();
+ if (mModelType == 0xF) {
+ mModelType = 0;
+ }
+
+ int phase_state = dComIfG_resLoad(&mPhase, l_resNameIdx[mModelType]);
+ if (phase_state == cPhs_COMPLEATE_e) {
+ static const u16 estimateSizeTbl[] = {
+ 0x810,
+ 0x2A00,
+ 0x1540,
+ };
+
+ u32 heap_size = estimateSizeTbl[mModelType];
+ OS_REPORT("l6TogeT: %u 0x%04x %s\n", mModelType, heap_size, l_resNameIdx[mModelType]);
+
+ if (MoveBGCreate(l_resNameIdx[mModelType], -1, NULL, 0x2A00, NULL) == cPhs_ERROR_e) {
+ return cPhs_ERROR_e;
+ }
+
+ mType = getType();
+ if (mType == 0) {
+ mType = 1;
+ }
+
+ mMoveSpeed = mSpeed[getSpeed()];
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x5f9 = 3;
+ field_0x610 = 1.0f;
+
+ dPath* path;
+ if (mType == 3 || mType == 4) {
+ mRadius = 100.0f * getHankei();
+
+ u8 sp8 = getHankei2();
+ if (sp8 != 0xFF) {
+ mRadius += 100.0f * sp8;
+ }
+
+ mRotateDirection = 1;
+
+ if (mType == 4) {
+ mRotateDirection = -1;
+ }
+ } else {
+ mPathNo = fopAcM_GetParam(this);
+
+ path = dPath_GetRoomPath(mPathNo, fopAcM_GetRoomNo(this));
+ if (path == NULL) {
+ OS_REPORT("[Lv6トゲトラップ]%d番のパスが見つかりませんでした\n", mPathNo);
+ return cPhs_INIT_e;
+ }
+
+ dPnt* pnt = path->m_points;
+ current.pos = pnt->m_position;
+
+ mIsPathClosed = dPath_ChkClose(path);
+ mRadius = 0.0f;
+ mRotateDirection = -1;
+ field_0x5ae = 0;
+
+ if (mType == 5) {
+ mRotateDirection = 1;
+ field_0x610 = 1.05f;
+ field_0x5ae = getHankei2();
+
+ dPnt* pnt = &path->m_points[field_0x5ae];
+ current.pos = pnt->m_position;
+ }
+ }
+
+ if (mType == 1 || mType == 5) {
+ init_modeWaitInit();
+ } else if (mType == 2) {
+ dPnt* start_pnt = &path->m_points[0];
+ dPnt* end_pnt = &path->m_points[1];
+
+ cXyz start_pos;
+ cXyz end_pos;
+ start_pos = start_pnt->m_position;
+ end_pos = end_pnt->m_position;
+ mLine.SetStartEnd(start_pos, end_pos);
+ field_0x5b0 = start_pnt->m_position;
+
+ init_modeWaitType2();
+ } else if (mType == 3 || mType == 4) {
+ init_modeRotate();
+ }
+
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mpModel->getModelData());
+ field_0x600 = 0;
+ field_0x60b = 0;
+ setBaseMtx();
+
+ mCcStts.Init(100, 1, this);
+ mCcSph.Set(mCcDSph);
+ mCcSph.SetStts(&mCcStts);
+ mCcCyl.Set(mCcDCyl);
+ mCcCyl.SetStts(&mCcStts);
+
+ health = 1;
+ mSound.init(&current.pos, 1);
+ field_0x8d0 = 0;
+
+ #if DEBUG
+ l_HIO.entryHIO("Lv6トゲトラップ");
+ #endif
+ }
+
+ return phase_state;
}
/* 80C7A6B0-80C7A700 000950 0050+00 1/1 0/0 0/0 .text searchSekizoAct__15daLv6TogeTrap_cFPvPv */
-void daLv6TogeTrap_c::searchSekizoAct(void* param_0, void* param_1) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80C7C710-80C7C714 0000F8 0004+00 0/1 0/0 0/0 .rodata @4027 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4027 = 75.0f;
-COMPILER_STRIP_GATE(0x80C7C710, &lit_4027);
-#pragma pop
-
-/* 80C7C714-80C7C718 0000FC 0004+00 0/1 0/0 0/0 .rodata @4028 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4028 = 50.0f;
-COMPILER_STRIP_GATE(0x80C7C714, &lit_4028);
-#pragma pop
-
-/* 80C7C718-80C7C71C 000100 0004+00 0/2 0/0 0/0 .rodata @4029 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4029 = 30.0f;
-COMPILER_STRIP_GATE(0x80C7C718, &lit_4029);
-#pragma pop
-
-/* 80C7C71C-80C7C720 000104 0004+00 0/2 0/0 0/0 .rodata @4030 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4030 = 0x43360B61;
-COMPILER_STRIP_GATE(0x80C7C71C, &lit_4030);
-#pragma pop
-
-/* 80C7CA58-80C7CA64 000008 000C+00 1/1 0/0 0/0 .bss @3625 */
-static u8 lit_3625[12];
+void* daLv6TogeTrap_c::searchSekizoAct(void* i_actor, void* i_data) {
+ if (i_actor != NULL && fopAcM_IsActor(i_actor) && fopAcM_GetProfName(i_actor) == PROC_CSTATUE) {
+ return i_actor;
+ }
-/* 80C7CA64-80C7CA8C 000014 0028+00 9/9 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[40];
+ return NULL;
+}
/* 80C7A700-80C7A97C 0009A0 027C+00 1/0 0/0 0/0 .text Execute__15daLv6TogeTrap_cFPPA3_A4_f */
-void daLv6TogeTrap_c::Execute(Mtx** param_0) {
- // NONMATCHING
+int daLv6TogeTrap_c::Execute(Mtx** param_0) {
+ moveLift();
+
+ if (mCcSph.ChkTgHit()) {
+ cCcD_Obj* tg_hitobj = mCcSph.GetTgHitObj();
+ if (tg_hitobj != NULL) {
+ fopAc_ac_c* hitactor = dCc_GetAc(tg_hitobj->GetAc());
+ u8 var_r26 = TRUE;
+
+ if (hitactor != NULL) {
+ if (fopAcM_GetName(hitactor) == PROC_ALINK && (mCcSph.GetTgHitGObj()->GetAtType() & AT_TYPE_NORMAL_SWORD) && field_0x8d0 != 0) {
+ var_r26 = FALSE;
+ }
+
+ if (var_r26) {
+ mSound.startCollisionSE(mCcSph.GetTgHitObjHitSeID(1), 9, NULL);
+ field_0x8d0 = 1;
+ }
+ }
+ }
+ } else {
+ field_0x8d0 = 0;
+ }
+
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ cXyz sp38(mRadius, 0.0f, 0.0f);
+ cXyz sp2C;
+ mDoMtx_stack_c::multVec(&sp38, &sp2C);
+
+ mCcSph.SetR((75.0f + oREG_F(0)) * scale.x);
+ cXyz sp20(current.pos);
+ sp20.x *= field_0x610 + oREG_F(19);
+ sp20.z *= field_0x610 + oREG_F(19);
+ cXyz sp14 = sp20 + sp2C;
+ sp14.y += 50.0f;
+ mCcSph.SetC(sp14);
+ dComIfG_Ccsp()->Set(&mCcSph);
+
+ mCcCyl.SetR((30.0f + oREG_F(1)) * scale.x);
+ mCcCyl.SetC(sp20 + sp2C);
+ mCcCyl.SetH((100.0f + oREG_F(2)) * scale.y);
+ dComIfG_Ccsp()->Set(&mCcCyl);
+
+ mCcStts.Move();
+
+ field_0x600 += cM_deg2s(l_HIO.rotate_speed);
+ *param_0 = &mpModel->getBaseTRMtx();
+ mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ setBaseMtx();
+ return 1;
}
-/* ############################################################################################## */
-/* 80C7CA8C-80C7CA90 00003C 0004+00 1/1 0/0 0/0 .bss None */
-static u8 data_80C7CA8C[4];
-
/* 80C7A97C-80C7ABC8 000C1C 024C+00 1/1 0/0 0/0 .text moveLift__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::moveLift() {
- // NONMATCHING
+ if (mPathNo != 0xFF) {
+ static void (daLv6TogeTrap_c::*mode_proc[])() = {
+ &daLv6TogeTrap_c::modeAcc,
+ &daLv6TogeTrap_c::modeMove,
+ &daLv6TogeTrap_c::modeMove2,
+ &daLv6TogeTrap_c::modeBrk,
+ &daLv6TogeTrap_c::modeWait,
+ &daLv6TogeTrap_c::modeWaitInit,
+ &daLv6TogeTrap_c::modeBound,
+ &daLv6TogeTrap_c::modeBoundWait,
+ &daLv6TogeTrap_c::modeWaitType2,
+ &daLv6TogeTrap_c::modeMoveInitType2,
+ &daLv6TogeTrap_c::modeAccType2,
+ &daLv6TogeTrap_c::modeWaitAttackType2,
+ &daLv6TogeTrap_c::modeBreak,
+ &daLv6TogeTrap_c::modeRotate,
+ };
+
+ switch (mType) {
+ case 1:
+ executeType1();
+ break;
+ case 2:
+ executeType2();
+ break;
+ case 3:
+ break;
+ }
+
+ (this->*mode_proc[mMode])();
+
+ if (mCcCyl.ChkTgHit() && (mCcCyl.GetTgHitGObj()->GetAtType() & (AT_TYPE_2000000 | AT_TYPE_CSTATUE_SWING))) {
+ init_modeBreak();
+ }
+
+ if (health == 0) {
+ init_modeBreak();
+ }
+ }
}
/* 80C7ABC8-80C7ACA0 000E68 00D8+00 1/1 0/0 0/0 .text executeType1__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::executeType1() {
- // NONMATCHING
+ if (field_0x60b == 0 && mCcSph.ChkCoHit()) {
+ fopAc_ac_c* co_hitactor = mCcSph.GetCoHitAc();
+ if (co_hitactor != NULL && fopAcM_GetProfName(co_hitactor) == PROC_CSTATUE) {
+ cXyz sp14 = current.pos - co_hitactor->current.pos;
+ cXyz sp8 = current.pos - field_0x5b0;
+
+ if (sp14.getDotProduct(sp8) >= 0.0f) {
+ init_modeBound();
+ }
+ }
+ }
}
/* 80C7ACA0-80C7AD40 000F40 00A0+00 1/1 0/0 0/0 .text init_modeBound__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeBound() {
- // NONMATCHING
-}
+ field_0x60b = 1;
+ fopAcM_SetSpeedF(this, 0.0f);
+ mRotateDirection *= -1;
+ setNextPoint();
+ field_0x5bc = field_0x5b0;
-/* ############################################################################################## */
-/* 80C7C720-80C7C724 000108 0004+00 0/1 0/0 0/0 .rodata @4114 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4114 = 5.0f;
-COMPILER_STRIP_GATE(0x80C7C720, &lit_4114);
-#pragma pop
+ cXyz sp8;
+ cM3d_InDivPos2(&current.pos, &field_0x5b0, l_HIO.return_ratio, &sp8);
+ field_0x5b0 = sp8;
+
+ mMode = 6;
+}
/* 80C7AD40-80C7ADA4 000FE0 0064+00 1/0 0/0 0/0 .text modeBound__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeBound() {
- // NONMATCHING
+ if (0.0f == cLib_addCalcPos(&current.pos, field_0x5b0, 1.0f, mMoveSpeed, 5.0f)) {
+ init_modeBoundWait();
+ }
}
/* 80C7ADA4-80C7ADC0 001044 001C+00 1/1 0/0 0/0 .text init_modeBoundWait__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeBoundWait() {
- // NONMATCHING
+ field_0x60a = l_HIO.return_wait;
+ mMode = 7;
}
/* 80C7ADC0-80C7AE18 001060 0058+00 1/0 0/0 0/0 .text modeBoundWait__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::modeBoundWait() {
- // NONMATCHING
+ if (field_0x60a != 0) {
+ field_0x60a--;
+ } else {
+ field_0x60b = 0;
+ field_0x5b0 = field_0x5bc;
+ init_modeWait();
+ }
}
/* 80C7AE18-80C7AE24 0010B8 000C+00 1/1 0/0 0/0 .text init_modeAcc__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeAcc() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80C7C724-80C7C728 00010C 0004+00 0/4 0/0 0/0 .rodata @4149 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4149 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80C7C724, &lit_4149);
-#pragma pop
-
-/* 80C7C728-80C7C730 000110 0004+04 5/12 0/0 0/0 .rodata @4150 */
-SECTION_RODATA static f32 const lit_4150[1 + 1 /* padding */] = {
- -1.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80C7C728, &lit_4150);
+ mMode = 0;
+}
/* 80C7AE24-80C7AF10 0010C4 00EC+00 1/0 0/0 0/0 .text modeAcc__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeAcc() {
- // NONMATCHING
+ BOOL temp_r30 = cLib_chaseF(&speedF, mMoveSpeed, mMoveSpeed / l_HIO.return_accel);
+ cLib_addCalcPos(&current.pos, field_0x5b0, 1.0f, fopAcM_GetSpeedF(this), 0.1f);
+
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+
+ if (temp_r30 == TRUE || current.pos == field_0x5b0) {
+ init_modeMove();
+ }
}
/* 80C7AF10-80C7AF1C 0011B0 000C+00 1/1 0/0 0/0 .text init_modeMove__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeMove() {
- // NONMATCHING
+ mMode = 1;
}
-/* ############################################################################################## */
-/* 80C7C730-80C7C738 000118 0008+00 0/2 0/0 0/0 .rodata @4232 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4232[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C730, &lit_4232);
-#pragma pop
-
-/* 80C7C738-80C7C740 000120 0008+00 0/2 0/0 0/0 .rodata @4233 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4233[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C738, &lit_4233);
-#pragma pop
-
-/* 80C7C740-80C7C748 000128 0008+00 0/2 0/0 0/0 .rodata @4234 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4234[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C7C740, &lit_4234);
-#pragma pop
-
/* 80C7AF1C-80C7B234 0011BC 0318+00 1/0 0/0 0/0 .text modeMove__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeMove() {
- // NONMATCHING
+ f32 temp_f30 = 30.0f;
+ f32 temp_f29 = 300.0f;
+
+ cXyz sp2C(field_0x5c8);
+ cXyz sp20(field_0x5b0);
+ f32 var_f31 = 0.3f * (sp2C - sp20).abs();
+ if (var_f31 < temp_f30) {
+ var_f31 = temp_f30;
+ }
+ if (var_f31 > temp_f29) {
+ var_f31 = temp_f29;
+ }
+
+ cLib_addCalcPos(&current.pos, field_0x5b0, 1.0f, fopAcM_GetSpeedF(this), 0.1f);
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+
+ BOOL temp_r29 = var_f31 > (current.pos - field_0x5b0).abs();
+ if (temp_r29) {
+ init_modeBrk();
+ }
}
/* 80C7B234-80C7B240 0014D4 000C+00 1/1 0/0 0/0 .text init_modeBrk__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeBrk() {
- // NONMATCHING
+ mMode = 3;
}
-/* ############################################################################################## */
-/* 80C7C748-80C7C74C 000130 0004+00 0/1 0/0 0/0 .rodata @4280 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4280 = 0.5f;
-COMPILER_STRIP_GATE(0x80C7C748, &lit_4280);
-#pragma pop
-
/* 80C7B240-80C7B43C 0014E0 01FC+00 1/0 0/0 0/0 .text modeBrk__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeBrk() {
- // NONMATCHING
+ cXyz sp14(current.pos);
+ f32 temp_f31 = cLib_addCalcPos(&current.pos, field_0x5b0, 0.1f, fopAcM_GetSpeedF(this), 0.5f);
+ f32 temp_f30 = (sp14 - current.pos).abs();
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, temp_f30, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+
+ if (0.0f == temp_f31) {
+ init_modeWaitInit();
+ }
}
/* 80C7B43C-80C7B448 0016DC 000C+00 1/1 0/0 0/0 .text init_modeMove2__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeMove2() {
- // NONMATCHING
+ mMode = 2;
}
/* 80C7B448-80C7B518 0016E8 00D0+00 1/0 0/0 0/0 .text modeMove2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeMove2() {
- // NONMATCHING
+ f32 temp_f31 = cLib_addCalcPos(&current.pos, field_0x5b0, 1.0f, mMoveSpeed, mMoveSpeed);
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, mMoveSpeed, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ if (temp_f31 == 0.0f) {
+ init_modeWaitInit();
+ }
}
/* 80C7B518-80C7B530 0017B8 0018+00 3/3 0/0 0/0 .text init_modeWaitInit__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeWaitInit() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 5;
}
/* 80C7B530-80C7B600 0017D0 00D0+00 1/0 0/0 0/0 .text modeWaitInit__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::modeWaitInit() {
- // NONMATCHING
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ setNextPoint();
+
+ if (mType == 5) {
+ if (field_0x5ae == -1) {
+ fopAcM_delete(this);
+ } else {
+ init_modeWait();
+ }
+ } else {
+ init_modeWait();
+ }
}
/* 80C7B600-80C7B60C 0018A0 000C+00 2/2 0/0 0/0 .text init_modeWait__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeWait() {
- // NONMATCHING
+ mMode = 4;
}
/* 80C7B60C-80C7B6D4 0018AC 00C8+00 1/0 0/0 0/0 .text modeWait__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeWait() {
- // NONMATCHING
-}
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
-/* ############################################################################################## */
-/* 80C7C74C-80C7C750 000134 0004+00 1/1 0/0 0/0 .rodata @4416 */
-SECTION_RODATA static f32 const lit_4416 = 10000.0f;
-COMPILER_STRIP_GATE(0x80C7C74C, &lit_4416);
+ if (mType == 5) {
+ init_modeMove2();
+ } else if (mIsPathClosed) {
+ init_modeMove2();
+ } else {
+ init_modeAcc();
+ }
+}
/* 80C7B6D4-80C7B988 001974 02B4+00 1/1 0/0 0/0 .text executeType2__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::executeType2() {
- // NONMATCHING
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ cXyz sp40;
+ cXyz sp34;
+
+ if (mCcSph.ChkCoHit()) {
+ fopAc_ac_c* co_hitactor = mCcSph.GetCoHitAc();
+ if (co_hitactor != NULL && fopAcM_GetProfName(co_hitactor) == PROC_CSTATUE) {
+ cXyz sp28 = current.pos - co_hitactor->current.pos;
+ cXyz sp1C = current.pos - field_0x5b0;
+
+ if (sp28.getDotProduct(sp1C) >= 0.0f) {
+ dPath* path = dPath_GetRoomPath(mPathNo, fopAcM_GetRoomNo(this));
+ dPnt* pnt = path->m_points;
+
+ mRotateDirection = -1;
+ field_0x5c8 = field_0x5b0;
+ field_0x5b0 = pnt->m_position;
+ field_0x5ae = 0;
+ init_modeWaitAttackType2();
+ }
+ }
+ }
+
+ fopAc_ac_c* cstatue = fopAcM_Search(searchSekizoAct, this);
+ field_0x609 = 0;
+
+ f32 spC, sp8;
+ sp8 = 10000.0f;
+ if (cstatue != 0) {
+ field_0x609 = cM3d_Len3dSqPntAndSegLine(&mLine, &cstatue->current.pos, &sp34, &sp8);
+ }
+
+ field_0x608 = cM3d_Len3dSqPntAndSegLine(&mLine, &player->current.pos, &sp40, &spC);
+
+ if (field_0x609 == 1 && field_0x608 == 1) {
+ if (spC > sp8) {
+ spC = sp8;
+ sp40 = sp34;
+ }
+ } else if (field_0x609 == 1 && field_0x608 == 0) {
+ spC = sp8;
+ sp40 = sp34;
+ }
+
+ f32 temp_f30 = JMAFastSqrt(spC);
+ if (field_0x609 == 1 || field_0x608 == 1) {
+ if (temp_f30 <= l_HIO.search_range && field_0x5db == 0) {
+ mRotateDirection = 1;
+ field_0x5c8 = field_0x5b0;
+
+ cXyz sp10;
+ field_0x5b0 = sp40;
+ field_0x5ae = 1;
+ field_0x5db = 1;
+ field_0x604 = mMoveSpeed;
+ init_modeWaitAttackType2();
+ }
+ }
}
/* 80C7B988-80C7B9A8 001C28 0020+00 2/2 0/0 0/0 .text init_modeWaitType2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeWaitType2() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x5db = 0;
+ mMode = 8;
}
/* 80C7B9A8-80C7BA38 001C48 0090+00 1/0 0/0 0/0 .text modeWaitType2__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::modeWaitType2() {
- // NONMATCHING
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
}
/* 80C7BA38-80C7BA50 001CD8 0018+00 1/1 0/0 0/0 .text init_modeMoveInitType2__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeMoveInitType2() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 9;
}
/* 80C7BA50-80C7BAE8 001CF0 0098+00 1/0 0/0 0/0 .text modeMoveInitType2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeMoveInitType2() {
- // NONMATCHING
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ init_modeAccType2();
}
/* 80C7BAE8-80C7BAF4 001D88 000C+00 1/1 0/0 0/0 .text init_modeAccType2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeAccType2() {
- // NONMATCHING
+ mMode = 10;
}
/* 80C7BAF4-80C7BC54 001D94 0160+00 1/0 0/0 0/0 .text modeAccType2__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::modeAccType2() {
- // NONMATCHING
+ cLib_chaseF(&speedF, field_0x604, field_0x604 / l_HIO.search_accel);
+ f32 temp_f31 = cLib_addCalcPos(&current.pos, field_0x5b0, 1.0f, fopAcM_GetSpeedF(this), 0.1f);
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+
+ if (0.0f == temp_f31) {
+ dPath* path = dPath_GetRoomPath(mPathNo, fopAcM_GetRoomNo(this));
+ dPnt* pnt = path->m_points;
+
+ if (current.pos == pnt->m_position) {
+ init_modeWaitType2();
+ } else {
+ mRotateDirection = -1;
+ field_0x5c8 = field_0x5b0;
+ field_0x5b0 = pnt->m_position;
+ field_0x5ae = 0;
+ init_modeWaitAttackType2();
+ }
+ }
}
/* 80C7BC54-80C7BC7C 001EF4 0028+00 2/2 0/0 0/0 .text
* init_modeWaitAttackType2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeWaitAttackType2() {
- // NONMATCHING
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x60a = l_HIO.search_wait;
+ mMode = 11;
}
/* 80C7BC7C-80C7BD64 001F1C 00E8+00 1/0 0/0 0/0 .text modeWaitAttackType2__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeWaitAttackType2() {
- // NONMATCHING
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &current.pos, fopAcM_GetSpeedF(this), dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+
+ if (field_0x608 == 0 && field_0x609 == 0) {
+ field_0x60a = 0;
+ }
+
+ if (field_0x60a != 0) {
+ field_0x60a--;
+ } else {
+ field_0x604 = mMoveSpeed * l_HIO.search_return_speed;
+ init_modeMoveInitType2();
+ }
}
/* 80C7BD64-80C7BD70 002004 000C+00 1/1 0/0 0/0 .text init_modeRotate__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::init_modeRotate() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80C7C750-80C7C754 000138 0004+00 0/1 0/0 0/0 .rodata @4533 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4533 = 360.0f;
-COMPILER_STRIP_GATE(0x80C7C750, &lit_4533);
-#pragma pop
-
-/* 80C7C754-80C7C758 00013C 0004+00 0/1 0/0 0/0 .rodata @4534 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4534 = 0x40490FDB;
-COMPILER_STRIP_GATE(0x80C7C754, &lit_4534);
-#pragma pop
-
-/* 80C7C758-80C7C75C 000140 0004+00 0/1 0/0 0/0 .rodata @4535 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4535 = 2.0f;
-COMPILER_STRIP_GATE(0x80C7C758, &lit_4535);
-#pragma pop
+ mMode = 13;
+}
/* 80C7BD70-80C7BED8 002010 0168+00 1/0 0/0 0/0 .text modeRotate__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeRotate() {
- // NONMATCHING
+ if (mCcSph.ChkCoHit()) {
+ fopAc_ac_c* co_hitactor = mCcSph.GetCoHitAc();
+ if (co_hitactor != NULL && fopAcM_GetProfName(co_hitactor) == PROC_CSTATUE) {
+ mRotateDirection *= -1;
+ }
+ }
+
+ f32 var_f31 = 360.0f * (mMoveSpeed / (M_PI * (2.0f * mRadius)));
+ shape_angle.y += mRotateDirection * cM_deg2s(var_f31);
+
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ field_0x8c4.set(mRadius, 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&field_0x8c4, &field_0x8c4);
+ field_0x8c4 += current.pos;
+ mDoAud_seStartLevel(Z2SE_OBJ_TOGE_SPIN, &field_0x8c4, mMoveSpeed, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
}
/* 80C7BED8-80C7BFE4 002178 010C+00 1/1 0/0 0/0 .text init_modeBreak__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::init_modeBreak() {
- // NONMATCHING
+ cXyz sound_pos;
+ if (mType == 3 || mType == 4) {
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ sound_pos.set(mRadius, 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&sound_pos, &sound_pos);
+ sound_pos += current.pos;
+ } else {
+ sound_pos = current.pos;
+ }
+
+ mDoAud_seStart(Z2SE_OBJ_TRAP_BREAK, &sound_pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ mMode = 12;
}
/* 80C7BFE4-80C7C1D8 002284 01F4+00 1/0 0/0 0/0 .text modeBreak__15daLv6TogeTrap_cFv */
void daLv6TogeTrap_c::modeBreak() {
- // NONMATCHING
+ cXyz effpos;
+ if (mType == 3 || mType == 4) {
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ effpos.set(mRadius, 0.0f, 0.0f);
+ mDoMtx_stack_c::multVec(&effpos, &effpos);
+ effpos += current.pos;
+ } else {
+ effpos = current.pos;
+ }
+
+ dComIfGp_particle_set(dPa_RM(ID_ZI_S_LV6TOGE_HAKAI_A), &effpos, NULL, NULL);
+ dComIfGp_particle_set(dPa_RM(ID_ZI_S_LV6TOGE_HAKAI_B), &effpos, NULL, NULL);
+ dComIfGp_particle_set(dPa_RM(ID_ZI_S_LV6TOGE_HAKAI_C), &effpos, NULL, NULL);
+ dComIfGp_particle_set(dPa_RM(ID_ZI_S_LV6TOGE_HAKAI_D), &effpos, NULL, NULL);
+ fopAcM_delete(this);
}
/* 80C7C1D8-80C7C33C 002478 0164+00 2/2 0/0 0/0 .text setNextPoint__15daLv6TogeTrap_cFv
*/
void daLv6TogeTrap_c::setNextPoint() {
- // NONMATCHING
+ s16 step = field_0x5ae + mRotateDirection;
+ dPath* path = dPath_GetRoomPath(mPathNo, fopAcM_GetRoomNo(this));
+
+ if (mIsPathClosed) {
+ if (step > path->m_num - 1) {
+ step = 0;
+ mRotateDirection = 1;
+ } else if (step < 0) {
+ step = (s8)(path->m_num - 1);
+ mRotateDirection = -1;
+ }
+ } else if (step > path->m_num - 1) {
+ mRotateDirection = -1;
+ if (mType == 5) {
+ step = -1;
+ } else {
+ step = (s8)(path->m_num - 2);
+ }
+ } else if (step < 0) {
+ if (mType == 1) {
+ mRotateDirection = 1;
+ step = 1;
+ } else {
+ mRotateDirection = 0;
+ step = 0;
+ }
+ }
+
+ if (step != -1) {
+ field_0x5c8 = field_0x5b0;
+ dPnt* pnt = &path->m_points[step];
+ field_0x5b0 = pnt->m_position;
+ field_0x5ae = step;
+ } else {
+ field_0x5ae = -1;
+ }
}
/* 80C7C33C-80C7C3E0 0025DC 00A4+00 1/0 0/0 0/0 .text Draw__15daLv6TogeTrap_cFv */
-void daLv6TogeTrap_c::Draw() {
- // NONMATCHING
+int daLv6TogeTrap_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;
}
/* 80C7C3E0-80C7C430 002680 0050+00 1/0 0/0 0/0 .text Delete__15daLv6TogeTrap_cFv */
-void daLv6TogeTrap_c::Delete() {
- // NONMATCHING
+int daLv6TogeTrap_c::Delete() {
+ mSound.deleteObject();
+ dComIfG_resDelete(&mPhase, l_resNameIdx[mModelType]);
+
+ #if DEBUG
+ l_HIO.removeHIO();
+ #endif
+ return 1;
}
/* 80C7C430-80C7C45C 0026D0 002C+00 1/0 0/0 0/0 .text daLv6TogeTrap_Draw__FP15daLv6TogeTrap_c */
-static void daLv6TogeTrap_Draw(daLv6TogeTrap_c* param_0) {
- // NONMATCHING
+static int daLv6TogeTrap_Draw(daLv6TogeTrap_c* i_this) {
+ return i_this->MoveBGDraw();
}
/* 80C7C45C-80C7C47C 0026FC 0020+00 1/0 0/0 0/0 .text daLv6TogeTrap_Execute__FP15daLv6TogeTrap_c
*/
-static void daLv6TogeTrap_Execute(daLv6TogeTrap_c* param_0) {
- // NONMATCHING
+static int daLv6TogeTrap_Execute(daLv6TogeTrap_c* i_this) {
+ return i_this->MoveBGExecute();
}
/* 80C7C47C-80C7C49C 00271C 0020+00 1/0 0/0 0/0 .text daLv6TogeTrap_Delete__FP15daLv6TogeTrap_c */
-static void daLv6TogeTrap_Delete(daLv6TogeTrap_c* param_0) {
- // NONMATCHING
+static int daLv6TogeTrap_Delete(daLv6TogeTrap_c* i_this) {
+ return i_this->MoveBGDelete();
}
/* 80C7C49C-80C7C4BC 00273C 0020+00 1/0 0/0 0/0 .text daLv6TogeTrap_Create__FP10fopAc_ac_c */
-static void daLv6TogeTrap_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daLv6TogeTrap_Create(fopAc_ac_c* i_this) {
+ return ((daLv6TogeTrap_c*)i_this)->create();
}
-/* 80C7C4BC-80C7C504 00275C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80C7C504-80C7C560 0027A4 005C+00 2/1 0/0 0/0 .text __dt__19daLv6TogeTrap_HIO_cFv */
-daLv6TogeTrap_HIO_c::~daLv6TogeTrap_HIO_c() {
- // NONMATCHING
-}
-
-/* 80C7C560-80C7C604 002800 00A4+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv6TogeTrap_cpp */
-void __sinit_d_a_obj_lv6TogeTrap_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80C7C560, __sinit_d_a_obj_lv6TogeTrap_cpp);
-#pragma pop
+/* 80C7C978-80C7C998 -00001 0020+00 1/0 0/0 0/0 .data l_daLv6TogeTrap_Method */
+static actor_method_class l_daLv6TogeTrap_Method = {
+ (process_method_func)daLv6TogeTrap_Create,
+ (process_method_func)daLv6TogeTrap_Delete,
+ (process_method_func)daLv6TogeTrap_Execute,
+ NULL,
+ (process_method_func)daLv6TogeTrap_Draw,
+};
-/* 80C7C75C-80C7C75C 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80C7C998-80C7C9C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv6TogeTrap */
+extern actor_process_profile_definition g_profile_Obj_Lv6TogeTrap = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Lv6TogeTrap, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daLv6TogeTrap_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 622, // mPriority
+ &l_daLv6TogeTrap_Method, // sub_method
+ 0x00040000, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_swpush.cpp b/src/d/actor/d_a_obj_swpush.cpp
index 56b20516ac..c6ed8c7d43 100644
--- a/src/d/actor/d_a_obj_swpush.cpp
+++ b/src/d/actor/d_a_obj_swpush.cpp
@@ -749,10 +749,6 @@ void daObjSwpush::Act_c::demo_stop_puase() {
}
}
-static inline bool dComIfGp_evmng_existence(s16 eventIdx) {
- return g_dComIfG_gameInfo.play.getEvtManager().getEventData(eventIdx) != NULL;
-}
-
/* 80484708-804847B4 001AA8 00AC+00 2/2 0/0 0/0 .text demo_reqSw_init__Q211daObjSwpush5Act_cFv */
void daObjSwpush::Act_c::demo_reqSw_init() {
if (dComIfGp_evmng_existence(mEventID) && (mDemoMode == DEMO_MODE_NON || mDemoMode == DEMO_MODE_REQ_PAUSE || mDemoMode == DEMO_MODE_RUN_PAUSE)) {
diff --git a/src/d/actor/d_a_obj_swpush2.cpp b/src/d/actor/d_a_obj_swpush2.cpp
index 7917ae1a9a..01a077a135 100644
--- a/src/d/actor/d_a_obj_swpush2.cpp
+++ b/src/d/actor/d_a_obj_swpush2.cpp
@@ -6,753 +6,794 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_swpush2.h"
-#include "dol2asm.h"
-
-
-//
-// Forward References:
-//
-
-extern "C" void getArcName__Q212daObjSwpush25Act_cFv();
-extern "C" void getBmdName__Q212daObjSwpush25Act_cFv();
-extern "C" void getDzbName__Q212daObjSwpush25Act_cFv();
-extern "C" void getNmlBtkName__Q212daObjSwpush25Act_cFv();
-extern "C" void getNmlBrkName__Q212daObjSwpush25Act_cFv();
-extern "C" void getOnBtkName__Q212daObjSwpush25Act_cFv();
-extern "C" void getRunBpkName__Q212daObjSwpush25Act_cFv();
-extern "C" void getRunBrkName__Q212daObjSwpush25Act_cFv();
-extern "C" void getRunBtkName__Q212daObjSwpush25Act_cFv();
-extern "C" void prmZ_init__Q212daObjSwpush25Act_cFv();
-extern "C" void is_switch2__Q212daObjSwpush25Act_cCFv();
-extern "C" void solidHeapCB__Q212daObjSwpush25Act_cFP10fopAc_ac_c();
-extern "C" void create_heap__Q212daObjSwpush25Act_cFv();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" void create_init__Q212daObjSwpush25Act_cFv();
-extern "C" void create_res_load__Q212daObjSwpush25Act_cFv();
-extern "C" void Mthd_Create__Q212daObjSwpush25Act_cFv();
-extern "C" void Mthd_Delete__Q212daObjSwpush25Act_cFv();
-extern "C" void set_mtx__Q212daObjSwpush25Act_cFv();
-extern "C" void init_mtx__Q212daObjSwpush25Act_cFv();
-extern "C" void rideCB__Q212daObjSwpush25Act_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c();
-extern "C" void calc_top_pos__Q212daObjSwpush25Act_cFv();
-extern "C" void set_push_flag__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_upper_init__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_upper__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_u_l_init__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_u_l__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_lower_init__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_lower__Q212daObjSwpush25Act_cFv();
-extern "C" void mode_l_u__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_non_init__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_non__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_reqPause_init__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_reqPause__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_runPause_init__Q212daObjSwpush25Act_cFi();
-extern "C" void demo_runPause__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_stop_puase__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_reqSw_init__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_reqSw__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_runSw_init__Q212daObjSwpush25Act_cFv();
-extern "C" void demo_runSw__Q212daObjSwpush25Act_cFv();
-extern "C" void Mthd_Execute__Q212daObjSwpush25Act_cFv();
-extern "C" void Mthd_Draw__Q212daObjSwpush25Act_cFv();
-extern "C" static void func_80CFFB50();
-extern "C" static void func_80CFFB70();
-extern "C" static void func_80CFFB90();
-extern "C" static void func_80CFFBB0();
-extern "C" void func_80CFFBD0(void* _this, fopAc_ac_c const*, daObjSwpush2::Act_c::Prm_e,
- daObjSwpush2::Act_c::Prm_e);
-extern "C" u8 const M_arcname__Q212daObjSwpush25Act_c[9 + 3 /* padding */];
-extern "C" void* const M_attr__Q212daObjSwpush25Act_c[56];
-extern "C" extern char const* const d_a_obj_swpush2__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void play__14mDoExt_baseAnmFv();
-extern "C" void init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss();
-extern "C" void entry__13mDoExt_bpkAnmFP16J3DMaterialTablef();
-extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
-extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
-extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
-extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__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 fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
-extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs();
-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 offSwitch__10dSv_info_cFii();
-extern "C" void isSwitch__10dSv_info_cCFii();
-extern "C" void revSwitch__10dSv_info_cFii();
-extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void getEventData__16dEvent_manager_cFs();
-extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
-extern "C" void endCheck__16dEvent_manager_cFs();
-extern "C" void StartShock__12dVibration_cFii4cXyz();
-extern "C" void Release__4cBgSFP9dBgW_Base();
-extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
-extern "C" void Move__4dBgWFv();
-extern "C" void dBgW_NewSet__FP6cBgD_tUlPA3_A4_f();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void ChkUsed__9cBgW_BgIdCFv();
-extern "C" void cLib_addCalc__FPfffff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor();
-extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
-extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 struct_80CFFEF8[4];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD24 = "K_swmn00";
-#pragma pop
+#include "d/actor/d_a_player.h"
+
+#if DEBUG
+daObjSwpush2::Hio_c daObjSwpush2::Act_c::M_hio;
+#endif
/* 80CFE098-80CFE0A4 000078 000C+00 1/1 0/0 0/0 .text getArcName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getArcName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getArcName() {
+ return "K_swmn00";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD2D = "K_hum_isw00.bmd";
-#pragma pop
-
/* 80CFE0A4-80CFE0B4 000084 0010+00 1/1 0/0 0/0 .text getBmdName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getBmdName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getBmdName() {
+ return "K_hum_isw00.bmd";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD3D = "K_hum_isw00.dzb";
-#pragma pop
-
/* 80CFE0B4-80CFE0C4 000094 0010+00 1/1 0/0 0/0 .text getDzbName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getDzbName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getDzbName() {
+ return "K_hum_isw00.dzb";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD4D = "K_isw_nml.btk";
-#pragma pop
-
/* 80CFE0C4-80CFE0D4 0000A4 0010+00 1/1 0/0 0/0 .text getNmlBtkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getNmlBtkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getNmlBtkName() {
+ return "K_isw_nml.btk";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD5B = "K_isw_nml.brk";
-#pragma pop
-
/* 80CFE0D4-80CFE0E4 0000B4 0010+00 1/1 0/0 0/0 .text getNmlBrkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getNmlBrkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getNmlBrkName() {
+ return "K_isw_nml.brk";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD69 = "K_isw_on.btk";
-#pragma pop
-
/* 80CFE0E4-80CFE0F4 0000C4 0010+00 1/1 0/0 0/0 .text getOnBtkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getOnBtkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getOnBtkName() {
+ return "K_isw_on.btk";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD76 = "K_isw_run.bpk";
-#pragma pop
-
/* 80CFE0F4-80CFE104 0000D4 0010+00 1/1 0/0 0/0 .text getRunBpkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getRunBpkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getRunBpkName() {
+ return "K_isw_run.bpk";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD84 = "K_isw_run.brk";
-#pragma pop
-
/* 80CFE104-80CFE114 0000E4 0010+00 1/1 0/0 0/0 .text getRunBrkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getRunBrkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getRunBrkName() {
+ return "K_isw_run.brk";
}
-/* ############################################################################################## */
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CFFD92 = "K_isw_run.btk";
-#pragma pop
-
/* 80CFE114-80CFE124 0000F4 0010+00 1/1 0/0 0/0 .text getRunBtkName__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::getRunBtkName() {
- // NONMATCHING
+const char* daObjSwpush2::Act_c::getRunBtkName() {
+ return "K_isw_run.btk";
}
/* 80CFE124-80CFE154 000104 0030+00 1/1 0/0 0/0 .text prmZ_init__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::prmZ_init() {
- // NONMATCHING
+ if (!mPrmInit) {
+ mPrmZ = home.angle.z;
+ mPrmInit = true;
+ home.angle.z = 0;
+ current.angle.z = 0;
+ shape_angle.z = 0;
+ }
}
/* 80CFE154-80CFE1AC 000134 0058+00 1/1 0/0 0/0 .text is_switch2__Q212daObjSwpush25Act_cCFv */
-void daObjSwpush2::Act_c::is_switch2() const {
- // NONMATCHING
+bool daObjSwpush2::Act_c::is_switch2() const {
+ int swbit = prmZ_get_swSave2();
+ if (swbit == 0xFF) {
+ return 0;
+ }
+
+ return fopAcM_isSwitch(this, swbit);
}
/* 80CFE1AC-80CFE1D0 00018C 0024+00 1/1 0/0 0/0 .text
* solidHeapCB__Q212daObjSwpush25Act_cFP10fopAc_ac_c */
-void daObjSwpush2::Act_c::solidHeapCB(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daObjSwpush2::Act_c::solidHeapCB(fopAc_ac_c* i_this) {
+ return ((daObjSwpush2::Act_c*)i_this)->create_heap();
}
-/* ############################################################################################## */
/* 80CFFBF4-80CFFC00 000000 0009+03 5/4 0/0 0/0 .rodata M_arcname__Q212daObjSwpush25Act_c
*/
-SECTION_RODATA u8 const daObjSwpush2::Act_c::M_arcname[9 + 3 /* padding */] = {
- 0x4B,
- 0x5F,
- 0x73,
- 0x77,
- 0x6D,
- 0x6E,
- 0x30,
- 0x30,
- 0x00,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CFFBF4, &daObjSwpush2::Act_c::M_arcname);
+const char daObjSwpush2::Act_c::M_arcname[9] = "K_swmn00";
/* 80CFFC00-80CFFCE0 -00001 00E0+00 7/10 0/0 0/0 .rodata M_attr__Q212daObjSwpush25Act_c */
-SECTION_RODATA void* const daObjSwpush2::Act_c::M_attr[56] = {
- (void*)0x00002000, (void*)0x00000003,
- (void*)0x3F800000, (void*)&daObjSwpush2::Act_c::M_arcname,
- (void*)0x3F666666, (void*)0x3F19999A,
- (void*)NULL, (void*)0xBE99999A,
- (void*)0x00010006, (void*)0x0006000D,
- (void*)0x3F800000, (void*)0x40200000,
- (void*)0x00060000, (void*)0x43960000,
- (void*)0x00002000, (void*)0x00000020,
- (void*)0x3F800000, (void*)&daObjSwpush2::Act_c::M_arcname,
- (void*)0x3F666666, (void*)0x3F19999A,
- (void*)NULL, (void*)0xBE99999A,
- (void*)0x00010006, (void*)0x0006000D,
- (void*)0x3F800000, (void*)0x40200000,
- (void*)0x00060000, (void*)0x43960000,
- (void*)0x00002000, (void*)0x00000013,
- (void*)0x3F800000, (void*)&daObjSwpush2::Act_c::M_arcname,
- (void*)0x3F666666, (void*)0x3F19999A,
- (void*)NULL, (void*)0xBE99999A,
- (void*)0x00010006, (void*)0x0006000D,
- (void*)0x3F800000, (void*)0x40200000,
- (void*)0x00060000, (void*)0x43960000,
- (void*)0x00008000, (void*)0x0000000B,
- (void*)0x3FC00000, (void*)&daObjSwpush2::Act_c::M_arcname,
- (void*)0x3F6E147B, (void*)0x3ED70A3D,
- (void*)NULL, (void*)NULL,
- (void*)0x00040004, (void*)0x000F0004,
- (void*)0x3F800000, (void*)0x40200000,
- (void*)0x00060000, (void*)0x43960000,
-};
-COMPILER_STRIP_GATE(0x80CFFC00, &daObjSwpush2::Act_c::M_attr);
-
-/* 80CFFCE0-80CFFCE4 0000EC 0004+00 3/7 0/0 0/0 .rodata @3857 */
-SECTION_RODATA static f32 const lit_3857 = 1.0f;
-COMPILER_STRIP_GATE(0x80CFFCE0, &lit_3857);
-
-/* 80CFFCE4-80CFFCE8 0000F0 0004+00 2/5 0/0 0/0 .rodata @3858 */
-SECTION_RODATA static u8 const lit_3858[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CFFCE4, &lit_3858);
-
-/* 80CFFDC0-80CFFDCC -00001 000C+00 0/1 0/0 0/0 .data @4336 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4336[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo_non__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFDCC-80CFFDD8 -00001 000C+00 0/1 0/0 0/0 .data @4337 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4337[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo_reqPause__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFDD8-80CFFDE4 -00001 000C+00 0/1 0/0 0/0 .data @4338 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4338[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo_runPause__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFDE4-80CFFDF0 -00001 000C+00 0/1 0/0 0/0 .data @4339 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4339[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo_reqSw__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFDF0-80CFFDFC -00001 000C+00 0/1 0/0 0/0 .data @4340 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4340[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo_runSw__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFDFC-80CFFE38 00005C 003C+00 0/1 0/0 0/0 .data demo_proc$4335 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 demo_proc[60] = {
- 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,
-};
-#pragma pop
-
-/* 80CFFE38-80CFFE44 -00001 000C+00 0/1 0/0 0/0 .data @4344 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4344[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_upper__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFE44-80CFFE50 -00001 000C+00 0/1 0/0 0/0 .data @4345 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4345[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_u_l__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFE50-80CFFE5C -00001 000C+00 0/1 0/0 0/0 .data @4346 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4346[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_lower__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFE5C-80CFFE68 -00001 000C+00 0/1 0/0 0/0 .data @4347 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4347[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_l_u__Q212daObjSwpush25Act_cFv,
-};
-#pragma pop
-
-/* 80CFFE68-80CFFE98 0000C8 0030+00 0/1 0/0 0/0 .data mode_proc$4343 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 mode_proc[48] = {
- 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,
-};
-#pragma pop
-
-/* 80CFFE98-80CFFEB8 -00001 0020+00 1/0 0/0 0/0 .data
- * Mthd_Table__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@ */
-static actor_method_class data_80CFFE98 = {
- (process_method_func)func_80CFFB50,
- (process_method_func)func_80CFFB70,
- (process_method_func)func_80CFFB90,
- 0,
- (process_method_func)func_80CFFBB0,
-};
-
-/* 80CFFEB8-80CFFEE8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Swpush2 */
-extern actor_process_profile_definition g_profile_Obj_Swpush2 = {
- fpcLy_CURRENT_e, // mLayerID
- 2, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Swpush2, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjSwpush2), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 12, // mPriority
- &data_80CFFE98, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80CFFEE8-80CFFEF4 000148 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,
+const daObjSwpush2::Attr_c daObjSwpush2::Act_c::M_attr[4] = {
+ {
+ 0x2000,
+ daObjSwpush2::AttrFlag_e(AttrFlag_UNK_0x1_e | AttrFlag_UNK_0x2_e),
+ 1.0f,
+ M_arcname,
+ 0.90f,
+ 0.6f,
+ 0.0f,
+ -0.3f,
+ 1,
+ 6,
+ 6,
+ 13,
+ 1.0f,
+ 2.5f,
+ 6,
+ 300.0f,
+ },
+ {
+ 0x2000,
+ daObjSwpush2::AttrFlag_e(AttrFlag_UNK_0x20_e),
+ 1.0f,
+ M_arcname,
+ 0.90f,
+ 0.6f,
+ 0.0f,
+ -0.3f,
+ 1,
+ 6,
+ 6,
+ 13,
+ 1.0f,
+ 2.5f,
+ 6,
+ 300.0f,
+ },
+ {
+ 0x2000,
+ daObjSwpush2::AttrFlag_e(AttrFlag_UNK_0x10_e | AttrFlag_UNK_0x1_e | AttrFlag_UNK_0x2_e),
+ 1.0f,
+ M_arcname,
+ 0.90f,
+ 0.6f,
+ 0.0f,
+ -0.3f,
+ 1,
+ 6,
+ 6,
+ 13,
+ 1.0f,
+ 2.5f,
+ 6,
+ 300.0f,
+ },
+ {
+ 0x8000,
+ daObjSwpush2::AttrFlag_e(AttrFlag_HEAVY_e | AttrFlag_UNK_0x1_e | AttrFlag_UNK_0x2_e),
+ 1.5f,
+ M_arcname,
+ 0.93f,
+ 0.42f,
+ 0.0f,
+ 0.0f,
+ 4,
+ 4,
+ 15,
+ 4,
+ 1.0f,
+ 2.5f,
+ 6,
+ 300.0f,
+ },
};
/* 80CFE1D0-80CFE690 0001B0 04C0+00 1/1 0/0 0/0 .text create_heap__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::create_heap() {
- // NONMATCHING
-}
-
-/* 80CFE690-80CFE6D8 000670 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80CFFCE8-80CFFCEC 0000F4 0004+00 0/1 0/0 0/0 .rodata @3936 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3936 = 150.0f;
-COMPILER_STRIP_GATE(0x80CFFCE8, &lit_3936);
-#pragma pop
-
-/* 80CFFCEC-80CFFCF0 0000F8 0004+00 0/1 0/0 0/0 .rodata @3937 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3937 = -150.0f;
-COMPILER_STRIP_GATE(0x80CFFCEC, &lit_3937);
-#pragma pop
-
-/* 80CFFCF0-80CFFCF4 0000FC 0004+00 0/1 0/0 0/0 .rodata @3938 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3938 = 60.0f;
-COMPILER_STRIP_GATE(0x80CFFCF0, &lit_3938);
-#pragma pop
-
-/* 80CFFCF4-80CFFCF8 000100 0004+00 1/4 0/0 0/0 .rodata @3939 */
-SECTION_RODATA static f32 const lit_3939 = -1.0f;
-COMPILER_STRIP_GATE(0x80CFFCF4, &lit_3939);
+bool daObjSwpush2::Act_c::create_heap() {
+ void* model_data = dComIfG_getObjectRes(getArcName(), getBmdName());
+ JUT_ASSERT(436, model_data != NULL);
+
+ mpModel = mDoExt_J3DModel__create((J3DModelData*)model_data, 0x80000, 0x11000285);
+ if (mpModel == NULL) {
+ return 0;
+ }
+
+ {
+ J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(getArcName(), getNmlBrkName());
+ JUT_ASSERT(452, pbrk != NULL);
+ mpNmlBrk = new mDoExt_brkAnm();
+ if (mpNmlBrk == NULL || !mpNmlBrk->init((J3DModelData*)model_data, pbrk, 1, 2, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpNmlBrk->setPlaySpeed(1.0f);
+ }
+
+ {
+ J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(getArcName(), getNmlBtkName());
+ JUT_ASSERT(465, pbtk != NULL);
+
+ mpNmlBtk = new mDoExt_btkAnm();
+ if (mpNmlBtk == NULL || !mpNmlBtk->init((J3DModelData*)model_data, pbtk, 1, 2, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpNmlBtk->setPlaySpeed(1.0f);
+ }
+
+ {
+ J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(getArcName(), getOnBtkName());
+ JUT_ASSERT(478, pbtk != NULL);
+ mpOnBtk = new mDoExt_btkAnm();
+ if (mpOnBtk == NULL || !mpOnBtk->init((J3DModelData*)model_data, pbtk, 1, 0, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpOnBtk->setPlaySpeed(0.0f);
+ }
+
+ {
+ J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(getArcName(), getRunBtkName());
+ JUT_ASSERT(491, pbtk != NULL);
+ mpRunBtk = new mDoExt_btkAnm();
+ if (mpRunBtk == NULL || !mpRunBtk->init((J3DModelData*)model_data, pbtk, 1, 0, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpRunBtk->setPlaySpeed(0.0f);
+ }
+
+ {
+ J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(getArcName(), getRunBrkName());
+ JUT_ASSERT(504, pbrk != NULL);
+ mpRunBrk = new mDoExt_brkAnm();
+ if (mpRunBrk == NULL || !mpRunBrk->init((J3DModelData*)model_data, pbrk, 1, 0, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpRunBrk->setPlaySpeed(0.0f);
+ }
+
+ {
+ J3DAnmColor* pbpk = (J3DAnmColor*)dComIfG_getObjectRes(getArcName(), getRunBpkName());
+ JUT_ASSERT(517, pbpk != NULL);
+ mpRunBpk = new mDoExt_bpkAnm();
+ if (mpRunBpk == NULL || !mpRunBpk->init((J3DModelData*)model_data, pbpk, 1, 0, 1.0f, 0, -1)) {
+ return 0;
+ }
+
+ mpRunBpk->setPlaySpeed(0.0f);
+ }
+
+ mpBgw = dBgW_NewSet((cBgD_t*)dComIfG_getObjectRes(getArcName(), getDzbName()), 1, &mBgMtx);
+ if (mpBgw == NULL) {
+ return 0;
+ }
+
+ return 1;
+}
/* 80CFE6D8-80CFE8CC 0006B8 01F4+00 1/1 0/0 0/0 .text create_init__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::create_init() {
- // NONMATCHING
+bool daObjSwpush2::Act_c::create_init() {
+ bool rt = true;
+
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::scaleM(scale);
+ cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
+ mpBgw->SetRideCallback(rideCB);
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ init_mtx();
+
+ fopAcM_setCullSizeBox(this, -150.0f * attr().size, 0.0f, -150.0f * attr().size, 150.0f * attr().size, 60.0f, 150.0f * attr().size);
+
+ mShockTimer = 0;
+ mRideType = 0;
+ mPrevRideType = 0;
+ mRideTimer = 0;
+ mPushFlag = false;
+ mIsPlayerRideHeavy = false;
+ mPrevPlayerRideHeavy = false;
+ mHeavyRideTimer = 0;
+ mHeavyPushFlag = false;
+
+ u8 temp_r26 = cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_REV_SW_e) != 0;
+ u8 temp_r28 = cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x10_e) != 0;
+ u8 temp_r25 = cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x20_e) != 0;
+
+ bool is_sw = is_switch();
+ bool is_sw2 = is_switch2();
+ if ((temp_r26 || (!is_sw && !temp_r28) || (is_sw && temp_r28)) && (!temp_r25 || !is_sw2)) {
+ field_0x5e8 = 1.0f;
+ mode_upper_init();
+ } else {
+ field_0x5e8 = -1.0f;
+ mode_lower_init();
+ }
+
+ mEventIdx = dComIfGp_getEventManager().getEventIdx(this, prm_get_evId());
+ if (dComIfG_Bgsp().Regist(mpBgw, this)) {
+ rt = false;
+ }
+
+ return rt;
}
/* 80CFE8CC-80CFE928 0008AC 005C+00 1/1 0/0 0/0 .text create_res_load__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::create_res_load() {
- // NONMATCHING
+int daObjSwpush2::Act_c::create_res_load() {
+ int phase_state;
+ if (attr().arcname != NULL) {
+ phase_state = dComIfG_resLoad(&mPhase, attr().arcname);
+ } else {
+ phase_state = cPhs_COMPLEATE_e;
+ }
+
+ if (phase_state != cPhs_COMPLEATE_e) {
+ return phase_state;
+ }
+
+ return cPhs_COMPLEATE_e;
}
/* 80CFE928-80CFEA3C 000908 0114+00 1/1 0/0 0/0 .text Mthd_Create__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::Mthd_Create() {
- // NONMATCHING
+int daObjSwpush2::Act_c::Mthd_Create() {
+ fopAcM_ct(this, daObjSwpush2::Act_c);
+
+ prmZ_init();
+ mType = prm_get_type();
+
+ int phase_state = create_res_load();
+ if (phase_state == cPhs_COMPLEATE_e) {
+ scale.x *= attr().size;
+ scale.z *= attr().size;
+
+ if (!fopAcM_entrySolidHeap(this, solidHeapCB, attr().heap_size)) {
+ return cPhs_ERROR_e;
+ }
+
+ if (!create_init()) {
+ return cPhs_ERROR_e;
+ }
+
+ demo_non_init();
+
+ #if DEBUG
+ M_hio.ct();
+ #endif
+ }
+
+ return phase_state;
}
/* 80CFEA3C-80CFEAB4 000A1C 0078+00 1/1 0/0 0/0 .text Mthd_Delete__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::Mthd_Delete() {
- // NONMATCHING
-}
+int daObjSwpush2::Act_c::Mthd_Delete() {
+ if (mpBgw != NULL && mpBgw->ChkUsed()) {
+ if (dComIfG_Bgsp().Release(mpBgw)) {
+ OS_REPORT_ERROR("Release Error(%s %d)\n", __FILE__, 683);
+ }
+ }
+
+ dComIfG_resDelete(&mPhase, attr().arcname);
-/* ############################################################################################## */
-/* 80CFFCF8-80CFFCFC 000104 0004+00 1/2 0/0 0/0 .rodata @4012 */
-SECTION_RODATA static f32 const lit_4012 = -10.0f;
-COMPILER_STRIP_GATE(0x80CFFCF8, &lit_4012);
+ #if DEBUG
+ M_hio.dt();
+ #endif
+ return 1;
+}
/* 80CFEAB4-80CFEB3C 000A94 0088+00 2/2 0/0 0/0 .text set_mtx__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::set_mtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, mTopPos + (-10.0f + current.pos.y), current.pos.z);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
+
+ mDoMtx_stack_c::scaleM(scale);
+ cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80CFEB3C-80CFEB78 000B1C 003C+00 1/1 0/0 0/0 .text init_mtx__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::init_mtx() {
- // NONMATCHING
+ mpModel->setBaseScale(scale);
+ set_mtx();
}
/* 80CFEB78-80CFEBE4 000B58 006C+00 1/1 0/0 0/0 .text
* rideCB__Q212daObjSwpush25Act_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
-void daObjSwpush2::Act_c::rideCB(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80CFFCFC-80CFFD00 000108 0004+00 0/1 0/0 0/0 .rodata @4039 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4039 = 1.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80CFFCFC, &lit_4039);
-#pragma pop
-
-/* 80CFFD00-80CFFD04 00010C 0004+00 0/1 0/0 0/0 .rodata @4040 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4040 = 1.0f / 50.0f;
-COMPILER_STRIP_GATE(0x80CFFD00, &lit_4040);
-#pragma pop
-
-/* 80CFFD04-80CFFD08 000110 0004+00 0/1 0/0 0/0 .rodata @4041 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4041 = 1.0f / 100.0f;
-COMPILER_STRIP_GATE(0x80CFFD04, &lit_4041);
-#pragma pop
-
-/* 80CFFD08-80CFFD0C 000114 0004+00 0/1 0/0 0/0 .rodata @4042 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4042 = -50.0f;
-COMPILER_STRIP_GATE(0x80CFFD08, &lit_4042);
-#pragma pop
+void daObjSwpush2::Act_c::rideCB(dBgW* i_bgw, fopAc_ac_c* i_this, fopAc_ac_c* i_rideActor) {
+ (void)i_bgw;
+ daObjSwpush2::Act_c* a_this = (daObjSwpush2::Act_c*)i_this;
+
+ if (fopAcM_CheckStatus(i_rideActor, 0x400)) {
+ if (fopAcM_CheckCarryType(i_rideActor, fopAcM_CARRY_TYPE_1)) {
+ a_this->mRideType = 2;
+ } else {
+ a_this->mRideType = 1;
+ }
+
+ bool is_player_ride = fopAcM_GetProfName(i_rideActor) == PROC_ALINK;
+ if (is_player_ride) {
+ a_this->mShockTimer = 4;
+ }
+
+ if (is_player_ride && ((daPy_py_c*)i_rideActor)->checkEquipHeavyBoots()) {
+ a_this->mIsPlayerRideHeavy = true;
+ }
+ }
+}
/* 80CFEBE4-80CFEC4C 000BC4 0068+00 1/1 0/0 0/0 .text calc_top_pos__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::calc_top_pos() {
- // NONMATCHING
+ cLib_addCalc(&field_0x5e8, field_0x5ec, 0.05f, 0.02f, 0.01f);
+ mTopPos = -50.0f * (1.0f - field_0x5e8);
}
/* 80CFEC4C-80CFEDDC 000C2C 0190+00 1/1 0/0 0/0 .text set_push_flag__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::set_push_flag() {
- // NONMATCHING
+ if (mShockTimer != 0) {
+ mShockTimer--;
+ }
+
+ if (mPushFlag) {
+ if (mRideType != 0) {
+ if (mRideType == 2) {
+ mRideTimer = attr().field_0x26;
+ } else {
+ mRideTimer = attr().ride_time;
+ }
+ } else {
+ if (--mRideTimer <= 0) {
+ mPushFlag = false;
+ }
+ }
+ } else if (mRideType != 0) {
+ if (++mRideTimer >= attr().ride_time) {
+ mPushFlag = true;
+ }
+ } else {
+ mRideTimer = 0;
+ }
+
+ if (mHeavyPushFlag) {
+ if (mIsPlayerRideHeavy) {
+ mHeavyRideTimer = attr().heavy_ride_time;
+ } else if (--mHeavyRideTimer <= 0) {
+ mHeavyPushFlag = false;
+ }
+ } else if (mIsPlayerRideHeavy) {
+ if (++mHeavyRideTimer >= attr().heavy_ride_time) {
+ mHeavyPushFlag = true;
+ }
+ } else {
+ mHeavyRideTimer = 0;
+ }
}
/* 80CFEDDC-80CFEDFC 000DBC 0020+00 2/2 0/0 0/0 .text mode_upper_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::mode_upper_init() {
- // NONMATCHING
+ mModeProc = 0;
+ field_0x5df = 0;
+ mPauseDemoTimer = 0;
+ field_0x5ec = 1.0f;
}
/* 80CFEDFC-80CFEF84 000DDC 0188+00 1/0 0/0 0/0 .text mode_upper__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::mode_upper() {
- // NONMATCHING
+ bool do_pause_demo = false;
+ bool do_sw_demo = false;
+ bool is_push_flag = false;
+ f32 var_f31 = 1.0f;
+
+ if (mPushFlag) {
+ if (cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_HEAVY_e)) {
+ if (mHeavyPushFlag) {
+ is_push_flag = true;
+ }
+ } else {
+ is_push_flag = true;
+ }
+ }
+
+ if (mRideType != 0 && mPrevRideType == 0 && mPauseDemoTimer <= 0) {
+ mPauseDemoTimer = 30;
+ do_pause_demo = true;
+ } else if (mPauseDemoTimer > 0) {
+ mPauseDemoTimer--;
+ }
+
+ bool is_sw = is_switch();
+ bool temp_r26 = cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x10_e);
+ if (is_push_flag || (cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x1_e) && ((is_sw && !temp_r26) || (!is_sw && temp_r26)))) {
+ if (is_push_flag) {
+ field_0x5df = 1;
+ }
+ do_sw_demo = true;
+ mode_u_l_init();
+ }
+
+ if (do_sw_demo) {
+ demo_reqSw_init();
+ } else if (do_pause_demo) {
+ demo_reqPause_init();
+ }
}
/* 80CFEF84-80CFEF98 000F64 0014+00 1/1 0/0 0/0 .text mode_u_l_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::mode_u_l_init() {
- // NONMATCHING
+ mModeProc = 1;
+ field_0x5f0 = 12;
}
/* 80CFEF98-80CFF168 000F78 01D0+00 1/0 0/0 0/0 .text mode_u_l__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::mode_u_l() {
- // NONMATCHING
+ if (field_0x5f0 != 0) {
+ field_0x5f0--;
+ if (field_0x5f0 == 0) {
+ mpRunBpk->setPlaySpeed(1.0f);
+ mpRunBtk->setPlaySpeed(1.0f);
+ mpRunBrk->setPlaySpeed(1.0f);
+ field_0x5ec = -1.0f;
+ }
+ }
+
+ if (field_0x5e8 <= -1.0f) {
+ if (field_0x5df != 0) {
+ if (cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_REV_SW_e)) {
+ rev_switch();
+ } else if (cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x10_e)) {
+ off_switch();
+ } else {
+ on_switch();
+ }
+
+ if (mShockTimer != 0) {
+ dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
+ }
+ }
+
+ fopAcM_seStart(this, JA_SE_OBJ_FOOT_SW_ON, 0);
+ mode_lower_init();
+ }
}
/* 80CFF168-80CFF188 001148 0020+00 2/2 0/0 0/0 .text mode_lower_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::mode_lower_init() {
- // NONMATCHING
+ mModeProc = 2;
+ field_0x5df = 0;
+ field_0x5ec = -1.0f;
}
/* 80CFF188-80CFF18C 001168 0004+00 1/0 0/0 0/0 .text mode_lower__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::mode_lower() {
- /* empty function */
-}
+void daObjSwpush2::Act_c::mode_lower() {}
/* 80CFF18C-80CFF24C 00116C 00C0+00 1/0 0/0 0/0 .text mode_l_u__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::mode_l_u() {
- // NONMATCHING
+ if (field_0x5e8 >= 1.0f) {
+ if (field_0x5df != 0) {
+ if (cLib_checkBit<AttrFlag_e>(attr().flags, AttrFlag_UNK_0x10_e)) {
+ on_switch();
+ } else {
+ off_switch();
+ }
+ }
+ mode_upper_init();
+ }
}
/* 80CFF24C-80CFF258 00122C 000C+00 4/4 0/0 0/0 .text demo_non_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_non_init() {
- // NONMATCHING
+ mDemoProc = 0;
}
/* 80CFF258-80CFF25C 001238 0004+00 1/0 0/0 0/0 .text demo_non__Q212daObjSwpush25Act_cFv
*/
-void daObjSwpush2::Act_c::demo_non() {
- /* empty function */
-}
+void daObjSwpush2::Act_c::demo_non() {}
/* 80CFF25C-80CFF2B4 00123C 0058+00 1/1 0/0 0/0 .text demo_reqPause_init__Q212daObjSwpush25Act_cFv
*/
void daObjSwpush2::Act_c::demo_reqPause_init() {
- // NONMATCHING
+ if (mDemoProc == 0) {
+ mDemoProc = 1;
+ fopAcM_orderPotentialEvent(this, 2, 0, 0);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ }
}
/* 80CFF2B4-80CFF2EC 001294 0038+00 2/1 0/0 0/0 .text demo_reqPause__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_reqPause() {
- // NONMATCHING
+ if (eventInfo.checkCommandDemoAccrpt()) {
+ demo_runPause_init(TRUE);
+ } else {
+ demo_non_init();
+ }
}
/* 80CFF2EC-80CFF31C 0012CC 0030+00 2/2 0/0 0/0 .text demo_runPause_init__Q212daObjSwpush25Act_cFi
*/
-void daObjSwpush2::Act_c::demo_runPause_init(int param_0) {
- // NONMATCHING
+void daObjSwpush2::Act_c::demo_runPause_init(BOOL i_setRunTime) {
+ mDemoProc = 2;
+ if (i_setRunTime) {
+ mDemoRunTime = attr().demo_run_time;
+ }
}
/* 80CFF31C-80CFF374 0012FC 0058+00 1/0 0/0 0/0 .text demo_runPause__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_runPause() {
- // NONMATCHING
+ mDemoRunTime--;
+ if (mDemoRunTime <= 0) {
+ dComIfGp_event_reset();
+ demo_non_init();
+ }
}
/* 80CFF374-80CFF3C8 001354 0054+00 1/1 0/0 0/0 .text demo_stop_puase__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_stop_puase() {
- // NONMATCHING
+ if (mDemoProc == 1) {
+ demo_reqPause();
+ }
+
+ if (mDemoProc == 2) {
+ dComIfGp_event_reset();
+ }
}
/* 80CFF3C8-80CFF48C 0013A8 00C4+00 1/1 0/0 0/0 .text demo_reqSw_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_reqSw_init() {
- // NONMATCHING
+ if (dComIfGp_evmng_existence(mEventIdx)) {
+ if (mDemoProc == 0 || mDemoProc == 1 || mDemoProc == 2) {
+ demo_stop_puase();
+ mDemoProc = 3;
+ fopAcM_orderOtherEventId(this, mEventIdx, prm_get_evId(), 0xFFFF, 0, 1);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ }
+ } else {
+ mDemoRunTime = 100;
+ demo_runPause_init(FALSE);
+ }
}
/* 80CFF48C-80CFF500 00146C 0074+00 1/0 0/0 0/0 .text demo_reqSw__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_reqSw() {
- // NONMATCHING
+ if (eventInfo.checkCommandDemoAccrpt()) {
+ demo_runSw_init();
+ } else {
+ fopAcM_orderOtherEventId(this, mEventIdx, prm_get_evId(), 0xFFFF, 0, 1);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ }
}
/* 80CFF500-80CFF50C 0014E0 000C+00 1/1 0/0 0/0 .text demo_runSw_init__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_runSw_init() {
- // NONMATCHING
+ mDemoProc = 4;
}
/* 80CFF50C-80CFF568 0014EC 005C+00 1/0 0/0 0/0 .text demo_runSw__Q212daObjSwpush25Act_cFv */
void daObjSwpush2::Act_c::demo_runSw() {
- // NONMATCHING
+ if (dComIfGp_evmng_endCheck(mEventIdx)) {
+ dComIfGp_event_reset();
+ demo_non_init();
+ }
}
-/* ############################################################################################## */
-/* 80CFFD0C-80CFFD14 000118 0008+00 0/1 0/0 0/0 .rodata @4395 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4395[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CFFD0C, &lit_4395);
-#pragma pop
-
-/* 80CFFD14-80CFFD1C 000120 0008+00 0/1 0/0 0/0 .rodata @4396 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4396[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CFFD14, &lit_4396);
-#pragma pop
-
-/* 80CFFD1C-80CFFD24 000128 0008+00 0/1 0/0 0/0 .rodata @4397 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4397[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CFFD1C, &lit_4397);
-#pragma pop
-
/* 80CFF568-80CFF8FC 001548 0394+00 1/1 0/0 0/0 .text Mthd_Execute__Q212daObjSwpush25Act_cFv */
-void daObjSwpush2::Act_c::Mthd_Execute() {
- // NONMATCHING
+int daObjSwpush2::Act_c::Mthd_Execute() {
+ static void (daObjSwpush2::Act_c::*demo_proc[])() = {
+ &daObjSwpush2::Act_c::demo_non,
+ &daObjSwpush2::Act_c::demo_reqPause,
+ &daObjSwpush2::Act_c::demo_runPause,
+ &daObjSwpush2::Act_c::demo_reqSw,
+ &daObjSwpush2::Act_c::demo_runSw,
+ };
+
+ (this->*demo_proc[mDemoProc])();
+ set_push_flag();
+
+ static void (daObjSwpush2::Act_c::*mode_proc[])() = {
+ &daObjSwpush2::Act_c::mode_upper,
+ &daObjSwpush2::Act_c::mode_u_l,
+ &daObjSwpush2::Act_c::mode_lower,
+ &daObjSwpush2::Act_c::mode_l_u,
+ };
+
+ (this->*mode_proc[mModeProc])();
+ calc_top_pos();
+
+ mpNmlBrk->play();
+ mpNmlBtk->play();
+ mpOnBtk->play();
+ mpRunBpk->play();
+ mpRunBrk->play();
+ mpRunBtk->play();
+
+ if (!is_switch()) {
+ if (daPy_getPlayerActorClass()->current.pos.abs(current.pos) < attr().effect_distance) {
+ mpOnBtk->setPlaySpeed(1.0f);
+ } else {
+ mpOnBtk->setPlaySpeed(-1.0f);
+ }
+ }
+
+ mPrevRideType = mRideType != 0;
+ mPrevPlayerRideHeavy = mIsPlayerRideHeavy;
+ mRideType = 0;
+ mIsPlayerRideHeavy = false;
+
+ set_mtx();
+ mpBgw->Move();
+
+ eyePos.x = current.pos.x;
+ eyePos.y = (current.pos.y + mTopPos) - -10.0f;
+ eyePos.z = current.pos.z;
+ return 1;
}
/* 80CFF8FC-80CFFB50 0018DC 0254+00 1/1 0/0 0/0 .text Mthd_Draw__Q212daObjSwpush25Act_cFv
*/
-void daObjSwpush2::Act_c::Mthd_Draw() {
- // NONMATCHING
+int daObjSwpush2::Act_c::Mthd_Draw() {
+ g_env_light.settingTevStruct(16, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+
+ mpNmlBrk->entry(mpModel->getModelData());
+ mpNmlBtk->entry(mpModel->getModelData());
+
+ if (mpOnBtk->isStop() && mpOnBtk->getFrame() != 0.0f) {
+ mpRunBtk->entry(mpModel->getModelData());
+ mpRunBpk->entry(mpModel->getModelData());
+ mpRunBrk->entry(mpModel->getModelData());
+ } else {
+ mpOnBtk->entry(mpModel->getModelData());
+ }
+
+ dComIfGd_setListBG();
+ mDoExt_modelUpdateDL(mpModel);
+ dComIfGd_setList();
+
+ mpNmlBrk->remove(mpModel->getModelData());
+ mpNmlBtk->remove(mpModel->getModelData());
+
+ if (mpOnBtk->isStop() && mpOnBtk->getFrame() != 0.0f) {
+ mpRunBtk->remove(mpModel->getModelData());
+ mpRunBpk->remove(mpModel->getModelData());
+ mpRunBrk->remove(mpModel->getModelData());
+ } else {
+ mpOnBtk->remove(mpModel->getModelData());
+ }
+
+ return 1;
}
+namespace daObjSwpush2 {
+namespace {
/* 80CFFB50-80CFFB70 001B30 0020+00 1/0 0/0 0/0 .text
* Mthd_Create__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@FPv */
-static void func_80CFFB50() {
- // NONMATCHING
+int Mthd_Create(void* i_this) {
+ return ((Act_c*)i_this)->Mthd_Create();
}
/* 80CFFB70-80CFFB90 001B50 0020+00 1/0 0/0 0/0 .text
* Mthd_Delete__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@FPv */
-static void func_80CFFB70() {
- // NONMATCHING
+int Mthd_Delete(void* i_this) {
+ return ((Act_c*)i_this)->Mthd_Delete();
}
/* 80CFFB90-80CFFBB0 001B70 0020+00 1/0 0/0 0/0 .text
* Mthd_Execute__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@FPv */
-static void func_80CFFB90() {
- // NONMATCHING
+int Mthd_Execute(void* i_this) {
+ return ((Act_c*)i_this)->Mthd_Execute();
}
/* 80CFFBB0-80CFFBD0 001B90 0020+00 1/0 0/0 0/0 .text
* Mthd_Draw__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@FPv */
-static void func_80CFFBB0() {
- // NONMATCHING
+int Mthd_Draw(void* i_this) {
+ return ((Act_c*)i_this)->Mthd_Draw();
}
-/* 80CFFBD0-80CFFBEC 001BB0 001C+00 8/8 0/0 0/0 .text
- * PrmAbstract<Q312daObjSwpush25Act_c5Prm_e>__5daObjFPC10fopAc_ac_cQ312daObjSwpush25Act_c5Prm_eQ312daObjSwpush25Act_c5Prm_e
- */
-extern "C" void func_80CFFBD0(void* _this, fopAc_ac_c const* param_0,
- daObjSwpush2::Act_c::Prm_e param_1,
- daObjSwpush2::Act_c::Prm_e param_2) {
- // NONMATCHING
+/* 80CFFE98-80CFFEB8 -00001 0020+00 1/0 0/0 0/0 .data
+ * Mthd_Table__Q212daObjSwpush229@unnamed@d_a_obj_swpush2_cpp@ */
+actor_method_class Mthd_Table = {
+ (process_method_func)Mthd_Create,
+ (process_method_func)Mthd_Delete,
+ (process_method_func)Mthd_Execute,
+ NULL,
+ (process_method_func)Mthd_Draw,
+};
+}
}
-/* 80CFFD24-80CFFD24 000130 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80CFFEB8-80CFFEE8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Swpush2 */
+extern actor_process_profile_definition g_profile_Obj_Swpush2 = {
+ fpcLy_CURRENT_e, // mLayerID
+ 2, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Swpush2, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjSwpush2::Act_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 12, // mPriority
+ &daObjSwpush2::Mthd_Table, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_taFence.cpp b/src/d/actor/d_a_obj_taFence.cpp
index 077596f2c5..e89b67e90d 100644
--- a/src/d/actor/d_a_obj_taFence.cpp
+++ b/src/d/actor/d_a_obj_taFence.cpp
@@ -6,597 +6,456 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_taFence.h"
-#include "dol2asm.h"
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__15daTaFence_HIO_cFv();
-extern "C" void __dt__14mDoHIO_entry_cFv();
-extern "C" void setBaseMtx__11daTaFence_cFv();
-extern "C" void CreateHeap__11daTaFence_cFv();
-extern "C" void create__11daTaFence_cFv();
-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 Execute__11daTaFence_cFPPA3_A4_f();
-extern "C" void fenceProc__11daTaFence_cFv();
-extern "C" void init_modeWait__11daTaFence_cFv();
-extern "C" void modeWait__11daTaFence_cFv();
-extern "C" void init_modeMoveInit__11daTaFence_cFv();
-extern "C" void modeMoveInit__11daTaFence_cFv();
-extern "C" void init_modeMove__11daTaFence_cFv();
-extern "C" void modeMove__11daTaFence_cFv();
-extern "C" void init_modeMoveEnd__11daTaFence_cFv();
-extern "C" void modeMoveEnd__11daTaFence_cFv();
-extern "C" void Draw__11daTaFence_cFv();
-extern "C" void Delete__11daTaFence_cFv();
-extern "C" static void daTaFence_Draw__FP11daTaFence_c();
-extern "C" static void daTaFence_Execute__FP11daTaFence_c();
-extern "C" static void daTaFence_Delete__FP11daTaFence_c();
-extern "C" static void daTaFence_Create__FP10fopAc_ac_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__15daTaFence_HIO_cFv();
-extern "C" void __sinit_d_a_obj_taFence_cpp();
-extern "C" u8 const mCcDObjInfo__11daTaFence_c[48];
-extern "C" extern char const* const d_a_obj_taFence__stringBase0;
-extern "C" u8 mCcDCyl__11daTaFence_c[68];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void mDoMtx_YrotS__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 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 dComIfGp_getReverb__Fi();
-extern "C" void dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz();
-extern "C" void onSwitch__10dSv_info_cFii();
-extern "C" void offSwitch__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 Release__4cBgSFP9dBgW_Base();
-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 __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 ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitGObj__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 __mi__4cXyzCFRC3Vec();
-extern "C" void ChkUsed__9cBgW_BgIdCFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void cLib_addCalc__FPfffff();
-extern "C" void cLib_addCalcAngleS__FPsssss();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __dl__FPv();
-extern "C" void __construct_array();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_25();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_25();
-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 sincosTable___5JMath[65536];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80D060E0-80D060E4 000000 0004+00 6/6 0/0 0/0 .rodata @3651 */
-SECTION_RODATA static u8 const lit_3651[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
+#include "d/actor/d_a_player.h"
+#include "d/d_lib.h"
+#include "d/d_s_play.h"
+
+class daTaFence_HIO_c : public mDoHIO_entry_c {
+public:
+ /* 80D04E6C */ daTaFence_HIO_c();
+ /* 80D06000 */ virtual ~daTaFence_HIO_c() {}
+
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ f32 fall_init_speed;
+ /* 0x08 */ f32 fall_max_speed;
+ /* 0x0C */ u8 vibration;
+ /* 0x10 */ f32 pre_fall_shake_intensity;
+ /* 0x14 */ f32 pre_fall_shakeYZ_ampZ;
+ /* 0x18 */ f32 pre_fall_shakeYZ_ampY;
+ /* 0x1C */ f32 pre_fall_shakeYZ_damp;
+ /* 0x20 */ f32 pre_fall_shakeYZ_max_damp;
+ /* 0x24 */ f32 pre_fall_shakeYZ_min_damp;
+ /* 0x28 */ f32 pre_fall_shakeXZ_ampX;
+ /* 0x2C */ f32 pre_fall_shakeXZ_ampZ;
+ /* 0x30 */ f32 pre_fall_shakeXZ_intensity;
+ /* 0x34 */ f32 pre_fall_shakeXZ_damp;
+ /* 0x38 */ f32 pre_fall_shakeXZ_max_damp;
+ /* 0x3C */ f32 pre_fall_shakeXZ_min_damp;
+ /* 0x40 */ f32 sword_hit_shakeYZ_intensity;
+ /* 0x44 */ f32 sword_hit_shakeYZ_ampZ;
+ /* 0x48 */ f32 sword_hit_shakeYZ_ampY;
+ /* 0x4C */ f32 sword_hit_shakeYZ_damp;
+ /* 0x50 */ f32 sword_hit_shakeYZ_max_damp;
+ /* 0x54 */ f32 sword_hit_shakeYZ_min_damp;
+ /* 0x58 */ f32 sword_hit_shakeXZ_ampX;
+ /* 0x5C */ f32 sword_hit_shakeXZ_ampZ;
+ /* 0x60 */ f32 sword_hit_shakeXZ_intensity;
+ /* 0x64 */ f32 sword_hit_shakeXZ_damp;
+ /* 0x68 */ f32 sword_hit_shakeXZ_max_damp;
+ /* 0x6C */ f32 sword_hit_shakeXZ_min_damp;
+ /* 0x70 */ u8 collapse_time;
+ /* 0x71 */ u8 shake_time;
};
-COMPILER_STRIP_GATE(0x80D060E0, &lit_3651);
-
-/* 80D060E4-80D060E8 000004 0004+00 0/1 0/0 0/0 .rodata @3652 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3652 = 13.0f;
-COMPILER_STRIP_GATE(0x80D060E4, &lit_3652);
-#pragma pop
-
-/* 80D060E8-80D060EC 000008 0004+00 0/1 0/0 0/0 .rodata @3653 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3653 = 200.0f;
-COMPILER_STRIP_GATE(0x80D060E8, &lit_3653);
-#pragma pop
-
-/* 80D060EC-80D060F0 00000C 0004+00 0/1 0/0 0/0 .rodata @3654 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3654 = 90.0f;
-COMPILER_STRIP_GATE(0x80D060EC, &lit_3654);
-#pragma pop
-
-/* 80D060F0-80D060F4 000010 0004+00 0/1 0/0 0/0 .rodata @3655 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3655 = 45.0f;
-COMPILER_STRIP_GATE(0x80D060F0, &lit_3655);
-#pragma pop
-
-/* 80D060F4-80D060F8 000014 0004+00 0/1 0/0 0/0 .rodata @3656 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3656 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D060F4, &lit_3656);
-#pragma pop
-
-/* 80D060F8-80D060FC 000018 0004+00 0/1 0/0 0/0 .rodata @3657 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3657 = 10.0f;
-COMPILER_STRIP_GATE(0x80D060F8, &lit_3657);
-#pragma pop
-
-/* 80D060FC-80D06100 00001C 0004+00 1/3 0/0 0/0 .rodata @3658 */
-SECTION_RODATA static f32 const lit_3658 = 1.0f;
-COMPILER_STRIP_GATE(0x80D060FC, &lit_3658);
-
-/* 80D06100-80D06104 000020 0004+00 0/1 0/0 0/0 .rodata @3659 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3659 = 100.0f;
-COMPILER_STRIP_GATE(0x80D06100, &lit_3659);
-#pragma pop
-
-/* 80D06104-80D06108 000024 0004+00 0/1 0/0 0/0 .rodata @3660 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3660 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D06104, &lit_3660);
-#pragma pop
-
-/* 80D06108-80D0610C 000028 0004+00 0/1 0/0 0/0 .rodata @3661 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3661 = 1.5f;
-COMPILER_STRIP_GATE(0x80D06108, &lit_3661);
-#pragma pop
-
-/* 80D0610C-80D06110 00002C 0004+00 0/1 0/0 0/0 .rodata @3662 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3662 = 12.0f;
-COMPILER_STRIP_GATE(0x80D0610C, &lit_3662);
-#pragma pop
-
-/* 80D06110-80D06114 000030 0004+00 0/2 0/0 0/0 .rodata @3663 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3663 = 0.5f;
-COMPILER_STRIP_GATE(0x80D06110, &lit_3663);
-#pragma pop
-/* 80D061C4-80D06208 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__11daTaFence_c */
-SECTION_DATA u8 daTaFence_c::mCcDCyl[68] = {
- 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, 0x00, 0x00, 0x00, 0x00,
-};
+/* 80D0633C-80D063B0 000014 0074+00 5/5 0/0 0/0 .bss l_HIO */
+static daTaFence_HIO_c l_HIO;
-/* 80D06208-80D06214 -00001 000C+00 0/1 0/0 0/0 .data @3870 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3870[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWait__11daTaFence_cFv,
-};
-#pragma pop
-
-/* 80D06214-80D06220 -00001 000C+00 0/1 0/0 0/0 .data @3871 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3871[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMoveInit__11daTaFence_cFv,
-};
-#pragma pop
-
-/* 80D06220-80D0622C -00001 000C+00 0/1 0/0 0/0 .data @3872 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3872[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMove__11daTaFence_cFv,
-};
-#pragma pop
-
-/* 80D0622C-80D06238 -00001 000C+00 0/1 0/0 0/0 .data @3873 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3873[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeMoveEnd__11daTaFence_cFv,
-};
-#pragma pop
-
-/* 80D06238-80D06268 000094 0030+00 0/1 0/0 0/0 .data mode_proc$3869 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 mode_proc[48] = {
- 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,
-};
-#pragma pop
+/* 80D04E6C-80D04F44 0000EC 00D8+00 1/1 0/0 0/0 .text __ct__15daTaFence_HIO_cFv */
+daTaFence_HIO_c::daTaFence_HIO_c() {
+ fall_init_speed = 0.0f;
+ fall_max_speed = 13.0f;
+ vibration = 4;
+
+ pre_fall_shake_intensity = 200.0f;
+ pre_fall_shakeYZ_ampZ = 90.0f;
+ pre_fall_shakeYZ_ampY = 45.0f;
+ pre_fall_shakeYZ_damp = 0.1f;
+ pre_fall_shakeYZ_max_damp = 10.0f;
+ pre_fall_shakeYZ_min_damp = 1.0f;
+ pre_fall_shakeXZ_intensity = 10.0f;
+ pre_fall_shakeXZ_ampX = 90.0f;
+ pre_fall_shakeXZ_ampZ = 45.0f;
+ pre_fall_shakeXZ_damp = 0.1f;
+ pre_fall_shakeXZ_max_damp = 10.0f;
+ pre_fall_shakeXZ_min_damp = 1.0f;
+
+ sword_hit_shakeYZ_intensity = 100.0f;
+ sword_hit_shakeYZ_ampZ = 90.0f;
+ sword_hit_shakeYZ_ampY = 45.0f;
+ sword_hit_shakeYZ_damp = 0.3f;
+ sword_hit_shakeYZ_max_damp = 1.5f;
+ sword_hit_shakeYZ_min_damp = 1.0f;
+ sword_hit_shakeXZ_intensity = 12.0f;
+ sword_hit_shakeXZ_ampX = 90.0f;
+ sword_hit_shakeXZ_ampZ = 45.0f;
+ sword_hit_shakeXZ_damp = 0.3f;
+ sword_hit_shakeXZ_max_damp = 1.0f;
+ sword_hit_shakeXZ_min_damp = 0.5f;
+
+ collapse_time = 10;
+ shake_time = 27;
+}
-/* 80D06268-80D06288 -00001 0020+00 1/0 0/0 0/0 .data l_daTaFence_Method */
-static actor_method_class l_daTaFence_Method = {
- (process_method_func)daTaFence_Create__FP10fopAc_ac_c,
- (process_method_func)daTaFence_Delete__FP11daTaFence_c,
- (process_method_func)daTaFence_Execute__FP11daTaFence_c,
- 0,
- (process_method_func)daTaFence_Draw__FP11daTaFence_c,
-};
+/* 80D04F8C-80D0503C 00020C 00B0+00 2/2 0/0 0/0 .text setBaseMtx__11daTaFence_cFv */
+void daTaFence_c::setBaseMtx() {
+ 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);
+ mDoMtx_stack_c::ZXYrotM(mShakeYZ.x, mShakeYZ.y, mShakeYZ.z);
+ mDoMtx_stack_c::transM(mShakeXZ.x, mShakeXZ.y, mShakeXZ.z);
+ mpModel->setBaseScale(scale);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
+}
-/* 80D06288-80D062B8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TaFence */
-extern actor_process_profile_definition g_profile_Obj_TaFence = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_TaFence, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daTaFence_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 505, // mPriority
- &l_daTaFence_Method, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+/* 80D0503C-80D050A8 0002BC 006C+00 1/0 0/0 0/0 .text CreateHeap__11daTaFence_cFv */
+int daTaFence_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("P_Mfence", 4);
+ JUT_ASSERT(339, modelData != NULL);
-/* 80D062B8-80D062C4 000114 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,
-};
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
-/* 80D062C4-80D062D0 000120 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,
-};
+ return 1;
+}
-/* 80D062D0-80D062DC 00012C 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,
+/* 80D06114-80D06144 000034 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__11daTaFence_c */
+const dCcD_SrcGObjInf daTaFence_c::mCcDObjInfo = {
+ {0, {{0x0, 0x0, 0x0}, {0x400032, 0x11}, {0x0}}},
+ {dCcD_SE_SWORD, 0, 0, 0, 0},
+ {dCcD_SE_STONE, 0, 0, 0, 0},
+ {0},
};
-/* 80D062DC-80D062E8 000138 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,
+/* 80D061C4-80D06208 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__11daTaFence_c */
+dCcD_SrcCyl daTaFence_c::mCcDCyl = {
+ daTaFence_c::mCcDObjInfo,
+ {
+ {0.0f, 0.0f, 0.0f}, // mCenter
+ 0.0f, // mRadius
+ 0.0f // mHeight
+ } // mCyl
};
-/* 80D062E8-80D06310 000144 0028+00 1/1 0/0 0/0 .data __vt__11daTaFence_c */
-SECTION_DATA extern void* __vt__11daTaFence_c[10] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__11daTaFence_cFv,
- (void*)Create__16dBgS_MoveBgActorFv,
- (void*)Execute__11daTaFence_cFPPA3_A4_f,
- (void*)Draw__11daTaFence_cFv,
- (void*)Delete__11daTaFence_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
-};
+/* 80D050A8-80D05314 000328 026C+00 1/1 0/0 0/0 .text create__11daTaFence_cFv */
+int daTaFence_c::create() {
+ fopAcM_ct(this, daTaFence_c);
-/* 80D06310-80D0631C 00016C 000C+00 2/2 0/0 0/0 .data __vt__15daTaFence_HIO_c */
-SECTION_DATA extern void* __vt__15daTaFence_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daTaFence_HIO_cFv,
-};
+ int phase_state = dComIfG_resLoad(&mPhase, "P_Mfence");
+ if (phase_state == cPhs_COMPLEATE_e) {
+ if (MoveBGCreate("P_Mfence", 7, dBgS_MoveBGProc_TypicalRotY, 0x1500, NULL) == cPhs_ERROR_e) {
+ return cPhs_ERROR_e;
+ }
-/* 80D0631C-80D06328 000178 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,
-};
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mpModel->getModelData());
-/* 80D04E6C-80D04F44 0000EC 00D8+00 1/1 0/0 0/0 .text __ct__15daTaFence_HIO_cFv */
-daTaFence_HIO_c::daTaFence_HIO_c() {
- // NONMATCHING
-}
+ mCcStts.Init(0xFF, 0xFF, this);
-/* 80D04F44-80D04F8C 0001C4 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
-}
+ if (fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xFF)) {
+ if (fopAcM_isSwitch(this, (fopAcM_GetParam(this) & 0xFF00) >> 8)) {
+ shape_angle.x += 0x8000;
+ }
-/* 80D04F8C-80D0503C 00020C 00B0+00 2/2 0/0 0/0 .text setBaseMtx__11daTaFence_cFv */
-void daTaFence_c::setBaseMtx() {
- // NONMATCHING
-}
+ if (mpBgW->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
-/* ############################################################################################## */
-/* 80D06198-80D06198 0000B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80D06198 = "P_Mfence";
-#pragma pop
+ init_modeMoveEnd();
+ } else {
+ shape_angle.x += 0x4000;
-/* 80D0503C-80D050A8 0002BC 006C+00 1/0 0/0 0/0 .text CreateHeap__11daTaFence_cFv */
-void daTaFence_c::CreateHeap() {
- // NONMATCHING
-}
+ for (int i = 0; i < 11; i++) {
+ mCyl[i].Set(mCcDCyl);
+ mCyl[i].SetStts(&mCcStts);
+ }
-/* 80D050A8-80D05314 000328 026C+00 1/1 0/0 0/0 .text create__11daTaFence_cFv */
-void daTaFence_c::create() {
- // NONMATCHING
-}
+ mShakeYZ.x = 0;
+ mShakeYZ.y = 0;
+ mShakeYZ.z = 0;
-/* 80D05314-80D053E0 000594 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_CylFv */
-// dCcD_Cyl::~dCcD_Cyl() {
-extern "C" void __dt__8dCcD_CylFv() {
- // NONMATCHING
-}
+ mShakeYZ_intensity = 0.0f;
-/* 80D053E0-80D05464 000660 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */
-// dCcD_Cyl::dCcD_Cyl() {
-extern "C" void __ct__8dCcD_CylFv() {
- // NONMATCHING
-}
+ mShakeXZ.x = 0.0f;
+ mShakeXZ.y = 0.0f;
+ mShakeXZ.z = 0.0f;
-/* 80D05464-80D054AC 0006E4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
+ mShakeXZ_intensity = 0.0f;
+ mShakeYZ_ampY = 0.0f;
+ mShakeYZ_ampZ = 0.0f;
+ mShakeYZ_damp = 0.0f;
+ mShakeYZ_maxDamp = 0.0f;
+ mShakeYZ_minDamp = 0.0f;
-/* 80D054AC-80D054F4 00072C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
+ mShakeXZ_ampX = 0.0f;
+ mShakeXZ_ampZ = 0.0f;
+ mShakeXZ_damp = 0.0f;
+ mShakeXZ_maxDamp = 0.0f;
+ mShakeXZ_minDamp = 0.0f;
+
+ mCounter = 0;
+ mCollapseTimer = 0;
+ mShakeTimer = 0;
+
+ init_modeWait();
+ }
+
+ setBaseMtx();
-/* 80D054F4-80D05550 000774 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
+ #if DEBUG
+ l_HIO.entryHIO("体当たり金網");
+ #endif
+ }
+
+ return phase_state;
}
/* 80D05550-80D055A0 0007D0 0050+00 1/0 0/0 0/0 .text Execute__11daTaFence_cFPPA3_A4_f */
-void daTaFence_c::Execute(Mtx** param_0) {
- // NONMATCHING
+int daTaFence_c::Execute(Mtx** param_0) {
+ fenceProc();
+ *param_0 = &mpModel->getBaseTRMtx();
+ setBaseMtx();
+ return 1;
}
-/* ############################################################################################## */
-/* 80D06114-80D06144 000034 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__11daTaFence_c */
-SECTION_RODATA u8 const daTaFence_c::mCcDObjInfo[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x00, 0x32, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D06114, &daTaFence_c::mCcDObjInfo);
-
/* 80D06144-80D06174 000064 0030+00 0/1 0/0 0/0 .rodata l_check_area */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_check_area[48] = {
- 0xC3, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, 0xC3, 0x61, 0x00, 0x00,
- 0x43, 0x61, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, 0x43, 0x61, 0x00, 0x00, 0x43, 0x61, 0x00, 0x00,
- 0x42, 0xC8, 0x00, 0x00, 0x43, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
+static const Vec l_check_area[4] = {
+ {-225.0f, 0.0f, -100.0f},
+ {-225.0f, 225.0f, -100.0f},
+ {225.0f, 225.0f, 100.0f},
+ {225.0f, 0.0f, 100.0f},
};
-COMPILER_STRIP_GATE(0x80D06144, &l_check_area);
-#pragma pop
-/* 80D06174-80D06178 000094 0004+00 2/2 0/0 0/0 .rodata @3903 */
-SECTION_RODATA static u32 const lit_3903 = 0x43360B61;
-COMPILER_STRIP_GATE(0x80D06174, &lit_3903);
+/* 80D055A0-80D057C4 000820 0224+00 1/1 0/0 0/0 .text fenceProc__11daTaFence_cFv */
+void daTaFence_c::fenceProc() {
+ static void (daTaFence_c::*mode_proc[])() = {
+ &daTaFence_c::modeWait,
+ &daTaFence_c::modeMoveInit,
+ &daTaFence_c::modeMove,
+ &daTaFence_c::modeMoveEnd,
+ };
-/* 80D06330-80D0633C 000008 000C+00 1/1 0/0 0/0 .bss @3645 */
-static u8 lit_3645[12];
+ (this->*mode_proc[mMode])();
-/* 80D0633C-80D063B0 000014 0074+00 5/5 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[116];
+ mShakeYZ.z = mShakeYZ_intensity * cM_scos(mCounter * (s16)cM_deg2s(mShakeYZ_ampY));
+ mShakeYZ.y = mShakeYZ_intensity * cM_ssin(mCounter * (s16)cM_deg2s(mShakeYZ_ampZ));
+ cLib_addCalc(&mShakeYZ_intensity, 0.0f, mShakeYZ_damp, mShakeYZ_maxDamp, mShakeYZ_minDamp);
-/* 80D063B0-80D063B4 000088 0004+00 1/1 0/0 0/0 .bss None */
-static u8 data_80D063B0[4];
+ mShakeXZ.x = mShakeXZ_intensity * cM_scos(mCounter * (s16)cM_deg2s(mShakeXZ_ampX));
+ mShakeXZ.y = mShakeXZ_intensity * cM_ssin(mCounter * (s16)cM_deg2s(mShakeXZ_ampZ));
+ cLib_addCalc(&mShakeXZ_intensity, 0.0f, mShakeXZ_damp, mShakeXZ_maxDamp, mShakeXZ_minDamp);
-/* 80D055A0-80D057C4 000820 0224+00 1/1 0/0 0/0 .text fenceProc__11daTaFence_cFv */
-void daTaFence_c::fenceProc() {
- // NONMATCHING
+ mCounter++;
}
/* 80D057C4-80D057D0 000A44 000C+00 1/1 0/0 0/0 .text init_modeWait__11daTaFence_cFv */
void daTaFence_c::init_modeWait() {
- // NONMATCHING
+ mMode = 0;
}
-/* ############################################################################################## */
-/* 80D06178-80D0617C 000098 0004+00 0/1 0/0 0/0 .rodata @3963 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3963 = 25.0f;
-COMPILER_STRIP_GATE(0x80D06178, &lit_3963);
-#pragma pop
-
-/* 80D0617C-80D06180 00009C 0004+00 0/1 0/0 0/0 .rodata @3964 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3964 = 250.0f;
-COMPILER_STRIP_GATE(0x80D0617C, &lit_3964);
-#pragma pop
-
-/* 80D06180-80D06184 0000A0 0004+00 0/1 0/0 0/0 .rodata @3965 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3965 = 41.0f;
-COMPILER_STRIP_GATE(0x80D06180, &lit_3965);
-#pragma pop
-
-/* 80D06184-80D06188 0000A4 0004+00 0/1 0/0 0/0 .rodata @3966 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3966 = 205.0f;
-COMPILER_STRIP_GATE(0x80D06184, &lit_3966);
-#pragma pop
-
-/* 80D06188-80D06190 0000A8 0008+00 0/1 0/0 0/0 .rodata @3968 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3968[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D06188, &lit_3968);
-#pragma pop
-
/* 80D057D0-80D05A54 000A50 0284+00 1/0 0/0 0/0 .text modeWait__11daTaFence_cFv */
void daTaFence_c::modeWait() {
- // NONMATCHING
+ daPy_py_c* player = dComIfGp_getLinkPlayer();
+ if (player->checkFrontRollCrash()) {
+ cXyz sp2C;
+ cXyz sp20;
+ sp2C = l_check_area[0];
+ sp20 = l_check_area[2];
+
+ BOOL pl_in_area = dLib_checkActorInRectangle(player, this, &sp2C, &sp20);
+ if (pl_in_area) {
+ init_modeMoveInit();
+ }
+ }
+
+ for (int i = 0; i < 11; i++) {
+ if (mCyl[i].ChkTgHit()) {
+ dCcD_GObjInf* tg_hitgobj = mCyl[i].GetTgHitGObj();
+
+ if (tg_hitgobj->GetAtType() & (AT_TYPE_IRON_BALL | AT_TYPE_BOMB | AT_TYPE_SHIELD_ATTACK)) {
+ init_modeMoveInit();
+ } else if (tg_hitgobj->ChkAtType(AT_TYPE_NORMAL_SWORD) && mShakeTimer == 0) {
+ mShakeYZ_intensity = l_HIO.sword_hit_shakeYZ_intensity;
+ mShakeYZ_ampY = l_HIO.sword_hit_shakeYZ_ampY;
+ mShakeYZ_ampZ = l_HIO.sword_hit_shakeYZ_ampZ;
+ mShakeYZ_damp = l_HIO.sword_hit_shakeYZ_damp;
+ mShakeYZ_maxDamp = l_HIO.sword_hit_shakeYZ_max_damp;
+ mShakeYZ_minDamp = l_HIO.sword_hit_shakeYZ_min_damp;
+
+ mShakeXZ_intensity = l_HIO.sword_hit_shakeXZ_intensity;
+ mShakeXZ_ampX = l_HIO.sword_hit_shakeXZ_ampX;
+ mShakeXZ_ampZ = l_HIO.sword_hit_shakeXZ_ampZ;
+ mShakeXZ_damp = l_HIO.sword_hit_shakeXZ_damp;
+ mShakeXZ_maxDamp = l_HIO.sword_hit_shakeXZ_max_damp;
+ mShakeXZ_minDamp = l_HIO.sword_hit_shakeXZ_min_damp;
+
+ mShakeTimer = l_HIO.shake_time;
+ break;
+ }
+ }
+
+ mCyl[i].ClrTgHit();
+ }
+
+ for (int i = 0; i < 11; i++) {
+ mCyl[i].SetR(25.0f + oREG_F(0));
+ mCyl[i].SetH(250.0f + oREG_F(1));
+
+ cXyz pos(current.pos);
+ pos.x = (pos.x + (i * (41.0f + oREG_F(2)))) - 205.0f;
+ mCyl[i].SetC(pos);
+ dComIfG_Ccsp()->Set(&mCyl[i]);
+ }
+
+ if (mShakeTimer != 0) {
+ mShakeTimer--;
+ }
}
-/* ############################################################################################## */
-/* 80D06190-80D06194 0000B0 0004+00 1/2 0/0 0/0 .rodata @3981 */
-SECTION_RODATA static f32 const lit_3981 = -1.0f;
-COMPILER_STRIP_GATE(0x80D06190, &lit_3981);
-
/* 80D05A54-80D05B5C 000CD4 0108+00 1/1 0/0 0/0 .text init_modeMoveInit__11daTaFence_cFv
*/
void daTaFence_c::init_modeMoveInit() {
- // NONMATCHING
+ if (mCollapseTimer == 0) {
+ mCollapseTimer = l_HIO.collapse_time;
+ }
+
+ mShakeYZ_intensity = l_HIO.pre_fall_shake_intensity;
+ mShakeYZ_ampY = l_HIO.pre_fall_shakeYZ_ampY;
+ mShakeYZ_ampZ = l_HIO.pre_fall_shakeYZ_ampZ;
+ mShakeYZ_damp = l_HIO.pre_fall_shakeYZ_damp;
+ mShakeYZ_maxDamp = l_HIO.pre_fall_shakeYZ_max_damp;
+ mShakeYZ_minDamp = l_HIO.pre_fall_shakeYZ_min_damp;
+
+ mShakeXZ_intensity = l_HIO.pre_fall_shakeXZ_intensity;
+ mShakeXZ_ampX = l_HIO.pre_fall_shakeXZ_ampX;
+ mShakeXZ_ampZ = l_HIO.pre_fall_shakeXZ_ampZ;
+ mShakeXZ_damp = l_HIO.pre_fall_shakeXZ_damp;
+ mShakeXZ_maxDamp = l_HIO.pre_fall_shakeXZ_max_damp;
+ mShakeXZ_minDamp = l_HIO.pre_fall_shakeXZ_min_damp;
+
+ mDoAud_seStart(Z2SE_OBJ_ATK_FENCE_HIT, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ mMode = 1;
}
/* 80D05B5C-80D05B94 000DDC 0038+00 1/0 0/0 0/0 .text modeMoveInit__11daTaFence_cFv */
void daTaFence_c::modeMoveInit() {
- // NONMATCHING
+ if (mCollapseTimer == 0) {
+ init_modeMove();
+ } else {
+ mCollapseTimer--;
+ }
}
/* 80D05B94-80D05CAC 000E14 0118+00 1/1 0/0 0/0 .text init_modeMove__11daTaFence_cFv */
void daTaFence_c::init_modeMove() {
- // NONMATCHING
-}
+ for (int i = 0; i < 11; i++) {
+ mCyl[i].OffCoSetBit();
+ }
+
+ if (mpBgW->ChkUsed()) {
+ int result = dComIfG_Bgsp().Release(mpBgW);
+ }
-/* ############################################################################################## */
-/* 80D06194-80D06198 0000B4 0004+00 1/1 0/0 0/0 .rodata @4028 */
-SECTION_RODATA static f32 const lit_4028 = 30.0f;
-COMPILER_STRIP_GATE(0x80D06194, &lit_4028);
+ mFallSpeed = l_HIO.fall_max_speed;
+
+ fopAcM_SetSpeedF(this, l_HIO.fall_init_speed);
+
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz sp8 = player->current.pos - current.pos;
+ mDoMtx_stack_c::YrotS(-current.angle.y);
+ mDoMtx_stack_c::multVec(&sp8, &sp8);
+
+ if (sp8.z < 0.0f) {
+ field_0x1384 = -0x8000;
+ } else {
+ field_0x1384 = 0;
+ }
+
+ mMode = 2;
+}
/* 80D05CAC-80D05D2C 000F2C 0080+00 1/0 0/0 0/0 .text modeMove__11daTaFence_cFv */
void daTaFence_c::modeMove() {
- // NONMATCHING
+ cLib_chaseF(&speedF, mFallSpeed, mFallSpeed / 30.0f);
+ if (cLib_addCalcAngleS(&shape_angle.x, field_0x1384, 1, (182.04445f * fopAcM_GetSpeedF(this)), 1) == 0) {
+ init_modeMoveEnd();
+ }
}
/* 80D05D2C-80D05E54 000FAC 0128+00 2/2 0/0 0/0 .text init_modeMoveEnd__11daTaFence_cFv
*/
void daTaFence_c::init_modeMoveEnd() {
- // NONMATCHING
+ mDoAud_seStart(Z2SE_OBJ_ATK_FENCE_FALLDOWN, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ dComIfGp_getVibration().StartShock(l_HIO.vibration, 0xF, cXyz(0.0f, 1.0f, 0.0f));
+ fopAcM_onSwitch(this, fopAcM_GetParam(this) & 0xFF);
+
+ if (field_0x1384 == 0) {
+ fopAcM_offSwitch(this, (fopAcM_GetParam(this) & 0xFF00) >> 8);
+ } else {
+ fopAcM_onSwitch(this, (fopAcM_GetParam(this) & 0xFF00) >> 8);
+ }
+
+ mMode = 3;
}
/* 80D05E54-80D05E58 0010D4 0004+00 1/0 0/0 0/0 .text modeMoveEnd__11daTaFence_cFv */
-void daTaFence_c::modeMoveEnd() {
- /* empty function */
-}
+void daTaFence_c::modeMoveEnd() {}
/* 80D05E58-80D05EFC 0010D8 00A4+00 1/0 0/0 0/0 .text Draw__11daTaFence_cFv */
-void daTaFence_c::Draw() {
- // NONMATCHING
+int daTaFence_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;
}
/* 80D05EFC-80D05F2C 00117C 0030+00 1/0 0/0 0/0 .text Delete__11daTaFence_cFv */
-void daTaFence_c::Delete() {
- // NONMATCHING
+int daTaFence_c::Delete() {
+ dComIfG_resDelete(&mPhase, "P_Mfence");
+ #if DEBUG
+ l_HIO.removeHIO();
+ #endif
+ return 1;
}
/* 80D05F2C-80D05F58 0011AC 002C+00 1/0 0/0 0/0 .text daTaFence_Draw__FP11daTaFence_c */
-static void daTaFence_Draw(daTaFence_c* param_0) {
- // NONMATCHING
+static int daTaFence_Draw(daTaFence_c* i_this) {
+ return i_this->MoveBGDraw();
}
/* 80D05F58-80D05F78 0011D8 0020+00 1/0 0/0 0/0 .text daTaFence_Execute__FP11daTaFence_c
*/
-static void daTaFence_Execute(daTaFence_c* param_0) {
- // NONMATCHING
+static int daTaFence_Execute(daTaFence_c* i_this) {
+ return i_this->MoveBGExecute();
}
/* 80D05F78-80D05F98 0011F8 0020+00 1/0 0/0 0/0 .text daTaFence_Delete__FP11daTaFence_c
*/
-static void daTaFence_Delete(daTaFence_c* param_0) {
- // NONMATCHING
+static int daTaFence_Delete(daTaFence_c* i_this) {
+ return i_this->MoveBGDelete();
}
/* 80D05F98-80D05FB8 001218 0020+00 1/0 0/0 0/0 .text daTaFence_Create__FP10fopAc_ac_c */
-static void daTaFence_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
-
-/* 80D05FB8-80D06000 001238 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80D06000-80D0605C 001280 005C+00 2/1 0/0 0/0 .text __dt__15daTaFence_HIO_cFv */
-daTaFence_HIO_c::~daTaFence_HIO_c() {
- // NONMATCHING
-}
-
-/* 80D0605C-80D060CC 0012DC 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_taFence_cpp */
-void __sinit_d_a_obj_taFence_cpp() {
- // NONMATCHING
+static int daTaFence_Create(fopAc_ac_c* i_this) {
+ return ((daTaFence_c*)i_this)->create();
}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80D0605C, __sinit_d_a_obj_taFence_cpp);
-#pragma pop
+/* 80D06268-80D06288 -00001 0020+00 1/0 0/0 0/0 .data l_daTaFence_Method */
+static actor_method_class l_daTaFence_Method = {
+ (process_method_func)daTaFence_Create,
+ (process_method_func)daTaFence_Delete,
+ (process_method_func)daTaFence_Execute,
+ NULL,
+ (process_method_func)daTaFence_Draw,
+};
-/* 80D06198-80D06198 0000B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80D06288-80D062B8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TaFence */
+extern actor_process_profile_definition g_profile_Obj_TaFence = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_TaFence, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daTaFence_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 505, // mPriority
+ &l_daTaFence_Method, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};