diff --git a/configure.py b/configure.py index a166379b754..996b49cae36 100755 --- a/configure.py +++ b/configure.py @@ -2027,7 +2027,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_kjgjs"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_kkanban"), ActorRel(NonMatching, "d_a_obj_knBullet"), - ActorRel(NonMatching, "d_a_obj_kshutter"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kshutter"), ActorRel(NonMatching, "d_a_obj_kuwagata"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_kwheel00"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_kwheel01"), diff --git a/include/d/actor/d_a_obj_kshutter.h b/include/d/actor/d_a_obj_kshutter.h index 717f88dc657..f30c19417a1 100644 --- a/include/d/actor/d_a_obj_kshutter.h +++ b/include/d/actor/d_a_obj_kshutter.h @@ -1,6 +1,7 @@ #ifndef D_A_OBJ_KSHUTTER_H #define D_A_OBJ_KSHUTTER_H +#include "d/d_bg_s_movebg_actor.h" #include "f_op/f_op_actor_mng.h" /** @@ -10,39 +11,44 @@ * * @details * - */ -class daObjKshtr_c : public fopAc_ac_c { +*/ + +class daObjKshtr_c : public dBgS_MoveBgActor { public: + typedef cPhs__Step (daObjKshtr_c::*PhaseFunc)(); + typedef void (daObjKshtr_c::*ActionFunc)(); + typedef BOOL (daObjKshtr_c::*DemoFunc)(); + /* 80C47AB8 */ void initBaseMtx(); /* 80C47B2C */ void setBaseMtx(); - /* 80C47C14 */ void Create(); + /* 80C47C14 */ int Create(); /* 80C47E54 */ void offDzb(); - /* 80C47EA8 */ void CreateHeap(); + /* 80C47EA8 */ int CreateHeap(); /* 80C48050 */ void initKey(); - /* 80C48148 */ void phase_0(); - /* 80C4827C */ void phase_1(); - /* 80C48320 */ s32 phase_2(); - /* 80C48328 */ void create1st(); + /* 80C48148 */ cPhs__Step phase_0(); + /* 80C4827C */ cPhs__Step phase_1(); + /* 80C48320 */ cPhs__Step phase_2(); + /* 80C48328 */ cPhs__Step create1st(); /* 80C483CC */ void event_proc_call(); /* 80C48470 */ void event_proc_call2(); - /* 80C4852C */ void Execute(Mtx**); - /* 80C48590 */ void checkArea(); - /* 80C48708 */ void checkOpen(); - /* 80C48798 */ void getDemoAction(); - /* 80C487E0 */ void demoProc2(); - /* 80C489E0 */ void adjustmentProc(); - /* 80C48AC8 */ void keyUnlockInit(); - /* 80C48B84 */ void keyUnlock(); - /* 80C48BD8 */ void openInit(); - /* 80C48D0C */ void openProc(); - /* 80C48D80 */ void openProc_type1(); - /* 80C48F94 */ void openProc_type2(); - /* 80C490F8 */ void openProc_typeL3Boss(); + /* 80C4852C */ int Execute(Mtx**); + /* 80C48590 */ BOOL checkArea(); + /* 80C48708 */ BOOL checkOpen(); + /* 80C48798 */ int getDemoAction(); + /* 80C487E0 */ BOOL demoProc2(); + /* 80C489E0 */ BOOL adjustmentProc(); + /* 80C48AC8 */ BOOL keyUnlockInit(); + /* 80C48B84 */ BOOL keyUnlock(); + /* 80C48BD8 */ BOOL openInit(); + /* 80C48D0C */ BOOL openProc(); + /* 80C48D80 */ BOOL openProc_type1(); + /* 80C48F94 */ BOOL openProc_type2(); + /* 80C490F8 */ BOOL openProc_typeL3Boss(); /* 80C49158 */ void demoProc(); - /* 80C4925C */ void demoJail1(); - /* 80C494A8 */ void demoJail2(); - /* 80C495A4 */ void demoJail11(); - /* 80C496C8 */ bool demoJail21(); + /* 80C4925C */ BOOL demoJail1(); + /* 80C494A8 */ BOOL demoJail2(); + /* 80C495A4 */ BOOL demoJail11(); + /* 80C496C8 */ BOOL demoJail21(); /* 80C496D0 */ void anmInit(); /* 80C497A0 */ void actionWaitEvent(); /* 80C49880 */ void actionEvent(); @@ -51,14 +57,43 @@ public: /* 80C499CC */ void actionOpen(); /* 80C49A08 */ void actionEvent2(); /* 80C49A70 */ void actionDead2(); - /* 80C49A74 */ void Draw(); - /* 80C49B4C */ void Delete(); - + /* 80C49A74 */ int Draw(); + /* 80C49B4C */ int Delete(); + u8 checkKey() { return fopAcM_GetParamBit(this, 31, 1); } + u8 getEvId() { return fopAcM_GetParamBit(this, 16, 8); } + u8 getType() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); } + void setAction(u8 action) { mAction = action; } private: - /* 0x568 */ u8 field_0x568[0x620 - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhase1; + /* 0x5A8 */ request_of_phase_process_class mPhase2; + /* 0x5B0 */ J3DModel* mpModel; + /* 0x5B4 */ mDoExt_bckAnm* mpBckAnm; + /* 0x5B8 */ Mtx mMtx; + /* 0x5E8 */ u8 mAction; + /* 0x5E9 */ u8 mDemoMode; + /* 0x5EA */ u8 mType; + /* 0x5EB */ u8 mSwNo; + /* 0x5EC */ bool field_0x5ec; + /* 0x5ED */ bool mIsCheckKey; + /* 0x5EE */ u8 mEvId; + /* 0x5EF */ bool mIsWolf; + /* 0x5F0 */ s16 field_0x5f0[2]; + /* 0x5F4 */ u8 field_0x5f4[0x5fc - 0x5f4]; + /* 0x5FC */ f32 field_0x5fc; + /* 0x600 */ int mStaffId; + /* 0x604 */ u8 field_0x604; + /* 0x605 */ u8 field_0x605; + /* 0x606 */ u8 mTimer; + /* 0x608 */ cXyz mSePos; + /* 0x614 */ fpc_ProcID mKeyHoleId; + /* 0x618 */ u8 mPhase; + /* 0x619 */ bool field_0x619; + /* 0x61A */ s16 mHomeAngleZ; + /* 0x61C */ s16 mHomeAngleX; + /* 0x61E */ bool field_0x61e; }; STATIC_ASSERT(sizeof(daObjKshtr_c) == 0x620); - #endif /* D_A_OBJ_KSHUTTER_H */ diff --git a/src/d/actor/d_a_obj_kshutter.cpp b/src/d/actor/d_a_obj_kshutter.cpp index a80dbc0bdfa..68aef05a506 100644 --- a/src/d/actor/d_a_obj_kshutter.cpp +++ b/src/d/actor/d_a_obj_kshutter.cpp @@ -6,509 +6,1023 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_obj_kshutter.h" -#include "dol2asm.h" +#include "d/actor/d_a_player.h" +#include "d/actor/d_a_obj_keyhole.h" +#include "d/d_meter2_info.h" +enum S_shut00_RES_File_ID { + /* BMDR */ + /* 0x5 */ BMDR_S_SHUT_ROU = 0x5, -// -// Forward References: -// + /* DZB */ + /* 0x8 */ DZB_S_SHUT00_S_SHUT_ROU = 0x8, -extern "C" void initBaseMtx__12daObjKshtr_cFv(); -extern "C" void setBaseMtx__12daObjKshtr_cFv(); -extern "C" void Create__12daObjKshtr_cFv(); -extern "C" void offDzb__12daObjKshtr_cFv(); -extern "C" void CreateHeap__12daObjKshtr_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void initKey__12daObjKshtr_cFv(); -extern "C" void phase_0__12daObjKshtr_cFv(); -extern "C" void phase_1__12daObjKshtr_cFv(); -extern "C" s32 phase_2__12daObjKshtr_cFv(); -extern "C" void create1st__12daObjKshtr_cFv(); -extern "C" void event_proc_call__12daObjKshtr_cFv(); -extern "C" void event_proc_call2__12daObjKshtr_cFv(); -extern "C" void Execute__12daObjKshtr_cFPPA3_A4_f(); -extern "C" void checkArea__12daObjKshtr_cFv(); -extern "C" void checkOpen__12daObjKshtr_cFv(); -extern "C" void getDemoAction__12daObjKshtr_cFv(); -extern "C" void demoProc2__12daObjKshtr_cFv(); -extern "C" void adjustmentProc__12daObjKshtr_cFv(); -extern "C" void keyUnlockInit__12daObjKshtr_cFv(); -extern "C" void keyUnlock__12daObjKshtr_cFv(); -extern "C" void openInit__12daObjKshtr_cFv(); -extern "C" void openProc__12daObjKshtr_cFv(); -extern "C" void openProc_type1__12daObjKshtr_cFv(); -extern "C" void openProc_type2__12daObjKshtr_cFv(); -extern "C" void openProc_typeL3Boss__12daObjKshtr_cFv(); -extern "C" void demoProc__12daObjKshtr_cFv(); -extern "C" void demoJail1__12daObjKshtr_cFv(); -extern "C" void demoJail2__12daObjKshtr_cFv(); -extern "C" void demoJail11__12daObjKshtr_cFv(); -extern "C" bool demoJail21__12daObjKshtr_cFv(); -extern "C" void anmInit__12daObjKshtr_cFv(); -extern "C" void actionWaitEvent__12daObjKshtr_cFv(); -extern "C" void actionEvent__12daObjKshtr_cFv(); -extern "C" void actionDead__12daObjKshtr_cFv(); -extern "C" void actionWaitEvent2__12daObjKshtr_cFv(); -extern "C" void actionOpen__12daObjKshtr_cFv(); -extern "C" void actionEvent2__12daObjKshtr_cFv(); -extern "C" void actionDead2__12daObjKshtr_cFv(); -extern "C" void Draw__12daObjKshtr_cFv(); -extern "C" void Delete__12daObjKshtr_cFv(); -extern "C" static void daObjKshtr_create1st__FP12daObjKshtr_c(); -extern "C" static void daObjKshtr_MoveBGDelete__FP12daObjKshtr_c(); -extern "C" static void daObjKshtr_MoveBGExecute__FP12daObjKshtr_c(); -extern "C" static void daObjKshtr_MoveBGDraw__FP12daObjKshtr_c(); -extern "C" void func_80C49C84(void* _this, u8*); -extern "C" extern char const* const d_a_obj_kshutter__stringBase0; + /* EVT */ + /* 0xB */ EVT_S_SHUT00_EVENT_LIST = 0xB, +}; -// -// External References: -// +enum Lv3shut00_RES_File_ID { + /* BMDR */ + /* 0x5 */ BMDR_DOOR_SHUTTER_00 = 0x5, -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); -extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_createChildFromOffset__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -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 isDungeonItem__12dSv_memBit_cCFi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void normalize__4cXyzFv(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -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" extern u8 g_meter2_info[248]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 struct_80C4A0E8[4]; -extern "C" extern u8 data_80C4A0EC[4]; + /* DZB */ + /* 0x8 */ DZB_LV3SHUT00_S_SHUT_ROU = 0x8, -// -// Declarations: -// + /* EVT */ + /* 0xB */ EVT_LV3SHUT00_EVENT_LIST = 0xB, +}; + +enum K_l3bdoor_RES_File_ID { + /* BMDR */ + /* 0x5 */ BMDR_K_L3BDOOR = 0x5, + + /* DZB */ + /* 0x8 */ DZB_K_L3BDOOR = 0x8, + + /* EVT */ + /* 0xB */ EVT_K_L3BDOOR_EVENT_LIST = 0xB, +}; + +enum V_Shutter_RES_File_ID { + /* BCK */ + /* 0x5 */ BCK_V_SHUTTER = 0x5, + + /* BMDR */ + /* 0x8 */ BMDR_V_SHUTTER = 0x8, + + /* DZB */ + /* 0xB */ DZB_V_SHUTTER = 0xB, +}; + +enum DoorY00_RES_File_ID { + /* BCK */ + /* 0x4 */ BCK_MD_OJ_DOOROPC = 0x4, + /* 0x5 */ BCK_OJ_DOORCLOSEC, + /* 0x6 */ BCK_OJ_DOOROPC, + + /* EVT */ + /* 0x9 */ EVT_DOORY00_EVENT_LIST = 0x9, +}; + +enum DoorT00_RES_File_ID { + /* BCK */ + /* 0x4 */ BCK_MD_OJ_DOOROPD = 0x4, + /* 0x5 */ BCK_OJ_DOORCLOSED, + /* 0x6 */ BCK_OJ_DOOROPD, + + /* EVT */ + /* 0x9 */ EVT_DOORT00_EVENT_LIST = 0x9, +}; + +enum Demo_Action { + /* 0x0 */ DEMO_ACT_WAIT, + /* 0x1 */ DEMO_ACT_ADJUSTMENT, + /* 0x2 */ DEMO_ACT_UNLOCK, + /* 0x3 */ DEMO_ACT_OPEN, + /* 0x4 */ DEMO_ACT_PLY_NODISP, + /* 0x5 */ DEMO_ACT_PLY_DISP, +}; + +enum Type { + /* 0x0 */ TYPE_0, + /* 0x1 */ TYPE_1, + /* 0x2 */ TYPE_2, + /* 0x3 */ TYPE_L3BOSS, + /* 0x4 */ TYPE_V_SHUTTER, +}; /* 80C47AB8-80C47B2C 000078 0074+00 1/1 0/0 0/0 .text initBaseMtx__12daObjKshtr_cFv */ void daObjKshtr_c::initBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + MTXCopy(mDoMtx_stack_c::get(), mMtx); + mpModel->setBaseScale(scale); + setBaseMtx(); } /* 80C47B2C-80C47C14 0000EC 00E8+00 2/2 0/0 0/0 .text setBaseMtx__12daObjKshtr_cFv */ void daObjKshtr_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos.x, current.pos.y + field_0x5fc, current.pos.z); + + if (mType == TYPE_V_SHUTTER) { + mDoMtx_stack_c::YrotM(shape_angle.y); + } else { + mDoMtx_stack_c::YrotM(shape_angle.y + 0x7FFF); + } + + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); + + if (mpBckAnm != NULL) { + mDoMtx_stack_c::copy(mpModel->getAnmMtx(0)); + mDoMtx_stack_c::multVecZero(&mSePos); + } } -/* ############################################################################################## */ /* 80C49CA8-80C49CBC 000000 0014+00 8/8 0/0 0/0 .rodata l_bmd */ -SECTION_RODATA static u8 const l_bmd[20] = { - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, +static int const l_bmd[5] = { + BMDR_S_SHUT_ROU, BMDR_S_SHUT_ROU, BMDR_DOOR_SHUTTER_00, BMDR_K_L3BDOOR, BMDR_V_SHUTTER, }; -COMPILER_STRIP_GATE(0x80C49CA8, &l_bmd); /* 80C49CBC-80C49CD0 000014 0014+00 1/1 0/0 0/0 .rodata l_dzb */ -SECTION_RODATA static u8 const l_dzb[20] = { - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0B, +static int const l_dzb[5] = { + DZB_S_SHUT00_S_SHUT_ROU, DZB_S_SHUT00_S_SHUT_ROU, DZB_LV3SHUT00_S_SHUT_ROU, DZB_K_L3BDOOR, DZB_V_SHUTTER, }; -COMPILER_STRIP_GATE(0x80C49CBC, &l_dzb); /* 80C49CD0-80C49CE4 000028 0014+00 1/1 0/0 0/0 .rodata l_heap_size */ -SECTION_RODATA static u8 const l_heap_size[20] = { - 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0xD0, +static u32 const l_heap_size[5] = { + 0x1300, 0x1300, 0x1300, 0x1300, 0x20D0, }; -COMPILER_STRIP_GATE(0x80C49CD0, &l_heap_size); /* 80C49CE4-80C49CFC 00003C 0018+00 0/1 0/0 0/0 .rodata l_cull_box */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_cull_box[24] = { - 0xC3, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, +static f32 const l_cull_box[6] = { + -450.0f, 0.0f, -50.0f, 450.0f, 700.0f, 150.0f, }; -COMPILER_STRIP_GATE(0x80C49CE4, &l_cull_box); -#pragma pop - -/* 80C49CFC-80C49D00 000054 0004+00 2/8 0/0 0/0 .rodata @3779 */ -SECTION_RODATA static u8 const lit_3779[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C49CFC, &lit_3779); - -/* 80C49D00-80C49D04 000058 0004+00 0/1 0/0 0/0 .rodata @3780 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3780 = 150.0f; -COMPILER_STRIP_GATE(0x80C49D00, &lit_3780); -#pragma pop - -/* 80C49D04-80C49D08 00005C 0004+00 0/2 0/0 0/0 .rodata @3781 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3781 = -450.0f; -COMPILER_STRIP_GATE(0x80C49D04, &lit_3781); -#pragma pop - -/* 80C49D08-80C49D10 000060 0008+00 0/1 0/0 0/0 .rodata @3783 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3783[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C49D08, &lit_3783); -#pragma pop - -/* 80C49D44-80C49D44 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C49D44 = "S_shut00"; -SECTION_DEAD static char const* const stringBase_80C49D4D = "Lv3shut00"; -SECTION_DEAD static char const* const stringBase_80C49D57 = "K_l3bdoor"; -SECTION_DEAD static char const* const stringBase_80C49D61 = "V_Shutter"; -SECTION_DEAD static char const* const stringBase_80C49D6B = "oj_DoorOpC.bck"; -SECTION_DEAD static char const* const stringBase_80C49D7A = "md_oj_DoorOpC.bck"; -SECTION_DEAD static char const* const stringBase_80C49D8C = "oj_DoorOpD.bck"; -SECTION_DEAD static char const* const stringBase_80C49D9B = "md_oj_DoorOpD.bck"; -SECTION_DEAD static char const* const stringBase_80C49DAD = "V_Shutter.bck"; -SECTION_DEAD static char const* const stringBase_80C49DBB = "KEY_JAIL_00"; -SECTION_DEAD static char const* const stringBase_80C49DC7 = "KEY_JAIL_WOLF_00"; -SECTION_DEAD static char const* const stringBase_80C49DD8 = "KEY_JAIL_01"; -SECTION_DEAD static char const* const stringBase_80C49DE4 = "KEY_JAIL_WOLF_01"; -SECTION_DEAD static char const* const stringBase_80C49DF5 = "DEFAULT_BS_SHUTTER_L3_F"; -#pragma pop /* 80C49E80-80C49E94 -00001 0014+00 3/4 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName[5] = { - (void*)&d_a_obj_kshutter__stringBase0, - (void*)&d_a_obj_kshutter__stringBase0, - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x9), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x13), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x1D), +static char* l_arcName[5] = { + "S_shut00", + "S_shut00", + "Lv3shut00", + "K_l3bdoor", + "V_Shutter", }; /* 80C49E94-80C49EBC -00001 0028+00 1/2 0/0 0/0 .data l_anmName */ -SECTION_DATA static void* l_anmName[10] = { - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x27), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x36), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x27), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x36), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x48), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x57), - (void*)NULL, - (void*)NULL, - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x69), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x69), +static char* l_anmName[10] = { + "oj_DoorOpC.bck", + "md_oj_DoorOpC.bck", + "oj_DoorOpC.bck", + "md_oj_DoorOpC.bck", + "oj_DoorOpD.bck", + "md_oj_DoorOpD.bck", + NULL, + NULL, + "V_Shutter.bck", + "V_Shutter.bck", }; /* 80C49EBC-80C49EE4 -00001 0028+00 1/1 0/0 0/0 .data l_eventName */ -SECTION_DATA static void* l_eventName[10] = { - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x77), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x83), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x77), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x83), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x94), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xA0), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xB1), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xB1), - (void*)NULL, - (void*)NULL, +static char* l_eventName[10] = { + "KEY_JAIL_00", + "KEY_JAIL_WOLF_00", + "KEY_JAIL_00", + "KEY_JAIL_WOLF_00", + "KEY_JAIL_01", + "KEY_JAIL_WOLF_01", + "DEFAULT_BS_SHUTTER_L3_F", + "DEFAULT_BS_SHUTTER_L3_F", + NULL, + NULL, }; /* 80C47C14-80C47E54 0001D4 0240+00 1/0 0/0 0/0 .text Create__12daObjKshtr_cFv */ -void daObjKshtr_c::Create() { - // NONMATCHING +int daObjKshtr_c::Create() { + if (!fopAcM_isSwitch(this, mSwNo)) { + field_0x5ec = false; + field_0x5fc = 0.0f; + attention_info.position.y += 150.0f; + eyePos.y += 150.0f; + attention_info.flags = 0x20; + + if (mIsCheckKey) { + mAction = 0; + } else { + mAction = 0; + } + + if (mpBckAnm != NULL) { + mpBckAnm->setFrame(0.0f); + mpBckAnm->setPlaySpeed(0.0f); + } + } else { + field_0x5ec = true; + + if ((s8)mType != TYPE_L3BOSS) { + mpBckAnm->setFrame(mpBckAnm->getEndFrame()); + } else { + field_0x5fc = -450.0f; + } + + offDzb(); + + if (mIsCheckKey) { + mAction = 2; + } else { + mAction = 2; + } + } + + if (mType == TYPE_V_SHUTTER) { + fopAcM_OffStatus(this, fopAcM_STATUS_UNK_000100); + } + + initBaseMtx(); + fopAcM_SetMtx(this, mMtx); + fopAcM_setCullSizeBox(this, l_cull_box[0], l_cull_box[1], l_cull_box[2], l_cull_box[3], l_cull_box[4], l_cull_box[5]); + + if (checkKey() == 1) { + eventInfo.setArchiveName(l_arcName[mType]); + + for (int i = 0; i < 2; i++) { + field_0x5f0[i] = dComIfGp_getEventManager().getEventIdx(this, l_eventName[i + mType * 2], 0xFF); + } + + mEvId = getEvId(); + } else { + mEvId = getEvId(); + field_0x5f0[0] = dComIfGp_getEventManager().getEventIdx(this, mEvId); + field_0x5f0[1] = -1; + } + + return 1; } /* 80C47E54-80C47EA8 000414 0054+00 4/4 0/0 0/0 .text offDzb__12daObjKshtr_cFv */ void daObjKshtr_c::offDzb() { - // NONMATCHING + if (mpBgW != NULL && mpBgW->ChkUsed()) { + dComIfG_Bgsp().Release(mpBgW); + } } -/* ############################################################################################## */ -/* 80C49D10-80C49D14 000068 0004+00 4/8 0/0 0/0 .rodata @3842 */ -SECTION_RODATA static f32 const lit_3842 = 1.0f; -COMPILER_STRIP_GATE(0x80C49D10, &lit_3842); - -/* 80C49D44-80C49D44 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C49E0D = "DoorY00"; -SECTION_DEAD static char const* const stringBase_80C49E15 = "DoorT00"; -SECTION_DEAD static char const* const stringBase_80C49E1D = "WAIT"; -SECTION_DEAD static char const* const stringBase_80C49E22 = "ADJUSTMENT"; -SECTION_DEAD static char const* const stringBase_80C49E2D = "UNLOCK"; -SECTION_DEAD static char const* const stringBase_80C49E34 = "OPEN"; -SECTION_DEAD static char const* const stringBase_80C49E39 = "PLY_NODISP"; -SECTION_DEAD static char const* const stringBase_80C49E44 = "PLY_DISP"; -#pragma pop - /* 80C49EE4-80C49EF8 -00001 0014+00 3/4 0/0 0/0 .data l_anmArcName */ -SECTION_DATA static void* l_anmArcName[5] = { - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xC9), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xC9), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xD1), - (void*)NULL, - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x1D), +static char* l_anmArcName[5] = { + "DoorY00", + "DoorY00", + "DoorT00", + NULL, + "V_Shutter", }; -/* 80C49EF8-80C49F04 -00001 000C+00 0/1 0/0 0/0 .data @3932 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3932[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)phase_0__12daObjKshtr_cFv, -}; -#pragma pop +/* 80C47EA8-80C48008 000468 0160+00 1/0 0/0 0/0 .text CreateHeap__12daObjKshtr_cFv */ +int daObjKshtr_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mType], l_bmd[mType]); -/* 80C49F04-80C49F10 -00001 000C+00 0/1 0/0 0/0 .data @3933 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3933[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)phase_1__12daObjKshtr_cFv, -}; -#pragma pop + JUT_ASSERT(429, modelData != 0); -/* 80C49F10-80C49F1C -00001 000C+00 0/1 0/0 0/0 .data @3934 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3934[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)phase_2__12daObjKshtr_cFv, -}; -#pragma pop + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } -/* 80C49F1C-80C49F40 0000BC 0024+00 0/1 0/0 0/0 .data l_ct_func$3931 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_ct_func[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + if (l_anmArcName[mType] != NULL) { + int index; + if (daPy_py_c::checkNowWolf()) { + index = mType * 2 + 1; + } else { + index = mType << 1; + } -/* 80C49F40-80C49F4C -00001 000C+00 0/1 0/0 0/0 .data @3942 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3942[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWaitEvent__12daObjKshtr_cFv, -}; -#pragma pop + J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_anmArcName[mType], l_anmName[index]); -/* 80C49F4C-80C49F58 -00001 000C+00 0/1 0/0 0/0 .data @3943 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3943[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionEvent__12daObjKshtr_cFv, -}; -#pragma pop + JUT_ASSERT(446, anm != 0); -/* 80C49F58-80C49F64 -00001 000C+00 0/1 0/0 0/0 .data @3944 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3944[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionDead__12daObjKshtr_cFv, -}; -#pragma pop + mpBckAnm = new mDoExt_bckAnm(); + if (mpBckAnm == NULL || mpBckAnm->init(anm, 1, 0, 1.0f, 0, -1, false) == 0) { + return 0; + } + } -/* 80C49F64-80C49F88 000104 0024+00 0/1 0/0 0/0 .data l_func$3941 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_func_3941[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + #ifdef DEBUG + if (checkKey() != 0) { + mIsCheckKey = true; + } + #endif -/* 80C49F88-80C49F94 -00001 000C+00 0/1 0/0 0/0 .data @3952 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3952[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWaitEvent2__12daObjKshtr_cFv, -}; -#pragma pop + return 1; +} -/* 80C49F94-80C49FA0 -00001 000C+00 0/1 0/0 0/0 .data @3953 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3953[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionEvent2__12daObjKshtr_cFv, -}; -#pragma pop +/* 80C48050-80C48148 000610 00F8+00 1/1 0/0 0/0 .text initKey__12daObjKshtr_cFv */ +void daObjKshtr_c::initKey() { + if (!field_0x61e) { + if ((int)checkKey() != 0) { + mIsCheckKey = true; + } -/* 80C49FA0-80C49FAC -00001 000C+00 0/1 0/0 0/0 .data @3954 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3954[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionDead2__12daObjKshtr_cFv, -}; -#pragma pop + field_0x61e = true; + mKeyHoleId = fpcM_ERROR_PROCESS_ID_e; -/* 80C49FAC-80C49FB8 -00001 000C+00 0/1 0/0 0/0 .data @3955 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3955[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOpen__12daObjKshtr_cFv, -}; -#pragma pop + if (!fopAcM_isSwitch(this, mSwNo) && mIsCheckKey) { + cXyz sp20(0.0f, 0.0f, 35.0f); -/* 80C49FB8-80C49FE8 000158 0030+00 0/1 0/0 0/0 .data l_func$3951 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_func_3951[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 + u32 uVar1 = 0xFFFFFFFF; -/* 80C49FE8-80C4A000 -00001 0018+00 1/1 0/0 0/0 .data action_table$4080 */ -SECTION_DATA static void* action_table[6] = { - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xD9), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xDE), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xE9), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xF0), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0xF5), - (void*)(((char*)&d_a_obj_kshutter__stringBase0) + 0x100), -}; + if (mType == TYPE_L3BOSS) { + uVar1 = 0xFFFFFF03; + } else { + uVar1 = 0xFFFFFFFF; + } -/* 80C4A000-80C4A00C -00001 000C+00 0/1 0/0 0/0 .data @4363 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4363[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demoJail1__12daObjKshtr_cFv, -}; -#pragma pop + mKeyHoleId = fopAcM_createChildFromOffset(PROC_OBJ_KEYHOLE, fopAcM_GetID(this), uVar1, &sp20, fopAcM_GetRoomNo(this), NULL, &scale, -1, NULL); + } + } +} -/* 80C4A00C-80C4A018 -00001 000C+00 0/1 0/0 0/0 .data @4364 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4364[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demoJail2__12daObjKshtr_cFv, -}; -#pragma pop +/* 80C48148-80C4827C 000708 0134+00 1/0 0/0 0/0 .text phase_0__12daObjKshtr_cFv */ +cPhs__Step daObjKshtr_c::phase_0() { + if (!field_0x619) { + mHomeAngleZ = home.angle.z; + mHomeAngleX = home.angle.x; + shape_angle.x = 0; + current.angle.x = 0; + home.angle.x = 0; + shape_angle.z = 0; + current.angle.z = 0; + home.angle.z = 0; + field_0x619 = true; + } -/* 80C4A018-80C4A030 0001B8 0018+00 0/1 0/0 0/0 .data l_demoProc$4362 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_demoProc[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + mType = getType() + 1; + mSwNo = getSwNo(); -/* 80C4A030-80C4A03C -00001 000C+00 0/1 0/0 0/0 .data @4368 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4368[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demoJail11__12daObjKshtr_cFv, -}; -#pragma pop + #ifdef DEBUG + if (mSwNo == 0xFF) { + OS_REPORT_ERROR("鍵付き壁ドア:スイッチ指定がありません\n"); // Locked wall door: No switch specification + return cPhs_ERROR_e; + } + #else + initKey(); + #endif -/* 80C4A03C-80C4A048 -00001 000C+00 0/1 0/0 0/0 .data @4369 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4369[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demoJail21__12daObjKshtr_cFv, -}; -#pragma pop + #ifdef DEBUG + if (mType >= 6) { + OS_REPORT_ERROR("鍵付き壁ドア:引数0のタイプ指定が不正値です\n"); // Locked wall door: The type specification for argument 0 is invalid -/* 80C4A048-80C4A060 0001E8 0018+00 0/1 0/0 0/0 .data l_demoProc2$4367 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_demoProc2[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + return cPhs_ERROR_e; + } + #endif + + cPhs__Step phase; + if (l_anmArcName[mType] != NULL) { + phase = (cPhs__Step)dComIfG_resLoad(&mPhase2, l_anmArcName[mType]); + if (phase != cPhs_COMPLEATE_e) { + return phase; + } + } + + if (dComIfG_resLoad(&mPhase1, l_arcName[mType]) == cPhs_COMPLEATE_e) { + phase = (cPhs__Step)MoveBGCreate(l_arcName[mType], l_dzb[mType], NULL, l_heap_size[mType], NULL); + if (phase == cPhs_ERROR_e) { + return phase; + } + + mPhase++; + OS_REPORT("KSHTR PARAM:0x%x\n", fopAcM_GetParam(this)); + return cPhs_INIT_e; + } +} + +/* 80C4827C-80C48320 00083C 00A4+00 1/0 0/0 0/0 .text phase_1__12daObjKshtr_cFv */ +cPhs__Step daObjKshtr_c::phase_1() { + if (mKeyHoleId != fpcM_ERROR_PROCESS_ID_e) { + obj_keyhole_class* keyhole_p = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId); + + if (keyhole_p != NULL) { + if (fopAcM_isSwitch(this, mSwNo)) { + keyhole_p->setOpenEnd(); + + OS_REPORT("鍵檻:鍵開いてる状態セット!\n"); // Locked cage: unlocked!\n + } + + mPhase++; + } + } else { + mPhase++; + } + + return cPhs_INIT_e; +} + +/* 80C48320-80C48328 0008E0 0008+00 1/0 0/0 0/0 .text phase_2__12daObjKshtr_cFv */ +cPhs__Step daObjKshtr_c::phase_2() { + return cPhs_COMPLEATE_e; +} + +/* 80C48328-80C483CC 0008E8 00A4+00 1/1 0/0 0/0 .text create1st__12daObjKshtr_cFv */ +cPhs__Step daObjKshtr_c::create1st() { + static daObjKshtr_c::PhaseFunc l_ct_func[3] = { + &daObjKshtr_c::phase_0, + &daObjKshtr_c::phase_1, + &daObjKshtr_c::phase_2, + }; + + return (this->*l_ct_func[mPhase])(); +} + +/* 80C483CC-80C48470 00098C 00A4+00 1/1 0/0 0/0 .text event_proc_call__12daObjKshtr_cFv */ +void daObjKshtr_c::event_proc_call() { + static daObjKshtr_c::ActionFunc l_func[3] = { + &daObjKshtr_c::actionWaitEvent, + &daObjKshtr_c::actionEvent, + &daObjKshtr_c::actionDead, + }; + + (this->*l_func[mAction])(); +} + +/* 80C48470-80C4852C 000A30 00BC+00 1/1 0/0 0/0 .text event_proc_call2__12daObjKshtr_cFv */ +void daObjKshtr_c::event_proc_call2() { + static daObjKshtr_c::ActionFunc l_func[4] = { + &daObjKshtr_c::actionWaitEvent2, + &daObjKshtr_c::actionEvent2, + &daObjKshtr_c::actionDead2, + &daObjKshtr_c::actionOpen, + }; + + (this->*l_func[mAction])(); +} + +/* 80C4852C-80C48590 000AEC 0064+00 1/0 0/0 0/0 .text Execute__12daObjKshtr_cFPPA3_A4_f */ +int daObjKshtr_c::Execute(Mtx** param_1) { + if (checkKey() == 1) { + event_proc_call(); + } else { + event_proc_call2(); + } + + *param_1 = &mBgMtx; + setBaseMtx(); + + return 1; +} + +/* 80C48590-80C48708 000B50 0178+00 1/1 0/0 0/0 .text checkArea__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::checkArea() { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz sp78; + cXyz sp84(player->attention_info.position); + sp84.y = player->current.pos.y; + sp78 = sp84 - current.pos; + f32 fVar1 = sp78.abs2XZ(); + cXyz sp90; + sp90.set(cM_ssin(home.angle.y), 0.0f, cM_scos(home.angle.y)); + + if (fVar1 > 62500.0f) { + return FALSE; + } + + sp78.normalize(); + + f32 fVar2 = sp78.inprodXZ(sp90); + fVar2 *= fVar1 * fVar2; + if (fVar2 > 12100.0f) { + return FALSE; + } + + if (fVar1 - fVar2 > 12100.0f) { + return FALSE; + } + + if (abs((s16)(current.angle.y - player->current.angle.y)) >= 0x5000) { + return TRUE; + } + + return FALSE; +} + +/* 80C48708-80C48798 000CC8 0090+00 1/1 0/0 0/0 .text checkOpen__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::checkOpen() { + if (mType == TYPE_L3BOSS) { + if (!dComIfGs_isDungeonItemBossKey()) { + return false; + } + } else if (dComIfGs_getKeyNum() == 0) { + return false; + } + + if (!checkArea()) { + return false; + } + + return true; +} + +/* 80C48798-80C487E0 000D58 0048+00 1/1 0/0 0/0 .text getDemoAction__12daObjKshtr_cFv */ +int daObjKshtr_c::getDemoAction() { + static char* action_table[6] = { + "WAIT", + "ADJUSTMENT", + "UNLOCK", + "OPEN", + "PLY_NODISP", + "PLY_DISP", + }; + + return dComIfGp_evmng_getMyActIdx(mStaffId, action_table, 6, 0, 0); +} + +/* 80C487E0-80C489E0 000DA0 0200+00 1/1 0/0 0/0 .text demoProc2__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::demoProc2() { + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + mStaffId = dComIfGp_evmng_getMyStaffId("JAIL_DOOR", NULL, 0); + int demoAction = getDemoAction(); + + if (dComIfGp_evmng_getIsAddvance(mStaffId) != 0) { + switch (demoAction) { + case DEMO_ACT_WAIT: { + int* timer = dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer"); + if (timer == NULL) { + mTimer = 1; + } else { + mTimer = *timer; + } + break; + } + + case DEMO_ACT_OPEN: + openInit(); + break; + + case DEMO_ACT_UNLOCK: + keyUnlockInit(); + break; + + case DEMO_ACT_ADJUSTMENT: + field_0x605 = 5; + break; + + case DEMO_ACT_PLY_DISP: + player->offPlayerNoDraw(); + player->offPlayerShadowNoDraw(); + break; + + case DEMO_ACT_PLY_NODISP: + player->onPlayerNoDraw(); + player->onPlayerShadowNoDraw(); + break; + } + } + + switch (demoAction) { + case DEMO_ACT_WAIT: + if (cLib_calcTimer(&mTimer) == 0) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + + case DEMO_ACT_OPEN: + if (openProc()) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + + case DEMO_ACT_UNLOCK: + if (keyUnlock()) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + + case DEMO_ACT_ADJUSTMENT: + if (adjustmentProc()) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + + default: + dComIfGp_evmng_cutEnd(mStaffId); + break; + } + + return FALSE; +} + +/* 80C489E0-80C48AC8 000FA0 00E8+00 1/1 0/0 0/0 .text adjustmentProc__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::adjustmentProc() { + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + cXyz sp18, sp24; + + sp24 = player->current.pos; + s16 angleY = player->shape_angle.y; + cLib_addCalcAngleS2(&angleY, shape_angle.y + 0x7FFF, 5, 3000); + + if (field_0x605 != 0) { + player->setPlayerPosAndAngle(&sp24, angleY, 0); + field_0x605--; + } else { + player->setPlayerPosAndAngle(&sp24, shape_angle.y + 0x7FFF, 0); + return TRUE; + } + + return FALSE; +} + +/* 80C48AC8-80C48B84 001088 00BC+00 1/1 0/0 0/0 .text keyUnlockInit__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::keyUnlockInit() { + obj_keyhole_class* keyhole_p = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId); + if (keyhole_p != NULL) { + keyhole_p->setOpen(); + } + + dComIfGp_setItemKeyNumCount(-1); + fopAcM_seStart(this, Z2SE_OBJ_DOOR_CHAIN_LOCK_OPEN, 0); + + return TRUE; +} + +/* 80C48B84-80C48BD8 001144 0054+00 1/1 0/0 0/0 .text keyUnlock__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::keyUnlock() { + obj_keyhole_class* keyhole_p = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId); + if (keyhole_p != NULL && keyhole_p->checkOpenEnd()) { + return TRUE; + } + + return FALSE; +} + +/* 80C48BD8-80C48D0C 001198 0134+00 2/2 0/0 0/0 .text openInit__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::openInit() { + field_0x5fc = 0.0f; + speedF = 0.0f; + gravity = 0.0f; + anmInit(); + offDzb(); + + switch (mType) { + case TYPE_0: + case TYPE_1: + break; + + case TYPE_L3BOSS: + fopAcM_seStart(this, Z2SE_OBJ_LV3_SHTR_DW_STOP, 0); + break; + + case TYPE_V_SHUTTER: + eyePos = current.pos; + fopAcM_seStart(this, Z2SE_OBJ_VSHUTR, 0); + break; + } + + return TRUE; +} + +/* 80C48D0C-80C48D80 0012CC 0074+00 2/2 0/0 0/0 .text openProc__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::openProc() { + switch (mType) { + case TYPE_0: + case TYPE_1: + return openProc_type1(); + + default: + return openProc_type2(); + + case TYPE_L3BOSS: + return openProc_typeL3Boss(); + + case TYPE_V_SHUTTER: + if (mpBckAnm->play() != 0) { + return TRUE; + } + + return FALSE; + } +} + +/* 80C48D80-80C48F94 001340 0214+00 1/1 0/0 0/0 .text openProc_type1__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::openProc_type1() { + BOOL rv = mpBckAnm->play(); + + if (mpBckAnm->getFrame() == 1.0f) { + dComIfGp_particle_set(0x8331, ¤t.pos, &shape_angle, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this), NULL, NULL, NULL); + dComIfGp_particle_set(0x8332, ¤t.pos, &shape_angle, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this), NULL, NULL, NULL); + } else if (mpBckAnm->getFrame() == 17.0f) { + dComIfGp_getVibration().StartShock(4, 15, cXyz(0.0f, 1.0f, 0.0f)); + } else if (mpBckAnm->getFrame() == 18.0f) { + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_ROLLOPEN, &mSePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + } + + if (rv != 0) { + dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f)); + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_OPEN_STOP, &mSePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + } + + return rv; +} + +/* 80C48F94-80C490F8 001554 0164+00 1/1 0/0 0/0 .text openProc_type2__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::openProc_type2() { + static u16 const l_eff_id[5] = { + 0x8762, + 0x8763, + 0x8764, + 0x8765, + 0x8766, + }; + + BOOL rv = mpBckAnm->play(); + + if (mpBckAnm->getFrame() == 1.0f) { + for (u32 i = 0; i < 5; i++) { + dComIfGp_particle_set(l_eff_id[i], ¤t.pos, &shape_angle, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this), NULL, NULL, NULL); + } + } else if (mpBckAnm->getFrame() == 17.0f) { + dComIfGp_getVibration().StartShock(4, 15, cXyz(0.0f, 1.0f, 0.0f)); + } + + if (mpBckAnm->getFrame() == 20.0f) { + fopAcM_seStart(this, Z2SE_OBJ_LV3_SHTR_UP_STOP, 0); + } + + return rv; +} + +/* 80C490F8-80C49158 0016B8 0060+00 1/1 0/0 0/0 .text openProc_typeL3Boss__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::openProc_typeL3Boss() { + cLib_chaseF(&speedF, 30.0f, 4.0f); + return cLib_chaseF(&field_0x5fc, -450.0f, speedF) != 0 ? TRUE : FALSE; +} + +/* 80C49158-80C4925C 001718 0104+00 1/1 0/0 0/0 .text demoProc__12daObjKshtr_cFv */ +void daObjKshtr_c::demoProc() { + static daObjKshtr_c::DemoFunc l_demoProc[2] = { + &daObjKshtr_c::demoJail1, + &daObjKshtr_c::demoJail2, + }; + + static daObjKshtr_c::DemoFunc l_demoProc2[2] = { + &daObjKshtr_c::demoJail11, + &daObjKshtr_c::demoJail21, + }; + + if (mIsCheckKey) { + (this->*l_demoProc[mType])(); + } else { + (this->*l_demoProc2[mType])(); + } +} + +/* 80C4925C-80C494A8 00181C 024C+00 1/0 0/0 0/0 .text demoJail1__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::demoJail1() { + obj_keyhole_class* keyhole_p = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId); + + switch (mDemoMode) { + case 0: + if (keyhole_p != NULL) { + keyhole_p->setOpen(); + } + + mDemoMode = 1; + dComIfGp_setItemKeyNumCount(-1); + fopAcM_seStart(this, Z2SE_OBJ_DOOR_CHAIN_LOCK_OPEN, 0); + break; + + case 1: + if (keyhole_p != NULL && keyhole_p->checkOpenEnd()) { + mDemoMode = 2; + } + break; + + case 2: + anmInit(); + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_ROLLOPEN2, ¤t.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + dComIfGp_getVibration().StartShock(4, 15, cXyz(0.0f, 1.0f, 0.0f)); + offDzb(); + mDemoMode = 3; + break; + + case 3: + if (mpBckAnm->play()) { + dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f)); + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_OPEN_STOP, ¤t.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + mDemoMode = 4; + } + break; + + case 4: + break; + } + + return FALSE; +} + +/* 80C494A8-80C495A4 001A68 00FC+00 1/0 0/0 0/0 .text demoJail2__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::demoJail2() { + obj_keyhole_class* keyhole_p = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId); + + switch (mDemoMode) { + case 0: + if (keyhole_p != NULL) { + keyhole_p->setOpen(); + } + + mDemoMode = 1; + dComIfGp_setItemKeyNumCount(-1); + break; + + case 1: + if (keyhole_p != NULL && keyhole_p->checkOpenEnd()) { + mDemoMode = 2; + } + break; + + case 2: + speedF = 0.0f; + mDemoMode = 3; + anmInit(); + break; + + case 3: + if (mpBckAnm->play()) { + mDemoMode = 4; + } + break; + + case 4: + break; + } + + return FALSE; +} + +/* 80C495A4-80C496C8 001B64 0124+00 1/0 0/0 0/0 .text demoJail11__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::demoJail11() { + switch (mDemoMode) { + case 0: + mDemoMode = 1; + anmInit(); + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_ROLLOPEN2, ¤t.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + offDzb(); + break; + + case 1: + if (mpBckAnm->play()) { + mDemoMode = 2; + mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_OPEN_STOP, ¤t.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + } + break; + + case 2: + break; + } + + return FALSE; +} + +/* 80C496C8-80C496D0 001C88 0008+00 1/0 0/0 0/0 .text demoJail21__12daObjKshtr_cFv */ +BOOL daObjKshtr_c::demoJail21() { + return TRUE; +} + +/* 80C496D0-80C497A0 001C90 00D0+00 4/4 0/0 0/0 .text anmInit__12daObjKshtr_cFv */ +void daObjKshtr_c::anmInit() { + if (mpBckAnm != NULL) { + BOOL isWolf = FALSE; + if (daPy_py_c::checkNowWolf()) { + isWolf = TRUE; + } + + J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_anmArcName[mType], l_anmName[isWolf + mType * 2]); + + JUT_ASSERT(1278, anm != 0); + + #ifdef DEBUG + if (!mpBckAnm->init(anm, 1, 0, 1.0f, 0, -1, true)) { + JUT_ASSERT(1281, 0); + + mpBckAnm->setPlaySpeed(1.0f); + } + #else + mpBckAnm->init(anm, 1, 0, 1.0f, 0, -1, true); + mpBckAnm->setPlaySpeed(1.0f); + #endif + } +} + +/* 80C497A0-80C49880 001D60 00E0+00 1/0 0/0 0/0 .text actionWaitEvent__12daObjKshtr_cFv */ +void daObjKshtr_c::actionWaitEvent() { + if (eventInfo.checkCommandDoor()) { + setAction(1); + mDemoMode = 0; + fopAcM_onSwitch(this, mSwNo); + + if (mType == TYPE_L3BOSS) { + dMeter2Info_onGameStatus(2); + } + } else if (checkOpen()) { + if (daPy_py_c::checkNowWolf()) { + mIsWolf = true; + } else { + mIsWolf = false; + } + + eventInfo.setEventId(field_0x5f0[mIsWolf]); + eventInfo.setMapToolId(mEvId); + eventInfo.onCondition(dEvtCnd_CANDOOR_e); + } +} + +/* 80C49880-80C49914 001E40 0094+00 1/0 0/0 0/0 .text actionEvent__12daObjKshtr_cFv */ +void daObjKshtr_c::actionEvent() { + if (dComIfGp_evmng_endCheck(field_0x5f0[mIsWolf])) { + setAction(2); + dComIfGp_event_reset(); + } else { + if (mType == TYPE_L3BOSS) { + dMeter2Info_onGameStatus(2); + } + + demoProc2(); + } +} + +/* 80C49914-80C49918 001ED4 0004+00 1/0 0/0 0/0 .text actionDead__12daObjKshtr_cFv */ +void daObjKshtr_c::actionDead() { + /* empty function */ +} + +/* 80C49918-80C499CC 001ED8 00B4+00 1/0 0/0 0/0 .text actionWaitEvent2__12daObjKshtr_cFv */ +void daObjKshtr_c::actionWaitEvent2() { + if (eventInfo.checkCommandDemoAccrpt()) { + setAction(1); + mDemoMode = 0; + } else if (fopAcM_isSwitch(this, mSwNo)) { + if (mType == TYPE_V_SHUTTER) { + openInit(); + setAction(3); + } else { + fopAcM_orderOtherEventId(this, field_0x5f0[0], mEvId, 0xFFFF, 0, 1); + eventInfo.onCondition(dEvtCnd_CANDEMO_e); + } + } +} + +/* 80C499CC-80C49A08 001F8C 003C+00 1/0 0/0 0/0 .text actionOpen__12daObjKshtr_cFv */ +void daObjKshtr_c::actionOpen() { + if (openProc()) { + setAction(2); + } +} + +/* 80C49A08-80C49A70 001FC8 0068+00 1/0 0/0 0/0 .text actionEvent2__12daObjKshtr_cFv */ +void daObjKshtr_c::actionEvent2() { + if (dComIfGp_evmng_endCheck(field_0x5f0[0])) { + setAction(2); + dComIfGp_event_reset(); + } else { + demoProc(); + } +} + +/* 80C49A70-80C49A74 002030 0004+00 1/0 0/0 0/0 .text actionDead2__12daObjKshtr_cFv */ +void daObjKshtr_c::actionDead2() { + /* empty function */ +} + +/* 80C49A74-80C49B4C 002034 00D8+00 1/0 0/0 0/0 .text Draw__12daObjKshtr_cFv */ +int daObjKshtr_c::Draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + + if (mpBckAnm != NULL) { + mpBckAnm->entry(mpModel->getModelData()); + } + + mDoExt_modelUpdateDL(mpModel); + mDoExt_bckAnmRemove(mpModel->getModelData()); + dComIfGd_setList(); + + return 1; +} + +/* 80C49B4C-80C49BB8 00210C 006C+00 1/0 0/0 0/0 .text Delete__12daObjKshtr_cFv */ +int daObjKshtr_c::Delete() { + dComIfG_resDelete(&mPhase1, l_arcName[mType]); + + if (l_anmArcName[mType] != NULL) { + dComIfG_resDelete(&mPhase2, l_anmArcName[mType]); + } + + return 1; +} + +/* 80C49BB8-80C49C18 002178 0060+00 1/0 0/0 0/0 .text daObjKshtr_create1st__FP12daObjKshtr_c */ +static int daObjKshtr_create1st(daObjKshtr_c* i_this) { + fopAcM_SetupActor(i_this, daObjKshtr_c); + return i_this->create1st(); +} + +/* 80C49C18-80C49C38 0021D8 0020+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGDelete__FP12daObjKshtr_c */ +static int daObjKshtr_MoveBGDelete(daObjKshtr_c* i_this) { + return i_this->MoveBGDelete(); +} + +/* 80C49C38-80C49C58 0021F8 0020+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGExecute__FP12daObjKshtr_c */ +static int daObjKshtr_MoveBGExecute(daObjKshtr_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80C49C58-80C49C84 002218 002C+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGDraw__FP12daObjKshtr_c */ +static int daObjKshtr_MoveBGDraw(daObjKshtr_c* i_this) { + return i_this->MoveBGDraw(); +} /* 80C4A060-80C4A080 -00001 0020+00 1/0 0/0 0/0 .data daObjKshtr_METHODS */ static actor_method_class daObjKshtr_METHODS = { - (process_method_func)daObjKshtr_create1st__FP12daObjKshtr_c, - (process_method_func)daObjKshtr_MoveBGDelete__FP12daObjKshtr_c, - (process_method_func)daObjKshtr_MoveBGExecute__FP12daObjKshtr_c, + (process_method_func)daObjKshtr_create1st, + (process_method_func)daObjKshtr_MoveBGDelete, + (process_method_func)daObjKshtr_MoveBGExecute, 0, - (process_method_func)daObjKshtr_MoveBGDraw__FP12daObjKshtr_c, + (process_method_func)daObjKshtr_MoveBGDraw, }; /* 80C4A080-80C4A0B0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kshutter */ @@ -528,336 +1042,3 @@ extern actor_process_profile_definition g_profile_Obj_Kshutter = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C4A0B0-80C4A0BC 000250 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, -}; - -/* 80C47EA8-80C48008 000468 0160+00 1/0 0/0 0/0 .text CreateHeap__12daObjKshtr_cFv */ -void daObjKshtr_c::CreateHeap() { - // NONMATCHING -} - -/* 80C48008-80C48050 0005C8 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D14-80C49D18 00006C 0004+00 1/1 0/0 0/0 .rodata @3877 */ -SECTION_RODATA static f32 const lit_3877 = 35.0f; -COMPILER_STRIP_GATE(0x80C49D14, &lit_3877); - -/* 80C48050-80C48148 000610 00F8+00 1/1 0/0 0/0 .text initKey__12daObjKshtr_cFv */ -void daObjKshtr_c::initKey() { - // NONMATCHING -} - -/* 80C48148-80C4827C 000708 0134+00 1/0 0/0 0/0 .text phase_0__12daObjKshtr_cFv */ -void daObjKshtr_c::phase_0() { - // NONMATCHING -} - -/* 80C4827C-80C48320 00083C 00A4+00 1/0 0/0 0/0 .text phase_1__12daObjKshtr_cFv */ -void daObjKshtr_c::phase_1() { - // NONMATCHING -} - -/* 80C48320-80C48328 0008E0 0008+00 1/0 0/0 0/0 .text phase_2__12daObjKshtr_cFv */ -s32 daObjKshtr_c::phase_2() { - return 4; -} - -/* 80C48328-80C483CC 0008E8 00A4+00 1/1 0/0 0/0 .text create1st__12daObjKshtr_cFv */ -void daObjKshtr_c::create1st() { - // NONMATCHING -} - -/* 80C483CC-80C48470 00098C 00A4+00 1/1 0/0 0/0 .text event_proc_call__12daObjKshtr_cFv - */ -void daObjKshtr_c::event_proc_call() { - // NONMATCHING -} - -/* 80C48470-80C4852C 000A30 00BC+00 1/1 0/0 0/0 .text event_proc_call2__12daObjKshtr_cFv - */ -void daObjKshtr_c::event_proc_call2() { - // NONMATCHING -} - -/* 80C4852C-80C48590 000AEC 0064+00 1/0 0/0 0/0 .text Execute__12daObjKshtr_cFPPA3_A4_f - */ -void daObjKshtr_c::Execute(Mtx** param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D18-80C49D1C 000070 0004+00 0/1 0/0 0/0 .rodata @4060 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4060 = 62500.0f; -COMPILER_STRIP_GATE(0x80C49D18, &lit_4060); -#pragma pop - -/* 80C49D1C-80C49D20 000074 0004+00 0/1 0/0 0/0 .rodata @4061 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4061 = 12100.0f; -COMPILER_STRIP_GATE(0x80C49D1C, &lit_4061); -#pragma pop - -/* 80C48590-80C48708 000B50 0178+00 1/1 0/0 0/0 .text checkArea__12daObjKshtr_cFv */ -void daObjKshtr_c::checkArea() { - // NONMATCHING -} - -/* 80C48708-80C48798 000CC8 0090+00 1/1 0/0 0/0 .text checkOpen__12daObjKshtr_cFv */ -void daObjKshtr_c::checkOpen() { - // NONMATCHING -} - -/* 80C48798-80C487E0 000D58 0048+00 1/1 0/0 0/0 .text getDemoAction__12daObjKshtr_cFv */ -void daObjKshtr_c::getDemoAction() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D44-80C49D44 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C49E4D = "JAIL_DOOR"; -SECTION_DEAD static char const* const stringBase_80C49E57 = "Timer"; -#pragma pop - -/* 80C487E0-80C489E0 000DA0 0200+00 1/1 0/0 0/0 .text demoProc2__12daObjKshtr_cFv */ -void daObjKshtr_c::demoProc2() { - // NONMATCHING -} - -/* 80C489E0-80C48AC8 000FA0 00E8+00 1/1 0/0 0/0 .text adjustmentProc__12daObjKshtr_cFv */ -void daObjKshtr_c::adjustmentProc() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D20-80C49D24 000078 0004+00 2/6 0/0 0/0 .rodata @4190 */ -SECTION_RODATA static f32 const lit_4190 = -1.0f; -COMPILER_STRIP_GATE(0x80C49D20, &lit_4190); - -/* 80C48AC8-80C48B84 001088 00BC+00 1/1 0/0 0/0 .text keyUnlockInit__12daObjKshtr_cFv */ -void daObjKshtr_c::keyUnlockInit() { - // NONMATCHING -} - -/* 80C48B84-80C48BD8 001144 0054+00 1/1 0/0 0/0 .text keyUnlock__12daObjKshtr_cFv */ -void daObjKshtr_c::keyUnlock() { - // NONMATCHING -} - -/* 80C48BD8-80C48D0C 001198 0134+00 2/2 0/0 0/0 .text openInit__12daObjKshtr_cFv */ -void daObjKshtr_c::openInit() { - // NONMATCHING -} - -/* 80C48D0C-80C48D80 0012CC 0074+00 2/2 0/0 0/0 .text openProc__12daObjKshtr_cFv */ -void daObjKshtr_c::openProc() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D24-80C49D28 00007C 0004+00 0/2 0/0 0/0 .rodata @4300 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4300 = 17.0f; -COMPILER_STRIP_GATE(0x80C49D24, &lit_4300); -#pragma pop - -/* 80C49D28-80C49D2C 000080 0004+00 0/1 0/0 0/0 .rodata @4301 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4301 = 18.0f; -COMPILER_STRIP_GATE(0x80C49D28, &lit_4301); -#pragma pop - -/* 80C48D80-80C48F94 001340 0214+00 1/1 0/0 0/0 .text openProc_type1__12daObjKshtr_cFv */ -void daObjKshtr_c::openProc_type1() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D2C-80C49D38 000084 000A+02 0/1 0/0 0/0 .rodata l_eff_id$4307 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_eff_id[10 + 2 /* padding */] = { - 0x87, - 0x62, - 0x87, - 0x63, - 0x87, - 0x64, - 0x87, - 0x65, - 0x87, - 0x66, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C49D2C, &l_eff_id); -#pragma pop - -/* 80C49D38-80C49D3C 000090 0004+00 0/1 0/0 0/0 .rodata @4350 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4350 = 20.0f; -COMPILER_STRIP_GATE(0x80C49D38, &lit_4350); -#pragma pop - -/* 80C48F94-80C490F8 001554 0164+00 1/1 0/0 0/0 .text openProc_type2__12daObjKshtr_cFv */ -void daObjKshtr_c::openProc_type2() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C49D3C-80C49D40 000094 0004+00 0/1 0/0 0/0 .rodata @4357 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4357 = 30.0f; -COMPILER_STRIP_GATE(0x80C49D3C, &lit_4357); -#pragma pop - -/* 80C49D40-80C49D44 000098 0004+00 0/1 0/0 0/0 .rodata @4358 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4358 = 4.0f; -COMPILER_STRIP_GATE(0x80C49D40, &lit_4358); -#pragma pop - -/* 80C490F8-80C49158 0016B8 0060+00 1/1 0/0 0/0 .text openProc_typeL3Boss__12daObjKshtr_cFv */ -void daObjKshtr_c::openProc_typeL3Boss() { - // NONMATCHING -} - -/* 80C49158-80C4925C 001718 0104+00 1/1 0/0 0/0 .text demoProc__12daObjKshtr_cFv */ -void daObjKshtr_c::demoProc() { - // NONMATCHING -} - -/* 80C4925C-80C494A8 00181C 024C+00 1/0 0/0 0/0 .text demoJail1__12daObjKshtr_cFv */ -void daObjKshtr_c::demoJail1() { - // NONMATCHING -} - -/* 80C494A8-80C495A4 001A68 00FC+00 1/0 0/0 0/0 .text demoJail2__12daObjKshtr_cFv */ -void daObjKshtr_c::demoJail2() { - // NONMATCHING -} - -/* 80C495A4-80C496C8 001B64 0124+00 1/0 0/0 0/0 .text demoJail11__12daObjKshtr_cFv */ -void daObjKshtr_c::demoJail11() { - // NONMATCHING -} - -/* 80C496C8-80C496D0 001C88 0008+00 1/0 0/0 0/0 .text demoJail21__12daObjKshtr_cFv */ -bool daObjKshtr_c::demoJail21() { - return true; -} - -/* 80C496D0-80C497A0 001C90 00D0+00 4/4 0/0 0/0 .text anmInit__12daObjKshtr_cFv */ -void daObjKshtr_c::anmInit() { - // NONMATCHING -} - -/* 80C497A0-80C49880 001D60 00E0+00 1/0 0/0 0/0 .text actionWaitEvent__12daObjKshtr_cFv - */ -void daObjKshtr_c::actionWaitEvent() { - // NONMATCHING -} - -/* 80C49880-80C49914 001E40 0094+00 1/0 0/0 0/0 .text actionEvent__12daObjKshtr_cFv */ -void daObjKshtr_c::actionEvent() { - // NONMATCHING -} - -/* 80C49914-80C49918 001ED4 0004+00 1/0 0/0 0/0 .text actionDead__12daObjKshtr_cFv */ -void daObjKshtr_c::actionDead() { - /* empty function */ -} - -/* 80C49918-80C499CC 001ED8 00B4+00 1/0 0/0 0/0 .text actionWaitEvent2__12daObjKshtr_cFv - */ -void daObjKshtr_c::actionWaitEvent2() { - // NONMATCHING -} - -/* 80C499CC-80C49A08 001F8C 003C+00 1/0 0/0 0/0 .text actionOpen__12daObjKshtr_cFv */ -void daObjKshtr_c::actionOpen() { - // NONMATCHING -} - -/* 80C49A08-80C49A70 001FC8 0068+00 1/0 0/0 0/0 .text actionEvent2__12daObjKshtr_cFv */ -void daObjKshtr_c::actionEvent2() { - // NONMATCHING -} - -/* 80C49A70-80C49A74 002030 0004+00 1/0 0/0 0/0 .text actionDead2__12daObjKshtr_cFv */ -void daObjKshtr_c::actionDead2() { - /* empty function */ -} - -/* 80C49A74-80C49B4C 002034 00D8+00 1/0 0/0 0/0 .text Draw__12daObjKshtr_cFv */ -void daObjKshtr_c::Draw() { - // NONMATCHING -} - -/* 80C49B4C-80C49BB8 00210C 006C+00 1/0 0/0 0/0 .text Delete__12daObjKshtr_cFv */ -void daObjKshtr_c::Delete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C4A0BC-80C4A0E4 00025C 0028+00 1/1 0/0 0/0 .data __vt__12daObjKshtr_c */ -SECTION_DATA extern void* __vt__12daObjKshtr_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daObjKshtr_cFv, - (void*)Create__12daObjKshtr_cFv, - (void*)Execute__12daObjKshtr_cFPPA3_A4_f, - (void*)Draw__12daObjKshtr_cFv, - (void*)Delete__12daObjKshtr_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80C49BB8-80C49C18 002178 0060+00 1/0 0/0 0/0 .text daObjKshtr_create1st__FP12daObjKshtr_c */ -static void daObjKshtr_create1st(daObjKshtr_c* param_0) { - // NONMATCHING -} - -/* 80C49C18-80C49C38 0021D8 0020+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGDelete__FP12daObjKshtr_c */ -static void daObjKshtr_MoveBGDelete(daObjKshtr_c* param_0) { - // NONMATCHING -} - -/* 80C49C38-80C49C58 0021F8 0020+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGExecute__FP12daObjKshtr_c - */ -static void daObjKshtr_MoveBGExecute(daObjKshtr_c* param_0) { - // NONMATCHING -} - -/* 80C49C58-80C49C84 002218 002C+00 1/0 0/0 0/0 .text daObjKshtr_MoveBGDraw__FP12daObjKshtr_c */ -static void daObjKshtr_MoveBGDraw(daObjKshtr_c* param_0) { - // NONMATCHING -} - -/* 80C49C84-80C49CA0 002244 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPUc */ -extern "C" void func_80C49C84(void* _this, u8* param_0) { - // NONMATCHING -} - -/* 80C49D44-80C49D44 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */