diff options
| author | robojumper <robojumper@gmail.com> | 2025-05-10 22:11:12 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-05-10 22:20:19 +0200 |
| commit | aa35c8c9707ee78913847fb2faf3cf89b5f99557 (patch) | |
| tree | abcdba805d104c324854ee425b53b615e2e03c9c /src/d/d_message.cpp | |
| parent | 4c5dede891ea0934d77bfcee8f50f9702c949031 (diff) | |
Clean up flag handling
Diffstat (limited to 'src/d/d_message.cpp')
| -rw-r--r-- | src/d/d_message.cpp | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp index 655e68bd..2fb2b1a2 100644 --- a/src/d/d_message.cpp +++ b/src/d/d_message.cpp @@ -248,14 +248,14 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) { break; case EVENT_SET_ZONEFLAG: dStageMgr_c::GetInstance()->getFlagIndex(); - SceneflagManager::sInstance->setFlag( - dStage_c::GetInstance()->getCurrRoomId(), ((params1n2 >> 16) & 0xFFFF) + 0xC0 + SceneflagManager::sInstance->setZoneflag_i( + dStage_c::GetInstance()->getCurrRoomId(), (params1n2 >> 16) & 0xFFFF ); break; case EVENT_UNSET_ZONEFLAG: dStageMgr_c::GetInstance()->getFlagIndex(); - SceneflagManager::sInstance->unsetFlag( - dStage_c::GetInstance()->getCurrRoomId(), ((params1n2 >> 16) & 0xFFFF) + 0xC0 + SceneflagManager::sInstance->unsetZoneflag_i( + dStage_c::GetInstance()->getCurrRoomId(), (params1n2 >> 16) & 0xFFFF ); break; case EVENT_DELAY: @@ -337,7 +337,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) { break; case EVENT_SET_ITEM: { u16 flag = params1n2 & 0xFFFF; - ItemflagManager::sInstance->setFlag(flag | 0x4000); + ItemflagManager::sInstance->setItemFlag(flag); switch (params1n2) { case ITEM_FARORES_COURAGE: case ITEM_NAYRUS_WISDOM: @@ -380,7 +380,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) { } else if (counter == 0x1F3) { counter = dAcItem_c::getTotalBombCount(); } else { - counter = ItemflagManager::sInstance->getCounterOrFlag(counter | 0x4000); + counter = ItemflagManager::sInstance->getItemCounterOrFlag(counter); } if (counter >= threshold) { @@ -394,23 +394,23 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) { case EVENT_ADD_ITEM: { u16 flag = (params1n2 >> 16) & 0xFFFF; s16 change = (s16)(params1n2 & 0xFFFF); - s32 value = ItemflagManager::sInstance->getCounterOrFlag(flag | 0x4000); + s32 value = ItemflagManager::sInstance->getItemCounterOrFlag(flag); value += change; if (value < 0) { value = 0; } else if (value > 0x8000) { value = 0x7FFF; } - ItemflagManager::sInstance->setFlagOrCounterToValue(flag | 0x4000, value); + ItemflagManager::sInstance->setItemFlagOrCounterToValue(flag, value); break; } case EVENT_SET_TEMPFLAG: dStageMgr_c::GetInstance()->getFlagIndex(); - SceneflagManager::sInstance->setFlag(0x3F, ((params1n2 >> 16) & 0xFFFF) + 0x80); + SceneflagManager::sInstance->setTempflag_i(0x3F, (params1n2 >> 16) & 0xFFFF); break; case EVENT_UNSET_TEMPFLAG: dStageMgr_c::GetInstance()->getFlagIndex(); - SceneflagManager::sInstance->unsetFlag(0x3F, ((params1n2 >> 16) & 0xFFFF) + 0x80); + SceneflagManager::sInstance->unsetTempflag_i(0x3F, (params1n2 >> 16) & 0xFFFF); break; case EVENT_LIGHT_PILLAR_30: { s8 p4 = (params1n2 >> 24) & 0xFF; @@ -746,8 +746,8 @@ u16 dFlow_c::branchHandler04(const MsbFlowInfo *element) const { } u16 dFlow_c::branchHandler05(const MsbFlowInfo *element) const { - return !SceneflagManager::sInstance->checkFlag( - dStage_c::GetInstance()->getCurrRoomId(), (element->params1n2 & 0xFFFF) + 0xC0 + return !SceneflagManager::sInstance->checkZoneflag_i( + dStage_c::GetInstance()->getCurrRoomId(), element->params1n2 & 0xFFFF ); } @@ -764,7 +764,7 @@ u16 dFlow_c::branchHandler08(const MsbFlowInfo *element) const { } u16 dFlow_c::branchHandler09(const MsbFlowInfo *element) const { - return !SceneflagManager::sInstance->checkFlag(0x3F, (element->params1n2 & 0xFFFF) + 0x80); + return !SceneflagManager::sInstance->checkTempflag_i(0x3F, element->params1n2 & 0xFFFF); } u16 dFlow_c::branchHandler10(const MsbFlowInfo *element) const { @@ -892,7 +892,7 @@ u16 dFlow_c::branchHandler20(const MsbFlowInfo *element) const { u16 dFlow_c::branchHandler21(const MsbFlowInfo *element) const { u16 ret = 0; - if (matchesUnknownActorCategory(FiContext::getTargetActorId())) { + if (shouldActorShowKillCount(FiContext::getTargetActorId())) { ret = 1; } return ret; @@ -1086,12 +1086,13 @@ bool dFlow_c::advanceUntil(s32 searchType, s32 searchParam3, s32 *pOutParams1n2) return 0; } -static const s32 sTargetActorIds[] = {0, 1, 10, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 65, 67, 77, 81, 87, 88, 89, 90, -1}; +// TODO: Where are these IDs from? +static const s32 sActorsWithKillCount[] = {0, 1, 10, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 65, 67, 77, 81, 87, 88, 89, 90, -1}; -bool dFlow_c::matchesUnknownActorCategory(s32 id) const { - for (s32 i = 0; sTargetActorIds[i] >= 0; i++) { - if (sTargetActorIds[i] == id) { +bool dFlow_c::shouldActorShowKillCount(s32 id) const { + for (s32 i = 0; sActorsWithKillCount[i] >= 0; i++) { + if (sActorsWithKillCount[i] == id) { return true; } } |
