public GameState GetGameState() { try { if (GameProcess == null || GameProcess.HasExited) { return(GameState.None); } CurrentMap.Deref(GameProcess, out int rawMapAddr); var cm = new DeepPointer(new IntPtr(rawMapAddr)); cm.DerefString(GameProcess, 1024, out string rawMap); if (string.IsNullOrWhiteSpace(rawMap)) { return(GameState.None); } rawMap = rawMap.ToLower(); string formattedMap = rawMap.Replace(".unr", "").Replace(".UNR", ""); if (OldMap == "DEFAULT") { OldMap = formattedMap; } if (formattedMap != OldMap) { OldMap = formattedMap; if (formattedMap == "book_frontend") { return(GameState.Reset); } if (formattedMap == "book_story_1") { return(GameState.NewGame); } if (Shrek2Variables.ExcludedSplitMaps.Any(p => p == formattedMap)) { return(GameState.None); } return(GameState.Split); } return(GameState.None); } catch { return(GameState.None); } }