示例#1
0
 private string GetCurrentSplit(LogicManager logic, SplitterSettings settings)
 {
     if (logic.CurrentSplit >= settings.Autosplits.Count)
     {
         return("N/A");
     }
     return(settings.Autosplits[logic.CurrentSplit].ToString());
 }
示例#2
0
        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;
                    }
                }
            }
        }