diff --git a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs index 92d776fe0f..bd6503a531 100644 --- a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs +++ b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs @@ -95,12 +95,29 @@ namespace BizHawk.Client.EmuHawk private readonly List _messages = new List(5); private readonly List _guiTextList = new List(); + private readonly List _ramWatchList = new List(); public void AddMessage(string message) { _messages.Add(new UIMessage { Message = message, ExpireAt = DateTime.Now + TimeSpan.FromSeconds(2) }); } + public void ClearRamWatches() + { + _ramWatchList.Clear(); + } + + public void AddRamWatch(string message, MessagePosition pos, Color backGround, Color foreColor) + { + _ramWatchList.Add(new UIDisplay + { + Message = message, + Position = pos, + BackGround = backGround, + ForeColor = foreColor + }); + } + public void AddGuiText(string message, MessagePosition pos, Color backGround, Color foreColor) { _guiTextList.Add(new UIDisplay @@ -156,7 +173,7 @@ namespace BizHawk.Client.EmuHawk } } - foreach (var text in _guiTextList) + foreach (var text in _guiTextList.Concat(_ramWatchList)) { try { diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 097395dd01..fa58151023 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -236,7 +236,7 @@ namespace BizHawk.Client.EmuHawk for (var i = 0; i < _watches.Count; i++) { var frozen = !_watches[i].IsSeparator && Global.CheatList.IsActive(_watches[i].Domain, _watches[i].Address); - GlobalWin.OSD.AddGuiText( + GlobalWin.OSD.AddRamWatch( _watches[i].ToDisplayString(), new MessagePosition { @@ -262,7 +262,7 @@ namespace BizHawk.Client.EmuHawk return; } - GlobalWin.OSD.ClearGuiText(); + GlobalWin.OSD.ClearRamWatches(); if (_watches.Any()) { _watches.UpdateValues(); @@ -997,7 +997,7 @@ namespace BizHawk.Client.EmuHawk if (!Config.DisplayRamWatch) { - GlobalWin.OSD.ClearGuiText(); + GlobalWin.OSD.ClearRamWatches(); } else {