summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_kshutter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/actor/d_a_obj_kshutter.cpp')
-rw-r--r--src/d/actor/d_a_obj_kshutter.cpp1551
1 files changed, 866 insertions, 685 deletions
diff --git a/src/d/actor/d_a_obj_kshutter.cpp b/src/d/actor/d_a_obj_kshutter.cpp
index a80dbc0bdf..68aef05a50 100644
--- a/src/d/actor/d_a_obj_kshutter.cpp
+++ b/src/d/actor/d_a_obj_kshutter.cpp
@@ -6,781 +6,922 @@
#include "d/dolzel_rel.h"
#include "d/actor/d_a_obj_kshutter.h"
-#include "dol2asm.h"
-
-
-//
-// Forward References:
-//
-
-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;
-
-//
-// External References:
-//
-
-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];
-
-//
-// Declarations:
-//
+#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,
+
+ /* DZB */
+ /* 0x8 */ DZB_S_SHUT00_S_SHUT_ROU = 0x8,
+
+ /* EVT */
+ /* 0xB */ EVT_S_SHUT00_EVENT_LIST = 0xB,
+};
+
+enum Lv3shut00_RES_File_ID {
+ /* BMDR */
+ /* 0x5 */ BMDR_DOOR_SHUTTER_00 = 0x5,
+
+ /* DZB */
+ /* 0x8 */ DZB_LV3SHUT00_S_SHUT_ROU = 0x8,
+
+ /* 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,
-};
-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,
+static f32 const l_cull_box[6] = {
+ -450.0f, 0.0f, -50.0f, 450.0f, 700.0f, 150.0f,
};
-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
-}
-
-/* ############################################################################################## */
-/* 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
+ if (mpBgW != NULL && mpBgW->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+}
/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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),
-};
+/* 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]);
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
+ JUT_ASSERT(429, modelData != 0);
-/* 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,
- 0,
- (process_method_func)daObjKshtr_MoveBGDraw__FP12daObjKshtr_c,
-};
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
-/* 80C4A080-80C4A0B0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kshutter */
-extern actor_process_profile_definition g_profile_Obj_Kshutter = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Kshutter, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjKshtr_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 443, // mPriority
- &daObjKshtr_METHODS, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+ if (l_anmArcName[mType] != NULL) {
+ int index;
+ if (daPy_py_c::checkNowWolf()) {
+ index = mType * 2 + 1;
+ } else {
+ index = mType << 1;
+ }
-/* 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,
-};
+ J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_anmArcName[mType], l_anmName[index]);
-/* 80C47EA8-80C48008 000468 0160+00 1/0 0/0 0/0 .text CreateHeap__12daObjKshtr_cFv */
-void daObjKshtr_c::CreateHeap() {
- // NONMATCHING
-}
+ JUT_ASSERT(446, anm != 0);
-/* 80C48008-80C48050 0005C8 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
+ mpBckAnm = new mDoExt_bckAnm();
+ if (mpBckAnm == NULL || mpBckAnm->init(anm, 1, 0, 1.0f, 0, -1, false) == 0) {
+ return 0;
+ }
+ }
-/* ############################################################################################## */
-/* 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);
+ #ifdef DEBUG
+ if (checkKey() != 0) {
+ mIsCheckKey = true;
+ }
+ #endif
+
+ return 1;
+}
/* 80C48050-80C48148 000610 00F8+00 1/1 0/0 0/0 .text initKey__12daObjKshtr_cFv */
void daObjKshtr_c::initKey() {
- // NONMATCHING
+ if (!field_0x61e) {
+ if ((int)checkKey() != 0) {
+ mIsCheckKey = true;
+ }
+
+ field_0x61e = true;
+ mKeyHoleId = fpcM_ERROR_PROCESS_ID_e;
+
+ if (!fopAcM_isSwitch(this, mSwNo) && mIsCheckKey) {
+ cXyz sp20(0.0f, 0.0f, 35.0f);
+
+ u32 uVar1 = 0xFFFFFFFF;
+
+ if (mType == TYPE_L3BOSS) {
+ uVar1 = 0xFFFFFF03;
+ } else {
+ uVar1 = 0xFFFFFFFF;
+ }
+
+ mKeyHoleId = fopAcM_createChildFromOffset(PROC_OBJ_KEYHOLE, fopAcM_GetID(this), uVar1, &sp20, fopAcM_GetRoomNo(this), NULL, &scale, -1, NULL);
+ }
+ }
}
/* 80C48148-80C4827C 000708 0134+00 1/0 0/0 0/0 .text phase_0__12daObjKshtr_cFv */
-void daObjKshtr_c::phase_0() {
- // NONMATCHING
+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;
+ }
+
+ mType = getType() + 1;
+ mSwNo = getSwNo();
+
+ #ifdef DEBUG
+ if (mSwNo == 0xFF) {
+ OS_REPORT_ERROR("鍵付き壁ドア:スイッチ指定がありません\n"); // Locked wall door: No switch specification
+ return cPhs_ERROR_e;
+ }
+ #else
+ initKey();
+ #endif
+
+ #ifdef DEBUG
+ if (mType >= 6) {
+ OS_REPORT_ERROR("鍵付き壁ドア:引数0のタイプ指定が不正値です\n"); // Locked wall door: The type specification for argument 0 is invalid
+
+ 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 */
-void daObjKshtr_c::phase_1() {
- // NONMATCHING
+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 */
-s32 daObjKshtr_c::phase_2() {
- return 4;
+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 */
-void daObjKshtr_c::create1st() {
- // NONMATCHING
+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
- */
+/* 80C483CC-80C48470 00098C 00A4+00 1/1 0/0 0/0 .text event_proc_call__12daObjKshtr_cFv */
void daObjKshtr_c::event_proc_call() {
- // NONMATCHING
+ 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
- */
+/* 80C48470-80C4852C 000A30 00BC+00 1/1 0/0 0/0 .text event_proc_call2__12daObjKshtr_cFv */
void daObjKshtr_c::event_proc_call2() {
- // NONMATCHING
+ 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
- */
-void daObjKshtr_c::Execute(Mtx** param_0) {
- // NONMATCHING
-}
+/* 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();
+ }
-/* ############################################################################################## */
-/* 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
+ *param_1 = &mBgMtx;
+ setBaseMtx();
-/* 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
+ return 1;
+}
/* 80C48590-80C48708 000B50 0178+00 1/1 0/0 0/0 .text checkArea__12daObjKshtr_cFv */
-void daObjKshtr_c::checkArea() {
- // NONMATCHING
+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 */
-void daObjKshtr_c::checkOpen() {
- // NONMATCHING
+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 */
-void daObjKshtr_c::getDemoAction() {
- // NONMATCHING
+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);
}
-/* ############################################################################################## */
-/* 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
+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 */
-void daObjKshtr_c::adjustmentProc() {
- // NONMATCHING
+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;
}
-/* ############################################################################################## */
-/* 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
+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 */
-void daObjKshtr_c::keyUnlock() {
- // NONMATCHING
+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 */
-void daObjKshtr_c::openInit() {
- // NONMATCHING
+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 */
-void daObjKshtr_c::openProc() {
- // NONMATCHING
+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;
+ }
}
-/* ############################################################################################## */
-/* 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
+BOOL daObjKshtr_c::openProc_type1() {
+ BOOL rv = mpBckAnm->play();
+
+ if (mpBckAnm->getFrame() == 1.0f) {
+ dComIfGp_particle_set(0x8331, &current.pos, &shape_angle, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this), NULL, NULL, NULL);
+ dComIfGp_particle_set(0x8332, &current.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 */
-void daObjKshtr_c::openProc_type2() {
- // NONMATCHING
+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], &current.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;
}
-/* ############################################################################################## */
-/* 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
+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() {
- // NONMATCHING
+ 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 */
-void daObjKshtr_c::demoJail1() {
- // NONMATCHING
+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, &current.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, &current.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 */
-void daObjKshtr_c::demoJail2() {
- // NONMATCHING
+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 */
-void daObjKshtr_c::demoJail11() {
- // NONMATCHING
+BOOL daObjKshtr_c::demoJail11() {
+ switch (mDemoMode) {
+ case 0:
+ mDemoMode = 1;
+ anmInit();
+ mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_ROLLOPEN2, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ offDzb();
+ break;
+
+ case 1:
+ if (mpBckAnm->play()) {
+ mDemoMode = 2;
+ mDoAud_seStart(Z2SE_OBJ_WOOD_DOOR_OPEN_STOP, &current.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;
+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
+ 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
- */
+/* 80C497A0-80C49880 001D60 00E0+00 1/0 0/0 0/0 .text actionWaitEvent__12daObjKshtr_cFv */
void daObjKshtr_c::actionWaitEvent() {
- // NONMATCHING
+ 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() {
- // NONMATCHING
+ 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 */
@@ -788,20 +929,37 @@ void daObjKshtr_c::actionDead() {
/* empty function */
}
-/* 80C49918-80C499CC 001ED8 00B4+00 1/0 0/0 0/0 .text actionWaitEvent2__12daObjKshtr_cFv
- */
+/* 80C49918-80C499CC 001ED8 00B4+00 1/0 0/0 0/0 .text actionWaitEvent2__12daObjKshtr_cFv */
void daObjKshtr_c::actionWaitEvent2() {
- // NONMATCHING
+ 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() {
- // NONMATCHING
+ if (openProc()) {
+ setAction(2);
+ }
}
/* 80C49A08-80C49A70 001FC8 0068+00 1/0 0/0 0/0 .text actionEvent2__12daObjKshtr_cFv */
void daObjKshtr_c::actionEvent2() {
- // NONMATCHING
+ 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 */
@@ -810,54 +968,77 @@ void daObjKshtr_c::actionDead2() {
}
/* 80C49A74-80C49B4C 002034 00D8+00 1/0 0/0 0/0 .text Draw__12daObjKshtr_cFv */
-void daObjKshtr_c::Draw() {
- // NONMATCHING
+int daObjKshtr_c::Draw() {
+ g_env_light.settingTevStruct(16, &current.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 */
-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,
-};
+int daObjKshtr_c::Delete() {
+ dComIfG_resDelete(&mPhase1, l_arcName[mType]);
+
+ if (l_anmArcName[mType] != NULL) {
+ dComIfG_resDelete(&mPhase2, l_anmArcName[mType]);
+ }
-/* 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
+ return 1;
}
-/* 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
+/* 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();
}
-/* 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
+/* 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();
}
-/* 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
+/* 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();
}
-/* 80C49C84-80C49CA0 002244 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
-extern "C" void func_80C49C84(void* _this, u8* param_0) {
- // NONMATCHING
+/* 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();
}
-/* 80C49D44-80C49D44 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 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,
+ (process_method_func)daObjKshtr_MoveBGDelete,
+ (process_method_func)daObjKshtr_MoveBGExecute,
+ 0,
+ (process_method_func)daObjKshtr_MoveBGDraw,
+};
+
+/* 80C4A080-80C4A0B0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kshutter */
+extern actor_process_profile_definition g_profile_Obj_Kshutter = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Kshutter, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjKshtr_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 443, // mPriority
+ &daObjKshtr_METHODS, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};