fix some tracker locations not getting updated fast enough

This commit is contained in:
gymnast86
2026-06-08 18:05:21 -07:00
parent b743a762b4
commit 382f33d021
3 changed files with 19 additions and 1 deletions
+10 -1
View File
@@ -499,7 +499,16 @@ int daObjLife_c::initActionOrderGetDemo() {
int daObjLife_c::actionOrderGetDemo() {
if (eventInfo.checkCommandItem()) {
setStatus(STATUS_GET_DEMO_e);
#if TARGET_PC
// Set the tracker flag for rando now. The flag doesn't normally
// get set until after execItemGive runs
if (randomizer_IsActive()) {
g_randomizerState.mTrackerTempItemFlag.flag = getSaveBitNo();
g_randomizerState.mTrackerTempItemFlag.stage = getStageSaveId(getStageID());
}
#endif
if (mItemId != fpcM_ERROR_PROCESS_ID_e) {
dComIfGp_event_setItemPartnerId(mItemId);
}
@@ -191,6 +191,10 @@ public:
int stage{-1};
int flag{-1};
} mTrackerTempSwitchFlag;
struct {
int stage{-1};
int flag{-1};
} mTrackerTempItemFlag;
};
extern RandomizerState g_randomizerState;
+5
View File
@@ -724,6 +724,11 @@ bool tracker_isStageSwitch(int stage, int flag) {
}
bool tracker_isStageItem(int stage, int flag) {
if (g_randomizerState.mTrackerTempItemFlag.flag == flag &&
g_randomizerState.mTrackerTempItemFlag.stage == stage) {
return true;
}
if (dComIfGp_getStageStagInfo() && stage == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) {
return dComIfGs_isItem(flag, -1);
} else {