From bfd33e53998571c352bad5f9932fe5350f5c0067 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 2 Feb 2020 12:09:13 -0600 Subject: [PATCH] separate out lua and ram watch on screen message lists so they can't clobber each other, fixes #1831 --- .../DisplayManager/OSDManager.cs | 19 ++++++++++++++++++- .../tools/Watch/RamWatch.cs | 6 +++--- 2 files changed, 21 insertions(+), 4 deletions(-) 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 {