private void EngageTastudio() { GlobalWin.OSD.AddMessage("TAStudio engaged"); SetTasMovieCallbacks(); SetTextProperty(); Mainform.RelinquishControl(this); _originalEndAction = Global.Config.MovieEndAction; Mainform.ClearRewindData(); Global.Config.MovieEndAction = MovieEndAction.Record; Mainform.SetMainformMovieInfo(); Global.MovieSession.ReadOnly = true; }
private void EngageTastudio() { MainForm.AddOnScreenMessage("TAStudio engaged"); SetTasMovieCallbacks(); SetTextProperty(); MainForm.RelinquishControl(this); _originalEndAction = Config.MovieEndAction; MainForm.ClearRewindData(); Config.MovieEndAction = MovieEndAction.Record; MainForm.SetMainformMovieInfo(); Global.MovieSession.ReadOnly = true; SetSplicer(); SetupBoolPatterns(); }
private void EngageTastudio() { GlobalWin.MainForm.PauseOnFrame = null; GlobalWin.OSD.AddMessage("TAStudio engaged"); _tas = Global.MovieSession.Movie as TasMovie; GlobalWin.MainForm.PauseEmulator(); GlobalWin.MainForm.RelinquishControl(this); _originalRewindStatus = Global.Rewinder.RewindActive; _originalEndAction = Global.Config.MovieEndAction; MarkerControl.Markers = _tas.Markers; GlobalWin.MainForm.EnableRewind(false); Global.Config.MovieEndAction = MovieEndAction.Record; GlobalWin.MainForm.SetMainformMovieInfo(); }
private bool Engage() { _engaged = false; MainForm.PauseOnFrame = null; MainForm.PauseEmulator(); // Nag if inaccurate core, but not if auto-loading or movie is already loaded if (!CanAutoload && MovieSession.Movie.NotActive()) { // Nag but allow the user to continue anyway, so ignore the return value MainForm.EnsureCoreIsAccurate(); } // Start Scenario 1: A regular movie is active if (MovieSession.Movie.IsActive() && !(MovieSession.Movie is ITasMovie)) { var changesString = "Would you like to save the current movie before closing it?"; if (MovieSession.Movie.Changes) { changesString = "The current movie has unsaved changes. Would you like to save before closing it?"; } var result = MessageBox.Show( "TAStudio will create a new project file from the current movie.\n\n" + changesString, "Convert movie", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result.Equals(DialogResult.Yes)) { MovieSession.Movie.Save(); } else if (result.Equals(DialogResult.Cancel)) { return(false); } ConvertCurrentMovieToTasproj(); StartNewMovieWrapper(CurrentTasMovie); SetUpColumns(); } // Start Scenario 2: A tasproj is already active else if (MovieSession.Movie.IsActive() && MovieSession.Movie is ITasMovie) { bool result = LoadFile(new FileInfo(CurrentTasMovie.Filename), gotoFrame: Emulator.Frame); if (!result) { TasView.AllColumns.Clear(); StartNewTasMovie(); } } // Start Scenario 3: No movie, but user wants to autoload their last project else if (CanAutoload) { bool result = LoadFile(new FileInfo(Settings.RecentTas.MostRecent)); if (!result) { TasView.AllColumns.Clear(); StartNewTasMovie(); } } // Start Scenario 4: No movie, default behavior of engaging tastudio with a new default project else { StartNewTasMovie(); } // Attempts to load failed, abort if (Emulator.IsNull()) { Disengage(); return(false); } MainForm.AddOnScreenMessage("TAStudio engaged"); SetTasMovieCallbacks(CurrentTasMovie); UpdateWindowTitle(); MainForm.RelinquishControl(this); _originalEndAction = Config.Movies.MovieEndAction; MainForm.DisableRewind(); Config.Movies.MovieEndAction = MovieEndAction.Record; MainForm.SetMainformMovieInfo(); MovieSession.ReadOnly = true; SetSplicer(); SetupBoolPatterns(); _engaged = true; return(true); }
private bool Engage() { MainForm.PauseOnFrame = null; MainForm.PauseEmulator(); // Nag if inaccurate core, but not if auto-loading or movie is already loaded if (!CanAutoload && MovieSession.Movie.NotActive()) { // Nag but allow the user to continue anyway, so ignore the return value EmuHawkUtil.EnsureCoreIsAccurate(Emulator); } // Start Scenario 1: A regular movie is active if (MovieSession.Movie.IsActive() && !(MovieSession.Movie is ITasMovie)) { 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.IsOk()) { ConvertCurrentMovieToTasproj(); StartNewMovieWrapper(CurrentTasMovie); SetUpColumns(); } else { return(false); } } // Start Scenario 2: A tasproj is already active else if (MovieSession.Movie.IsActive() && MovieSession.Movie is ITasMovie) { bool result = LoadFile(new FileInfo(CurrentTasMovie.Filename), gotoFrame: Emulator.Frame); if (!result) { TasView.AllColumns.Clear(); StartNewTasMovie(); } } // Start Scenario 3: No movie, but user wants to autoload their last project else if (CanAutoload) { bool result = LoadFile(new FileInfo(Settings.RecentTas.MostRecent)); if (!result) { TasView.AllColumns.Clear(); StartNewTasMovie(); } } // Start Scenario 4: No movie, default behavior of engaging tastudio with a new default project else { StartNewTasMovie(); } // Attempts to load failed, abort if (Emulator.IsNull()) { Disengage(); return(false); } MainForm.AddOnScreenMessage("TAStudio engaged"); SetTasMovieCallbacks(CurrentTasMovie); SetTextProperty(); MainForm.RelinquishControl(this); _originalEndAction = Config.MovieEndAction; MainForm.ClearRewindData(); Config.MovieEndAction = MovieEndAction.Record; MainForm.SetMainformMovieInfo(); MovieSession.ReadOnly = true; SetSplicer(); SetupBoolPatterns(); return(true); }
private void EngageTastudio() { GlobalWin.MainForm.PauseOnFrame = null; GlobalWin.OSD.AddMessage("TAStudio engaged"); SetTasMovieCallbacks(); SetTextProperty(); GlobalWin.MainForm.PauseEmulator(); GlobalWin.MainForm.RelinquishControl(this); _originalEndAction = Global.Config.MovieEndAction; GlobalWin.MainForm.ClearRewindData(); Global.Config.MovieEndAction = MovieEndAction.Record; GlobalWin.MainForm.SetMainformMovieInfo(); Global.MovieSession.ReadOnly = true; }
private void EngageTastudio() { GlobalWin.MainForm.PauseOnFrame = null; GlobalWin.OSD.AddMessage("TAStudio engaged"); SetTasMovieCallbacks(); SetTextProperty(); GlobalWin.MainForm.PauseEmulator(); GlobalWin.MainForm.RelinquishControl(this); _originalEndAction = Global.Config.MovieEndAction; GlobalWin.MainForm.ClearRewindData(); Global.Config.MovieEndAction = MovieEndAction.Record; GlobalWin.MainForm.SetMainformMovieInfo(); Global.MovieSession.ReadOnly = true; _mouseWheelTimer = new System.Timers.Timer(100); // consider sub 100 ms fast scrolling _mouseWheelTimer.Elapsed += (s, e) => { _mouseWheelTimer.Stop(); }; }