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(); }