コード例 #1
0
        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);
        }
コード例 #2
0
        EnabledPatchContainer MakePatchesFromSettings(SpelunkyHooks hooks)
        {
            var container = new EnabledPatchContainer();

            if (Settings.ForceAlternativeSaveFile)
            {
                container.TryAddAndEnable(() => new SaveChangePatch(hooks));
            }
            return(container);
        }
コード例 #3
0
 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();
 }
コード例 #4
0
 public void Update(SpelunkyHooks spelunky)
 {
     JournalVisualizer.SetJournal(spelunky.JournalState);
 }
コード例 #5
0
 public SaveChangePatch(SpelunkyHooks spelunky)
 {
     PatchAddresses = new List <int>();
     Spelunky       = spelunky;
     FindPatchAddresses();
 }
コード例 #6
0
 public void Update(SpelunkyHooks spelunky)
 {
     CharactersVisualizer.SetCharacters(spelunky.CharactersState);
 }