private void LogValues()
        {
            if (lastLogCheck == 0)
            {
                hasLog       = File.Exists(LOGFILE);
                lastLogCheck = 300;
            }
            lastLogCheck--;

            if (hasLog || !Console.IsOutputRedirected)
            {
                if (mem.UIState() == UIState.PLAYING)
                {
                    pdata.UpdateData(mem, WriteLogWithTime);
                }

                string prev = "", curr = "";
                foreach (string key in keys)
                {
                    prev = currentValues[key];

                    switch (key)
                    {
                    case "CurrentSplit": curr = currentSplit.ToString(); break;

                    case "State": curr = state.ToString(); break;

                    case "GameState": curr = mem.GameState().ToString(); break;

                    case "SceneName": curr = mem.SceneName(); break;

                    case "NextSceneName": curr = mem.NextSceneName(); break;

                    case "Charms": curr = mem.CharmCount().ToString(); break;

                    case "MapZone": curr = ((MapZone)mem.PlayerData <int>(Offset.mapZone)).ToString(); break;

                    case "CameraMode": curr = mem.CameraMode().ToString(); break;

                    case "MenuState": curr = mem.MenuState().ToString(); break;

                    case "UIState": curr = mem.UIState().ToString(); break;

                    case "AcceptingInput": curr = mem.AcceptingInput().ToString(); break;

                    case "ActorState": curr = mem.HeroActorState().ToString(); break;

                    default: curr = ""; break;
                    }

                    if (!prev.Equals(curr))
                    {
                        WriteLogWithTime(key + ": ".PadRight(16 - key.Length, ' ') + prev.PadLeft(25, ' ') + " -> " + curr);

                        currentValues[key] = curr;
                    }
                }
            }
        }
예제 #2
0
        private void LogValues()
        {
            if (lastLogCheck == 0)
            {
                hasLog       = File.Exists(LOGFILE);
                lastLogCheck = 300;
            }
            lastLogCheck--;

            if (hasLog || !Console.IsOutputRedirected)
            {
                if (mem.UIState() == UIState.PLAYING)
                {
                    pdata.UpdateData(mem, WriteLogWithTime);
                }

                string prev = "", curr = "";
                foreach (string key in keys)
                {
                    prev = currentValues[key];

                    switch (key)
                    {
                    case "CurrentSplit": curr = currentSplit.ToString(); break;

                    case "State": curr = state.ToString(); break;

                    case "GameState": curr = mem.GameState().ToString(); break;

                    case "SceneName": curr = mem.SceneName(); break;

                    case "NextSceneName": curr = mem.NextSceneName(); break;

                    case "MapZone": curr = ((MapZone)mem.PlayerData <int>(Offset.mapZone)).ToString(); break;

                    case "CameraMode": curr = mem.CameraMode().ToString(); break;

                    case "MenuState": curr = mem.MenuState().ToString(); break;

                    case "UIState": curr = mem.UIState().ToString(); break;

                    case "AcceptingInput": curr = mem.AcceptingInput().ToString(); break;

                    case "ActorState": curr = mem.HeroActorState().ToString(); break;

                    case "Loading":
                        GameState gameState   = mem.GameState();
                        UIState   uiState     = mem.UIState();
                        string    nextScene   = mem.NextSceneName();
                        string    sceneName   = mem.SceneName();
                        bool      loadingMenu = (string.IsNullOrEmpty(nextScene) && sceneName != "Menu_Title") || (nextScene == "Menu_Title" && sceneName != "Menu_Title");
                        curr = ((gameState == GameState.PLAYING && mem.CameraTeleporting()) || lookForTeleporting || ((gameState == GameState.PLAYING || gameState == GameState.ENTERING_LEVEL) && uiState != UIState.PLAYING) || (gameState != GameState.PLAYING && !mem.AcceptingInput()) || gameState == GameState.EXITING_LEVEL || gameState == GameState.LOADING || mem.HeroTransitionState() == HeroTransitionState.WAITING_TO_ENTER_LEVEL || (uiState != UIState.PLAYING && (uiState != UIState.PAUSED || loadingMenu) && (!string.IsNullOrEmpty(nextScene) || sceneName == "_test_charms" || loadingMenu) && nextScene != sceneName)).ToString();
                        break;

                    case "Transition": curr = mem.HeroTransitionState().ToString(); break;

                    case "Teleporting": curr = mem.CameraTeleporting().ToString(); break;

                    case "LookFor": curr = lookForTeleporting.ToString(); break;

                    default: curr = ""; break;
                    }

                    if (!prev.Equals(curr))
                    {
                        WriteLogWithTime(key + ": ".PadRight(16 - key.Length, ' ') + prev.PadLeft(25, ' ') + " -> " + curr);

                        currentValues[key] = curr;
                    }
                }
            }
        }