diff --git a/BizHawk.Client.Common/tools/CheatList.cs b/BizHawk.Client.Common/tools/CheatList.cs index a56c8de21c..4e51233469 100644 --- a/BizHawk.Client.Common/tools/CheatList.cs +++ b/BizHawk.Client.Common/tools/CheatList.cs @@ -199,6 +199,11 @@ namespace BizHawk.Client.Common return false; } + public bool HasCheat(Cheat cheat) + { + return _cheatList.FirstOrDefault(x => x.Domain == cheat.Domain && x.Address == cheat.Address) != null; + } + public void SaveOnClose() { if (Global.Config.CheatsAutoSaveOnClose) diff --git a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs index 01a862384b..69b020e9db 100644 --- a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs +++ b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs @@ -222,9 +222,16 @@ namespace BizHawk.Client.EmuHawk private void AddCheat() { - Global.CheatList.Add(CheatEditor.Cheat); - UpdateListView(); - UpdateMessageLabel(); + if (Global.CheatList.HasCheat(CheatEditor.Cheat)) + { + EditCheat(); + } + else + { + Global.CheatList.Add(CheatEditor.Cheat); + UpdateListView(); + UpdateMessageLabel(); + } } private void EditCheat()