using System; using System.Collections.Generic; using System.Linq; using LLib.GameData; using Lumina.Excel.Sheets; namespace Questionable.Model; internal static class QuestInfoUtils { private static readonly Dictionary> CachedClassJobs = new Dictionary>(); internal static IReadOnlyList AsList(ClassJobCategory? optionalClassJobCategory) { int num = (optionalClassJobCategory.HasValue ? (-1115834397) : (-1115834399)); ClassJobCategory value = default(ClassJobCategory); IReadOnlyList readOnlyList = default(IReadOnlyList); while (true) { int num2 = num; int num3 = -1115834400; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = -1115834399; break; case 1: return Enum.GetValues(); case 4: return readOnlyList; case 3: value = optionalClassJobCategory.Value; num = ((!CachedClassJobs.TryGetValue(value.RowId, out readOnlyList)) ? (-1115834398) : (-1115834396)); break; case 2: readOnlyList = (from y in new Dictionary { { EClassJob.Adventurer, value.ADV }, { EClassJob.Gladiator, value.GLA }, { EClassJob.Pugilist, value.PGL }, { EClassJob.Marauder, value.MRD }, { EClassJob.Lancer, value.LNC }, { EClassJob.Archer, value.ARC }, { EClassJob.Conjurer, value.CNJ }, { EClassJob.Thaumaturge, value.THM }, { EClassJob.Carpenter, value.CRP }, { EClassJob.Blacksmith, value.BSM }, { EClassJob.Armorer, value.ARM }, { EClassJob.Goldsmith, value.GSM }, { EClassJob.Leatherworker, value.LTW }, { EClassJob.Weaver, value.WVR }, { EClassJob.Alchemist, value.ALC }, { EClassJob.Culinarian, value.CUL }, { EClassJob.Miner, value.MIN }, { EClassJob.Botanist, value.BTN }, { EClassJob.Fisher, value.FSH }, { EClassJob.Paladin, value.PLD }, { EClassJob.Monk, value.MNK }, { EClassJob.Warrior, value.WAR }, { EClassJob.Dragoon, value.DRG }, { EClassJob.Bard, value.BRD }, { EClassJob.WhiteMage, value.WHM }, { EClassJob.BlackMage, value.BLM }, { EClassJob.Arcanist, value.ACN }, { EClassJob.Summoner, value.SMN }, { EClassJob.Scholar, value.SCH }, { EClassJob.Rogue, value.ROG }, { EClassJob.Ninja, value.NIN }, { EClassJob.Machinist, value.MCH }, { EClassJob.DarkKnight, value.DRK }, { EClassJob.Astrologian, value.AST }, { EClassJob.Samurai, value.SAM }, { EClassJob.RedMage, value.RDM }, { EClassJob.BlueMage, value.BLU }, { EClassJob.Gunbreaker, value.GNB }, { EClassJob.Dancer, value.DNC }, { EClassJob.Reaper, value.RPR }, { EClassJob.Sage, value.SGE }, { EClassJob.Viper, value.VPR }, { EClassJob.Pictomancer, value.PCT }, { EClassJob.Beastmaster, value.Unknown0 } } where y.Value select y.Key).ToList().AsReadOnly(); CachedClassJobs[value.RowId] = readOnlyList; return readOnlyList; } } } }