diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-09-23 04:20:38 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-23 14:20:38 +0300 |
| commit | 125f2325a5d4979b8142d1610937d32f2f42fb82 (patch) | |
| tree | 35f255292bcdfb0d78b43442eb74f5b71d89d628 /src/d/d_event_manager.cpp | |
| parent | 47abdf82fac4a2f58319e8d6ad22a1a035bf413e (diff) | |
cleanup event stuff (#2688)
* cleanup event stuff
* fix debug
Diffstat (limited to 'src/d/d_event_manager.cpp')
| -rw-r--r-- | src/d/d_event_manager.cpp | 1355 |
1 files changed, 892 insertions, 463 deletions
diff --git a/src/d/d_event_manager.cpp b/src/d/d_event_manager.cpp index 8873e3ea4a..a4f6f0f2e4 100644 --- a/src/d/d_event_manager.cpp +++ b/src/d/d_event_manager.cpp @@ -10,7 +10,41 @@ #include "d/actor/d_a_player.h" #include "d/d_camera.h" #include "d/d_com_inf_game.h" -#include "stdio.h" +#include "d/d_demo.h" +#include "d/d_s_play.h" +#include "SSystem/SComponent/c_counter.h" +#include <cstring.h> + +#if DEBUG +static dEvM_HIO_c l_HIO; +#endif + +namespace { +inline s16 makeCompositId(const s16 index, int type) { + return index | (type << 8); +} + +inline s16 getIndexCompositId(s16 compositId) { + if (compositId == -1) { + return -1; + } else { + return compositId & 0xFF; + } +} + +inline int getTypeCompositId(s16 compositId) { + // TODO: reconcile this + #if DEBUG + if (compositId == -1) { + return 0; + } else { + return compositId >> 8; + } + #else + return compositId == -1 ? 0 : compositId >> 8; + #endif +} +} void dEvent_exception_c::init() { mEventInfoIdx = -1; @@ -18,100 +52,205 @@ void dEvent_exception_c::init() { } /* 800463F0-80046480 040D30 0090+00 0/0 2/2 0/0 .text setStartDemo__18dEvent_exception_cFi */ -s32 dEvent_exception_c::setStartDemo(int mapToolID) { +int dEvent_exception_c::setStartDemo(int mapToolID) { int roomNo = dComIfGp_roomControl_getStayNo(); - dStage_MapEvent_dt_c* eventData = dEvt_control_c::searchMapEventData(mapToolID, roomNo); + dStage_MapEvent_dt_c* mapdata = dEvt_control_c::searchMapEventData(mapToolID, roomNo); - if (eventData != NULL && eventData->mSwitch != 0xFF && - dComIfGs_isSwitch(eventData->mSwitch, roomNo)) - { + if (mapdata != NULL && mapdata->switch_no != 0xFF && dComIfGs_isSwitch(mapdata->switch_no, roomNo)) { return 0xFF; } else if (mEventInfoIdx != mapToolID) { mEventInfoIdx = mapToolID; + OS_REPORT("event manager: setStartDemo: %d \n", mapToolID); } + return mapToolID; } /* 80046480-800465E8 040DC0 0168+00 1/1 0/0 0/0 .text getEventName__18dEvent_exception_cFv */ const char* dEvent_exception_c::getEventName() { static const char* soecial_names[14] = { - "NORMAL_COMEBACK", "DEFAULT_START", "SHUTTER_START", "SHUTTER_START_STOP", - "BS_SHUTTER_START", "BS_SHUTTER_START_B", "KNOB_START", "KNOB_START_B", - "FMASTER_START", "FALL_START", "CRAWLOUT_START", "BOSSWARP_START", - "PORTALWARP_START", "PORTALWARP_START_B", + "NORMAL_COMEBACK", + "DEFAULT_START", + "SHUTTER_START", + "SHUTTER_START_STOP", + "BS_SHUTTER_START", + "BS_SHUTTER_START_B", + "KNOB_START", + "KNOB_START_B", + "FMASTER_START", + "FALL_START", + "CRAWLOUT_START", + "BOSSWARP_START", + "PORTALWARP_START", + "PORTALWARP_START_B", }; int roomNo = dComIfGp_roomControl_getStayNo(); dStage_roomDt_c* roomDt = dComIfGp_roomControl_getStatusRoomDt(roomNo); dStage_MapEventInfo_c* eventInfo = roomDt->getMapEventInfo(); + if (mEventInfoIdx == -1) { return "(!NO REGIST!)"; } if (200 < mEventInfoIdx && mEventInfoIdx < 215) { if (mEventInfoIdx == 203) { - dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); + stage_stag_info_class* stage_info = dComIfGp_getStageStagInfo(); + JUT_ASSERT(136, stage_info); + + u32 sp8 = dStage_stagInfo_GetSTType(stage_info); } else if (mEventInfoIdx == 213) { switch (dComIfGp_SelectWarpPt_get()) { case 3: mEventInfoIdx = 214; } } + return soecial_names[mEventInfoIdx - 201]; - } else { - if (eventInfo == NULL) { - return "(!NO INFO!)"; - } + } + + if (eventInfo == NULL) { + OS_REPORT("event manager: get name: no event info!!\n\n"); + return "(!NO INFO!)"; + } - if (mEventInfoIdx < 0 || mEventInfoIdx > eventInfo->num) { - return "(!BAD NUMBER!)"; + if (mEventInfoIdx < 0 || mEventInfoIdx > eventInfo->num) { + OS_REPORT("event manager: get name: illegal number %d!!\n\n", mEventInfoIdx); + return "(!BAD NUMBER!)"; + } + + switch (eventInfo->m_entries[mEventInfoIdx].type) { + case 1: + case 2: + return eventInfo->m_entries[mEventInfoIdx].data.event_name; + case 0: + return "(MAP TOOL CAMERA)"; + default: + return "(!BAD DATA!)"; + } +} + +#if DEBUG +void dEvent_manager_c::debugBfProc() { + s16 id = makeCompositId(l_HIO.m_playtest.mEventIdx, BASE_DEBUG); + char* eventname; + + if (mEventList[BASE_DEBUG].getHeaderP() != NULL) { + eventname = mEventList[BASE_DEBUG].getEventName(l_HIO.m_playtest.mEventIdx); + + switch (l_HIO.m_playtest.field_0xA) { + case 1: + if (startCheck(id)) { + l_HIO.m_playtest.field_0xA = 2; + mFlags.init(); + } + break; + case 2: + if (endCheck(id)) { + dComIfGp_getEvent().reset(); + l_HIO.m_playtest.field_0xA = 0; + } + break; + case 3: + if (endCheck(id)) { + dComIfGp_getEvent().reset(); + l_HIO.m_playtest.field_0xA = 0; + } + break; } - dStage_MapEvent_dt_c* revt = &eventInfo->m_entries[mEventInfoIdx]; - switch (revt->mType) { + switch (l_HIO.m_playtest.mEventCameraMode) { case 1: + if (l_HIO.m_playtest.field_0xA == 0) { + l_HIO.m_playtest.field_0xA = 1; + l_HIO.m_playtest.mEventIdx = l_HIO.m_playtest.mTargetEvent; + } + break; case 2: - return revt->mName; - case 0: - return "(MAP TOOL CAMERA)"; - default: - return "(!BAD DATA!)"; + switch (l_HIO.m_playtest.field_0xA) { + case 1: + l_HIO.m_playtest.field_0xA = 0; + break; + case 2: + closeProc(mEventList[BASE_DEBUG].getEventP(l_HIO.m_playtest.mEventIdx)); + + if (dDemo_c::getMode() != 0) { + dDemo_c::end(); + } + + l_HIO.m_playtest.field_0xA = 3; + break; + } + break; + } + + eventname = mEventList[BASE_DEBUG].getEventName(l_HIO.m_playtest.mEventIdx); + switch (l_HIO.m_playtest.field_0xA) { + case 1: + fopAcM_orderOtherEvent(daPy_getPlayerActorClass(), eventname, 0xFFFF, 1, 0); } + + l_HIO.m_playtest.mEventCameraMode = 0; } } +#endif + +#if DEBUG +static void dummyStrings() { + char* s = "debugPrint\n"; + s = "header->event.num = %d\n"; + s = "event[%d] = (name %s, n_staff = %d endSound = %d)\n"; + s = " staff[%d] = %d\n"; + s = "staff[%d] = {name %s, tag_id = %d, startCut = %d type = %d, always = %d}\n"; + s = "cut[%d] = {name %s, startFlag (%d,%d,%d) ,flagId %d, dataTop %d,next %d}\n"; + s = "data[%d] = {name %s, type %d, index %d, number %d, next %d}\n"; + s = "string = %s\n"; +} +#endif /* 800465E8-80046688 040F28 00A0+00 1/1 0/0 0/0 .text * getSubstance__16dEvent_manager_cFP11dEvDtData_ci */ -void* dEvent_manager_c::getSubstance(dEvDtData_c* p_data, int type) { - if (p_data->getIndex() < 0 || p_data->getNumber() <= 0) { - return NULL; - } else { - switch (p_data->getType()) { - case dEvDtData_c::TYPE_FLOAT: - case dEvDtData_c::TYPE_VEC: - case 2: - return getBase().getFDataP(p_data->getIndex()); - case dEvDtData_c::TYPE_INT: - return getBase().getIDataP(p_data->getIndex()); - case dEvDtData_c::TYPE_STRING: - return getBase().getSDataP(p_data->getIndex()); - } +void* dEvent_manager_c::getSubstance(dEvDtData_c* evData, int type) { + if (evData->getIndex() < 0 || evData->getNumber() <= 0) { + JUT_ASSERT(378, 0); return NULL; } + + if (type != -1 && type != evData->getType()) { + JUT_ASSERT(383, 0); + } + + switch (evData->getType()) { + case dEvDtData_c::TYPE_FLOAT: + case dEvDtData_c::TYPE_VEC: + case 2: + return getBase().getFDataP(evData->getIndex()); + case dEvDtData_c::TYPE_INT: + return getBase().getIDataP(evData->getIndex()); + case dEvDtData_c::TYPE_STRING: + return getBase().getSDataP(evData->getIndex()); + default: + // "dEvent_manager_c::getSubstance unsupported type %d" + OS_REPORT("dEvent_manager_c::getSubstance 未対応タイプ %d\n", evData->getType()); + JUT_ASSERT(403, 0); + } + + return NULL; } -void dEvent_manager_c::setDbgData(const char* buffer) { - if(buffer) { - char* writableBuffer = const_cast<char*>(buffer); - mEventList[11].init(writableBuffer, -1); +#if DEBUG +void dEvent_manager_c::setDbgData(const char* srcData) { + if (srcData != NULL) { + char* data = const_cast<char*>(srcData); + mEventList[BASE_DEBUG].init(data, -1); } } +#endif dEvent_manager_c::dEvent_manager_c() { mDataLoaded = false; } -/* ############################################################################################## */ /* 80379F50-80379F60 0065B0 000F+01 6/6 0/0 0/0 .rodata * DataFileName__29@unnamed@d_event_manager_cpp@ */ namespace { @@ -121,83 +260,189 @@ static char const DataFileName[] = "event_list.dat"; /* 80046710-80046800 041050 00F0+00 0/0 1/1 0/0 .text create__16dEvent_manager_cFv */ int dEvent_manager_c::create() { mCameraPlay = 0; - mEventException.init(); + mException.init(); mFlags.init(); - mCurrentEventType = 0; - mCurrentEventCompositId = -1; - field_0x1b8 = 0; + mCurrentEvType = 0; + mCurrentEvId = -1; + unk_0x1b8 = 0; mRoomNo = -1; mDataLoaded = 0; - for (int i = 4; i <= 9; i++) { + char* res; + int base_status; + int i; + + // "event manager: Stage Data init!!" + OS_REPORT("event manager: \x1b[31mステージデータ初期化!!\n\x1b[m"); + for (i = BASE_ROOM0; i <= BASE_ROOM5; i++) { mEventList[i].init(); } - mEventList[3].init((char*)dComIfG_getStageRes(DataFileName), -1); - mEventList[10].init(); - mEventList[1].init((char*)dComIfG_getObjectRes("Event", DataFileName), -1); - mEventList[2].init(); + res = (char*)dComIfG_getStageRes(DataFileName); + base_status = mEventList[BASE_STAGE].init(res, -1); + +#if DEBUG + if (res != NULL) { + // "event manager: BASE_SCENE loaded (%d)" + OS_REPORT("event manager: BASE_SCENEを読み込んだ (%d)\n", base_status); + } else { + // "event manager: BASE_SCENE couldn't be loaded" + OS_REPORT("event manager: BASE_SCENEは読み込めなかった\n"); + } +#endif + + mEventList[BASE_DEMO].init(); + + res = (char*)dComIfG_getObjectRes("Event", DataFileName); + base_status = mEventList[BASE_KEEP].init(res, -1); + + #if DEBUG + if (base_status) { + // "event manager: BASE_KEEP loaded (%d)" + OS_REPORT("event manager: BASE_KEEPを読み込んだ (%d)\n", base_status); + } else { + // "event manager: BASE_KEEP couldn't be loaded" + OS_REPORT("event manager: BASE_KEEPは読み込めなかった\n"); + } + #endif + + mEventList[BASE_ACTOR].init(); + +#if DEBUG + if (l_HIO.field_0x004 < 0) { + // "Event Manager" + l_HIO.field_0x004 = mDoHIO_CREATE_CHILD("イベントマネージャ", &l_HIO); + } + + if (mDoCPd_c::getHoldL(PAD_2)) { + // "event: file priority mode ON!!" + OS_REPORT("event: 常駐優先モード ON!!\n"); + l_HIO.m_prioritize_file = true; + } + + if (l_HIO.m_prioritize_file) { + mEventList[BASE_DEBUG].init(res, -1); + } else { + mEventList[BASE_DEBUG].init(); + } + + if (l_HIO.m_evm_debug && res == NULL) { + // "!!\n!!\n!!\nEvent List not found!!\n!!\n!!\n" + OS_REPORT("!!\n!!\n!!\nイベントリスト見つからず!!\n!!\n!!\n"); + } +#endif + return 1; } /* 80046800-80046888 041140 0088+00 0/0 8/8 24/24 .text setObjectArchive__16dEvent_manager_cFPc */ -bool dEvent_manager_c::setObjectArchive(char* arcName) { +bool dEvent_manager_c::setObjectArchive(char* arcname) { char* rt = NULL; - if (arcName != NULL) { - char* res = (char*)dComIfG_getObjectRes(arcName, DataFileName); + if (arcname != NULL) { + char* res = (char*)dComIfG_getObjectRes(arcname, DataFileName); rt = res; - mEventList[2].init(res, -1); + int base_status = mEventList[BASE_ACTOR].init(res, -1); + + #if DEBUG + if (base_status) { + // "event manager: BASE_ACTOR loaded (%d)" + OS_REPORT("event manager: BASE_ACTORを読み込んだ (%d)\n", base_status); + } else { + // "event manager: BASE_ACTOR couldn't be loaded" + OS_REPORT("event manager: BASE_ACTORは読み込めなかった\n"); + } + #endif } else { - mEventList[2].init(); + mEventList[BASE_ACTOR].init(); } + return rt != NULL; } /* 80046888-80046904 0411C8 007C+00 0/0 1/1 0/0 .text demoInit__16dEvent_manager_cFv */ void dEvent_manager_c::demoInit() { - if (mDataLoaded == false) { - if (dStage_roomControl_c::getDemoArcName()[0] != '\0') { - mEventList[10].init( - (char*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), DataFileName), - -1); + if (!mDataLoaded) { + // "event manager: init demo data!!" + OS_REPORT("event manager: \x1b[31mデモデータ初期化!!\n\x1b[m"); + + char* demo_arcname = dStage_roomControl_c::getDemoArcName(); + if (demo_arcname[0] != '\0') { + char* res = (char*)dComIfG_getObjectRes(demo_arcname, DataFileName); + int base_status = mEventList[BASE_DEMO].init(res, -1); + + #if DEBUG + if (base_status) { + // "event manager: BASE_DEMO loaded (%d)" + OS_REPORT("event manager: BASE_DEMO[%s]を読み込んだ (%d)\n", demo_arcname, base_status); + } else { + // "event manager: BASE_DEMO couldn't be loaded" + OS_REPORT("event manager: BASE_DEMO[%s]は読み込めなかった\n", demo_arcname); + } + #endif + } else { + // "event manager: BASE_DEMO not available." + OS_REPORT("event manager: BASE_DEMOはありません。\n"); } + mDataLoaded = true; } } /* 80046904-800469EC 041244 00E8+00 0/0 1/1 0/0 .text roomInit__16dEvent_manager_cFi */ void dEvent_manager_c::roomInit(int roomNo) { + // "event manager: room data init!! (%d)" + OS_REPORT("event manager: \x1b[31m部屋データ初期化!!(%d)\n\x1b[m", roomNo); + if (roomNo == -1) { roomNo = dComIfGp_roomControl_getStayNo(); } - char arc_name[8]; - strcpy(arc_name, dComIfG_getRoomArcName(roomNo)); - char* data = (char*)dComIfG_getStageRes(arc_name, DataFileName); + + char arcname[8]; + strcpy(arcname, dComIfG_getRoomArcName(roomNo)); + char* res = (char*)dComIfG_getStageRes(arcname, DataFileName); int i; - int eventIdx = -1; - for (i = 4; i <= 9; i++) { + int room_idx = -1; + for (i = BASE_ROOM0; i <= BASE_ROOM5; i++) { if (mEventList[i].getHeaderP() == NULL) { - eventIdx = i; + room_idx = i; continue; } if (mEventList[i].roomNo() == roomNo) { - eventIdx = i; + room_idx = i; break; } } - if (eventIdx != -1) { - mEventList[eventIdx].init(data, roomNo); + int base_status; + if (room_idx != -1) { + base_status = mEventList[room_idx].init(res, roomNo); } + mRoomNo = roomNo; + +#if DEBUG + if (room_idx == -1) { + // "event manager: BASE_ROOM no free space." + OS_REPORT("event manager: BASE_ROOM空きがなかった。\n"); + } else if (base_status != 0) { + // "event manager: BASE_ROOM:%d[%s] loaded (%d)" + OS_REPORT("event manager: BASE_ROOM:%d[%s]を読み込んだ (%d)\n", room_idx, arcname, base_status); + } else { + // "event manager: BASE_ROOM[%s] couldn't be loaded" + OS_REPORT("event manager: BASE_ROOM[%s]は読み込めなかった\n", arcname); + } +#endif } void dEvent_manager_c::roomFinish(int roomNo) { - for (int i = 4; i <= 9; i++) { + int i; + for (i = BASE_ROOM0; i <= BASE_ROOM5; i++) { if (mEventList[i].getHeaderP() != NULL && roomNo == mEventList[i].roomNo()) { + // "event manager: BASE_ROOM:%d[%s] delete." + OS_REPORT("event manager: BASE_ROOM:%d[%s]削除。\n", i, dComIfG_getRoomArcName(roomNo)); mEventList[i].init(); } } @@ -206,135 +451,226 @@ void dEvent_manager_c::roomFinish(int roomNo) { /* 80046A58-80046C0C 041398 01B4+00 0/0 1/1 0/0 .text orderStartDemo__16dEvent_manager_cFv */ int dEvent_manager_c::orderStartDemo() { BOOL success = FALSE; - if (mEventException.mEventInfoIdx == -2) { + fopAc_ac_c* var_r26 = NULL; + + if (mException.mEventInfoIdx == -2) { return -2; } - s16 eventIdx; - if (200 < mEventException.mEventInfoIdx && mEventException.mEventInfoIdx < 215) { - eventIdx = getEventIdx(mEventException.getEventName(), -1, -1); - success = fopAcM_orderOtherEventId(NULL, eventIdx, 0xFF, 0xFFFF, 5, 1); - } else if (mEventException.mEventInfoIdx != -1 && mEventException.mEventInfoIdx != 0xFF) { - u8 eventInfoIdx = mEventException.mEventInfoIdx; - eventIdx = getEventIdx(NULL, eventInfoIdx, -1); - success = fopAcM_orderMapToolAutoNextEvent(NULL, eventInfoIdx, eventIdx, 0xFFFF, 1, 5); + s16 evId; + if (200 < mException.mEventInfoIdx && mException.mEventInfoIdx < 215) { + evId = getEventIdx(mException.getEventName(), 0xFF, -1); + OS_REPORT("event manager: event ID %d (%s) order as soecial %d\n", evId, mException.getEventName(), mException.mEventInfoIdx); + + success = fopAcM_orderOtherEventId(var_r26, evId, 0xFF, 0xFFFF, 5, 1); + } else if (mException.mEventInfoIdx != -1 && mException.mEventInfoIdx != 0xFF) { + u8 eventInfoIdx = mException.mEventInfoIdx; + daPy_py_c* spC = daPy_getPlayerActorClass(); + evId = getEventIdx(NULL, eventInfoIdx, -1); + OS_REPORT("event manager: event ID %d order as maptool %d\n", evId, mException.mEventInfoIdx); + JUT_ASSERT(679, evId != (-1)); + + success = fopAcM_orderMapToolAutoNextEvent(var_r26, eventInfoIdx, evId, 0xFFFF, 1, 5); } else if (dComIfGp_getStartStagePoint() == -2 || dComIfGp_getStartStagePoint() == -3) { - eventIdx = getEventIdx( - daPy_py_c::checkNowWolf() ? "WOLF_WORLD_CHANGE_OUT" : "WORLD_CHANGE_OUT", 0xFF, -1); - success = fopAcM_orderOtherEventId(NULL, eventIdx, 0xFF, 0xFFFF, 5, 1); + evId = getEventIdx( daPy_py_c::checkNowWolf() ? "WOLF_WORLD_CHANGE_OUT" : "WORLD_CHANGE_OUT", 0xFF, -1); + OS_REPORT("event manager: event ID %d (WORLD_CHANGE_OUT) order for [%d]\n", evId, mException.mEventInfoIdx); + + success = fopAcM_orderOtherEventId(var_r26, evId, 0xFF, 0xFFFF, 5, 1); } if (success == FALSE) { - eventIdx = getEventIdx("DEFAULT_START", 0xFF, -1); - fopAcM_orderOtherEventId(NULL, eventIdx, 0xFF, 0xFFFF, 5, 1); + evId = getEventIdx("DEFAULT_START", 0xFF, -1); + OS_REPORT("event manager: event ID %d (DEFAULT_START) order for [%d]\n", evId, mException.mEventInfoIdx); + + fopAcM_orderOtherEventId(var_r26, evId, 0xFF, 0xFFFF, 5, 1); } - return eventIdx; + return evId; } void dEvent_manager_c::remove() { - for (int i = 0; i < 11; i++) { + int i; + for (i = 0; i < BASE_MAX; i++) { mEventList[i].init(); } + mCameraPlay = 0; - mEventException.init(); + mException.init(); mFlags.init(); + +#if DEBUG + if (l_HIO.field_0x004 >= 0) { + mDoHIO_DELETE_CHILD(l_HIO.field_0x004); + l_HIO.field_0x004 = -1; + } +#endif } /* 80046C74-80046C88 0415B4 0014+00 1/1 0/0 0/0 .text extraOnObjectCallBack__FP10fopAc_ac_cPv */ -static int extraOnObjectCallBack(fopAc_ac_c* pActor, void* param_1) { - fopAcM_OnStatus(pActor, 0x800); - return 0; +static void* extraOnObjectCallBack(fopAc_ac_c* actor, void* data) { + fopAcM_OnStatus(actor, fopAcM_STATUS_UNK_0x800); + return NULL; } /* 80046C88-80046C9C 0415C8 0014+00 1/1 0/0 0/0 .text extraOffObjectCallBack__FP10fopAc_ac_cPv */ -static int extraOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) { - fopAcM_OffStatus(pActor, 0x800); - return 0; +static void* extraOffObjectCallBack(fopAc_ac_c* actor, void* data) { + fopAcM_OffStatus(actor, fopAcM_STATUS_UNK_0x800); + return NULL; } /* 80046C9C-80046CB8 0415DC 001C+00 1/1 0/0 0/0 .text allOffObjectCallBack__FP10fopAc_ac_cPv */ -static int allOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) { - fopAcM_OffStatus(pActor, 0x9000); - return 0; +static void* allOffObjectCallBack(fopAc_ac_c* actor, void* data) { + fopAc_ac_c* spC = (fopAc_ac_c*)data; + + fopAcM_OffStatus(actor, fopAcM_STATUS_UNK_0x8000 | fopAcM_STATUS_UNK_0x1000); + return NULL; } /* 80046CB8-80046DA0 0415F8 00E8+00 1/1 0/0 0/0 .text * startProc__16dEvent_manager_cFP12dEvDtEvent_c */ -void dEvent_manager_c::startProc(dEvDtEvent_c* p_evnt) { - for (int i = 0; i < p_evnt->getNStaff(); i++) { - dEvDtStaff_c* staff = getBase().getStaffP(p_evnt->getStaff(i)); +void dEvent_manager_c::startProc(dEvDtEvent_c* event) { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "event manager: event %s started!!" + OS_REPORT("\x1b[34m%06d: event manager: %sのイベント開始!!\n\x1b[m", g_Counter.mCounter0, event->getName()); + } + #endif + + dEvDtStaff_c* staff; + fopAc_ac_c* event_actor_p; + int staffNo; + + int i; + for (i = 0; i < event->getNStaff(); i++) { + staffNo = event->getStaff(i); + staff = getBase().getStaffP(staffNo); if (staff->getType() == dEvDtStaff_c::TYPE_DEFAULT) { - fopAc_ac_c* ac = specialCast(staff->getName(), 1); - if (ac == NULL) { - ac = fopAcM_searchFromName4Event(staff->getName(), -1); + #if DEBUG + if (l_HIO.m_evm_debug) { + // "participant %s" + OS_REPORT("参加者 %s\n", staff->getName()); } + #endif - if (ac != NULL) { - fopAcM_OnStatus(ac, 0x8000); + event_actor_p = specialCast(staff->getName(), 1); + if (event_actor_p == NULL) { + event_actor_p = fopAcM_searchFromName4Event(staff->getName(), -1); + } + + if (event_actor_p != NULL) { + fopAcM_OnStatus(event_actor_p, fopAcM_STATUS_UNK_0x8000); + // "event manager: C:Staff ON %s!!" + OS_REPORT("\x1B[34m%06d: event manager: C:スタッフ ON %s!!\n\x1B[m", g_Counter.mCounter0, dStage_getName(fopAcM_GetProfName(event_actor_p), -1)); + } else { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "No actor for demo!! Name<%s>" + OS_REPORT("デモの出演者がいません!! 名前<%s>\n", staff->getName()); + } + #endif } } if (staff->getType() == dEvDtStaff_c::TYPE_ALL) { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "bystander %s" + OS_REPORT("傍観者 %s\n", staff->getName()); + } + #endif + issueStaff(staff->getName()); } + staff->init(); } - p_evnt->mEventState = 1; + event->mEventState = dEvDt_State_START_e; mFlags.init(); } /* 80046DA0-80046DAC 0416E0 000C+00 2/2 0/0 0/0 .text * closeProc__16dEvent_manager_cFP12dEvDtEvent_c */ -void dEvent_manager_c::closeProc(dEvDtEvent_c* p_evnt) { - p_evnt->mEventState = 2; +void dEvent_manager_c::closeProc(dEvDtEvent_c* event) { + event->mEventState = dEvDt_State_END_e; } /* 80046DAC-80046E64 0416EC 00B8+00 0/0 2/2 0/0 .text endProc__16dEvent_manager_cFsi */ -void dEvent_manager_c::endProc(s16 eventID, int close) { - dEvDtEvent_c* event = getEventData(eventID); - if (event != NULL) { - if (close != 0) { - closeProc(event); +void dEvent_manager_c::endProc(s16 evId, BOOL isClose) { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "event manager: evId = %d event end process!!" + OS_REPORT("\x1b[34m%06d: event manager: evId = %d の イベント終了処理!! \n\x1b[m", g_Counter.mCounter0, evId); + } + #endif + + dEvDtEvent_c* event = getEventData(evId); + + if (event == NULL) { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "event manager: event not found!!" + OS_REPORT("\x1b[31mイベントが見つからない!!\n\x1b[m"); } + #endif + return; + } + + if (isClose) { + closeProc(event); + } - if (event->mEventState == 2) { - const char* param = "ALL"; - fopAcM_Search((fopAcIt_JudgeFunc)allOffObjectCallBack, (void*)param); - mCameraPlay = 2; - event->mEventState = 0; - mCurrentEventType = 0; - mCurrentEventCompositId = -1; - dComIfGp_getEvent().setPtD(NULL); - dComIfGp_getEvent().setPtI(NULL); + if (event->mEventState != dEvDt_State_END_e) { + #if DEBUG + if (l_HIO.m_evm_debug) { + // "%s(%d) event not in end state!! state = %d" + OS_REPORT("%s(%d) イベントが終了条件でない!! state = %d\n", getBase().getEventName(evId), evId, event->mEventState); } + #endif + return; } + + const char* param = "ALL"; + fopAcM_Search((fopAcIt_JudgeFunc)allOffObjectCallBack, (void*)param); + mCameraPlay = 2; + event->mEventState = 0; + mCurrentEvType = 0; + mCurrentEvId = -1; + dComIfGp_getEvent().setPtD(NULL); + dComIfGp_getEvent().setPtI(NULL); } /* 80046E64-800473FC 0417A4 0598+00 0/0 1/1 0/0 .text Sequencer__16dEvent_manager_cFv */ void dEvent_manager_c::Sequencer() { dEvt_control_c& evtControl = dComIfGp_getEvent(); - dEvDtEvent_c* event = getEventData(mCurrentEventCompositId); - dStage_MapEvent_dt_c* mapEvent = evtControl.getStageEventDt(); + dEvDtEvent_c* event = getEventData(mCurrentEvId); + dStage_MapEvent_dt_c* mapdata = evtControl.getStageEventDt(); if (event != NULL) { if (evtControl.chkEventFlag(0x100)) { char* name = NULL; - if (mapEvent != NULL) { - switch (mapEvent->mType) { - case 0: + if (mapdata != NULL) { + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: default: break; - case 1: - case 2: - name = mapEvent->mName; + case dStage_MapEvent_dt_TYPE_ZEV: + case dStage_MapEvent_dt_TYPE_STB: + name = mapdata->data.event_name; break; } - if (dStage_MapEvent_dt_c_getEventSCutSW(mapEvent) != 0 && !evtControl.chkFlag2(2)) { - if (dStage_MapEvent_dt_c_getEventSCutType(mapEvent) == 2) { + if ( + #if DEBUG + (dStage_MapEvent_dt_c_getEventSCutSW(mapdata) != 0 || l_HIO.m_enable_skip) && + #else + dStage_MapEvent_dt_c_getEventSCutSW(mapdata) != 0 && + #endif + !evtControl.chkFlag2(2) + ) { + int scut_type = dStage_MapEvent_dt_c_getEventSCutType(mapdata); + if (scut_type == 2) { evtControl.onSkipFade(); } @@ -348,20 +684,21 @@ void dEvent_manager_c::Sequencer() { } if (actor != NULL) { - switch (mapEvent->mType) { - case 2: + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_STB: evtControl.setSkipProc(actor, dEv_defaultSkipStb, 0); break; - case 1: + case dStage_MapEvent_dt_TYPE_ZEV: evtControl.setSkipProc(actor, dEv_defaultSkipZev, 0); break; - case 0: + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: evtControl.setSkipProc(actor, dEv_defaultSkipProc, 0); break; } } } } + Z2GetAudioMgr()->setDemoName(name); } @@ -371,28 +708,25 @@ void dEvent_manager_c::Sequencer() { bVar1 = true; } - int exit = -1; - bool iVar5; - if (evtControl.chkFlag2(2)) { - iVar5 = true; - } else { - iVar5 = false; - } + int exitId = -1; + bool iVar5 = evtControl.chkFlag2(2) != 0; - if (mapEvent != NULL) { - int cutType = dStage_MapEvent_dt_c_getEventSCutType(mapEvent); - if (iVar5 && cutType != 1) { + if (mapdata != NULL) { + int scut_type = dStage_MapEvent_dt_c_getEventSCutType(mapdata); + if (iVar5 && scut_type != 1) { bVar1 = true; - cXyz attentionPos(dComIfGp_getPlayer(0)->attention_info.position); - cXyz camCenter = dCam_getBody()->Center(); - f32 distance = cXyz((attentionPos - camCenter)).abs(); + cXyz pl_attn_pos(dComIfGp_getPlayer(0)->attention_info.position); + cXyz cam_center = dCam_getBody()->Center(); + f32 distance = cXyz((pl_attn_pos - cam_center)).abs(); + + OS_REPORT("camera: event manager: skip after %d (%f)\n", scut_type, distance); - if (cutType == 0) { + if (scut_type == 0) { if (distance > 180) { dCam_getBody()->EventRecoverNotime(); } } else { - switch (mapEvent->field_0x3) { + switch (mapdata->field_0x3) { case 1: case 2: if (distance > 180) { @@ -406,9 +740,9 @@ void dEvent_manager_c::Sequencer() { } } - switch (mapEvent->mType) { - case 0: - switch (mapEvent->mSeType) { + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: + switch (mapdata->data.maptool.sound_type) { case EVT_SE_RIDDLE_A: mDoAud_seStart(Z2SE_READ_RIDDLE_A, NULL, 0, 0); break; @@ -418,53 +752,55 @@ void dEvent_manager_c::Sequencer() { } if (!bVar1) { - if (iVar5 && mapEvent->field_0x9 != 0xFF) { - exit = mapEvent->field_0x9; - evtControl.sceneChange(exit); - } else if (mapEvent->field_0x17 != 0xFF) { - exit = mapEvent->field_0x17; - evtControl.sceneChange(exit); + if (iVar5 && mapdata->field_0x9 != 0xFF) { + exitId = mapdata->field_0x9; + evtControl.sceneChange(exitId); + } else if (mapdata->data.maptool.field_0x17 != 0xFF) { + exitId = mapdata->data.maptool.field_0x17; + evtControl.sceneChange(exitId); } } + + if (mapdata->field_0x7 != 0xFF) {} break; - case 2: + case dStage_MapEvent_dt_TYPE_STB: if (!bVar1) { - if (iVar5 && mapEvent->field_0x9 != 0xFF) { - exit = mapEvent->field_0x9; - evtControl.sceneChange(exit); - } else if (mapEvent->field_0x7 != 0xFF) { - exit = mapEvent->field_0x7; - evtControl.sceneChange(exit); + if (iVar5 && mapdata->field_0x9 != 0xFF) { + exitId = mapdata->field_0x9; + evtControl.sceneChange(exitId); + } else if (mapdata->field_0x7 != 0xFF) { + exitId = mapdata->field_0x7; + evtControl.sceneChange(exitId); } } break; - case 1: + case dStage_MapEvent_dt_TYPE_ZEV: if (!bVar1) { - if (iVar5 && mapEvent->field_0x9 != 0xFF) { - exit = mapEvent->field_0x9; - evtControl.sceneChange(exit); - } else if (mapEvent->field_0x7 != 0xFF) { - exit = mapEvent->field_0x7; - evtControl.sceneChange(exit); + if (iVar5 && mapdata->field_0x9 != 0xFF) { + exitId = mapdata->field_0x9; + evtControl.sceneChange(exitId); + } else if (mapdata->field_0x7 != 0xFF) { + exitId = mapdata->field_0x7; + evtControl.sceneChange(exitId); } } break; } } - if (exit == -1) { + if (exitId == -1) { getBase().advanceCut(event); closeProc(event); evtControl.reset(); } } else { - if (event->mEventState == 1) { + if (event->mEventState == dEvDt_State_START_e) { getBase().advanceCut(event); } } - if (field_0x1b8 != 0) { - field_0x1b8--; + if (unk_0x1b8 != 0) { + unk_0x1b8--; } } else { if (evtControl.chkEventFlag(0x100)) { @@ -475,59 +811,64 @@ void dEvent_manager_c::Sequencer() { /* 800473FC-80047454 041D3C 0058+00 0/0 1/1 0/0 .text Experts__16dEvent_manager_cFv */ void dEvent_manager_c::Experts() { - dEvDtEvent_c* event = getEventData(mCurrentEventCompositId); - if (event != NULL && event->mEventState == 1) { - event->specialStaffProc(getBase().getStaffP(0)); + dEvDtEvent_c* event = getEventData(mCurrentEvId); + if (event != NULL && event->mEventState == dEvDt_State_START_e) { + event->specialStaffProc(getBase().getStaffP()); } } /* 80047454-800474BC 041D94 0068+00 1/1 0/0 0/0 .text getEventData__16dEvent_manager_cFsi */ -dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int idx) { - if (idx <= 0 || idx > 11) { +dEvDtEvent_c* dEvent_manager_c::getEventData(s16 evIdx, int evType) { + if (evType <= 0 || evType > BASE_MAX) { return NULL; - } else { - dEvDtBase_c* base = &mEventList[idx]; + } - if (base == NULL || base->getHeaderP() == NULL) { - return NULL; - } else if (param_0 < 0 || param_0 >= base->getEventNum()) { - return NULL; - } else { - return base->getEventP(param_0); - } + dEvDtBase_c* base = &mEventList[evType]; + if (base == NULL || base->getHeaderP() == NULL) { + return NULL; + } else if (evIdx < 0 || evIdx >= base->getEventNum()) { + return NULL; + } else { + return base->getEventP(evIdx); } + return NULL; } /* 800474BC-80047514 041DFC 0058+00 9/9 3/3 4/4 .text getEventData__16dEvent_manager_cFs */ -dEvDtEvent_c* dEvent_manager_c::getEventData(s16 eventCompositId) { - if (eventCompositId == -1) { +dEvDtEvent_c* dEvent_manager_c::getEventData(s16 evCompositId) { + if (evCompositId == -1) { return NULL; } else { - return getEventData(getIndexCompositId(eventCompositId), - getTypeCompositId(eventCompositId)); + return getEventData(getIndexCompositId(evCompositId), + getTypeCompositId(evCompositId)); } } /* 80047514-80047698 041E54 0184+00 3/3 8/8 3/3 .text getEventIdx__16dEvent_manager_cFPCcUcl */ -s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 mapToolID, s32 roomNo) { +s16 dEvent_manager_c::getEventIdx(const char* eventName, u8 mapToolID, s32 roomNo) { + static char map_tool_name[17]; + if (roomNo == -1) { roomNo = dComIfGp_roomControl_getStayNo(); } + int index, type; + dStage_MapEvent_dt_c* mapdata = NULL; if (mapToolID != 0xFF) { - dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(mapToolID, roomNo); - if (data != NULL) { - switch (data->mType) { - case 1: - case 2: - return getEventIdx(data->mName, 0xFF, roomNo); - case 0: - static char map_tool_name[17]; + mapdata = dEvt_control_c::searchMapEventData(mapToolID, roomNo); + if (mapdata != NULL) { + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_ZEV: + case dStage_MapEvent_dt_TYPE_STB: + return getEventIdx(mapdata->data.event_name, 0xFF, roomNo); + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: sprintf(map_tool_name, "MapToolCamera%d", mapToolID); return getEventIdx(map_tool_name, 0xFF, roomNo); + default: + JUT_ASSERT(1278, 0); } } } @@ -536,58 +877,67 @@ s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 mapToolID, s32 roomN return -1; } - dEvDtBase_c* event; - int j; - int i; - for (i = ARRAY_SIZEU(mEventList) - 1; i >= 1; i--) { - if (i < 4 || 9 < i || roomNo == mEventList[i].roomNo()) { - event = &mEventList[i]; - if (event->getHeaderP() != NULL) { - for (j = 0; j < event->getHeaderP()->eventNum; j++) { - if (strcmp(eventName, event->getEventName(j)) == 0) { - return makeCompositId(j, i); + for (type = BASE_MAX - 1; type >= BASE_KEEP; type--) { + if (type < BASE_ROOM0 || BASE_ROOM5 < type || roomNo == mEventList[type].roomNo()) { + if (mEventList[type].getHeaderP() != NULL) { + for (index = 0; index < mEventList[type].getEventNum(); index++) { + if (strcmp(eventName, mEventList[type].getEventName(index)) == 0) { + return makeCompositId(index, type); } } } } } + return -1; } /* 80047698-80047758 041FD8 00C0+00 0/0 3/3 25/25 .text * getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc */ -s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, u8 mapToolID) { - dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(mapToolID, fopAcM_GetRoomNo(pActor)); - if (data != NULL) { - switch (data->mType) { - case 1: - case 2: - return getEventIdx(pActor, data->mName, 0xFF); - case 0: - static char map_tool_name[17]; +s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* actor, u8 mapToolID) { + static char map_tool_name[17]; + + s32 roomNo = fopAcM_GetRoomNo(actor); + dStage_MapEvent_dt_c* mapdata = NULL; + + mapdata = dEvt_control_c::searchMapEventData(mapToolID, roomNo); + if (mapdata != NULL) { + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_ZEV: + case dStage_MapEvent_dt_TYPE_STB: + return getEventIdx(actor, mapdata->data.event_name, 0xFF); + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: sprintf(map_tool_name, "MapToolCamera%d", mapToolID); - return getEventIdx(pActor, map_tool_name, 0xFF); + return getEventIdx(actor, map_tool_name, 0xFF); + default: + JUT_ASSERT(1341, 0); } } + return -1; } /* 80047758-80047930 042098 01D8+00 1/1 10/10 92/92 .text * getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc */ -s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8 mapToolID) { - s8 actorRoomNo = fopAcM_GetRoomNo(pActor); +s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* actor, const char* eventName, u8 mapToolID) { + static char map_tool_name[17]; + s32 actorRoomNo = fopAcM_GetRoomNo(actor); + + int type, index; + dStage_MapEvent_dt_c* mapdata = NULL; if (mapToolID != 0xFF) { - dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(mapToolID, actorRoomNo); - if (data != NULL) { - switch (data->mType) { - case 1: - case 2: - return getEventIdx(pActor, data->mName, 0xFF); - case 0: - static char map_tool_name[17]; + mapdata = dEvt_control_c::searchMapEventData(mapToolID, actorRoomNo); + if (mapdata != NULL) { + switch (mapdata->type) { + case dStage_MapEvent_dt_TYPE_ZEV: + case dStage_MapEvent_dt_TYPE_STB: + return getEventIdx(actor, mapdata->data.event_name, 0xFF); + case dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA: sprintf(map_tool_name, "MapToolCamera%d", mapToolID); - return getEventIdx(pActor, map_tool_name, 0xFF); + return getEventIdx(actor, map_tool_name, 0xFF); + default: + JUT_ASSERT(1376, 0); } } } @@ -596,285 +946,335 @@ s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8 return -1; } - dEvDtBase_c* event; - int j; - int type; - for (type = ARRAY_SIZEU(mEventList) - 1; type >= 1; type--) { - dEvDtBase_c* eventP = &mEventList[type]; - dEvDtBase_c event; - if (type < 4 || 9 < type || actorRoomNo == mEventList[type].roomNo()) { - if (pActor != NULL && type == 2 && pActor->eventInfo.getArchiveName() != NULL) { - event.init( - (char*)dComIfG_getObjectRes(pActor->eventInfo.getArchiveName(), DataFileName), - -1); - eventP = &event; + for (type = BASE_MAX - 1; type >= BASE_KEEP; type--) { + dEvDtBase_c* base = &mEventList[type]; + dEvDtBase_c actor_event; + if (type < BASE_ROOM0 || BASE_ROOM5 < type || actorRoomNo == mEventList[type].roomNo()) { + if (actor != NULL && type == BASE_ACTOR) { + char* arcname = actor->eventInfo.getArchiveName(); + if (arcname != NULL) { + char* data = (char*)dComIfG_getObjectRes(arcname, DataFileName); + actor_event.init(data, -1); + base = &actor_event; + } } - if (eventP->getHeaderP() != NULL) { - for (j = 0; j < eventP->getHeaderP()->eventNum; j++) { - if (strcmp(eventName, eventP->getEventName(j)) == 0) { - return makeCompositId(j, type); + + if (base->getHeaderP() != NULL) { + for (index = 0; index < base->getEventNum(); index++) { + if (strcmp(eventName, base->getEventName(index)) == 0) { + return makeCompositId(index, type); } } } } } + return -1; } /* 80047930-80047984 042270 0054+00 0/0 0/0 1/1 .text isMapToolCamera__16dEvent_manager_cFUcl */ -int dEvent_manager_c::isMapToolCamera(u8 mapToolID, s32 roomNo) { +BOOL dEvent_manager_c::isMapToolCamera(u8 mapToolID, s32 roomNo) { if (roomNo == -1) { roomNo = dComIfGp_roomControl_getStayNo(); } - dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(mapToolID, roomNo); - if (data != NULL) { - return data->mType == 0; + dStage_MapEvent_dt_c* mapdata = dEvt_control_c::searchMapEventData(mapToolID, roomNo); + if (mapdata != NULL) { + return mapdata->type == dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA; } else { - return 0; + return FALSE; } } /* 80047984-800479F8 0422C4 0074+00 0/0 6/6 0/0 .text order__16dEvent_manager_cFs */ -int dEvent_manager_c::order(s16 eventCompositId) { - dEvDtEvent_c* event = getEventData(eventCompositId); +int dEvent_manager_c::order(s16 evCompositId) { + dEvDtEvent_c* event = getEventData(evCompositId); if (event == NULL) { return 0; - } else { - mCurrentEventType = getTypeCompositId(eventCompositId); - mCurrentEventCompositId = eventCompositId; - startProc(event); - return 1; } + + #if DEBUG + if (l_HIO.m_evm_debug) { + // "event manager: event(%d) ready!!" + OS_REPORT("\x1b[34m%06d: event manager: イベント(%d)準備状態!! \n\x1b[m", g_Counter.mCounter0, evCompositId); + } + #endif + + mCurrentEvType = getTypeCompositId(evCompositId); + mCurrentEvId = evCompositId; + startProc(event); + return 1; } /* 800479F8-80047A38 042338 0040+00 1/1 0/0 9/9 .text startCheck__16dEvent_manager_cFs */ -int dEvent_manager_c::startCheck(s16 eventCompositId) { - dEvDtEvent_c* event = getEventData(eventCompositId); +int dEvent_manager_c::startCheck(s16 evCompositId) { + dEvDtEvent_c* event = getEventData(evCompositId); if (event == NULL) { - return 0; + return FALSE; + } + + if (event->mEventState == dEvDt_State_START_e) { + return TRUE; } else { - if (event->mEventState == 1) { - return 1; - } else { - return 0; - } + return FALSE; } } /* 80047A38-80047A78 042378 0040+00 0/0 2/2 0/0 .text startCheckOld__16dEvent_manager_cFPCc */ -int dEvent_manager_c::startCheckOld(char const* name) { - return startCheck(getEventIdx(name, 0xFF, -1)); +int dEvent_manager_c::startCheckOld(const char* eventname) { + s16 evId = getEventIdx(eventname, 0xFF, -1); + return startCheck(evId); } /* 80047A78-80047ADC 0423B8 0064+00 1/1 2/2 122/122 .text endCheck__16dEvent_manager_cFs */ int dEvent_manager_c::endCheck(s16 eventID) { - dEvDtEvent_c* event = getEventData(dComIfGp_getEvent().runningEventID(eventID)); + s16 compositId = dComIfGp_getEvent().runningEventID(eventID); + dEvDtEvent_c* event = getEventData(compositId); if (event == NULL) { return 0; + } + + if (event->mEventState == dEvDt_State_END_e) { + return TRUE; } else { - if (event->mEventState == 2) { - return 1; - } else { - return 0; - } + return FALSE; } } /* 80047ADC-80047B1C 04241C 0040+00 0/0 2/2 10/10 .text endCheckOld__16dEvent_manager_cFPCc */ -int dEvent_manager_c::endCheckOld(char const* name) { - return endCheck(getEventIdx(name, 0xFF, -1)); +int dEvent_manager_c::endCheckOld(const char* eventname) { + s16 evId = getEventIdx(eventname, 0xFF, -1); + return endCheck(evId); } /* 80047B1C-80047D4C 04245C 0230+00 1/1 10/10 210/210 .text * getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci */ -int dEvent_manager_c::getMyStaffId(char const* staffName, fopAc_ac_c* pActor, int tagId) { - int staffNum; +int dEvent_manager_c::getMyStaffId(const char* staffName, fopAc_ac_c* actor, int tagId) { int i; + int staff_id; + int n_staff; int evtIdx = -1; - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { + + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { return -1; - } else { - if (pActor != NULL) { - evtIdx = pActor->eventInfo.getIdx(); + } + + if (actor != NULL) { + evtIdx = actor->eventInfo.getIdx(); + } + + if (mCurrentEvId == -1) { + return -1; + } + + dEvDtEvent_c* event = getEventData(mCurrentEvId); + if (event != NULL && (event->mEventState == dEvDt_State_START_e || event->mEventState == dEvDt_State_END_e)) { + n_staff = event->getNStaff(); + + bool hasDp = false; + if (strchr(staffName, ':') != NULL) { + hasDp = true; } - if (mCurrentEventCompositId == -1) { - return -1; - } else { - dEvDtEvent_c* event = getEventData(mCurrentEventCompositId); - if (event != NULL && (event->mEventState == 1 || event->mEventState == 2)) { - int staffCount = event->getNStaff(); - bool hasDp = false; - if (strchr(staffName, ':') != NULL) { - hasDp = true; + for (i = 0; i < n_staff; i++) { + staff_id = event->getStaff(i); + dEvDtStaff_c* staff = getBase().getStaffP(staff_id); + if (staff->getType() != dEvDtStaff_c::TYPE_ALL) { + char buf[20]; + strcpy(buf, staff->getName()); + + char* ptr = NULL; + if (!hasDp) { + ptr = std::strchr(buf, ':'); + if (ptr != NULL) { + *ptr = '\0'; + ptr++; + } } - for (i = 0; i < staffCount; i++) { - staffNum = event->getStaff(i); - dEvDtStaff_c* staff = getBase().getStaffP(staffNum); - if (staff->mType != dEvDtStaff_c::TYPE_ALL) { - char buf[0x18]; - strcpy(buf, staff->mName); - char* ptr = NULL; - if (!hasDp) { - char* tmpPtr = strchr(buf, ':'); - ptr = tmpPtr; - if (tmpPtr != NULL) { - *tmpPtr = '\0'; - ptr++; - } - } - - if (strcmp(staffName, buf) == 0 && (tagId < 0 || tagId == staff->mTagID)) { - s16 num = 0; - if (ptr != NULL) { - char c; - while ((c = *ptr) != '\0') { - if (c < '0' || '9' < c) { - num = 0; - break; - } - num = c - '0' + num * 10; - ptr++; - } - if (evtIdx < 0 || num == evtIdx) { - return staffNum; - } - } else { - return staffNum; + if (strcmp(staffName, buf) == 0 && (tagId < 0 || tagId == staff->getTagID())) { + s16 num = 0; + if (ptr != NULL) { + while (*ptr != '\0') { + if (*ptr < '0' || '9' < *ptr) { + num = 0; + break; } + num = *ptr - '0' + num * 10; + ptr++; } - if (strcmp(staffName, "Alink") == 0 && strcmp("Link", buf) == 0 && - tagId == staff->mTagID) - { - return staffNum; + if (evtIdx < 0 || num == evtIdx) { + return staff_id; } + } else { + return staff_id; } } + + if (strcmp(staffName, "Alink") == 0 && strcmp("Link", buf) == 0 && + tagId == staff->getTagID()) + { + return staff_id; + } } } } + return -1; } /* 80047D4C-80047DAC 04268C 0060+00 0/0 9/9 417/417 .text getIsAddvance__16dEvent_manager_cFi */ -int dEvent_manager_c::getIsAddvance(int staffIdx) { - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { +int dEvent_manager_c::getIsAddvance(int staffId) { + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { + if (OREG_F(8)) { + // "%s: %d: events not running so don't call." + OS_REPORT("%s: %d: イベント走ってないので呼ばないでください。\n", __FILE__, 1672); + } return 0; - } else if (staffIdx == -1) { + } else if (staffId == -1) { return 0; - } else if (mCurrentEventCompositId == -1) { + } else if (mCurrentEvId == -1) { return 0; } else { - return getBase().getStaffP(staffIdx)->field_0x40; + return getBase().getStaffP(staffId)->field_0x40; } } /* 80047DAC-80047E10 0426EC 0064+00 1/1 0/0 0/0 .text dEvmng_strcmp__FPCcPc */ -static int dEvmng_strcmp(char const* strA, char* strB) { +static int dEvmng_strcmp(const char* strA, char* strB) { u32 len = 0; - while (*strA != '\0') { - if (*strB == '\0') { + while (strA[len] != '\0') { + if (strB[len] == '\0') { return 1; } + if (len >= 100) { return -1; } - if (*strA != *strB) { + + if (strA[len] != strB[len]) { return 1; } + len++; - strA++; - strB++; } + return 0; } /* 80047E10-80047F5C 042750 014C+00 1/1 1/1 118/118 .text * getMyActIdx__16dEvent_manager_cFiPCPCciii */ -int dEvent_manager_c::getMyActIdx(int staffIdx, char const* const* param_1, int param_2, - int param_3, int param_4) { - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { +int dEvent_manager_c::getMyActIdx(int staffId, const char* const* action, int n_action, + BOOL param_3, BOOL param_4) { + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { + if (OREG_F(8)) { + // "%s: %d: events not running so don't call." + OS_REPORT("%s: %d: イベント走ってないので呼ばないでください。\n", __FILE__, 1733); + } return 0; - } else if (staffIdx == -1) { + } else if (staffId == -1) { return -1; - } else if (mCurrentEventCompositId == -1) { + } else if (mCurrentEvId == -1) { return -1; } - dEvDtStaff_c* staff = getBase().getStaffP(staffIdx); - if (staff) { - if (staff->field_0x41 != false && param_3 == 0) { + dEvDtStaff_c* staff = getBase().getStaffP(staffId); + if (staff != NULL) { + if (staff->field_0x41 != false && !param_3) { return staff->field_0x3c; } } else { + // "event: getMyActIdx(): staff ID %d data not found." + OS_REPORT_ERROR("event: getMyActIdx(): スタッフID %d のデータが見つかりません。\n", staffId); return -1; } int i; - char* nowCutName = getMyNowCutName(staffIdx); + char* nowCutName = getMyNowCutName(staffId); if (nowCutName == NULL) { staff->field_0x3c = -1; + // "event: getMyActIdx(): staff %s is not an active participant." + OS_REPORT_ERROR("event: getMyActIdx(): スタッフ %s はアクティブな参加者ではありません。\n", staff->getName()); return -1; - } else { - staff->field_0x41 = true; - for (i = 0; i < param_2; i++) { - if (param_4 != 0) { - if (dEvmng_strcmp(param_1[i], nowCutName) == 0) { - staff->field_0x3c = i; - return i; - } - } else { - if (strcmp(param_1[i], nowCutName) == 0) { - staff->field_0x3c = i; - return i; - } + } + + staff->field_0x41 = true; + for (i = 0; i < n_action; i++) { + JUT_ASSERT(1772, action[i]); + if (param_4) { + if (dEvmng_strcmp(action[i], nowCutName) == 0) { + staff->field_0x3c = i; + return i; + } + } else { + if (strcmp(action[i], nowCutName) == 0) { + staff->field_0x3c = i; + return i; } } - staff->field_0x3c = -1; } + + staff->field_0x3c = -1; + + if (!param_3) { + // "event: getMyActIdx(): action %s not found. current action %s" + OS_REPORT_ERROR("event: getMyActIdx(): 動作 %s が見つかりません。現在の動作 %s\n", nowCutName, staff->getName()); + } + return 0; } /* 80047F5C-80047FC8 04289C 006C+00 1/1 9/9 62/62 .text getMyNowCutName__16dEvent_manager_cFi */ -char* dEvent_manager_c::getMyNowCutName(int cutIndex) { - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { +char* dEvent_manager_c::getMyNowCutName(int staffId) { + dEvDtCut_c* cut; + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { + if (OREG_F(8)) { + // "%s: %d: events not running so don't call." + OS_REPORT("%s: %d: イベント走ってないので呼ばないでください。\n", __FILE__, 1856); + } return NULL; - } else if (cutIndex == -1) { + } else if (staffId == -1) { return NULL; - } else if (mCurrentEventCompositId == -1) { + } else if (mCurrentEvId == -1) { return NULL; } else { - return getBase().getCutStaffCurrentCutP(cutIndex)->getName(); + cut = getBase().getCutStaffCurrentCutP(staffId); + return cut->getName(); } } /* 80047FC8-800480EC 042908 0124+00 2/2 0/0 0/0 .text getMyDataP__16dEvent_manager_cFiPCci */ -dEvDtData_c* dEvent_manager_c::getMyDataP(int index, char const* name, int type) { - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { +dEvDtData_c* dEvent_manager_c::getMyDataP(int staffId, const char* dataname, BOOL isSeekStart) { + dEvDtData_c* data; + int index; + dEvDtCut_c* cut; + + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { + if (OREG_F(8)) { + // "%s: %d: events not running so don't call." + OS_REPORT("%s: %d: イベント走ってないので呼ばないでください。\n", __FILE__, 1886); + } return NULL; - } else if (index == -1) { + } else if (staffId == -1) { return NULL; - } else if (mCurrentEventCompositId == -1) { + } else if (mCurrentEvId == -1) { return NULL; } else { - dEvDtCut_c* cut; - if (type != 0) { - cut = getBase().getCutStaffStartCutP(index); + if (isSeekStart) { + cut = getBase().getCutStaffStartCutP(staffId); } else { - cut = getBase().getCutStaffCurrentCutP(index); + cut = getBase().getCutStaffCurrentCutP(staffId); } - int top = cut->getDataTop(); - while (top != -1) { - dEvDtData_c* data = getBase().getDataP(top); - if (!strcmp(name, data->getName())) { + index = cut->getDataTop(); + while (index != -1) { + data = getBase().getDataP(index); + if (strcmp(dataname, data->getName()) == 0) { return data; } - top = data->getNext(); + index = data->getNext(); } return NULL; @@ -883,18 +1283,19 @@ dEvDtData_c* dEvent_manager_c::getMyDataP(int index, char const* name, int type) /* 800480EC-80048144 042A2C 0058+00 0/0 22/22 355/355 .text * getMySubstanceP__16dEvent_manager_cFiPCci */ -void* dEvent_manager_c::getMySubstanceP(int index, char const* name, int type) { - dEvDtData_c* data = getMyDataP(index, name, 0); +void* dEvent_manager_c::getMySubstanceP(int staffId, const char* dataname, int datatype) { + dEvDtData_c* data = getMyDataP(staffId, dataname, FALSE); if (data == NULL) { return NULL; } - return getSubstance(data, type); + + return getSubstance(data, datatype); } /* 80048144-8004817C 042A84 0038+00 0/0 12/12 0/0 .text getMySubstanceNum__16dEvent_manager_cFiPCc */ -int dEvent_manager_c::getMySubstanceNum(int index, char const* name) { - dEvDtData_c* data = getMyDataP(index, name, 0); +int dEvent_manager_c::getMySubstanceNum(int staffId, const char* dataname) { + dEvDtData_c* data = getMyDataP(staffId, dataname, FALSE); if (data == NULL) { return NULL; } else { @@ -904,35 +1305,41 @@ int dEvent_manager_c::getMySubstanceNum(int index, char const* name) { /* 8004817C-800481F4 042ABC 0078+00 1/1 78/78 182/182 .text cutEnd__16dEvent_manager_cFi */ -void dEvent_manager_c::cutEnd(int cutIndex) { - if (dComIfGp_getEvent().getMode() == EVT_MODE_NONE) { +void dEvent_manager_c::cutEnd(int staffId) { + dEvDtCut_c* cut; + if (dComIfGp_getEvent().getMode() == dEvt_mode_WAIT_e) { + if (OREG_F(8)) { + // "%s: %d: events not running so don't call." + OS_REPORT("%s: %d: イベント走ってないので呼ばないでください。\n", __FILE__, 1984); + } return; - } else if (cutIndex == -1) { + } else if (staffId == -1) { return; - } else if (mCurrentEventCompositId == -1) { + } else if (mCurrentEvId == -1) { return; } else { - // instruction swap - dEvDtCut_c* cut = getBase().getCutStaffCurrentCutP(cutIndex); + cut = getBase().getCutStaffCurrentCutP(staffId); mFlags.flagSet(cut->getFlagId()); } } /* 800481F4-800482CC 042B34 00D8+00 0/0 4/4 0/0 .text * getEventPrio__16dEvent_manager_cFP10fopAc_ac_cs */ -int dEvent_manager_c::getEventPrio(fopAc_ac_c* pActor, s16 eventCompositId) { +int dEvent_manager_c::getEventPrio(fopAc_ac_c* actor, s16 evCompositId) { dEvDtEvent_c* event = NULL; dEvDtBase_c eventBase; - if (getTypeCompositId(eventCompositId) == 2 && pActor != NULL && - pActor->eventInfo.getArchiveName() != NULL) - { - char* data = (char*)dComIfG_getObjectRes(pActor->eventInfo.getArchiveName(), DataFileName); - eventBase.init(data, -1); - event = eventBase.mEventP; + + if (getTypeCompositId(evCompositId) == 2 && actor != NULL) { + char* arcname = actor->eventInfo.getArchiveName(); + if (arcname != NULL) { + char* data = (char*)dComIfG_getObjectRes(arcname, DataFileName); + eventBase.init(data, -1); + event = eventBase.getEventP(); + } } if (event == NULL) { - event = getEventData(eventCompositId); + event = getEventData(evCompositId); } if (event == NULL) { @@ -944,31 +1351,33 @@ int dEvent_manager_c::getEventPrio(fopAc_ac_c* pActor, s16 eventCompositId) { /* 800482CC-80048348 042C0C 007C+00 1/1 1/1 0/0 .text issueStaff__16dEvent_manager_cFPCc */ -void dEvent_manager_c::issueStaff(char const* name) { - if (!strcmp(name, "ALL")) { +void dEvent_manager_c::issueStaff(const char* staffname) { + if (strcmp(staffname, "ALL") == 0) { fopAcM_Search((fopAcIt_JudgeFunc)extraOnObjectCallBack, NULL); } else { - char nameBuf[0x20]; - strcpy(nameBuf, name); - fopAcM_OnStatus(fopAcM_searchFromName4Event(nameBuf, -1), 0x800); + char nameBuf[32]; + strcpy(nameBuf, staffname); + fopAc_ac_c* actor = fopAcM_searchFromName4Event(nameBuf, -1); + fopAcM_OnStatus(actor, fopAcM_STATUS_UNK_0x800); } } /* 80048348-800483C4 042C88 007C+00 0/0 1/1 0/0 .text cancelStaff__16dEvent_manager_cFPCc */ -void dEvent_manager_c::cancelStaff(char const* name) { - if (!strcmp(name, "ALL")) { +void dEvent_manager_c::cancelStaff(const char* staffname) { + if (!strcmp(staffname, "ALL")) { fopAcM_Search((fopAcIt_JudgeFunc)extraOffObjectCallBack, NULL); } else { - char nameBuf[0x20]; - strcpy(nameBuf, name); - fopAcM_OffStatus(fopAcM_searchFromName4Event(nameBuf, -1), 0x800); + char nameBuf[32]; + strcpy(nameBuf, staffname); + fopAc_ac_c* actor = fopAcM_searchFromName4Event(nameBuf, -1); + fopAcM_OffStatus(actor, fopAcM_STATUS_UNK_0x800); } } /* 800483C4-800483E0 042D04 001C+00 1/1 2/2 38/38 .text setGoal__16dEvent_manager_cFP4cXyz */ -void dEvent_manager_c::setGoal(cXyz* p_goal) { - mGoal = *p_goal; +void dEvent_manager_c::setGoal(cXyz* pos) { + mGoal.set(*pos); } /* 800483E0-800483E8 042D20 0008+00 0/0 1/1 1/1 .text getGoal__16dEvent_manager_cFv */ @@ -978,7 +1387,7 @@ cXyz* dEvent_manager_c::getGoal() { /* 800483E8-8004846C 042D28 0084+00 0/0 5/5 27/27 .text getRunEventName__16dEvent_manager_cFv */ const char* dEvent_manager_c::getRunEventName() { - if (mCurrentEventCompositId == -1) { + if (mCurrentEvId == -1) { return "NO DATA"; } @@ -986,74 +1395,91 @@ const char* dEvent_manager_c::getRunEventName() { return "NO DATA"; } - dEvDtEvent_c* event = getEventData(mCurrentEventCompositId); - if (event != NULL && event->mEventState == 1) { + dEvDtEvent_c* event = getEventData(mCurrentEvId); + if (event != NULL && event->mEventState == dEvDt_State_START_e) { return event->getName(); } else { return "NOT RUNNING"; } } +#if DEBUG +dEvM_HIO_c& dEvent_manager_c::getEventHIO() { + return l_HIO; +} +#endif + struct FindShtrCbPrms { s16 profname; - fopAc_ac_c* mActor; + fopAc_ac_c* actor; }; /* 8004846C-80048520 042DAC 00B4+00 1/1 0/0 0/0 .text findShutterCallBack__FP10fopAc_ac_cPv */ -static fopAc_ac_c* findShutterCallBack(fopAc_ac_c* pActor, void* param_1) { - FindShtrCbPrms* prms = (FindShtrCbPrms*)param_1; - if (prms->profname != fopAcM_GetProfName(pActor)) { +static fopAc_ac_c* findShutterCallBack(fopAc_ac_c* actor, void* data) { + FindShtrCbPrms* prms = (FindShtrCbPrms*)data; + cXyz diff; + + if (prms->profname != fopAcM_GetProfName(actor)) { return NULL; } - cXyz diff = pActor->home.pos - prms->mActor->home.pos; + diff = actor->home.pos - prms->actor->home.pos; if (diff.x < 10 && diff.x > -10 && diff.y < 10 && diff.y > -10 && diff.z < 10 && diff.z > -10) { - return pActor; + return actor; } + return NULL; } /* 80048520-80048618 042E60 00F8+00 1/1 0/0 0/0 .text specialCast_Shutter__16dEvent_manager_cFsi */ -fopAc_ac_c* dEvent_manager_c::specialCast_Shutter(s16 bsTypeId, int param_1) { +fopAc_ac_c* dEvent_manager_c::specialCast_Shutter(s16 actorName, BOOL param_1) { + fopAc_ac_c* shutterActor = NULL; + FindShtrCbPrms prms; - prms.profname = bsTypeId; - prms.mActor = dComIfGp_getPlayer(0); - fopAc_ac_c* shutterActor = - (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)findShutterCallBack, &prms); + prms.profname = actorName; + prms.actor = dComIfGp_getPlayer(0); + + if (prms.actor == NULL) { + JUT_ASSERT(2238, 0); + } - if (shutterActor != NULL && param_1 != 0) { + shutterActor = fopAcM_Search((fopAcIt_JudgeFunc)findShutterCallBack, &prms); + if (shutterActor != NULL && param_1) { cXyz goal(shutterActor->home.pos); - s16 angle = prms.mActor->home.angle.y + 0x8000; + s16 angle = prms.actor->home.angle.y + 0x8000; + goal.x += cM_ssin(angle) * 100; goal.z += cM_scos(angle) * 100; setGoal(&goal); + dComIfGp_getEvent().setPt2(shutterActor); dComIfGp_getEvent().setPtD(shutterActor); } + return shutterActor; } /* 80048618-80048748 042F58 0130+00 1/1 0/0 0/0 .text specialCast__16dEvent_manager_cFPCci */ -fopAc_ac_c* dEvent_manager_c::specialCast(char const* name, int param_1) { +fopAc_ac_c* dEvent_manager_c::specialCast(const char* staffname, BOOL param_1) { fopAc_ac_c* shutterActor = NULL; - if (name == NULL) { - return NULL; + if (staffname == NULL) { + return shutterActor; } - if (!strcmp(name, "SHUTTER_DOOR")) { - shutterActor = specialCast_Shutter(0x226, param_1); + if (strcmp(staffname, "SHUTTER_DOOR") == 0) { + shutterActor = specialCast_Shutter(PROC_KNOB20, param_1); if (shutterActor == NULL) { - shutterActor = specialCast_Shutter(0x228, param_1); + shutterActor = specialCast_Shutter(PROC_BOSS_DOOR, param_1); } if (shutterActor == NULL) { - shutterActor = specialCast_Shutter(0x229, param_1); + shutterActor = specialCast_Shutter(PROC_L1BOSS_DOOR, param_1); } if (shutterActor == NULL) { - shutterActor = specialCast_Shutter(0x22A, param_1); + shutterActor = specialCast_Shutter(PROC_L1MBOSS_DOOR, param_1); } if (shutterActor == NULL) { - shutterActor = specialCast_Shutter(0x22B, param_1); + shutterActor = specialCast_Shutter(PROC_L5BOSS_DOOR, param_1); } if (shutterActor != NULL) { dComIfGp_getEvent().onEventFlag(0x10); @@ -1061,12 +1487,13 @@ fopAc_ac_c* dEvent_manager_c::specialCast(char const* name, int param_1) { } if (shutterActor != NULL) { - if (param_1 != 0) { + if (param_1) { fopAcM_OnStatus(shutterActor, 0x1000); } else { fopAcM_OffStatus(shutterActor, 0x1000); } } + return shutterActor; } @@ -1075,20 +1502,21 @@ static int dEv_talkman_get_action(int param_0) { int staffId = dComIfGp_getEventManager().getMyStaffId("TALKMAN", NULL, -1); if (staffId == -1) { return -1; - } else { - /* 803A82A8-803A82B8 -00001 000C+04 1/1 0/0 0/0 .data action_table$5100 */ - static const char* action_table[] = { - "WAIT", - "TALK0", - "TALK1", - }; - int actIdx = dComIfGp_getEventManager().getMyActIdx(staffId, action_table, - ARRAY_SIZEU(action_table), 0, 0); - if (actIdx == param_0) { - dComIfGp_getEventManager().cutEnd(staffId); - } - return actIdx; } + + static const char* action_table[] = { + "WAIT", + "TALK0", + "TALK1", + }; + + int actIdx = dComIfGp_getEventManager().getMyActIdx(staffId, action_table, ARRAY_SIZE(action_table), FALSE, FALSE); + if (actIdx == param_0) { + dComIfGp_getEventManager().cutEnd(staffId); + } + + return actIdx; + } /* 800487F0-8004882C 043130 003C+00 0/0 0/0 108/108 .text ChkPresentEnd__16dEvent_manager_cFv */ @@ -1099,15 +1527,16 @@ int dEvent_manager_c::ChkPresentEnd() { /* 8004882C-8004886C 04316C 0040+00 0/0 2/2 2/2 .text checkStartDemo__16dEvent_manager_cFv */ int dEvent_manager_c::checkStartDemo() { if (!dComIfGp_getEvent().runCheck()) { - return 0; + return FALSE; } - if (mEventException.mEventInfoIdx == -1) { - return 0; + if (mException.mEventInfoIdx == -1) { + return FALSE; } - if (mEventException.mEventInfoIdx == -2) { - return 0; + if (mException.mEventInfoIdx == -2) { + return FALSE; } - return 1; + + return TRUE; } |
