public void LoadTerrainDataMatrix(Grid p_grid) { if (m_terrainData == null) { return; } Int32 num = 0; while (num < m_terrainDataHeight && num < p_grid.Height) { Int32 num2 = 0; while (num2 < m_terrainDataWidth && num2 < p_grid.Width) { GridSlot slot = p_grid.GetSlot(new Position(num2, num)); TerrainTypeData terrainTypeData = m_terrainData[num * m_terrainDataWidth + num2]; slot.VisitedByParty = terrainTypeData.Visited; slot.TerrainType = terrainTypeData.Type; slot.Height = ((terrainTypeData.Height != Single.MaxValue) ? terrainTypeData.Height : slot.Height); num2++; } num++; } }
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; } } } } }