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