void GetHooksIfNeeded(LiveSplitState state) { if (AutoSplitter != null) { if (AutoSplitter.Hooks.Invalidated) { AutoSplitter.Dispose(); AutoSplitter = null; } else { return; } } var hooks = new SpelunkyHooks(new RawProcess("Spelunky")); JournalTracker.ClientSize = new Size((int)(Spelunky.JournalTracker.InitialClientSize.Width * Settings.JournalTrackerScale), (int)(Spelunky.JournalTracker.InitialClientSize.Height * Settings.JournalTrackerScale)); CharactersTracker.ClientSize = new Size((int)(Spelunky.CharactersTracker.InitialClientSize.Width * Settings.CharactersTrackerScale), (int)(Spelunky.CharactersTracker.InitialClientSize.Height * Settings.CharactersTrackerScale)); AutoSplitter = new AutoSplitter(hooks, Settings.CurrentRunCategoryType, MakePatchesFromSettings(hooks), new TimerModel() { CurrentState = state }, Settings.AutoLoadSaveFile ? Settings.SaveFile : null, Settings.ShowJournalTracker ? JournalTracker : null, Settings.ShowCharactersTracker ? CharactersTracker : null); }
EnabledPatchContainer MakePatchesFromSettings(SpelunkyHooks hooks) { var container = new EnabledPatchContainer(); if (Settings.ForceAlternativeSaveFile) { container.TryAddAndEnable(() => new SaveChangePatch(hooks)); } return(container); }
public AutoSplitter(SpelunkyHooks hooks, Type categoryType, EnabledPatchContainer patches, TimerModel timer, string autoSaveLoadOpt, JournalTracker maybeJournalTracker, CharactersTracker maybeCharactersTracker) { Hooks = hooks; CategoryType = categoryType; Patches = patches; Segments = Category.NewSegmentInstances(categoryType); Timer = timer; AutoSaveLoadOpt = autoSaveLoadOpt; SaveLoaded = false; MaybeJournalTracker = maybeJournalTracker; MaybeCharactersTracker = maybeCharactersTracker; AssertHooksActive(); }
public void Update(SpelunkyHooks spelunky) { JournalVisualizer.SetJournal(spelunky.JournalState); }
public SaveChangePatch(SpelunkyHooks spelunky) { PatchAddresses = new List <int>(); Spelunky = spelunky; FindPatchAddresses(); }
public void Update(SpelunkyHooks spelunky) { CharactersVisualizer.SetCharacters(spelunky.CharactersState); }