UNPKG

homm3-parsers

Version:

Collection of binary parsers able to parse various file formats related to Heroes of Might and Magic III

26 lines 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const binary_markup_1 = require("binary-markup"); const tiles_1 = require("./enums/tiles"); const TileMirror_1 = require("./contracts/enums/TileMirror"); const objects_1 = require("../../helpers/objects"); const mirrorBits = [ [ [1, TileMirror_1.TileMirror.TerrainVertical], [2, TileMirror_1.TileMirror.TerrainHorizontal], [4, TileMirror_1.TileMirror.RiverVertical], [8, TileMirror_1.TileMirror.RiverHorizontal], [16, TileMirror_1.TileMirror.RoadVertical], [32, TileMirror_1.TileMirror.RoadHorizontal], ], ]; const tilePart = (typeEnum) => binary_markup_1.struct( // binary_markup_1.enums(binary_markup_1.byte, typeEnum) `type`, binary_markup_1.byte `sprite`); exports.tile = binary_markup_1.struct(tilePart(tiles_1.terrainsEnum) `terrain`, tilePart(tiles_1.riversEnum) `river`, tilePart(tiles_1.roadsEnum) `road`, objects_1.bitMasksArray(binary_markup_1.bytes(1), mirrorBits) `mirror`); function calculateTiles(ctx) { const info = ctx.get('info'); return info.mapSize * info.mapSize * (info.hasTwoLevels ? 2 : 1); } exports.calculateTiles = calculateTiles; //# sourceMappingURL=tiles.bml.js.map