v1.0.0.21: Refresh minimap when exiting NPC/quest dialogue (fix speak-to-NPC objectives)
Made-with: Cursor
This commit is contained in:
@@ -32,6 +32,8 @@ public unsafe class IntegrationsController : IDisposable
|
||||
private string _lastQuestSequenceSnapshot = string.Empty;
|
||||
/// <summary>Snapshot of temp marker positions; when this changes we refresh so quest area circles update (e.g. marker moved from 1/3 to 2/3 location).</summary>
|
||||
private string _lastTempMarkerSnapshot = string.Empty;
|
||||
/// <summary>True on the previous frame if player was in NPC or quest dialogue (Occupied / OccupiedInQuestEvent). Used to refresh minimap when dialogue ends (e.g. after speaking to quest NPC with no step counter).</summary>
|
||||
private bool _wasInQuestOrNpcDialogue;
|
||||
private bool _refreshedDuringLoad;
|
||||
/// <summary>When true, request a silent refresh on the next framework update (e.g. after plugin load).</summary>
|
||||
private bool _requestRefreshOnLoad = true;
|
||||
@@ -142,6 +144,12 @@ public unsafe class IntegrationsController : IDisposable
|
||||
RequestSilentRefresh();
|
||||
}
|
||||
|
||||
// When player exits NPC or quest dialogue, refresh so minimap updates (e.g. "go to destination and speak to NPC" with no 1/3, 2/3 step counter).
|
||||
var inDialogue = Service.Condition[ConditionFlag.Occupied] || Service.Condition[ConditionFlag.OccupiedInQuestEvent];
|
||||
if (_wasInQuestOrNpcDialogue && !inDialogue)
|
||||
RequestSilentRefresh();
|
||||
_wasInQuestOrNpcDialogue = inDialogue;
|
||||
|
||||
// Quest turned in, quest accepted, or objectives updated: refresh so markers stay in sync
|
||||
// Skip these triggers when user just opened map via Duty List (quest/gathering/flag/teleport)
|
||||
// so we don't close the map they intentionally opened.
|
||||
|
||||
Reference in New Issue
Block a user