Tastudio - handle system mismatch error when autoloading
This commit is contained in:
parent
e00801d6f3
commit
d308a16f8d
|
@ -13,7 +13,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
partial class MainForm
|
||||
{
|
||||
public void StartNewMovie(IMovie movie, bool record)
|
||||
public bool StartNewMovie(IMovie movie, bool record)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -22,7 +22,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
catch (MoviePlatformMismatchException ex)
|
||||
{
|
||||
MessageBox.Show(this, ex.Message, "Movie/Platform Mismatch", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom);
|
||||
|
@ -49,6 +49,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
GlobalWin.Tools.Restart<VirtualpadTool>();
|
||||
GlobalWin.DisplayManager.NeedsToPaint = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void SetMainformMovieInfo()
|
||||
|
|
|
@ -137,7 +137,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Text = text;
|
||||
}
|
||||
|
||||
public void LoadProject(string path)
|
||||
public bool LoadProject(string path)
|
||||
{
|
||||
if (AskSaveChanges())
|
||||
{
|
||||
|
@ -163,13 +163,21 @@ namespace BizHawk.Client.EmuHawk
|
|||
shouldRecord = true;
|
||||
}
|
||||
|
||||
GlobalWin.MainForm.StartNewMovie(movie, record: shouldRecord);
|
||||
var result = GlobalWin.MainForm.StartNewMovie(movie, record: shouldRecord);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
WantsToControlStopMovie = true;
|
||||
_currentTasMovie = Global.MovieSession.Movie as TasMovie;
|
||||
Global.Config.RecentTas.Add(path);
|
||||
Text = "TAStudio - " + _currentTasMovie.Name;
|
||||
RefreshDialog();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void RefreshDialog()
|
||||
|
@ -528,7 +536,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
RecentSubMenu.DropDownItems.Clear();
|
||||
RecentSubMenu.DropDownItems.AddRange(
|
||||
Global.Config.RecentTas.RecentMenu(LoadProject));
|
||||
Global.Config.RecentTas.RecentMenu(DummyLoadProject));
|
||||
}
|
||||
|
||||
private void DummyLoadProject(string path)
|
||||
{
|
||||
LoadProject(path);
|
||||
}
|
||||
|
||||
private void NewTasMenuItem_Click(object sender, EventArgs e)
|
||||
|
@ -1032,16 +1045,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
// Start Scenario 3: No movie, but user wants to autload their last project
|
||||
else if (Global.Config.AutoloadTAStudioProject && !string.IsNullOrEmpty(Global.Config.RecentTas.MostRecent))
|
||||
{
|
||||
LoadProject(Global.Config.RecentTas.MostRecent);
|
||||
var result = LoadProject(Global.Config.RecentTas.MostRecent);
|
||||
if (!result)
|
||||
{
|
||||
Scenario4();
|
||||
}
|
||||
}
|
||||
|
||||
// Start Scenario 4: No movie, default behavior of engaging tastudio with a new default project
|
||||
else
|
||||
{
|
||||
NewTasMovie();
|
||||
GlobalWin.MainForm.StartNewMovie(_currentTasMovie, record: true);
|
||||
_currentTasMovie.CaptureCurrentState();
|
||||
_currentTasMovie.SwitchToRecord();
|
||||
Scenario4();
|
||||
}
|
||||
|
||||
EngageTastudio();
|
||||
|
@ -1051,6 +1065,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
RefreshDialog();
|
||||
}
|
||||
|
||||
private void Scenario4()
|
||||
{
|
||||
NewTasMovie();
|
||||
GlobalWin.MainForm.StartNewMovie(_currentTasMovie, record: true);
|
||||
_currentTasMovie.CaptureCurrentState();
|
||||
_currentTasMovie.SwitchToRecord();
|
||||
}
|
||||
|
||||
private void Tastudio_Closing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (AskSaveChanges())
|
||||
|
|
Loading…
Reference in New Issue