public MemoryDefinition(string gameVersion, string gameStorefront) { bKnownVersion = true; pointers = PointerInfoReader.getPointersForVersion(gameVersion, gameStorefront); Debug.WriteLine("Done reading XML pointers..."); if (pointers.Count == 0) // If we're using an unknown version, or atleast one in which we don't have the pointers. { Debug.WriteLine($"Unknown pointers for: {gameVersion}"); bKnownVersion = false; return; } if (pointers.ContainsKey("loading")) { isLoadingInfo = pointers["loading"]; isLoadingState = new MemoryWatcher <int>(isLoadingInfo.ptr); } if (pointers.ContainsKey("mainMenu")) { isMainMenuInfo = pointers["mainMenu"]; isMainMenuState = new MemoryWatcher <int>(isMainMenuInfo.ptr); } if (pointers.ContainsKey("levelSplits")) { levelSplitsInfo = pointers["levelSplits"]; levelSplitsState = new MemoryWatcher <int>(levelSplitsInfo.ptr); } this.AddRange(this.GetType().GetProperties().Where(p => !p.GetIndexParameters().Any()).Select(p => p.GetValue(this, null) as MemoryWatcher).Where(p => p != null)); }
public Borderlands3Component(LiveSplitState state) { Debug.Listeners.Clear(); Debug.Listeners.Add(BL3TraceListener.Instance); pointerFilePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + pointerFileName; if (!File.Exists(pointerFilePath)) { DownloadPointerFile(); } else { CheckPointerFileForUpdate(); } PointerInfoReader.Initialize(); timerModel = new TimerModel() { CurrentState = state }; settings = new Borderlands3Settings(); memReader = new MemoryReader(timerModel, settings); CounterHandler.Init(settings); state.OnStart += memReader.OnTimerStart; }