diff --git a/Mappy/Controllers/IntegrationsController.cs b/Mappy/Controllers/IntegrationsController.cs
index fd6cdf9..d997f8b 100644
--- a/Mappy/Controllers/IntegrationsController.cs
+++ b/Mappy/Controllers/IntegrationsController.cs
@@ -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;
}
/// Build a string of (QuestId, Sequence) for each active quest so we can detect step advances.
@@ -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();
diff --git a/Mappy/MapRenderer/MapRenderer.MinimapMarkers.cs b/Mappy/MapRenderer/MapRenderer.MinimapMarkers.cs
index 8936410..0d7677d 100644
--- a/Mappy/MapRenderer/MapRenderer.MinimapMarkers.cs
+++ b/Mappy/MapRenderer/MapRenderer.MinimapMarkers.cs
@@ -369,6 +369,9 @@ public partial class MapRenderer
/// Cached quest/objective (temp) markers per map; populated during silent refresh on quest accept/turn-in/objective update.
private static readonly Dictionary> TempMarkerCache = new();
+ /// Clear the temp marker cache for a map so stale markers (e.g. from a turned-in quest) are not drawn until we refresh.
+ public static void InvalidateTempMarkerCache(uint mapId) => TempMarkerCache.Remove(mapId);
+
/// Cached non-FATE event markers per map; populated during silent refresh.
private static readonly Dictionary> EventMarkerCache = new();
diff --git a/Mappy/Mappy.csproj b/Mappy/Mappy.csproj
index 42f5ba3..dc88b41 100644
--- a/Mappy/Mappy.csproj
+++ b/Mappy/Mappy.csproj
@@ -4,7 +4,7 @@
HSMappy
HSMappy
Knack117
- 1.0.0.2
+ 1.0.0.3
A more versatile in-game map.
Replaces the in-game map with an ImGui implementation with several additional features. Fork with minimap improvements, quest radius on minimap, and more.
http://brassnet.ddns.net:33983/KnackAtNite/HSMappy
diff --git a/Mappy/pluginmaster.json b/Mappy/pluginmaster.json
index 0babe6b..9ff9306 100644
--- a/Mappy/pluginmaster.json
+++ b/Mappy/pluginmaster.json
@@ -1 +1 @@
-[{"Author":"Knack117","Name":"HSMappy","Punchline":"A more versatile in-game map.","Description":"Replaces the in-game map with an ImGui implementation with several additional features. Fork with minimap improvements, quest radius on minimap, white gradient player cone, and more.","Changelog":"1.0.0.2: Red direction arrow on minimap pointing to player flag. 1.0.0.1: Duty List quest click keeps Area Map open; player flags show on minimap. 1.0.0.0: Initial HSMappy release. Minimap: quest radius circle (orange, transparent), tooltip; cone drawn under markers; white gradient cone; /hsmappy commands.","InternalName":"HSMappy","AssemblyVersion":"1.0.0.2","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy","ApplicableVersion":"any","Tags":["map","mapping","overlay","utility"],"CategoryTags":["jobs"],"DalamudApiLevel":14,"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.2/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.2/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.2/latest.zip","LastUpdate":"1772140942"}]
+[{"Author":"Knack117","Name":"HSMappy","Punchline":"A more versatile in-game map.","Description":"Replaces the in-game map with an ImGui implementation with several additional features. Fork with minimap improvements, quest radius on minimap, white gradient player cone, and more.","Changelog":"1.0.0.3: Fix marker cache refresh after quest turn-in; invalidate temp cache so old markers don't persist. 1.0.0.2: Red direction arrow on minimap pointing to player flag. 1.0.0.1: Duty List quest click keeps Area Map open; player flags show on minimap. 1.0.0.0: Initial HSMappy release. Minimap: quest radius circle (orange, transparent), tooltip; cone drawn under markers; white gradient cone; /hsmappy commands.","InternalName":"HSMappy","AssemblyVersion":"1.0.0.3","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy","ApplicableVersion":"any","Tags":["map","mapping","overlay","utility"],"CategoryTags":["jobs"],"DalamudApiLevel":14,"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.3/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.3/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSMappy/releases/download/v1.0.0.3/latest.zip","LastUpdate":"1772142707"}]