Handle some particular quest preconditions
authorLiza Carvelli <liza@carvel.li>
Thu, 26 Dec 2024 21:28:50 +0000 (22:28 +0100)
committerLiza Carvelli <liza@carvel.li>
Thu, 26 Dec 2024 21:28:50 +0000 (22:28 +0100)
Questionable/Model/QuestInfo.cs

index 32f80ff45db1c362047f2fa44e81e0f999e67518..6e60ac7148e00e825feb12a39ebda68ab477b751 100644 (file)
@@ -40,9 +40,9 @@ internal sealed class QuestInfo : IQuestInfo
         PreviousQuests =
             new List<PreviousQuestInfo>
                 {
-                    new(new QuestId((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7),
-                    new(new QuestId((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))),
-                    new(new QuestId((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF)))
+                    new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[0].RowId & 0xFFFF)), quest.Unknown7),
+                    new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[1].RowId & 0xFFFF))),
+                    new(ReplaceOldQuestIds((ushort)(quest.PreviousQuest[2].RowId & 0xFFFF)))
                 }
                 .Where(x => x.QuestId.Value != 0)
                 .ToImmutableList();
@@ -69,6 +69,15 @@ internal sealed class QuestInfo : IQuestInfo
         Expansion = (EExpansionVersion)quest.Expansion.RowId;
     }
 
+    private static QuestId ReplaceOldQuestIds(ushort questId)
+    {
+        return new QuestId(questId switch
+        {
+            524 => 4522,
+            _ => questId,
+        });
+    }
+
 
     public ElementId QuestId { get; }
     public string Name { get; }