From e89449ed27d1d3b85b445ce26d8eb68af21e7691 Mon Sep 17 00:00:00 2001 From: RetroEdit <30182911+RetroEdit@users.noreply.github.com> Date: Fri, 14 Aug 2020 15:49:06 +0000 Subject: [PATCH] Input display: At movie end, show both last movie inputs and current inputs; fixes #2295 (#2305) --- src/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs b/src/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs index 7da0530076..73df9b8349 100644 --- a/src/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs +++ b/src/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs @@ -271,8 +271,10 @@ namespace BizHawk.Client.EmuHawk if (GlobalWin.Config.DisplayInput) { - if (GlobalWin.MovieSession.Movie.IsPlaying() - || (GlobalWin.MovieSession.Movie.IsFinished() && GlobalWin.Emulator.Frame == GlobalWin.MovieSession.Movie.InputLogLength)) // Account for the last frame of the movie, the movie state is immediately "Finished" here but we still want to show the input + var moviePlaying = GlobalWin.MovieSession.Movie.IsPlaying(); + // After the last frame of the movie, we want both the last movie input and the current inputs. + var atMovieEnd = (GlobalWin.MovieSession.Movie.IsFinished() && GlobalWin.Emulator.Frame == GlobalWin.MovieSession.Movie.InputLogLength); + if (moviePlaying || atMovieEnd) { var input = InputStrMovie(); var point = GetCoordinates(g, GlobalWin.Config.InputDisplay, input); @@ -280,7 +282,7 @@ namespace BizHawk.Client.EmuHawk g.DrawString(input, MessageFont, c, point.X, point.Y); } - else // TODO: message config -- allow setting of "mixed", and "auto" + if (!moviePlaying) // TODO: message config -- allow setting of "mixed", and "auto" { var previousColor = Color.FromArgb(GlobalWin.Config.LastInputColor); Color immediateColor = Color.FromArgb(GlobalWin.Config.MessagesColor);