public UserSettings(LiveSplitState state, LogManager log) { InitializeComponent(); Settings = new SplitterSettings(); State = state; Log = log; Dock = DockStyle.Fill; }
public void Update(LogicManager logic, SplitterSettings settings) { if (!EnableLogging) { return; } lock (currentValues) { DateTime date = DateTime.Now; uint roomInstance = logic.Memory.RoomState(); uint gameState = logic.Memory.GameState(); foreach (LogObject key in Enum.GetValues(typeof(LogObject))) { string previous = currentValues[key]; string current = null; switch (key) { case LogObject.CurrentSplit: current = $"{logic.CurrentSplit}"; break; case LogObject.Pointers: current = logic.Memory.GamePointers(); break; case LogObject.Version: current = MemoryManager.Version.ToString(); break; case LogObject.MapPos: current = gameState != 0 ? logic.Memory.CurrentPosition().ToString() : previous; break; case LogObject.Room: current = roomInstance != 0 ? logic.Memory.RoomName() : previous; break; //case LogObject.RoomElapsed: current = roomInstance ? logic.Memory.RoomElapsedTime().ToString("0") : previous; break; //case LogObject.Elapsed: current = gameState ? logic.Memory.ElapsedTime().ToString("0") : previous; break; case LogObject.TotalDeaths: current = gameState != 0 ? logic.Memory.TotalDeaths().ToString() : previous; break; case LogObject.TitleShown: current = logic.Memory.TitleShown().ToString(); break; case LogObject.EnteredDoor: current = roomInstance != 0 ? logic.Memory.EnteredDoor().ToString() : previous; break; case LogObject.OrbCount: current = gameState != 0 ? logic.Memory.OrbCount().ToString() : previous; break; case LogObject.SecretRooms: current = gameState != 0 ? logic.Memory.SecretRoomCount().ToString() : previous; break; case LogObject.Paused: current = logic.Memory.IsPaused().ToString(); break; case LogObject.RoomInstance: current = $"{roomInstance:X}"; break; case LogObject.GameState: current = $"{gameState:X}"; break; } if (previous != current) { AddEntryUnlocked(new ValueLogEntry(date, key, previous, current)); currentValues[key] = current; } } } }
public LogicManager(SplitterSettings settings) { Memory = new MemoryManager(); Settings = settings; splitLate = DateTime.MaxValue; }