Exemple #1
0
        private void LogValues()
        {
            if (lastLogCheck == 0)
            {
                hasLog       = File.Exists(oriLogPath);
                lastLogCheck = 300;
            }
            lastLogCheck--;

            if (hasLog || !Console.IsOutputRedirected)
            {
                string prev = "", curr = "";

                GameState gameState      = mem.GetGameState();
                bool      isInGameWorld  = CheckInGameWorld(gameState);
                bool      isStartingGame = CheckStartingNewGame(gameState);

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

                    switch (key)
                    {
                    case "StartingGame": curr = isStartingGame.ToString(); break;

                    case "IsInGameWorld": curr = isInGameWorld.ToString(); break;

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

                    case "SplitName": curr = currentSplit < settings.Splits.Count ? settings.Splits[currentSplit].Field + " - " + settings.Splits[currentSplit].Value : ""; break;

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

                    case "GameWorld":
                    case "GameplayCamera":
                    case "WorldEvents":
                    case "SeinCharacter":
                    case "ScenesManager":
                    case "RainbowDash":
                    case "GameStateMachine": curr = mem.GetPointer(key); break;

                    default:
                        if (isInGameWorld)
                        {
                            switch (key)
                            {
                            case "AbilityCells": curr = mem.GetAbilityCells().ToString(); break;

                            case "EnergyCells": curr = ((int)mem.GetCurrentENMax()).ToString(); break;

                            case "CurrentEnergy": curr = mem.GetCurrentEN().ToString("0.00"); break;

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

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

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

                            case "CurrentArea": curr = mem.GetCurrentArea().Name; break;

                            default:
                                if (OriMemory.abilities.ContainsKey(key))
                                {
                                    curr = mem.GetAbility(key).ToString();
                                }
                                else if (OriMemory.events.ContainsKey(key))
                                {
                                    curr = mem.GetEvent(key).ToString();
                                }
                                else if (OriMemory.keys.ContainsKey(key))
                                {
                                    curr = mem.GetKey(key).ToString();
                                }
                                else
                                {
                                    curr = "";
                                }
                                break;
                            }
                        }
                        else
                        {
                            curr = prev;
                        }
                        break;
                    }
                    if (curr == null)
                    {
                        curr = string.Empty;
                    }
                    if (!prev.Equals(curr))
                    {
                        WriteLog(DateTime.Now.ToString(@"HH\:mm\:ss.fff") + (Model != null ? " | " + Model.CurrentState.CurrentTime.RealTime.Value.ToString("G").Substring(3, 11) : "") + ": " + key + ": ".PadRight(30 - key.Length < 0 ? 0 : 30 - key.Length, ' ') + (prev.Length > 25 ? prev : prev.PadLeft(25, ' ')) + " -> " + curr);

                        currentValues[key] = curr;
                    }
                }
            }
        }