public static List <T> CreateArrayFromData <T>(SaveGameData p_data) { if (p_data != null) { List <T> list = new List <T>(p_data.Count); for (Int32 i = 0; i < p_data.Count; i++) { list.Add(p_data.Get <T>("data_" + i, default(T))); } return(list); } return(null); }
private static EDifficulty GetDifficulty(BinaryReader p_reader) { p_reader.ReadInt32(); String text = p_reader.ReadString(); if (text != "MainData") { LegacyLogger.Log("Not MainData: " + text); return(EDifficulty.NORMAL); } SaveGameData saveGameData = new SaveGameData(text); saveGameData.Read(p_reader); return(saveGameData.Get <EDifficulty>("Difficulty", EDifficulty.NORMAL)); }
public void Load(SaveGameData p_data) { m_name = p_data.Get <String>("Name", null); Int32 num = p_data.Get <Int32>("ObjectCount", 0); for (Int32 i = 0; i < num; i++) { SaveGameData saveGameData = p_data.Get <SaveGameData>("InteractiveObject" + i, null); if (saveGameData != null) { try { Int32 p_staticID = saveGameData.Get <Int32>("StaticID", 0); Int32 p_spawnID = saveGameData.Get <Int32>("SpawnerID", 0); EObjectType p_type = saveGameData.Get <EObjectType>("ObjectType", EObjectType.NONE); InteractiveObject interactiveObject = (InteractiveObject)EntityFactory.Create(p_type, p_staticID, p_spawnID); interactiveObject.Load(saveGameData); m_objects.Add(interactiveObject); } catch (Exception p_message) { LegacyLogger.LogError(p_message); } } } Int32 num2 = p_data.Get <Int32>("MonsterCount", 0); for (Int32 j = 0; j < num2; j++) { SaveGameData saveGameData2 = p_data.Get <SaveGameData>("Monster" + j, null); if (saveGameData2 != null) { try { Monster monster = new Monster(); monster.Load(saveGameData2); m_monster.Add(monster); } catch (Exception p_message2) { LegacyLogger.LogError(p_message2); } } } SaveGameData saveGameData3 = p_data.Get <SaveGameData>("InvalidSpawns", null); if (saveGameData3 != null) { List <Int32> collection = SaveGame.CreateArrayFromData <Int32>(saveGameData3); m_invalidSpawns.AddRange(collection); } SaveGameData saveGameData4 = p_data.Get <SaveGameData>("TerrainMatrix", null); if (saveGameData4 != null) { m_terrainDataHeight = saveGameData4.Get <Int32>("MatrixHeight", 0); m_terrainDataWidth = saveGameData4.Get <Int32>("MatrixWidth", 0); m_terrainData = new TerrainTypeData[m_terrainDataWidth * m_terrainDataHeight]; for (Int32 k = 0; k < m_terrainDataHeight; k++) { for (Int32 l = 0; l < m_terrainDataWidth; l++) { SaveGameData saveGameData5 = saveGameData4.Get <SaveGameData>(String.Concat(new Object[] { "terrain_", l, "_", k }), null); if (saveGameData5 != null) { TerrainTypeData terrainTypeData = default(TerrainTypeData); terrainTypeData.Load(saveGameData5); m_terrainData[k * m_terrainDataWidth + l] = terrainTypeData; } } } } }
public void Load(SaveGameData p_data) { Type = (ETerrainType)p_data.Get <Int32>("TerrainType", 0); Visited = p_data.Get <Boolean>("Visited", false); Height = p_data.Get <Single>("Height", Single.MaxValue); }