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_data.cpp | |
| parent | 47abdf82fac4a2f58319e8d6ad22a1a035bf413e (diff) | |
cleanup event stuff (#2688)
* cleanup event stuff
* fix debug
Diffstat (limited to 'src/d/d_event_data.cpp')
| -rw-r--r-- | src/d/d_event_data.cpp | 1367 |
1 files changed, 866 insertions, 501 deletions
diff --git a/src/d/d_event_data.cpp b/src/d/d_event_data.cpp index 39bee2cb2e..2ce9ea3a4e 100644 --- a/src/d/d_event_data.cpp +++ b/src/d/d_event_data.cpp @@ -12,57 +12,94 @@ #include "d/d_gameover.h" #include "d/d_msg_object.h" #include "m_Do/m_Do_graphic.h" +#include "SSystem/SComponent/c_counter.h" -inline BOOL dEvDtFlagCheck(int flag) { - return dComIfGp_getEventManager().flagCheck(flag); +inline BOOL dEvDtFlagCheck(int i_flag) { + return dComIfGp_getEventManager().getFlags().flagCheck(i_flag); } -inline void dEvDtFlagSet(int flag) { - dComIfGp_getEventManager().setFlag(flag); +inline void dEvDtFlagSet(int i_flag) { + dComIfGp_getEventManager().getFlags().flagSet(i_flag); } struct TelopDataStruct { - s32 mName; - u16 mTelopNo; - u16 _6; - u16 _8; - // padding + s32 name; + u16 telopNo; + const u16 flag; + u16 type; }; -/* ############################################################################################## */ /* 803A7FB0-803A8238 0050D0 0288+00 2/2 0/0 0/0 .data TelopData */ static TelopDataStruct TelopData[] = { - {'D05\0', 1101, 4201, 3}, {'D05A', 1101, -1, 0}, {'D05B', 1101, -1, 0}, - {'D04\0', 1102, -1, 1}, {'D04A', 1102, -1, 0}, {'D04B', 1102, -1, 0}, - {'D01\0', 1103, 4728, 3}, {'D01A', 1103, -1, 0}, {'D01B', 1103, -1, 0}, - {'D10\0', 1104, 4908, 3}, {'D10A', 1104, -1, 0}, {'D10B', 1104, -1, 0}, - {'D11\0', 1105, 5240, 3}, {'D11A', 1105, -1, 0}, {'D11B', 1105, -1, 0}, - {'D06\0', 1106, 5465, 3}, {'D06A', 1106, -1, 0}, {'D06B', 1106, -1, 0}, - {'D07\0', 1107, 5689, 3}, {'D07A', 1107, -1, 0}, {'D07B', 1107, -1, 0}, - {'D08\0', 1108, -1, 1}, {'D08A', 1108, -1, 0}, {'D08B', 1108, -1, 0}, - {'D08C', 1108, -1, 0}, {'D08D', 1108, -1, 0}, {'D09\0', 1109, -1, 1}, - {'D09A', 1109, -1, 0}, {'D09B', 1109, -1, 0}, {'D09C', 1109, -1, 0}, - {'F00\0', 1110, -1, 1}, {'F103', 1111, 10, 3}, {'R01\0', 1111, -1, 0}, - {'F109', 1112, -1, 1}, {'R109', 1112, -1, 0}, {'R209', 1112, -1, 0}, - {'F112', 1113, 1033, 3}, {'F113', 1114, 1024, 3}, {'F108', 1115, -1, 1}, - {'R108', 1115, -1, 0}, {'F115', 1116, 1054, 3}, {'F111', 1118, -1, 1}, - {'F124', 1119, -1, 1}, {'F114', 1120, 2048, 3}, {'F125', 1121, 2572, 3}, - {'F121', 1122, 1581, 3}, {'F122', 1122, 1581, 3}, {'F123', 1122, 1581, 3}, - {'F117', 1123, -1, 1}, {'F128', 1134, 814, 3}, {'R128', 1134, -1, 0}, - {'F127', 1140, -1, 1}, {'R127', 1140, -1, 0}, {'F126', 1141, -1, 1}}; + {'D05\0', 1101, 0x1069, 3}, + {'D05A', 1101, 0xFFFF, 0}, + {'D05B', 1101, 0xFFFF, 0}, + {'D04\0', 1102, 0xFFFF, 1}, + {'D04A', 1102, 0xFFFF, 0}, + {'D04B', 1102, 0xFFFF, 0}, + {'D01\0', 1103, 0x1278, 3}, + {'D01A', 1103, 0xFFFF, 0}, + {'D01B', 1103, 0xFFFF, 0}, + {'D10\0', 1104, 0x132C, 3}, + {'D10A', 1104, 0xFFFF, 0}, + {'D10B', 1104, 0xFFFF, 0}, + {'D11\0', 1105, 0x1478, 3}, + {'D11A', 1105, 0xFFFF, 0}, + {'D11B', 1105, 0xFFFF, 0}, + {'D06\0', 1106, 0x1559, 3}, + {'D06A', 1106, 0xFFFF, 0}, + {'D06B', 1106, 0xFFFF, 0}, + {'D07\0', 1107, 0x1639, 3}, + {'D07A', 1107, 0xFFFF, 0}, + {'D07B', 1107, 0xFFFF, 0}, + {'D08\0', 1108, 0xFFFF, 1}, + {'D08A', 1108, 0xFFFF, 0}, + {'D08B', 1108, 0xFFFF, 0}, + {'D08C', 1108, 0xFFFF, 0}, + {'D08D', 1108, 0xFFFF, 0}, + {'D09\0', 1109, 0xFFFF, 1}, + {'D09A', 1109, 0xFFFF, 0}, + {'D09B', 1109, 0xFFFF, 0}, + {'D09C', 1109, 0xFFFF, 0}, + {'F00\0', 1110, 0xFFFF, 1}, + {'F103', 1111, 10, 3}, + {'R01\0', 1111, 0xFFFF, 0}, + {'F109', 1112, 0xFFFF, 1}, + {'R109', 1112, 0xFFFF, 0}, + {'R209', 1112, 0xFFFF, 0}, + {'F112', 1113, 0x409, 3}, + {'F113', 1114, 0x400, 3}, + {'F108', 1115, 0xFFFF, 1}, + {'R108', 1115, 0xFFFF, 0}, + {'F115', 1116, 0x41E, 3}, + {'F111', 1118, 0xFFFF, 1}, + {'F124', 1119, 0xFFFF, 1}, + {'F114', 1120, 0x800, 3}, + {'F125', 1121, 0xA0C, 3}, + {'F121', 1122, 0x62D, 3}, + {'F122', 1122, 0x62D, 3}, + {'F123', 1122, 0x62D, 3}, + {'F117', 1123, 0xFFFF, 1}, + {'F128', 1134, 0x32E, 3}, + {'R128', 1134, 0xFFFF, 0}, + {'F127', 1140, 0xFFFF, 1}, + {'R127', 1140, 0xFFFF, 0}, + {'F126', 1141, 0xFFFF, 1}, +}; /* 80450640-80450648 0000C0 0004+04 2/2 0/0 0/0 .sdata numTelopData */ -static s32 numTelopData = ARRAY_SIZEU(TelopData); +static int numTelopData = ARRAY_SIZE(TelopData); /* 8004372C-800437C4 03E06C 0098+00 2/2 0/0 0/0 .text getTelopNo__FPCc */ -static u16 getTelopNo(char const* pName) { - s32 val = - ((pName[3] == 'B' ? 'd' : pName[0]) << 0x18 | pName[4] << 0x10 | pName[5] << 8 | pName[6]); - for (s32 i = 0; i < numTelopData; i++) { - if (val == TelopData[i].mName) { - return TelopData[i].mTelopNo; +static u16 getTelopNo(char const* i_name) { + int i; + s32 name = ((i_name[3] == 'B' ? 'd' : i_name[0]) << 0x18 | i_name[4] << 0x10 | i_name[5] << 8 | i_name[6]); + for (i = 0; i < numTelopData; i++) { + if (name == TelopData[i].name) { + return TelopData[i].telopNo; } } + return 0xFFFF; } @@ -73,6 +110,7 @@ static u16 getTelopNo() { /* 800437F0-80043A14 03E130 0224+00 1/1 0/0 0/0 .text getStartTelopNo__Fv */ static u16 getStartTelopNo() { + int i; const char* startStageName = dComIfGp_getStartStageName(); const char* lastPlayStateName = dComIfGp_getLastPlayStageName(); @@ -80,152 +118,208 @@ static u16 getStartTelopNo() { return 0xFFFF; } + TelopDataStruct* telopData = NULL; - s32 val = ((startStageName[3] == 'B' ? 'd' : startStageName[0]) << 0x18 | - startStageName[4] << 0x10 | startStageName[5] << 8 | startStageName[6]); - for (s32 i = 0; i < numTelopData; i++) { - if (val == TelopData[i].mName) { + s32 name = ((startStageName[3] == 'B' ? 'd' : startStageName[0]) << 0x18 | + startStageName[4] << 0x10 | + startStageName[5] << 8 | + startStageName[6]); + + for (i = 0; i < numTelopData; i++) { + if (name == TelopData[i].name) { telopData = &TelopData[i]; break; } } - if (telopData == NULL || telopData->_8 == 0) { + if (telopData == NULL || telopData->type == 0) { return 0xFFFF; - } else if (telopData->_8 == 2 && telopData->_6 != 0xFFFF && - !dComIfGs_isEventBit(telopData->_6)) - { + } + + if (telopData->type == 2 && telopData->flag != 0xFFFF && !dComIfGs_isEventBit(telopData->flag)) { return 0xFFFF; - } else if (telopData->_8 == 3 && telopData->_6 != 0xFFFF && - !dComIfGs_isStageSwitch(telopData->_6 >> 8, telopData->_6 & 0xFF)) - { + } + + if (telopData->type == 3 && telopData->flag != 0xFFFF && !dComIfGs_isStageSwitch(telopData->flag >> 8, telopData->flag & 0xFF)) { return 0xFFFF; - } else { - TelopDataStruct* lastTelopData = NULL; - val = ((lastPlayStateName[3] == 'B' ? 'd' : lastPlayStateName[0]) << 0x18 | - lastPlayStateName[4] << 0x10 | lastPlayStateName[5] << 8 | lastPlayStateName[6]); - - for (s32 i = 0; i < numTelopData; i++) { - if (val == TelopData[i].mName) { - lastTelopData = &TelopData[i]; - break; - } + } + + TelopDataStruct* lastTelopData = NULL; + name = ((lastPlayStateName[3] == 'B' ? 'd' : lastPlayStateName[0]) << 0x18 | + lastPlayStateName[4] << 0x10 | + lastPlayStateName[5] << 8 | + lastPlayStateName[6]); + + for (i = 0; i < numTelopData; i++) { + if (name == TelopData[i].name) { + lastTelopData = &TelopData[i]; + break; } + } - if (lastTelopData != NULL && telopData->mTelopNo == lastTelopData->mTelopNo) { - return 0xFFFF; - } else { - return telopData->mTelopNo; - } + if (lastTelopData != NULL && telopData->telopNo == lastTelopData->telopNo) { + return 0xFFFF; } + + return telopData->telopNo; } +#if DEBUG +u8 event_debug_evdt() { + dEvM_HIO_c& hio = dComIfGp_getEventManager().getEventHIO(); + return hio.m_evd_debug; +} + +u8 event_debug_evdt_endcheck() { + dEvM_HIO_c& hio = dComIfGp_getEventManager().getEventHIO(); + return hio.m_evd_unfinished; +} + +u8 event_debug_evdt_reg1() { + dEvM_HIO_c& hio = dComIfGp_getEventManager().getEventHIO(); + return hio.m_prevent_scene_switch; +} + +s32 event_debug_evdt_sound_adjust() { + dEvM_HIO_c& hio = dComIfGp_getEventManager().getEventHIO(); + return hio.m_corrective_sound_adjustment; +} +#endif + /* 80043A14-80043D60 03E354 034C+00 1/1 0/0 0/0 .text dEvDt_Next_Stage__Fii */ -static int dEvDt_Next_Stage(int index, int wipe_type) { +static int dEvDt_Next_Stage(int i_staffId, int i_wipe) { char* stage; - s16 point; + s16 start; int mode; - s8 roomNo; + s8 room; s8 layer; - s8 wipe; - s32 noVisit; - s32 wipe_time; - f32 hour; - f32 speed; + mode = 0; - wipe = wipe_type; - noVisit = true; - wipe_time = 0; - hour = 0; - bool setHour = false; - speed = 0; - - int* p_id = dComIfGp_evmng_getMyIntegerP(index, "ID"); - if (p_id != NULL) { - int id = *p_id; + + s8 wipe = i_wipe; + BOOL noVisit = true; + int wipe_time = 0; + f32 hour = 0.0f; + bool do_set_nexttime = false; + f32 speed = 0.0f; + + char* sdata; + f32* fdata; + int* idata; + + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "ID"); + if (idata != NULL) { + int id = *idata; s8 room_no = dComIfGp_roomControl_getStayNo(); - stage_scls_info_dummy_class* info; + stage_scls_info_dummy_class* info; if (room_no == -1) { info = dComIfGp_getStageSclsInfo(); } else { - info = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo(); + JUT_ASSERT(297, 0 <= room_no && room_no < 64); + dStage_roomDt_c* roomdt = dComIfGp_roomControl_getStatusRoomDt(room_no); + info = roomdt->getSclsInfo(); } if (info != NULL && id >= 0 && id < info->num) { - stage_scls_info_class* stgInfo = &info->m_entries[id]; - stage = stgInfo->mStage; - point = stgInfo->mStart; - roomNo = (s8)stgInfo->mRoom; - layer = dStage_sclsInfo_getSceneLayer(stgInfo); - wipe = dStage_sclsInfo_getWipe(stgInfo); - wipe_time = dStage_sclsInfo_getWipeTime(stgInfo); + stage_scls_info_class* scls_p = &info->m_entries[id]; + stage = scls_p->mStage; + start = scls_p->mStart; + room = (s8)scls_p->mRoom; + layer = dStage_sclsInfo_getSceneLayer(scls_p); + wipe = dStage_sclsInfo_getWipe(scls_p); + wipe_time = dStage_sclsInfo_getWipeTime(scls_p); if (wipe == 15) { wipe = 0; } - int timeH = dStage_sclsInfo_getTimeH(stgInfo); + int timeH = dStage_sclsInfo_getTimeH(scls_p); if (timeH >= 0 && timeH <= 23) { - setHour = true; + do_set_nexttime = true; hour = timeH; } + } else { + // "Couldn't get Scene info(%d)!!" + OS_REPORT("\x1b[43;30mシーン情報がとれない(%d)!!\n\x1b[m", id); } } - char* stageP = dComIfGp_evmng_getMyStringP(index, "Stage"); - if (stageP != NULL) { - stage = stageP; + sdata = dComIfGp_evmng_getMyStringP(i_staffId, "Stage"); + if (sdata != NULL) { + stage = sdata; } - int* pointP = dComIfGp_evmng_getMyIntegerP(index, "StartCode"); - if (pointP != NULL) { - point = *pointP; + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "StartCode"); + if (idata != NULL) { + start = *idata; } - int* roomP = dComIfGp_evmng_getMyIntegerP(index, "RoomNo"); - if (roomP != NULL) { - roomNo = (s8)*roomP; + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "RoomNo"); + if (idata != NULL) { + room = (s8)*idata; } - int* layerP = dComIfGp_evmng_getMyIntegerP(index, "Layer"); - if (layerP != NULL) { - layer = *layerP; + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "Layer"); + if (idata != NULL) { + layer = *idata; } - int* wipeP = dComIfGp_evmng_getMyIntegerP(index, "Wipe"); - if (wipeP != NULL) { - wipe = *wipeP; + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "Wipe"); + if (idata != NULL) { + wipe = *idata; } - int* modeP = dComIfGp_evmng_getMyIntegerP(index, "Mode"); - if (modeP != NULL) { - mode = *modeP; + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "Mode"); + if (idata != NULL) { + mode = *idata; } - f32* speedP = dComIfGp_evmng_getMyFloatP(index, "Speed"); - if (speedP != NULL) { - speed = *speedP; + fdata = dComIfGp_evmng_getMyFloatP(i_staffId, "Speed"); + if (fdata != NULL) { + speed = *fdata; } - f32* hourP = dComIfGp_evmng_getMyFloatP(index, "Hour"); - if (hourP != NULL) { - hour = *hourP; - setHour = true; + fdata = dComIfGp_evmng_getMyFloatP(i_staffId, "Hour"); + if (fdata != NULL) { + hour = *fdata; + do_set_nexttime = true; } - int* noVisitP = dComIfGp_evmng_getMyIntegerP(index, "NoVisit"); - if (noVisitP != NULL) { + idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "NoVisit"); + if (idata != NULL) { noVisit = false; } - if (stage != NULL && point != -1) { - if (setHour) { + #if DEBUG + if (event_debug_evdt_reg1()) { + // "Cancelled for debug!!" + OS_REPORT("デバックのためキャンセル!!\n"); + return 1; + } + #endif + + if (stage != NULL && start != -1) { + if (do_set_nexttime) { dKy_set_nexttime(15.0f * hour); } - dComIfGp_setNextStage(stage, point, roomNo, layer, speed, mode, 1, wipe, 0, noVisit, - wipe_time); + + dComIfGp_setNextStage(stage, start, room, layer, speed, mode, 1, wipe, 0, noVisit, wipe_time); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("!!\n!!\n"); + OS_REPORT("\x1b[46;30m%06d: event: scene change: \n stage %s start %d room %d layer %d wipe %d\n\x1b[m", + g_Counter.mCounter0, stage, start, room, layer, wipe); + OS_REPORT("!!\n!!\n"); + } + #endif + } else { + // "Scene transition data is not complete!!" + OS_REPORT_ERROR("シーン切り替えのデータ指定が足りない!!\n"); + JUT_ASSERT(379, 0); } + return 1; } @@ -233,12 +327,12 @@ static int dEvDt_Next_Stage(int index, int wipe_type) { BOOL dEvDtFlag_c::flagCheck(int flag) { if (flagMaxCheck(flag)) { return FALSE; + } + + if (mFlags[(u32)(flag & ~0x1F) / 32] & (1 << (flag & 0x1F))) { + return TRUE; } else { - if (mFlags[(u32)flag / 0x20] & (1 << (flag & 0x1F))) { - return TRUE; - } else { - return FALSE; - } + return FALSE; } } @@ -246,82 +340,91 @@ BOOL dEvDtFlag_c::flagCheck(int flag) { BOOL dEvDtFlag_c::flagSet(int flag) { if (flagMaxCheck(flag)) { return FALSE; - } else { - mFlags[(u32)flag / 0x20] |= (1 << (flag & 0x1F)); - return TRUE; } + + mFlags[(u32)(flag & ~0x1F) / 32] |= (1 << (flag & 0x1F)); + return TRUE; } -BOOL dEvDtFlag_c::flagMaxCheck(int flag) { - if (flag == -1) { +BOOL dEvDtFlag_c::flagMaxCheck(int i_flag) { + int flag_id = i_flag; + if (flag_id == -1) { return TRUE; } - if (FlagMax <= flag) { + if (flag_id >= FlagMax) { + JUT_ASSERT(445, flag_id < FlagMax); return TRUE; - } else { - return FALSE; } + + return FALSE; } void dEvDtFlag_c::init() { - for (int i = 0; i < 320; i++) { + int i; + for (i = 0; i < ARRAY_SIZEU(mFlags); i++) { mFlags[i] = 0; } } /* 80043E78-80043EFC 03E7B8 0084+00 0/0 1/1 0/0 .text finishCheck__12dEvDtEvent_cFv */ int dEvDtEvent_c::finishCheck() { - for (int i = 0; i < 3; i++) { - int tmp = field_0x88[i]; - if (tmp == -1) { + int i; + for (i = 0; i < 3; i++) { + if (mFlags[i] == -1) { return 1; } - if (!dComIfGp_getEventManager().flagCheck(tmp)) { + if (!dEvDtFlagCheck(mFlags[i])) { return 0; } } + return 1; } /* 80043EFC-80043F70 03E83C 0074+00 0/0 1/1 0/0 .text forceFinish__12dEvDtEvent_cFv */ int dEvDtEvent_c::forceFinish() { - for (int i = 0; i < 3; i++) { - int flag = field_0x88[i]; - if (flag == -1) { + int i; + for (i = 0; i < 3; i++) { + if (mFlags[i] == -1) { return 1; } - dComIfGp_getEventManager().setFlag(flag); + dEvDtFlagSet(mFlags[i]); } + return 1; } /* 80043F70-80043FD8 03E8B0 0068+00 0/0 1/1 0/0 .text * specialStaffProc__12dEvDtEvent_cFP12dEvDtStaff_c */ -void dEvDtEvent_c::specialStaffProc(dEvDtStaff_c* p_staff) { - for (int i = 0; i < mNStaff; i++) { - p_staff[mStaff[i]].specialProc(); +void dEvDtEvent_c::specialStaffProc(dEvDtStaff_c* i_staffList) { + int i; + dEvDtStaff_c* staff; + + for (i = 0; i < mNStaff; i++) { + staff = &i_staffList[getStaff(i)]; + staff->specialProc(); } } /* 80043FD8-8004403C 03E918 0064+00 4/4 0/0 0/0 .text specialProc_WaitStart__12dEvDtStaff_cFi */ -void dEvDtStaff_c::specialProc_WaitStart(int index) { - int* timer = dComIfGp_evmng_getMyIntegerP(index, "Timer"); - if (timer == NULL) { +void dEvDtStaff_c::specialProc_WaitStart(int i_staffId) { + int* idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "Timer"); + if (idata == NULL) { mWaitTimer = 0; } else { - mWaitTimer = *timer; + mWaitTimer = *idata; } } /* 8004403C-80044080 03E97C 0044+00 4/4 0/0 0/0 .text specialProc_WaitProc__12dEvDtStaff_cFi */ -void dEvDtStaff_c::specialProc_WaitProc(int param_0) { +void dEvDtStaff_c::specialProc_WaitProc(int i_staffId) { if (mWaitTimer > 0) { mWaitTimer--; } else { - dComIfGp_evmng_cutEnd(param_0); + dComIfGp_evmng_cutEnd(i_staffId); } } @@ -363,16 +466,27 @@ void dEvDtStaff_c::specialProc() { void dEvDtStaff_c::init() { mCurrentCut = mStartCut; field_0x40 = true; + + #if DEBUG + if (event_debug_evdt()) { + dEvDtCut_c* cut = dComIfGp_getEventManager().getBase().getCutP(mCurrentCut); + OS_REPORT("\x1b[32m%06d: event: cut: START %s::%s[%d]\n\x1b[m", g_Counter.mCounter0, getName(), cut->getName(), cut->getTagId()); + } + #endif + field_0x41 = false; field_0x3c = -1; - if (mType == TYPE_CAMERA) { + + switch (mType) { + case TYPE_CAMERA: dComIfGp_getEventManager().setCameraPlay(1); + break; } } /* 80044170-80044190 03EAB0 0020+00 1/1 0/0 0/0 .text advanceCut__12dEvDtStaff_cFi */ -void dEvDtStaff_c::advanceCut(int cut) { - mCurrentCut = cut; +void dEvDtStaff_c::advanceCut(int i_cut) { + mCurrentCut = i_cut; field_0x40 = true; field_0x41 = false; field_0x3c = -1; @@ -381,56 +495,71 @@ void dEvDtStaff_c::advanceCut(int cut) { /* 80044190-80044324 03EAD0 0194+00 1/1 0/0 0/0 .text specialProcLight__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcLight() { + u8* data = mData; + int staffId = dComIfGp_evmng_getMyStaffId("LIGHT", NULL, 0); - if (staffId != -1) { - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + if (staffId == -1) { + JUT_ASSERT(663, 0); + return; + } + + f32* fdata; + char* nowCutName; + int* idata; - if (dComIfGp_evmng_getIsAddvance(staffId)) { - f32* hourP; + char* var_r27 = dComIfGp_getEventManager().getMyNowCutName(staffId); + nowCutName = var_r27; - switch (*(int*)nowCutName) { - case 'CHAN': { - hourP = dComIfGp_evmng_getMyFloatP(staffId, "Hour"); - if (hourP != NULL) { - dKy_instant_timechg(*hourP * 15.0f); - } + f32 time; + if (dComIfGp_evmng_getIsAddvance(staffId)) { + switch (*(int*)nowCutName) { + case 'CHAN': + fdata = dComIfGp_evmng_getMyFloatP(staffId, "Hour"); + if (fdata != NULL) { + dKy_instant_timechg(*fdata * 15.0f); + } - int* weatherP = dComIfGp_evmng_getMyIntegerP(staffId, "Weather"); - if (weatherP != NULL) { - switch (*weatherP) { - case 0: - dKy_instant_rainchg(); - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Weather"); + if (idata != NULL) { + switch (*idata) { + case 0: + dKy_instant_rainchg(); } - break; } - case 'ADD_': - hourP = dComIfGp_evmng_getMyFloatP(staffId, "Hour"); - if (hourP != NULL) { - f32 hours = dComIfGs_getTime() * (1.0f / 15.0f); - hours += *hourP; - while (hours >= 24.0) { - hours -= 24.0; - } - dKy_instant_timechg(hours * 15.0f); + break; + case 'ADD_': + fdata = dComIfGp_evmng_getMyFloatP(staffId, "Hour"); + if (fdata != NULL) { + time = dComIfGs_getTime() * (1.0f / 15.0f); + time += *fdata; + while (time >= 24.0) { + time -= 24.0; } - break; + dKy_instant_timechg(time * 15.0f); } } - dComIfGp_evmng_cutEnd(staffId); } + + dComIfGp_evmng_cutEnd(staffId); } /* 80044324-80044A58 03EC64 0734+00 1/1 0/0 0/0 .text specialProcMessage__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcMessage() { MessageData* data = (MessageData*)&mData; - StaffWork* work = &mWork; + StaffWork* wk = (StaffWork*)&mWork; + int staffId = dComIfGp_evmng_getMyStaffId("MESSAGE", NULL, 0); if (staffId == -1) { + JUT_ASSERT(741, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + int* idata; + char* sdata; + + char* spC = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = spC; + if (dComIfGp_evmng_getIsAddvance(staffId)) { switch (*(int*)nowCutName) { case 'WAIT': @@ -438,63 +567,71 @@ void dEvDtStaff_c::specialProcMessage() { break; case 'CREA': case 'SHOW': - work->_0 = UINT_MAX; - work->mLMsg = NULL; - work->mMsgSubstanceNum = dComIfGp_evmng_getMySubstanceNum(staffId, "msgNo"); - work->mMsgSubstanceP = dComIfGp_evmng_getMyIntegerP(staffId, "msgNo"); - if (work->mMsgSubstanceNum < 1) { - work->mMsgSubstanceNum = dComIfGp_evmng_getMySubstanceNum(staffId, "No"); - work->mMsgSubstanceP = dComIfGp_evmng_getMyIntegerP(staffId, "No"); - } - work->mMsgNo = *work->mMsgSubstanceP; + wk->l_msgId = fpcM_ERROR_PROCESS_ID_e; + wk->l_msg = NULL; + + wk->msgs.n = dComIfGp_evmng_getMySubstanceNum(staffId, "msgNo"); + wk->msgs.d = dComIfGp_evmng_getMyIntegerP(staffId, "msgNo"); + if (wk->msgs.n < 1) { + wk->msgs.n = dComIfGp_evmng_getMySubstanceNum(staffId, "No"); + wk->msgs.d = dComIfGp_evmng_getMyIntegerP(staffId, "No"); + } + + JUT_ASSERT(764, wk->msgs.d); + + wk->l_msgNo = *wk->msgs.d; data->unk = 0; break; case 'END\0': case 'FINI': - work->mLMsg->mode = 0x10; + JUT_ASSERT(770, wk->l_msg); + wk->l_msg->mode = fopMsg_MODE_MSG_END_e; break; - case 'CONT': { - work->mLMsg->mode = 0xF; - int* ptr = dComIfGp_evmng_getMyIntegerP(staffId, "msgNo"); - if (ptr == NULL) { - ptr = dComIfGp_evmng_getMyIntegerP(staffId, "No"); - } - work->mMsgNo = *ptr; - fopMsgM_messageSet(work->mMsgNo, 1000); + case 'CONT': + JUT_ASSERT(774, wk->l_msg); + wk->l_msg->mode = fopMsg_MODE_MSG_CONTINUE_e; + + idata = dComIfGp_evmng_getMyIntegerP(staffId, "msgNo"); + if (idata == NULL) { + idata = dComIfGp_evmng_getMyIntegerP(staffId, "No"); + } + + JUT_ASSERT(778, idata); + wk->l_msgNo = *idata; + fopMsgM_messageSet(wk->l_msgNo, 1000); break; - } - case 'SAVE': { - work->mMsgNo = 1; - int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - if (typeP != NULL && *typeP == 1) { - work->mMsgNo = 2; + case 'SAVE': + wk->l_msgNo = 1; + + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + if (idata != NULL && *idata == 1) { + wk->l_msgNo = 2; } - work->_0 = d_GameOver_Create(work->mMsgNo); + + wk->l_msgId = d_GameOver_Create(wk->l_msgNo); break; - } - case 'TELO': { - int* forStartP = dComIfGp_evmng_getMyIntegerP(staffId, "ForStart"); + case 'TELO': + idata = dComIfGp_evmng_getMyIntegerP(staffId, "ForStart"); - if (forStartP != NULL && *forStartP != 0) { - work->mMsgNo = getStartTelopNo(); + if (idata != NULL && *idata != 0) { + wk->l_msgNo = getStartTelopNo(); } else { - char* stageP = dComIfGp_evmng_getMyStringP(staffId, "Stage"); - int* noP = dComIfGp_evmng_getMyIntegerP(staffId, "No"); - if (noP != NULL) { - work->mMsgNo = *noP; - } else if (stageP != NULL) { - work->mMsgNo = getTelopNo(stageP); + sdata = dComIfGp_evmng_getMyStringP(staffId, "Stage"); + idata = dComIfGp_evmng_getMyIntegerP(staffId, "No"); + if (idata != NULL) { + wk->l_msgNo = *idata; + } else if (sdata != NULL) { + wk->l_msgNo = getTelopNo(sdata); } else { - work->mMsgNo = getTelopNo(); + wk->l_msgNo = getTelopNo(); } } data->unk = 0; - if (work->mMsgNo != 0xFFFF) { - work->_0 = fopMsgM_messageSetDemo(work->mMsgNo); + if (wk->l_msgNo != 0xFFFF) { + wk->l_msgId = fopMsgM_messageSetDemo(wk->l_msgNo); } } - } } switch (*(int*)nowCutName) { @@ -504,14 +641,14 @@ void dEvDtStaff_c::specialProcMessage() { case 'CREA': switch (data->unk) { case 0: - work->_0 = fopMsgM_messageSet(work->mMsgNo, 1000); - if (work->_0 != UINT_MAX) { + wk->l_msgId = fopMsgM_messageSet(wk->l_msgNo, 1000); + if (wk->l_msgId != fpcM_ERROR_PROCESS_ID_e) { data->unk++; } break; case 1: - work->mLMsg = fopMsgM_SearchByID(work->_0); - if (work->mLMsg != NULL) { + wk->l_msg = fopMsgM_SearchByID(wk->l_msgId); + if (wk->l_msg != NULL) { data->unk++; } break; @@ -521,7 +658,8 @@ void dEvDtStaff_c::specialProcMessage() { } break; case 'PUSH': - if (work->mLMsg->mode == 0xE) { + JUT_ASSERT(846, wk->l_msg); + if (wk->l_msg->mode == fopMsg_MODE_MSG_DISPLAYED_e) { dComIfGp_evmng_cutEnd(staffId); } break; @@ -531,33 +669,34 @@ void dEvDtStaff_c::specialProcMessage() { case 'SHOW': switch (data->unk) { case 0: - work->_0 = fopMsgM_messageSet(work->mMsgNo, 1000); - if (work->_0 != UINT_MAX) { + wk->l_msgId = fopMsgM_messageSet(wk->l_msgNo, 1000); + if (wk->l_msgId != fpcM_ERROR_PROCESS_ID_e) { data->unk = 1; } else { break; } case 1: - work->mLMsg = fopMsgM_SearchByID(work->_0); - if (work->mLMsg == NULL) { + wk->l_msg = fopMsgM_SearchByID(wk->l_msgId); + if (wk->l_msg == NULL) { break; } - switch (work->mLMsg->mode) { - case 0xE: - work->mLMsg->mode = 0x10; + switch (wk->l_msg->mode) { + case fopMsg_MODE_MSG_DISPLAYED_e: + wk->l_msg->mode = fopMsg_MODE_MSG_END_e; break; - case 0x11: + case fopMsg_MODE_BOX_CLOSING_e: break; - case 0x12: - work->mLMsg->mode = 0x13; - work->_0 = UINT_MAX; - work->mLMsg = NULL; - work->mMsgSubstanceNum--; - if (work->mMsgSubstanceNum != 0) { + case fopMsg_MODE_BOX_CLOSED_e: + wk->l_msg->mode = fopMsg_MODE_MSG_DESTROYED_e; + wk->l_msgId = fpcM_ERROR_PROCESS_ID_e; + wk->l_msg = NULL; + + wk->msgs.n--; + if (wk->msgs.n != 0) { data->unk = 0; - work->mMsgSubstanceP++; - work->mMsgNo = *work->mMsgSubstanceP; + wk->msgs.d++; + wk->l_msgNo = *wk->msgs.d; } else { dComIfGp_evmng_cutEnd(staffId); data->unk = 99; @@ -574,12 +713,12 @@ void dEvDtStaff_c::specialProcMessage() { break; case 'DELE': case 'FINI': - if (work->mLMsg == NULL) { + if (wk->l_msg == NULL) { dComIfGp_evmng_cutEnd(staffId); - } else if (work->mLMsg->mode == 0x12) { - work->mLMsg->mode = 0x13; - work->_0 = UINT_MAX; - work->mLMsg = NULL; + } else if (wk->l_msg->mode == fopMsg_MODE_BOX_CLOSED_e) { + wk->l_msg->mode = fopMsg_MODE_MSG_DESTROYED_e; + wk->l_msgId = fpcM_ERROR_PROCESS_ID_e; + wk->l_msg = NULL; dComIfGp_evmng_cutEnd(staffId); } break; @@ -587,17 +726,17 @@ void dEvDtStaff_c::specialProcMessage() { dComIfGp_evmng_cutEnd(staffId); break; case 'END\0': - switch (work->mLMsg->mode) { - case 0x11: - case 0x12: + switch (wk->l_msg->mode) { + case fopMsg_MODE_BOX_CLOSING_e: + case fopMsg_MODE_BOX_CLOSED_e: dComIfGp_evmng_cutEnd(staffId); break; } break; case 'SAVE': - if (d_GameOver_CheckDelete(work->_0) && dComIfGp_getGameoverStatus() == 1) { + if (d_GameOver_CheckDelete(wk->l_msgId) && dComIfGp_getGameoverStatus() == 1) { dComIfGp_evmng_cutEnd(staffId); - d_GameOver_Delete(work->_0); + d_GameOver_Delete(wk->l_msgId); } break; default: @@ -613,10 +752,15 @@ void dEvDtStaff_c::specialProcSound() { int staffId = dComIfGp_evmng_getMyStaffId("SOUND", NULL, 0); if (staffId == -1) { + JUT_ASSERT(960, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + int* idata; + + char* var_r26 = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = var_r26; + if (dComIfGp_evmng_getIsAddvance(staffId)) { switch (*(int*)nowCutName) { case 'WAIT': @@ -624,26 +768,38 @@ void dEvDtStaff_c::specialProcSound() { break; case 'STRM': mDoAud_bgmStreamPlay(); + + #if DEBUG + if (event_debug_evdt()) { + // "d_event_data:: bgmStreamPlay called!!" + OS_REPORT("d_event_data:: bgmStreamPlay を呼んだ!!\n"); + } + #endif break; case 'NOMS': specialProc_WaitStart(staffId); + + #if DEBUG + if (event_debug_evdt()) { + // "SOUND wait %d" + OS_REPORT("SOUND 待ち %d \n", data->timer); + } + #endif break; - case 'RIDD': { - int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - if (typeP != NULL && *typeP == 1) { + case 'RIDD': + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + if (idata != NULL && *idata == 1) { mDoAud_seStart(Z2SE_READ_RIDDLE_A, NULL, 0, 0); } else { mDoAud_seStart(Z2SE_READ_RIDDLE_B, NULL, 0, 0); } break; - } - case 'BGMS': { - int* timerP = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); - if (timerP != NULL) { - mDoAud_bgmStop(*timerP); + case 'BGMS': + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + if (idata != NULL) { + mDoAud_bgmStop(*idata); } } - } } switch (*(int*)nowCutName) { @@ -663,58 +819,69 @@ void dEvDtStaff_c::specialProcSound() { /* 80044CB8-80044EE4 03F5F8 022C+00 1/1 0/0 0/0 .text specialProcCreate__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcCreate() { + u8* data = mData; + char* name; + int* idata; + cXyz* xyzdata; + u32 arg; cXyz pos; csXyz angle; cXyz scale; - dStage_objectNameInf* objNameInf; + dStage_objectNameInf* objectName; int staffId = dComIfGp_evmng_getMyStaffId("CREATER", NULL, 0); if (staffId == -1) { + JUT_ASSERT(1055, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* sp14 = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = sp14; + if (dComIfGp_evmng_getIsAddvance(staffId)) { switch (*(int*)nowCutName) { case 'WAIT': break; case 'CREA': name = dComIfGp_evmng_getMyStringP(staffId, "MAKECAST"); - objNameInf = dStage_searchName(name); + JUT_ASSERT(1071, name); + + objectName = dStage_searchName(name); + JUT_ASSERT(1073, objectName); - int* argP = dComIfGp_evmng_getMyIntegerP(staffId, "ARG"); - if (argP == NULL) { - arg = UINT_MAX; + idata = dComIfGp_evmng_getMyIntegerP(staffId, "ARG"); + if (idata == NULL) { + arg = 0xFFFFFFFF; } else { - arg = *argP; + arg = *idata; } - cXyz* posP = dComIfGp_evmng_getMyXyzP(staffId, "POS"); - if (posP == NULL) { + xyzdata = dComIfGp_evmng_getMyXyzP(staffId, "POS"); + if (xyzdata == NULL) { fopAc_ac_c* player_p = dComIfGp_getPlayer(0); pos = player_p->current.pos; } else { - pos = *posP; + pos = *xyzdata; } - int* angleP = dComIfGp_evmng_getMyIntegerP(staffId, "ANGLE"); - if (angleP == NULL) { + idata = dComIfGp_evmng_getMyIntegerP(staffId, "ANGLE"); + if (idata == NULL) { angle.setall(0); } else { - angle.set(angleP[0], angleP[1], angleP[2]); + angle.set(idata[0], idata[1], idata[2]); } - cXyz* scaleP = dComIfGp_evmng_getMyXyzP(staffId, "SCALE"); - if (scaleP == NULL) { + xyzdata = dComIfGp_evmng_getMyXyzP(staffId, "SCALE"); + if (xyzdata == NULL) { scale.setall(1.0f); } else { - scale = *scaleP; + scale = *xyzdata; } - fopAcM_create(objNameInf->procname, arg, &pos, dComIfGp_roomControl_getStayNo(), - &angle, &scale, objNameInf->argument); + fopAcM_create(objectName->procname, arg, &pos, dComIfGp_roomControl_getStayNo(), + &angle, &scale, objectName->argument); break; } } @@ -723,52 +890,102 @@ void dEvDtStaff_c::specialProcCreate() { /* 80044EE4-80045878 03F824 0994+00 1/1 0/0 0/0 .text specialProcDirector__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcDirector() { DirectorData* data = (DirectorData*)mData; + int* idata; + int* idata2; + f32* rate; + daPy_py_c* player = dComIfGp_getLinkPlayer(); dEvt_control_c& evtControl = dComIfGp_getEvent(); + GXColor color; int staffId = dComIfGp_evmng_getMyStaffId("DIRECTOR", NULL, 0); if (staffId == -1) { + JUT_ASSERT(1146, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* sp2C = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = sp2C; + if (dComIfGp_evmng_getIsAddvance(staffId)) { - int* eventFlagP = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag"); - if (eventFlagP != NULL) { - dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[*eventFlagP]); + int* idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: event flag %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[*idata_flag]); } - int* eventFlagOffP = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlagOff"); - if (eventFlagOffP != NULL) { - dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[*eventFlagOffP]); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlagOff"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: event flag off %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[*idata_flag]); } - int* switchTableP = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchTable"); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchTable"); int switchTable; - if (switchTableP != NULL) { - switchTable = *switchTableP; + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: switchbit table %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + switchTable = *idata_flag; } else { switchTable = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); } - int* switchBitP = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchBit"); - if (switchBitP != NULL) { - dComIfGs_onStageSwitch(switchTable, *switchBitP); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchBit"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: switchbit on %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_onStageSwitch(switchTable, *idata_flag); } - int* switchOffP = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchOff"); - if (switchOffP != NULL) { - dComIfGs_offStageSwitch(switchTable, *switchOffP); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchOff"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: switchbit off %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_offStageSwitch(switchTable, *idata_flag); } - int* tmpBitP = dComIfGp_evmng_getMyIntegerP(staffId, "TmpBit"); - if (tmpBitP != NULL) { - dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[*tmpBitP]); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "TmpBit"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: temporary bit on %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[*idata_flag]); } - int* tmpOffP = dComIfGp_evmng_getMyIntegerP(staffId, "TmpBitOff"); - if (tmpOffP != NULL) { - dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[*tmpOffP]); + idata_flag = dComIfGp_evmng_getMyIntegerP(staffId, "TmpBitOff"); + if (idata_flag != NULL) { + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: temporary bit off %d\n", g_Counter.mCounter0, *idata_flag); + } + #endif + + dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[*idata_flag]); } switch (*(int*)nowCutName) { @@ -776,18 +993,17 @@ void dEvDtStaff_c::specialProcDirector() { specialProc_WaitStart(staffId); break; case 'PLAY': - if (strcmp(nowCutName, "PLAYER_NODRAW") == 0) { + if (strcmp(sp2C, "PLAYER_NODRAW") == 0) { player->onPlayerNoDraw(); - } else if (strcmp(nowCutName, "PLAYER_DRAW") == 0) { + } else if (strcmp(sp2C, "PLAYER_DRAW") == 0) { player->offPlayerNoDraw(); } break; case 'NEXT': - dEvDt_Next_Stage(staffId, 0xD); + dEvDt_Next_Stage(staffId, 13); break; case 'SKIP': { char* zev = dComIfGp_evmng_getMyStringP(staffId, "Zev"); - // cast needed to match void* pt = (void*)evtControl.getPt1(); if (NULL == pt) { pt = evtControl.getPt2(); @@ -800,108 +1016,156 @@ void dEvDtStaff_c::specialProcDirector() { } break; } - case 'FADE': { - f32* rateP = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); - int* colorP = dComIfGp_evmng_getMyIntegerP(staffId, "Color"); + case 'FADE': + rate = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Color"); - if (*rateP > 0) { + JUT_ASSERT(1261, rate); + + if (*rate > 0) { mDoGph_gInf_c::setFadeRate(0); } - if (colorP != NULL) { - GXColor color; - color.r = colorP[0]; - color.g = colorP[1]; - color.b = colorP[2]; - color.a = colorP[3]; - mDoGph_gInf_c::fadeOut(*rateP, color); + + if (idata != NULL) { + color.r = idata[0]; + color.g = idata[1]; + color.b = idata[2]; + color.a = idata[3]; + mDoGph_gInf_c::fadeOut(*rate, color); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: fade %f (%d %d %d %d)!!\n", g_Counter.mCounter0, *rate, color.r, color.g, color.b, color.a); + } + #endif + break; } else { - mDoGph_gInf_c::fadeOut(*rateP); + mDoGph_gInf_c::fadeOut(*rate); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: fade %f!!\n", g_Counter.mCounter0, *rate); + } + #endif } break; - } - case 'VIBR': { + case 'VIBR': specialProc_WaitStart(staffId); - int* patternP = dComIfGp_evmng_getMyIntegerP(staffId, "Pattern"); - int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - dComIfGp_getVibration().StartQuake((u8*)patternP, 0, *typeP, cXyz(0, 1, 0)); + if (data->unk2 == 0) { + JUT_ASSERT(1291, 0); + } + + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Pattern"); + idata2 = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + + if (idata == NULL || idata2 == NULL) { + JUT_ASSERT(1295, 0); + } + + dComIfGp_getVibration().StartQuake((u8*)idata, 0, *idata2, cXyz(0.0f, 1.0f, 0.0f)); break; - } - case 'WIPE': { - f32* wipeRateP = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); - dDlst_list_c::wipeIn(-*wipeRateP); - if (*wipeRateP > 0) { + case 'WIPE': + rate = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); + JUT_ASSERT(1302, rate); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: derector: wipe %f!!\n", g_Counter.mCounter0, *rate); + } + #endif + + dDlst_list_c::wipeOut(*rate); + if (*rate > 0) { data->unk = 0; } else { data->unk = 1; } - int* soundP = dComIfGp_evmng_getMyIntegerP(staffId, "SOUND"); - if (soundP != NULL) { - switch (*soundP) { + idata2 = dComIfGp_evmng_getMyIntegerP(staffId, "SOUND"); + if (idata2 != NULL) { + switch (*idata2) { case 0: mDoAud_seStart(Z2SE_SY_DUMMY, NULL, 0, 0); } } break; - } case 'MAPT': { int* idP = dComIfGp_evmng_getMyIntegerP(staffId, "ID"); data->unk = *idP; + dStage_MapEvent_dt_c* mapEvent = dEvt_control_c::searchMapEventData(data->unk); if (mapEvent != NULL) { - if (mapEvent->mType == 0) { - data->unk2 = mapEvent->field_0x14; + if (mapEvent->type == dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA) { + data->unk2 = mapEvent->data.maptool.field_0x14; } else { data->unk2 = -1; } + + #if DEBUG + data->unk2 += (s16)event_debug_evdt_sound_adjust(); + #endif } else { data->unk2 = 0; } break; } case 'CAST': { - char* pt2Name = dComIfGp_evmng_getMyStringP(staffId, "Pt2"); - if (pt2Name != NULL) { - fopAc_ac_c* pt2 = fopAcM_searchFromName4Event(pt2Name, -1); - if (pt2 != NULL) { - evtControl.setPt2(pt2); + char* sdata = dComIfGp_evmng_getMyStringP(staffId, "Pt2"); + fopAc_ac_c* evt_actor_p; + if (sdata != NULL) { + evt_actor_p = fopAcM_searchFromName4Event(sdata, -1); + if (evt_actor_p != NULL) { + evtControl.setPt2(evt_actor_p); + OS_REPORT("%06d: event: derector: set %s as Pt2!\n", g_Counter.mCounter0, sdata); + } else { + OS_REPORT("%06d: event: derector: casting: %s not found!\n", g_Counter.mCounter0, sdata); } } - char* ptTName = dComIfGp_evmng_getMyStringP(staffId, "PtT"); - if (ptTName != NULL) { - fopAc_ac_c* ptT = fopAcM_searchFromName4Event(ptTName, -1); - if (ptT != NULL) { - evtControl.setPtT(ptT); + sdata = dComIfGp_evmng_getMyStringP(staffId, "PtT"); + if (sdata != NULL) { + evt_actor_p = fopAcM_searchFromName4Event(sdata, -1); + if (evt_actor_p != NULL) { + evtControl.setPtT(evt_actor_p); + OS_REPORT("%06d: event: derector: set %s as PtT!\n", g_Counter.mCounter0, sdata); + } else { + OS_REPORT("%06d: event: derector: casting: %s not found!\n", g_Counter.mCounter0, sdata); } } - char* ptIName = dComIfGp_evmng_getMyStringP(staffId, "PtI"); - if (ptIName != NULL) { - fopAc_ac_c* ptI = fopAcM_searchFromName4Event(ptIName, -1); - if (ptI != NULL) { - evtControl.setPtI(ptI); + sdata = dComIfGp_evmng_getMyStringP(staffId, "PtI"); + if (sdata != NULL) { + evt_actor_p = fopAcM_searchFromName4Event(sdata, -1); + if (evt_actor_p != NULL) { + evtControl.setPtI(evt_actor_p); + OS_REPORT("%06d: event: derector: set %s as PtI!\n", g_Counter.mCounter0, sdata); + } else { + OS_REPORT("%06d: event: derector: casting: %s not found!\n", g_Counter.mCounter0, sdata); } } - char* ptDName = dComIfGp_evmng_getMyStringP(staffId, "PtD"); - if (ptDName != NULL) { - fopAc_ac_c* ptD = fopAcM_searchFromName4Event(ptDName, -1); - if (ptD != NULL) { - evtControl.setPtD(ptD); + sdata = dComIfGp_evmng_getMyStringP(staffId, "PtD"); + if (sdata != NULL) { + evt_actor_p = fopAcM_searchFromName4Event(sdata, -1); + if (evt_actor_p != NULL) { + evtControl.setPtD(evt_actor_p); + OS_REPORT("%06d: event: derector: set %s as PtD!\n", g_Counter.mCounter0, sdata); + } else { + OS_REPORT("%06d: event: derector: casting: %s not found!\n", g_Counter.mCounter0, sdata); } } break; } - case 'SPEC': - int* specTypeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - if (specTypeP != NULL) { - switch (*specTypeP) { + case 'SPEC': { + int* type = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + if (type != NULL) { + switch (*type) { case 8: /* dSv_event_flag_c::F_0506 - N/A - Only met Ooccoo Sr. - not yet son (shared Forest - Snowpeak) */ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[506])) { /* dSv_event_flag_c::F_0566 - Ooccoo Sr. stuff - Letter from Ooccoo Sr. came in OK (no son) */ dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[566]); + OS_REPORT("%06d: event: derector: obachan letter special on 566\n", g_Counter.mCounter0); } /* dSv_event_flag_c::F_0507 - N/A - Also met the son in dungeon with first Ooccoo Sr. meeting - @@ -909,11 +1173,13 @@ void dEvDtStaff_c::specialProcDirector() { if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[507])) { /* dSv_event_flag_c::F_0567 - Ooccoo Sr. stuff - Letter from Ooccoo Sr. came in OK (yes son) */ dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[567]); + OS_REPORT("%06d: event: derector: obachan letter special on 567\n", g_Counter.mCounter0); } } } break; } + } } switch (*(int*)nowCutName) { @@ -921,14 +1187,23 @@ void dEvDtStaff_c::specialProcDirector() { specialProc_WaitProc(staffId); break; case 'FADE': + #if DEBUG + if (event_debug_evdt_reg1()) { + dComIfGp_evmng_cutEnd(staffId); + break; + } + #endif + if (!mDoGph_gInf_c::isFade()) { dComIfGp_evmng_cutEnd(staffId); break; } if (mDoGph_gInf_c::getFadeRate() >= 1) { - f32* rateP = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); - if (*rateP > 0) { + rate = dComIfGp_evmng_getMyFloatP(staffId, "Rate"); + JUT_ASSERT(1454, rate); + + if (*rate > 0) { dComIfGp_evmng_cutEnd(staffId); } } @@ -970,46 +1245,69 @@ void dEvDtStaff_c::specialProcDirector() { /* 80045878-80045AFC 0401B8 0284+00 1/1 0/0 0/0 .text specialProcPackage__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcPackage() { - dMsgObject_c* msgObj = dComIfGp_getMsgObjectClass(); - if (!!msgObj) { + u8* data = mData; + char* sdata; + f32* fdata; + cXyz* xyzdata; + int* idata; + + if (dMsgObject_getMsgObjectClass() != NULL) { dMsgObject_demoMessageGroup(); } + u8 sp8 = 0; + u8* demo_data = NULL; + int staffId = dComIfGp_evmng_getMyStaffId("PACKAGE", NULL, 0); if (staffId == -1) { + JUT_ASSERT(1528, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* sp14 = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = sp14; + if (dComIfGp_evmng_getIsAddvance(staffId)) { + sp8 = 1; + switch (*(int*)nowCutName) { case 'WAIT': specialProc_WaitStart(staffId); break; case 'PLAY': - char* fileName = dComIfGp_evmng_getMyStringP(staffId, "FileName"); - cXyz* offsetPos = dComIfGp_evmng_getMyXyzP(staffId, "OffsetPos"); - f32* offsetAngYP = dComIfGp_evmng_getMyFloatP(staffId, "OffsetAngY"); + sdata = dComIfGp_evmng_getMyStringP(staffId, "FileName"); + + #if DEBUG + if (event_debug_evdt()) { + printf("%06d: event: package: %s !!!\n", g_Counter.mCounter0, sdata); + } + #endif + + xyzdata = dComIfGp_evmng_getMyXyzP(staffId, "OffsetPos"); + fdata = dComIfGp_evmng_getMyFloatP(staffId, "OffsetAngY"); + f32 offsetAngY; - if (offsetAngYP != NULL) { - offsetAngY = *offsetAngYP; + if (fdata != NULL) { + offsetAngY = *fdata; } else { offsetAngY = 0.0f; } - // should not save event from g_dComIfG_gameInfo to register + // fake match: should not save event from g_dComIfG_gameInfo to register dComIfG_play_c& info = g_dComIfG_gameInfo.play; - u8* demoData = (u8*)info.getEvent().getStbDemoData(fileName); - dDemo_c::start(demoData, offsetPos, offsetAngY); - info.getEvent().setCullRate(10.0f); + demo_data = (u8*)info.getEvent().getStbDemoData(sdata); + JUT_ASSERT(1571, demo_data); - int* eventFlagP = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag"); - if (eventFlagP != NULL) { - dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[*eventFlagP]); + dDemo_c::start(demo_data, xyzdata, offsetAngY); + info.getEvent().setCullRate(10.0f); // fake match: suppoed to be dComIfGp_event_setCullRate + + idata = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag"); + if (idata != NULL) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[*idata]); } - break; } } + switch (*(int*)nowCutName) { case 'WAIT': specialProc_WaitProc(staffId); @@ -1017,9 +1315,9 @@ void dEvDtStaff_c::specialProcPackage() { case 'PLAY': { dEvt_control_c& evtControl = dComIfGp_getEvent(); if (dDemo_c::getMode() == 2) { - dStage_MapEvent_dt_c* event = evtControl.getStageEventDt(); + dStage_MapEvent_dt_c* event = dComIfGp_getEvent().getStageEventDt(); if (event != NULL && event->field_0x7 != 0xFF && !evtControl.chkFlag2(1)) { - dDemo_c::getControl()->referObject_control().suspend(100); + dDemo_c::getControl()->suspend(100); dComIfGp_evmng_cutEnd(staffId); } else { dDemo_c::end(); @@ -1039,17 +1337,37 @@ void dEvDtStaff_c::specialProcPackage() { /* 80045AFC-80045C34 04043C 0138+00 1/1 0/0 0/0 .text specialProcTimekeeper__12dEvDtStaff_cFv */ void dEvDtStaff_c::specialProcTimekeeper() { - TimerKeeperData* dataP = (TimerKeeperData*)&mData; + TimerKeeperData* data = (TimerKeeperData*)&mData; + int* idata; + int staffId = dComIfGp_evmng_getMyStaffId("TIMEKEEPER", NULL, 0); if (staffId == -1) { + JUT_ASSERT(1650, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* var_r27 = dComIfGp_getEventManager().getMyNowCutName(staffId); + char* nowCutName = var_r27; + if (dComIfGp_evmng_getIsAddvance(staffId)) { switch (*(int*)nowCutName) { case 'COUN': - dataP->timer = *dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + + #if PLATFORM_SHIELD + if (idata == NULL) { + idata = dComIfGp_evmng_getMyIntegerP(staffId, "S"); + } + #endif + + JUT_ASSERT(1668, idata); + data->timer = *idata; + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: timekeeper: COUNTDOWN::START %d\n", g_Counter.mCounter0, *idata); + } + #endif break; case 'WAIT': break; @@ -1058,8 +1376,8 @@ void dEvDtStaff_c::specialProcTimekeeper() { switch (*(int*)nowCutName) { case 'COUN': - if (dataP->timer > 0) { - dataP->timer--; + if (data->timer > 0) { + data->timer--; } else { dComIfGp_evmng_cutEnd(staffId); } @@ -1074,117 +1392,108 @@ void dEvDtStaff_c::specialProcTimekeeper() { */ void dEvDtStaff_c::specialProcEffect() { EffectData* data = (EffectData*)mData; + int* idata; + f32* fdata; + int staffId = dComIfGp_evmng_getMyStaffId("EFFECT", NULL, 0); if (staffId == -1) { + JUT_ASSERT(1720, 0); return; } - char* nowCutName = dComIfGp_getEventManager().getMyNowCutName(staffId); - if (dComIfGp_evmng_getIsAddvance(staffId)) { + dEvent_manager_c& evtMgr = dComIfGp_getEventManager(); + char* var_r27 = evtMgr.getMyNowCutName(staffId); + char* nowCutName = var_r27; + + if (evtMgr.getIsAddvance(staffId)) { data->unk = 0; + switch (*(int*)nowCutName) { case 'WAIT': { - int* timerP = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); - int timer; - if (timerP != NULL) { - timer = *timerP; - } else { - timer = 0; - } - data->unk = timer; - } break; + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + data->unk = idata != NULL ? *idata : 0; + break; + } case 'SHOC': { - int* powerP = dComIfGp_evmng_getMyIntegerP(staffId, "Power"); - int power; - if (powerP != NULL) { - power = *powerP; - } else { - power = 5; - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Power"); + int power = idata != NULL ? *idata : 5; + + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + int type = idata != NULL ? *idata : 15; - int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - int type; - if (typeP != NULL) { - type = *typeP; - } else { - type = 0xF; - } dComIfGp_getVibration().StartShock(power, type, cXyz(0, 1, 0)); - } break; + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: effect: start shock %d %x\n", g_Counter.mCounter0, power, type & 0x1F); + } + #endif + break; + } case 'QUAK': { int power; int type; - int timer; int random; u8* pattern; - int* timerP = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); - if (timerP != NULL) { - timer = *timerP; - } else { - timer = 30; - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + data->unk = idata != NULL ? *idata : 30; - data->unk = timer; - int* powerP = dComIfGp_evmng_getMyIntegerP(staffId, "Power"); - if (powerP != NULL) { - power = *powerP; - } else { - power = 5; - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Power"); + power = idata != NULL ? *idata : 5; - int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); - if (typeP != NULL) { - type = *typeP; - } else { - type = 0xF; - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Type"); + type = idata != NULL ? *idata : 15; pattern = (u8*)dComIfGp_evmng_getMyStringP(staffId, "Pattern"); if (pattern != NULL) { - int* randomP = dComIfGp_evmng_getMyIntegerP(staffId, "Random"); - if (randomP != NULL) { - random = *randomP; - } else { - random = 0; - } + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Random"); + random = idata != NULL ? *idata : 0; + dComIfGp_getVibration().StartQuake(pattern, random, type, cXyz(0, 1, 0)); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: effect: start quake %s %d %x\n", g_Counter.mCounter0, pattern, power, type & 0x1F); + } + #endif } else { dComIfGp_getVibration().StartQuake(power, type, cXyz(0, 1, 0)); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: effect: start quake %d\n", g_Counter.mCounter0, power); + } + #endif } - } break; + break; + } case 'BLUR': { - int* timerP = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); - int timer; - if (timerP != NULL) { - timer = *timerP; - } else { - timer = 30; - } - int timer2 = data->unk = timer; + idata = dComIfGp_evmng_getMyIntegerP(staffId, "Timer"); + int timer = data->unk = idata != NULL ? *idata : 30; - f32* alphaP = dComIfGp_evmng_getMyFloatP(staffId, "Alpha"); - f32 alpha; - if (alphaP != NULL) { - alpha = *alphaP; - } else { - alpha = 0.8f; - } + fdata = dComIfGp_evmng_getMyFloatP(staffId, "Alpha"); + f32 alpha = fdata != NULL ? *fdata : 0.8f; - f32* scaleP = dComIfGp_evmng_getMyFloatP(staffId, "Scale"); - f32 scale; - if (scaleP != NULL) { - scale = *scaleP; - } else { - scale = 1.0f; + fdata = dComIfGp_evmng_getMyFloatP(staffId, "Scale"); + f32 scale = fdata != NULL ? *fdata : 1.0f; + + dCam_getBody()->StartBlure(timer, NULL, alpha, scale); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: effect: blure %d %f %f\n", g_Counter.mCounter0, timer, alpha, scale); } - dCam_getBody()->StartBlure(timer2, NULL, alpha, scale); - } break; + #endif + break; + } } } + if (data->unk != 0) { data->unk--; } + switch (*(int*)nowCutName) { case 'WAIT': if (data->unk == 0) { @@ -1194,6 +1503,13 @@ void dEvDtStaff_c::specialProcEffect() { case 'QUAK': if (data->unk == 0) { dComIfGp_getVibration().StopQuake(0x1F); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("%06d: event: effect: stop quake\n", g_Counter.mCounter0); + } + #endif + dComIfGp_evmng_cutEnd(staffId); } break; @@ -1210,8 +1526,11 @@ void dEvDtStaff_c::specialProcEffect() { /* 800460A8-80046138 0409E8 0090+00 1/1 0/0 0/0 .text startCheck__10dEvDtCut_cFv */ int dEvDtCut_c::startCheck() { - for (int i = 0; i < 3; i++) { - int flag = this->getStartFlag(i); + int i; + int flag; + + for (i = 0; i < 3; i++) { + flag = getStartFlag(i); if (flag == -1) { if (i == 0) { return -1; @@ -1224,6 +1543,7 @@ int dEvDtCut_c::startCheck() { return 0; } } + return 1; } @@ -1242,68 +1562,113 @@ int dEvDtBase_c::init() { } /* 8004616C-8004628C 040AAC 0120+00 0/0 6/6 0/0 .text init__11dEvDtBase_cFPci */ -int dEvDtBase_c::init(char* p_data, int roomNo) { +int dEvDtBase_c::init(char* i_data, int i_roomNo) { init(); - if (p_data == NULL) { + if (i_data == NULL) { return 0; - } else { - setHeaderP((event_binary_data_header*)p_data); + } - if (getEventNum() > 0) { - setEventP((dEvDtEvent_c*)(p_data + getEventTop())); - } + setHeaderP((event_binary_data_header*)i_data); - if (getStaffNum() > 0) { - setStaffP((dEvDtStaff_c*)(p_data + getStaffTop())); - } + if (getEventNum() > 0) { + setEventP((dEvDtEvent_c*)(i_data + getEventTop())); + } - if (getCutNum() > 0) { - setCutP((dEvDtCut_c*)(p_data + getCutTop())); - } + if (getStaffNum() > 0) { + setStaffP((dEvDtStaff_c*)(i_data + getStaffTop())); + } - if (getDataNum() > 0) { - setDataP((dEvDtData_c*)(p_data + getDataTop())); - } + if (getCutNum() > 0) { + setCutP((dEvDtCut_c*)(i_data + getCutTop())); + } - if (getFDataNum() > 0) { - setFDataP((f32*)(p_data + getFDataTop())); - } + if (getDataNum() > 0) { + setDataP((dEvDtData_c*)(i_data + getDataTop())); + } - if (getIDataNum() > 0) { - setIDataP((int*)(p_data + getIDataTop())); - } + if (getFDataNum() > 0) { + setFDataP((f32*)(i_data + getFDataTop())); + } - if (getSDataNum() > 0) { - setSDataP((char*)(p_data + getSDataTop())); - } + if (getIDataNum() > 0) { + setIDataP((int*)(i_data + getIDataTop())); + } - mRoomNo = roomNo; - return getEventNum(); + if (getSDataNum() > 0) { + setSDataP((char*)(i_data + getSDataTop())); } + + mRoomNo = i_roomNo; + return getEventNum(); } /* 8004628C-800462FC 040BCC 0070+00 0/0 1/1 0/0 .text advanceCut__11dEvDtBase_cFP12dEvDtEvent_c */ -void dEvDtBase_c::advanceCut(dEvDtEvent_c* p_event) { - for (int i = 0; i < p_event->getNStaff(); i++) { - advanceCutLocal(mStaffP + p_event->getStaff(i)); +void dEvDtBase_c::advanceCut(dEvDtEvent_c* i_event) { + int i; + dEvDtStaff_c* staff; + + for (i = 0; i < i_event->getNStaff(); i++) { + staff = mStaffP + i_event->getStaff(i); + advanceCutLocal(staff); } } /* 800462FC-800463DC 040C3C 00E0+00 1/1 0/0 0/0 .text * advanceCutLocal__11dEvDtBase_cFP12dEvDtStaff_c */ -BOOL dEvDtBase_c::advanceCutLocal(dEvDtStaff_c* p_staff) { - dEvDtCut_c* cut = &mCutP[p_staff->getCurrentCut()]; +BOOL dEvDtBase_c::advanceCutLocal(dEvDtStaff_c* i_staff) { + dEvDtCut_c* cut = &mCutP[i_staff->getCurrentCut()]; + + #if DEBUG + if (event_debug_evdt_endcheck()) { + if (!dEvDtFlagCheck(cut->getFlagId())) { + OS_REPORT("\x1b[32m%06d: event: cut: %s::%s was NOT stoped\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName()); + } else { + OS_REPORT("\x1b[32m%06d: event: cut: %s::%s was stoped\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName()); + } + } + #endif + + dEvDtCut_c* cut_next; if (dEvDtFlagCheck(cut->getFlagId()) && cut->getNext() != -1) { - switch (mCutP[cut->getNext()].startCheck()) { + cut_next = &mCutP[cut->getNext()]; + switch (cut_next->startCheck()) { case -1: - p_staff->advanceCut(cut->getNext()); + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("\x1b[32m%06d: event: cut: STOP %s::%s[%d]\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName(), cut->getTagId()); + } + #endif + + i_staff->advanceCut(cut->getNext()); + + #if DEBUG + if (event_debug_evdt()) { + cut = &mCutP[i_staff->getCurrentCut()]; + OS_REPORT("\x1b[32m%06d: event: cut: START %s::%s[%d]\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName(), cut->getTagId()); + } + #endif return TRUE; case 1: dEvDtFlagSet(cut->getFlagId()); - p_staff->advanceCut(cut->getNext()); + + #if DEBUG + if (event_debug_evdt()) { + OS_REPORT("\x1b[32m%06d: event: cut: STOP %s::%s[%d]\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName(), cut->getTagId(), g_Counter.mCounter0); + } + #endif + + i_staff->advanceCut(cut->getNext()); + + #if DEBUG + if (event_debug_evdt()) { + cut = &mCutP[i_staff->getCurrentCut()]; + OS_REPORT("\x1b[32m%06d: event: cut: START %s::%s[%d]\n\x1b[m", g_Counter.mCounter0, i_staff->getName(), cut->getName(), cut->getTagId()); + } + #endif return TRUE; } } - p_staff->field_0x40 = false; + + i_staff->field_0x40 = false; return FALSE; } |
