private Texture2D DifficultyRankToTexture(DifficultyRank rank) { if (rank == DifficultyRank.NONE) { return(null); } return(rankTextures[(int)rank - 1]); }
public GameSessionInfo( GameSessionType sessionType, long uniqueId, string missionInternalName = "", int sideIndex = -1, DifficultyRank difficulty = DifficultyRank.NONE, Dictionary <int, bool> globalFlagValues = null, bool isCheatSession = false) { SessionType = sessionType; UniqueId = uniqueId; MissionInternalName = missionInternalName; SideIndex = sideIndex; Difficulty = difficulty; GlobalFlagValues = globalFlagValues; IsCheatSession = isCheatSession; }
public static string DifficultyRankToName(DifficultyRank difficultyRank) { switch (difficultyRank) { case DifficultyRank.EASY: return("Easy"); case DifficultyRank.NORMAL: return("Normal"); case DifficultyRank.HARD: return("Hard"); default: return("Unknown Difficulty"); } }
public static GameSessionInfo ParseFromFile(string path) { if (File.Exists(path)) { byte[] data = File.ReadAllBytes(path); for (int i = 0; i < data.Length; i++) { data[i] = (byte)~data[i]; } string dataAsString = Encoding.UTF8.GetString(data); string[] parts = dataAsString.Split(','); if (parts.Length < MIN_EXPECTED_FIELD_COUNT || parts.Length > EXPECTED_FIELD_COUNT) { Logger.Log("Unexpected saved game meta file format in file " + path + ": " + dataAsString); return(null); } GameSessionType sessionType = GameSessionType.UNKNOWN; int gameSessionTypeInt = Conversions.IntFromString(parts[0], -1); if (gameSessionTypeInt > -1 && gameSessionTypeInt <= (int)GameSessionType.SESSION_TYPE_MAX) { sessionType = (GameSessionType)gameSessionTypeInt; } if (!long.TryParse(parts[1], out long uniqueId)) { Logger.Log("FAILED to parse unique ID in saved game meta file " + path + ": " + dataAsString); return(null); } string missionInternalName = parts[3]; int sideIndex = Conversions.IntFromString(parts[4], -1); int difficultyInt = Conversions.IntFromString(parts[5], 0); DifficultyRank difficulty = (difficultyInt <0 || difficultyInt> (int) DifficultyRank.HARD) ? DifficultyRank.NONE : (DifficultyRank)difficultyInt; Dictionary <int, bool> globalFlagsDictionary = null; if (parts.Length >= 7 && parts[6] != GLOBAL_FLAGS_NONE) { string[] globalFlagParts = parts[6].Split('|'); globalFlagsDictionary = new Dictionary <int, bool>(); foreach (string gflagInfo in globalFlagParts) { string[] globalIndexAndState = gflagInfo.Split(':'); if (globalIndexAndState.Length != 2) { Logger.Log("FAILED to parse global flag index and state from game session info: " + gflagInfo + ", complete string: " + parts[6]); continue; } int globalIndex = int.Parse(globalIndexAndState[0], CultureInfo.InvariantCulture); bool globalState = globalIndexAndState[1] == "1"; globalFlagsDictionary.Add(globalIndex, globalState); } } bool isCheatSession = false; if (parts.Length >= 8) { isCheatSession = parts[7] == "1"; } return(new GameSessionInfo(sessionType, uniqueId, missionInternalName, sideIndex, difficulty, globalFlagsDictionary, isCheatSession)); } return(null); }