add tracker_isStageItem for Freestanding Item checking

This commit is contained in:
CraftyBoss
2026-05-22 23:03:06 -07:00
parent ffa1fd5da4
commit 85fe76b5be
3 changed files with 11 additions and 2 deletions
+1 -1
View File
@@ -378,7 +378,7 @@ namespace dusk {
} else if (auto& freeStandingItemNode = locationMeta["Freestanding Item"]) {
auto flag = freeStandingItemNode[0]["Flag"].as<u8>();
auto stageId = getStageSaveId(freeStandingItemNode[0]["Stage"].as<u8>());
info.collected = tracker_isStageSwitch(stageId, flag);
info.collected = tracker_isStageItem(stageId, flag);
} else if (auto& eventFlagNode = locationMeta["Event Flag"]) {
auto flag = eventFlagNode.as<u16>();
info.collected = tracker_isEventBit(flag);
+8
View File
@@ -590,4 +590,12 @@ bool tracker_isStageSwitch(int stage, int flag) {
return dComIfGs_isStageSwitch(stage, flag) ||
(g_randomizerState.mTrackerTempSwitchFlag.flag == flag &&
g_randomizerState.mTrackerTempSwitchFlag.stage == stage);
}
bool tracker_isStageItem(int stage, int flag) {
if (dComIfGp_getStageStagInfo() && stage == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) {
return dComIfGs_isItem(flag, -1);
} else {
return g_dComIfG_gameInfo.info.getSavedata().getSave(stage).getBit().isItem(flag);
}
}
+2 -1
View File
@@ -29,4 +29,5 @@ int getStageSaveId(int id);
int getStageSaveId(const char* stage);
bool tracker_isEventBit(u16 flag);
bool tracker_isStageSwitch(int stage, int flag);
bool tracker_isStageSwitch(int stage, int flag);
bool tracker_isStageItem(int stage, int flag);