Example #1
0
 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;
 }
Example #2
0
 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();
 }
Example #3
0
		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();
		}
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
		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;
		}
Example #7
0
 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();
     };
 }