v1.0.0.7: Duty List quest click opens Area Map even when Hide With Game GUI would block it
Made-with: Cursor
This commit is contained in:
@@ -266,7 +266,8 @@ public unsafe class IntegrationsController : IDisposable
|
||||
System.MapWindow.Close();
|
||||
}
|
||||
|
||||
if (!ShouldShowMap())
|
||||
// Allow map when user explicitly opened via Duty List / gathering / flag / teleport
|
||||
if (!ShouldShowMap() && !System.MapWindow.ProcessingCommand)
|
||||
{
|
||||
Service.Log.Debug("[OnShow] Condition to open map is rejected, aborting.");
|
||||
return;
|
||||
@@ -293,9 +294,17 @@ public unsafe class IntegrationsController : IDisposable
|
||||
showMapHook!.Original(agent, a1, a2);
|
||||
}, Service.Log, "Exception during OnShowHook");
|
||||
|
||||
private static bool IsUserInitiatedMapOpen(MapType type) =>
|
||||
type is MapType.QuestLog or MapType.GatheringLog or MapType.FlagMarker or MapType.Bozja
|
||||
or MapType.MobHunt or MapType.SharedFate or MapType.Teleport or MapType.Treasure;
|
||||
|
||||
private void OnOpenMapHook(AgentMap* agent, OpenMapInfo* mapInfo) =>
|
||||
HookSafety.ExecuteSafe(() =>
|
||||
{
|
||||
// Set before Original so ShowMap (if called synchronously) can bypass ShouldShowMap rejection
|
||||
if (IsUserInitiatedMapOpen(mapInfo->Type))
|
||||
System.MapWindow.ProcessingCommand = true;
|
||||
|
||||
openMapHook!.Original(agent, mapInfo);
|
||||
|
||||
switch (mapInfo->Type)
|
||||
|
||||
Reference in New Issue
Block a user