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
JavaScript
;
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