Beispiel #1
0
        public static void ConvertToLibTas(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                path = "libTAS_inputs.txt";
            }

            Manager.DisableExternal();
            StartExport(path);
            Manager.Controller.RefreshInputs(true);
            Manager.DisableExternal();
        }
        private static void Load()
        {
            Manager.controller.AdvanceFrame(true);
            if (savedController != null &&
                savedController.SavedChecksum == Manager.controller.Checksum(savedController.CurrentFrame))
            {
                //Fastforward to breakpoint if one exists
                var fastForwards = Manager.controller.fastForwards;
                if (fastForwards.Count > 0 && fastForwards[fastForwards.Count - 1].Line > savedController.Current.Line)
                {
                    Manager.state     &= ~State.FrameStep;
                    Manager.nextState &= ~State.FrameStep;
                }
                else
                {
                    //InputRecord ff = new InputRecord(0, "***");
                    //savedController.fastForwards.Insert(0, ff);
                    //savedController.inputs.Insert(savedController.inputs.IndexOf(savedController.Current) + 1, ff);
                }

                Engine.Scene.OnEndOfFrame += () => {
                    if (!StateManager.Instance.LoadState())
                    {
                        return;
                    }
                    if (!Manager.Running)
                    {
                        Manager.EnableExternal();
                    }
                    savedController.inputs = Manager.controller.inputs;
                    Manager.controller     = savedController.Clone();
                    routine = new Coroutine(LoadStateRoutine());
                };
                return;
            }
            //If savestate load failed just playback normally
            Manager.DisableExternal();
            Manager.EnableExternal();
        }