Tastudio - A much simpler and less hacky implementation of previous commit, and have Tastudio take over the mainform's RestartMovie method using the IControlMainform interface

This commit is contained in:
adelikat 2014-10-26 16:36:50 +00:00
parent 78b4748675
commit ad7782df35
4 changed files with 30 additions and 13 deletions

View File

@ -32,5 +32,9 @@
/// </summary>
/// <returns></returns>
bool Rewind();
bool WantsToControlRestartMovie { get; }
void RestartMovie();
}
}

View File

@ -85,10 +85,17 @@ namespace BizHawk.Client.EmuHawk
public void RestartMovie()
{
if (Global.MovieSession.Movie.IsActive)
if (IsSlave && master.WantsToControlRestartMovie)
{
GlobalWin.MainForm.StartNewMovie(Global.MovieSession.Movie, false);
GlobalWin.OSD.AddMessage("Replaying movie file in read-only mode");
master.RestartMovie();
}
else
{
if (Global.MovieSession.Movie.IsActive)
{
GlobalWin.MainForm.StartNewMovie(Global.MovieSession.Movie, false);
GlobalWin.OSD.AddMessage("Replaying movie file in read-only mode");
}
}
}
}

View File

@ -2,6 +2,7 @@
{
public partial class TAStudio : IControlMainform
{
public bool WantsToControlReadOnly { get { return false; } }
public void ToggleReadOnly()
{
@ -26,8 +27,20 @@
public bool Rewind()
{
GoToPreviousFrame();
return true;
}
public bool WantsToControlRestartMovie { get; private set; }
public void RestartMovie()
{
if (AskSaveChanges())
{
WantsToControlStopMovie = false;
StartNewMovieWrapper(false);
WantsToControlStopMovie = true;
RefreshDialog();
}
}
}
}

View File

@ -53,6 +53,7 @@ namespace BizHawk.Client.EmuHawk
TasView.PointedCellChanged += TasView_PointedCellChanged;
TasView.MultiSelect = true;
TasView.MaxCharactersInHorizontal = 1;
WantsToControlRestartMovie = true;
}
private void TastudioToStopMovie()
@ -529,16 +530,8 @@ namespace BizHawk.Client.EmuHawk
var result = MessageBox.Show("In order to use Tastudio, a new project must be created from the current movie\nThe current movie will be saved and closed, and a new project file will be created\nProceed?", "Convert movie", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
{
var previousAutoloadTAStudio = Global.Config.AutoloadTAStudio;
var previousAutoloadTAStudioProject = Global.Config.AutoloadTAStudioProject;
ConvertCurrentMovieToTasproj();
Global.Config.AutoloadTAStudio = true;
Global.Config.AutoloadTAStudioProject = true;
GlobalWin.MainForm.RestartMovie();
Global.Config.AutoloadTAStudio = previousAutoloadTAStudio;
Global.Config.AutoloadTAStudioProject = previousAutoloadTAStudioProject;
StartNewMovieWrapper(false);
}
else
{