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(); }
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); }