Ejemplo n.º 1
0
 public UserSettings(LiveSplitState state, LogManager log)
 {
     InitializeComponent();
     Settings = new SplitterSettings();
     State    = state;
     Log      = log;
     Dock     = DockStyle.Fill;
 }
Ejemplo n.º 2
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public LogicManager(SplitterSettings settings)
 {
     Memory    = new MemoryManager();
     Settings  = settings;
     splitLate = DateTime.MaxValue;
 }