using Questionable.Functions; using Questionable.Model.Questing; using SmartNav; using SmartNav.Model; namespace Questionable.Navigation; internal sealed class QuestionablePlayerContext(Configuration configuration, QuestFunctions questFunctions, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions) : IPlayerContext { public uint? CurrentMsqQuestId { get { QuestId questId = questFunctions.GetMainScenarioQuest().Item1.CurrentQuest as QuestId; int num = (((object)questId != null) ? (-685921250) : (-685921251)); while (true) { int num2 = num; int num3 = -685921249; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_005f; case 1: return _200C_206B_206B_206B_202C_200D_206B_202E_200C_206D_206A_200E_202B_202A_200D_200F_206B_202C_206C_202D_202B_202C_206E_200D_202B_200B_206F_206B_206D_206A_202A_200D_206F_202C_206F_200E_202B_206F_202C_202A_202E((ElementId)questId); case 2: return null; } continue; IL_005f: num = -685921251; } } } public int GilReserve => configuration.Navigation.GilReserve; public bool PreferFreeTravel => configuration.Navigation.PreferFreeTravel; public bool UseTeleportTickets => configuration.Navigation.UseTeleportTickets; public bool IsAetheryteUnlocked(EAetheryteLocation aetheryte) { return aetheryteFunctions.IsAetheryteUnlocked(aetheryte); } bool IPlayerContext.IsAetheryteUnlocked(EAetheryteLocation aetheryte) { //ILSpy generated this explicit interface implementation from .override directive in IsAetheryteUnlocked return this.IsAetheryteUnlocked(aetheryte); } public bool IsFlyingUnlocked(uint territoryId) { return gameFunctions.IsFlyingUnlockedPersistent(territoryId); } bool IPlayerContext.IsFlyingUnlocked(uint territoryId) { //ILSpy generated this explicit interface implementation from .override directive in IsFlyingUnlocked return this.IsFlyingUnlocked(territoryId); } public bool IsTeleportUnlocked() { return aetheryteFunctions.IsTeleportUnlocked(); } bool IPlayerContext.IsTeleportUnlocked() { //ILSpy generated this explicit interface implementation from .override directive in IsTeleportUnlocked return this.IsTeleportUnlocked(); } public bool IsReturnAvailable() { return aetheryteFunctions.IsReturnAvailable(); } bool IPlayerContext.IsReturnAvailable() { //ILSpy generated this explicit interface implementation from .override directive in IsReturnAvailable return this.IsReturnAvailable(); } static ushort _200C_206B_206B_206B_202C_200D_206B_202E_200C_206D_206A_200E_202B_202A_200D_200F_206B_202C_206C_202D_202B_202C_206E_200D_202B_200B_206F_206B_206D_206A_202A_200D_206F_202C_206F_200E_202B_206F_202C_202A_202E(ElementId P_0) { return P_0.Value; } }