From 7dfe7aa120e4490c8580ee316811a3f53444321a Mon Sep 17 00:00:00 2001 From: Brian Tobin Date: Mon, 22 Apr 2024 17:38:31 -0700 Subject: [PATCH] Fix AltTitlesList was broken in several ways Notably, scans didn't add to it anymore --- .../Common/DataClasses/FMDataSupporting.cs | 47 +++++-------------- AngelLoader/FMScan.cs | 3 +- 2 files changed, 14 insertions(+), 36 deletions(-) diff --git a/AngelLoader/Common/DataClasses/FMDataSupporting.cs b/AngelLoader/Common/DataClasses/FMDataSupporting.cs index b5eef7d82..b41338aea 100644 --- a/AngelLoader/Common/DataClasses/FMDataSupporting.cs +++ b/AngelLoader/Common/DataClasses/FMDataSupporting.cs @@ -99,44 +99,22 @@ public void Add(string value) ++Count; } - public void ClearAndAdd_Single(string str) + public void ClearAndAddTitleAndAltTitles(string title, string[] altTitles) { - if (_values is null or string) - { - _values = str; - } - else - { - InitValuesToList(); - Unsafe.As>(_values).ClearAndAdd_Single(str); - } - } + _values = title; + Count = 1; - public void AddRange(string[] collection) - { - if (collection.Length == 1) - { - if (_values is null or string) - { - _values = collection[0]; - } - else - { - List list = Unsafe.As>(_values); - list.Add(collection[0]); - } - } - else if (collection.Length > 1) + if (altTitles.Length == 0) return; + + string? prevSingle = _values as string; + InitValuesToList(); + List list = Unsafe.As>(_values); + if (prevSingle != null) { - string? prevSingle = _values as string; - InitValuesToList(); - List list = Unsafe.As>(_values); - if (prevSingle != null) - { - list.Add(prevSingle); - } - list.AddRange_Small(collection); + list.Add(prevSingle); } + list.AddRange_Small(altTitles); + Count += altTitles.Length; } public void Clear() @@ -149,6 +127,7 @@ public void Clear() { Unsafe.As>(_values).Clear(); } + Count = 0; } public string this[int index] diff --git a/AngelLoader/FMScan.cs b/AngelLoader/FMScan.cs index 2bd697f9b..21d6bb716 100644 --- a/AngelLoader/FMScan.cs +++ b/AngelLoader/FMScan.cs @@ -337,8 +337,7 @@ static void ShowProgressBox(bool suppressShow) if (gameSup) { - sel.AltTitles.ClearAndAdd_Single(sel.Title); - sel.AltTitles.AddRange(scannedFM.AlternateTitles); + sel.AltTitles.ClearAndAddTitleAndAltTitles(sel.Title, scannedFM.AlternateTitles); } else {