private string GetCurrentSplit(LogicManager logic, SplitterSettings settings) { if (logic.CurrentSplit >= settings.Autosplits.Count) { return("N/A"); } return(settings.Autosplits[logic.CurrentSplit].ToString()); }
public void Update(LogicManager logic, SplitterSettings settings) { if (!EnableLogging) { return; } lock (currentValues) { DateTime date = DateTime.Now; bool updateLog = true; foreach (LogObject key in Enum.GetValues(typeof(LogObject))) { string previous = currentValues[key]; string current = null; switch (key) { case LogObject.CurrentSplit: current = $"{logic.CurrentSplit} ({GetCurrentSplit(logic, settings)})"; break; case LogObject.Pointers: current = logic.Memory.GamePointers(); break; case LogObject.Version: current = MemoryManager.Version.ToString(); break; case LogObject.Loading: current = logic.Memory.IsLoading().ToString(); break; case LogObject.SceneName: current = updateLog ? logic.Memory.SceneName() : previous; break; case LogObject.SaveCount: current = updateLog ? logic.Memory.SaveDataCount().ToString() : previous; break; case LogObject.SaveData: if (updateLog) { CheckItems <SaveData>(key, currentSaveData, logic.Memory.SaveData()); } break; } if (previous != current) { AddEntryUnlocked(new ValueLogEntry(date, key, previous, current)); currentValues[key] = current; } } } }