UNPKG

homm3-parsers

Version:

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

30 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const binary_markup_1 = require("binary-markup"); const player_1 = require("../enums/player"); const objects_1 = require("../../../helpers/objects"); const Alignment_1 = require("../contracts/enums/Alignment"); const alignmentBits = [ [ [1, Alignment_1.Alignment.Castle], [2, Alignment_1.Alignment.Rampart], [4, Alignment_1.Alignment.Tower], [8, Alignment_1.Alignment.Inferno], [16, Alignment_1.Alignment.Necropolis], [32, Alignment_1.Alignment.Dungeon], [64, Alignment_1.Alignment.Stronghold], [128, Alignment_1.Alignment.Fortress], [256, Alignment_1.Alignment.Conflux], ], ]; const alignmentMask = objects_1.bitMasksArray(binary_markup_1.array(binary_markup_1.uint16, 1), alignmentBits); exports.randomDwelling = binary_markup_1.struct(binary_markup_1.enums(binary_markup_1.uint32, player_1.playerEnum) `owner`, binary_markup_1.struct( // binary_markup_1.uint32 `castleAbsodId`, binary_markup_1.when(binary_markup_1.ctx `castleAbsodId`.eq(0), alignmentMask) `alignments`) `castle`, binary_markup_1.struct(binary_markup_1.uint8 `min`, binary_markup_1.uint8 `max`) `level`); exports.randomDwellingAlignment = binary_markup_1.struct( // binary_markup_1.enums(binary_markup_1.uint32, player_1.playerEnum) `owner`, binary_markup_1.struct(binary_markup_1.uint8 `min`, binary_markup_1.uint8 `max`) `level`); exports.randomDwellingLevel = binary_markup_1.struct(binary_markup_1.enums(binary_markup_1.uint32, player_1.playerEnum) `owner`, binary_markup_1.struct( // binary_markup_1.uint32 `castleAbsodId`, binary_markup_1.when(binary_markup_1.ctx `castleAbsodId`.eq(0), alignmentMask) `alignments`) `castle`); //# sourceMappingURL=randomDwelling.bml.js.map