v1.0.0.3: Fix marker cache refresh after quest turn-in; invalidate temp cache so old markers don't persist

Made-with: Cursor
This commit is contained in:
2026-02-26 21:52:45 -05:00
parent 31ab36d645
commit 2c54907cd5
4 changed files with 17 additions and 5 deletions
+12 -3
View File
@@ -159,10 +159,16 @@ public unsafe class IntegrationsController : IDisposable
RequestSilentRefresh(); // objectives added (e.g. new quest)
if (_lastQuestSequenceSnapshot.Length > 0 && sequenceSnapshot != _lastQuestSequenceSnapshot)
RequestSilentRefresh(); // quest step advanced (multi-step objective)
_lastQuestCount = questCount;
_lastTempMarkerCount = tempCount;
_lastQuestSequenceSnapshot = sequenceSnapshot;
} else {
// During suppression: only update temp/sequence baseline so we don't false-trigger
// when suppression ends (e.g. Duty List click repopulates markers). Keep _lastQuestCount
// so quest turn-in during suppression still triggers refresh when suppression ends.
_lastTempMarkerCount = tempCount;
_lastQuestSequenceSnapshot = sequenceSnapshot;
}
_lastQuestCount = questCount;
_lastTempMarkerCount = tempCount;
_lastQuestSequenceSnapshot = sequenceSnapshot;
}
/// <summary>Build a string of (QuestId, Sequence) for each active quest so we can detect step advances.</summary>
@@ -204,6 +210,9 @@ public unsafe class IntegrationsController : IDisposable
var currentMapId = agent->CurrentMapId;
if (currentMapId == 0) return;
// Clear temp marker cache so old markers (e.g. from turned-in quest) don't persist
MapRenderer.MapRenderer.InvalidateTempMarkerCache(currentMapId);
SilentRefreshInProgress = true;
agent->OpenMapByMapId(currentMapId, 0, true);
agent->ResetMapMarkers();