From 5791858984287c34a825cdd72972ca8ee492b7fe Mon Sep 17 00:00:00 2001 From: alydev Date: Mon, 22 Dec 2025 00:05:42 +1000 Subject: [PATCH] muffin v7.4.3 --- .../Questionable.Data/ChangelogData.cs | 1605 +++++++++-------- .../ChangelogEntry.cs | 38 +- .../ChangelogEntryComponent.cs | 3 +- .../Questionable/QuestionablePlugin.cs | 5 +- 4 files changed, 835 insertions(+), 816 deletions(-) diff --git a/Questionable/Questionable.Data/ChangelogData.cs b/Questionable/Questionable.Data/ChangelogData.cs index 00292a9..f841dbd 100644 --- a/Questionable/Questionable.Data/ChangelogData.cs +++ b/Questionable/Questionable.Data/ChangelogData.cs @@ -11,936 +11,932 @@ internal static class ChangelogData static ChangelogData() { - int num = 47; + int num = 48; List list = new List(num); CollectionsMarshal.SetCount(list, num); Span span = CollectionsMarshal.AsSpan(list); int num2 = 0; ref ChangelogEntry reference = ref span[num2]; - DateOnly releaseDate = new DateOnly(2025, 12, 17); - int num3 = 2; + DateOnly releaseDate = new DateOnly(2025, 12, 21); + int num3 = 1; List list2 = new List(num3); CollectionsMarshal.SetCount(list2, num3); Span span2 = CollectionsMarshal.AsSpan(list2); - int num4 = 0; - ref ChangeEntry reference2 = ref span2[num4]; - int num5 = 1; - List list3 = new List(num5); - CollectionsMarshal.SetCount(list3, num5); - Span span3 = CollectionsMarshal.AsSpan(list3); int index = 0; - span3[index] = "Add 7.4 Starlight Celebration (2025) quest"; - reference2 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list3); - num4++; - ref ChangeEntry reference3 = ref span2[num4]; - index = 1; - List list4 = new List(index); - CollectionsMarshal.SetCount(list4, index); - Span span4 = CollectionsMarshal.AsSpan(list4); - num5 = 0; - span4[num5] = "Fixed 7.4 MSQ"; - reference3 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list4); - reference = new ChangelogEntry("7.4.2", releaseDate, list2); + ref ChangeEntry reference2 = ref span2[index]; + int num4 = 1; + List list3 = new List(num4); + CollectionsMarshal.SetCount(list3, num4); + Span span3 = CollectionsMarshal.AsSpan(list3); + int index2 = 0; + span3[index2] = "Fixed changelog version checks"; + reference2 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list3); + reference = new ChangelogEntry("7.4.3", releaseDate, list2); num2++; - ref ChangelogEntry reference4 = ref span[num2]; - DateOnly releaseDate2 = new DateOnly(2025, 12, 17); - num4 = 1; - List list5 = new List(num4); - CollectionsMarshal.SetCount(list5, num4); - Span span5 = CollectionsMarshal.AsSpan(list5); + ref ChangelogEntry reference3 = ref span[num2]; + DateOnly releaseDate2 = new DateOnly(2025, 12, 20); + index = 2; + List list4 = new List(index); + CollectionsMarshal.SetCount(list4, index); + Span span4 = CollectionsMarshal.AsSpan(list4); num3 = 0; - ref ChangeEntry reference5 = ref span5[num3]; - num5 = 2; - List list6 = new List(num5); - CollectionsMarshal.SetCount(list6, num5); + ref ChangeEntry reference4 = ref span4[num3]; + index2 = 1; + List list5 = new List(index2); + CollectionsMarshal.SetCount(list5, index2); + Span span5 = CollectionsMarshal.AsSpan(list5); + num4 = 0; + span5[num4] = "Add 7.4 Starlight Celebration (2025) quest"; + reference4 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list5); + num3++; + ref ChangeEntry reference5 = ref span4[num3]; + num4 = 1; + List list6 = new List(num4); + CollectionsMarshal.SetCount(list6, num4); Span span6 = CollectionsMarshal.AsSpan(list6); - index = 0; - span6[index] = "Add 7.4 MSQ"; - index++; - span6[index] = "Add 7.4 Arcadion Raid quests"; - reference5 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list6); - reference4 = new ChangelogEntry("7.4.1", releaseDate2, list5); + index2 = 0; + span6[index2] = "Fixed 7.4 MSQ"; + reference5 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list6); + reference3 = new ChangelogEntry("7.4.2", releaseDate2, list4); num2++; ref ChangelogEntry reference6 = ref span[num2]; - DateOnly releaseDate3 = new DateOnly(2025, 12, 17); + DateOnly releaseDate3 = new DateOnly(2025, 12, 19); num3 = 1; List list7 = new List(num3); CollectionsMarshal.SetCount(list7, num3); Span span7 = CollectionsMarshal.AsSpan(list7); + index = 0; + ref ChangeEntry reference7 = ref span7[index]; + index2 = 2; + List list8 = new List(index2); + CollectionsMarshal.SetCount(list8, index2); + Span span8 = CollectionsMarshal.AsSpan(list8); num4 = 0; - span7[num4] = new ChangeEntry(EChangeCategory.Changed, "Api 14 update"); - reference6 = new ChangelogEntry("7.4.0", releaseDate3, list7); + span8[num4] = "Add 7.4 MSQ"; + num4++; + span8[num4] = "Add 7.4 Arcadion Raid quests"; + reference7 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list8); + reference6 = new ChangelogEntry("7.4.1", releaseDate3, list7); num2++; - ref ChangelogEntry reference7 = ref span[num2]; - DateOnly releaseDate4 = new DateOnly(2025, 12, 6); - num4 = 2; - List list8 = new List(num4); - CollectionsMarshal.SetCount(list8, num4); - Span span8 = CollectionsMarshal.AsSpan(list8); - num3 = 0; - ref ChangeEntry reference8 = ref span8[num3]; - index = 4; - List list9 = new List(index); + ref ChangelogEntry reference8 = ref span[num2]; + DateOnly releaseDate4 = new DateOnly(2025, 12, 17); + index = 1; + List list9 = new List(index); CollectionsMarshal.SetCount(list9, index); - Span span9 = CollectionsMarshal.AsSpan(list9); - num5 = 0; - span9[num5] = "Added reloading and rebuilding to movement system"; - num5++; - span9[num5] = "Improved interrupts and refresh states to allow continuation of questing"; - num5++; - span9[num5] = "Added player input detection to stop automation when manually moving character"; - num5++; - span9[num5] = "Added various missing quest sequences"; - reference8 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list9); - num3++; - ref ChangeEntry reference9 = ref span8[num3]; - num5 = 1; - List list10 = new List(num5); - CollectionsMarshal.SetCount(list10, num5); - Span span10 = CollectionsMarshal.AsSpan(list10); - index = 0; - span10[index] = "Fixed reset task state to prevent stuck interactions after interruption"; - reference9 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list10); - reference7 = new ChangelogEntry("7.38.9", releaseDate4, list8); + Span span9 = CollectionsMarshal.AsSpan(list9); + num3 = 0; + span9[num3] = new ChangeEntry(EChangeCategory.Changed, "Api 14 update"); + reference8 = new ChangelogEntry("7.4.0", releaseDate4, list9); num2++; - ref ChangelogEntry reference10 = ref span[num2]; - DateOnly releaseDate5 = new DateOnly(2025, 11, 29); + ref ChangelogEntry reference9 = ref span[num2]; + DateOnly releaseDate5 = new DateOnly(2025, 12, 6); num3 = 2; - List list11 = new List(num3); - CollectionsMarshal.SetCount(list11, num3); - Span span11 = CollectionsMarshal.AsSpan(list11); - num4 = 0; - ref ChangeEntry reference11 = ref span11[num4]; - index = 3; - List list12 = new List(index); - CollectionsMarshal.SetCount(list12, index); + List list10 = new List(num3); + CollectionsMarshal.SetCount(list10, num3); + Span span10 = CollectionsMarshal.AsSpan(list10); + index = 0; + ref ChangeEntry reference10 = ref span10[index]; + num4 = 4; + List list11 = new List(num4); + CollectionsMarshal.SetCount(list11, num4); + Span span11 = CollectionsMarshal.AsSpan(list11); + index2 = 0; + span11[index2] = "Added reloading and rebuilding to movement system"; + index2++; + span11[index2] = "Improved interrupts and refresh states to allow continuation of questing"; + index2++; + span11[index2] = "Added player input detection to stop automation when manually moving character"; + index2++; + span11[index2] = "Added various missing quest sequences"; + reference10 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list11); + index++; + ref ChangeEntry reference11 = ref span10[index]; + index2 = 1; + List list12 = new List(index2); + CollectionsMarshal.SetCount(list12, index2); Span span12 = CollectionsMarshal.AsSpan(list12); - num5 = 0; - span12[num5] = "Movement update with automatic retrying if character can't reach target position"; - num5++; - span12[num5] = "Added Hunt mob data"; - num5++; - span12[num5] = "Refactored commands"; - reference11 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list12); - num4++; - ref ChangeEntry reference12 = ref span11[num4]; - num5 = 3; - List list13 = new List(num5); - CollectionsMarshal.SetCount(list13, num5); - Span span13 = CollectionsMarshal.AsSpan(list13); - index = 0; - span13[index] = "Fixed quest (Way of the Archer)"; - index++; - span13[index] = "Fixed quest (Spirithold Broken)"; - index++; - span13[index] = "Fixed quest (It's Probably Not Pirates)"; - reference12 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list13); - reference10 = new ChangelogEntry("7.38.8", releaseDate5, list11); + num4 = 0; + span12[num4] = "Fixed reset task state to prevent stuck interactions after interruption"; + reference11 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list12); + reference9 = new ChangelogEntry("7.38.9", releaseDate5, list10); num2++; - ref ChangelogEntry reference13 = ref span[num2]; - DateOnly releaseDate6 = new DateOnly(2025, 11, 25); - num4 = 2; - List list14 = new List(num4); + ref ChangelogEntry reference12 = ref span[num2]; + DateOnly releaseDate6 = new DateOnly(2025, 11, 29); + index = 2; + List list13 = new List(index); + CollectionsMarshal.SetCount(list13, index); + Span span13 = CollectionsMarshal.AsSpan(list13); + num3 = 0; + ref ChangeEntry reference13 = ref span13[num3]; + num4 = 3; + List list14 = new List(num4); CollectionsMarshal.SetCount(list14, num4); - Span span14 = CollectionsMarshal.AsSpan(list14); - num3 = 0; - ref ChangeEntry reference14 = ref span14[num3]; - index = 2; - List list15 = new List(index); - CollectionsMarshal.SetCount(list15, index); + Span span14 = CollectionsMarshal.AsSpan(list14); + index2 = 0; + span14[index2] = "Movement update with automatic retrying if character can't reach target position"; + index2++; + span14[index2] = "Added Hunt mob data"; + index2++; + span14[index2] = "Refactored commands"; + reference13 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list14); + num3++; + ref ChangeEntry reference14 = ref span13[num3]; + index2 = 3; + List list15 = new List(index2); + CollectionsMarshal.SetCount(list15, index2); Span span15 = CollectionsMarshal.AsSpan(list15); - num5 = 0; - span15[num5] = "Added individual sequence stop condition for each quest"; - num5++; - span15[num5] = "Added Trials to Duties tab in config"; - reference14 = new ChangeEntry(EChangeCategory.Added, "Major features", list15); - num3++; - ref ChangeEntry reference15 = ref span14[num3]; - num5 = 1; - List list16 = new List(num5); - CollectionsMarshal.SetCount(list16, num5); - Span span16 = CollectionsMarshal.AsSpan(list16); - index = 0; - span16[index] = "Added IPC for stop conditions: GetQuestSequenceStopCondition, SetQuestSequenceStopCondition, RemoveQuestSequenceStopCondition, GetAllQuestSequenceStopConditions"; - reference15 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list16); - reference13 = new ChangelogEntry("7.38.7", releaseDate6, list14); + num4 = 0; + span15[num4] = "Fixed quest (Way of the Archer)"; + num4++; + span15[num4] = "Fixed quest (Spirithold Broken)"; + num4++; + span15[num4] = "Fixed quest (It's Probably Not Pirates)"; + reference14 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list15); + reference12 = new ChangelogEntry("7.38.8", releaseDate6, list13); num2++; - ref ChangelogEntry reference16 = ref span[num2]; + ref ChangelogEntry reference15 = ref span[num2]; DateOnly releaseDate7 = new DateOnly(2025, 11, 25); - num3 = 3; - List list17 = new List(num3); - CollectionsMarshal.SetCount(list17, num3); - Span span17 = CollectionsMarshal.AsSpan(list17); - num4 = 0; - ref ChangeEntry reference17 = ref span17[num4]; - index = 2; - List list18 = new List(index); - CollectionsMarshal.SetCount(list18, index); - Span span18 = CollectionsMarshal.AsSpan(list18); - num5 = 0; - span18[num5] = "Updated Allied Society journal text"; - num5++; - span18[num5] = "Improved Allied Society rank handling"; - reference17 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list18); - num4++; - ref ChangeEntry reference18 = ref span17[num4]; - num5 = 1; - List list19 = new List(num5); - CollectionsMarshal.SetCount(list19, num5); - Span span19 = CollectionsMarshal.AsSpan(list19); - index = 0; - span19[index] = "Added IPC for Allied Society: AddAlliedSocietyOptimalQuests, GetAlliedSocietyOptimalQuests"; - reference18 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list19); - num4++; - ref ChangeEntry reference19 = ref span17[num4]; - index = 1; - List list20 = new List(index); - CollectionsMarshal.SetCount(list20, index); - Span span20 = CollectionsMarshal.AsSpan(list20); - num5 = 0; - span20[num5] = "Fixed quest (We Come in Peace)"; - reference19 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list20); - reference16 = new ChangelogEntry("7.38.6", releaseDate7, list17); - num2++; - ref ChangelogEntry reference20 = ref span[num2]; - DateOnly releaseDate8 = new DateOnly(2025, 11, 24); - num4 = 2; - List list21 = new List(num4); - CollectionsMarshal.SetCount(list21, num4); - Span span21 = CollectionsMarshal.AsSpan(list21); - num3 = 0; - ref ChangeEntry reference21 = ref span21[num3]; - num5 = 1; - List list22 = new List(num5); - CollectionsMarshal.SetCount(list22, num5); - Span span22 = CollectionsMarshal.AsSpan(list22); - index = 0; - span22[index] = "Added Allied Society daily allowance tracker with bulk quest adding buttons"; - reference21 = new ChangeEntry(EChangeCategory.Added, "Major features", list22); - num3++; - ref ChangeEntry reference22 = ref span21[num3]; - index = 1; - List list23 = new List(index); - CollectionsMarshal.SetCount(list23, index); - Span span23 = CollectionsMarshal.AsSpan(list23); - num5 = 0; - span23[num5] = "Added IPC for Allied Society: GetRemainingAllowances, GetTimeUntilReset, GetAvailableQuestIds, GetAllAvailableQuestCounts, IsMaxRank, GetCurrentRank, GetSocietiesWithAvailableQuests"; - reference22 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list23); - reference20 = new ChangelogEntry("7.38.5", releaseDate8, list21); - num2++; - ref ChangelogEntry reference23 = ref span[num2]; - DateOnly releaseDate9 = new DateOnly(2025, 11, 23); num3 = 2; - List list24 = new List(num3); - CollectionsMarshal.SetCount(list24, num3); - Span span24 = CollectionsMarshal.AsSpan(list24); + List list16 = new List(num3); + CollectionsMarshal.SetCount(list16, num3); + Span span16 = CollectionsMarshal.AsSpan(list16); + index = 0; + ref ChangeEntry reference16 = ref span16[index]; + num4 = 2; + List list17 = new List(num4); + CollectionsMarshal.SetCount(list17, num4); + Span span17 = CollectionsMarshal.AsSpan(list17); + index2 = 0; + span17[index2] = "Added individual sequence stop condition for each quest"; + index2++; + span17[index2] = "Added Trials to Duties tab in config"; + reference16 = new ChangeEntry(EChangeCategory.Added, "Major features", list17); + index++; + ref ChangeEntry reference17 = ref span16[index]; + index2 = 1; + List list18 = new List(index2); + CollectionsMarshal.SetCount(list18, index2); + Span span18 = CollectionsMarshal.AsSpan(list18); num4 = 0; - ref ChangeEntry reference24 = ref span24[num4]; - num5 = 1; - List list25 = new List(num5); - CollectionsMarshal.SetCount(list25, num5); - Span span25 = CollectionsMarshal.AsSpan(list25); - index = 0; - span25[index] = "Explicitly declare support for BMR singleplayer duty (The Rematch)"; - reference24 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list25); - num4++; - ref ChangeEntry reference25 = ref span24[num4]; - index = 8; - List list26 = new List(index); - CollectionsMarshal.SetCount(list26, index); - Span span26 = CollectionsMarshal.AsSpan(list26); - num5 = 0; - span26[num5] = "Fixed quest (Microbrewing) to not get stuck near ramp"; - num5++; - span26[num5] = "Fixed quest (The Illuminated Land) where pathing would kill the player due to fall damage"; - num5++; - span26[num5] = "Fixed quest (It's Probably Not Pirates) improper pathing and removed unneeded step"; - num5++; - span26[num5] = "Fixed quest (The Black Wolf's Ultimatum) not exiting landing area"; - num5++; - span26[num5] = "Fixed quest (Magiteknical Failure) from not interacting with NPC due to being mounted"; - num5++; - span26[num5] = "Fixed quest (We Come in Peace) shortcut navigation"; - num5++; - span26[num5] = "Fixed quest (Poisoned Hearts) where incorrect pathing caused the player to die"; - num5++; - span26[num5] = "Fixed quests (Savage Snares) and (An Apple a Day) not detecting kills"; - reference25 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list26); - reference23 = new ChangelogEntry("7.38.4", releaseDate9, list24); + span18[num4] = "Added IPC for stop conditions: GetQuestSequenceStopCondition, SetQuestSequenceStopCondition, RemoveQuestSequenceStopCondition, GetAllQuestSequenceStopConditions"; + reference17 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list18); + reference15 = new ChangelogEntry("7.38.7", releaseDate7, list16); num2++; - ref ChangelogEntry reference26 = ref span[num2]; - DateOnly releaseDate10 = new DateOnly(2025, 11, 23); - num4 = 3; - List list27 = new List(num4); - CollectionsMarshal.SetCount(list27, num4); - Span span27 = CollectionsMarshal.AsSpan(list27); - num3 = 0; - ref ChangeEntry reference27 = ref span27[num3]; - num5 = 2; - List list28 = new List(num5); - CollectionsMarshal.SetCount(list28, num5); - Span span28 = CollectionsMarshal.AsSpan(list28); - index = 0; - span28[index] = "Added RequireHq to crafting InteractionType"; - index++; - span28[index] = "Mark GC quests as Locked if rank not achieved"; - reference27 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list28); - num3++; - ref ChangeEntry reference28 = ref span27[num3]; - index = 2; - List list29 = new List(index); - CollectionsMarshal.SetCount(list29, index); - Span span29 = CollectionsMarshal.AsSpan(list29); - num5 = 0; - span29[num5] = "Added IPC for stop conditions: GetStopConditionsEnabled, SetStopConditionsEnabled, GetStopQuestList, AddStopQuest, RemoveStopQuest, ClearStopQuests, GetLevelStopCondition, SetLevelStopCondition, GetSequenceStopCondition, SetSequenceStopCondition"; - num5++; - span29[num5] = "Added IPC for priority quests: GetPriorityQuests, RemovePriorityQuest, ReorderPriorityQuest, GetAvailablePresets, GetPresetQuests, AddPresetToPriority, IsPresetAvailable, IsQuestInPriority, GetQuestPriorityIndex, HasAvailablePriorityQuests"; - reference28 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list29); - num3++; - ref ChangeEntry reference29 = ref span27[num3]; - num5 = 3; - List list30 = new List(num5); - CollectionsMarshal.SetCount(list30, num5); - Span span30 = CollectionsMarshal.AsSpan(list30); - index = 0; - span30[index] = "Fixed line breaks not working in dialog strings"; - index++; - span30[index] = "Fixed quest (Labor of Love)"; - index++; - span30[index] = "Fixed quest (Sea of Sorrow)"; - reference29 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list30); - reference26 = new ChangelogEntry("7.38.3", releaseDate10, list27); - num2++; - ref ChangelogEntry reference30 = ref span[num2]; - DateOnly releaseDate11 = new DateOnly(2025, 11, 18); - num3 = 3; - List list31 = new List(num3); - CollectionsMarshal.SetCount(list31, num3); - Span span31 = CollectionsMarshal.AsSpan(list31); - num4 = 0; - ref ChangeEntry reference31 = ref span31[num4]; - index = 2; - List list32 = new List(index); - CollectionsMarshal.SetCount(list32, index); - Span span32 = CollectionsMarshal.AsSpan(list32); - num5 = 0; - span32[num5] = "Auto Duty unsync options for each duty (Duty Support, Unsync Solo, Unsync Party)"; - num5++; - span32[num5] = "Added Auto Duty unsync options to quest schema and updated quests using old unsync method"; - reference31 = new ChangeEntry(EChangeCategory.Added, "Major features", list32); - num4++; - ref ChangeEntry reference32 = ref span31[num4]; - num5 = 3; - List list33 = new List(num5); - CollectionsMarshal.SetCount(list33, num5); - Span span33 = CollectionsMarshal.AsSpan(list33); - index = 0; - span33[index] = "Added IPC for duty sync handling: GetDefaultDutyMode, SetDefaultDutyMode"; - index++; - span33[index] = "Added IPC for duty mode overrides: GetDutyModeOverride, SetDutyModeOverride"; - index++; - span33[index] = "Added IPC for clearing overrides: ClearDutyModeOverride, ClearAllDutyModeOverrides"; - reference32 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list33); - num4++; - span31[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest (Constant Cravings)"); - reference30 = new ChangelogEntry("7.38.2", releaseDate11, list31); - num2++; - ref ChangelogEntry reference33 = ref span[num2]; - DateOnly releaseDate12 = new DateOnly(2025, 11, 18); - num4 = 3; - List list34 = new List(num4); - CollectionsMarshal.SetCount(list34, num4); - Span span34 = CollectionsMarshal.AsSpan(list34); - num3 = 0; - ref ChangeEntry reference34 = ref span34[num3]; - index = 1; - List list35 = new List(index); - CollectionsMarshal.SetCount(list35, index); - Span span35 = CollectionsMarshal.AsSpan(list35); - num5 = 0; - span35[num5] = "Added new fields to quest schema"; - reference34 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list35); - num3++; - ref ChangeEntry reference35 = ref span34[num3]; - num5 = 3; - List list36 = new List(num5); - CollectionsMarshal.SetCount(list36, num5); - Span span36 = CollectionsMarshal.AsSpan(list36); - index = 0; - span36[index] = "A Faerie Tale Come True"; - index++; - span36[index] = "Constant Cravings"; - index++; - span36[index] = "A Bridge Too Full"; - reference35 = new ChangeEntry(EChangeCategory.QuestUpdates, "Added new quest paths", list36); - num3++; - ref ChangeEntry reference36 = ref span34[num3]; + ref ChangelogEntry reference18 = ref span[num2]; + DateOnly releaseDate8 = new DateOnly(2025, 11, 25); index = 3; - List list37 = new List(index); - CollectionsMarshal.SetCount(list37, index); - Span span37 = CollectionsMarshal.AsSpan(list37); - num5 = 0; - span37[num5] = "Fixed various quest schemas"; - num5++; - span37[num5] = "Fixed changelog bullet point encoding"; - num5++; - span37[num5] = "Fixed item use to wait until item is used before next action"; - reference36 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list37); - reference33 = new ChangelogEntry("7.38.1", releaseDate12, list34); - num2++; - ref ChangelogEntry reference37 = ref span[num2]; - DateOnly releaseDate13 = new DateOnly(2025, 11, 17); - num3 = 5; - List list38 = new List(num3); - CollectionsMarshal.SetCount(list38, num3); - Span span38 = CollectionsMarshal.AsSpan(list38); - num4 = 0; - ref ChangeEntry reference38 = ref span38[num4]; - num5 = 2; - List list39 = new List(num5); - CollectionsMarshal.SetCount(list39, num5); - Span span39 = CollectionsMarshal.AsSpan(list39); - index = 0; - span39[index] = "Quest sequence window to show expected sequences in each quest (with quest searching)"; - index++; - span39[index] = "Changelog"; - reference38 = new ChangeEntry(EChangeCategory.Added, "Major features", list39); - num4++; - ref ChangeEntry reference39 = ref span38[num4]; - index = 2; - List list40 = new List(index); - CollectionsMarshal.SetCount(list40, index); - Span span40 = CollectionsMarshal.AsSpan(list40); - num5 = 0; - span40[num5] = "Updated quest schemas"; - num5++; - span40[num5] = "Added search bar to preferred mounts and capitalization to mirror game mount names"; - reference39 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list40); - num4++; - ref ChangeEntry reference40 = ref span38[num4]; - num5 = 3; - List list41 = new List(num5); - CollectionsMarshal.SetCount(list41, num5); - Span span41 = CollectionsMarshal.AsSpan(list41); - index = 0; - span41[index] = "Renamed IsQuestCompleted → IsQuestComplete"; - index++; - span41[index] = "Renamed IsQuestAvailable → IsReadyToAcceptQuest"; - index++; - span41[index] = "Added GetCurrentTask IPC"; - reference40 = new ChangeEntry(EChangeCategory.Changed, "IPC changes", list41); - num4++; - span38[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added all Hildibrand quests"); - num4++; - span38[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed credits/cutscenes playback"); - reference37 = new ChangelogEntry("7.38.0", releaseDate13, list38); - num2++; - ref ChangelogEntry reference41 = ref span[num2]; - DateOnly releaseDate14 = new DateOnly(2025, 11, 8); - num4 = 1; - List list42 = new List(num4); - CollectionsMarshal.SetCount(list42, num4); - Span span42 = CollectionsMarshal.AsSpan(list42); + List list19 = new List(index); + CollectionsMarshal.SetCount(list19, index); + Span span19 = CollectionsMarshal.AsSpan(list19); num3 = 0; - span42[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Fall Guys quest (Just Crowning Around)"); - reference41 = new ChangelogEntry("6.38", releaseDate14, list42); - num2++; - ref ChangelogEntry reference42 = ref span[num2]; - DateOnly releaseDate15 = new DateOnly(2025, 11, 8); - num3 = 1; - List list43 = new List(num3); - CollectionsMarshal.SetCount(list43, num3); - Span span43 = CollectionsMarshal.AsSpan(list43); + ref ChangeEntry reference19 = ref span19[num3]; + num4 = 2; + List list20 = new List(num4); + CollectionsMarshal.SetCount(list20, num4); + Span span20 = CollectionsMarshal.AsSpan(list20); + index2 = 0; + span20[index2] = "Updated Allied Society journal text"; + index2++; + span20[index2] = "Improved Allied Society rank handling"; + reference19 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list20); + num3++; + ref ChangeEntry reference20 = ref span19[num3]; + index2 = 1; + List list21 = new List(index2); + CollectionsMarshal.SetCount(list21, index2); + Span span21 = CollectionsMarshal.AsSpan(list21); num4 = 0; - span43[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Cosmic Exploration and various unlock quests"); - reference42 = new ChangelogEntry("6.37", releaseDate15, list43); + span21[num4] = "Added IPC for Allied Society: AddAlliedSocietyOptimalQuests, GetAlliedSocietyOptimalQuests"; + reference20 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list21); + num3++; + ref ChangeEntry reference21 = ref span19[num3]; + num4 = 1; + List list22 = new List(num4); + CollectionsMarshal.SetCount(list22, num4); + Span span22 = CollectionsMarshal.AsSpan(list22); + index2 = 0; + span22[index2] = "Fixed quest (We Come in Peace)"; + reference21 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list22); + reference18 = new ChangelogEntry("7.38.6", releaseDate8, list19); + num2++; + ref ChangelogEntry reference22 = ref span[num2]; + DateOnly releaseDate9 = new DateOnly(2025, 11, 24); + num3 = 2; + List list23 = new List(num3); + CollectionsMarshal.SetCount(list23, num3); + Span span23 = CollectionsMarshal.AsSpan(list23); + index = 0; + ref ChangeEntry reference23 = ref span23[index]; + index2 = 1; + List list24 = new List(index2); + CollectionsMarshal.SetCount(list24, index2); + Span span24 = CollectionsMarshal.AsSpan(list24); + num4 = 0; + span24[num4] = "Added Allied Society daily allowance tracker with bulk quest adding buttons"; + reference23 = new ChangeEntry(EChangeCategory.Added, "Major features", list24); + index++; + ref ChangeEntry reference24 = ref span23[index]; + num4 = 1; + List list25 = new List(num4); + CollectionsMarshal.SetCount(list25, num4); + Span span25 = CollectionsMarshal.AsSpan(list25); + index2 = 0; + span25[index2] = "Added IPC for Allied Society: GetRemainingAllowances, GetTimeUntilReset, GetAvailableQuestIds, GetAllAvailableQuestCounts, IsMaxRank, GetCurrentRank, GetSocietiesWithAvailableQuests"; + reference24 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list25); + reference22 = new ChangelogEntry("7.38.5", releaseDate9, list23); + num2++; + ref ChangelogEntry reference25 = ref span[num2]; + DateOnly releaseDate10 = new DateOnly(2025, 11, 23); + index = 2; + List list26 = new List(index); + CollectionsMarshal.SetCount(list26, index); + Span span26 = CollectionsMarshal.AsSpan(list26); + num3 = 0; + ref ChangeEntry reference26 = ref span26[num3]; + index2 = 1; + List list27 = new List(index2); + CollectionsMarshal.SetCount(list27, index2); + Span span27 = CollectionsMarshal.AsSpan(list27); + num4 = 0; + span27[num4] = "Explicitly declare support for BMR singleplayer duty (The Rematch)"; + reference26 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list27); + num3++; + ref ChangeEntry reference27 = ref span26[num3]; + num4 = 8; + List list28 = new List(num4); + CollectionsMarshal.SetCount(list28, num4); + Span span28 = CollectionsMarshal.AsSpan(list28); + index2 = 0; + span28[index2] = "Fixed quest (Microbrewing) to not get stuck near ramp"; + index2++; + span28[index2] = "Fixed quest (The Illuminated Land) where pathing would kill the player due to fall damage"; + index2++; + span28[index2] = "Fixed quest (It's Probably Not Pirates) improper pathing and removed unneeded step"; + index2++; + span28[index2] = "Fixed quest (The Black Wolf's Ultimatum) not exiting landing area"; + index2++; + span28[index2] = "Fixed quest (Magiteknical Failure) from not interacting with NPC due to being mounted"; + index2++; + span28[index2] = "Fixed quest (We Come in Peace) shortcut navigation"; + index2++; + span28[index2] = "Fixed quest (Poisoned Hearts) where incorrect pathing caused the player to die"; + index2++; + span28[index2] = "Fixed quests (Savage Snares) and (An Apple a Day) not detecting kills"; + reference27 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list28); + reference25 = new ChangelogEntry("7.38.4", releaseDate10, list26); + num2++; + ref ChangelogEntry reference28 = ref span[num2]; + DateOnly releaseDate11 = new DateOnly(2025, 11, 23); + num3 = 3; + List list29 = new List(num3); + CollectionsMarshal.SetCount(list29, num3); + Span span29 = CollectionsMarshal.AsSpan(list29); + index = 0; + ref ChangeEntry reference29 = ref span29[index]; + index2 = 2; + List list30 = new List(index2); + CollectionsMarshal.SetCount(list30, index2); + Span span30 = CollectionsMarshal.AsSpan(list30); + num4 = 0; + span30[num4] = "Added RequireHq to crafting InteractionType"; + num4++; + span30[num4] = "Mark GC quests as Locked if rank not achieved"; + reference29 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list30); + index++; + ref ChangeEntry reference30 = ref span29[index]; + num4 = 2; + List list31 = new List(num4); + CollectionsMarshal.SetCount(list31, num4); + Span span31 = CollectionsMarshal.AsSpan(list31); + index2 = 0; + span31[index2] = "Added IPC for stop conditions: GetStopConditionsEnabled, SetStopConditionsEnabled, GetStopQuestList, AddStopQuest, RemoveStopQuest, ClearStopQuests, GetLevelStopCondition, SetLevelStopCondition, GetSequenceStopCondition, SetSequenceStopCondition"; + index2++; + span31[index2] = "Added IPC for priority quests: GetPriorityQuests, RemovePriorityQuest, ReorderPriorityQuest, GetAvailablePresets, GetPresetQuests, AddPresetToPriority, IsPresetAvailable, IsQuestInPriority, GetQuestPriorityIndex, HasAvailablePriorityQuests"; + reference30 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list31); + index++; + ref ChangeEntry reference31 = ref span29[index]; + index2 = 3; + List list32 = new List(index2); + CollectionsMarshal.SetCount(list32, index2); + Span span32 = CollectionsMarshal.AsSpan(list32); + num4 = 0; + span32[num4] = "Fixed line breaks not working in dialog strings"; + num4++; + span32[num4] = "Fixed quest (Labor of Love)"; + num4++; + span32[num4] = "Fixed quest (Sea of Sorrow)"; + reference31 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list32); + reference28 = new ChangelogEntry("7.38.3", releaseDate11, list29); + num2++; + ref ChangelogEntry reference32 = ref span[num2]; + DateOnly releaseDate12 = new DateOnly(2025, 11, 18); + index = 3; + List list33 = new List(index); + CollectionsMarshal.SetCount(list33, index); + Span span33 = CollectionsMarshal.AsSpan(list33); + num3 = 0; + ref ChangeEntry reference33 = ref span33[num3]; + num4 = 2; + List list34 = new List(num4); + CollectionsMarshal.SetCount(list34, num4); + Span span34 = CollectionsMarshal.AsSpan(list34); + index2 = 0; + span34[index2] = "Auto Duty unsync options for each duty (Duty Support, Unsync Solo, Unsync Party)"; + index2++; + span34[index2] = "Added Auto Duty unsync options to quest schema and updated quests using old unsync method"; + reference33 = new ChangeEntry(EChangeCategory.Added, "Major features", list34); + num3++; + ref ChangeEntry reference34 = ref span33[num3]; + index2 = 3; + List list35 = new List(index2); + CollectionsMarshal.SetCount(list35, index2); + Span span35 = CollectionsMarshal.AsSpan(list35); + num4 = 0; + span35[num4] = "Added IPC for duty sync handling: GetDefaultDutyMode, SetDefaultDutyMode"; + num4++; + span35[num4] = "Added IPC for duty mode overrides: GetDutyModeOverride, SetDutyModeOverride"; + num4++; + span35[num4] = "Added IPC for clearing overrides: ClearDutyModeOverride, ClearAllDutyModeOverrides"; + reference34 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list35); + num3++; + span33[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest (Constant Cravings)"); + reference32 = new ChangelogEntry("7.38.2", releaseDate12, list33); + num2++; + ref ChangelogEntry reference35 = ref span[num2]; + DateOnly releaseDate13 = new DateOnly(2025, 11, 18); + num3 = 3; + List list36 = new List(num3); + CollectionsMarshal.SetCount(list36, num3); + Span span36 = CollectionsMarshal.AsSpan(list36); + index = 0; + ref ChangeEntry reference36 = ref span36[index]; + num4 = 1; + List list37 = new List(num4); + CollectionsMarshal.SetCount(list37, num4); + Span span37 = CollectionsMarshal.AsSpan(list37); + index2 = 0; + span37[index2] = "Added new fields to quest schema"; + reference36 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list37); + index++; + ref ChangeEntry reference37 = ref span36[index]; + index2 = 3; + List list38 = new List(index2); + CollectionsMarshal.SetCount(list38, index2); + Span span38 = CollectionsMarshal.AsSpan(list38); + num4 = 0; + span38[num4] = "A Faerie Tale Come True"; + num4++; + span38[num4] = "Constant Cravings"; + num4++; + span38[num4] = "A Bridge Too Full"; + reference37 = new ChangeEntry(EChangeCategory.QuestUpdates, "Added new quest paths", list38); + index++; + ref ChangeEntry reference38 = ref span36[index]; + num4 = 3; + List list39 = new List(num4); + CollectionsMarshal.SetCount(list39, num4); + Span span39 = CollectionsMarshal.AsSpan(list39); + index2 = 0; + span39[index2] = "Fixed various quest schemas"; + index2++; + span39[index2] = "Fixed changelog bullet point encoding"; + index2++; + span39[index2] = "Fixed item use to wait until item is used before next action"; + reference38 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list39); + reference35 = new ChangelogEntry("7.38.1", releaseDate13, list36); + num2++; + ref ChangelogEntry reference39 = ref span[num2]; + DateOnly releaseDate14 = new DateOnly(2025, 11, 17); + index = 5; + List list40 = new List(index); + CollectionsMarshal.SetCount(list40, index); + Span span40 = CollectionsMarshal.AsSpan(list40); + num3 = 0; + ref ChangeEntry reference40 = ref span40[num3]; + index2 = 2; + List list41 = new List(index2); + CollectionsMarshal.SetCount(list41, index2); + Span span41 = CollectionsMarshal.AsSpan(list41); + num4 = 0; + span41[num4] = "Quest sequence window to show expected sequences in each quest (with quest searching)"; + num4++; + span41[num4] = "Changelog"; + reference40 = new ChangeEntry(EChangeCategory.Added, "Major features", list41); + num3++; + ref ChangeEntry reference41 = ref span40[num3]; + num4 = 2; + List list42 = new List(num4); + CollectionsMarshal.SetCount(list42, num4); + Span span42 = CollectionsMarshal.AsSpan(list42); + index2 = 0; + span42[index2] = "Updated quest schemas"; + index2++; + span42[index2] = "Added search bar to preferred mounts and capitalization to mirror game mount names"; + reference41 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list42); + num3++; + ref ChangeEntry reference42 = ref span40[num3]; + index2 = 3; + List list43 = new List(index2); + CollectionsMarshal.SetCount(list43, index2); + Span span43 = CollectionsMarshal.AsSpan(list43); + num4 = 0; + span43[num4] = "Renamed IsQuestCompleted → IsQuestComplete"; + num4++; + span43[num4] = "Renamed IsQuestAvailable → IsReadyToAcceptQuest"; + num4++; + span43[num4] = "Added GetCurrentTask IPC"; + reference42 = new ChangeEntry(EChangeCategory.Changed, "IPC changes", list43); + num3++; + span40[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added all Hildibrand quests"); + num3++; + span40[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed credits/cutscenes playback"); + reference39 = new ChangelogEntry("7.38.0", releaseDate14, list40); num2++; ref ChangelogEntry reference43 = ref span[num2]; - DateOnly releaseDate16 = new DateOnly(2025, 11, 2); - num4 = 1; - List list44 = new List(num4); - CollectionsMarshal.SetCount(list44, num4); + DateOnly releaseDate15 = new DateOnly(2025, 11, 8); + num3 = 1; + List list44 = new List(num3); + CollectionsMarshal.SetCount(list44, num3); Span span44 = CollectionsMarshal.AsSpan(list44); - num3 = 0; - span44[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 6 quest (With High Spirits)"); - reference43 = new ChangelogEntry("6.36", releaseDate16, list44); + index = 0; + span44[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Fall Guys quest (Just Crowning Around)"); + reference43 = new ChangelogEntry("6.38", releaseDate15, list44); num2++; ref ChangelogEntry reference44 = ref span[num2]; - DateOnly releaseDate17 = new DateOnly(2025, 10, 28); - num3 = 1; - List list45 = new List(num3); - CollectionsMarshal.SetCount(list45, num3); + DateOnly releaseDate16 = new DateOnly(2025, 11, 8); + index = 1; + List list45 = new List(index); + CollectionsMarshal.SetCount(list45, index); Span span45 = CollectionsMarshal.AsSpan(list45); - num4 = 0; - span45[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed level 3 MSQ handling if character started on non-XP buff world"); - reference44 = new ChangelogEntry("6.35", releaseDate17, list45); + num3 = 0; + span45[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Cosmic Exploration and various unlock quests"); + reference44 = new ChangelogEntry("6.37", releaseDate16, list45); num2++; ref ChangelogEntry reference45 = ref span[num2]; - DateOnly releaseDate18 = new DateOnly(2025, 10, 23); - num4 = 2; - List list46 = new List(num4); - CollectionsMarshal.SetCount(list46, num4); + DateOnly releaseDate17 = new DateOnly(2025, 11, 2); + num3 = 1; + List list46 = new List(num3); + CollectionsMarshal.SetCount(list46, num3); Span span46 = CollectionsMarshal.AsSpan(list46); - num3 = 0; - span46[num3] = new ChangeEntry(EChangeCategory.Added, "Added clear priority quests on logout and on completion config settings"); - num3++; - span46[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed priority quest importing to respect import order"); - reference45 = new ChangelogEntry("6.34", releaseDate18, list46); + index = 0; + span46[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 6 quest (With High Spirits)"); + reference45 = new ChangelogEntry("6.36", releaseDate17, list46); num2++; ref ChangelogEntry reference46 = ref span[num2]; - DateOnly releaseDate19 = new DateOnly(2025, 10, 23); - num3 = 1; - List list47 = new List(num3); - CollectionsMarshal.SetCount(list47, num3); + DateOnly releaseDate18 = new DateOnly(2025, 10, 28); + index = 1; + List list47 = new List(index); + CollectionsMarshal.SetCount(list47, index); Span span47 = CollectionsMarshal.AsSpan(list47); - num4 = 0; - span47[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed RSR combat module"); - reference46 = new ChangelogEntry("6.33", releaseDate19, list47); + num3 = 0; + span47[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed level 3 MSQ handling if character started on non-XP buff world"); + reference46 = new ChangelogEntry("6.35", releaseDate18, list47); num2++; ref ChangelogEntry reference47 = ref span[num2]; - DateOnly releaseDate20 = new DateOnly(2025, 10, 23); - num4 = 1; - List list48 = new List(num4); - CollectionsMarshal.SetCount(list48, num4); + DateOnly releaseDate19 = new DateOnly(2025, 10, 23); + num3 = 2; + List list48 = new List(num3); + CollectionsMarshal.SetCount(list48, num3); Span span48 = CollectionsMarshal.AsSpan(list48); - num3 = 0; - span48[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 5 quest (Forged in Corn)"); - reference47 = new ChangelogEntry("6.32", releaseDate20, list48); + index = 0; + span48[index] = new ChangeEntry(EChangeCategory.Added, "Added clear priority quests on logout and on completion config settings"); + index++; + span48[index] = new ChangeEntry(EChangeCategory.Fixed, "Fixed priority quest importing to respect import order"); + reference47 = new ChangelogEntry("6.34", releaseDate19, list48); num2++; ref ChangelogEntry reference48 = ref span[num2]; - DateOnly releaseDate21 = new DateOnly(2025, 10, 21); - num3 = 1; - List list49 = new List(num3); - CollectionsMarshal.SetCount(list49, num3); + DateOnly releaseDate20 = new DateOnly(2025, 10, 23); + index = 1; + List list49 = new List(index); + CollectionsMarshal.SetCount(list49, index); Span span49 = CollectionsMarshal.AsSpan(list49); - num4 = 0; - span49[num4] = new ChangeEntry(EChangeCategory.Changed, "Added checks for moogle and allied society quests when using add all available quests"); - reference48 = new ChangelogEntry("6.31", releaseDate21, list49); + num3 = 0; + span49[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed RSR combat module"); + reference48 = new ChangelogEntry("6.33", releaseDate20, list49); num2++; ref ChangelogEntry reference49 = ref span[num2]; - DateOnly releaseDate22 = new DateOnly(2025, 10, 21); - num4 = 1; - List list50 = new List(num4); - CollectionsMarshal.SetCount(list50, num4); + DateOnly releaseDate21 = new DateOnly(2025, 10, 23); + num3 = 1; + List list50 = new List(num3); + CollectionsMarshal.SetCount(list50, num3); Span span50 = CollectionsMarshal.AsSpan(list50); - num3 = 0; - span50[num3] = new ChangeEntry(EChangeCategory.Added, "Added button to journal that allows adding all available quests to priority"); - reference49 = new ChangelogEntry("6.30", releaseDate22, list50); + index = 0; + span50[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 5 quest (Forged in Corn)"); + reference49 = new ChangelogEntry("6.32", releaseDate21, list50); num2++; ref ChangelogEntry reference50 = ref span[num2]; - DateOnly releaseDate23 = new DateOnly(2025, 10, 20); - num3 = 2; - List list51 = new List(num3); - CollectionsMarshal.SetCount(list51, num3); + DateOnly releaseDate22 = new DateOnly(2025, 10, 21); + index = 1; + List list51 = new List(index); + CollectionsMarshal.SetCount(list51, index); Span span51 = CollectionsMarshal.AsSpan(list51); - num4 = 0; - ref ChangeEntry reference51 = ref span51[num4]; - index = 2; - List list52 = new List(index); - CollectionsMarshal.SetCount(list52, index); - Span span52 = CollectionsMarshal.AsSpan(list52); - num5 = 0; - span52[num5] = "Added item count to combat handling rework"; - num5++; - span52[num5] = "Updated Pandora conflicting features"; - reference51 = new ChangeEntry(EChangeCategory.Changed, "Combat handling improvements", list52); - num4++; - span51[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest to purchase Gysahl Greens if not in inventory"); - reference50 = new ChangelogEntry("6.29", releaseDate23, list51); + num3 = 0; + span51[num3] = new ChangeEntry(EChangeCategory.Changed, "Added checks for moogle and allied society quests when using add all available quests"); + reference50 = new ChangelogEntry("6.31", releaseDate22, list51); + num2++; + ref ChangelogEntry reference51 = ref span[num2]; + DateOnly releaseDate23 = new DateOnly(2025, 10, 21); + num3 = 1; + List list52 = new List(num3); + CollectionsMarshal.SetCount(list52, num3); + Span span52 = CollectionsMarshal.AsSpan(list52); + index = 0; + span52[index] = new ChangeEntry(EChangeCategory.Added, "Added button to journal that allows adding all available quests to priority"); + reference51 = new ChangelogEntry("6.30", releaseDate23, list52); num2++; ref ChangelogEntry reference52 = ref span[num2]; - DateOnly releaseDate24 = new DateOnly(2025, 10, 19); - num4 = 1; - List list53 = new List(num4); - CollectionsMarshal.SetCount(list53, num4); + DateOnly releaseDate24 = new DateOnly(2025, 10, 20); + index = 2; + List list53 = new List(index); + CollectionsMarshal.SetCount(list53, index); Span span53 = CollectionsMarshal.AsSpan(list53); num3 = 0; - span53[num3] = new ChangeEntry(EChangeCategory.Changed, "Reworked kill count combat handling - combat and enemy kills are now processed instantly"); - reference52 = new ChangelogEntry("6.28", releaseDate24, list53); - num2++; - ref ChangelogEntry reference53 = ref span[num2]; - DateOnly releaseDate25 = new DateOnly(2025, 10, 18); - num3 = 2; - List list54 = new List(num3); - CollectionsMarshal.SetCount(list54, num3); - Span span54 = CollectionsMarshal.AsSpan(list54); - num4 = 0; - span54[num4] = new ChangeEntry(EChangeCategory.Changed, "Improved Aether Current checking logic"); - num4++; - span54[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Chocobo Taxi Stand CheckSkip error and Patch 7.3 Fantasia unlock quest date/time"); - reference53 = new ChangelogEntry("6.27", releaseDate25, list54); + ref ChangeEntry reference53 = ref span53[num3]; + num4 = 2; + List list54 = new List(num4); + CollectionsMarshal.SetCount(list54, num4); + Span span54 = CollectionsMarshal.AsSpan(list54); + index2 = 0; + span54[index2] = "Added item count to combat handling rework"; + index2++; + span54[index2] = "Updated Pandora conflicting features"; + reference53 = new ChangeEntry(EChangeCategory.Changed, "Combat handling improvements", list54); + num3++; + span53[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest to purchase Gysahl Greens if not in inventory"); + reference52 = new ChangelogEntry("6.29", releaseDate24, list53); num2++; ref ChangelogEntry reference54 = ref span[num2]; - DateOnly releaseDate26 = new DateOnly(2025, 10, 18); - num4 = 1; - List list55 = new List(num4); - CollectionsMarshal.SetCount(list55, num4); + DateOnly releaseDate25 = new DateOnly(2025, 10, 19); + num3 = 1; + List list55 = new List(num3); + CollectionsMarshal.SetCount(list55, num3); Span span55 = CollectionsMarshal.AsSpan(list55); - num3 = 0; - span55[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests"); - reference54 = new ChangelogEntry("6.26", releaseDate26, list55); + index = 0; + span55[index] = new ChangeEntry(EChangeCategory.Changed, "Reworked kill count combat handling - combat and enemy kills are now processed instantly"); + reference54 = new ChangelogEntry("6.28", releaseDate25, list55); num2++; ref ChangelogEntry reference55 = ref span[num2]; - DateOnly releaseDate27 = new DateOnly(2025, 10, 17); - num3 = 1; - List list56 = new List(num3); - CollectionsMarshal.SetCount(list56, num3); + DateOnly releaseDate26 = new DateOnly(2025, 10, 18); + index = 2; + List list56 = new List(index); + CollectionsMarshal.SetCount(list56, index); Span span56 = CollectionsMarshal.AsSpan(list56); - num4 = 0; - span56[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added All Saints' Wake 2025 quests and 7.35 Yok Huy rank 4 quests"); - reference55 = new ChangelogEntry("6.25", releaseDate27, list56); + num3 = 0; + span56[num3] = new ChangeEntry(EChangeCategory.Changed, "Improved Aether Current checking logic"); + num3++; + span56[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Chocobo Taxi Stand CheckSkip error and Patch 7.3 Fantasia unlock quest date/time"); + reference55 = new ChangelogEntry("6.27", releaseDate26, list56); num2++; ref ChangelogEntry reference56 = ref span[num2]; - DateOnly releaseDate28 = new DateOnly(2025, 10, 16); - num4 = 1; - List list57 = new List(num4); - CollectionsMarshal.SetCount(list57, num4); + DateOnly releaseDate27 = new DateOnly(2025, 10, 18); + num3 = 1; + List list57 = new List(num3); + CollectionsMarshal.SetCount(list57, num3); Span span57 = CollectionsMarshal.AsSpan(list57); - num3 = 0; - span57[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests and Deep Dungeon quest"); - reference56 = new ChangelogEntry("6.24", releaseDate28, list57); + index = 0; + span57[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests"); + reference56 = new ChangelogEntry("6.26", releaseDate27, list57); num2++; ref ChangelogEntry reference57 = ref span[num2]; - DateOnly releaseDate29 = new DateOnly(2025, 10, 13); - num3 = 1; - List list58 = new List(num3); - CollectionsMarshal.SetCount(list58, num3); + DateOnly releaseDate28 = new DateOnly(2025, 10, 17); + index = 1; + List list58 = new List(index); + CollectionsMarshal.SetCount(list58, index); Span span58 = CollectionsMarshal.AsSpan(list58); - num4 = 0; - span58[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quest (Larder Logistics)"); - reference57 = new ChangelogEntry("6.23", releaseDate29, list58); + num3 = 0; + span58[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added All Saints' Wake 2025 quests and 7.35 Yok Huy rank 4 quests"); + reference57 = new ChangelogEntry("6.25", releaseDate28, list58); num2++; ref ChangelogEntry reference58 = ref span[num2]; - DateOnly releaseDate30 = new DateOnly(2025, 10, 12); - num4 = 3; - List list59 = new List(num4); - CollectionsMarshal.SetCount(list59, num4); + DateOnly releaseDate29 = new DateOnly(2025, 10, 16); + num3 = 1; + List list59 = new List(num3); + CollectionsMarshal.SetCount(list59, num3); Span span59 = CollectionsMarshal.AsSpan(list59); - num3 = 0; - span59[num3] = new ChangeEntry(EChangeCategory.Changed, "Prevent disabled or Locked quests from being started as 'Start as next quest'"); - num3++; - span59[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); - num3++; - span59[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Yok Huy quest and journal quest chain priority issues"); - reference58 = new ChangelogEntry("6.22", releaseDate30, list59); + index = 0; + span59[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests and Deep Dungeon quest"); + reference58 = new ChangelogEntry("6.24", releaseDate29, list59); num2++; ref ChangelogEntry reference59 = ref span[num2]; - DateOnly releaseDate31 = new DateOnly(2025, 10, 12); - num3 = 2; - List list60 = new List(num3); - CollectionsMarshal.SetCount(list60, num3); + DateOnly releaseDate30 = new DateOnly(2025, 10, 13); + index = 1; + List list60 = new List(index); + CollectionsMarshal.SetCount(list60, index); Span span60 = CollectionsMarshal.AsSpan(list60); - num4 = 0; - span60[num4] = new ChangeEntry(EChangeCategory.Added, "Added expansion abbreviation to journal window"); - num4++; - span60[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); - reference59 = new ChangelogEntry("6.21", releaseDate31, list60); + num3 = 0; + span60[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quest (Larder Logistics)"); + reference59 = new ChangelogEntry("6.23", releaseDate30, list60); num2++; ref ChangelogEntry reference60 = ref span[num2]; - DateOnly releaseDate32 = new DateOnly(2025, 10, 10); - num4 = 2; - List list61 = new List(num4); - CollectionsMarshal.SetCount(list61, num4); + DateOnly releaseDate31 = new DateOnly(2025, 10, 12); + num3 = 3; + List list61 = new List(num3); + CollectionsMarshal.SetCount(list61, num3); Span span61 = CollectionsMarshal.AsSpan(list61); - num3 = 0; - span61[num3] = new ChangeEntry(EChangeCategory.Changed, "Allow completed repeatable quests to be used with 'Add quest and requirements to priority' feature"); - num3++; - span61[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 quest (A Work of Cart)"); - reference60 = new ChangelogEntry("6.20", releaseDate32, list61); + index = 0; + span61[index] = new ChangeEntry(EChangeCategory.Changed, "Prevent disabled or Locked quests from being started as 'Start as next quest'"); + index++; + span61[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); + index++; + span61[index] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Yok Huy quest and journal quest chain priority issues"); + reference60 = new ChangelogEntry("6.22", releaseDate31, list61); num2++; ref ChangelogEntry reference61 = ref span[num2]; - DateOnly releaseDate33 = new DateOnly(2025, 10, 9); - num3 = 3; - List list62 = new List(num3); - CollectionsMarshal.SetCount(list62, num3); + DateOnly releaseDate32 = new DateOnly(2025, 10, 12); + index = 2; + List list62 = new List(index); + CollectionsMarshal.SetCount(list62, index); Span span62 = CollectionsMarshal.AsSpan(list62); - num4 = 0; - span62[num4] = new ChangeEntry(EChangeCategory.Added, "Added config to batch Allied Society quest turn-ins"); - num4++; - span62[num4] = new ChangeEntry(EChangeCategory.Changed, "Repeatable quests now show correct availability state in journal"); - num4++; - span62[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 2 quests"); - reference61 = new ChangelogEntry("6.19", releaseDate33, list62); + num3 = 0; + span62[num3] = new ChangeEntry(EChangeCategory.Added, "Added expansion abbreviation to journal window"); + num3++; + span62[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); + reference61 = new ChangelogEntry("6.21", releaseDate32, list62); num2++; ref ChangelogEntry reference62 = ref span[num2]; - DateOnly releaseDate34 = new DateOnly(2025, 10, 9); - num4 = 2; - List list63 = new List(num4); - CollectionsMarshal.SetCount(list63, num4); + DateOnly releaseDate33 = new DateOnly(2025, 10, 10); + num3 = 2; + List list63 = new List(num3); + CollectionsMarshal.SetCount(list63, num3); Span span63 = CollectionsMarshal.AsSpan(list63); - num3 = 0; - span63[num3] = new ChangeEntry(EChangeCategory.Changed, "Show once completed quests with improved state display"); - num3++; - span63[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy daily quest and improvements to various Yok Huy quests"); - reference62 = new ChangelogEntry("6.18", releaseDate34, list63); + index = 0; + span63[index] = new ChangeEntry(EChangeCategory.Changed, "Allow completed repeatable quests to be used with 'Add quest and requirements to priority' feature"); + index++; + span63[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 quest (A Work of Cart)"); + reference62 = new ChangelogEntry("6.20", releaseDate33, list63); num2++; ref ChangelogEntry reference63 = ref span[num2]; - DateOnly releaseDate35 = new DateOnly(2025, 10, 8); - num3 = 1; - List list64 = new List(num3); - CollectionsMarshal.SetCount(list64, num3); + DateOnly releaseDate34 = new DateOnly(2025, 10, 9); + index = 3; + List list64 = new List(index); + CollectionsMarshal.SetCount(list64, index); Span span64 = CollectionsMarshal.AsSpan(list64); - num4 = 0; - span64[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 and rank 2 quests"); - reference63 = new ChangelogEntry("6.17", releaseDate35, list64); + num3 = 0; + span64[num3] = new ChangeEntry(EChangeCategory.Added, "Added config to batch Allied Society quest turn-ins"); + num3++; + span64[num3] = new ChangeEntry(EChangeCategory.Changed, "Repeatable quests now show correct availability state in journal"); + num3++; + span64[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 2 quests"); + reference63 = new ChangelogEntry("6.19", releaseDate34, list64); num2++; ref ChangelogEntry reference64 = ref span[num2]; - DateOnly releaseDate36 = new DateOnly(2025, 10, 8); - num4 = 1; - List list65 = new List(num4); - CollectionsMarshal.SetCount(list65, num4); + DateOnly releaseDate35 = new DateOnly(2025, 10, 9); + num3 = 2; + List list65 = new List(num3); + CollectionsMarshal.SetCount(list65, num3); Span span65 = CollectionsMarshal.AsSpan(list65); - num3 = 0; - span65[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon quest (Faerie Tale)"); - reference64 = new ChangelogEntry("6.16", releaseDate36, list65); + index = 0; + span65[index] = new ChangeEntry(EChangeCategory.Changed, "Show once completed quests with improved state display"); + index++; + span65[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy daily quest and improvements to various Yok Huy quests"); + reference64 = new ChangelogEntry("6.18", releaseDate35, list65); num2++; ref ChangelogEntry reference65 = ref span[num2]; - DateOnly releaseDate37 = new DateOnly(2025, 10, 8); - num3 = 2; - List list66 = new List(num3); - CollectionsMarshal.SetCount(list66, num3); + DateOnly releaseDate36 = new DateOnly(2025, 10, 8); + index = 1; + List list66 = new List(index); + CollectionsMarshal.SetCount(list66, index); Span span66 = CollectionsMarshal.AsSpan(list66); - num4 = 0; - span66[num4] = new ChangeEntry(EChangeCategory.Changed, "Dalamud cleanup"); - num4++; - span66[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest level requirement check log spam"); - reference65 = new ChangelogEntry("6.15", releaseDate37, list66); + num3 = 0; + span66[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 and rank 2 quests"); + reference65 = new ChangelogEntry("6.17", releaseDate36, list66); num2++; ref ChangelogEntry reference66 = ref span[num2]; - DateOnly releaseDate38 = new DateOnly(2025, 10, 8); - num4 = 1; - List list67 = new List(num4); - CollectionsMarshal.SetCount(list67, num4); + DateOnly releaseDate37 = new DateOnly(2025, 10, 8); + num3 = 1; + List list67 = new List(num3); + CollectionsMarshal.SetCount(list67, num3); Span span67 = CollectionsMarshal.AsSpan(list67); - num3 = 0; - span67[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check logic if quest were MSQ"); - reference66 = new ChangelogEntry("6.14", releaseDate38, list67); + index = 0; + span67[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon quest (Faerie Tale)"); + reference66 = new ChangelogEntry("6.16", releaseDate37, list67); num2++; ref ChangelogEntry reference67 = ref span[num2]; - DateOnly releaseDate39 = new DateOnly(2025, 10, 8); - num3 = 2; - List list68 = new List(num3); - CollectionsMarshal.SetCount(list68, num3); + DateOnly releaseDate38 = new DateOnly(2025, 10, 8); + index = 2; + List list68 = new List(index); + CollectionsMarshal.SetCount(list68, index); Span span68 = CollectionsMarshal.AsSpan(list68); - num4 = 0; - ref ChangeEntry reference68 = ref span68[num4]; - num5 = 3; - List list69 = new List(num5); - CollectionsMarshal.SetCount(list69, num5); - Span span69 = CollectionsMarshal.AsSpan(list69); + num3 = 0; + span68[num3] = new ChangeEntry(EChangeCategory.Changed, "Dalamud cleanup"); + num3++; + span68[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest level requirement check log spam"); + reference67 = new ChangelogEntry("6.15", releaseDate38, list68); + num2++; + ref ChangelogEntry reference68 = ref span[num2]; + DateOnly releaseDate39 = new DateOnly(2025, 10, 8); + num3 = 1; + List list69 = new List(num3); + CollectionsMarshal.SetCount(list69, num3); + Span span69 = CollectionsMarshal.AsSpan(list69); index = 0; - span69[index] = "Context menu option to add required quests and their chain to priority list"; - index++; - span69[index] = "AetheryteShortcut to multiple quests"; - index++; - span69[index] = "Artisan as a recommended plugin/dependency"; - reference68 = new ChangeEntry(EChangeCategory.Added, "Quest improvements", list69); - num4++; - span68[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check and priority list issues"); - reference67 = new ChangelogEntry("6.13", releaseDate39, list68); + span69[index] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check logic if quest were MSQ"); + reference68 = new ChangelogEntry("6.14", releaseDate39, list69); num2++; ref ChangelogEntry reference69 = ref span[num2]; - DateOnly releaseDate40 = new DateOnly(2025, 10, 7); - num4 = 4; - List list70 = new List(num4); - CollectionsMarshal.SetCount(list70, num4); + DateOnly releaseDate40 = new DateOnly(2025, 10, 8); + index = 2; + List list70 = new List(index); + CollectionsMarshal.SetCount(list70, index); Span span70 = CollectionsMarshal.AsSpan(list70); num3 = 0; ref ChangeEntry reference70 = ref span70[num3]; - index = 4; - List list71 = new List(index); - CollectionsMarshal.SetCount(list71, index); + index2 = 3; + List list71 = new List(index2); + CollectionsMarshal.SetCount(list71, index2); Span span71 = CollectionsMarshal.AsSpan(list71); - num5 = 0; - span71[num5] = "FATE combat handling with auto level syncing"; - num5++; - span71[num5] = "Start accepted quests from journal with 'Start as next quest'"; - num5++; - span71[num5] = "Update quest tracking when quests are hidden or prioritised in game"; - num5++; - span71[num5] = "QuestMap as a recommended plugin/dependency"; - reference70 = new ChangeEntry(EChangeCategory.Added, "FATE and quest tracking", list71); - num3++; - ref ChangeEntry reference71 = ref span70[num3]; - num5 = 3; - List list72 = new List(num5); - CollectionsMarshal.SetCount(list72, num5); - Span span72 = CollectionsMarshal.AsSpan(list72); - index = 0; - span72[index] = "Always prioritise next quest during teleportation/zone transitions"; - index++; - span72[index] = "Improved accepted quest logic with abandoned quest detection"; - index++; - span72[index] = "Show quests without quest paths as Locked"; - reference71 = new ChangeEntry(EChangeCategory.Changed, "Quest prioritisation improvements", list72); - num3++; - span70[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon, Hildibrand, Yok Huy, Monster Hunter Wilds Collab, and Doman Enclave quests"); - num3++; - span70[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed accepted/active quest display and Hildibrand quest issues"); - reference69 = new ChangelogEntry("6.12", releaseDate40, list70); - num2++; - ref ChangelogEntry reference72 = ref span[num2]; - DateOnly releaseDate41 = new DateOnly(2025, 10, 3); - num3 = 1; - List list73 = new List(num3); - CollectionsMarshal.SetCount(list73, num3); - Span span73 = CollectionsMarshal.AsSpan(list73); num4 = 0; - span73[num4] = new ChangeEntry(EChangeCategory.Changed, "Added remaining checks for quest priority to prevent infinite teleport looping"); - reference72 = new ChangelogEntry("6.11", releaseDate41, list73); + span71[num4] = "Context menu option to add required quests and their chain to priority list"; + num4++; + span71[num4] = "AetheryteShortcut to multiple quests"; + num4++; + span71[num4] = "Artisan as a recommended plugin/dependency"; + reference70 = new ChangeEntry(EChangeCategory.Added, "Quest improvements", list71); + num3++; + span70[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check and priority list issues"); + reference69 = new ChangelogEntry("6.13", releaseDate40, list70); num2++; - ref ChangelogEntry reference73 = ref span[num2]; - DateOnly releaseDate42 = new DateOnly(2025, 10, 2); - num4 = 1; - List list74 = new List(num4); - CollectionsMarshal.SetCount(list74, num4); - Span span74 = CollectionsMarshal.AsSpan(list74); - num3 = 0; - ref ChangeEntry reference74 = ref span74[num3]; - index = 2; - List list75 = new List(index); + ref ChangelogEntry reference71 = ref span[num2]; + DateOnly releaseDate41 = new DateOnly(2025, 10, 7); + num3 = 4; + List list72 = new List(num3); + CollectionsMarshal.SetCount(list72, num3); + Span span72 = CollectionsMarshal.AsSpan(list72); + index = 0; + ref ChangeEntry reference72 = ref span72[index]; + num4 = 4; + List list73 = new List(num4); + CollectionsMarshal.SetCount(list73, num4); + Span span73 = CollectionsMarshal.AsSpan(list73); + index2 = 0; + span73[index2] = "FATE combat handling with auto level syncing"; + index2++; + span73[index2] = "Start accepted quests from journal with 'Start as next quest'"; + index2++; + span73[index2] = "Update quest tracking when quests are hidden or prioritised in game"; + index2++; + span73[index2] = "QuestMap as a recommended plugin/dependency"; + reference72 = new ChangeEntry(EChangeCategory.Added, "FATE and quest tracking", list73); + index++; + ref ChangeEntry reference73 = ref span72[index]; + index2 = 3; + List list74 = new List(index2); + CollectionsMarshal.SetCount(list74, index2); + Span span74 = CollectionsMarshal.AsSpan(list74); + num4 = 0; + span74[num4] = "Always prioritise next quest during teleportation/zone transitions"; + num4++; + span74[num4] = "Improved accepted quest logic with abandoned quest detection"; + num4++; + span74[num4] = "Show quests without quest paths as Locked"; + reference73 = new ChangeEntry(EChangeCategory.Changed, "Quest prioritisation improvements", list74); + index++; + span72[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon, Hildibrand, Yok Huy, Monster Hunter Wilds Collab, and Doman Enclave quests"); + index++; + span72[index] = new ChangeEntry(EChangeCategory.Fixed, "Fixed accepted/active quest display and Hildibrand quest issues"); + reference71 = new ChangelogEntry("6.12", releaseDate41, list72); + num2++; + ref ChangelogEntry reference74 = ref span[num2]; + DateOnly releaseDate42 = new DateOnly(2025, 10, 3); + index = 1; + List list75 = new List(index); CollectionsMarshal.SetCount(list75, index); - Span span75 = CollectionsMarshal.AsSpan(list75); - num5 = 0; - span75[num5] = "Don't show quests as available if player doesn't meet level requirements"; - num5++; - span75[num5] = "Updated 'required for MSQ' text in Crystal Tower quest preset window"; - reference74 = new ChangeEntry(EChangeCategory.Changed, "Quest window improvements", list75); - reference73 = new ChangelogEntry("6.10", releaseDate42, list74); + Span span75 = CollectionsMarshal.AsSpan(list75); + num3 = 0; + span75[num3] = new ChangeEntry(EChangeCategory.Changed, "Added remaining checks for quest priority to prevent infinite teleport looping"); + reference74 = new ChangelogEntry("6.11", releaseDate42, list75); num2++; ref ChangelogEntry reference75 = ref span[num2]; - DateOnly releaseDate43 = new DateOnly(2025, 9, 21); - num3 = 5; + DateOnly releaseDate43 = new DateOnly(2025, 10, 2); + num3 = 1; List list76 = new List(num3); CollectionsMarshal.SetCount(list76, num3); Span span76 = CollectionsMarshal.AsSpan(list76); - num4 = 0; - ref ChangeEntry reference76 = ref span76[num4]; - num5 = 4; - List list77 = new List(num5); - CollectionsMarshal.SetCount(list77, num5); + index = 0; + ref ChangeEntry reference76 = ref span76[index]; + num4 = 2; + List list77 = new List(num4); + CollectionsMarshal.SetCount(list77, num4); Span span77 = CollectionsMarshal.AsSpan(list77); - index = 0; - span77[index] = "Reworked event quest handling - automatically displays when events are active"; - index++; - span77[index] = "Reworked journal system with improved filtering and display"; - index++; - span77[index] = "Reworked Priority Quests tab (Manual Priority and Quest Presets)"; - index++; - span77[index] = "Quest path viewer site (https://wigglymuffin.github.io/FFXIV-Tools/)"; - reference76 = new ChangeEntry(EChangeCategory.Added, "Major system reworks", list77); - num4++; - ref ChangeEntry reference77 = ref span76[num4]; - index = 4; - List list78 = new List(index); - CollectionsMarshal.SetCount(list78, index); - Span span78 = CollectionsMarshal.AsSpan(list78); - num5 = 0; - span78[num5] = "Questionable.IsQuestCompleted"; - num5++; - span78[num5] = "Questionable.IsQuestAvailable"; - num5++; - span78[num5] = "Questionable.IsQuestAccepted"; - num5++; - span78[num5] = "Questionable.IsQuestUnobtainable"; - reference77 = new ChangeEntry(EChangeCategory.Added, "New IPC commands", list78); - num4++; - ref ChangeEntry reference78 = ref span76[num4]; - num5 = 5; - List list79 = new List(num5); - CollectionsMarshal.SetCount(list79, num5); - Span span79 = CollectionsMarshal.AsSpan(list79); - index = 0; - span79[index] = "Improved JSON quest validation with specific error reasons"; - index++; - span79[index] = "Added stop at sequence stop condition"; - index++; - span79[index] = "Improved Pandora plugin conflict detection"; - index++; - span79[index] = "Improved DialogueChoices regex matching"; - index++; - span79[index] = "Improved refresh checker for all quest states"; - reference78 = new ChangeEntry(EChangeCategory.Changed, "Various improvements", list79); - num4++; - span76[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.31 Occult Crescent quests"); - num4++; - span76[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed cutscene crashes, Single Player Duty triggers, and various quest issues"); - reference75 = new ChangelogEntry("6.9", releaseDate43, list76); + index2 = 0; + span77[index2] = "Don't show quests as available if player doesn't meet level requirements"; + index2++; + span77[index2] = "Updated 'required for MSQ' text in Crystal Tower quest preset window"; + reference76 = new ChangeEntry(EChangeCategory.Changed, "Quest window improvements", list77); + reference75 = new ChangelogEntry("6.10", releaseDate43, list76); num2++; - ref ChangelogEntry reference79 = ref span[num2]; - DateOnly releaseDate44 = new DateOnly(2025, 9, 2); - num4 = 4; - List list80 = new List(num4); - CollectionsMarshal.SetCount(list80, num4); - Span span80 = CollectionsMarshal.AsSpan(list80); + ref ChangelogEntry reference77 = ref span[num2]; + DateOnly releaseDate44 = new DateOnly(2025, 9, 21); + index = 5; + List list78 = new List(index); + CollectionsMarshal.SetCount(list78, index); + Span span78 = CollectionsMarshal.AsSpan(list78); num3 = 0; - ref ChangeEntry reference80 = ref span80[num3]; - index = 4; - List list81 = new List(index); - CollectionsMarshal.SetCount(list81, index); + ref ChangeEntry reference78 = ref span78[num3]; + index2 = 4; + List list79 = new List(index2); + CollectionsMarshal.SetCount(list79, index2); + Span span79 = CollectionsMarshal.AsSpan(list79); + num4 = 0; + span79[num4] = "Reworked event quest handling - automatically displays when events are active"; + num4++; + span79[num4] = "Reworked journal system with improved filtering and display"; + num4++; + span79[num4] = "Reworked Priority Quests tab (Manual Priority and Quest Presets)"; + num4++; + span79[num4] = "Quest path viewer site (https://wigglymuffin.github.io/FFXIV-Tools/)"; + reference78 = new ChangeEntry(EChangeCategory.Added, "Major system reworks", list79); + num3++; + ref ChangeEntry reference79 = ref span78[num3]; + num4 = 4; + List list80 = new List(num4); + CollectionsMarshal.SetCount(list80, num4); + Span span80 = CollectionsMarshal.AsSpan(list80); + index2 = 0; + span80[index2] = "Questionable.IsQuestCompleted"; + index2++; + span80[index2] = "Questionable.IsQuestAvailable"; + index2++; + span80[index2] = "Questionable.IsQuestAccepted"; + index2++; + span80[index2] = "Questionable.IsQuestUnobtainable"; + reference79 = new ChangeEntry(EChangeCategory.Added, "New IPC commands", list80); + num3++; + ref ChangeEntry reference80 = ref span78[num3]; + index2 = 5; + List list81 = new List(index2); + CollectionsMarshal.SetCount(list81, index2); Span span81 = CollectionsMarshal.AsSpan(list81); - num5 = 0; - span81[num5] = "Help commands and priority quest command"; - num5++; - span81[num5] = "Prevent 'CompleteQuest' step setting"; - num5++; - span81[num5] = "Duty counts and controls in 'Quest Battles' tab"; - num5++; - span81[num5] = "'Refresh quest timer' setting (WIP)"; - reference80 = new ChangeEntry(EChangeCategory.Added, "Command and UI improvements", list81); + num4 = 0; + span81[num4] = "Improved JSON quest validation with specific error reasons"; + num4++; + span81[num4] = "Added stop at sequence stop condition"; + num4++; + span81[num4] = "Improved Pandora plugin conflict detection"; + num4++; + span81[num4] = "Improved DialogueChoices regex matching"; + num4++; + span81[num4] = "Improved refresh checker for all quest states"; + reference80 = new ChangeEntry(EChangeCategory.Changed, "Various improvements", list81); num3++; - span80[num3] = new ChangeEntry(EChangeCategory.Changed, "Improved 'Clear All' buttons to require CTRL being held"); + span78[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.31 Occult Crescent quests"); num3++; - span80[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Zodiac quests and 7.31 Cosmic/Occult Crescent quests"); - num3++; - span80[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Fishing for Friendship and Cosmic Exploration quests"); - reference79 = new ChangelogEntry("6.8", releaseDate44, list80); + span78[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed cutscene crashes, Single Player Duty triggers, and various quest issues"); + reference77 = new ChangelogEntry("6.9", releaseDate44, list78); num2++; ref ChangelogEntry reference81 = ref span[num2]; - DateOnly releaseDate45 = new DateOnly(2025, 8, 27); + DateOnly releaseDate45 = new DateOnly(2025, 9, 2); num3 = 4; List list82 = new List(num3); CollectionsMarshal.SetCount(list82, num3); Span span82 = CollectionsMarshal.AsSpan(list82); - num4 = 0; - ref ChangeEntry reference82 = ref span82[num4]; - num5 = 2; - List list83 = new List(num5); - CollectionsMarshal.SetCount(list83, num5); - Span span83 = CollectionsMarshal.AsSpan(list83); index = 0; - span83[index] = "Icon to 'Clear All' button in stop conditions"; + ref ChangeEntry reference82 = ref span82[index]; + num4 = 4; + List list83 = new List(num4); + CollectionsMarshal.SetCount(list83, num4); + Span span83 = CollectionsMarshal.AsSpan(list83); + index2 = 0; + span83[index2] = "Help commands and priority quest command"; + index2++; + span83[index2] = "Prevent 'CompleteQuest' step setting"; + index2++; + span83[index2] = "Duty counts and controls in 'Quest Battles' tab"; + index2++; + span83[index2] = "'Refresh quest timer' setting (WIP)"; + reference82 = new ChangeEntry(EChangeCategory.Added, "Command and UI improvements", list83); index++; - span83[index] = "Duty counts and 'Enable All' button in 'Duties' tab"; - reference82 = new ChangeEntry(EChangeCategory.Added, "UI improvements", list83); - num4++; - span82[num4] = new ChangeEntry(EChangeCategory.Changed, "Renamed 'Clear' button to 'Clear All' in priority window"); - num4++; - span82[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Rising 2025 Event Quests"); - num4++; - span82[num4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed clipboard assigning blacklist to whitelist in 'Duties' tab"); - reference81 = new ChangelogEntry("6.7", releaseDate45, list82); + span82[index] = new ChangeEntry(EChangeCategory.Changed, "Improved 'Clear All' buttons to require CTRL being held"); + index++; + span82[index] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Zodiac quests and 7.31 Cosmic/Occult Crescent quests"); + index++; + span82[index] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Fishing for Friendship and Cosmic Exploration quests"); + reference81 = new ChangelogEntry("6.8", releaseDate45, list82); num2++; ref ChangelogEntry reference83 = ref span[num2]; - DateOnly releaseDate46 = new DateOnly(2025, 8, 25); - num4 = 2; - List list84 = new List(num4); - CollectionsMarshal.SetCount(list84, num4); + DateOnly releaseDate46 = new DateOnly(2025, 8, 27); + index = 4; + List list84 = new List(index); + CollectionsMarshal.SetCount(list84, index); Span span84 = CollectionsMarshal.AsSpan(list84); num3 = 0; ref ChangeEntry reference84 = ref span84[num3]; - index = 2; - List list85 = new List(index); - CollectionsMarshal.SetCount(list85, index); + index2 = 2; + List list85 = new List(index2); + CollectionsMarshal.SetCount(list85, index2); Span span85 = CollectionsMarshal.AsSpan(list85); - num5 = 0; - span85[num5] = "Missing emotes to schema and emote handler"; - num5++; - span85[num5] = "Improved stop conditions with 'Clear All' button"; - reference84 = new ChangeEntry(EChangeCategory.Added, "Emote support and stop conditions", list85); + num4 = 0; + span85[num4] = "Icon to 'Clear All' button in stop conditions"; + num4++; + span85[num4] = "Duty counts and 'Enable All' button in 'Duties' tab"; + reference84 = new ChangeEntry(EChangeCategory.Added, "UI improvements", list85); num3++; - span84[num3] = new ChangeEntry(EChangeCategory.Changed, "Stop at level functionality"); - reference83 = new ChangelogEntry("6.6", releaseDate46, list84); + span84[num3] = new ChangeEntry(EChangeCategory.Changed, "Renamed 'Clear' button to 'Clear All' in priority window"); + num3++; + span84[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Rising 2025 Event Quests"); + num3++; + span84[num3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed clipboard assigning blacklist to whitelist in 'Duties' tab"); + reference83 = new ChangelogEntry("6.7", releaseDate46, list84); num2++; ref ChangelogEntry reference85 = ref span[num2]; DateOnly releaseDate47 = new DateOnly(2025, 8, 25); @@ -948,11 +944,32 @@ internal static class ChangelogData List list86 = new List(num3); CollectionsMarshal.SetCount(list86, num3); Span span86 = CollectionsMarshal.AsSpan(list86); - num4 = 0; - span86[num4] = new ChangeEntry(EChangeCategory.Fixed, "Potential fix to single/solo duties softlocking"); - num4++; - span86[num4] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added San d'Oria: The Second Walk and various side quests"); - reference85 = new ChangelogEntry("6.5", releaseDate47, list86); + index = 0; + ref ChangeEntry reference86 = ref span86[index]; + num4 = 2; + List list87 = new List(num4); + CollectionsMarshal.SetCount(list87, num4); + Span span87 = CollectionsMarshal.AsSpan(list87); + index2 = 0; + span87[index2] = "Missing emotes to schema and emote handler"; + index2++; + span87[index2] = "Improved stop conditions with 'Clear All' button"; + reference86 = new ChangeEntry(EChangeCategory.Added, "Emote support and stop conditions", list87); + index++; + span86[index] = new ChangeEntry(EChangeCategory.Changed, "Stop at level functionality"); + reference85 = new ChangelogEntry("6.6", releaseDate47, list86); + num2++; + ref ChangelogEntry reference87 = ref span[num2]; + DateOnly releaseDate48 = new DateOnly(2025, 8, 25); + index = 2; + List list88 = new List(index); + CollectionsMarshal.SetCount(list88, index); + Span span88 = CollectionsMarshal.AsSpan(list88); + num3 = 0; + span88[num3] = new ChangeEntry(EChangeCategory.Fixed, "Potential fix to single/solo duties softlocking"); + num3++; + span88[num3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added San d'Oria: The Second Walk and various side quests"); + reference87 = new ChangelogEntry("6.5", releaseDate48, list88); Changelogs = list; } } diff --git a/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs b/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs index 6543cb7..6486361 100644 --- a/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs +++ b/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs @@ -1,37 +1,37 @@ using System; using System.Collections.Generic; -using System.Linq; namespace Questionable.Model.Changelog; internal sealed record ChangelogEntry(string Version, DateOnly ReleaseDate, List Changes) { - public bool IsNewVersion(string? lastViewedVersion) + public bool IsNewVersion(string? lastViewedVersion, IReadOnlyList allChangelogs) { if (string.IsNullOrEmpty(lastViewedVersion)) { return true; } - return CompareVersions(Version, lastViewedVersion) > 0; - } - - private static int CompareVersions(string version1, string version2) - { - int result; - int[] array = (from p in version1.Split('.') - select int.TryParse(p, out result) ? result : 0).ToArray(); - int[] array2 = (from p in version2.Split('.') - select int.TryParse(p, out result) ? result : 0).ToArray(); - int num = Math.Max(array.Length, array2.Length); - for (int num2 = 0; num2 < num; num2++) + int num = -1; + int num2 = -1; + for (int i = 0; i < allChangelogs.Count; i++) { - int num3 = ((num2 < array.Length) ? array[num2] : 0); - int num4 = ((num2 < array2.Length) ? array2[num2] : 0); - if (num3 != num4) + if (allChangelogs[i].Version == Version) { - return num3.CompareTo(num4); + num = i; + } + if (allChangelogs[i].Version == lastViewedVersion) + { + num2 = i; } } - return 0; + if (num2 == -1) + { + return true; + } + if (num == -1) + { + return false; + } + return num < num2; } } diff --git a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs index 87fa169..28267b1 100644 --- a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs +++ b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs @@ -5,6 +5,7 @@ using System.Numerics; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; +using Questionable.Data; using Questionable.Model.Changelog; namespace Questionable.Windows.ChangelogComponents; @@ -26,7 +27,7 @@ internal sealed class ChangelogEntryComponent public void Draw(ChangelogEntry changelog, bool isLatest, bool hasSetInitialState) { - bool isNew = changelog.IsNewVersion(_configuration.LastViewedChangelogVersion); + bool isNew = changelog.IsNewVersion(_configuration.LastViewedChangelogVersion, ChangelogData.Changelogs); ImGui.GetWindowDrawList(); string text = changelog.ReleaseDate.ToString("MMMM dd, yyyy", CultureInfo.InvariantCulture); if (!hasSetInitialState) diff --git a/Questionable/Questionable/QuestionablePlugin.cs b/Questionable/Questionable/QuestionablePlugin.cs index d826f26..7035af0 100644 --- a/Questionable/Questionable/QuestionablePlugin.cs +++ b/Questionable/Questionable/QuestionablePlugin.cs @@ -21,6 +21,7 @@ using Questionable.Controller.Utils; using Questionable.Data; using Questionable.External; using Questionable.Functions; +using Questionable.Model.Changelog; using Questionable.Validation; using Questionable.Validation.Validators; using Questionable.Windows; @@ -300,8 +301,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin, IDisposable Configuration requiredService2 = serviceProvider.GetRequiredService(); if (requiredService2.IsPluginSetupComplete() && requiredService2.General.ShowChangelogOnUpdate) { - string text = ChangelogData.Changelogs.FirstOrDefault()?.Version; - if (text != null && (string.IsNullOrEmpty(requiredService2.LastViewedChangelogVersion) || string.CompareOrdinal(text, requiredService2.LastViewedChangelogVersion) > 0)) + ChangelogEntry changelogEntry = ChangelogData.Changelogs.FirstOrDefault(); + if (changelogEntry != null && changelogEntry.IsNewVersion(requiredService2.LastViewedChangelogVersion, ChangelogData.Changelogs)) { requiredService.IsOpenAndUncollapsed = true; }