Restart Rom when Tastudio is engaged, resorted to ugly hacks that will be rethought when things are more stable
This commit is contained in:
parent
bc3208ec89
commit
35c3fcca16
|
@ -12,10 +12,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
partial class MainForm
|
||||
{
|
||||
public void StartNewMovie(IMovie movie, bool record)
|
||||
public void StartNewMovie(IMovie movie, bool record, bool fromTastudio = false) //TasStudio flag is a hack for now
|
||||
{
|
||||
//If a movie is already loaded, save it before starting a new movie
|
||||
if (Global.MovieSession.Movie.IsActive)
|
||||
if (!fromTastudio && Global.MovieSession.Movie.IsActive)
|
||||
{
|
||||
Global.MovieSession.Movie.Save();
|
||||
}
|
||||
|
@ -37,7 +37,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom, true, !record);
|
||||
|
||||
Global.Config.RecentMovies.Add(movie.Filename);
|
||||
if (!fromTastudio)
|
||||
{
|
||||
Global.Config.RecentMovies.Add(movie.Filename);
|
||||
}
|
||||
|
||||
if (Global.MovieSession.Movie.Header.StartsFromSavestate)
|
||||
{
|
||||
LoadStateFile(Global.MovieSession.Movie.Filename, Path.GetFileName(Global.MovieSession.Movie.Filename));
|
||||
|
@ -55,7 +59,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
SetMainformMovieInfo();
|
||||
GlobalWin.Tools.Restart<TAStudio>();
|
||||
|
||||
if (!fromTastudio)
|
||||
{
|
||||
GlobalWin.Tools.Restart<TAStudio>();
|
||||
}
|
||||
|
||||
GlobalWin.Tools.Restart<VirtualPadForm>();
|
||||
GlobalWin.DisplayManager.NeedsToPaint = true;
|
||||
}
|
||||
|
@ -133,7 +142,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
//On movie load, these need to be set based on the contents of the movie file
|
||||
private void SetSyncDependentSettings()
|
||||
public void SetSyncDependentSettings()
|
||||
{
|
||||
switch (Global.Emulator.SystemId)
|
||||
{
|
||||
|
|
|
@ -3561,7 +3561,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
Global.Emulator = new NullEmulator(Global.CoreComm);
|
||||
Global.ActiveController = Global.NullControls;
|
||||
Global.AutoFireController = Global.AutofireNullControls;
|
||||
Global.MovieSession.Movie.Stop();
|
||||
|
||||
// adelikat: TODO: Ugly hack! But I don't know a way around this yet.
|
||||
if (!(Global.MovieSession.Movie is TasMovie))
|
||||
{
|
||||
Global.MovieSession.Movie.Stop();
|
||||
}
|
||||
|
||||
|
||||
RebootStatusBarIcon.Visible = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,12 +135,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
GlobalWin.OSD.AddMessage("TAStudio engaged");
|
||||
EngageTasStudio();
|
||||
|
||||
LoadConfigSettings();
|
||||
|
||||
_tas.ActivePlayers = new List<string> { "Player 1", "Player 2" };
|
||||
_tas.ActivePlayers = new List<string> { "Player 1" };
|
||||
SetUpColumns();
|
||||
}
|
||||
|
||||
|
@ -148,9 +145,20 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
GlobalWin.OSD.AddMessage("TAStudio engaged");
|
||||
Global.MovieSession.Movie = new TasMovie();
|
||||
|
||||
_tas = Global.MovieSession.Movie as TasMovie;
|
||||
_tas.StartNewRecording();
|
||||
_tas.OnChanged += OnMovieChanged;
|
||||
|
||||
try
|
||||
{
|
||||
GlobalWin.MainForm.StartNewMovie(_tas, true, true);
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void StartNewSession()
|
||||
|
@ -164,12 +172,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
private void OnMovieChanged(object sender, MovieRecord.InputEventArgs e)
|
||||
{
|
||||
//TODO: move logic needs to go here
|
||||
TASView.ItemCount = _tas.InputLogLength;
|
||||
}
|
||||
|
||||
private void SetUpColumns()
|
||||
{
|
||||
TASView.Columns.Clear();
|
||||
|
@ -347,6 +349,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
#region TASView Events
|
||||
|
||||
private void OnMovieChanged(object sender, MovieRecord.InputEventArgs e)
|
||||
{
|
||||
//TODO: move logic needs to go here
|
||||
TASView.ItemCount = _tas.InputLogLength;
|
||||
}
|
||||
|
||||
private void TASView_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (TASView.PointedCell.Row.HasValue && !String.IsNullOrEmpty(TASView.PointedCell.Column))
|
||||
|
|
Loading…
Reference in New Issue