diff --git a/UI/ViewModels/CheatListWindowViewModel.cs b/UI/ViewModels/CheatListWindowViewModel.cs index 287f324f..bea939b3 100644 --- a/UI/ViewModels/CheatListWindowViewModel.cs +++ b/UI/ViewModels/CheatListWindowViewModel.cs @@ -98,13 +98,23 @@ namespace Mesen.ViewModels CheatDbGameEntry? dbEntry = await CheatDatabaseWindow.Show(consoleType, parent); if(dbEntry != null && consoleType == MainWindowViewModel.Instance.RomInfo.ConsoleType) { List newCheats = new(); + HashSet existingCheats = new(); + foreach(CheatCode cheatCode in Cheats) { + string key = cheatCode.Description + cheatCode.Codes + cheatCode.Type.ToString(); + existingCheats.Add(key); + } + foreach(CheatDbCheatEntry cheatEntry in dbEntry.Cheats) { CheatCode newCheat = new CheatCode(); newCheat.Description = cheatEntry.Desc; newCheat.Enabled = false; newCheat.Type = GetCheatType(consoleType, cheatEntry.Code); newCheat.Codes = string.Join(Environment.NewLine, cheatEntry.Code.Split(";", StringSplitOptions.RemoveEmptyEntries)); - newCheats.Add(newCheat); + + string key = newCheat.Description + newCheat.Codes + newCheat.Type.ToString(); + if(!existingCheats.Contains(key)) { + newCheats.Add(newCheat); + } } Cheats.AddRange(newCheats); Sort();