UNPKG

homm3-parsers

Version:

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

27 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const binary_markup_1 = require("binary-markup"); const common_bml_1 = require("../common.bml"); const quest_bml_1 = require("./quest.bml"); const quest_1 = require("../enums/quest"); const skill_1 = require("../enums/skill"); const QuestReward_1 = require("../contracts/enums/QuestReward"); const rewardBranches = { [QuestReward_1.QuestReward.NONE]: binary_markup_1.pass, [QuestReward_1.QuestReward.Experience]: common_bml_1.experience, [QuestReward_1.QuestReward.SpellPoints]: binary_markup_1.uint32, [QuestReward_1.QuestReward.Artifact]: common_bml_1.artifact, [QuestReward_1.QuestReward.Luck]: binary_markup_1.byte, [QuestReward_1.QuestReward.Morale]: binary_markup_1.byte, [QuestReward_1.QuestReward.Spell]: common_bml_1.spell, [QuestReward_1.QuestReward.Resource]: binary_markup_1.struct(common_bml_1.resource `resource`, binary_markup_1.uint32 `quantity`), [QuestReward_1.QuestReward.PrimarySkill]: binary_markup_1.struct(binary_markup_1.enums(binary_markup_1.byte, skill_1.primarySkillEnum) `skill`, binary_markup_1.byte `bonus`), [QuestReward_1.QuestReward.SecondarySkill]: common_bml_1.secondarySkill, [QuestReward_1.QuestReward.Creature]: common_bml_1.creatureSlot, }; exports.seersHut = binary_markup_1.struct( // In RoE the only type of quest is "Return with artifacts", which in ROE is // always only one artifact. The quest hence consists of one byte signifying // the artifact type, 0xFF means quest type is None. In AB/SOD 0x00 means None. binary_markup_1.when(common_bml_1.isRoE, common_bml_1.artifact) `artifactType`, binary_markup_1.when(common_bml_1.isNotRoE, quest_bml_1.quest) `quest`, binary_markup_1.enums(binary_markup_1.byte, quest_1.questRewardEnum) `rewardType`, binary_markup_1.branch(binary_markup_1.ctx `rewardType`, rewardBranches) `reward`, binary_markup_1.skip(2)); //# sourceMappingURL=seersHut.bml.js.map