using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Runtime.CompilerServices; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; using Lumina.Excel; using Lumina.Excel.Sheets; using Questionable.Model.Questing; namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { [Serializable] [CompilerGenerated] private sealed class _003C_003Ec { public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); public static Func _003C_003E9__0_0; public static Func, QuestId> _003C_003E9__0_1; public static Func _003C_003E9__0_2; public static Func, ushort> _003C_003E9__0_3; public static Func _003C_003E9__0_4; public static Func _003C_003E9__0_5; public static Func _003C_003E9__0_6; public static Func _003C_003E9__0_7; public static Func, bool> _003C_003E9__0_8; public static Func, Item?> _003C_003E9__0_9; public static Func _003C_003E9__0_10; public static Func _003C_003E9__0_11; public static Func _003C_003E9__0_13; internal bool _003C_002Ector_003Eb__0_0(PreviousQuestInfo x) { return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0; } internal QuestId _003C_002Ector_003Eb__0_1(RowRef x) { return _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId); } internal bool _003C_002Ector_003Eb__0_2(QuestId x) { return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0; } internal ushort _003C_002Ector_003Eb__0_3(RowRef x) { return (ushort)x.RowId; } internal bool _003C_002Ector_003Eb__0_4(ushort x) { return x != 0; } internal bool _003C_002Ector_003Eb__0_5(RowRef x) { int num = ((x.RowId == 0) ? 461820485 : 461820486); while (true) { int num2 = num; int num3 = 461820484; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: goto IL_004a; case 1: return false; case 2: return x.Is(); } continue; IL_004a: num = 461820486; } } internal Item? _003C_002Ector_003Eb__0_6(RowRef x) { return x.GetValueOrDefault(); } internal bool _003C_002Ector_003Eb__0_7(Item? x) { return x.HasValue; } internal bool _003C_002Ector_003Eb__0_8(RowRef x) { return x.RowId != 0; } internal Item? _003C_002Ector_003Eb__0_9(RowRef x) { return x.ValueNullable; } internal bool _003C_002Ector_003Eb__0_10(Item? x) { return x.HasValue; } internal Item _003C_002Ector_003Eb__0_11(Item? x) { return x.Value; } internal bool _003C_002Ector_003Eb__0_13(ItemReward x) { return x != null; } static ushort _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E(ElementId P_0) { return P_0.Value; } static QuestId _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(uint P_0) { return Questionable.Model.Questing.QuestId.FromRowId(P_0); } } public ElementId QuestId { get; } public string Name { get; } public ushort Level { get; } public uint IssuerDataId { get; } public bool IsRepeatable { get; } public ImmutableList PreviousQuests { get; private set; } public EQuestJoin PreviousQuestJoin { get; } public ImmutableList QuestLocks { get; private set; } public EQuestJoin QuestLockJoin { get; private set; } public List PreviousInstanceContent { get; } public EQuestJoin PreviousInstanceContentJoin { get; } public uint? JournalGenre { get; set; } public ushort SortKey { get; set; } public bool IsMainScenarioQuest { get; } public bool CompletesInstantly { get; } public FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany GrandCompany { get; } public EAlliedSociety AlliedSociety { get; } public byte AlliedSocietyQuestGroup { get; } public int AlliedSocietyRank { get; } public IReadOnlyList ClassJobs { get; } public bool IsSeasonalEvent { get; } public uint NewGamePlusChapter { get; } public byte StartingCity { get; set; } public byte MoogleDeliveryLevel { get; } public IReadOnlyList ItemRewards { get; } public EExpansionVersion Expansion { get; } public DateTime? SeasonalQuestExpiry { get; internal set; } public bool IsSeasonalQuest { get; internal set; } [MethodImpl(MethodImplOptions.NoInlining)] public QuestInfo(Lumina.Excel.Sheets.Quest quest, uint newGamePlusChapter, byte startingCity, bool isSeasonalEventQuest = false, DateTime? seasonalQuestExpiry = null) { QuestId = _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.RowId); ushort num = _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(QuestId); string text; if ((uint)num <= 123u) { if ((uint)num <= 108u) { if (num != 85) { if (num != 108) { goto IL_01b2; } text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-710232599); } else { text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-112345390); } } else if (num != 109) { if (num != 123) { goto IL_01b2; } text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1425643080); } else { text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-74132824); } } else if ((uint)num <= 570u) { if (num != 124) { int num2 = 568; int num3 = num; switch (~(~num3 + num2)) { case 0: break; case 1: goto IL_0142; case 2: goto IL_0152; default: goto IL_01b2; } text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-990183056); } else { text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1094754462); } } else if (num != 673) { if (num != 674) { int num2 = 1432; int num3 = num; switch (~(~num3 + num2)) { case 0: break; case 1: goto IL_0192; case 2: goto IL_01a2; default: goto IL_01b2; } text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-755758949); } else { text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(894839759); } } else { text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1214228773); } goto IL_01bd; IL_0192: text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(842512297); goto IL_01bd; IL_0152: text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1604495935); goto IL_01bd; IL_01bd: string value = text; Name = $"{quest.Name}{value}"; Level = quest.ClassJobLevel[0]; IssuerDataId = quest.IssuerStart.RowId; IsRepeatable = quest.IsRepeatable; PreviousQuests = new List { new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[0].RowId)), quest.Unknown7), new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[1].RowId)), 0), new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[2].RowId)), 0) }.Where((PreviousQuestInfo x) => _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0).ToImmutableList(); PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin; QuestLocks = (from x in quest.QuestLock select _003C_003Ec._202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId) into x where _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0 select x).ToImmutableList(); QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; JournalGenre = quest.JournalGenre.ValueNullable?.RowId; SortKey = quest.SortKey; JournalGenre? valueNullable = quest.JournalGenre.ValueNullable; IsMainScenarioQuest = valueNullable.HasValue && valueNullable.GetValueOrDefault().Icon == 61412; CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0; PreviousInstanceContent = (from x in quest.InstanceContent select (ushort)x.RowId into x where x != 0 select x).ToList(); PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin; GrandCompany = (FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany)quest.GrandCompany.RowId; AlliedSociety = (EAlliedSociety)quest.BeastTribe.RowId; AlliedSocietyQuestGroup = quest.DailyQuestPool; AlliedSocietyRank = (int)quest.BeastReputationRank.RowId; ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.ValueNullable); IsSeasonalEvent = quest.Festival.RowId != 0; IsSeasonalQuest = isSeasonalEventQuest; SeasonalQuestExpiry = (IsSeasonalQuest ? seasonalQuestExpiry : ((DateTime?)null)); NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId; IEnumerable first = (from x in quest.Reward.Where(delegate(RowRef x) { int num4 = ((x.RowId == 0) ? 461820485 : 461820486); while (true) { int num5 = num4; int num6 = 461820484; int num7 = num5; int num8 = num7 + num6; int num9 = num7 & num6; switch (num8 - (num9 + num9)) { case 0: goto IL_004a; case 1: return false; case 2: return x.Is(); } continue; IL_004a: num4 = 461820486; } }) select x.GetValueOrDefault() into x where x.HasValue select x).Cast(); IEnumerable second = from x in quest.OptionalItemReward where x.RowId != 0 select x.ValueNullable into x where x.HasValue select x.Value; ItemRewards = (from x in first.Concat(second) select ItemReward.CreateFromItem(x, QuestId) into x where x != null select x).Cast().ToList(); Expansion = (EExpansionVersion)quest.Expansion.RowId; return; IL_0142: text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(100444472); goto IL_01bd; IL_01b2: text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(1200342830); goto IL_01bd; IL_01a2: text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1214228773); goto IL_01bd; } private static QuestId ReplaceOldQuestIds(QuestId questId) { int num = ((_200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E((ElementId)questId) != 524) ? 1388511094 : 1388511093); QuestId result = default(QuestId); while (true) { int num2 = num; int num3 = 1388511095; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: return result; case 2: result = _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E((ushort)4522); num = 1388511095; break; case 1: result = questId; num = 1388511095; break; case 3: num = 1388511093; break; } } } public void AddPreviousQuest(PreviousQuestInfo questId) { ImmutableList previousQuests = PreviousQuests; int num = 0; PreviousQuestInfo[] array = new PreviousQuestInfo[1 + previousQuests.Count]; using (ImmutableList.Enumerator enumerator = previousQuests.GetEnumerator()) { int num2 = 152689152; while (true) { int num3 = num2; int num4 = 152689155; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { case 2: num2 = 152689152; break; case 3: num2 = (enumerator.MoveNext() ? 152689154 : 152689155); break; case 1: { PreviousQuestInfo current = enumerator.Current; array[num] = current; int num6 = num; num4 = 1; num5 = num6; int num7 = num5 ^ num4; int num8 = num5 & num4; num = num7 + (num8 + num8); num2 = 152689152; break; } case 0: goto end_IL_002a; } continue; end_IL_002a: break; } } array[num] = questId; PreviousQuests = ImmutableList.Create(new ReadOnlySpan(array)); } public void AddQuestLocks(EQuestJoin questJoin, params QuestId[] questId) { int num = ((QuestLocks.Count <= 0) ? 132063164 : 132063166); while (true) { int num2 = num; int num3 = 132063167; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: throw _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E(); case 1: num = ((QuestLockJoin == questJoin) ? 132063164 : 132063167); break; case 2: num = 132063166; break; case 3: { QuestLockJoin = questJoin; ImmutableList questLocks = QuestLocks; int num7 = 0; QuestId[] array = new QuestId[questLocks.Count + questId.Length]; using (ImmutableList.Enumerator enumerator = questLocks.GetEnumerator()) { num = -1685123962; while (true) { int num8 = num; num3 = -1685123961; num4 = num8; switch ((num4 | num3) - (num4 & num3)) { case 1: num = (enumerator.MoveNext() ? (-1685123964) : (-1685123963)); break; case 3: { QuestId current = enumerator.Current; array[num7] = current; int num9 = num7; num3 = 1; num4 = num9; num7 = (num4 | num3) + (num4 & num3); num = -1685123962; break; } case 0: num = -1685123962; break; case 2: goto end_IL_00c5; } continue; end_IL_00c5: break; } } ReadOnlySpan readOnlySpan = new ReadOnlySpan(questId); readOnlySpan.CopyTo(new Span(array).Slice(num7, readOnlySpan.Length)); num7 += readOnlySpan.Length; QuestLocks = ImmutableList.Create(new ReadOnlySpan(array)); return; } } } } static QuestId _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(uint P_0) { return Questionable.Model.Questing.QuestId.FromRowId(P_0); } static ushort _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(ElementId P_0) { return P_0.Value; } static QuestId _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E(ushort P_0) { return new QuestId(P_0); } static InvalidOperationException _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E() { return new InvalidOperationException(); } }