Save input log into savestates. Also add more informative messages & frame counter for better debugging

This commit is contained in:
andres.delikat 2011-05-17 22:44:31 +00:00
parent e5af4418da
commit 5a082bad2f
3 changed files with 10 additions and 2 deletions

View File

@ -1093,9 +1093,15 @@ namespace BizHawk.MultiClient
Global.Emulator.SaveStateText(writer);
//TODO: logic surrounding the behavior of movie modes & settings
//TODO: refactor save/loadstate as functions to automatically include this behavior too
InputLog.DumpLogIntoSavestateText(writer);
if (UserMovie.GetMovieMode() != MOVIEMODE.INACTIVE)
{
UserMovie.DumpLogIntoSavestateText(writer);
}
else if (InputLog.GetMovieMode() != MOVIEMODE.INACTIVE)
InputLog.DumpLogIntoSavestateText(writer);
writer.Close();
Global.RenderPanel.AddMessage("Saved state: " + name);
Global.RenderPanel.AddMessage("Saved state: " + name);
}
private void SaveStateAs()

View File

@ -347,7 +347,8 @@ namespace BizHawk.MultiClient
+ "/" + Global.MainForm.UserMovie.GetMovieLength().ToString();
}
else if (Global.MainForm.UserMovie.GetMovieMode() == MOVIEMODE.RECORD)
return "E" + Global.Emulator.Frame.ToString() + " " + Global.MainForm.UserMovie.lastLog.ToString();
return "E" + Global.Emulator.Frame.ToString() + " " + Global.MainForm.UserMovie.lastLog.ToString() +
" length: " + Global.MainForm.UserMovie.GetMovieLength().ToString();
else
{
return Global.Emulator.Frame.ToString();

View File

@ -304,6 +304,7 @@ namespace BizHawk.MultiClient
for (int x = 0; x < Log.Length(); x++)
writer.WriteLine(Log.GetFrame(x));
writer.WriteLine("[/Input]");
Global.RenderPanel.AddMessage(Log.Length().ToString() + " input frames saved.");
}
public void LoadLogFromSavestateText(TextReader reader)