Esempio n. 1
0
        static void ReadMap(PrimitiveReader reader)
        {
            uint separator = reader.ReadUInt32();

            if (separator != 0xFFFFFF9D)
            {
                throw new InvalidDataException();
            }
            if (minorVersion >= 18)
            {
                int cameraY = reader.ReadInt32();
                int cameraX = reader.ReadInt32();
            }
            if (minorVersion >= 21)
            {
                AiMapType mapAi = (AiMapType)reader.ReadInt32();
            }
            uint mapWidth  = reader.ReadUInt32();
            uint mapHeight = reader.ReadUInt32();

            TerrainElement[] mapData = new TerrainElement[(int)mapWidth * (int)mapHeight];
            for (int i = 0; i < mapData.Length; i++)
            {
                TerrainElement element;
                element.TerrainId = reader.ReadUInt8();
                element.Elevation = reader.ReadUInt8();
                element.Unknown   = reader.ReadUInt8();
                mapData[i]        = element;
            }
            //System.Diagnostics.Debugger.Break();
        }
Esempio n. 2
0
        protected override void ReadMap(PrimitiveReader reader)
        {
            uint separator = reader.ReadUInt32();

            if (separator != separatorValue)
            {
                throw new InvalidDataException("Expected separator value.");
            }
            int editorCameraY = reader.ReadInt32();
            int editorCameraX = reader.ReadInt32();

            CameraPosition = new Point2I(editorCameraX, editorCameraY);
            AiMapType aiType = (AiMapType)reader.ReadInt32();

            MapAiType = aiType;
            GameMap   = Map.ReadFrom(reader);
        }