Пример #1
0
        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++;
            }
        }
Пример #2
0
        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;
                        }
                    }
                }
            }
        }