static const char *const kEoB2ChargenStrings1DOSEnglish[9] = { "Your party is\rcomplete. Select\rthe PLAY button\ror press 'P' to\rstart the game.", " ", "AC\rHP\rLVL", "%s\r%d\r%d\r%d\r%d\r%d", "%d\r%d", "%d", "%d/%d", "%d/%d/%d", "Select the box of\rthe character you\rwish to create or\rview." }; static const StringListProvider kEoB2ChargenStrings1DOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings1DOSEnglish), kEoB2ChargenStrings1DOSEnglish }; static const char *const kEoB2ChargenStrings2DOSEnglish[12] = { "%s", "%d", "%s", "%d", "%d", "%d", "%s", "%d", "SELECT RACE:", "SELECT CLASS:", "SELECT ALIGNMENT:", "Name:" }; static const StringListProvider kEoB2ChargenStrings2DOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings2DOSEnglish), kEoB2ChargenStrings2DOSEnglish }; static const char *const kEoB2ChargenStatStringsDOSEnglish[12] = { "STR", "INT", "WIS", "DEX", "CON", "CHA", "STRENGTH", "INTELLIGENCE", "WISDOM", "DEXTERITY", "CONSTITUTION", "CHARISMA" }; static const StringListProvider kEoB2ChargenStatStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenStatStringsDOSEnglish), kEoB2ChargenStatStringsDOSEnglish }; static const char *const kEoB2ChargenRaceSexStringsDOSEnglish[12] = { "HUMAN MALE", "HUMAN FEMALE", "ELF MALE", "ELF FEMALE", "HALF-ELF MALE", "HALF-ELF FEMALE", "DWARF MALE", "DWARF FEMALE", "GNOME MALE", "GNOME FEMALE", "HALFLING MALE", "HALFLING FEMALE" }; static const StringListProvider kEoB2ChargenRaceSexStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenRaceSexStringsDOSEnglish), kEoB2ChargenRaceSexStringsDOSEnglish }; static const char *const kEoB2ChargenClassStringsDOSEnglish[21] = { "FIGHTER", "RANGER", "PALADIN", "MAGE", "CLERIC", "THIEF", "FIGHTER/CLERIC", "FIGHTER/THIEF", "FIGHTER/MAGE", "FIGHTER/MAGE/THIEF", "THIEF/MAGE", "CLERIC/THIEF", "FIGHTER/CLERIC/MAGE", "RANGER/CLERIC", "CLERIC/MAGE", "FIGHTER", "MAGE", "CLERIC", "THIEF", "PALADIN", "RANGER" }; static const StringListProvider kEoB2ChargenClassStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenClassStringsDOSEnglish), kEoB2ChargenClassStringsDOSEnglish }; static const char *const kEoB2ChargenAlignmentStringsDOSEnglish[9] = { "LAWFUL GOOD", "NEUTRAL GOOD", "CHAOTIC GOOD", "LAWFUL NEUTRAL", "TRUE NEUTRAL", "CHAOTIC NEUTRAL", "LAWFUL EVIL", "NEUTRAL EVIL", "CHAOTIC EVIL" }; static const StringListProvider kEoB2ChargenAlignmentStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenAlignmentStringsDOSEnglish), kEoB2ChargenAlignmentStringsDOSEnglish }; static const char *const kEoB2ChargenEnterGameStringsDOSEnglish[1] = { " Entering game.\r Please wait." }; static const StringListProvider kEoB2ChargenEnterGameStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ChargenEnterGameStringsDOSEnglish), kEoB2ChargenEnterGameStringsDOSEnglish }; static const char *const kEoB2PryDoorStringsDOSEnglish[8] = { "\r", "You are not capable of forcing the door.\r", "\x06\x04""You force the door.\r", "\x06\x06""You try to force the door but fail.\r", "You can't put that item there.\r", "The item is too large to fit.\r", "No one is able to pry this door open.\r", "\r" }; static const StringListProvider kEoB2PryDoorStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2PryDoorStringsDOSEnglish), kEoB2PryDoorStringsDOSEnglish }; static const char *const kEoB2WarningStringsDOSEnglish[4] = { "You can't go that way.\r", "%s isn't capable of eating food!\r", "That food is rotten! You don't want to eat that!\r", "You may only eat food!\r" }; static const StringListProvider kEoB2WarningStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2WarningStringsDOSEnglish), kEoB2WarningStringsDOSEnglish }; static const char *const kEoB2ItemSuffixStringsRingsDOSEnglish[4] = { "Adornment", "Wizardry", "Sustenance", "Feather Fall" }; static const StringListProvider kEoB2ItemSuffixStringsRingsDOSEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsRingsDOSEnglish), kEoB2ItemSuffixStringsRingsDOSEnglish }; static const char *const kEoB2ItemSuffixStringsPotionsDOSEnglish[8] = { "Giant Strength", "Healing", "Extra Healing", "Poison", "Vitality", "Speed", "Invisibility", "Cure Poison" }; static const StringListProvider kEoB2ItemSuffixStringsPotionsDOSEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsPotionsDOSEnglish), kEoB2ItemSuffixStringsPotionsDOSEnglish }; static const char *const kEoB2ItemSuffixStringsWandsDOSEnglish[8] = { "Stick", "Lightning", "Frost", "Curing", "Fireball", "Starfire", "Magic Missile", "Dispel Magic" }; static const StringListProvider kEoB2ItemSuffixStringsWandsDOSEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsWandsDOSEnglish), kEoB2ItemSuffixStringsWandsDOSEnglish }; static const char *const kEoB2RipItemStringsDOSEnglish[3] = { "%s has lost her ", "%s has lost his ", ".\r" }; static const StringListProvider kEoB2RipItemStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2RipItemStringsDOSEnglish), kEoB2RipItemStringsDOSEnglish }; static const char *const kEoB2CursedStringDOSEnglish[1] = { "%d Cursed %s" }; static const StringListProvider kEoB2CursedStringDOSEnglishProvider = { ARRAYSIZE(kEoB2CursedStringDOSEnglish), kEoB2CursedStringDOSEnglish }; static const char *const kEoB2MagicObjectStringsDOSEnglish[5] = { "Mage Scroll", "Cleric Scroll", "Ring", "Potion", "Wand" }; static const StringListProvider kEoB2MagicObjectStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectStringsDOSEnglish), kEoB2MagicObjectStringsDOSEnglish }; static const char *const kEoB2MagicObjectString5DOSEnglish[1] = { "Stick" }; static const StringListProvider kEoB2MagicObjectString5DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectString5DOSEnglish), kEoB2MagicObjectString5DOSEnglish }; static const char *const kEoB2PatternSuffixDOSEnglish[1] = { "%s of %s" }; static const StringListProvider kEoB2PatternSuffixDOSEnglishProvider = { ARRAYSIZE(kEoB2PatternSuffixDOSEnglish), kEoB2PatternSuffixDOSEnglish }; static const char *const kEoB2PatternGrFix1DOSEnglish[1] = { "%s of %s" }; static const StringListProvider kEoB2PatternGrFix1DOSEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix1DOSEnglish), kEoB2PatternGrFix1DOSEnglish }; static const char *const kEoB2PatternGrFix2DOSEnglish[1] = { "%s of %s" }; static const StringListProvider kEoB2PatternGrFix2DOSEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix2DOSEnglish), kEoB2PatternGrFix2DOSEnglish }; static const char *const kEoB2ValidateArmorStringDOSEnglish[1] = { "%s can't wear that type of armor.\r" }; static const StringListProvider kEoB2ValidateArmorStringDOSEnglishProvider = { ARRAYSIZE(kEoB2ValidateArmorStringDOSEnglish), kEoB2ValidateArmorStringDOSEnglish }; static const char *const kEoB2ValidateCursedStringDOSEnglish[1] = { "%s cannot release the weapon! It is cursed!\r" }; static const StringListProvider kEoB2ValidateCursedStringDOSEnglishProvider = { ARRAYSIZE(kEoB2ValidateCursedStringDOSEnglish), kEoB2ValidateCursedStringDOSEnglish }; static const char *const kEoB2ValidateNoDropStringDOSEnglish[1] = { "You can't put that item there.\r" }; static const StringListProvider kEoB2ValidateNoDropStringDOSEnglishProvider = { ARRAYSIZE(kEoB2ValidateNoDropStringDOSEnglish), kEoB2ValidateNoDropStringDOSEnglish }; static const char *const kEoB2PotionStringsDOSEnglish[2] = { "poisoned", "%s feels %s!\r" }; static const StringListProvider kEoB2PotionStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2PotionStringsDOSEnglish), kEoB2PotionStringsDOSEnglish }; static const char *const kEoB2WandStringsDOSEnglish[1] = { "The wand has no apparent magical effect\r" }; static const StringListProvider kEoB2WandStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2WandStringsDOSEnglish), kEoB2WandStringsDOSEnglish }; static const char *const kEoB2ItemMisuseStringsDOSEnglish[3] = { " can not use this item.\r", "This item automatically used when worn.\r", "This item is not used in this way.\r" }; static const StringListProvider kEoB2ItemMisuseStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2ItemMisuseStringsDOSEnglish), kEoB2ItemMisuseStringsDOSEnglish }; static const char *const kEoB2TakenStringsDOSEnglish[1] = { " taken.\r" }; static const StringListProvider kEoB2TakenStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2TakenStringsDOSEnglish), kEoB2TakenStringsDOSEnglish }; static const char *const kEoB2PotionEffectStringsDOSEnglish[8] = { "much stronger", "better", "much better", "ill for a moment", "satiated", "fast and agile", "transparent", "better" }; static const StringListProvider kEoB2PotionEffectStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2PotionEffectStringsDOSEnglish), kEoB2PotionEffectStringsDOSEnglish }; static const char *const kEoB2YesNoStringsDOSEnglish[2] = { "yes", "no" }; static const StringListProvider kEoB2YesNoStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2YesNoStringsDOSEnglish), kEoB2YesNoStringsDOSEnglish }; static const char *const kEoB2MoreStringsDOSEnglish[1] = { "MORE" }; static const StringListProvider kEoB2MoreStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MoreStringsDOSEnglish), kEoB2MoreStringsDOSEnglish }; static const char *const kEoB2NpcMaxStringsDOSEnglish[1] = { "You may only have six characters in your party. Select the one you wish to drop." }; static const StringListProvider kEoB2NpcMaxStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2NpcMaxStringsDOSEnglish), kEoB2NpcMaxStringsDOSEnglish }; static const char *const kEoB2OkStringsDOSEnglish[1] = { "OK" }; static const StringListProvider kEoB2OkStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2OkStringsDOSEnglish), kEoB2OkStringsDOSEnglish }; static const char *const kEoB2NpcJoinStringsDOSEnglish[1] = { "%s joins the party.\r" }; static const StringListProvider kEoB2NpcJoinStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2NpcJoinStringsDOSEnglish), kEoB2NpcJoinStringsDOSEnglish }; static const char *const kEoB2CancelStringsDOSEnglish[1] = { "CANCEL" }; static const StringListProvider kEoB2CancelStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2CancelStringsDOSEnglish), kEoB2CancelStringsDOSEnglish }; static const char *const kEoB2AbortStringsDOSEnglish[1] = { "ABORT" }; static const StringListProvider kEoB2AbortStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2AbortStringsDOSEnglish), kEoB2AbortStringsDOSEnglish }; static const char *const kEoB2MenuStringsMainDOSEnglish[8] = { "Select Option:", "Rest Party", "Memorize Spells", "Pray for Spells", "Scribe Scrolls", "Preferences", "Game Options", "Exit" }; static const StringListProvider kEoB2MenuStringsMainDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMainDOSEnglish), kEoB2MenuStringsMainDOSEnglish }; static const char *const kEoB2MenuStringsSaveLoadDOSEnglish[8] = { "Load Game", "Save Game", "Drop Character", "Quit Game", "Game Options:", "\r Game saved.", "Attempts to save your\rgame have failed!", "Cannot load your\rsave game. The\rfile may be corrupt!" }; static const StringListProvider kEoB2MenuStringsSaveLoadDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSaveLoadDOSEnglish), kEoB2MenuStringsSaveLoadDOSEnglish }; static const char *const kEoB2MenuStringsOnOffDOSEnglish[2] = { "ON", "OFF" }; static const StringListProvider kEoB2MenuStringsOnOffDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsOnOffDOSEnglish), kEoB2MenuStringsOnOffDOSEnglish }; static const char *const kEoB2MenuStringsSpellsDOSEnglish[17] = { "\r\r Select a character\r from your party who\r would like to learn\r spells.", "\r Your Paladin is \r too low a level\r for spells.", "\r\r The Mage has no\r Spell Book!", "\r\r\r Select a character\r from your party\r who would like to\r pray for spells.", "\r No party members\r are capable of\r praying for new\r spells.", "\r No party members\r are capable of\r memorizing new\r spells.", " An unconscious\r or dead Mage\r cannot memorize\r spells.", " An unconscious\r or dead Cleric\r cannot pray for\r spells.", "1", "2", "3", "4", "5", "Clear", "Spells Available:", "Yes", "No" }; static const StringListProvider kEoB2MenuStringsSpellsDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpellsDOSEnglish), kEoB2MenuStringsSpellsDOSEnglish }; static const char *const kEoB2MenuStringsRestDOSEnglish[5] = { "\rWill your healers\rheal the party?", " Someone is still\r injured. Rest\r until healed?", "Resting party.", "\r All characters\r are fully\r rested.", " Your party needs\r to rest to gain\r spells." }; static const StringListProvider kEoB2MenuStringsRestDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRestDOSEnglish), kEoB2MenuStringsRestDOSEnglish }; static const char *const kEoB2MenuStringsDropDOSEnglish[1] = { " You cannot have\r less than four\r characters." }; static const StringListProvider kEoB2MenuStringsDropDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDropDOSEnglish), kEoB2MenuStringsDropDOSEnglish }; static const char *const kEoB2MenuStringsExitDOSEnglish[1] = { " Are you sure you\r wish to exit the\r game?" }; static const StringListProvider kEoB2MenuStringsExitDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsExitDOSEnglish), kEoB2MenuStringsExitDOSEnglish }; static const char *const kEoB2MenuStringsStarveDOSEnglish[1] = { " Your party is\r starving. Do you\r wish to continue\r resting?" }; static const StringListProvider kEoB2MenuStringsStarveDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsStarveDOSEnglish), kEoB2MenuStringsStarveDOSEnglish }; static const char *const kEoB2MenuStringsScribeDOSEnglish[5] = { "Select the scroll(s)\ryou wish to scribe.", "\r\r\r Select a Mage\r from your party\r who would like to\r scribe spells.", " You don't have\r any scolls to be\r scribed.", " You don't have\r any scrolls that\r this Mage needs.", "\r You don't have\r any Mage able to\r scribe scrolls." }; static const StringListProvider kEoB2MenuStringsScribeDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsScribeDOSEnglish), kEoB2MenuStringsScribeDOSEnglish }; static const char *const kEoB2MenuStringsDrop2DOSEnglish[3] = { " Select the\r character you\r wish to drop.", " You must specify\r a name for your\r save game!", " Are you sure you\r wish to replace\r your saved game?" }; static const StringListProvider kEoB2MenuStringsDrop2DOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDrop2DOSEnglish), kEoB2MenuStringsDrop2DOSEnglish }; static const char *const kEoB2MenuStringsHeadDOSEnglish[3] = { "Camp:", "Preferences:", "Game Options:" }; static const StringListProvider kEoB2MenuStringsHeadDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsHeadDOSEnglish), kEoB2MenuStringsHeadDOSEnglish }; static const char *const kEoB2MenuStringsPoisonDOSEnglish[1] = { "Poisoned party\rmembers may die!\rRest anyway?" }; static const StringListProvider kEoB2MenuStringsPoisonDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPoisonDOSEnglish), kEoB2MenuStringsPoisonDOSEnglish }; static const char *const kEoB2MenuStringsMgcDOSEnglish[2] = { "%-18s %1d", "%d of %d Remaining. " }; static const StringListProvider kEoB2MenuStringsMgcDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMgcDOSEnglish), kEoB2MenuStringsMgcDOSEnglish }; static const char *const kEoB2MenuStringsPrefsDOSEnglish[4] = { "Tunes are %-3s", "Sounds are %-3s", "Bar Graphs are %-3s", "Mouse is %-3s" }; static const StringListProvider kEoB2MenuStringsPrefsDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPrefsDOSEnglish), kEoB2MenuStringsPrefsDOSEnglish }; static const char *const kEoB2MenuStringsRest2DOSEnglish[5] = { "%s gained %s.\r", "%s memorized %s.\r", "%s casts healing on %s.\r", "Hours rested: %-4d", "\r%s\r" }; static const StringListProvider kEoB2MenuStringsRest2DOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest2DOSEnglish), kEoB2MenuStringsRest2DOSEnglish }; static const char *const kEoB2MenuStringsRest3DOSEnglish[1] = { "\x06\x06""You do not feel it is safe to rest here." }; static const StringListProvider kEoB2MenuStringsRest3DOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest3DOSEnglish), kEoB2MenuStringsRest3DOSEnglish }; static const char *const kEoB2MenuStringsRest4DOSEnglish[1] = { "\x06\x06""You can't rest here, monsters are near." }; static const StringListProvider kEoB2MenuStringsRest4DOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest4DOSEnglish), kEoB2MenuStringsRest4DOSEnglish }; static const char *const kEoB2MenuStringsDefeatDOSEnglish[1] = { "\rYour entire party\rhas been defeated!\rWould you like to\rload a previously\rsaved game?" }; static const StringListProvider kEoB2MenuStringsDefeatDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatDOSEnglish), kEoB2MenuStringsDefeatDOSEnglish }; static const char *const kEoB2MenuStringsTransferDOSEnglish[5] = { "You must transfer\rfour party members\rbefore you may play!", "You may only transfer\rfour party members to\rEOB II!", "Items which are not\ruseful or unbalance\rthe game will be\rdeleted.", " \r You do not have\r a mage in your\r party.", " \r You do not have\r a cleric or\r paladin in your\r party." }; static const StringListProvider kEoB2MenuStringsTransferDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsTransferDOSEnglish), kEoB2MenuStringsTransferDOSEnglish }; static const char *const kEoB2MenuStringsSpecDOSEnglish[2] = { "As you awaken, you\rdiscover that Insal\rthe thief is gone!", "A quick inventory\rreveals equipment\rhas been stolen!" }; static const StringListProvider kEoB2MenuStringsSpecDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpecDOSEnglish), kEoB2MenuStringsSpecDOSEnglish }; static const char *const kEoB2MenuYesNoStringsDOSEnglish[2] = { "Yes", "No" }; static const StringListProvider kEoB2MenuYesNoStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsDOSEnglish), kEoB2MenuYesNoStringsDOSEnglish }; static const char *const kEoB2CharGuiStringsHpDOSEnglish[2] = { "HP", "%3d of %-3d" }; static const StringListProvider kEoB2CharGuiStringsHpDOSEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpDOSEnglish), kEoB2CharGuiStringsHpDOSEnglish }; static const char *const kEoB2CharGuiStringsWp2DOSEnglish[3] = { "MISS", "HACK", "BASH" }; static const StringListProvider kEoB2CharGuiStringsWp2DOSEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2DOSEnglish), kEoB2CharGuiStringsWp2DOSEnglish }; static const char *const kEoB2CharGuiStringsWrDOSEnglish[4] = { "CAN'T", "REACH", "NO", "AMMO" }; static const StringListProvider kEoB2CharGuiStringsWrDOSEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrDOSEnglish), kEoB2CharGuiStringsWrDOSEnglish }; static const char *const kEoB2CharGuiStringsSt2DOSEnglish[7] = { "Swapping", "DEAD", "UNCONSCIOUS", "POISON (SLOW)", "POISONED", "PARALYZED", "PETRIFIED" }; static const StringListProvider kEoB2CharGuiStringsSt2DOSEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2DOSEnglish), kEoB2CharGuiStringsSt2DOSEnglish }; static const char *const kEoB2CharGuiStringsInDOSEnglish[4] = { "CHARACTER INFO", "ARMOR CLASS", "EXP", "LVL" }; static const StringListProvider kEoB2CharGuiStringsInDOSEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsInDOSEnglish), kEoB2CharGuiStringsInDOSEnglish }; static const char *const kEoB2CharStatusStrings7DOSEnglish[1] = { "%s no longer has giant strength.\r" }; static const StringListProvider kEoB2CharStatusStrings7DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings7DOSEnglish), kEoB2CharStatusStrings7DOSEnglish }; static const char *const kEoB2CharStatusStrings82DOSEnglish[1] = { "\x06\x06""%s feels the effects of poison!\r" }; static const StringListProvider kEoB2CharStatusStrings82DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings82DOSEnglish), kEoB2CharStatusStrings82DOSEnglish }; static const char *const kEoB2CharStatusStrings9DOSEnglish[1] = { "%s is no longer paralyzed!\r" }; static const StringListProvider kEoB2CharStatusStrings9DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings9DOSEnglish), kEoB2CharStatusStrings9DOSEnglish }; static const char *const kEoB2CharStatusStrings12DOSEnglish[1] = { "%s slows down.\r" }; static const StringListProvider kEoB2CharStatusStrings12DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings12DOSEnglish), kEoB2CharStatusStrings12DOSEnglish }; static const char *const kEoB2CharStatusStrings132DOSEnglish[1] = { "\x06\x06""%s is %s!\r" }; static const StringListProvider kEoB2CharStatusStrings132DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings132DOSEnglish), kEoB2CharStatusStrings132DOSEnglish }; static const char *const kEoB2LevelGainStringsDOSEnglish[1] = { "\x06\x01""%s has gained a level.""\x06\x0F""\r" }; static const StringListProvider kEoB2LevelGainStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2LevelGainStringsDOSEnglish), kEoB2LevelGainStringsDOSEnglish }; static const char *const kEoB2BookNumbersDOSEnglish[5] = { "First", "Second", "Third", "Fourth", "Fifth" }; static const StringListProvider kEoB2BookNumbersDOSEnglishProvider = { ARRAYSIZE(kEoB2BookNumbersDOSEnglish), kEoB2BookNumbersDOSEnglish }; static const char *const kEoB2MageSpellsListDOSEnglish[33] = { "", "Armor", "Burning Hands", "Detect Magic", "Magic Missile", "Shield", "Shocking Grasp", "Blur", "Detect Invisible", "Imp Identify", "Invisibility", "M's Acid Arrow", "Dispel Magic", "Fireball", "Haste", "Hold Person", "Invisibility 10'", "Lightning Bolt", "Vampiric Touch", "Fear", "Ice Storm", "Imp Invisibility", "Remove Curse", "Cone of Cold", "Hold Monster", "Wall of Force", "Disintegrate", "Flesh to Stone", "Stone to Flesh", "True Seeing", "Finger of Death", "Power Word Stun", "Bigby's Fist" }; static const StringListProvider kEoB2MageSpellsListDOSEnglishProvider = { ARRAYSIZE(kEoB2MageSpellsListDOSEnglish), kEoB2MageSpellsListDOSEnglish }; static const char *const kEoB2ClericSpellsListDOSEnglish[30] = { "", "Bless", "Cause Light Wnds", "Cure Light Wnds", "Detect Magic", "Protect-Evil", "Aid", "Flame Blade", "Hold Person", "Slow Poison", "Create Food", "Dispel Magic", "Magical Vestment", "Prayer", "Remove Paralysis", "Cause Serious", "Cure Serious", "Neutral-Poison", "Protect-Evil 10'", "Cause Critical", "Cure Critical", "Flame Strike", "Raise Dead", "Slay Living", "True Seeing", "Harm", "Heal", "Ressurection", "Lay on Hands", "Turn undead" }; static const StringListProvider kEoB2ClericSpellsListDOSEnglishProvider = { ARRAYSIZE(kEoB2ClericSpellsListDOSEnglish), kEoB2ClericSpellsListDOSEnglish }; static const char *const kEoB2SpellNamesDOSEnglish[68] = { "armor", "burning hands", "detect magic", "magic missile", "shield", "shocking grasp", "blur", "detect invisibility", "improved identify", "invisibility", "melf's acid arrow", "dispel magic", "fireball", "haste", "Hold Person", "invisibility 10' radius", "lightning bolt", "vampiric touch", "fear", "ice storm", "improved invisibility", "remove curse", "cone of cold", "hold monster", "wall of force", "disintegrate", "flesh to stone", "stone to flesh", "true seeing", "finger of death", "power word stun", "bigby's clenched fist", "bless", "cause light wounds", "cure light wounds", "detect magic", "protection from evil", "aid", "flame blade", "hold person", "slow poison", "create food", "dispel magic", "magical vestment", "prayer", "remove paralysis", "cause serious wounds", "cure serious wounds", "neutralize poison", "protection from evil 10' radius", "cause critical wounds", "cure critical wounds", "flame strike", "raise dead", "slay living", "true seeing", "harm", "heal", "ressurection", "lay on hands", "turn undead", "", "mystic defense", "", "", "", "", "" }; static const StringListProvider kEoB2SpellNamesDOSEnglishProvider = { ARRAYSIZE(kEoB2SpellNamesDOSEnglish), kEoB2SpellNamesDOSEnglish }; static const char *const kEoB2MagicStrings1DOSEnglish[6] = { "ABORT SPELL", "ABORT SPELL", "You must have a free hand for this spell.\r", "You can't have two of this spell type active.\r", "%s casts %s.\r", "\rok\r" }; static const StringListProvider kEoB2MagicStrings1DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings1DOSEnglish), kEoB2MagicStrings1DOSEnglish }; static const char *const kEoB2MagicStrings2DOSEnglish[5] = { "The spell fails!\r", "%s has been disintegrated!\r", "\x06\x06""The party has been hit by a death spell!\r", "\x06\x06""%s has been hit by cause serious wounds.\r", "PETRIFIED" }; static const StringListProvider kEoB2MagicStrings2DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings2DOSEnglish), kEoB2MagicStrings2DOSEnglish }; static const char *const kEoB2MagicStrings3DOSEnglish[5] = { "Cast spell on which character? ", "\rSpell aborted.\r", "%s's %s spell expires.\r", "%s missed the monster.\r", "%s must be in the front ranks to hit!\r" }; static const StringListProvider kEoB2MagicStrings3DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings3DOSEnglish), kEoB2MagicStrings3DOSEnglish }; static const char *const kEoB2MagicStrings4DOSEnglish[1] = { "no effect.\r" }; static const StringListProvider kEoB2MagicStrings4DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings4DOSEnglish), kEoB2MagicStrings4DOSEnglish }; static const char *const kEoB2MagicStrings6DOSEnglish[1] = { "%s already has an armor class better than AC 6." }; static const StringListProvider kEoB2MagicStrings6DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings6DOSEnglish), kEoB2MagicStrings6DOSEnglish }; static const char *const kEoB2MagicStrings7DOSEnglish[2] = { "%s is already under the effect of a %s spell.\r", "The party is already under the effect of a %s spell.\r" }; static const StringListProvider kEoB2MagicStrings7DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings7DOSEnglish), kEoB2MagicStrings7DOSEnglish }; static const char *const kEoB2MagicStrings8DOSEnglish[6] = { "The spell fails!\r", "held", "The spell fails!\r", "The spell fails\r", "No monster within reach!\r", "%s is already under the effect of an aid spell.\r" }; static const StringListProvider kEoB2MagicStrings8DOSEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings8DOSEnglish), kEoB2MagicStrings8DOSEnglish }; static const byte kEoB2ManDefDOSEnglish[200] = { 0x09, 0x03, 0x04, 0x00, 0x09, 0x0D, 0x02, 0x00, 0x09, 0x07, 0x07, 0x00, 0x14, 0x06, 0x05, 0x00, 0x14, 0x10, 0x06, 0x00, 0x14, 0x1C, 0x03, 0x00, 0x1A, 0x04, 0x06, 0x00, 0x1A, 0x0A, 0x05, 0x00, 0x1A, 0x0C, 0x05, 0x00, 0x15, 0x03, 0x04, 0x00, 0x15, 0x05, 0x05, 0x00, 0x15, 0x0F, 0x02, 0x00, 0x15, 0x14, 0x03, 0x00, 0x15, 0x1B, 0x02, 0x00, 0x15, 0x1D, 0x03, 0x00, 0x23, 0x01, 0x03, 0x00, 0x23, 0x03, 0x03, 0x00, 0x23, 0x08, 0x03, 0x00, 0x23, 0x19, 0x02, 0x00, 0x23, 0x1F, 0x04, 0x00, 0x23, 0x26, 0x04, 0x00, 0x26, 0x03, 0x02, 0x00, 0x26, 0x05, 0x06, 0x00, 0x26, 0x12, 0x03, 0x00, 0x26, 0x18, 0x01, 0x00, 0x26, 0x1E, 0x01, 0x00, 0x26, 0x21, 0x04, 0x00, 0x17, 0x01, 0x03, 0x00, 0x17, 0x03, 0x06, 0x00, 0x17, 0x06, 0x02, 0x00, 0x17, 0x0F, 0x05, 0x00, 0x17, 0x1B, 0x01, 0x00, 0x17, 0x21, 0x06, 0x00, 0x12, 0x03, 0x02, 0x00, 0x12, 0x05, 0x04, 0x00, 0x12, 0x09, 0x02, 0x00, 0x12, 0x0B, 0x04, 0x00, 0x12, 0x0D, 0x06, 0x00, 0x12, 0x0F, 0x03, 0x00, 0x12, 0x11, 0x05, 0x00, 0x12, 0x12, 0x02, 0x00, 0x1F, 0x02, 0x04, 0x00, 0x1F, 0x02, 0x07, 0x00, 0x1F, 0x04, 0x03, 0x00, 0x1F, 0x06, 0x03, 0x00, 0x1F, 0x09, 0x03, 0x00, 0x1F, 0x0A, 0x01, 0x00, 0x1C, 0x03, 0x03, 0x00, 0x1C, 0x04, 0x02, 0x00, 0x1C, 0x05, 0x06, 0x00 }; static const ByteProvider kEoB2ManDefDOSEnglishProvider = { ARRAYSIZE(kEoB2ManDefDOSEnglish), kEoB2ManDefDOSEnglish }; static const char *const kEoB2ManWordDOSEnglish[51] = { "cursor", "majority", "right", "unusable", "greyed", "thrown", "spellcasters", "button", "characters", "carefree", "practical", "inherit", "while", "combinations", "charm", "individuals", "gestures", "pummel", "paladins", "skill", "advancement", "also", "counters", "knowledge", "greater", "assume", "several", "laying", "reach", "swiftly", "allows", "limited", "jack", "thrown", "weapons", "note", "certain", "damage", "done", "bonus", "may", "over", "box", "put", "portrait", "backpack", "inside", "causes", "until", "outright", "" }; static const StringListProvider kEoB2ManWordDOSEnglishProvider = { ARRAYSIZE(kEoB2ManWordDOSEnglish), kEoB2ManWordDOSEnglish }; static const char *const kEoB2ManPromptDOSEnglish[1] = { "\r\r\r\rOn the page with this symbol...\r\rFind line %d\rEnter word %d\r" }; static const StringListProvider kEoB2ManPromptDOSEnglishProvider = { ARRAYSIZE(kEoB2ManPromptDOSEnglish), kEoB2ManPromptDOSEnglish }; static const char *const kEoB2MainMenuStringsDOSEnglish[5] = { "LOAD GAME IN PROGRESS\r", "START A NEW PARTY\r", "TRANSFER EOB I PARTY\r", "RUN INTRODUCTION\r", "EXIT TO DOS\r" }; static const StringListProvider kEoB2MainMenuStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MainMenuStringsDOSEnglish), kEoB2MainMenuStringsDOSEnglish }; static const char *const kEoB2TransferStrings1DOSEnglish[2] = { "Level: %d", " / %d" }; static const StringListProvider kEoB2TransferStrings1DOSEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings1DOSEnglish), kEoB2TransferStrings1DOSEnglish }; static const char *const kEoB2TransferStrings2DOSEnglish[2] = { "You may only take four characters on your adventure.", "Select OK when you are finished choosing your party." }; static const StringListProvider kEoB2TransferStrings2DOSEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings2DOSEnglish), kEoB2TransferStrings2DOSEnglish }; static const char *const kEoB2TransferLabelsDOSEnglish[2] = { "CANCEL", "OK" }; static const StringListProvider kEoB2TransferLabelsDOSEnglishProvider = { ARRAYSIZE(kEoB2TransferLabelsDOSEnglish), kEoB2TransferLabelsDOSEnglish }; static const char *const kEoB2IntroStringsDOSEnglish[20] = { "You were settling in for an evening \rby the fire.", "Then a note was slipped to you.", "It was from your friend Khelben \rBlackstaff, Archmage of the city.", "The message was urgent.", "What could Khelben want?", "Welcome, please come in.", "Khelben awaits you in his study.", "Thank you for coming so quickly.", "I am troubled my friend.", "Ancient Evil stirs in the \rTemple Darkmoon.", "I fear for the safety of our city.", "I need your help.", "Three nights ago \rI sent forth a scout.", "She has not yet returned.", "I fear for her safety.", "Take this coin.", "I will use it to contact you.", "You must act quickly.", "I will teleport you near Darkmoon.", "May luck be with you, my friend." }; static const StringListProvider kEoB2IntroStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2IntroStringsDOSEnglish), kEoB2IntroStringsDOSEnglish }; static const char *const kEoB2IntroCPSFilesDOSEnglish[13] = { "STREET1.CPS", "STREET2.CPS", "DOORWAY1.CPS", "DOORWAY2.CPS", "WESTWOOD.CPS", "WINDING.CPS", "KHELBAN2.CPS", "KHELBAN1.CPS", "KHELBAN3.CPS", "KHELBAN4.CPS", "COIN.CPS", "KHELBAN5.CPS", "KHELBAN6.CPS" }; static const StringListProvider kEoB2IntroCPSFilesDOSEnglishProvider = { ARRAYSIZE(kEoB2IntroCPSFilesDOSEnglish), kEoB2IntroCPSFilesDOSEnglish }; static const char *const kEoB2FinaleStringsDOSEnglish[20] = { "Finally, Dran has been defeated.", "Suddenly, your friend Khelben appears.", "Greetings, my victorious friends.", "You have defeated Dran!", "I did not know Dran was a dragon.", "He must have been over 300 years old!", "His power is gone.", "But Darkmoon is still a source\rof great evil.", "And many of his minions remain.", "Now we must leave this place.", "So my forces can destroy it\ronce and for all.", "Follow me.", "Powerful mages stand ready\rfor the final assault\ron Darkmoon.", "The Temple's evil is very strong.", "It must not be allowed to survive!", "The Temple ceases to exist.", "My friends, our work is done.", "Thank you.", "You have earned my deepest respect.", "We will remember you always." }; static const StringListProvider kEoB2FinaleStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2FinaleStringsDOSEnglish), kEoB2FinaleStringsDOSEnglish }; static const byte kEoB2CreditsDataDOSEnglish[2316] = { 0x02, 0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x10, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x03, 0x0D, 0x02, 0x04, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x06, 0x0D, 0x0D, 0x0D, 0x02, 0x01, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x3A, 0x20, 0x42, 0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2E, 0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x4F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x20, 0x43, 0x6F, 0x6E, 0x63, 0x65, 0x70, 0x74, 0x3A, 0x20, 0x50, 0x68, 0x69, 0x6C, 0x69, 0x70, 0x20, 0x57, 0x2E, 0x20, 0x47, 0x6F, 0x72, 0x72, 0x6F, 0x77, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2E, 0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x61, 0x6D, 0x65, 0x20, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6E, 0x3A, 0x20, 0x42, 0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2E, 0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x75, 0x6C, 0x20, 0x53, 0x2E, 0x20, 0x4D, 0x75, 0x64, 0x72, 0x61, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x69, 0x6C, 0x6C, 0x20, 0x53, 0x74, 0x6F, 0x6B, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x4C, 0x65, 0x61, 0x64, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x3A, 0x20, 0x50, 0x68, 0x69, 0x6C, 0x69, 0x70, 0x20, 0x57, 0x2E, 0x20, 0x47, 0x6F, 0x72, 0x72, 0x6F, 0x77, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x4C, 0x65, 0x76, 0x65, 0x6C, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x3A, 0x20, 0x42, 0x69, 0x6C, 0x6C, 0x20, 0x53, 0x74, 0x6F, 0x6B, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x41, 0x6D, 0x69, 0x67, 0x61, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x3A, 0x20, 0x42, 0x69, 0x6C, 0x6C, 0x20, 0x53, 0x74, 0x6F, 0x6B, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x49, 0x6E, 0x74, 0x72, 0x6F, 0x20, 0x26, 0x20, 0x46, 0x69, 0x6E, 0x61, 0x6C, 0x65, 0x20, 0x62, 0x79, 0x3A, 0x20, 0x4A, 0x6F, 0x65, 0x20, 0x42, 0x6F, 0x73, 0x74, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x41, 0x72, 0x74, 0x20, 0x26, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x3A, 0x20, 0x52, 0x69, 0x63, 0x6B, 0x20, 0x50, 0x61, 0x72, 0x6B, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x61, 0x72, 0x6F, 0x6E, 0x20, 0x50, 0x6F, 0x77, 0x65, 0x6C, 0x6C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4A, 0x6F, 0x73, 0x65, 0x70, 0x68, 0x20, 0x48, 0x65, 0x77, 0x69, 0x74, 0x74, 0x20, 0x49, 0x56, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6E, 0x20, 0x4F, 0x6C, 0x73, 0x65, 0x6E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4C, 0x6F, 0x75, 0x69, 0x73, 0x65, 0x20, 0x53, 0x61, 0x6E, 0x64, 0x6F, 0x76, 0x61, 0x6C, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4A, 0x75, 0x64, 0x69, 0x74, 0x68, 0x20, 0x50, 0x65, 0x74, 0x65, 0x72, 0x73, 0x6F, 0x6E, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4D, 0x75, 0x73, 0x69, 0x63, 0x3A, 0x20, 0x46, 0x72, 0x61, 0x6E, 0x6B, 0x20, 0x4B, 0x6C, 0x65, 0x70, 0x61, 0x63, 0x6B, 0x69, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x3A, 0x20, 0x50, 0x61, 0x75, 0x6C, 0x20, 0x53, 0x2E, 0x20, 0x4D, 0x75, 0x64, 0x72, 0x61, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x77, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4F, 0x6B, 0x61, 0x68, 0x61, 0x72, 0x61, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x3A, 0x20, 0x4D, 0x61, 0x72, 0x63, 0x20, 0x43, 0x72, 0x61, 0x6D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x51, 0x75, 0x61, 0x6C, 0x69, 0x74, 0x79, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6E, 0x63, 0x65, 0x3A, 0x20, 0x47, 0x6C, 0x65, 0x6E, 0x6E, 0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6C, 0x20, 0x54, 0x68, 0x61, 0x6E, 0x6B, 0x73, 0x20, 0x74, 0x6F, 0x0D, 0x0D, 0x0D, 0x43, 0x68, 0x75, 0x63, 0x6B, 0x20, 0x4B, 0x72, 0x6F, 0x65, 0x67, 0x65, 0x6C, 0x0D, 0x0D, 0x58, 0x61, 0x6E, 0x61, 0x74, 0x68, 0x61, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x65, 0x68, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x0D, 0x0D, 0x61, 0x6E, 0x64, 0x0D, 0x0D, 0x4D, 0x69, 0x6B, 0x65, 0x27, 0x73, 0x20, 0x63, 0x61, 0x74, 0x2C, 0x20, 0x53, 0x70, 0x61, 0x72, 0x6B, 0x79, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x62, 0x79, 0x0D, 0x0D, 0x02, 0x02, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x65, 0x72, 0x73, 0x3A, 0x20, 0x44, 0x61, 0x6E, 0x20, 0x43, 0x65, 0x72, 0x6D, 0x61, 0x6B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6F, 0x72, 0x67, 0x65, 0x20, 0x4D, 0x61, 0x63, 0x44, 0x6F, 0x6E, 0x61, 0x6C, 0x64, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x47, 0x61, 0x6D, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x6D, 0x65, 0x6E, 0x74, 0x3A, 0x20, 0x4E, 0x69, 0x63, 0x68, 0x6F, 0x6C, 0x61, 0x73, 0x20, 0x42, 0x65, 0x6C, 0x69, 0x61, 0x65, 0x66, 0x66, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x61, 0x76, 0x69, 0x64, 0x20, 0x41, 0x2E, 0x20, 0x4C, 0x75, 0x63, 0x63, 0x61, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x6C, 0x61, 0x79, 0x20, 0x54, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x3A, 0x20, 0x50, 0x68, 0x69, 0x6C, 0x20, 0x41, 0x6C, 0x6E, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4A, 0x6F, 0x68, 0x6E, 0x20, 0x42, 0x6F, 0x6F, 0x63, 0x6B, 0x68, 0x6F, 0x6C, 0x64, 0x74, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x6C, 0x65, 0x6E, 0x20, 0x43, 0x75, 0x72, 0x65, 0x74, 0x6F, 0x6E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4D, 0x61, 0x72, 0x6B, 0x20, 0x48, 0x61, 0x6C, 0x6C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4C, 0x6F, 0x77, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x6F, 0x62, 0x65, 0x72, 0x74, 0x20, 0x4C, 0x75, 0x70, 0x6F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6C, 0x61, 0x6E, 0x20, 0x4D, 0x61, 0x72, 0x65, 0x6E, 0x63, 0x6F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4A, 0x61, 0x73, 0x6F, 0x6E, 0x20, 0x52, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4A, 0x65, 0x66, 0x66, 0x20, 0x53, 0x68, 0x6F, 0x74, 0x77, 0x65, 0x6C, 0x6C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6E, 0x64, 0x72, 0x65, 0x20, 0x56, 0x72, 0x69, 0x67, 0x6E, 0x61, 0x75, 0x64, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x68, 0x72, 0x69, 0x73, 0x20, 0x57, 0x61, 0x72, 0x73, 0x68, 0x61, 0x75, 0x65, 0x72, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x54, 0x53, 0x43, 0x53, 0x2C, 0x20, 0x49, 0x6E, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x3A, 0x20, 0x4B, 0x79, 0x6D, 0x20, 0x47, 0x6F, 0x79, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x43, 0x61, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x0D, 0x0D, 0x0D, 0x54, 0x68, 0x65, 0x20, 0x46, 0x6F, 0x72, 0x63, 0x65, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x44, 0x61, 0x72, 0x6B, 0x6E, 0x65, 0x73, 0x73, 0x0D, 0x0D, 0x0D, 0x44, 0x72, 0x61, 0x6E, 0x20, 0x44, 0x72, 0x61, 0x67, 0x67, 0x6F, 0x72, 0x65, 0x20, 0x28, 0x54, 0x68, 0x65, 0x20, 0x42, 0x69, 0x67, 0x20, 0x42, 0x61, 0x64, 0x20, 0x44, 0x72, 0x61, 0x67, 0x6F, 0x6E, 0x29, 0x0D, 0x0D, 0x4E, 0x61, 0x64, 0x69, 0x61, 0x20, 0x26, 0x20, 0x4A, 0x6F, 0x72, 0x69, 0x6C, 0x20, 0x28, 0x54, 0x68, 0x65, 0x20, 0x54, 0x77, 0x6F, 0x2D, 0x46, 0x61, 0x63, 0x65, 0x64, 0x20, 0x43, 0x6C, 0x65, 0x72, 0x69, 0x63, 0x73, 0x29, 0x0D, 0x0D, 0x44, 0x79, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x65, 0x72, 0x76, 0x61, 0x6E, 0x74, 0x20, 0x28, 0x44, 0x72, 0x61, 0x6E, 0x27, 0x73, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x48, 0x61, 0x6E, 0x64, 0x20, 0x4D, 0x61, 0x6E, 0x29, 0x0D, 0x0D, 0x54, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x43, 0x6C, 0x65, 0x72, 0x69, 0x63, 0x20, 0x28, 0x54, 0x68, 0x65, 0x20, 0x52, 0x65, 0x64, 0x20, 0x48, 0x65, 0x72, 0x72, 0x69, 0x6E, 0x67, 0x29, 0x0D, 0x0D, 0x4B, 0x69, 0x6E, 0x67, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x6F, 0x73, 0x74, 0x20, 0x47, 0x69, 0x61, 0x6E, 0x74, 0x73, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x54, 0x68, 0x65, 0x20, 0x46, 0x6F, 0x72, 0x63, 0x65, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x6F, 0x6F, 0x64, 0x0D, 0x0D, 0x0D, 0x4B, 0x68, 0x65, 0x6C, 0x62, 0x65, 0x6E, 0x20, 0x42, 0x6C, 0x61, 0x63, 0x6B, 0x73, 0x74, 0x61, 0x66, 0x66, 0x0D, 0x0D, 0x41, 0x6D, 0x62, 0x65, 0x72, 0x20, 0x28, 0x4B, 0x68, 0x65, 0x6C, 0x62, 0x65, 0x6E, 0x27, 0x73, 0x20, 0x53, 0x63, 0x6F, 0x75, 0x74, 0x29, 0x0D, 0x0D, 0x53, 0x68, 0x6F, 0x72, 0x6E, 0x20, 0x44, 0x69, 0x65, 0x72, 0x67, 0x61, 0x72, 0x20, 0x28, 0x50, 0x65, 0x73, 0x6B, 0x79, 0x20, 0x44, 0x77, 0x61, 0x72, 0x66, 0x29, 0x0D, 0x0D, 0x49, 0x6E, 0x73, 0x61, 0x6C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x68, 0x69, 0x65, 0x66, 0x20, 0x28, 0x54, 0x68, 0x65, 0x20, 0x4E, 0x75, 0x69, 0x73, 0x61, 0x6E, 0x63, 0x65, 0x29, 0x0D, 0x0D, 0x43, 0x61, 0x6C, 0x61, 0x6E, 0x64, 0x72, 0x61, 0x20, 0x28, 0x49, 0x72, 0x61, 0x27, 0x73, 0x20, 0x4C, 0x6F, 0x73, 0x74, 0x20, 0x53, 0x69, 0x73, 0x74, 0x65, 0x72, 0x29, 0x0D, 0x0D, 0x41, 0x6C, 0x61, 0x69, 0x6E, 0x20, 0x28, 0x54, 0x68, 0x65, 0x20, 0x41, 0x6E, 0x63, 0x69, 0x65, 0x6E, 0x74, 0x20, 0x4F, 0x6E, 0x65, 0x29, 0x0D, 0x0D, 0x53, 0x61, 0x6E, 0x2D, 0x52, 0x61, 0x61, 0x6C, 0x20, 0x28, 0x44, 0x72, 0x6F, 0x77, 0x20, 0x4D, 0x61, 0x67, 0x65, 0x29, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x01, 0x41, 0x6E, 0x79, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x61, 0x6D, 0x65, 0x20, 0x77, 0x68, 0x6F, 0x20, 0x62, 0x65, 0x61, 0x72, 0x0D, 0x01, 0x72, 0x65, 0x73, 0x65, 0x6D, 0x62, 0x6C, 0x61, 0x6E, 0x63, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6F, 0x6E, 0x73, 0x20, 0x6C, 0x69, 0x76, 0x69, 0x6E, 0x67, 0x20, 0x6F, 0x72, 0x0D, 0x01, 0x64, 0x65, 0x61, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x75, 0x72, 0x65, 0x6C, 0x79, 0x20, 0x63, 0x6F, 0x69, 0x6E, 0x63, 0x69, 0x64, 0x65, 0x6E, 0x74, 0x61, 0x6C, 0x2E, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x11, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x00 }; static const ByteProvider kEoB2CreditsDataDOSEnglishProvider = { ARRAYSIZE(kEoB2CreditsDataDOSEnglish), kEoB2CreditsDataDOSEnglish }; static const char *const kEoB2FinaleCPSFilesDOSEnglish[13] = { "DRAGON1.CPS", "DRAGON2.CPS", "HURRY1.CPS", "HURRY2.CPS", "DESTROY0.CPS", "DESTROY1.CPS", "DESTROY2.CPS", "MAGIC.CPS", "DESTROY3.CPS", "CREDITS2.CPS", "CREDITS3.CPS", "HEROES.CPS", "THANKS.CPS" }; static const StringListProvider kEoB2FinaleCPSFilesDOSEnglishProvider = { ARRAYSIZE(kEoB2FinaleCPSFilesDOSEnglish), kEoB2FinaleCPSFilesDOSEnglish }; static const char *const kEoB2MonsterDistAttStringsDOSEnglish[5] = { "The party is hit with a psychic mind blast!\r", "paralyzed", "poisoned", "paralyzed", "PETRIFIED" }; static const StringListProvider kEoB2MonsterDistAttStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MonsterDistAttStringsDOSEnglish), kEoB2MonsterDistAttStringsDOSEnglish }; static const char *const kEoB2Npc1StringsDOSEnglish[2] = { "talk", "leave" }; static const StringListProvider kEoB2Npc1StringsDOSEnglishProvider = { ARRAYSIZE(kEoB2Npc1StringsDOSEnglish), kEoB2Npc1StringsDOSEnglish }; static const char *const kEoB2Npc2StringsDOSEnglish[2] = { "release him", "leave" }; static const StringListProvider kEoB2Npc2StringsDOSEnglishProvider = { ARRAYSIZE(kEoB2Npc2StringsDOSEnglish), kEoB2Npc2StringsDOSEnglish }; static const char *const kEoB2MonsterDustStringsDOSEnglish[1] = { "The monster crumbles to dust!\r" }; static const StringListProvider kEoB2MonsterDustStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2MonsterDustStringsDOSEnglish), kEoB2MonsterDustStringsDOSEnglish }; static const char *const kEoB2KheldranStringsDOSEnglish[1] = { " Such trusting whelps!" }; static const StringListProvider kEoB2KheldranStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2KheldranStringsDOSEnglish), kEoB2KheldranStringsDOSEnglish }; static const char *const kEoB2HornStringsDOSEnglish[4] = { "A bellowing sound comes from the horn.\r", "A hollow sound comes from the horn.\r", "A melodious sound comes from the horn.\r", "An eerie sound comes from the horn.\r" }; static const StringListProvider kEoB2HornStringsDOSEnglishProvider = { ARRAYSIZE(kEoB2HornStringsDOSEnglish), kEoB2HornStringsDOSEnglish };