summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_stopper2.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-10-29 22:56:22 -0700
committerGitHub <noreply@github.com>2025-10-30 07:56:22 +0200
commit194282d2c268947588c1b39108ce7e9b0100de91 (patch)
treea1792c066ba2e22e38b6303f193b0b0f8b54cc5a /src/d/actor/d_a_obj_stopper2.cpp
parent73927f50a94d85cac09bd31aff71a7ffb5194cbd (diff)
obj_pdwall / obj_rw / obj_stopper2 done (#2760)
* obj_pdwall / obj_rw / obj_stopper2 done * fix jp/pal * Use NULL instead of 0 * Use dEvtCnd_CANDEMO_e --------- Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Diffstat (limited to 'src/d/actor/d_a_obj_stopper2.cpp')
-rw-r--r--src/d/actor/d_a_obj_stopper2.cpp500
1 files changed, 238 insertions, 262 deletions
diff --git a/src/d/actor/d_a_obj_stopper2.cpp b/src/d/actor/d_a_obj_stopper2.cpp
index 68dca5a302..d49ba92f94 100644
--- a/src/d/actor/d_a_obj_stopper2.cpp
+++ b/src/d/actor/d_a_obj_stopper2.cpp
@@ -6,356 +6,332 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_stopper2.h"
-#include "dol2asm.h"
-
-
-//
-// Forward References:
-//
-
-extern "C" static void CheckCreateHeap__FP10fopAc_ac_c();
-extern "C" static void getStopName__Fv();
-extern "C" void getStopModelData__15daObjStopper2_cFv();
-extern "C" void initBaseMtx__15daObjStopper2_cFv();
-extern "C" void setBaseMtx__15daObjStopper2_cFv();
-extern "C" void getMaxOffsetY__15daObjStopper2_cFv();
-extern "C" void Create__15daObjStopper2_cFv();
-extern "C" void CreateHeap__15daObjStopper2_cFv();
-extern "C" void create__15daObjStopper2_cFv();
-extern "C" void execute__15daObjStopper2_cFv();
-extern "C" void event_proc_call__15daObjStopper2_cFv();
-extern "C" void actionWait__15daObjStopper2_cFv();
-extern "C" void actionOrderEvent__15daObjStopper2_cFv();
-extern "C" void actionEvent__15daObjStopper2_cFv();
-extern "C" void actionDead__15daObjStopper2_cFv();
-extern "C" void demoProc__15daObjStopper2_cFv();
-extern "C" void draw__15daObjStopper2_cFv();
-extern "C" void _delete__15daObjStopper2_cFv();
-extern "C" static void daObjStopper2_Draw__FP15daObjStopper2_c();
-extern "C" static void daObjStopper2_Execute__FP15daObjStopper2_c();
-extern "C" static void daObjStopper2_Delete__FP15daObjStopper2_c();
-extern "C" static void daObjStopper2_Create__FP15daObjStopper2_c();
-extern "C" void func_80CEFE6C(void* _this, u8*);
-extern "C" extern char const* const d_a_obj_stopper2__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
-extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
-extern "C" void fopAcM_orderMapToolEvent__FP10fopAc_ac_cUcsUsUsUs();
-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 dComIfG_getStageRes__FPCc();
-extern "C" void isSwitch__10dSv_info_cCFii();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void searchMapEventData__14dEvt_control_cFUc();
-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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_28();
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 data_80CEFFF8[4];
-
-//
-// Declarations:
-//
+
+/* 80CEFF24-80CEFF28 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
+static char* l_arcName = "Stop00";
+
+/* 80CEFF28-80CEFF38 -00001 0010+00 1/1 0/0 0/0 .data l_evName */
+static char* l_evName[4] = {
+ "STOP_OPEN",
+ "STOP_CLOSE",
+ "STOP_OPEN2",
+ "STOP_CLOSE2",
+};
+
+/* 80CEFF38-80CEFF3C -00001 0004+00 1/1 0/0 0/0 .data l_staffName */
+static char* l_staffName = "dstop";
/* 80CEF338-80CEF358 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
static int CheckCreateHeap(fopAc_ac_c* i_this) {
- // NONMATCHING
+ return ((daObjStopper2_c*)i_this)->CreateHeap();
}
-/* ############################################################################################## */
-/* 80CEFEB0-80CEFEB0 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CEFEB0 = "Stop00";
-SECTION_DEAD static char const* const stringBase_80CEFEB7 = "STOP_OPEN";
-SECTION_DEAD static char const* const stringBase_80CEFEC1 = "STOP_CLOSE";
-SECTION_DEAD static char const* const stringBase_80CEFECC = "STOP_OPEN2";
-SECTION_DEAD static char const* const stringBase_80CEFED7 = "STOP_CLOSE2";
-SECTION_DEAD static char const* const stringBase_80CEFEE3 = "dstop";
-SECTION_DEAD static char const* const stringBase_80CEFEE9 = "door-stop.bmd";
-#pragma pop
-
/* 80CEF358-80CEF368 000098 0010+00 1/1 0/0 0/0 .text getStopName__Fv */
-static char* getStopName() {
- // NONMATCHING
+static const char* getStopName() {
+ return "door-stop.bmd";
}
/* 80CEF368-80CEF38C 0000A8 0024+00 1/1 0/0 0/0 .text getStopModelData__15daObjStopper2_cFv */
J3DModelData* daObjStopper2_c::getStopModelData() {
- // NONMATCHING
+ return (J3DModelData*)dComIfG_getStageRes(getStopName());
}
/* 80CEF38C-80CEF3C8 0000CC 003C+00 1/1 0/0 0/0 .text initBaseMtx__15daObjStopper2_cFv */
void daObjStopper2_c::initBaseMtx() {
- // NONMATCHING
+ mpModel->setBaseScale(scale);
+ setBaseMtx();
}
/* 80CEF3C8-80CEF434 000108 006C+00 2/2 0/0 0/0 .text setBaseMtx__15daObjStopper2_cFv */
void daObjStopper2_c::setBaseMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y + mOffsetY, current.pos.z);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80CEF434-80CEF44C 000174 0018+00 2/2 0/0 0/0 .text getMaxOffsetY__15daObjStopper2_cFv
*/
-float daObjStopper2_c::getMaxOffsetY() {
- // NONMATCHING
+f32 daObjStopper2_c::getMaxOffsetY() {
+ J3DJoint* root_jnt = mpModel->getModelData()->getJointNodePointer(0);
+ JUT_ASSERT(154, root_jnt != NULL);
+ return root_jnt->getMax()->y;
}
-/* ############################################################################################## */
-/* 80CEFE90-80CEFE94 000000 0004+00 3/3 0/0 0/0 .rodata @3722 */
-SECTION_RODATA static u8 const lit_3722[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CEFE90, &lit_3722);
-
-/* 80CEFE94-80CEFE98 000004 0004+00 1/1 0/0 0/0 .rodata @3723 */
-SECTION_RODATA static f32 const lit_3723 = 150.0f;
-COMPILER_STRIP_GATE(0x80CEFE94, &lit_3723);
-
-/* 80CEFF24-80CEFF28 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
-SECTION_DATA static void* l_arcName = (void*)&d_a_obj_stopper2__stringBase0;
-
-/* 80CEFF28-80CEFF38 -00001 0010+00 1/1 0/0 0/0 .data l_evName */
-SECTION_DATA static void* l_evName[4] = {
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x7),
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x11),
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x1C),
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x27),
-};
-
/* 80CEF44C-80CEF57C 00018C 0130+00 1/1 0/0 0/0 .text Create__15daObjStopper2_cFv */
int daObjStopper2_c::Create() {
- // NONMATCHING
+ if (!fopAcM_isSwitch(this, getSwbit())) {
+ mOffsetY = 0.0f;
+ field_0x588 = 1;
+ } else {
+ mOffsetY = getMaxOffsetY();
+ field_0x588 = 0;
+ }
+
+ attention_info.position.y += 150.0f;
+ eyePos.y += 150.0f;
+
+ initBaseMtx();
+ fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mpModel->getModelData());
+
+ mTool = getEvId();
+ eventInfo.setArchiveName(l_arcName);
+
+ for (int i = 0; i < 4; i++) {
+ mEventIdx[i] = dComIfGp_getEventManager().getEventIdx(this, l_evName[i], 0xFF);
+ OS_REPORT("閉じデモ用柵:evid<%d>tool<%d>\n", mEventIdx[0], mTool);
+ }
+
+ return 1;
}
/* 80CEF57C-80CEF5C8 0002BC 004C+00 1/1 0/0 0/0 .text CreateHeap__15daObjStopper2_cFv */
int daObjStopper2_c::CreateHeap() {
- // NONMATCHING
+ J3DModelData* modelData = getStopModelData();
+ JUT_ASSERT(206, modelData != NULL);
+
+ mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ if (mpModel == NULL) {
+ return 0;
+ }
+
+ return 1;
}
/* 80CEF5C8-80CEF66C 000308 00A4+00 1/1 0/0 0/0 .text create__15daObjStopper2_cFv */
int daObjStopper2_c::create() {
- // NONMATCHING
+ fopAcM_ct(this, daObjStopper2_c);
+
+ #if DEBUG
+ if (getSwbit() == 0xFF) {
+ OS_REPORT_ERROR("ドア柵:スイッチ指定がありません!\n");
+ return cPhs_ERROR_e;
+ }
+ #endif
+
+ int phase_state = dComIfG_resLoad(&mPhaseReq, l_arcName);
+ if (phase_state != cPhs_COMPLEATE_e) {
+ return phase_state;
+ }
+
+ if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x4000)) {
+ return cPhs_ERROR_e;
+ }
+
+ if (!Create()) {
+ return cPhs_ERROR_e;
+ }
+
+ return cPhs_COMPLEATE_e;
}
/* 80CEF66C-80CEF6A4 0003AC 0038+00 1/1 0/0 0/0 .text execute__15daObjStopper2_cFv */
int daObjStopper2_c::execute() {
- // NONMATCHING
+ event_proc_call();
+ setBaseMtx();
+ return 1;
}
-/* ############################################################################################## */
-/* 80CEFF38-80CEFF3C -00001 0004+00 1/1 0/0 0/0 .data l_staffName */
-SECTION_DATA static void* l_staffName = (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x33);
-
-/* 80CEFF3C-80CEFF48 -00001 000C+00 0/1 0/0 0/0 .data @3769 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3769[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionWait__15daObjStopper2_cFv,
-};
-#pragma pop
-
-/* 80CEFF48-80CEFF54 -00001 000C+00 0/1 0/0 0/0 .data @3770 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3770[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionOrderEvent__15daObjStopper2_cFv,
-};
-#pragma pop
-
-/* 80CEFF54-80CEFF60 -00001 000C+00 0/1 0/0 0/0 .data @3771 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3771[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionEvent__15daObjStopper2_cFv,
-};
-#pragma pop
-
-/* 80CEFF60-80CEFF6C -00001 000C+00 0/1 0/0 0/0 .data @3772 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3772[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionDead__15daObjStopper2_cFv,
-};
-#pragma pop
-
-/* 80CEFF6C-80CEFF9C 000068 0030+00 0/1 0/0 0/0 .data l_func$3768 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_func[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
-
/* 80CEF6A4-80CEF760 0003E4 00BC+00 1/1 0/0 0/0 .text event_proc_call__15daObjStopper2_cFv */
void daObjStopper2_c::event_proc_call() {
- // NONMATCHING
+ static void (daObjStopper2_c::*l_func[])() = {
+ &daObjStopper2_c::actionWait,
+ &daObjStopper2_c::actionOrderEvent,
+ &daObjStopper2_c::actionEvent,
+ &daObjStopper2_c::actionDead,
+ };
+
+ (this->*l_func[mAction])();
}
/* 80CEF760-80CEF98C 0004A0 022C+00 1/0 0/0 0/0 .text actionWait__15daObjStopper2_cFv */
void daObjStopper2_c::actionWait() {
- // NONMATCHING
+ BOOL is_switch = fopAcM_isSwitch(this, getSwbit());
+
+ if (mOffsetY == 0.0f) {
+ field_0x584 = 0;
+ } else {
+ field_0x584 = 1;
+ }
+
+ if (mTool != 0xFF && mOffsetY != 0.0f) {
+ field_0x584 += 2;
+ }
+
+ if ((field_0x584 == 1 && !is_switch) || (field_0x584 == 3 && !is_switch)) {
+ setAction(1);
+
+ if (mTool != 0xFF) {
+ dStage_MapEvent_dt_c* maptooldata = dEvt_control_c::searchMapEventData(mTool);
+ JUT_ASSERT(325, maptooldata != NULL);
+
+ switch (maptooldata->type) {
+ case dStage_MapEvent_dt_TYPE_ZEV:
+ mEventIdx[field_0x584] = dComIfGp_getEventManager().getEventIdx(this, mTool);
+ fopAcM_orderMapToolEvent(this, mTool, 0xFF, 0xFFFF, 1, 0);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ break;
+ case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA:
+ case dStage_MapEvent_dt_TYPE_STB:
+ fopAcM_orderOtherEventId(this, mEventIdx[field_0x584], mTool, 0xFFFF, 0, 1);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ break;
+ default:
+ JUT_ASSERT(346, 0);
+ break;
+ }
+ } else {
+ fopAcM_orderOtherEventId(this, mEventIdx[field_0x584], mTool, 0xFFFF, 0, 1);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ }
+ } else if ((field_0x584 == 0 && is_switch) || (field_0x584 == 2 && is_switch)) {
+ setAction(1);
+ fopAcM_orderOtherEventId(this, mEventIdx[field_0x584], 0xFF, 0xFFFF, 0, 1);
+ eventInfo.onCondition(dEvtCnd_CANDEMO_e);
+ }
}
/* 80CEF98C-80CEFA60 0006CC 00D4+00 1/0 0/0 0/0 .text actionOrderEvent__15daObjStopper2_cFv */
void daObjStopper2_c::actionOrderEvent() {
- // NONMATCHING
+ if (eventInfo.checkCommandDemoAccrpt()) {
+ setAction(2);
+ mStaffId = dComIfGp_evmng_getMyStaffId(l_staffName, NULL, 0);
+ field_0x588 = 1;
+ demoProc();
+ } else {
+ if (mEventIdx[field_0x584] == -1) {
+ fopAcM_orderMapToolEvent(this, mTool, 0xFF, 0xFFFF, 1, 0);
+ } else {
+ fopAcM_orderOtherEventId(this, mEventIdx[field_0x584], mTool, 0xFFFF, 0, 1);
+ }
+
+ eventInfo.onCondition(2);
+ }
}
/* 80CEFA60-80CEFAD4 0007A0 0074+00 1/0 0/0 0/0 .text actionEvent__15daObjStopper2_cFv */
void daObjStopper2_c::actionEvent() {
- // NONMATCHING
+ if (dComIfGp_evmng_endCheck(mEventIdx[field_0x584])) {
+ setAction(0);
+ dComIfGp_event_reset();
+ } else {
+ demoProc();
+ }
}
/* 80CEFAD4-80CEFAD8 000814 0004+00 1/0 0/0 0/0 .text actionDead__15daObjStopper2_cFv */
-void daObjStopper2_c::actionDead() {
- /* empty function */
-}
-
-/* ############################################################################################## */
-/* 80CEFE98-80CEFE9C 000008 0004+00 0/1 0/0 0/0 .rodata @3921 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3921 = 1.0f;
-COMPILER_STRIP_GATE(0x80CEFE98, &lit_3921);
-#pragma pop
-
-/* 80CEFE9C-80CEFEA0 00000C 0004+00 0/1 0/0 0/0 .rodata @3922 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3922 = -1.0f;
-COMPILER_STRIP_GATE(0x80CEFE9C, &lit_3922);
-#pragma pop
-
-/* 80CEFEA0-80CEFEA4 000010 0004+00 0/1 0/0 0/0 .rodata @3923 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3923 = 30.0f;
-COMPILER_STRIP_GATE(0x80CEFEA0, &lit_3923);
-#pragma pop
-
-/* 80CEFEA4-80CEFEA8 000014 0004+00 0/1 0/0 0/0 .rodata @3924 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3924 = 4.0f;
-COMPILER_STRIP_GATE(0x80CEFEA4, &lit_3924);
-#pragma pop
-
-/* 80CEFEA8-80CEFEAC 000018 0004+00 0/1 0/0 0/0 .rodata @3925 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3925 = 60.0f;
-COMPILER_STRIP_GATE(0x80CEFEA8, &lit_3925);
-#pragma pop
-
-/* 80CEFEAC-80CEFEB0 00001C 0004+00 0/1 0/0 0/0 .rodata @3926 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3926 = 6.0f;
-COMPILER_STRIP_GATE(0x80CEFEAC, &lit_3926);
-#pragma pop
-
-/* 80CEFEB0-80CEFEB0 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CEFEF7 = "WAIT";
-SECTION_DEAD static char const* const stringBase_80CEFEFC = "Timer";
-#pragma pop
-
-/* 80CEFF9C-80CEFFA8 -00001 000C+00 1/1 0/0 0/0 .data action_table$3859 */
-SECTION_DATA static void* action_table[3] = {
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x47),
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x7),
- (void*)(((char*)&d_a_obj_stopper2__stringBase0) + 0x11),
-};
+void daObjStopper2_c::actionDead() {}
/* 80CEFAD8-80CEFD40 000818 0268+00 2/2 0/0 0/0 .text demoProc__15daObjStopper2_cFv */
-void daObjStopper2_c::demoProc() {
- // NONMATCHING
+int daObjStopper2_c::demoProc() {
+ static char* action_table[3] = {
+ "WAIT",
+ "STOP_OPEN",
+ "STOP_CLOSE",
+ };
+
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ int act_idx = dComIfGp_evmng_getMyActIdx(mStaffId, action_table, ARRAY_SIZE(action_table), 0, 0);
+ int* idata;
+
+ if (dComIfGp_evmng_getIsAddvance(mStaffId)) {
+ switch (act_idx) {
+ case 0:
+ idata = dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer");
+ if (idata == NULL) {
+ mTimer = 1;
+ } else {
+ mTimer = *idata;
+ }
+ break;
+ case 1:
+ mOffsetY = 0.0f;
+ speedF = 0.0f;
+ fopAcM_seStart(this, Z2SE_OBJ_DOOR_STEEL_BAR, 0);
+ OS_REPORT("閉じデモドア柵:シャッターオープンSE\n");
+ break;
+ case 2:
+ mOffsetY = getMaxOffsetY();
+ speedF = 0.0f;
+ fopAcM_seStart(this, Z2SE_OBJ_DOOR_STEEL_BAR_CL, 0);
+ OS_REPORT("閉じデモドア柵:シャッタークローズSE\n");
+ break;
+ }
+ }
+
+ switch (act_idx) {
+ case 0:
+ if (cLib_calcTimer<u8>(&mTimer) == 0) {
+ dComIfGp_evmng_cutEnd(mStaffId);
+ }
+ break;
+ case 1:
+ cLib_chaseF(&speedF, 30.0f, 4.0f);
+ if (cLib_chaseF(&mOffsetY, getMaxOffsetY(), speedF)) {
+ field_0x588 = 0;
+ dComIfGp_evmng_cutEnd(mStaffId);
+ }
+ break;
+ case 2:
+ cLib_chaseF(&speedF, 60.0f, 6.0f);
+ if (cLib_chaseF(&mOffsetY, 0.0f, speedF)) {
+ dComIfGp_evmng_cutEnd(mStaffId);
+ }
+ break;
+ default:
+ dComIfGp_evmng_cutEnd(mStaffId);
+ break;
+ }
+
+ return 0;
}
/* 80CEFD40-80CEFDB8 000A80 0078+00 1/1 0/0 0/0 .text draw__15daObjStopper2_cFv */
int daObjStopper2_c::draw() {
- // NONMATCHING
+ if (field_0x588 == 0) {
+ return 1;
+ }
+
+ g_env_light.settingTevStruct(16, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
+ mDoExt_modelUpdateDL(mpModel);
+ return 1;
}
/* 80CEFDB8-80CEFDEC 000AF8 0034+00 1/1 0/0 0/0 .text _delete__15daObjStopper2_cFv */
int daObjStopper2_c::_delete() {
- // NONMATCHING
+ dComIfG_resDelete(&mPhaseReq, l_arcName);
+ return 1;
}
/* 80CEFDEC-80CEFE0C 000B2C 0020+00 1/0 0/0 0/0 .text daObjStopper2_Draw__FP15daObjStopper2_c */
static int daObjStopper2_Draw(daObjStopper2_c* i_this) {
- // NONMATCHING
+ return i_this->draw();
}
/* 80CEFE0C-80CEFE2C 000B4C 0020+00 1/0 0/0 0/0 .text daObjStopper2_Execute__FP15daObjStopper2_c
*/
static int daObjStopper2_Execute(daObjStopper2_c* i_this) {
- // NONMATCHING
+ return i_this->execute();
}
/* 80CEFE2C-80CEFE4C 000B6C 0020+00 1/0 0/0 0/0 .text daObjStopper2_Delete__FP15daObjStopper2_c */
static int daObjStopper2_Delete(daObjStopper2_c* i_this) {
- // NONMATCHING
+ return i_this->_delete();
}
/* 80CEFE4C-80CEFE6C 000B8C 0020+00 1/0 0/0 0/0 .text daObjStopper2_Create__FP15daObjStopper2_c */
static int daObjStopper2_Create(daObjStopper2_c* i_this) {
- // NONMATCHING
-}
-
-/* 80CEFE6C-80CEFE88 000BAC 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
-extern "C" void func_80CEFE6C(void* _this, u8* param_0) {
- // NONMATCHING
+ return i_this->create();
}
-/* ############################################################################################## */
/* 80CEFFA8-80CEFFC8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjStopper2_Method */
static actor_method_class l_daObjStopper2_Method = {
- (process_method_func)daObjStopper2_Create__FP15daObjStopper2_c,
- (process_method_func)daObjStopper2_Delete__FP15daObjStopper2_c,
- (process_method_func)daObjStopper2_Execute__FP15daObjStopper2_c,
- 0,
- (process_method_func)daObjStopper2_Draw__FP15daObjStopper2_c,
+ (process_method_func)daObjStopper2_Create,
+ (process_method_func)daObjStopper2_Delete,
+ (process_method_func)daObjStopper2_Execute,
+ NULL,
+ (process_method_func)daObjStopper2_Draw,
};
/* 80CEFFC8-80CEFFF8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Stopper2 */