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 LoadSaveGameData(SaveGameData p_saveGameData, String p_file) { String path = Path.Combine(GamePaths.UserGamePath, p_file); if (File.Exists(path)) { using (FileStream fileStream = File.OpenRead(path)) { using (BinaryReader binaryReader = new BinaryReader(fileStream)) { p_saveGameData.Read(binaryReader); } } } }
public void Save(SaveGameData p_data) { p_data.Set <String>("Name", m_name); p_data.Set <Int32>("ObjectCount", m_objects.Count); for (Int32 i = 0; i < m_objects.Count; i++) { SaveGameData saveGameData = new SaveGameData("InteractiveObject" + i); m_objects[i].Save(saveGameData); p_data.Set <SaveGameData>(saveGameData.ID, saveGameData); } p_data.Set <Int32>("MonsterCount", m_monster.Count); for (Int32 j = 0; j < m_monster.Count; j++) { SaveGameData saveGameData2 = new SaveGameData("Monster" + j); m_monster[j].Save(saveGameData2); p_data.Set <SaveGameData>(saveGameData2.ID, saveGameData2); } SaveGameData saveGameData3 = SaveGame.CreateDataFromArray <Int32>("InvalidSpawns", m_invalidSpawns); p_data.Set <SaveGameData>(saveGameData3.ID, saveGameData3); SaveGameData saveGameData4 = new SaveGameData("TerrainMatrix"); saveGameData4.Set <Int32>("MatrixHeight", m_terrainDataHeight); saveGameData4.Set <Int32>("MatrixWidth", m_terrainDataWidth); if (m_terrainData != null) { for (Int32 k = 0; k < m_terrainDataHeight; k++) { for (Int32 l = 0; l < m_terrainDataWidth; l++) { SaveGameData saveGameData5 = new SaveGameData(String.Concat(new Object[] { "terrain_", l, "_", k })); m_terrainData[k * m_terrainDataWidth + l].Save(saveGameData5); saveGameData4.Set <SaveGameData>(saveGameData5.ID, saveGameData5); } } } p_data.Set <SaveGameData>(saveGameData4.ID, saveGameData4); }
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); }
public void Save(SaveGameData p_data) { p_data.Set <Int32>("TerrainType", (Int32)Type); p_data.Set <Boolean>("Visited", Visited); p_data.Set <Single>("Height", Height); }
public void Read(BinaryReader p_reader) { m_sealed = true; Int32 num = p_reader.ReadInt32(); if (num > 0 && m_bools == null) { m_bools = new Dictionary <String, Boolean>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_bools.Add(text, p_reader.ReadBoolean()); m_mapping.Add(text, TypeCode.Boolean); } num = p_reader.ReadInt32(); if (num > 0 && m_bytes == null) { m_bytes = new Dictionary <String, Byte>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_bytes.Add(text, p_reader.ReadByte()); m_mapping.Add(text, TypeCode.Byte); } num = p_reader.ReadInt32(); if (num > 0 && m_shorts == null) { m_shorts = new Dictionary <String, Int16>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_shorts.Add(text, p_reader.ReadInt16()); m_mapping.Add(text, TypeCode.Int16); } num = p_reader.ReadInt32(); if (num > 0 && m_ushorts == null) { m_ushorts = new Dictionary <String, UInt16>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_ushorts.Add(text, p_reader.ReadUInt16()); m_mapping.Add(text, TypeCode.UInt16); } num = p_reader.ReadInt32(); if (num > 0 && m_ints == null) { m_ints = new Dictionary <String, Int32>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_ints.Add(text, p_reader.ReadInt32()); m_mapping.Add(text, TypeCode.Int32); } num = p_reader.ReadInt32(); if (num > 0 && m_uints == null) { m_uints = new Dictionary <String, UInt32>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_uints.Add(text, p_reader.ReadUInt32()); m_mapping.Add(text, TypeCode.UInt32); } num = p_reader.ReadInt32(); if (num > 0 && m_longs == null) { m_longs = new Dictionary <String, Int64>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_longs.Add(text, p_reader.ReadInt64()); m_mapping.Add(text, TypeCode.Int64); } num = p_reader.ReadInt32(); if (num > 0 && m_ulongs == null) { m_ulongs = new Dictionary <String, UInt64>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_ulongs.Add(text, p_reader.ReadUInt64()); m_mapping.Add(text, TypeCode.UInt64); } num = p_reader.ReadInt32(); if (num > 0 && m_floats == null) { m_floats = new Dictionary <String, Single>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_floats.Add(text, p_reader.ReadSingle()); m_mapping.Add(text, TypeCode.Single); } num = p_reader.ReadInt32(); if (num > 0 && m_doubles == null) { m_doubles = new Dictionary <String, Double>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_doubles.Add(text, p_reader.ReadDouble()); m_mapping.Add(text, TypeCode.Double); } num = p_reader.ReadInt32(); if (num > 0 && m_strings == null) { m_strings = new Dictionary <String, String>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); m_strings.Add(text, p_reader.ReadString()); m_mapping.Add(text, TypeCode.String); } num = p_reader.ReadInt32(); if (num > 0 && m_dataObjects == null) { m_dataObjects = new Dictionary <String, SaveGameData>(num); } for (Int32 i = 0; i < num; i++) { String text = p_reader.ReadString(); SaveGameData saveGameData = new SaveGameData(text); saveGameData.Read(p_reader); m_dataObjects.Add(text, saveGameData); m_mapping.Add(text, TypeCode.Object); } }