diff options
20 files changed, 4543 insertions, 19 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index 99e36cf317..0c43b4fcda 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -45,7 +45,7 @@ enum { - kKyraDatVersion = 92 + kKyraDatVersion = 93 }; const ExtractFilename extractFilenames[] = { @@ -379,6 +379,7 @@ const ExtractFilename extractFilenames[] = { { kEoBBaseMagicStrings6, kStringList, true }, { kEoBBaseMagicStrings7, kStringList, true }, { kEoBBaseMagicStrings8, kStringList, true }, + { kEoBBaseMagicStrings9, kStringList, true }, { kEoBBaseExpObjectTlMode, kRawData, false }, { kEoBBaseExpObjectTblIndex, kRawData, false }, @@ -409,7 +410,14 @@ const ExtractFilename extractFilenames[] = { { kEoBBaseConeOfColdDest4, kRawData, false }, { kEoBBaseConeOfColdGfxTbl, kRawData, false }, + { kEoBBaseSoundMap, kStringList, false }, + { kEoBBaseSoundFilesIntro, kStringList, false }, + { kEoBBaseSoundFilesIngame, kStringList, false }, + { kEoBBaseSoundFilesFinale, kStringList, false }, + // EYE OF THE BEHOLDER I + { kEoB1LevelSoundFiles1, kStringList, false }, + { kEoB1LevelSoundFiles2, kStringList, false }, { kEoB1MainMenuStrings, kStringList, true }, { kEoB1BonusStrings, kStringList, true }, @@ -433,7 +441,14 @@ const ExtractFilename extractFilenames[] = { { kEoB1IntroTvlY2, kRawData, false }, { kEoB1IntroTvlW, kRawData, false }, { kEoB1IntroTvlH, kRawData, false }, - + { kEoB1IntroOrbFadePal, kRawData, false }, + { kEoB1FinaleCouncilAnim1, kRawData, false }, + { kEoB1FinaleCouncilAnim2, kRawData, false }, + { kEoB1FinaleCouncilAnim3, kRawData, false }, + { kEoB1FinaleCouncilAnim4, kRawData, false }, + { kEoB1FinaleEyesAnim, kRawData, false }, + { kEoB1FinaleHandsAnim, kRawDataBe16, false }, + { kEoB1FinaleTextDuration, kRawData, false }, { kEoB1DoorShapeDefs, kRawData, false }, { kEoB1DoorSwitchShapeDefs, kRawData, false }, { kEoB1DoorSwitchCoords, kRawData, false }, diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index cb70f25928..a37fab34f4 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -382,6 +382,7 @@ enum kExtractID { kEoBBaseMagicStrings6, kEoBBaseMagicStrings7, kEoBBaseMagicStrings8, + kEoBBaseMagicStrings9, kEoBBaseExpObjectTlMode, kEoBBaseExpObjectTblIndex, @@ -413,6 +414,13 @@ enum kExtractID { kEoBBaseConeOfColdDest4, kEoBBaseConeOfColdGfxTbl, + kEoBBaseSoundMap, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + + kEoB1LevelSoundFiles1, + kEoB1LevelSoundFiles2, kEoB1MainMenuStrings, kEoB1BonusStrings, @@ -436,6 +444,15 @@ enum kExtractID { kEoB1IntroTvlY2, kEoB1IntroTvlW, kEoB1IntroTvlH, + kEoB1IntroOrbFadePal, + + kEoB1FinaleCouncilAnim1, + kEoB1FinaleCouncilAnim2, + kEoB1FinaleCouncilAnim3, + kEoB1FinaleCouncilAnim4, + kEoB1FinaleEyesAnim, + kEoB1FinaleHandsAnim, + kEoB1FinaleTextDuration, kEoB1DoorShapeDefs, kEoB1DoorSwitchShapeDefs, diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index 077b570e98..9457416333 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -101,6 +101,9 @@ const Game eob1Games[] = { { kEoB1, kPlatformDOS, kNoSpecial, DE_DEU }, { kEoB1, kPlatformDOS, kNoSpecial, IT_ITA }, + { kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY }, + { kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU }, + //{ kEoB1, kPlatformPC98, kNoSpecial, JA_JPN }, GAME_DUMMY_ENTRY @@ -110,6 +113,9 @@ const Game eob2Games[] = { { kEoB2, kPlatformDOS, kNoSpecial, EN_ANY }, { kEoB2, kPlatformDOS, kNoSpecial, DE_DEU }, + //{ kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY }, + //{ kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU }, + //{ kEoB2, kPlatformPC98, kNoSpecial, JA_JPN }, { kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN }, @@ -1414,6 +1420,295 @@ const int eob1FloppyNeed[] = { kEoBBaseMonsterDistAttStrings, kEoBBaseEncodeMonsterDefs, kEoBBaseNpcPresets, + + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + + -1 +}; + +const int eob1AmigaNeed[] = { + kEoBBaseChargenStrings1, + kEoBBaseChargenStrings2, + kEoBBaseChargenStartLevels, + kEoBBaseChargenStatStrings, + kEoBBaseChargenRaceSexStrings, + kEoBBaseChargenClassStrings, + kEoBBaseChargenAlignmentStrings, + kEoBBaseChargenEnterGameStrings, + kEoBBaseChargenClassMinStats, + kEoBBaseChargenRaceMinStats, + kEoBBaseChargenRaceMaxStats, + + kEoBBaseSaveThrowTable1, + kEoBBaseSaveThrowTable2, + kEoBBaseSaveThrowTable3, + kEoBBaseSaveThrowTable4, + kEoBBaseSaveThrwLvlIndex, + kEoBBaseSaveThrwModDiv, + kEoBBaseSaveThrwModExt, + + kEoB1MainMenuStrings, + kEoB1BonusStrings, + + kEoB1IntroFilesOpening, + kEoB1IntroFilesTower, + kEoB1IntroFilesOrb, + kEoB1IntroFilesWdEntry, + kEoB1IntroFilesKing, + kEoB1IntroFilesHands, + kEoB1IntroFilesWdExit, + kEoB1IntroFilesTunnel, + kEoB1IntroOpeningFrmDelay, + kEoB1IntroWdEncodeX, + kEoB1IntroWdEncodeY, + kEoB1IntroWdEncodeWH, + kEoB1IntroWdDsX, + kEoB1IntroWdDsY, + kEoB1IntroTvlX1, + kEoB1IntroTvlY1, + kEoB1IntroTvlX2, + kEoB1IntroTvlY2, + kEoB1IntroTvlW, + kEoB1IntroTvlH, + kEoB1IntroOrbFadePal, + + kEoB1FinaleCouncilAnim1, + kEoB1FinaleCouncilAnim2, + kEoB1FinaleCouncilAnim3, + kEoB1FinaleCouncilAnim4, + kEoB1FinaleEyesAnim, + kEoB1FinaleHandsAnim, + kEoB1FinaleTextDuration, + + kEoB1DoorShapeDefs, + kEoB1DoorSwitchShapeDefs, + kEoB1DoorSwitchCoords, + kEoB1MonsterProperties, + kEoB1EnemyMageSpellList, + kEoB1EnemyMageSfx, + kEoB1BeholderSpellList, + kEoB1BeholderSfx, + kEoB1TurnUndeadString, + + kEoB1NpcShpData, + kEoB1NpcSubShpIndex1, + kEoB1NpcSubShpIndex2, + kEoB1NpcSubShpY, + kEoB1Npc0Strings, + kEoB1Npc11Strings, + kEoB1Npc12Strings, + kEoB1Npc21Strings, + kEoB1Npc22Strings, + kEoB1Npc31Strings, + kEoB1Npc32Strings, + kEoB1Npc4Strings, + kEoB1Npc5Strings, + kEoB1Npc6Strings, + kEoB1Npc7Strings, + + kEoBBasePryDoorStrings, + kEoBBaseWarningStrings, + + kEoBBaseItemSuffixStringsRings, + kEoBBaseItemSuffixStringsPotions, + kEoBBaseItemSuffixStringsWands, + + kEoBBaseRipItemStrings, + kEoBBaseCursedString, + kEoBBaseEnchantedString, + kEoBBaseMagicObjectStrings, + kEoBBaseMagicObjectString5, + kEoBBasePatternSuffix, + kEoBBasePatternGrFix1, + kEoBBasePatternGrFix2, + kEoBBaseValidateArmorString, + kEoBBaseValidateNoDropString, + kEoBBasePotionStrings, + kEoBBaseWandStrings, + kEoBBaseItemMisuseStrings, + + kEoBBaseTakenStrings, + kEoBBasePotionEffectStrings, + + kEoBBaseYesNoStrings, + kRpgCommonMoreStrings, + kEoBBaseNpcMaxStrings, + kEoBBaseNpcJoinStrings, + kEoBBaseCancelStrings, + + kEoBBaseMenuStringsMain, + kEoBBaseMenuStringsSaveLoad, + kEoBBaseMenuStringsOnOff, + kEoBBaseMenuStringsSpells, + kEoBBaseMenuStringsRest, + kEoBBaseMenuStringsDrop, + kEoBBaseMenuStringsExit, + kEoBBaseMenuStringsStarve, + kEoBBaseMenuStringsScribe, + kEoBBaseMenuStringsDrop2, + kEoBBaseMenuStringsHead, + kEoBBaseMenuStringsPoison, + kEoBBaseMenuStringsMgc, + kEoBBaseMenuStringsPrefs, + kEoBBaseMenuStringsRest2, + kEoBBaseMenuStringsRest4, + kEoBBaseMenuStringsDefeat, + kEoBBaseMenuYesNoStrings, + + kEoBBaseSpellLevelsMage, + kEoBBaseSpellLevelsCleric, + kEoBBaseNumSpellsCleric, + kEoBBaseNumSpellsWisAdj, + kEoBBaseNumSpellsPal, + kEoBBaseNumSpellsMage, + + kEoBBaseCharGuiStringsHp, + kEoBBaseCharGuiStringsWp1, + kEoBBaseCharGuiStringsWr, + kEoBBaseCharGuiStringsSt1, + kEoBBaseCharGuiStringsIn, + + kEoBBaseCharStatusStrings7, + kEoBBaseCharStatusStrings81, + kEoBBaseCharStatusStrings9, + kEoBBaseCharStatusStrings131, + + kEoBBaseLevelGainStrings, + kEoBBaseExperienceTable0, + kEoBBaseExperienceTable1, + kEoBBaseExperienceTable2, + kEoBBaseExperienceTable3, + kEoBBaseExperienceTable4, + + kEoBBaseBookNumbers, + kEoBBaseMageSpellsList, + kEoBBaseClericSpellsList, + kEoBBaseSpellNames, + kEoBBaseMagicStrings1, + kEoBBaseMagicStrings2, + kEoBBaseMagicStrings3, + kEoBBaseMagicStrings4, + kEoBBaseMagicStrings6, + kEoBBaseMagicStrings7, + kEoBBaseMagicStrings8, + kEoBBaseMagicStrings9, + + kEoBBaseExpObjectTblIndex, + kEoBBaseExpObjectShpStart, + kEoBBaseExpObjectTbl1, + kEoBBaseExpObjectTbl2, + kEoBBaseExpObjectTbl3, + kEoBBaseExpObjectY, + + kEoBBaseSparkDefSteps, + kEoBBaseSparkDefSubSteps, + kEoBBaseSparkDefShift, + kEoBBaseSparkDefAdd, + kEoBBaseSparkDefX, + kEoBBaseSparkDefY, + kEoBBaseSparkOfFlags1, + kEoBBaseSparkOfFlags2, + kEoBBaseSparkOfShift, + kEoBBaseSparkOfX, + kEoBBaseSparkOfY, + + kEoBBaseSpellProperties, + kEoBBaseMagicFlightProps, + kEoBBaseTurnUndeadEffect, + kEoBBaseBurningHandsDest, + kEoBBaseConeOfColdDest1, + kEoBBaseConeOfColdDest2, + kEoBBaseConeOfColdDest3, + kEoBBaseConeOfColdDest4, + kEoBBaseConeOfColdGfxTbl, + + kRpgCommonDscDoorShapeIndex, + kEoBBaseWllFlagPreset, + kEoBBaseDscShapeCoords, + kRpgCommonDscDoorScaleOffs, + kEoBBaseDscDoorScaleMult1, + kEoBBaseDscDoorScaleMult2, + kEoBBaseDscDoorScaleMult3, + kEoBBaseDscDoorScaleMult4, + kEoBBaseDscDoorScaleMult5, + kEoBBaseDscDoorScaleMult6, + kEoBBaseDscDoorXE, + kEoBBaseDscDoorY1, + kEoBBaseDscDoorY3, + kEoBBaseDscDoorY4, + kEoBBaseDscDoorY5, + kEoBBaseDscDoorY6, + kEoBBaseDscDoorY7, + kEoBBaseDscDoorCoordsExt, + kRpgCommonDscDoorFrameY1, + kRpgCommonDscDoorFrameY2, + kRpgCommonDscDoorFrameIndex1, + kRpgCommonDscDoorFrameIndex2, + + kEoBBaseDscItemPosIndex, + kEoBBaseDscItemShpX, + kEoBBaseDscItemScaleIndex, + kEoBBaseDscItemTileIndex, + kEoBBaseDscItemShapeMap, + kEoBBaseDscTelptrShpCoords, + + kEoBBasePortalSeqData, + kEoBBaseManDef, + kEoBBaseManWord, + kEoBBaseManPrompt, + + kEoBBaseDscMonsterFrmOffsTbl1, + kEoBBaseDscMonsterFrmOffsTbl2, + + kEoBBaseInvSlotX, + kEoBBaseInvSlotY, + kEoBBaseSlotValidationFlags, + + kEoBBaseProjectileWeaponTypes, + kEoBBaseWandTypes, + + kEoBBaseDrawObjPosIndex, + kEoBBaseFlightObjFlipIndex, + kEoBBaseFlightObjShpMap, + kEoBBaseFlightObjSclIndex, + + kRpgCommonDscShapeIndex, + kRpgCommonDscX, + kRpgCommonDscTileIndex, + kRpgCommonDscDimData1, + kRpgCommonDscDimData2, + kRpgCommonDscBlockMap, + kRpgCommonDscDimMap, + kRpgCommonDscBlockIndex, + + kEoBBaseClassModifierFlags, + + kEoBBaseMonsterStepTable01, + kEoBBaseMonsterStepTable2, + kEoBBaseMonsterStepTable3, + kEoBBaseMonsterCloseAttPosTable1, + kEoBBaseMonsterCloseAttPosTable21, + kEoBBaseMonsterCloseAttChkTable1, + kEoBBaseMonsterCloseAttChkTable2, + kEoBBaseMonsterCloseAttDstTable1, + kEoBBaseMonsterCloseAttDstTable2, + + kEoBBaseMonsterProximityTable, + kEoBBaseFindBlockMonstersTable, + kEoBBaseMonsterDirChangeTable, + kEoBBaseMonsterDistAttStrings, + kEoBBaseEncodeMonsterDefs, + kEoBBaseNpcPresets, + + kEoBBaseSoundMap, + kEoB1LevelSoundFiles1, + kEoB1LevelSoundFiles2, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + -1 }; @@ -1588,6 +1883,7 @@ const int eob1PC98Need[] = { kEoBBaseMagicStrings6, kEoBBaseMagicStrings7, kEoBBaseMagicStrings8, + //kEoBBaseMagicStrings9, kEoBBaseExpObjectTblIndex, kEoBBaseExpObjectShpStart, @@ -2020,6 +2316,9 @@ const int eob2FloppyNeed[] = { kRpgCommonDscDimMap, kRpgCommonDscBlockIndex, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesFinale, + -1 }; @@ -2344,6 +2643,9 @@ const int eob2PC98Need[] = { kRpgCommonDscDimMap, kRpgCommonDscBlockIndex, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesFinale, + -1 }; @@ -2901,6 +3203,9 @@ const int eob2FMTownsNeed[] = { kEoB2Ascii2SjisTables, kEoB2Ascii2SjisTables2, kEoB2SaveNamePatterns, + + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesFinale, kEoB2PcmSoundEffectsIngame, kEoB2PcmSoundEffectsIntro, kEoB2PcmSoundEffectsFinale, @@ -2954,13 +3259,12 @@ const GameNeed gameNeedTable[] = { { kLoL, kPlatformDOS, kTalkieVersion, lolCDNeed }, { kEoB1, kPlatformDOS, kNoSpecial, eob1FloppyNeed }, - + { kEoB1, kPlatformAmiga, kNoSpecial, eob1AmigaNeed }, //{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need }, { kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed }, - + //{ kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed }, //{ kEoB2, kPlatformPC98, kNoSpecial, eob2PC98Need }, - { kEoB2, kPlatformFMTowns, kNoSpecial, eob2FMTownsNeed }, { -1, -1, -1, 0 } diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp index 9b225bf2a9..4de1d41503 100644 --- a/devtools/create_kyradat/resources.cpp +++ b/devtools/create_kyradat/resources.cpp @@ -94,7 +94,9 @@ #include "resources/eob1_dos_english.h" #include "resources/eob1_dos_german.h" #include "resources/eob1_dos_italian.h" - +#include "resources/eob1_amiga.h" +#include "resources/eob1_amiga_english.h" +#include "resources/eob1_amiga_german.h" //#include "resources/eob1_pc98.h" //#include "resources/eob1_pc98_japanese.h" @@ -102,10 +104,11 @@ #include "resources/eob2_dos.h" #include "resources/eob2_dos_english.h" #include "resources/eob2_dos_german.h" - +//#include "resources/eob2_amiga.h" +//#include "resources/eob2_amiga_english.h" +//#include "resources/eob2_amiga_german.h" //#include "resources/eob2_pc98.h" //#include "resources/eob2_pc98_japanese.h" - #include "resources/eob2_fmtowns.h" #include "resources/eob2_fmtowns_japanese.h" @@ -1075,6 +1078,7 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMagicStrings6, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1MagicStrings6DOSEnglishProvider }, { kEoBBaseMagicStrings7, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1MagicStrings7DOSEnglishProvider }, { kEoBBaseMagicStrings8, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1MagicStrings8DOSEnglishProvider }, + //{ kEoBBaseMagicStrings9, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1MagicStrings9DOSEnglishProvider }, { kEoBBaseExpObjectTblIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTblIndexDOSProvider }, { kEoBBaseExpObjectShpStart, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1ExpObjectShpStartDOSProvider }, { kEoBBaseExpObjectTbl1, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl1DOSProvider }, @@ -1168,6 +1172,9 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1MonsterDistAttStringsDOSEnglishProvider }, { kEoBBaseEncodeMonsterDefs, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1EncodeMonsterDefsDOSProvider }, { kEoBBaseNpcPresets, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1NpcPresetsDOSProvider }, + { kEoBBaseSoundFilesIntro, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIntroDOSProvider }, + { kEoBBaseSoundFilesIngame, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIngameDOSProvider }, + { kEoBBaseSoundFilesFinale, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1SoundFilesFinaleDOSProvider }, { kEoBBaseChargenStrings1, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ChargenStrings1DOSGermanProvider }, { kEoBBaseChargenStrings2, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ChargenStrings2DOSGermanProvider }, { kEoBBaseChargenStatStrings, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ChargenStatStringsDOSGermanProvider }, @@ -1252,6 +1259,7 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMagicStrings6, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1MagicStrings6DOSGermanProvider }, { kEoBBaseMagicStrings7, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1MagicStrings7DOSGermanProvider }, { kEoBBaseMagicStrings8, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1MagicStrings8DOSGermanProvider }, + //{ kEoBBaseMagicStrings9, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1MagicStrings9DOSGermanProvider }, { kEoBBaseManDef, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ManDefDOSGermanProvider }, { kEoBBaseManWord, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ManWordDOSGermanProvider }, { kEoBBaseManPrompt, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ManPromptDOSGermanProvider }, @@ -1340,10 +1348,347 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMagicStrings6, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings6DOSItalianProvider }, { kEoBBaseMagicStrings7, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings7DOSItalianProvider }, { kEoBBaseMagicStrings8, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings8DOSItalianProvider }, + //{ kEoBBaseMagicStrings9, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings9DOSItalianProvider }, { kEoBBaseManDef, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManDefDOSItalianProvider }, { kEoBBaseManWord, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManWordDOSItalianProvider }, { kEoBBaseManPrompt, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManPromptDOSItalianProvider }, { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MonsterDistAttStringsDOSItalianProvider }, + { kEoBBaseChargenStrings1, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenStrings1AmigaEnglishProvider }, + { kEoBBaseChargenStrings2, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenStrings2AmigaEnglishProvider }, + { kEoBBaseChargenStartLevels, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ChargenStartLevelsAmigaProvider }, + { kEoBBaseChargenStatStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenStatStringsAmigaEnglishProvider }, + { kEoBBaseChargenRaceSexStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenRaceSexStringsAmigaEnglishProvider }, + { kEoBBaseChargenClassStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenClassStringsAmigaEnglishProvider }, + { kEoBBaseChargenAlignmentStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenAlignmentStringsAmigaEnglishProvider }, + { kEoBBaseChargenEnterGameStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ChargenEnterGameStringsAmigaEnglishProvider }, + { kEoBBaseChargenClassMinStats, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ChargenClassMinStatsAmigaProvider }, + { kEoBBaseChargenRaceMinStats, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ChargenRaceMinStatsAmigaProvider }, + { kEoBBaseChargenRaceMaxStats, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ChargenRaceMaxStatsAmigaProvider }, + { kEoBBaseSaveThrowTable1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable1AmigaProvider }, + { kEoBBaseSaveThrowTable2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable2AmigaProvider }, + { kEoBBaseSaveThrowTable3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable3AmigaProvider }, + { kEoBBaseSaveThrowTable4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrowTable4AmigaProvider }, + { kEoBBaseSaveThrwLvlIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrwLvlIndexAmigaProvider }, + { kEoBBaseSaveThrwModDiv, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrwModDivAmigaProvider }, + { kEoBBaseSaveThrwModExt, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SaveThrwModExtAmigaProvider }, + { kEoB1MainMenuStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MainMenuStringsAmigaEnglishProvider }, + { kEoB1BonusStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1BonusStringsAmigaEnglishProvider }, + { kEoB1IntroFilesOpening, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesOpeningAmigaProvider }, + { kEoB1IntroFilesTower, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesTowerAmigaProvider }, + { kEoB1IntroFilesOrb, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesOrbAmigaProvider }, + { kEoB1IntroFilesWdEntry, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesWdEntryAmigaProvider }, + { kEoB1IntroFilesKing, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesKingAmigaProvider }, + { kEoB1IntroFilesHands, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesHandsAmigaProvider }, + { kEoB1IntroFilesWdExit, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesWdExitAmigaProvider }, + { kEoB1IntroFilesTunnel, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroFilesTunnelAmigaProvider }, + { kEoB1IntroOpeningFrmDelay, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroOpeningFrmDelayAmigaProvider }, + { kEoB1IntroWdEncodeX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeXAmigaProvider }, + { kEoB1IntroWdEncodeY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeYAmigaProvider }, + { kEoB1IntroWdEncodeWH, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroWdEncodeWHAmigaProvider }, + { kEoB1IntroWdDsX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroWdDsXAmigaProvider }, + { kEoB1IntroWdDsY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroWdDsYAmigaProvider }, + { kEoB1IntroTvlX1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlX1AmigaProvider }, + { kEoB1IntroTvlY1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlY1AmigaProvider }, + { kEoB1IntroTvlX2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlX2AmigaProvider }, + { kEoB1IntroTvlY2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlY2AmigaProvider }, + { kEoB1IntroTvlW, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlWAmigaProvider }, + { kEoB1IntroTvlH, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroTvlHAmigaProvider }, + { kEoB1IntroOrbFadePal, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1IntroOrbFadePalAmigaProvider }, + { kEoB1FinaleCouncilAnim1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1CouncilAnimData1AmigaProvider }, + { kEoB1FinaleCouncilAnim2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1CouncilAnimData2AmigaProvider }, + { kEoB1FinaleCouncilAnim3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1CouncilAnimData3AmigaProvider }, + { kEoB1FinaleCouncilAnim4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1CouncilAnimData4AmigaProvider }, + { kEoB1FinaleEyesAnim, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EyesAnimDataAmigaProvider }, + { kEoB1FinaleHandsAnim, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1HandsAnimDataAmigaProvider }, + { kEoB1FinaleTextDuration, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1TextFrameDurationAmigaProvider }, + { kEoB1DoorShapeDefs, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DoorShapeDefsAmigaProvider }, + { kEoB1DoorSwitchShapeDefs, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DoorSwitchShapeDefsAmigaProvider }, + { kEoB1DoorSwitchCoords, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DoorSwitchCoordsAmigaProvider }, + { kEoB1MonsterProperties, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterPropertiesAmigaProvider }, + { kEoB1EnemyMageSpellList, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EnemyMageSpellListAmigaProvider }, + { kEoB1EnemyMageSfx, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EnemyMageSfxAmigaProvider }, + { kEoB1BeholderSpellList, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1BeholderSpellListAmigaProvider }, + { kEoB1BeholderSfx, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1BeholderSfxAmigaProvider }, + { kEoB1TurnUndeadString, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1TurnUndeadStringAmigaEnglishProvider }, + { kEoB1NpcShpData, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcShpDataAmigaProvider }, + { kEoB1NpcSubShpIndex1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpIndex1AmigaProvider }, + { kEoB1NpcSubShpIndex2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpIndex2AmigaProvider }, + { kEoB1NpcSubShpY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcSubShpYAmigaProvider }, + { kEoB1Npc0Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc0StringsAmigaEnglishProvider }, + { kEoB1Npc11Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc11StringsAmigaEnglishProvider }, + { kEoB1Npc12Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc12StringsAmigaEnglishProvider }, + { kEoB1Npc21Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc21StringsAmigaEnglishProvider }, + { kEoB1Npc22Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc22StringsAmigaEnglishProvider }, + { kEoB1Npc31Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc31StringsAmigaEnglishProvider }, + { kEoB1Npc32Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc32StringsAmigaEnglishProvider }, + { kEoB1Npc4Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc4StringsAmigaEnglishProvider }, + { kEoB1Npc5Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc5StringsAmigaEnglishProvider }, + { kEoB1Npc6Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc6StringsAmigaEnglishProvider }, + { kEoB1Npc7Strings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1Npc7StringsAmigaEnglishProvider }, + { kEoBBasePryDoorStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PryDoorStringsAmigaEnglishProvider }, + { kEoBBaseWarningStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1WarningStringsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsRings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ItemSuffixStringsRingsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsPotions, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ItemSuffixStringsPotionsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsWands, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ItemSuffixStringsWandsAmigaEnglishProvider }, + { kEoBBaseRipItemStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1RipItemStringsAmigaEnglishProvider }, + { kEoBBaseCursedString, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CursedStringAmigaEnglishProvider }, + { kEoBBaseEnchantedString, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EnchantedStringAmigaProvider }, + { kEoBBaseMagicObjectStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicObjectStringsAmigaEnglishProvider }, + { kEoBBaseMagicObjectString5, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicObjectString5AmigaEnglishProvider }, + { kEoBBasePatternSuffix, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PatternSuffixAmigaEnglishProvider }, + { kEoBBasePatternGrFix1, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PatternGrFix1AmigaEnglishProvider }, + { kEoBBasePatternGrFix2, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PatternGrFix2AmigaEnglishProvider }, + { kEoBBaseValidateArmorString, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ValidateArmorStringAmigaEnglishProvider }, + { kEoBBaseValidateNoDropString, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ValidateNoDropStringAmigaEnglishProvider }, + { kEoBBasePotionStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PotionStringsAmigaEnglishProvider }, + { kEoBBaseWandStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1WandStringsAmigaEnglishProvider }, + { kEoBBaseItemMisuseStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ItemMisuseStringsAmigaEnglishProvider }, + { kEoBBaseTakenStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1TakenStringsAmigaEnglishProvider }, + { kEoBBasePotionEffectStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1PotionEffectStringsAmigaEnglishProvider }, + { kEoBBaseYesNoStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1YesNoStringsAmigaEnglishProvider }, + { kRpgCommonMoreStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MoreStringsAmigaEnglishProvider }, + { kEoBBaseNpcMaxStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1NpcMaxStringsAmigaEnglishProvider }, + { kEoBBaseNpcJoinStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1NpcJoinStringsAmigaEnglishProvider }, + { kEoBBaseCancelStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CancelStringsAmigaEnglishProvider }, + { kEoBBaseMenuStringsMain, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsMainAmigaEnglishProvider }, + { kEoBBaseMenuStringsSaveLoad, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsSaveLoadAmigaEnglishProvider }, + { kEoBBaseMenuStringsOnOff, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsOnOffAmigaEnglishProvider }, + { kEoBBaseMenuStringsSpells, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsSpellsAmigaEnglishProvider }, + { kEoBBaseMenuStringsRest, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsRestAmigaEnglishProvider }, + { kEoBBaseMenuStringsDrop, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsDropAmigaEnglishProvider }, + { kEoBBaseMenuStringsExit, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsExitAmigaEnglishProvider }, + { kEoBBaseMenuStringsStarve, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsStarveAmigaEnglishProvider }, + { kEoBBaseMenuStringsScribe, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsScribeAmigaEnglishProvider }, + { kEoBBaseMenuStringsDrop2, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsDrop2AmigaEnglishProvider }, + { kEoBBaseMenuStringsHead, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsHeadAmigaEnglishProvider }, + { kEoBBaseMenuStringsPoison, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsPoisonAmigaEnglishProvider }, + { kEoBBaseMenuStringsMgc, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsMgcAmigaEnglishProvider }, + { kEoBBaseMenuStringsPrefs, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsPrefsAmigaEnglishProvider }, + { kEoBBaseMenuStringsRest2, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsRest2AmigaEnglishProvider }, + { kEoBBaseMenuStringsRest4, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsRest4AmigaEnglishProvider }, + { kEoBBaseMenuStringsDefeat, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuStringsDefeatAmigaEnglishProvider }, + { kEoBBaseMenuYesNoStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MenuYesNoStringsAmigaEnglishProvider }, + { kEoBBaseSpellLevelsMage, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SpellLevelsMageAmigaProvider }, + { kEoBBaseSpellLevelsCleric, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SpellLevelsClericAmigaProvider }, + { kEoBBaseNumSpellsCleric, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NumSpellsClericAmigaProvider }, + { kEoBBaseNumSpellsWisAdj, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NumSpellsWisAdjAmigaProvider }, + { kEoBBaseNumSpellsPal, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NumSpellsPalAmigaProvider }, + { kEoBBaseNumSpellsMage, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NumSpellsMageAmigaProvider }, + { kEoBBaseCharGuiStringsHp, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharGuiStringsHpAmigaEnglishProvider }, + { kEoBBaseCharGuiStringsWp1, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharGuiStringsWp1AmigaEnglishProvider }, + { kEoBBaseCharGuiStringsWr, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharGuiStringsWrAmigaEnglishProvider }, + { kEoBBaseCharGuiStringsSt1, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharGuiStringsSt1AmigaEnglishProvider }, + { kEoBBaseCharGuiStringsIn, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharGuiStringsInAmigaEnglishProvider }, + { kEoBBaseCharStatusStrings7, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharStatusStrings7AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings81, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharStatusStrings81AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings9, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharStatusStrings9AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings131, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1CharStatusStrings131AmigaEnglishProvider }, + { kEoBBaseLevelGainStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1LevelGainStringsAmigaEnglishProvider }, + { kEoBBaseExperienceTable0, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable0AmigaProvider }, + { kEoBBaseExperienceTable1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable1AmigaProvider }, + { kEoBBaseExperienceTable2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable2AmigaProvider }, + { kEoBBaseExperienceTable3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable3AmigaProvider }, + { kEoBBaseExperienceTable4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExperienceTable4AmigaProvider }, + { kEoBBaseBookNumbers, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1BookNumbersAmigaEnglishProvider }, + { kEoBBaseMageSpellsList, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MageSpellsListAmigaEnglishProvider }, + { kEoBBaseClericSpellsList, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ClericSpellsListAmigaEnglishProvider }, + { kEoBBaseSpellNames, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1SpellNamesAmigaEnglishProvider }, + { kEoBBaseMagicStrings1, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings1AmigaEnglishProvider }, + { kEoBBaseMagicStrings2, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings2AmigaEnglishProvider }, + { kEoBBaseMagicStrings3, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings3AmigaEnglishProvider }, + { kEoBBaseMagicStrings4, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings4AmigaEnglishProvider }, + { kEoBBaseMagicStrings6, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings6AmigaEnglishProvider }, + { kEoBBaseMagicStrings7, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings7AmigaEnglishProvider }, + { kEoBBaseMagicStrings8, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings8AmigaEnglishProvider }, + { kEoBBaseMagicStrings9, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MagicStrings9AmigaEnglishProvider }, + { kEoBBaseExpObjectTblIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTblIndexAmigaProvider }, + { kEoBBaseExpObjectShpStart, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectShpStartAmigaProvider }, + { kEoBBaseExpObjectTbl1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl1AmigaProvider }, + { kEoBBaseExpObjectTbl2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl2AmigaProvider }, + { kEoBBaseExpObjectTbl3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectTbl3AmigaProvider }, + { kEoBBaseExpObjectY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ExpObjectYAmigaProvider }, + { kEoBBaseSparkDefSteps, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefStepsAmigaProvider }, + { kEoBBaseSparkDefSubSteps, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefSubStepsAmigaProvider }, + { kEoBBaseSparkDefShift, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefShiftAmigaProvider }, + { kEoBBaseSparkDefAdd, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefAddAmigaProvider }, + { kEoBBaseSparkDefX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefXAmigaProvider }, + { kEoBBaseSparkDefY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkDefYAmigaProvider }, + { kEoBBaseSparkOfFlags1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkOfFlags1AmigaProvider }, + { kEoBBaseSparkOfFlags2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkOfFlags2AmigaProvider }, + { kEoBBaseSparkOfShift, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkOfShiftAmigaProvider }, + { kEoBBaseSparkOfX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkOfXAmigaProvider }, + { kEoBBaseSparkOfY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SparkOfYAmigaProvider }, + { kEoBBaseSpellProperties, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SpellPropertiesAmigaProvider }, + { kEoBBaseMagicFlightProps, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MagicFlightPropsAmigaProvider }, + { kEoBBaseTurnUndeadEffect, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1TurnUndeadEffectAmigaProvider }, + { kEoBBaseBurningHandsDest, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1BurningHandsDestAmigaProvider }, + { kEoBBaseConeOfColdDest1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest1AmigaProvider }, + { kEoBBaseConeOfColdDest2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest2AmigaProvider }, + { kEoBBaseConeOfColdDest3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest3AmigaProvider }, + { kEoBBaseConeOfColdDest4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdDest4AmigaProvider }, + { kEoBBaseConeOfColdGfxTbl, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ConeOfColdGfxTblAmigaProvider }, + { kRpgCommonDscDoorShapeIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorShapeIndexAmigaProvider }, + { kEoBBaseWllFlagPreset, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1WllFlagPresetAmigaProvider }, + { kEoBBaseDscShapeCoords, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscShapeCoordsAmigaProvider }, + { kRpgCommonDscDoorScaleOffs, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsAmigaProvider }, + { kEoBBaseDscDoorScaleMult1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult1AmigaProvider }, + { kEoBBaseDscDoorScaleMult2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult2AmigaProvider }, + { kEoBBaseDscDoorScaleMult3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult3AmigaProvider }, + { kEoBBaseDscDoorScaleMult4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult4AmigaProvider }, + { kEoBBaseDscDoorScaleMult5, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult5AmigaProvider }, + { kEoBBaseDscDoorScaleMult6, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult6AmigaProvider }, + { kEoBBaseDscDoorXE, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorXEAmigaProvider }, + { kEoBBaseDscDoorY1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY1AmigaProvider }, + { kEoBBaseDscDoorY3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY3AmigaProvider }, + { kEoBBaseDscDoorY4, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY4AmigaProvider }, + { kEoBBaseDscDoorY5, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY5AmigaProvider }, + { kEoBBaseDscDoorY6, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY6AmigaProvider }, + { kEoBBaseDscDoorY7, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorY7AmigaProvider }, + { kEoBBaseDscDoorCoordsExt, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorCoordsExtAmigaProvider }, + { kRpgCommonDscDoorFrameY1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameY1AmigaProvider }, + { kRpgCommonDscDoorFrameY2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameY2AmigaProvider }, + { kRpgCommonDscDoorFrameIndex1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameIndex1AmigaProvider }, + { kRpgCommonDscDoorFrameIndex2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDoorFrameIndex2AmigaProvider }, + { kEoBBaseDscItemPosIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscItemPosIndexAmigaProvider }, + { kEoBBaseDscItemShpX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscItemShpXAmigaProvider }, + { kEoBBaseDscItemScaleIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscItemScaleIndexAmigaProvider }, + { kEoBBaseDscItemTileIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscItemTileIndexAmigaProvider }, + { kEoBBaseDscItemShapeMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscItemShapeMapAmigaProvider }, + { kEoBBaseDscTelptrShpCoords, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscTelptrShpCoordsAmigaProvider }, + { kEoBBasePortalSeqData, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1PortalSeqDataAmigaProvider }, + { kEoBBaseManDef, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ManDefAmigaEnglishProvider }, + { kEoBBaseManWord, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ManWordAmigaEnglishProvider }, + { kEoBBaseManPrompt, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1ManPromptAmigaEnglishProvider }, + { kEoBBaseDscMonsterFrmOffsTbl1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscMonsterFrmOffsTbl1AmigaProvider }, + { kEoBBaseDscMonsterFrmOffsTbl2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscMonsterFrmOffsTbl2AmigaProvider }, + { kEoBBaseInvSlotX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1InvSlotXAmigaProvider }, + { kEoBBaseInvSlotY, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1InvSlotYAmigaProvider }, + { kEoBBaseSlotValidationFlags, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SlotValidationFlagsAmigaProvider }, + { kEoBBaseProjectileWeaponTypes, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ProjectileWeaponTypesAmigaProvider }, + { kEoBBaseWandTypes, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1WandTypesAmigaProvider }, + { kEoBBaseDrawObjPosIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DrawObjPosIndexAmigaProvider }, + { kEoBBaseFlightObjFlipIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1FlightObjFlipIndexAmigaProvider }, + { kEoBBaseFlightObjShpMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1FlightObjShpMapAmigaProvider }, + { kEoBBaseFlightObjSclIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1FlightObjSclIndexAmigaProvider }, + { kRpgCommonDscShapeIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscShapeIndexAmigaProvider }, + { kRpgCommonDscX, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscXAmigaProvider }, + { kRpgCommonDscTileIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscTileIndexAmigaProvider }, + { kRpgCommonDscDimData1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDimData1AmigaProvider }, + { kRpgCommonDscDimData2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDimData2AmigaProvider }, + { kRpgCommonDscBlockMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscBlockMapAmigaProvider }, + { kRpgCommonDscDimMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscDimMapAmigaProvider }, + { kRpgCommonDscBlockIndex, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1DscBlockIndexAmigaProvider }, + { kEoBBaseClassModifierFlags, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1ClassModifierFlagsAmigaProvider }, + { kEoBBaseMonsterStepTable01, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable01AmigaProvider }, + { kEoBBaseMonsterStepTable2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable2AmigaProvider }, + { kEoBBaseMonsterStepTable3, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterStepTable3AmigaProvider }, + { kEoBBaseMonsterCloseAttPosTable1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttPosTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttPosTable21, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttPosTable21AmigaProvider }, + { kEoBBaseMonsterCloseAttChkTable1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttChkTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttChkTable2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttChkTable2AmigaProvider }, + { kEoBBaseMonsterCloseAttDstTable1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttDstTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttDstTable2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterCloseAttDstTable2AmigaProvider }, + { kEoBBaseMonsterProximityTable, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterProximityTableAmigaProvider }, + { kEoBBaseFindBlockMonstersTable, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1FindBlockMonstersTableAmigaProvider }, + { kEoBBaseMonsterDirChangeTable, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1MonsterDirChangeTableAmigaProvider }, + { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB1MonsterDistAttStringsAmigaEnglishProvider }, + { kEoBBaseEncodeMonsterDefs, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1EncodeMonsterDefsAmigaProvider }, + { kEoBBaseNpcPresets, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1NpcPresetsAmigaProvider }, + { kEoBBaseSoundMap, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundMapAmigaProvider }, + { kEoB1LevelSoundFiles1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles1AmigaProvider }, + { kEoB1LevelSoundFiles2, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles2AmigaProvider }, + { kEoBBaseSoundFilesIntro, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIntroAmigaProvider }, + { kEoBBaseSoundFilesIngame, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesIngameAmigaProvider }, + { kEoBBaseSoundFilesFinale, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1SoundFilesFinaleAmigaProvider }, + { kEoBBaseChargenStrings1, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenStrings1AmigaGermanProvider }, + { kEoBBaseChargenStrings2, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenStrings2AmigaGermanProvider }, + { kEoBBaseChargenStatStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenStatStringsAmigaGermanProvider }, + { kEoBBaseChargenRaceSexStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenRaceSexStringsAmigaGermanProvider }, + { kEoBBaseChargenClassStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenClassStringsAmigaGermanProvider }, + { kEoBBaseChargenAlignmentStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenAlignmentStringsAmigaGermanProvider }, + { kEoBBaseChargenEnterGameStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ChargenEnterGameStringsAmigaGermanProvider }, + { kEoB1MainMenuStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MainMenuStringsAmigaGermanProvider }, + { kEoB1BonusStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1BonusStringsAmigaGermanProvider }, + { kEoB1TurnUndeadString, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1TurnUndeadStringAmigaGermanProvider }, + { kEoB1Npc0Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc0StringsAmigaGermanProvider }, + { kEoB1Npc11Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc11StringsAmigaGermanProvider }, + { kEoB1Npc12Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc12StringsAmigaGermanProvider }, + { kEoB1Npc21Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc21StringsAmigaGermanProvider }, + { kEoB1Npc22Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc22StringsAmigaGermanProvider }, + { kEoB1Npc31Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc31StringsAmigaGermanProvider }, + { kEoB1Npc32Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc32StringsAmigaGermanProvider }, + { kEoB1Npc4Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc4StringsAmigaGermanProvider }, + { kEoB1Npc5Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc5StringsAmigaGermanProvider }, + { kEoB1Npc6Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc6StringsAmigaGermanProvider }, + { kEoB1Npc7Strings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1Npc7StringsAmigaGermanProvider }, + { kEoBBasePryDoorStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PryDoorStringsAmigaGermanProvider }, + { kEoBBaseWarningStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1WarningStringsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsRings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ItemSuffixStringsRingsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsPotions, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ItemSuffixStringsPotionsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsWands, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ItemSuffixStringsWandsAmigaGermanProvider }, + { kEoBBaseRipItemStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1RipItemStringsAmigaGermanProvider }, + { kEoBBaseCursedString, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CursedStringAmigaGermanProvider }, + { kEoBBaseMagicObjectStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicObjectStringsAmigaGermanProvider }, + { kEoBBaseMagicObjectString5, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicObjectString5AmigaGermanProvider }, + { kEoBBasePatternSuffix, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PatternSuffixAmigaGermanProvider }, + { kEoBBasePatternGrFix1, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PatternGrFix1AmigaGermanProvider }, + { kEoBBasePatternGrFix2, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PatternGrFix2AmigaGermanProvider }, + { kEoBBaseValidateArmorString, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ValidateArmorStringAmigaGermanProvider }, + { kEoBBaseValidateNoDropString, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ValidateNoDropStringAmigaGermanProvider }, + { kEoBBasePotionStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PotionStringsAmigaGermanProvider }, + { kEoBBaseWandStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1WandStringsAmigaGermanProvider }, + { kEoBBaseItemMisuseStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ItemMisuseStringsAmigaGermanProvider }, + { kEoBBaseTakenStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1TakenStringsAmigaGermanProvider }, + { kEoBBasePotionEffectStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1PotionEffectStringsAmigaGermanProvider }, + { kEoBBaseYesNoStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1YesNoStringsAmigaGermanProvider }, + { kRpgCommonMoreStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MoreStringsAmigaGermanProvider }, + { kEoBBaseNpcMaxStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1NpcMaxStringsAmigaGermanProvider }, + { kEoBBaseNpcJoinStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1NpcJoinStringsAmigaGermanProvider }, + { kEoBBaseCancelStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CancelStringsAmigaGermanProvider }, + { kEoBBaseMenuStringsMain, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsMainAmigaGermanProvider }, + { kEoBBaseMenuStringsSaveLoad, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsSaveLoadAmigaGermanProvider }, + { kEoBBaseMenuStringsOnOff, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsOnOffAmigaGermanProvider }, + { kEoBBaseMenuStringsSpells, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsSpellsAmigaGermanProvider }, + { kEoBBaseMenuStringsRest, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsRestAmigaGermanProvider }, + { kEoBBaseMenuStringsDrop, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsDropAmigaGermanProvider }, + { kEoBBaseMenuStringsExit, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsExitAmigaGermanProvider }, + { kEoBBaseMenuStringsStarve, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsStarveAmigaGermanProvider }, + { kEoBBaseMenuStringsScribe, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsScribeAmigaGermanProvider }, + { kEoBBaseMenuStringsDrop2, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsDrop2AmigaGermanProvider }, + { kEoBBaseMenuStringsHead, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsHeadAmigaGermanProvider }, + { kEoBBaseMenuStringsPoison, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsPoisonAmigaGermanProvider }, + { kEoBBaseMenuStringsMgc, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsMgcAmigaGermanProvider }, + { kEoBBaseMenuStringsPrefs, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsPrefsAmigaGermanProvider }, + { kEoBBaseMenuStringsRest2, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsRest2AmigaGermanProvider }, + { kEoBBaseMenuStringsRest4, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsRest4AmigaGermanProvider }, + { kEoBBaseMenuStringsDefeat, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuStringsDefeatAmigaGermanProvider }, + { kEoBBaseMenuYesNoStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MenuYesNoStringsAmigaGermanProvider }, + { kEoBBaseCharGuiStringsHp, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharGuiStringsHpAmigaGermanProvider }, + { kEoBBaseCharGuiStringsWp1, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharGuiStringsWp1AmigaGermanProvider }, + { kEoBBaseCharGuiStringsWr, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharGuiStringsWrAmigaGermanProvider }, + { kEoBBaseCharGuiStringsSt1, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharGuiStringsSt1AmigaGermanProvider }, + { kEoBBaseCharGuiStringsIn, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharGuiStringsInAmigaGermanProvider }, + { kEoBBaseCharStatusStrings7, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharStatusStrings7AmigaGermanProvider }, + { kEoBBaseCharStatusStrings81, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharStatusStrings81AmigaGermanProvider }, + { kEoBBaseCharStatusStrings9, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharStatusStrings9AmigaGermanProvider }, + { kEoBBaseCharStatusStrings131, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1CharStatusStrings131AmigaGermanProvider }, + { kEoBBaseLevelGainStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1LevelGainStringsAmigaGermanProvider }, + { kEoBBaseBookNumbers, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1BookNumbersAmigaGermanProvider }, + { kEoBBaseMageSpellsList, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MageSpellsListAmigaGermanProvider }, + { kEoBBaseClericSpellsList, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ClericSpellsListAmigaGermanProvider }, + { kEoBBaseSpellNames, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1SpellNamesAmigaGermanProvider }, + { kEoBBaseMagicStrings1, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings1AmigaGermanProvider }, + { kEoBBaseMagicStrings2, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings2AmigaGermanProvider }, + { kEoBBaseMagicStrings3, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings3AmigaGermanProvider }, + { kEoBBaseMagicStrings4, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings4AmigaGermanProvider }, + { kEoBBaseMagicStrings6, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings6AmigaGermanProvider }, + { kEoBBaseMagicStrings7, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings7AmigaGermanProvider }, + { kEoBBaseMagicStrings8, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings8AmigaGermanProvider }, + { kEoBBaseMagicStrings9, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MagicStrings9AmigaGermanProvider }, + { kEoBBaseManDef, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ManDefAmigaGermanProvider }, + { kEoBBaseManWord, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ManWordAmigaGermanProvider }, + { kEoBBaseManPrompt, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1ManPromptAmigaGermanProvider }, + { kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB1MonsterDistAttStringsAmigaGermanProvider }, { kEoBBaseChargenStrings1, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings1DOSEnglishProvider }, { kEoBBaseChargenStrings2, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings2DOSEnglishProvider }, { kEoBBaseChargenStartLevels, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsDOSProvider }, @@ -1611,6 +1956,8 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2MonsterDistAttStringsDOSEnglishProvider }, { kEoBBaseEncodeMonsterDefs, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2EncodeMonsterDefsDOSProvider }, { kEoBBaseNpcPresets, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsDOSProvider }, + { kEoBBaseSoundFilesIntro, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIntroDOSProvider }, + { kEoBBaseSoundFilesFinale, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2SoundFilesFinaleDOSProvider }, { kEoB2Npc1Strings, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2Npc1StringsDOSEnglishProvider }, { kEoB2Npc2Strings, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2Npc2StringsDOSEnglishProvider }, { kEoB2MonsterDustStrings, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2MonsterDustStringsDOSEnglishProvider }, @@ -2005,6 +2352,8 @@ static const ResourceProvider resourceProviders[] = { { kEoBBaseMonsterDirChangeTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterDirChangeTableFMTownsProvider }, { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDistAttStringsFMTownsJapaneseProvider }, { kEoBBaseNpcPresets, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsFMTownsProvider }, + { kEoBBaseSoundFilesIntro, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIntroFMTownsProvider }, + { kEoBBaseSoundFilesFinale, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SoundFilesFinaleFMTownsProvider }, { kEoB2Npc1Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc1StringsFMTownsJapaneseProvider }, { kEoB2Npc2Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc2StringsFMTownsJapaneseProvider }, { kEoB2MonsterDustStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDustStringsFMTownsJapaneseProvider }, diff --git a/devtools/create_kyradat/resources/eob1_amiga.h b/devtools/create_kyradat/resources/eob1_amiga.h new file mode 100644 index 0000000000..b0ca527760 --- /dev/null +++ b/devtools/create_kyradat/resources/eob1_amiga.h @@ -0,0 +1,1952 @@ +static const byte kEoB1ChargenStartLevelsAmiga[60] = { + 0x03, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, + 0x03, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, + 0x03, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x00, 0x02, 0x02, 0x03, 0x00, 0x02, + 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x03, + 0x03, 0x02, 0x00, 0x02, 0x02, 0x03, 0x00, 0x02, + 0x01, 0x02, 0x01, 0x03, 0x02, 0x02, 0x00, 0x02, + 0x02, 0x02, 0x00, 0x02 +}; + +static const ByteProvider kEoB1ChargenStartLevelsAmigaProvider = { ARRAYSIZE(kEoB1ChargenStartLevelsAmiga), kEoB1ChargenStartLevelsAmiga }; + +static const byte kEoB1ChargenClassMinStatsAmiga[90] = { + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x0e, 0x0d, 0x0e, 0x00, 0x0c, 0x00, 0x0d, 0x00, + 0x09, 0x11, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, + 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, + 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, + 0x0e, 0x0d, 0x0e, 0x00, 0x00, 0x09, 0x09, 0x00, + 0x00, 0x00 +}; + +static const ByteProvider kEoB1ChargenClassMinStatsAmigaProvider = { ARRAYSIZE(kEoB1ChargenClassMinStatsAmiga), kEoB1ChargenClassMinStatsAmiga }; + +static const byte kEoB1ChargenRaceMinStatsAmiga[36] = { + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08, + 0x03, 0x07, 0x07, 0x08, 0x03, 0x04, 0x03, 0x06, + 0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0c, 0x02, + 0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06, + 0x03, 0x08, 0x0a, 0x03 +}; + +static const ByteProvider kEoB1ChargenRaceMinStatsAmigaProvider = { ARRAYSIZE(kEoB1ChargenRaceMinStatsAmiga), kEoB1ChargenRaceMinStatsAmiga }; + +static const uint16 kEoB1ChargenRaceMaxStatsAmiga[36] = { + 0x6412, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x6412, 0x0012, + 0x0012, 0x0013, 0x0011, 0x0012, 0x6412, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x6412, 0x0012, 0x0012, 0x0011, 0x0013, 0x0010, + 0x6412, 0x0013, 0x0011, 0x0012, 0x0012, 0x0012, 0x0011, 0x0012, + 0x0011, 0x0013, 0x0012, 0x0012 +}; + +static const Uint16Provider kEoB1ChargenRaceMaxStatsAmigaProvider = { ARRAYSIZE(kEoB1ChargenRaceMaxStatsAmiga), kEoB1ChargenRaceMaxStatsAmiga }; + +static const byte kEoB1SaveThrowTable1Amiga[50] = { + 0x10, 0x0e, 0x0d, 0x0b, 0x0a, 0x08, 0x07, 0x05, + 0x04, 0x03, 0x12, 0x10, 0x0f, 0x0d, 0x0c, 0x0a, + 0x09, 0x07, 0x06, 0x05, 0x11, 0x0f, 0x0e, 0x0c, + 0x0b, 0x09, 0x08, 0x06, 0x05, 0x04, 0x14, 0x11, + 0x10, 0x0d, 0x0c, 0x09, 0x08, 0x05, 0x04, 0x04, + 0x13, 0x11, 0x10, 0x0e, 0x0d, 0x0b, 0x0a, 0x08, + 0x07, 0x06 +}; + +static const ByteProvider kEoB1SaveThrowTable1AmigaProvider = { ARRAYSIZE(kEoB1SaveThrowTable1Amiga), kEoB1SaveThrowTable1Amiga }; + +static const byte kEoB1SaveThrowTable2Amiga[25] = { + 0x0e, 0x0d, 0x0b, 0x0a, 0x08, 0x0b, 0x09, 0x07, + 0x05, 0x03, 0x0d, 0x0b, 0x09, 0x07, 0x05, 0x0f, + 0x0d, 0x0b, 0x09, 0x07, 0x0c, 0x0a, 0x08, 0x06, + 0x04 +}; + +static const ByteProvider kEoB1SaveThrowTable2AmigaProvider = { ARRAYSIZE(kEoB1SaveThrowTable2Amiga), kEoB1SaveThrowTable2Amiga }; + +static const byte kEoB1SaveThrowTable3Amiga[35] = { + 0x0a, 0x09, 0x07, 0x06, 0x05, 0x04, 0x02, 0x0e, + 0x0d, 0x0b, 0x0a, 0x09, 0x08, 0x06, 0x0d, 0x0c, + 0x0a, 0x09, 0x08, 0x07, 0x05, 0x10, 0x0f, 0x0d, + 0x0c, 0x0b, 0x0a, 0x08, 0x0f, 0x0e, 0x0c, 0x0b, + 0x0a, 0x09, 0x07 +}; + +static const ByteProvider kEoB1SaveThrowTable3AmigaProvider = { ARRAYSIZE(kEoB1SaveThrowTable3Amiga), kEoB1SaveThrowTable3Amiga }; + +static const byte kEoB1SaveThrowTable4Amiga[30] = { + 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 0x0e, 0x0c, + 0x0a, 0x08, 0x06, 0x07, 0x0c, 0x0b, 0x0a, 0x09, + 0x08, 0x04, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, + 0x0f, 0x0d, 0x0b, 0x09, 0x07, 0x05 +}; + +static const ByteProvider kEoB1SaveThrowTable4AmigaProvider = { ARRAYSIZE(kEoB1SaveThrowTable4Amiga), kEoB1SaveThrowTable4Amiga }; + +static const byte kEoB1SaveThrwLvlIndexAmiga[6] = { + 0x11, 0x15, 0x13, 0x15, 0x11, 0x11 +}; + +static const ByteProvider kEoB1SaveThrwLvlIndexAmigaProvider = { ARRAYSIZE(kEoB1SaveThrwLvlIndexAmiga), kEoB1SaveThrwLvlIndexAmiga }; + +static const byte kEoB1SaveThrwModDivAmiga[6] = { + 0x02, 0x05, 0x03, 0x04, 0x02, 0x02 +}; + +static const ByteProvider kEoB1SaveThrwModDivAmigaProvider = { ARRAYSIZE(kEoB1SaveThrwModDivAmiga), kEoB1SaveThrwModDivAmiga }; + +static const byte kEoB1SaveThrwModExtAmiga[6] = { + 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A +}; + +static const ByteProvider kEoB1SaveThrwModExtAmigaProvider = { ARRAYSIZE(kEoB1SaveThrwModExtAmiga), kEoB1SaveThrwModExtAmiga }; + +static const char *const kEoB1IntroFilesOpeningAmiga[6] = { + "AND.CPS", + "SSI.CPS", + "PRESENT.CPS", + "DAND.CPS", + "WESTWOOD.CPS", + "" +}; + +static const StringListProvider kEoB1IntroFilesOpeningAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesOpeningAmiga), kEoB1IntroFilesOpeningAmiga }; + +static const char *const kEoB1IntroFilesTowerAmiga[2] = { + "", + "TOWRMAGE.CPS" +}; + +static const StringListProvider kEoB1IntroFilesTowerAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesTowerAmiga), kEoB1IntroFilesTowerAmiga }; + +static const char *const kEoB1IntroFilesOrbAmiga[2] = { + "ORB.CPS", + "TOWRMAGE.CPS" +}; + +static const StringListProvider kEoB1IntroFilesOrbAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesOrbAmiga), kEoB1IntroFilesOrbAmiga }; + +static const char *const kEoB1IntroFilesWdEntryAmiga[4] = { + "", + "WTRDP1.CPS", + "WTRDP2.CPS", + "WTRDP3.CPS" +}; + +static const StringListProvider kEoB1IntroFilesWdEntryAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesWdEntryAmiga), kEoB1IntroFilesWdEntryAmiga }; + +static const char *const kEoB1IntroFilesKingAmiga[2] = { + "KING.CPS", + "ADVENTUR.CPS" +}; + +static const StringListProvider kEoB1IntroFilesKingAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesKingAmiga), kEoB1IntroFilesKingAmiga }; + +static const char *const kEoB1IntroFilesHandsAmiga[1] = { + "HANDS.CPS" +}; + +static const StringListProvider kEoB1IntroFilesHandsAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesHandsAmiga), kEoB1IntroFilesHandsAmiga }; + +static const char *const kEoB1IntroFilesWdExitAmiga[5] = { + "WTRDP3.CPS", + "", + "ORB.CPS", + "TUNNEL.CPS", + "" +}; + +static const StringListProvider kEoB1IntroFilesWdExitAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesWdExitAmiga), kEoB1IntroFilesWdExitAmiga }; + +static const char *const kEoB1IntroFilesTunnelAmiga[2] = { + "AVALANCH.CPS", + "ZOOMTUNL.CPS" +}; + +static const StringListProvider kEoB1IntroFilesTunnelAmigaProvider = { ARRAYSIZE(kEoB1IntroFilesTunnelAmiga), kEoB1IntroFilesTunnelAmiga }; + +static const byte kEoB1IntroOpeningFrmDelayAmiga[5] = { + 0x14, 0x32, 0x64, 0x32, 0x8C +}; + +static const ByteProvider kEoB1IntroOpeningFrmDelayAmigaProvider = { ARRAYSIZE(kEoB1IntroOpeningFrmDelayAmiga), kEoB1IntroOpeningFrmDelayAmiga }; + +static const byte kEoB1IntroWdEncodeXAmiga[31] = { + 0x00, 0x18, 0x02, 0x04, 0x1a, 0x05, 0x10, 0x06, + 0x10, 0x07, 0x11, 0x04, 0x13, 0x05, 0x06, 0x13, + 0x09, 0x14, 0x0b, 0x0d, 0x16, 0x0d, 0x16, 0x0e, + 0x1a, 0x0e, 0x17, 0x0f, 0x1b, 0x0f, 0x17 +}; + +static const ByteProvider kEoB1IntroWdEncodeXAmigaProvider = { ARRAYSIZE(kEoB1IntroWdEncodeXAmiga), kEoB1IntroWdEncodeXAmiga }; + +static const byte kEoB1IntroWdEncodeYAmiga[31] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01 +}; + +static const ByteProvider kEoB1IntroWdEncodeYAmigaProvider = { ARRAYSIZE(kEoB1IntroWdEncodeYAmiga), kEoB1IntroWdEncodeYAmiga }; + +static const byte kEoB1IntroWdEncodeWHAmiga[31] = { + 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 +}; + +static const ByteProvider kEoB1IntroWdEncodeWHAmigaProvider = { ARRAYSIZE(kEoB1IntroWdEncodeWHAmiga), kEoB1IntroWdEncodeWHAmiga }; + +static const uint16 kEoB1IntroWdDsXAmiga[31] = { + 0x0120, 0x0120, 0x0120, 0x0130, 0x0130, 0x00b2, 0x00b2, 0x00bc, + 0x00bc, 0x00ae, 0x00ae, 0x0125, 0x0125, 0x0125, 0x0101, 0x0101, + 0x00e9, 0x00e9, 0x00e9, 0x00ab, 0x00ab, 0x00cc, 0x00cc, 0x00f0, + 0x00f0, 0x010c, 0x010c, 0x00e0, 0x00e0, 0x00ba, 0x00ba +}; + +static const Uint16Provider kEoB1IntroWdDsXAmigaProvider = { ARRAYSIZE(kEoB1IntroWdDsXAmiga), kEoB1IntroWdDsXAmiga }; + +static const byte kEoB1IntroWdDsYAmiga[31] = { + 0x28, 0x28, 0x28, 0x38, 0x38, 0x26, 0x26, 0x1d, + 0x1d, 0x34, 0x34, 0x50, 0x50, 0x50, 0x50, 0x50, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x2a, 0x2a, 0x66, + 0x66, 0x67, 0x67, 0x1c, 0x1c, 0x44, 0x44 +}; + +static const ByteProvider kEoB1IntroWdDsYAmigaProvider = { ARRAYSIZE(kEoB1IntroWdDsYAmiga), kEoB1IntroWdDsYAmiga }; + +static const byte kEoB1IntroTvlX1Amiga[6] = { + 0x00, 0x08, 0x10, 0x00, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1IntroTvlX1AmigaProvider = { ARRAYSIZE(kEoB1IntroTvlX1Amiga), kEoB1IntroTvlX1Amiga }; + +static const byte kEoB1IntroTvlY1Amiga[6] = { + 0x00, 0x00, 0x00, 0x30, 0x36, 0x86 +}; + +static const ByteProvider kEoB1IntroTvlY1AmigaProvider = { ARRAYSIZE(kEoB1IntroTvlY1Amiga), kEoB1IntroTvlY1Amiga }; + +static const byte kEoB1IntroTvlX2Amiga[6] = { + 0x10, 0x10, 0x0F, 0x0C, 0x0B, 0x0B +}; + +static const ByteProvider kEoB1IntroTvlX2AmigaProvider = { ARRAYSIZE(kEoB1IntroTvlX2Amiga), kEoB1IntroTvlX2Amiga }; + +static const byte kEoB1IntroTvlY2Amiga[6] = { + 0x35, 0x35, 0x35, 0x35, 0x35, 0x61 +}; + +static const ByteProvider kEoB1IntroTvlY2AmigaProvider = { ARRAYSIZE(kEoB1IntroTvlY2Amiga), kEoB1IntroTvlY2Amiga }; + +static const byte kEoB1IntroTvlWAmiga[6] = { + 0x08, 0x08, 0x0B, 0x0F, 0x12, 0x12 +}; + +static const ByteProvider kEoB1IntroTvlWAmigaProvider = { ARRAYSIZE(kEoB1IntroTvlWAmiga), kEoB1IntroTvlWAmiga }; + +static const byte kEoB1IntroTvlHAmiga[6] = { + 0x1A, 0x30, 0x36, 0x45, 0x50, 0x28 +}; + +static const ByteProvider kEoB1IntroTvlHAmigaProvider = { ARRAYSIZE(kEoB1IntroTvlHAmiga), kEoB1IntroTvlHAmiga }; + +static const byte kEoB1IntroOrbFadePalAmiga[64] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x37, 0x00, 0x00, 0x05, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0xdd, 0x06, 0x9c, 0x05, 0x5b, 0x0f, 0xff +}; + +static const ByteProvider kEoB1IntroOrbFadePalAmigaProvider = { ARRAYSIZE(kEoB1IntroOrbFadePalAmiga), kEoB1IntroOrbFadePalAmiga }; + +static const byte kEoB1DoorShapeDefsAmiga[96] = { + 0x00, 0x00, 0x0a, 0x48, 0x11, 0x98, 0x07, 0x2f, + 0x19, 0x48, 0x04, 0x1d, 0x0a, 0x00, 0x0a, 0x48, + 0x1d, 0x48, 0x07, 0x2f, 0x19, 0x68, 0x04, 0x1d, + 0x14, 0x00, 0x06, 0x48, 0x24, 0x48, 0x04, 0x2f, + 0x1e, 0x78, 0x03, 0x1d, 0x1a, 0x00, 0x0c, 0x48, + 0x00, 0x90, 0x07, 0x29, 0x21, 0x78, 0x04, 0x1b, + 0x00, 0xbc, 0x0a, 0x0c, 0x0a, 0xbc, 0x06, 0x08, + 0x0a, 0xc4, 0x04, 0x02, 0x07, 0x4a, 0x09, 0x37, + 0x00, 0x4a, 0x07, 0x25, 0x07, 0xa0, 0x05, 0x17, + 0x07, 0x82, 0x09, 0x1c, 0x00, 0x70, 0x07, 0x13, + 0x0c, 0xa0, 0x05, 0x0b, 0x10, 0x48, 0x09, 0x4b, + 0x18, 0x98, 0x07, 0x2e, 0x1f, 0x98, 0x04, 0x1d +}; + +static const ByteProvider kEoB1DoorShapeDefsAmigaProvider = { ARRAYSIZE(kEoB1DoorShapeDefsAmiga), kEoB1DoorShapeDefsAmiga }; + +static const byte kEoB1DoorSwitchShapeDefsAmiga[96] = { + 0x25, 0x78, 0x01, 0x07, 0x25, 0x88, 0x01, 0x03, + 0x25, 0x90, 0x01, 0x01, 0x25, 0x78, 0x01, 0x07, + 0x25, 0x88, 0x01, 0x03, 0x25, 0x90, 0x01, 0x01, + 0x26, 0x78, 0x01, 0x0b, 0x26, 0x88, 0x01, 0x06, + 0x26, 0x90, 0x01, 0x04, 0x27, 0x78, 0x01, 0x0e, + 0x27, 0x88, 0x01, 0x08, 0x25, 0x90, 0x01, 0x01, + 0x25, 0x78, 0x01, 0x07, 0x25, 0x88, 0x01, 0x03, + 0x25, 0x90, 0x01, 0x01, 0x25, 0x98, 0x01, 0x0b, + 0x25, 0xa8, 0x01, 0x06, 0x25, 0xb0, 0x01, 0x04, + 0x25, 0x98, 0x01, 0x0b, 0x25, 0xa8, 0x01, 0x05, + 0x25, 0xb0, 0x01, 0x04, 0x26, 0x98, 0x01, 0x0a, + 0x26, 0xa8, 0x01, 0x04, 0x25, 0x90, 0x01, 0x01 +}; + +static const ByteProvider kEoB1DoorSwitchShapeDefsAmigaProvider = { ARRAYSIZE(kEoB1DoorSwitchShapeDefsAmiga), kEoB1DoorSwitchShapeDefsAmiga }; + +static const byte kEoB1DoorSwitchCoordsAmiga[48] = { + 0x82, 0x24, 0x74, 0x27, 0x00, 0x00, 0x82, 0x24, + 0x74, 0x27, 0x00, 0x00, 0x5b, 0x36, 0x5a, 0x33, + 0x5a, 0x2d, 0x88, 0x26, 0x74, 0x29, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x24, + 0x73, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x2b, 0x74, 0x2b, 0x00, 0x00 +}; + +static const ByteProvider kEoB1DoorSwitchCoordsAmigaProvider = { ARRAYSIZE(kEoB1DoorSwitchCoordsAmiga), kEoB1DoorSwitchCoordsAmiga }; + +static const byte kEoB1MonsterPropertiesAmiga[616] = { + 0x07, 0x12, 0xff, 0x01, 0x01, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x02, + 0x4b, 0x02, 0xff, 0x00, 0x07, 0x11, 0x02, 0x01, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x78, 0x01, 0x38, 0x39, 0x00, 0xff, 0x00, + 0x04, 0x10, 0x01, 0x01, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x41, 0x00, 0x42, + 0x43, 0x00, 0x02, 0x00, 0x08, 0x0f, 0x02, 0x01, + 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x41, 0x00, 0x49, 0x4a, 0x00, 0x03, 0x00, + 0x04, 0x10, 0x02, 0x02, 0x01, 0x04, 0x01, 0x01, + 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x02, 0x36, + 0x37, 0x04, 0xff, 0x14, 0x05, 0x11, 0x03, 0x01, + 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x41, 0x00, 0x2f, 0x30, 0x00, 0xff, 0x00, + 0x05, 0x0f, 0x02, 0x01, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x02, 0x8a, 0x02, 0x31, + 0x26, 0x00, 0xff, 0x00, 0x03, 0x0c, 0x07, 0x01, + 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x02, 0xda, 0x00, 0x2d, 0x2e, 0x00, 0xff, 0x00, + 0x05, 0x07, 0x0a, 0x01, 0x01, 0x08, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x05, 0xdc, 0x00, 0x40, + 0x41, 0x00, 0x07, 0x00, 0x04, 0x0f, 0x06, 0x02, + 0x01, 0x08, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x03, 0xcf, 0x01, 0x27, 0x28, 0x00, 0xff, 0x00, + 0x05, 0x0d, 0x06, 0x03, 0x01, 0x08, 0x00, 0x01, + 0x04, 0x00, 0x01, 0x04, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x05, 0x78, 0x02, 0x25, + 0x24, 0x00, 0xff, 0x00, 0x04, 0x0d, 0x05, 0x02, + 0x01, 0x04, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x04, 0xe2, 0x00, 0x3e, 0x3f, 0x00, 0xff, 0x00, + 0x03, 0x0e, 0x04, 0x01, 0x01, 0x08, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x02, 0x8a, 0x00, 0x2b, + 0x2c, 0x00, 0xff, 0x3c, 0xff, 0x07, 0x0a, 0x01, + 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x27, 0x10, 0x02, 0x44, 0x45, 0x00, 0xff, 0x64, + 0xff, 0x07, 0x09, 0x01, 0x03, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0xd0, 0x00, 0x18, + 0xff, 0x08, 0xff, 0x00, 0x03, 0x0d, 0x07, 0x01, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x13, 0x88, 0x02, 0x29, 0x2a, 0x02, 0xff, 0x3c, + 0x05, 0x0d, 0x07, 0x01, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x13, 0x88, 0x00, 0x34, + 0x35, 0x02, 0xff, 0x00, 0x05, 0x0b, 0x08, 0x01, + 0x05, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x40, 0x00, 0x3a, 0x3b, 0xff, 0xff, 0x5a, + 0x02, 0x0f, 0x05, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x01, 0x0e, 0x02, 0x3c, + 0x3d, 0x00, 0xff, 0x00, 0xfe, 0x0d, 0x08, 0x01, + 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x0f, 0xa0, 0x02, 0x48, 0x47, 0x00, 0xff, 0x32, + 0x04, 0x0d, 0x07, 0x01, 0x01, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x03, 0xcf, 0x01, 0x33, + 0x32, 0x00, 0xff, 0x28, 0x00, 0x05, 0x23, 0x01, + 0x01, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0xb0, 0x02, 0xff, 0xff, 0xff, 0xff, 0x64 +}; + +static const ByteProvider kEoB1MonsterPropertiesAmigaProvider = { ARRAYSIZE(kEoB1MonsterPropertiesAmiga), kEoB1MonsterPropertiesAmiga }; + +static const byte kEoB1EnemyMageSpellListAmiga[10] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x05, + 0x06, 0x00 +}; + +static const ByteProvider kEoB1EnemyMageSpellListAmigaProvider = { ARRAYSIZE(kEoB1EnemyMageSpellListAmiga), kEoB1EnemyMageSpellListAmiga }; + +static const byte kEoB1EnemyMageSfxAmiga[10] = { + 0x00, 0x55, 0x55, 0x55, 0x55, 0x62, 0x62, 0x1F, + 0x62, 0x02 +}; + +static const ByteProvider kEoB1EnemyMageSfxAmigaProvider = { ARRAYSIZE(kEoB1EnemyMageSfxAmiga), kEoB1EnemyMageSfxAmiga }; + +static const byte kEoB1BeholderSpellListAmiga[4] = { + 0x02, 0x0A, 0x0B, 0x62 +}; + +static const ByteProvider kEoB1BeholderSpellListAmigaProvider = { ARRAYSIZE(kEoB1BeholderSpellListAmiga), kEoB1BeholderSpellListAmiga }; + +static const byte kEoB1BeholderSfxAmiga[4] = { + 0x62, 0x53, 0x40, 0x00 +}; + +static const ByteProvider kEoB1BeholderSfxAmigaProvider = { ARRAYSIZE(kEoB1BeholderSfxAmiga), kEoB1BeholderSfxAmiga }; + +static const byte kEoB1NpcShpDataAmiga[76] = { + 0x00, 0x00, 0x06, 0x40, 0x06, 0x00, 0x07, 0x48, + 0x0d, 0x00, 0x06, 0x30, 0x13, 0x00, 0x05, 0x38, + 0x18, 0x00, 0x05, 0x38, 0x1d, 0x00, 0x05, 0x38, + 0x22, 0x00, 0x06, 0x48, 0x00, 0x48, 0x06, 0x56, + 0x06, 0x48, 0x05, 0x40, 0x0b, 0x48, 0x05, 0x40, + 0x10, 0x48, 0x05, 0x30, 0x06, 0x88, 0x03, 0x18, + 0x09, 0x88, 0x03, 0x18, 0x0c, 0x88, 0x03, 0x18, + 0x0f, 0x88, 0x03, 0x18, 0x12, 0x88, 0x03, 0x18, + 0x15, 0x88, 0x03, 0x18, 0x18, 0x48, 0x06, 0x58, + 0x1e, 0x48, 0x0a, 0x48 +}; + +static const ByteProvider kEoB1NpcShpDataAmigaProvider = { ARRAYSIZE(kEoB1NpcShpDataAmiga), kEoB1NpcShpDataAmiga }; + +static const byte kEoB1NpcSubShpIndex1Amiga[6] = { + 0x09, 0x08, 0x08, 0x09, 0x09, 0x0A +}; + +static const ByteProvider kEoB1NpcSubShpIndex1AmigaProvider = { ARRAYSIZE(kEoB1NpcSubShpIndex1Amiga), kEoB1NpcSubShpIndex1Amiga }; + +static const byte kEoB1NpcSubShpIndex2Amiga[6] = { + 0x0D, 0x0B, 0x0C, 0x0E, 0x0F, 0x10 +}; + +static const ByteProvider kEoB1NpcSubShpIndex2AmigaProvider = { ARRAYSIZE(kEoB1NpcSubShpIndex2Amiga), kEoB1NpcSubShpIndex2Amiga }; + +static const byte kEoB1NpcSubShpYAmiga[6] = { + 0x34, 0x31, 0x31, 0x34, 0x34, 0x45 +}; + +static const ByteProvider kEoB1NpcSubShpYAmigaProvider = { ARRAYSIZE(kEoB1NpcSubShpYAmiga), kEoB1NpcSubShpYAmiga }; + +static const char *const kEoB1EnchantedStringAmiga[1] = { + "%s +%d" +}; + +static const StringListProvider kEoB1EnchantedStringAmigaProvider = { ARRAYSIZE(kEoB1EnchantedStringAmiga), kEoB1EnchantedStringAmiga }; + +static const byte kEoB1SpellLevelsMageAmiga[26] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, + 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x05, 0x05, + 0x05, 0x00 +}; + +static const ByteProvider kEoB1SpellLevelsMageAmigaProvider = { ARRAYSIZE(kEoB1SpellLevelsMageAmiga), kEoB1SpellLevelsMageAmiga }; + +static const byte kEoB1SpellLevelsClericAmiga[25] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x01, + 0x00 +}; + +static const ByteProvider kEoB1SpellLevelsClericAmigaProvider = { ARRAYSIZE(kEoB1SpellLevelsClericAmiga), kEoB1SpellLevelsClericAmiga }; + +static const byte kEoB1NumSpellsClericAmiga[50] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x03, 0x03, 0x01, 0x00, + 0x00, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, + 0x02, 0x01, 0x00, 0x03, 0x03, 0x03, 0x02, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x01, 0x04, 0x04, 0x03, + 0x03, 0x02 +}; + +static const ByteProvider kEoB1NumSpellsClericAmigaProvider = { ARRAYSIZE(kEoB1NumSpellsClericAmiga), kEoB1NumSpellsClericAmiga }; + +static const byte kEoB1NumSpellsWisAdjAmiga[40] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, + 0x01, 0x01, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00 +}; + +static const ByteProvider kEoB1NumSpellsWisAdjAmigaProvider = { ARRAYSIZE(kEoB1NumSpellsWisAdjAmiga), kEoB1NumSpellsWisAdjAmiga }; + +static const byte kEoB1NumSpellsPalAmiga[60] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x02, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB1NumSpellsPalAmigaProvider = { ARRAYSIZE(kEoB1NumSpellsPalAmiga), kEoB1NumSpellsPalAmiga }; + +static const byte kEoB1NumSpellsMageAmiga[55] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x01, 0x00, + 0x00, 0x04, 0x02, 0x02, 0x00, 0x00, 0x04, 0x03, + 0x02, 0x01, 0x00, 0x04, 0x03, 0x03, 0x02, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x01, 0x04, 0x04, 0x03, + 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x03 +}; + +static const ByteProvider kEoB1NumSpellsMageAmigaProvider = { ARRAYSIZE(kEoB1NumSpellsMageAmiga), kEoB1NumSpellsMageAmiga }; + +static const uint32 kEoB1ExperienceTable0Amiga[12] = { + 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848, + 0x0003D090, 0x0007A120, 0x000B71B0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable0AmigaProvider = { ARRAYSIZE(kEoB1ExperienceTable0Amiga), kEoB1ExperienceTable0Amiga }; + +static const uint32 kEoB1ExperienceTable1Amiga[12] = { + 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90, + 0x00020F58, 0x0003D090, 0x0005B8D8, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable1AmigaProvider = { ARRAYSIZE(kEoB1ExperienceTable1Amiga), kEoB1ExperienceTable1Amiga }; + +static const uint32 kEoB1ExperienceTable2Amiga[11] = { + 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0, + 0x00036EE8, 0x0006DDD0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable2AmigaProvider = { ARRAYSIZE(kEoB1ExperienceTable2Amiga), kEoB1ExperienceTable2Amiga }; + +static const uint32 kEoB1ExperienceTable3Amiga[12] = { + 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170, + 0x0001ADB0, 0x00027100, 0x00035B60, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable3AmigaProvider = { ARRAYSIZE(kEoB1ExperienceTable3Amiga), kEoB1ExperienceTable3Amiga }; + +static const uint32 kEoB1ExperienceTable4Amiga[12] = { + 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0, + 0x000493E0, 0x000927C0, 0x000DBBA0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB1ExperienceTable4AmigaProvider = { ARRAYSIZE(kEoB1ExperienceTable4Amiga), kEoB1ExperienceTable4Amiga }; + +static const byte kEoB1ExpObjectTblIndexAmiga[9] = { + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, + 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTblIndexAmigaProvider = { ARRAYSIZE(kEoB1ExpObjectTblIndexAmiga), kEoB1ExpObjectTblIndexAmiga }; + +static const byte kEoB1ExpObjectShpStartAmiga[4] = { + 0x07, 0x0C, 0x0F, 0x12 +}; + +static const ByteProvider kEoB1ExpObjectShpStartAmigaProvider = { ARRAYSIZE(kEoB1ExpObjectShpStartAmiga), kEoB1ExpObjectShpStartAmiga }; + +static const byte kEoB1ExpObjectTbl1Amiga[13] = { + 0x1f, 0x07, 0x1f, 0x07, 0x18, 0x07, 0x18, 0x19, + 0x18, 0x19, 0x18, 0x19, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl1AmigaProvider = { ARRAYSIZE(kEoB1ExpObjectTbl1Amiga), kEoB1ExpObjectTbl1Amiga }; + +static const byte kEoB1ExpObjectTbl2Amiga[10] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1e, 0x10, 0x1e, + 0x10, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl2AmigaProvider = { ARRAYSIZE(kEoB1ExpObjectTbl2Amiga), kEoB1ExpObjectTbl2Amiga }; + +static const byte kEoB1ExpObjectTbl3Amiga[11] = { + 0x07, 0x1b, 0x07, 0x1b, 0x08, 0x1b, 0x08, 0x10, + 0x08, 0x10, 0x00 +}; + +static const ByteProvider kEoB1ExpObjectTbl3AmigaProvider = { ARRAYSIZE(kEoB1ExpObjectTbl3Amiga), kEoB1ExpObjectTbl3Amiga }; + +static const byte kEoB1ExpObjectYAmiga[4] = { + 0x77, 0x67, 0x4F, 0x3F +}; + +static const ByteProvider kEoB1ExpObjectYAmigaProvider = { ARRAYSIZE(kEoB1ExpObjectYAmiga), kEoB1ExpObjectYAmiga }; + +static const byte kEoB1SparkDefStepsAmiga[8] = { + 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01 +}; + +static const ByteProvider kEoB1SparkDefStepsAmigaProvider = { ARRAYSIZE(kEoB1SparkDefStepsAmiga), kEoB1SparkDefStepsAmiga }; + +static const byte kEoB1SparkDefSubStepsAmiga[4] = { + 0xC0, 0x30, 0x0C, 0x03 +}; + +static const ByteProvider kEoB1SparkDefSubStepsAmigaProvider = { ARRAYSIZE(kEoB1SparkDefSubStepsAmiga), kEoB1SparkDefSubStepsAmiga }; + +static const byte kEoB1SparkDefShiftAmiga[4] = { + 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB1SparkDefShiftAmigaProvider = { ARRAYSIZE(kEoB1SparkDefShiftAmiga), kEoB1SparkDefShiftAmiga }; + +static const byte kEoB1SparkDefAddAmiga[8] = { + 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F +}; + +static const ByteProvider kEoB1SparkDefAddAmigaProvider = { ARRAYSIZE(kEoB1SparkDefAddAmiga), kEoB1SparkDefAddAmiga }; + +static const byte kEoB1SparkDefXAmiga[6] = { + 0x17, 0x20, 0x17, 0x20, 0x17, 0x20 +}; + +static const ByteProvider kEoB1SparkDefXAmigaProvider = { ARRAYSIZE(kEoB1SparkDefXAmiga), kEoB1SparkDefXAmiga }; + +static const byte kEoB1SparkDefYAmiga[6] = { + 0x02, 0x02, 0x34, 0x34, 0x66, 0x66 +}; + +static const ByteProvider kEoB1SparkDefYAmigaProvider = { ARRAYSIZE(kEoB1SparkDefYAmiga), kEoB1SparkDefYAmiga }; + +static const uint32 kEoB1SparkOfFlags1Amiga[11] = { + 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB, + 0x00000156, 0x00000001, 0x00000000 +}; + +static const Uint32Provider kEoB1SparkOfFlags1AmigaProvider = { ARRAYSIZE(kEoB1SparkOfFlags1Amiga), kEoB1SparkOfFlags1Amiga }; + +static const uint32 kEoB1SparkOfFlags2Amiga[16] = { + 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000, + 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003 +}; + +static const Uint32Provider kEoB1SparkOfFlags2AmigaProvider = { ARRAYSIZE(kEoB1SparkOfFlags2Amiga), kEoB1SparkOfFlags2Amiga }; + +static const byte kEoB1SparkOfShiftAmiga[16] = { + 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10, + 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB1SparkOfShiftAmigaProvider = { ARRAYSIZE(kEoB1SparkOfShiftAmiga), kEoB1SparkOfShiftAmiga }; + +static const byte kEoB1SparkOfXAmiga[16] = { + 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78, + 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48 +}; + +static const ByteProvider kEoB1SparkOfXAmigaProvider = { ARRAYSIZE(kEoB1SparkOfXAmiga), kEoB1SparkOfXAmiga }; + +static const byte kEoB1SparkOfYAmiga[16] = { + 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B, + 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44 +}; + +static const ByteProvider kEoB1SparkOfYAmigaProvider = { ARRAYSIZE(kEoB1SparkOfYAmiga), kEoB1SparkOfYAmiga }; + +static const byte kEoB1SpellPropertiesAmiga[1060] = { + 0x00, 0x00, 0x05, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xd0, + 0x01, 0x00, 0x00, 0x00, 0xb3, 0xc2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xd6, 0x00, 0x00, 0x00, 0x00, + 0xb4, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x07, 0xe4, + 0x08, 0x00, 0x00, 0x00, 0xb5, 0x5a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x5f, 0x00, + 0x00, 0x00, 0x07, 0xf2, 0x00, 0x00, 0x00, 0x00, + 0xb5, 0xce, 0x00, 0x00, 0xb5, 0xf2, 0x00, 0x00, + 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xb6, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, + 0x02, 0x00, 0x00, 0x00, 0xb6, 0x8e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb7, 0x40, 0x58, 0x00, + 0x00, 0x00, 0x08, 0x18, 0x01, 0x00, 0x00, 0x00, + 0xb7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb7, 0xaa, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x26, 0x00, 0x00, 0x00, 0x00, + 0xb7, 0xc8, 0x00, 0x00, 0xb7, 0xf2, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x08, 0x38, + 0x00, 0x00, 0x00, 0x00, 0xb8, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x08, 0x48, 0x01, 0x00, 0x00, 0x00, + 0xb8, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x08, 0x56, + 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf4, 0x00, 0x00, + 0xb9, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x62, 0x01, + 0x00, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, + 0xb9, 0x4e, 0x00, 0x00, 0xb9, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x08, 0x6c, + 0x08, 0x00, 0x00, 0x00, 0xb9, 0xa8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xba, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x72, 0x00, 0x00, 0x00, 0x00, + 0xba, 0x16, 0x00, 0x00, 0xba, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x08, 0x7e, + 0x08, 0x00, 0x00, 0x00, 0xba, 0xd2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb7, 0xaa, 0x5e, 0x00, + 0x00, 0x00, 0x08, 0x96, 0x00, 0x00, 0x00, 0x00, + 0xba, 0xfa, 0x00, 0x00, 0xbb, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x08, 0xa6, + 0x02, 0x00, 0x00, 0x00, 0xbb, 0x54, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbb, 0xec, 0x66, 0x00, + 0x00, 0x00, 0x08, 0xb6, 0x00, 0x00, 0x00, 0x00, + 0xbc, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x08, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0xbc, 0xb4, 0x00, 0x00, + 0xbc, 0xde, 0x00, 0x00, 0x00, 0x00, 0x59, 0x01, + 0x00, 0x00, 0x08, 0xc6, 0x01, 0x00, 0x00, 0x00, + 0xbd, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x08, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0xbd, 0xf2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x08, 0xda, 0x00, 0x00, 0x00, 0x00, + 0xbd, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, 0x08, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0xbf, 0x0c, 0x00, 0x00, + 0xbf, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x65, 0x01, + 0x00, 0x00, 0x08, 0xf6, 0x08, 0x00, 0x00, 0x00, + 0xbf, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfc, + 0x01, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, + 0x00, 0x00, 0x09, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x07, 0xe4, + 0x08, 0x00, 0x00, 0x00, 0xb5, 0x5a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x5f, 0x00, + 0x00, 0x00, 0x09, 0x22, 0x01, 0x00, 0x00, 0x00, + 0xc0, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x9c, 0x6e, 0x00, 0x00, 0x00, 0x09, 0x38, + 0x01, 0x00, 0x00, 0x00, 0xc0, 0xac, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x48, 0x5b, 0x00, + 0x00, 0x00, 0x09, 0x3c, 0x02, 0x00, 0x00, 0x00, + 0xc2, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb7, 0x40, 0x63, 0x00, 0x00, 0x00, 0x08, 0x72, + 0x00, 0x00, 0x00, 0x00, 0xba, 0x16, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x01, + 0x00, 0x00, 0x09, 0x48, 0x01, 0x00, 0x00, 0x00, + 0xc1, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc1, 0xc8, 0x6f, 0x00, 0x00, 0x00, 0x09, 0x54, + 0x08, 0x00, 0x00, 0x00, 0xc2, 0xb2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x08, 0x48, 0x01, 0x00, 0x00, 0x00, + 0xb8, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x09, 0x60, + 0x04, 0x00, 0x00, 0x00, 0xc2, 0xd4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc3, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x72, 0x08, 0x00, 0x00, 0x00, + 0xc3, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc3, 0x64, 0x00, 0x00, 0x00, 0x00, 0x09, 0x7a, + 0x08, 0x00, 0x00, 0x00, 0xc3, 0x7a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x8c, 0x01, 0x00, 0x00, 0x00, + 0xc3, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x09, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0xc3, 0xea, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, + 0x00, 0x00, 0x09, 0xb6, 0x01, 0x00, 0x00, 0x00, + 0xc4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x09, 0xc8, + 0x08, 0x00, 0x00, 0x00, 0xc4, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc4, 0x82, 0x6e, 0x00, + 0x00, 0x00, 0x09, 0xe8, 0x04, 0x00, 0x00, 0x00, + 0xc4, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x0a, 0x02, + 0x01, 0x00, 0x00, 0x00, 0xc4, 0xb4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, + 0x00, 0x00, 0x0a, 0x18, 0x00, 0x00, 0x00, 0x00, + 0xc4, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x0a, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0xc4, 0xec, 0x00, 0x00, + 0xc5, 0x16, 0x00, 0x00, 0x00, 0x00, 0x62, 0x01, + 0x00, 0x00, 0x0a, 0x3c, 0x01, 0x00, 0x00, 0x00, + 0xc5, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x0a, 0x48, + 0x01, 0x00, 0x00, 0x00, 0xc6, 0xb4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, + 0x00, 0x00, 0x05, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, + 0x00, 0x00, 0x05, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x75, 0x00 +}; + +static const ByteProvider kEoB1SpellPropertiesAmigaProvider = { ARRAYSIZE(kEoB1SpellPropertiesAmiga), kEoB1SpellPropertiesAmiga }; + +static const byte kEoB1MagicFlightPropsAmiga[80] = { + 0x04, 0xff, 0x41, 0x09, 0x0a, 0xff, 0x04, 0x05, + 0x0d, 0xff, 0x7a, 0x06, 0x0e, 0xff, 0x0c, 0x05, + 0x10, 0xff, 0x4a, 0x0a, 0x12, 0x06, 0x38, 0x07, + 0x15, 0x06, 0x7a, 0x08, 0x19, 0xff, 0x4a, 0x0a, + 0x2f, 0xff, 0x4b, 0x06, 0x32, 0xff, 0x09, 0x07, + 0x33, 0xff, 0x09, 0x0a, 0x34, 0xff, 0x09, 0x0a, + 0x01, 0x01, 0x00, 0x00, 0x03, 0xfd, 0x02, 0xfe, + 0x01, 0xff, 0x00, 0x00, 0x00, 0x98, 0x00, 0x18, + 0x00, 0x78, 0x00, 0x38, 0x00, 0x58, 0x40, 0x40, + 0x38, 0x38, 0x38, 0x38, 0xe0, 0x20, 0x01, 0xff +}; + +static const ByteProvider kEoB1MagicFlightPropsAmigaProvider = { ARRAYSIZE(kEoB1MagicFlightPropsAmiga), kEoB1MagicFlightPropsAmiga }; + +static const byte kEoB1TurnUndeadEffectAmiga[140] = { + 0x0a, 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x0a, + 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x10, 0x0d, 0x0a, 0x07, + 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x14, 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x14, + 0x13, 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x63, 0x63, 0x14, 0x13, + 0x10, 0x0d, 0x0a, 0x07, 0x04, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, + 0x0d, 0x0a, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x63, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d, + 0x0a, 0x07, 0x07, 0x04, 0x04, 0x00, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0d, 0x0a, + 0x0a, 0x07, 0x07, 0x04 +}; + +static const ByteProvider kEoB1TurnUndeadEffectAmigaProvider = { ARRAYSIZE(kEoB1TurnUndeadEffectAmiga), kEoB1TurnUndeadEffectAmiga }; + +static const byte kEoB1BurningHandsDestAmiga[8] = { + 0x02, 0x03, 0x00, 0x02, 0x00, 0x01, 0x01, 0x03 +}; + +static const ByteProvider kEoB1BurningHandsDestAmigaProvider = { ARRAYSIZE(kEoB1BurningHandsDestAmiga), kEoB1BurningHandsDestAmiga }; + +static const byte kEoB1ConeOfColdDest1Amiga[7] = { + 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1 +}; + +static const ByteProvider kEoB1ConeOfColdDest1AmigaProvider = { ARRAYSIZE(kEoB1ConeOfColdDest1Amiga), kEoB1ConeOfColdDest1Amiga }; + +static const byte kEoB1ConeOfColdDest2Amiga[7] = { + 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23 +}; + +static const ByteProvider kEoB1ConeOfColdDest2AmigaProvider = { ARRAYSIZE(kEoB1ConeOfColdDest2Amiga), kEoB1ConeOfColdDest2Amiga }; + +static const byte kEoB1ConeOfColdDest3Amiga[7] = { + 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61 +}; + +static const ByteProvider kEoB1ConeOfColdDest3AmigaProvider = { ARRAYSIZE(kEoB1ConeOfColdDest3Amiga), kEoB1ConeOfColdDest3Amiga }; + +static const byte kEoB1ConeOfColdDest4Amiga[7] = { + 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD +}; + +static const ByteProvider kEoB1ConeOfColdDest4AmigaProvider = { ARRAYSIZE(kEoB1ConeOfColdDest4Amiga), kEoB1ConeOfColdDest4Amiga }; + +static const byte kEoB1ConeOfColdGfxTblAmiga[8] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1e, 0x1d, 0x00 +}; + +static const ByteProvider kEoB1ConeOfColdGfxTblAmigaProvider = { ARRAYSIZE(kEoB1ConeOfColdGfxTblAmiga), kEoB1ConeOfColdGfxTblAmiga }; + +static const byte kEoB1DscDoorShapeIndexAmiga[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 +}; + +static const ByteProvider kEoB1DscDoorShapeIndexAmigaProvider = { ARRAYSIZE(kEoB1DscDoorShapeIndexAmiga), kEoB1DscDoorShapeIndexAmiga }; + +static const byte kEoB1WllFlagPresetAmiga[25] = { + 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F, + 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xAA, 0x8A, 0x8A, + 0x8A, 0x9F, 0xAA, 0x8A, 0x8A, 0x8A, 0x9F, 0x03, + 0x03 +}; + +static const ByteProvider kEoB1WllFlagPresetAmigaProvider = { ARRAYSIZE(kEoB1WllFlagPresetAmiga), kEoB1WllFlagPresetAmiga }; + +static const uint16 kEoB1DscShapeCoordsAmiga[180] = { + 0xff91, 0xffc1, 0xffa1, 0xffc1, 0xff75, 0xffc5, 0xff8b, 0xffc5, + 0xff88, 0xffc3, 0xffb4, 0xffc1, 0xffc4, 0xffc1, 0xffa1, 0xffc5, + 0xffb6, 0xffc5, 0xffb0, 0xffc3, 0xffd5, 0xffc1, 0xffe5, 0xffc1, + 0xffcb, 0xffc5, 0xffe1, 0xffc5, 0xffd8, 0xffc3, 0xfff8, 0xffc1, + 0x0008, 0xffc1, 0xfff6, 0xffc5, 0x000a, 0xffc5, 0x0000, 0xffc3, + 0x001b, 0xffc1, 0x002b, 0xffc1, 0x001f, 0xffc5, 0x0035, 0xffc5, + 0x0028, 0xffc3, 0x003c, 0xffc1, 0x004c, 0xffc1, 0x004a, 0xffc5, + 0x005f, 0xffc5, 0x0050, 0xffc3, 0x005f, 0xffc1, 0x006f, 0xffc1, + 0x0075, 0xffc5, 0x008b, 0xffc5, 0x0078, 0xffc3, 0xff8a, 0xffcb, + 0xffa4, 0xffcb, 0xff68, 0xffd3, 0xff88, 0xffd3, 0xff8a, 0xffce, + 0xffbe, 0xffcb, 0xffd8, 0xffcb, 0xffac, 0xffd3, 0xffcd, 0xffd3, + 0xffc5, 0xffce, 0xfff3, 0xffcb, 0x000d, 0xffcb, 0xfff0, 0xffd3, + 0x0010, 0xffd3, 0x0000, 0xffce, 0x0028, 0xffcb, 0x0042, 0xffcb, + 0x0033, 0xffd3, 0x0054, 0xffd3, 0x003b, 0xffce, 0x005c, 0xffcb, + 0x0076, 0xffcb, 0x0078, 0xffd3, 0x0098, 0xffd3, 0x0076, 0xffce, + 0xff92, 0xffdd, 0xffbd, 0xffdd, 0xff74, 0xffea, 0xffad, 0xffea, + 0xff9e, 0xffe2, 0xffea, 0xffdd, 0x0016, 0xffdd, 0xffe5, 0xffea, + 0x001b, 0xffea, 0x0000, 0xffe2, 0x0043, 0xffdd, 0x006e, 0xffdd, + 0x0053, 0xffea, 0x008c, 0xffea, 0x0062, 0xffe2, 0xff80, 0xfffc, + 0x0080, 0xfffc, 0xff80, 0xffbe, 0x0080, 0xffbe, 0x0080, 0x0000, + 0xffda, 0xfffc, 0x0026, 0xfffc, 0xffda, 0xffbe, 0x0026, 0xffbe, + 0x0000, 0x0000, 0xff80, 0xfffc, 0x0080, 0xfffc, 0xff80, 0xffbe, + 0x0080, 0xffbe, 0x0080, 0x0000 +}; + +static const Uint16Provider kEoB1DscShapeCoordsAmigaProvider = { ARRAYSIZE(kEoB1DscShapeCoordsAmiga), kEoB1DscShapeCoordsAmiga }; + +static const byte kEoB1DscDoorScaleOffsAmiga[32] = { + 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D, + 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1F +}; + +static const ByteProvider kEoB1DscDoorScaleOffsAmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleOffsAmiga), kEoB1DscDoorScaleOffsAmiga }; + +static const byte kEoB1DscDoorScaleMult1Amiga[4] = { + 0x08, 0x0C, 0x12, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult1AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult1Amiga), kEoB1DscDoorScaleMult1Amiga }; + +static const byte kEoB1DscDoorScaleMult2Amiga[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult2AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult2Amiga), kEoB1DscDoorScaleMult2Amiga }; + +static const byte kEoB1DscDoorScaleMult3Amiga[4] = { + 0x04, 0x06, 0x09, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult3AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult3Amiga), kEoB1DscDoorScaleMult3Amiga }; + +static const byte kEoB1DscDoorScaleMult4Amiga[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult4AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult4Amiga), kEoB1DscDoorScaleMult4Amiga }; + +static const byte kEoB1DscDoorScaleMult5Amiga[4] = { + 0x07, 0x0B, 0x0E, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult5AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult5Amiga), kEoB1DscDoorScaleMult5Amiga }; + +static const byte kEoB1DscDoorScaleMult6Amiga[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1DscDoorScaleMult6AmigaProvider = { ARRAYSIZE(kEoB1DscDoorScaleMult6Amiga), kEoB1DscDoorScaleMult6Amiga }; + +static const byte kEoB1DscDoorXEAmiga[32] = { + 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D, + 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1F +}; + +static const ByteProvider kEoB1DscDoorXEAmigaProvider = { ARRAYSIZE(kEoB1DscDoorXEAmiga), kEoB1DscDoorXEAmiga }; + +static const byte kEoB1DscDoorY1Amiga[4] = { + 0x3A, 0x47, 0x56, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY1AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY1Amiga), kEoB1DscDoorY1Amiga }; + +static const byte kEoB1DscDoorY3Amiga[4] = { + 0x20, 0x20, 0x18, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY3AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY3Amiga), kEoB1DscDoorY3Amiga }; + +static const byte kEoB1DscDoorY4Amiga[4] = { + 0x1E, 0x18, 0x10, 0x30 +}; + +static const ByteProvider kEoB1DscDoorY4AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY4Amiga), kEoB1DscDoorY4Amiga }; + +static const byte kEoB1DscDoorY5Amiga[4] = { + 0x30, 0x34, 0x3B, 0x3A +}; + +static const ByteProvider kEoB1DscDoorY5AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY5Amiga), kEoB1DscDoorY5Amiga }; + +static const byte kEoB1DscDoorY6Amiga[4] = { + 0x3A, 0x45, 0x5A, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY6AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY6Amiga), kEoB1DscDoorY6Amiga }; + +static const byte kEoB1DscDoorY7Amiga[4] = { + 0x3B, 0x47, 0x58, 0x00 +}; + +static const ByteProvider kEoB1DscDoorY7AmigaProvider = { ARRAYSIZE(kEoB1DscDoorY7Amiga), kEoB1DscDoorY7Amiga }; + +static const uint16 kEoB1DscDoorCoordsExtAmiga[36] = { + 0x0000, 0x0000, 0xFFE8, 0x0010, 0x0020, 0x0040, 0x0048, 0x0068, + 0x0070, 0x0090, 0x00A0, 0x00C8, 0x0000, 0x0000, 0x0000, 0x0000, + 0xFFE8, 0x0030, 0x0038, 0x0078, 0x0080, 0x00C8, 0x0000, 0x0000, + 0xFFA8, 0x0020, 0x0028, 0x0088, 0x0090, 0x0108, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1DscDoorCoordsExtAmigaProvider = { ARRAYSIZE(kEoB1DscDoorCoordsExtAmiga), kEoB1DscDoorCoordsExtAmiga }; + +static const byte kEoB1DscDoorFrameY1Amiga[32] = { + 0x20, 0x18, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x18, 0x00, 0x1E, 0x18, 0x10, 0x00, + 0x3A, 0x48, 0x60, 0x78, 0x3A, 0x46, 0x56, 0x00, + 0x78, 0x78, 0x78, 0x78, 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1DscDoorFrameY1AmigaProvider = { ARRAYSIZE(kEoB1DscDoorFrameY1Amiga), kEoB1DscDoorFrameY1Amiga }; + +static const byte kEoB1DscDoorFrameY2Amiga[32] = { + 0x20, 0x18, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x18, 0x00, 0x1E, 0x18, 0x10, 0x00, + 0x3A, 0x48, 0x60, 0x78, 0x3A, 0x46, 0x56, 0x00, + 0x78, 0x78, 0x78, 0x78, 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB1DscDoorFrameY2AmigaProvider = { ARRAYSIZE(kEoB1DscDoorFrameY2Amiga), kEoB1DscDoorFrameY2Amiga }; + +static const byte kEoB1DscDoorFrameIndex1Amiga[12] = { + 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x08, 0x08, + 0x08, 0x0C, 0x0C, 0x1C +}; + +static const ByteProvider kEoB1DscDoorFrameIndex1AmigaProvider = { ARRAYSIZE(kEoB1DscDoorFrameIndex1Amiga), kEoB1DscDoorFrameIndex1Amiga }; + +static const byte kEoB1DscDoorFrameIndex2Amiga[12] = { + 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x10, 0x10, + 0x10, 0x14, 0x14, 0x18 +}; + +static const ByteProvider kEoB1DscDoorFrameIndex2AmigaProvider = { ARRAYSIZE(kEoB1DscDoorFrameIndex2Amiga), kEoB1DscDoorFrameIndex2Amiga }; + +static const byte kEoB1DscItemPosIndexAmiga[16] = { + 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02 +}; + +static const ByteProvider kEoB1DscItemPosIndexAmigaProvider = { ARRAYSIZE(kEoB1DscItemPosIndexAmiga), kEoB1DscItemPosIndexAmiga }; + +static const uint16 kEoB1DscItemShpXAmiga[18] = { + 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8, + 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8, + 0x0058, 0x0108 +}; + +static const Uint16Provider kEoB1DscItemShpXAmigaProvider = { ARRAYSIZE(kEoB1DscItemShpXAmiga), kEoB1DscItemShpXAmiga }; + +static const byte kEoB1DscItemScaleIndexAmiga[18] = { + 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, + 0x25, 0x00 +}; + +static const ByteProvider kEoB1DscItemScaleIndexAmigaProvider = { ARRAYSIZE(kEoB1DscItemScaleIndexAmiga), kEoB1DscItemScaleIndexAmiga }; + +static const byte kEoB1DscItemTileIndexAmiga[18] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B, + 0x0C, 0x0D +}; + +static const ByteProvider kEoB1DscItemTileIndexAmigaProvider = { ARRAYSIZE(kEoB1DscItemTileIndexAmiga), kEoB1DscItemTileIndexAmiga }; + +static const byte kEoB1DscItemShapeMapAmiga[90] = { + 0x00, 0x00, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04, + 0x05, 0x06, 0x07, 0x07, 0x12, 0x06, 0x0f, 0x12, + 0x14, 0x17, 0x13, 0x11, 0x15, 0x0d, 0x09, 0x09, + 0x16, 0x1f, 0x0c, 0x23, 0x0c, 0x0c, 0x0c, 0x0b, + 0x0a, 0x1c, 0x1c, 0x1a, 0x1b, 0x21, 0x1d, 0x1d, + 0x22, 0x22, 0x22, 0x00, 0x08, 0x00, 0x25, 0x18, + 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x19, 0x23, + 0x10, 0x1e, 0x24, 0x18, 0x1c, 0x20, 0x12, 0x21, + 0x1e, 0x23, 0x1c, 0x00, 0x20, 0x11, 0x11, 0x0d, + 0x1f, 0x09, 0x09, 0x15, 0x15, 0x0f, 0x05, 0x0c, + 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, + 0x1b, 0x00 +}; + +static const ByteProvider kEoB1DscItemShapeMapAmigaProvider = { ARRAYSIZE(kEoB1DscItemShapeMapAmiga), kEoB1DscItemShapeMapAmiga }; + +static const byte kEoB1DscTelptrShpCoordsAmiga[156] = { + 0x0c, 0x07, 0x1a, 0x01, 0x3e, 0x03, 0x0c, 0x1a, + 0x2a, 0x13, 0x40, 0x18, 0x02, 0x2d, 0x16, 0x25, + 0x28, 0x32, 0x36, 0x27, 0x0a, 0x3e, 0x16, 0x49, + 0x3e, 0x44, 0x06, 0x06, 0x2a, 0x04, 0x37, 0x0a, + 0x04, 0x1b, 0x1a, 0x16, 0x37, 0x1d, 0x0e, 0x2a, + 0x1b, 0x35, 0x2e, 0x28, 0x42, 0x30, 0x06, 0x47, + 0x06, 0x47, 0x2d, 0x4c, 0x0a, 0x04, 0x14, 0x00, + 0x2e, 0x01, 0x0c, 0x10, 0x1f, 0x10, 0x2f, 0x10, + 0x12, 0x18, 0x28, 0x1d, 0x01, 0x21, 0x08, 0x2a, + 0x11, 0x32, 0x2f, 0x2e, 0x1f, 0x25, 0x02, 0x02, + 0x01, 0x11, 0x01, 0x2f, 0x08, 0x1e, 0x11, 0x0e, + 0x11, 0x26, 0x1c, 0x01, 0x1e, 0x19, 0x1f, 0x33, + 0x24, 0x11, 0x26, 0x05, 0x28, 0x2b, 0x2f, 0x22, + 0x00, 0x13, 0x05, 0x01, 0x06, 0x08, 0x09, 0x0c, + 0x04, 0x1a, 0x08, 0x1f, 0x12, 0x05, 0x12, 0x15, + 0x16, 0x10, 0x1a, 0x08, 0x1a, 0x1d, 0x0a, 0x00, + 0x0a, 0x00, 0x00, 0x09, 0x00, 0x1e, 0x04, 0x11, + 0x08, 0x16, 0x08, 0x06, 0x10, 0x00, 0x11, 0x0d, + 0x12, 0x20, 0x15, 0x02, 0x14, 0x09, 0x16, 0x1b, + 0x1a, 0x14, 0x1a, 0x14 +}; + +static const ByteProvider kEoB1DscTelptrShpCoordsAmigaProvider = { ARRAYSIZE(kEoB1DscTelptrShpCoordsAmiga), kEoB1DscTelptrShpCoordsAmiga }; + +static const byte kEoB1PortalSeqDataAmiga[126] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, + 0x00, 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, + 0x02, 0x03, 0x01, 0x04, 0x00, 0x02, 0x01, 0x03, + 0x02, 0x04, 0x03, 0x02, 0x04, 0x03, 0x03, 0x04, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x03, 0x07, + 0x02, 0x08, 0x02, 0x08, 0x01, 0x09, 0x01, 0x09, + 0x01, 0x09, 0x00, 0x0a, 0xff, 0xff +}; + +static const ByteProvider kEoB1PortalSeqDataAmigaProvider = { ARRAYSIZE(kEoB1PortalSeqDataAmiga), kEoB1PortalSeqDataAmiga }; + +static const byte kEoB1DscMonsterFrmOffsTbl1Amiga[32] = { + 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01, + 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04, + 0xfc, 0xfd, 0xff, 0x02, 0x02, 0xfc, 0xfd, 0xff, + 0xff, 0x02, 0xfc, 0xfd, 0xfd, 0xff, 0x02, 0xfc +}; + +static const ByteProvider kEoB1DscMonsterFrmOffsTbl1AmigaProvider = { ARRAYSIZE(kEoB1DscMonsterFrmOffsTbl1Amiga), kEoB1DscMonsterFrmOffsTbl1Amiga }; + +static const byte kEoB1DscMonsterFrmOffsTbl2Amiga[32] = { + 0x04, 0xfe, 0x01, 0x03, 0x03, 0x04, 0xfe, 0x01, + 0x01, 0x03, 0x04, 0xfe, 0xfe, 0x01, 0x03, 0x04, + 0x04, 0xfd, 0x01, 0x02, 0x02, 0x04, 0xfd, 0x01, + 0x01, 0x02, 0x04, 0xfd, 0xfd, 0x01, 0x02, 0x04 +}; + +static const ByteProvider kEoB1DscMonsterFrmOffsTbl2AmigaProvider = { ARRAYSIZE(kEoB1DscMonsterFrmOffsTbl2Amiga), kEoB1DscMonsterFrmOffsTbl2Amiga }; + +static const uint16 kEoB1InvSlotXAmiga[27] = { + 0x00e6, 0x0116, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, + 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, 0x00b5, 0x00c7, + 0x00e1, 0x00e0, 0x00e1, 0x012a, 0x011f, 0x0115, 0x012c, 0x012c, + 0x012c, 0x00e4, 0x00f0 +}; + +static const Uint16Provider kEoB1InvSlotXAmigaProvider = { ARRAYSIZE(kEoB1InvSlotXAmiga), kEoB1InvSlotXAmiga }; + +static const byte kEoB1InvSlotYAmiga[27] = { + 0x74, 0x74, 0x28, 0x28, 0x3a, 0x3a, 0x4c, 0x4c, + 0x5e, 0x5e, 0x70, 0x70, 0x82, 0x82, 0x94, 0x94, + 0x38, 0x4c, 0x60, 0x37, 0x4b, 0x89, 0x5e, 0x70, + 0x82, 0x88, 0x88 +}; + +static const ByteProvider kEoB1InvSlotYAmigaProvider = { ARRAYSIZE(kEoB1InvSlotYAmiga), kEoB1InvSlotYAmiga }; + +static const uint16 kEoB1SlotValidationFlagsAmiga[27] = { + 0x0008, 0x0008, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + 0x0001, 0x0002, 0x0004, 0x0020, 0x0040, 0x0010, 0xFFFF, 0x0080, + 0x0080, 0x0100, 0x0100 +}; + +static const Uint16Provider kEoB1SlotValidationFlagsAmigaProvider = { ARRAYSIZE(kEoB1SlotValidationFlagsAmiga), kEoB1SlotValidationFlagsAmiga }; + +static const byte kEoB1ProjectileWeaponTypesAmiga[8] = { + 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12 +}; + +static const ByteProvider kEoB1ProjectileWeaponTypesAmigaProvider = { ARRAYSIZE(kEoB1ProjectileWeaponTypesAmiga), kEoB1ProjectileWeaponTypesAmiga }; + +static const byte kEoB1WandTypesAmiga[7] = { + 0x00, 0x12, 0x18, 0x28, 0x0D, 0xFF, 0x04 +}; + +static const ByteProvider kEoB1WandTypesAmigaProvider = { ARRAYSIZE(kEoB1WandTypesAmiga), kEoB1WandTypesAmiga }; + +static const byte kEoB1DrawObjPosIndexAmiga[20] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03, + 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01, + 0x03, 0x00, 0x02, 0x04 +}; + +static const ByteProvider kEoB1DrawObjPosIndexAmigaProvider = { ARRAYSIZE(kEoB1DrawObjPosIndexAmiga), kEoB1DrawObjPosIndexAmiga }; + +static const byte kEoB1FlightObjFlipIndexAmiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB1FlightObjFlipIndexAmigaProvider = { ARRAYSIZE(kEoB1FlightObjFlipIndexAmiga), kEoB1FlightObjFlipIndexAmiga }; + +static const byte kEoB1FlightObjShpMapAmiga[88] = { + 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0xff, 0xff, 0x03, 0xff, 0x05, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB1FlightObjShpMapAmigaProvider = { ARRAYSIZE(kEoB1FlightObjShpMapAmiga), kEoB1FlightObjShpMapAmiga }; + +static const byte kEoB1FlightObjSclIndexAmiga[72] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0x03, + 0xff, 0xff, 0x03, 0x03, 0xff, 0xff, 0x03, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB1FlightObjSclIndexAmigaProvider = { ARRAYSIZE(kEoB1FlightObjSclIndexAmiga), kEoB1FlightObjSclIndexAmiga }; + +static const byte kEoB1DscShapeIndexAmiga[36] = { + 0x01, 0x01, 0x04, 0x0a, 0x04, 0x08, 0x04, 0x01, + 0x04, 0xf8, 0x04, 0xf6, 0x00, 0x00, 0x03, 0x09, + 0x03, 0x07, 0x03, 0x01, 0x03, 0xf9, 0x03, 0xf7, + 0x02, 0x06, 0x02, 0x01, 0x02, 0xfa, 0x01, 0x05, + 0x01, 0x01, 0x01, 0xfb +}; + +static const ByteProvider kEoB1DscShapeIndexAmigaProvider = { ARRAYSIZE(kEoB1DscShapeIndexAmiga), kEoB1DscShapeIndexAmiga }; + +static const uint16 kEoB1DscXAmiga[18] = { + 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60, + 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB1DscXAmigaProvider = { ARRAYSIZE(kEoB1DscXAmiga), kEoB1DscXAmiga }; + +static const byte kEoB1DscTileIndexAmiga[18] = { + 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07, + 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F, + 0x11, 0x10 +}; + +static const ByteProvider kEoB1DscTileIndexAmigaProvider = { ARRAYSIZE(kEoB1DscTileIndexAmiga), kEoB1DscTileIndexAmiga }; + +static const byte kEoB1DscDimData1Amiga[324] = { + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd8, 0xd7, 0xd8, 0xd8, 0x02, 0xd8, 0xd8, 0xd8, + 0xd8, 0xfe, 0xd7, 0xd8, 0xd8, 0xd8, 0xd7, 0x03, + 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xfe, 0xd8, 0x08, + 0xd8, 0xd8, 0xd8, 0xfe, 0xd7, 0x06, 0xd8, 0xd8, + 0xfa, 0x03, 0xd8, 0xfd, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfa, 0xd7, + 0x10, 0xd8, 0xfd, 0xd7, 0x13, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xf2, 0xd8, 0x14, 0xd8, 0xd8, + 0xd8, 0xf0, 0xd7, 0x14, 0xd8, 0xed, 0x10, 0xd8, + 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, 0xec, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd7, 0x14, 0xd8, 0xed, + 0xd7, 0xd8, 0xd8, 0x13, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0x06, 0xd8, 0xd8, 0xfa, 0x03, 0xd8, 0xfd, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xfa, 0xd8, 0x10, 0xd8, 0xfd, 0xd7, + 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xf0, 0xd8, 0xd8, + 0xd8, 0xed, 0x10, 0xd8, 0xd8, 0x13, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd7, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x03, 0xd8, 0xfd, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xfd, 0xd8, + 0x13, 0xfd, 0xd8, 0x13, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xed, 0xd8, 0xd8, 0xd8, 0x13, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8 +}; + +static const ByteProvider kEoB1DscDimData1AmigaProvider = { ARRAYSIZE(kEoB1DscDimData1Amiga), kEoB1DscDimData1Amiga }; + +static const byte kEoB1DscDimData2Amiga[648] = { + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03, + 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02, + 0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16, + 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0e, + 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10, + 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0e, 0x16, + 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16, + 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16, + 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16, + 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0f, + 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, + 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, + 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, + 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16 +}; + +static const ByteProvider kEoB1DscDimData2AmigaProvider = { ARRAYSIZE(kEoB1DscDimData2Amiga), kEoB1DscDimData2Amiga }; + +static const byte kEoB1DscBlockMapAmiga[12] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB1DscBlockMapAmigaProvider = { ARRAYSIZE(kEoB1DscBlockMapAmiga), kEoB1DscBlockMapAmiga }; + +static const byte kEoB1DscDimMapAmiga[18] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, + 0x03, 0x03 +}; + +static const ByteProvider kEoB1DscDimMapAmigaProvider = { ARRAYSIZE(kEoB1DscDimMapAmiga), kEoB1DscDimMapAmiga }; + +static const byte kEoB1DscBlockIndexAmiga[72] = { + 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xbe, + 0xbf, 0xc0, 0xc1, 0xc2, 0xdf, 0xe0, 0xe1, 0xff, + 0x00, 0x01, 0xa3, 0xc3, 0xe3, 0x03, 0x23, 0x43, + 0x63, 0xc2, 0xe2, 0x02, 0x22, 0x42, 0xe1, 0x01, + 0x21, 0xe0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60, + 0x5f, 0x5e, 0x5d, 0x42, 0x41, 0x40, 0x3f, 0x3e, + 0x21, 0x20, 0x1f, 0x01, 0x00, 0xff, 0x5d, 0x3d, + 0x1d, 0xfd, 0xdd, 0xbd, 0x9d, 0x3e, 0x1e, 0xfe, + 0xde, 0xbe, 0x1f, 0xff, 0xdf, 0x20, 0x00, 0xe0 +}; + +static const ByteProvider kEoB1DscBlockIndexAmigaProvider = { ARRAYSIZE(kEoB1DscBlockIndexAmiga), kEoB1DscBlockIndexAmiga }; + +static const byte kEoB1ClassModifierFlagsAmiga[15] = { + 0x01, 0x01, 0x05, 0x02, 0x04, 0x08, 0x05, 0x09, + 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06 +}; + +static const ByteProvider kEoB1ClassModifierFlagsAmigaProvider = { ARRAYSIZE(kEoB1ClassModifierFlagsAmiga), kEoB1ClassModifierFlagsAmiga }; + +static const byte kEoB1MonsterStepTable01Amiga[4] = { + 0xE0, 0x01, 0x20, 0xFF +}; + +static const ByteProvider kEoB1MonsterStepTable01AmigaProvider = { ARRAYSIZE(kEoB1MonsterStepTable01Amiga), kEoB1MonsterStepTable01Amiga }; + +static const byte kEoB1MonsterStepTable2Amiga[8] = { + 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00 +}; + +static const ByteProvider kEoB1MonsterStepTable2AmigaProvider = { ARRAYSIZE(kEoB1MonsterStepTable2Amiga), kEoB1MonsterStepTable2Amiga }; + +static const byte kEoB1MonsterStepTable3Amiga[8] = { + 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00 +}; + +static const ByteProvider kEoB1MonsterStepTable3AmigaProvider = { ARRAYSIZE(kEoB1MonsterStepTable3Amiga), kEoB1MonsterStepTable3Amiga }; + +static const byte kEoB1MonsterCloseAttPosTable1Amiga[4] = { + 0x00, 0x01, 0x03, 0x02 +}; + +static const ByteProvider kEoB1MonsterCloseAttPosTable1AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttPosTable1Amiga), kEoB1MonsterCloseAttPosTable1Amiga }; + +static const byte kEoB1MonsterCloseAttPosTable21Amiga[8] = { + 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03 +}; + +static const ByteProvider kEoB1MonsterCloseAttPosTable21AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttPosTable21Amiga), kEoB1MonsterCloseAttPosTable21Amiga }; + +static const byte kEoB1MonsterCloseAttChkTable1Amiga[16] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00 +}; + +static const ByteProvider kEoB1MonsterCloseAttChkTable1AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttChkTable1Amiga), kEoB1MonsterCloseAttChkTable1Amiga }; + +static const byte kEoB1MonsterCloseAttChkTable2Amiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB1MonsterCloseAttChkTable2AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttChkTable2Amiga), kEoB1MonsterCloseAttChkTable2Amiga }; + +static const byte kEoB1MonsterCloseAttDstTable1Amiga[16] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB1MonsterCloseAttDstTable1AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttDstTable1Amiga), kEoB1MonsterCloseAttDstTable1Amiga }; + +static const byte kEoB1MonsterCloseAttDstTable2Amiga[48] = { + 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x05, 0x03, 0x01, 0x04, + 0x02, 0x00, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04, + 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x00, 0x00, 0x02, 0x04, 0x01, + 0x03, 0x05, 0x04, 0x02, 0x00, 0x05, 0x03, 0x01 +}; + +static const ByteProvider kEoB1MonsterCloseAttDstTable2AmigaProvider = { ARRAYSIZE(kEoB1MonsterCloseAttDstTable2Amiga), kEoB1MonsterCloseAttDstTable2Amiga }; + +static const byte kEoB1MonsterProximityTableAmiga[32] = { + 0x02, 0x03, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00, + 0x00, 0x02, 0x01, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x01, 0x00, 0x03, 0x02, 0x00, 0x01, 0x02, 0x03, + 0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, 0x00 +}; + +static const ByteProvider kEoB1MonsterProximityTableAmigaProvider = { ARRAYSIZE(kEoB1MonsterProximityTableAmiga), kEoB1MonsterProximityTableAmiga }; + +static const byte kEoB1FindBlockMonstersTableAmiga[64] = { + 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02, + 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00, + 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02, + 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00, + 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02, + 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00, + 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02, + 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00 +}; + +static const ByteProvider kEoB1FindBlockMonstersTableAmigaProvider = { ARRAYSIZE(kEoB1FindBlockMonstersTableAmiga), kEoB1FindBlockMonstersTableAmiga }; + +static const byte kEoB1MonsterDirChangeTableAmiga[48] = { + 0xff, 0x06, 0x02, 0xff, 0x00, 0x07, 0x01, 0xff, + 0x04, 0x05, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB1MonsterDirChangeTableAmigaProvider = { ARRAYSIZE(kEoB1MonsterDirChangeTableAmiga), kEoB1MonsterDirChangeTableAmiga }; + +static const uint16 kEoB1EncodeMonsterDefsAmiga[168] = { + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0028, 0x000c, 0x0039, + 0x0013, 0x0028, 0x000c, 0x0039, 0x001f, 0x0000, 0x0007, 0x0060, + 0x0000, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, + 0x000e, 0x0060, 0x0005, 0x0038, 0x0000, 0x0000, 0x0005, 0x0042, + 0x0007, 0x0000, 0x0008, 0x0027, 0x0013, 0x0000, 0x0008, 0x0027, + 0x001f, 0x0000, 0x0005, 0x0042, 0x001d, 0x0060, 0x0005, 0x0038, + 0x000e, 0x0098, 0x0003, 0x0020, 0x0000, 0x0000, 0x0004, 0x0030, + 0x0007, 0x0000, 0x0005, 0x001a, 0x0013, 0x0000, 0x0005, 0x001a, + 0x001f, 0x0000, 0x0004, 0x0030, 0x001f, 0x0098, 0x0003, 0x0020, + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0000, 0x0007, 0x0060, + 0x000e, 0x0000, 0x0007, 0x0060, 0x0015, 0x0000, 0x0007, 0x0060, + 0x001c, 0x0000, 0x0007, 0x0060, 0x0000, 0x0060, 0x0007, 0x0060, + 0x0007, 0x0060, 0x0006, 0x003f, 0x000d, 0x0060, 0x0006, 0x003f, + 0x0013, 0x0060, 0x0006, 0x003f, 0x0019, 0x0060, 0x0006, 0x003f, + 0x001b, 0x0060, 0x0005, 0x0038, 0x0020, 0x0060, 0x0005, 0x0038, + 0x0007, 0x008c, 0x0003, 0x002b, 0x000b, 0x008c, 0x0003, 0x002b, + 0x000f, 0x008c, 0x0003, 0x002b, 0x0013, 0x008c, 0x0003, 0x002b, + 0x0013, 0x0098, 0x0003, 0x0020, 0x0016, 0x0098, 0x0003, 0x0020, + 0x0000, 0x0000, 0x000a, 0x0057, 0x000a, 0x0000, 0x000a, 0x0057, + 0x0014, 0x0000, 0x000a, 0x0057, 0x001e, 0x0000, 0x000a, 0x0057, + 0x0000, 0x0058, 0x000a, 0x0057, 0x000a, 0x0058, 0x000a, 0x0057 +}; + +static const Uint16Provider kEoB1EncodeMonsterDefsAmigaProvider = { ARRAYSIZE(kEoB1EncodeMonsterDefsAmiga), kEoB1EncodeMonsterDefsAmiga }; + +static const EoBCharacter kEoB1NpcPresetsAmiga[9] = { + { 0x00, 0x01, "Anya", + 18, 18, 59, 59, 5, 5, 11, 11, 14, 14, 16, 16, 9, 9, + 45, 45, 10, 0, 1, 0, 2, -1, 100, { 4, 0, 0 }, + { 0x00001F40, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Beohram", + 17, 17, 0, 0, 9, 9, 15, 15, 13, 13, 18, 18, 17, 17, + 55, 55, 10, 0, 0, 0, 0, -2, 100, { 7, 0, 0 }, + { 0x000130B0, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Kirath", + 11, 11, 0, 0, 17, 17, 13, 13, 18, 18, 8, 8, 12, 12, + 20, 20, 10, 0, 4, 3, 4, -3, 100, { 7, 0, 0 }, + { 0x00011170, 0x00000000, 0x00000000 }, 0x00B3126B, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Ileria", + 10, 10, 0, 0, 12, 12, 9, 9, 15, 15, 17, 17, 17, 17, + 52, 52, 10, 0, 4, 4, 0, -4, 100, { 6, 0, 0 }, + { 0x00004E20, 0x00000000, 0x00000000 }, 0xFFFFFFFF, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Tyrra", + 16, 16, 0, 0, 14, 14, 16, 16, 18, 18, 17, 17, 7, 7, + 45, 45, 10, 0, 1, 1, 2, -5, 100, { 6, 0, 0 }, + { 0x0000CF08, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Tod Uphill", + 17, 17, 0, 0, 11, 11, 14, 14, 19, 19, 18, 18, 16, 16, + 32, 32, 10, 0, 10, 5, 5, -6, 100, { 5, 0, 0 }, + { 0x00002D3F, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Taghor", + 17, 17, 0, 0, 11, 11, 15, 15, 15, 15, 19, 19, 9, 9, + 3, 45, 3, 0, 6, 0, 1, -7, 25, { 5, 0, 0 }, + { 0x00003F6A, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0029, 0x0000, 0x002B, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Dohrum", + 18, 18, 29, 29, 13, 13, 11, 11, 16, 16, 17, 17, 14, 14, + 28, 28, 10, 0, 6, 0, 0, -8, 100, { 3, 0, 0 }, + { 0x000013A0, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0024, 0x0000, 0x0030, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0029, 0x0000, 0x002B, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Keirgar", + 18, 18, 92, 92, 15, 15, 15, 15, 12, 12, 19, 19, 17, 17, + 3, 45, 3, 0, 6, 0, 1, -9, 25, { 5, 0, 0 }, + { 0x00001F40, 0x00000000, 0x00000000 }, 0x00000000, + { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } } +}; + +static const EoBCharacterProvider kEoB1NpcPresetsAmigaProvider = { ARRAYSIZE(kEoB1NpcPresetsAmiga), kEoB1NpcPresetsAmiga }; + +static const byte kEoB1CouncilAnimData1Amiga[78] = { + 0x21, 0x58, 0x03, 0x10, 0x07, 0x60, 0x24, 0x58, + 0x03, 0x10, 0x07, 0x60, 0x00, 0x0b, 0x68, 0x02, + 0x08, 0x0b, 0x60, 0x0d, 0x68, 0x02, 0x08, 0x0b, + 0x60, 0x00, 0x0f, 0x68, 0x01, 0x08, 0x0f, 0x48, + 0x10, 0x68, 0x01, 0x08, 0x0f, 0x48, 0x00, 0x07, + 0x68, 0x02, 0x08, 0x21, 0x58, 0x09, 0x68, 0x02, + 0x08, 0x21, 0x58, 0x00, 0x00, 0x70, 0x03, 0x10, + 0x25, 0x60, 0x00, 0x80, 0x03, 0x10, 0x25, 0x60, + 0x00, 0x21, 0x48, 0x03, 0x10, 0x19, 0x50, 0x24, + 0x48, 0x03, 0x10, 0x19, 0x50, 0x00 +}; + +static const ByteProvider kEoB1CouncilAnimData1AmigaProvider = { ARRAYSIZE(kEoB1CouncilAnimData1Amiga), kEoB1CouncilAnimData1Amiga }; + +static const byte kEoB1CouncilAnimData2Amiga[78] = { + 0x0f, 0x98, 0x03, 0x18, 0x00, 0x40, 0x0c, 0x98, + 0x03, 0x18, 0x00, 0x40, 0x00, 0x06, 0x70, 0x03, + 0x20, 0x07, 0x38, 0x03, 0x70, 0x03, 0x20, 0x07, + 0x38, 0x00, 0x03, 0x90, 0x03, 0x20, 0x0d, 0x38, + 0x00, 0x90, 0x03, 0x20, 0x0d, 0x38, 0x00, 0x09, + 0x98, 0x03, 0x18, 0x19, 0x38, 0x06, 0x98, 0x03, + 0x18, 0x19, 0x38, 0x00, 0x15, 0x98, 0x03, 0x18, + 0x1f, 0x40, 0x12, 0x98, 0x03, 0x18, 0x1f, 0x40, + 0x00, 0x1b, 0x98, 0x03, 0x18, 0x25, 0x38, 0x18, + 0x98, 0x03, 0x18, 0x25, 0x38, 0x00 +}; + +static const ByteProvider kEoB1CouncilAnimData2AmigaProvider = { ARRAYSIZE(kEoB1CouncilAnimData2Amiga), kEoB1CouncilAnimData2Amiga }; + +static const byte kEoB1CouncilAnimData3Amiga[12] = { + 0x1f, 0x68, 0x07, 0x30, 0x11, 0x40, 0x18, 0x68, + 0x07, 0x30, 0x11, 0x40 +}; + +static const ByteProvider kEoB1CouncilAnimData3AmigaProvider = { ARRAYSIZE(kEoB1CouncilAnimData3Amiga), kEoB1CouncilAnimData3Amiga }; + +static const byte kEoB1CouncilAnimData4Amiga[24] = { + 0x00, 0xb0, 0x05, 0x10, 0x00, 0x78, 0x09, 0x70, + 0x04, 0x28, 0x0c, 0x68, 0x11, 0x68, 0x07, 0x30, + 0x11, 0x60, 0x00, 0xb0, 0x05, 0x10, 0x1e, 0x78 +}; + +static const ByteProvider kEoB1CouncilAnimData4AmigaProvider = { ARRAYSIZE(kEoB1CouncilAnimData4Amiga), kEoB1CouncilAnimData4Amiga }; + +static const byte kEoB1EyesAnimDataAmiga[28] = { + 0x01, 0x00, 0x0f, 0x01, 0x00, 0x0f, 0x02, 0x03, + 0x04, 0x0f, 0x01, 0x04, 0x0f, 0x01, 0x04, 0x0f, + 0x01, 0x04, 0x0f, 0x03, 0x02, 0x00, 0x0f, 0x02, + 0x03, 0x04, 0x28, 0xff +}; + +static const ByteProvider kEoB1EyesAnimDataAmigaProvider = { ARRAYSIZE(kEoB1EyesAnimDataAmiga), kEoB1EyesAnimDataAmiga }; + +static const uint16 kEoB1HandsAnimDataAmiga[24] = { + 0xfffd, 0x004c, 0x0018, 0x0047, 0x0036, 0x0041, 0x004c, 0x0039, + 0x0059, 0x0032, 0x00db, 0x0055, 0x00c2, 0x0049, 0x00a9, 0x003c, + 0x0090, 0x0030, 0x0057, 0x0035, 0x0059, 0x0034, 0x005b, 0x0033 +}; + +static const Uint16Provider kEoB1HandsAnimDataAmigaProvider = { ARRAYSIZE(kEoB1HandsAnimDataAmiga), kEoB1HandsAnimDataAmiga }; + +static const byte kEoB1TextFrameDurationAmiga[153] = { + 0x04, 0x02, 0x05, 0x02, 0x0b, 0x02, 0x04, 0x02, + 0x08, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x08, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x02, 0x05, 0x7e, 0x05, + 0x02, 0x03, 0x02, 0x03, 0x7e, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x02, 0x04, 0x02, + 0x05, 0x02, 0x07, 0x02, 0x02, 0x02, 0x06, 0x02, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, + 0x08, 0x02, 0x04, 0x02, 0x03, 0x02, 0x0a, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x02, 0x04, 0x02, 0x05, 0x02, 0x02, 0x05, + 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x02, 0x0a, + 0x7f +}; + +static const ByteProvider kEoB1TextFrameDurationAmigaProvider = { ARRAYSIZE(kEoB1TextFrameDurationAmiga), kEoB1TextFrameDurationAmiga }; + +static const char *const kEoB1SoundMapAmiga[120] = { + "", + "button", + "L1M1A", + "door", + "door", + "slam", + "button", + "button", + "transmute", + "eat", + "magica", + "throw", + "plate", + "passage", + "unlock", + "teleport", + "undead", + "pit", + "itemland", + "", + "", + "playhit", + "death", + "text", + "electric", + "dart", + "dart", + "unlock", + "bonus", + "bump", + "", + "electric", + "playswing", + "hum", + "panel", + "explode", + "L10M2M", + "L10M2A", + "L4M1M", + "beastatk", + "L9M2M", + "L8M1A", + "L8M1M", + "L7M1A", + "L7M1M", + "L5M1A", + "L5M1M", + "flindatk", + "L3M2M", + "L4M1A", + "L8M2M", + "houndatk", + "scream", + "L6M1M", + "L3M1A", + "L3M1M", + "sloshsuck", + "L1M2M", + "flayeratk", + "", + "rustatk", + "L9M1M", + "L10M1A", + "L10M1M", + "blade", + "L7M2M", + "blade", + "L2M2M", + "L12M2A", + "L12M2M", + "", + "L11M1M", + "L11M1A", + "L2M1A", + "L2M1M", + "L1M1M", + "button", + "", + "drop", + "text", + "magicb", + "lock", + "", + "", + "", + "Missile", + "", + "burnhands", + "electric", + "fireball", + "", + "magica", + "magica", + "magica", + "magicb", + "magicb", + "acid", + "magicb", + "fireball", + "acid", + "magica", + "magicb", + "magicb", + "undead", + "magica", + "magica", + "magica", + "magicb", + "cause", + "magicb", + "magicb", + "magica", + "magicb", + "magica", + "magica", + "magica", + "magica", + "cause", + "", + "door" +}; + +static const StringListProvider kEoB1SoundMapAmigaProvider = { ARRAYSIZE(kEoB1SoundMapAmiga), kEoB1SoundMapAmiga }; + +static const char *const kEoB1LevelSoundFiles1Amiga[26] = { + "", + "", + "sloshsuck1", + "", + "blade1", + "", + "beastatk1", + "", + "rustatk1", + "", + "rustatk1", + "blade1", + "scream1", + "", + "blade1", + "", + "houndatk1", + "", + "rustatk1", + "beastatk1", + "blade1", + "", + "beastatk1", + "flayeratk1", + "", + "" +}; + +static const StringListProvider kEoB1LevelSoundFiles1AmigaProvider = { ARRAYSIZE(kEoB1LevelSoundFiles1Amiga), kEoB1LevelSoundFiles1Amiga }; + +static const char *const kEoB1LevelSoundFiles2Amiga[26] = { + "", + "", + "move1", + "leechmov1", + "move21", + "", + "move21", + "kuotoamov1", + "spidermov1", + "", + "spidermov1", + "move21", + "move21", + "", + "move1", + "move21", + "move1", + "spidermov1", + "move1", + "move21", + "mantismov1", + "move21", + "move21", + "", + "move21", + "" +}; + +static const StringListProvider kEoB1LevelSoundFiles2AmigaProvider = { ARRAYSIZE(kEoB1LevelSoundFiles2Amiga), kEoB1LevelSoundFiles2Amiga }; + +static const char *const kEoB1SoundFilesIntroAmiga[6] = { + "INTRO1.CPS", + "INTRO2.CPS", + "INTRO4.CPS", + "INTRO5.CPS", + "NEWINTRO1.CPS", + "CHARGEN1.CPS" +}; + +static const StringListProvider kEoB1SoundFilesIntroAmigaProvider = { ARRAYSIZE(kEoB1SoundFilesIntroAmiga), kEoB1SoundFilesIntroAmiga }; + +static const char *const kEoB1SoundFilesIngameAmiga[5] = { + "SFX1.CPS", + "SFX2.CPS", + "SFX3.CPS", + "SFX4.CPS", + "HUM1.CPS" +}; + +static const StringListProvider kEoB1SoundFilesIngameAmigaProvider = { ARRAYSIZE(kEoB1SoundFilesIngameAmiga), kEoB1SoundFilesIngameAmiga }; + +static const char *const kEoB1SoundFilesFinaleAmiga[3] = { + "FINALE2.CPS", + "FINALE1.CPS", + "FINALE.CPS" +}; + +static const StringListProvider kEoB1SoundFilesFinaleAmigaProvider = { ARRAYSIZE(kEoB1SoundFilesFinaleAmiga), kEoB1SoundFilesFinaleAmiga }; + diff --git a/devtools/create_kyradat/resources/eob1_amiga_english.h b/devtools/create_kyradat/resources/eob1_amiga_english.h new file mode 100644 index 0000000000..7d55174ac2 --- /dev/null +++ b/devtools/create_kyradat/resources/eob1_amiga_english.h @@ -0,0 +1,899 @@ +static const char *const kEoB1ChargenStrings1AmigaEnglish[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 kEoB1ChargenStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenStrings1AmigaEnglish), kEoB1ChargenStrings1AmigaEnglish }; + +static const char *const kEoB1ChargenStrings2AmigaEnglish[12] = { + "%s", + "%d", + "%s", + "%d", + "%d", + "%d", + "%s", + "%d", + "SELECT RACE:", + "SELECT CLASS:", + "SELECT ALIGNMENT:", + "Name:" +}; + + + +static const StringListProvider kEoB1ChargenStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenStrings2AmigaEnglish), kEoB1ChargenStrings2AmigaEnglish }; + +static const char *const kEoB1ChargenStatStringsAmigaEnglish[12] = { + "STR", + "INT", + "WIS", + "DEX", + "CON", + "CHA", + "STRENGTH", + "INTELLIGENCE", + "WISDOM", + "DEXTERITY", + "CONSTITUTION", + "CHARISMA" +}; + +static const StringListProvider kEoB1ChargenStatStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenStatStringsAmigaEnglish), kEoB1ChargenStatStringsAmigaEnglish }; + +static const char *const kEoB1ChargenRaceSexStringsAmigaEnglish[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 kEoB1ChargenRaceSexStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenRaceSexStringsAmigaEnglish), kEoB1ChargenRaceSexStringsAmigaEnglish }; + +static const char *const kEoB1ChargenClassStringsAmigaEnglish[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 kEoB1ChargenClassStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenClassStringsAmigaEnglish), kEoB1ChargenClassStringsAmigaEnglish }; + +static const char *const kEoB1ChargenAlignmentStringsAmigaEnglish[9] = { + "LAWFUL GOOD", + "NEUTRAL GOOD", + "CHAOTIC GOOD", + "LAWFUL NEUTRAL", + "TRUE NEUTRAL", + "CHAOTIC NEUTRAL", + "LAWFUL EVIL", + "NEUTRAL EVIL", + "CHAOTIC EVIL" +}; + +static const StringListProvider kEoB1ChargenAlignmentStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenAlignmentStringsAmigaEnglish), kEoB1ChargenAlignmentStringsAmigaEnglish }; + +static const char *const kEoB1ChargenEnterGameStringsAmigaEnglish[1] = { + " Entering game.\r Please wait." +}; + +static const StringListProvider kEoB1ChargenEnterGameStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ChargenEnterGameStringsAmigaEnglish), kEoB1ChargenEnterGameStringsAmigaEnglish }; + +static const char *const kEoB1MainMenuStringsAmigaEnglish[3] = { + "LOAD GAME IN PROGRESS\r", + "START A NEW PARTY\r", + "EXIT TO DOS\r" +}; + +static const StringListProvider kEoB1MainMenuStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MainMenuStringsAmigaEnglish), kEoB1MainMenuStringsAmigaEnglish }; + +static const char *const kEoB1BonusStringsAmigaEnglish[3] = { + "Congratulations on completing all 12 Beholder Bonuses.\r\rThe names of the character in your winning Beholder Bonus party are:\r\r", + "\r", + "\r\rPassword: %04x\r" +}; + +static const StringListProvider kEoB1BonusStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1BonusStringsAmigaEnglish), kEoB1BonusStringsAmigaEnglish }; + +static const char *const kEoB1TurnUndeadStringAmigaEnglish[1] = { + "\x06\x06""%s uses the power to turn undead!""\x06\x1F""\r" +}; + +static const StringListProvider kEoB1TurnUndeadStringAmigaEnglishProvider = { ARRAYSIZE(kEoB1TurnUndeadStringAmigaEnglish), kEoB1TurnUndeadStringAmigaEnglish }; + +static const char *const kEoB1Npc0StringsAmigaEnglish[2] = { + "\r I wish you luck in your travels.", + "Which should be resurrected?" +}; + +static const StringListProvider kEoB1Npc0StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc0StringsAmigaEnglish), kEoB1Npc0StringsAmigaEnglish }; + +static const char *const kEoB1Npc11StringsAmigaEnglish[3] = { + "Tend his wounds", + "Talk", + "Leave" +}; + +static const StringListProvider kEoB1Npc11StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc11StringsAmigaEnglish), kEoB1Npc11StringsAmigaEnglish }; + +static const char *const kEoB1Npc12StringsAmigaEnglish[2] = { + "Tend his wounds", + "Leave" +}; + +static const StringListProvider kEoB1Npc12StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc12StringsAmigaEnglish), kEoB1Npc12StringsAmigaEnglish }; + +static const char *const kEoB1Npc21StringsAmigaEnglish[2] = { + "Hear proposal", + "Leave" +}; + +static const StringListProvider kEoB1Npc21StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc21StringsAmigaEnglish), kEoB1Npc21StringsAmigaEnglish }; + +static const char *const kEoB1Npc22StringsAmigaEnglish[2] = { + "Help him", + "Leave" +}; + +static const StringListProvider kEoB1Npc22StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc22StringsAmigaEnglish), kEoB1Npc22StringsAmigaEnglish }; + +static const char *const kEoB1Npc31StringsAmigaEnglish[2] = { + "Heal Party", + "Leave" +}; + +static const StringListProvider kEoB1Npc31StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc31StringsAmigaEnglish), kEoB1Npc31StringsAmigaEnglish }; + +static const char *const kEoB1Npc32StringsAmigaEnglish[3] = { + "Heal Party", + "Resurrect Dead", + "Leave" +}; + +static const StringListProvider kEoB1Npc32StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc32StringsAmigaEnglish), kEoB1Npc32StringsAmigaEnglish }; + +static const char *const kEoB1Npc4StringsAmigaEnglish[2] = { + "Attack", + "Bribe" +}; + +static const StringListProvider kEoB1Npc4StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc4StringsAmigaEnglish), kEoB1Npc4StringsAmigaEnglish }; + +static const char *const kEoB1Npc5StringsAmigaEnglish[3] = { + "Kill her", + "Hear her out", + "Let her go" +}; + +static const StringListProvider kEoB1Npc5StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc5StringsAmigaEnglish), kEoB1Npc5StringsAmigaEnglish }; + +static const char *const kEoB1Npc6StringsAmigaEnglish[2] = { + "Surrender", + "Attack" +}; + +static const StringListProvider kEoB1Npc6StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc6StringsAmigaEnglish), kEoB1Npc6StringsAmigaEnglish }; + +static const char *const kEoB1Npc7StringsAmigaEnglish[3] = { + "Free Him", + "Kill Him", + "Leave" +}; + +static const StringListProvider kEoB1Npc7StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1Npc7StringsAmigaEnglish), kEoB1Npc7StringsAmigaEnglish }; + +static const char *const kEoB1PryDoorStringsAmigaEnglish[7] = { + "Nobody is able to force the door.\r", + "The party forces the door.\r", + "%s forces the door!\r", + "The party tries to force the door and fails.\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" +}; + +static const StringListProvider kEoB1PryDoorStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1PryDoorStringsAmigaEnglish), kEoB1PryDoorStringsAmigaEnglish }; + +static const char *const kEoB1WarningStringsAmigaEnglish[3] = { + "You can't go that way.\r", + "%s isn't capable of eating food!\r", + "You may only eat food!\r" +}; + +static const StringListProvider kEoB1WarningStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1WarningStringsAmigaEnglish), kEoB1WarningStringsAmigaEnglish }; + +static const char *const kEoB1ItemSuffixStringsRingsAmigaEnglish[4] = { + "Adornment", + "Wizardry", + "Sustenance", + "Feather Fall" +}; + +static const StringListProvider kEoB1ItemSuffixStringsRingsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsRingsAmigaEnglish), kEoB1ItemSuffixStringsRingsAmigaEnglish }; + +static const char *const kEoB1ItemSuffixStringsPotionsAmigaEnglish[8] = { + "Giant Strength", + "Healing", + "Extra Healing", + "Poison", + "Vitality", + "Speed", + "Invisibility", + "Cure Poison" +}; + +static const StringListProvider kEoB1ItemSuffixStringsPotionsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsPotionsAmigaEnglish), kEoB1ItemSuffixStringsPotionsAmigaEnglish }; + +static const char *const kEoB1ItemSuffixStringsWandsAmigaEnglish[7] = { + "Stick", + "Lightning", + "Frost", + "Curing", + "Fireball", + "Silvias", + "Magic Missile" +}; + +static const StringListProvider kEoB1ItemSuffixStringsWandsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsWandsAmigaEnglish), kEoB1ItemSuffixStringsWandsAmigaEnglish }; + +static const char *const kEoB1RipItemStringsAmigaEnglish[3] = { + "%s has lost her ", + "%s has lost his ", + ".\r" +}; + +static const StringListProvider kEoB1RipItemStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1RipItemStringsAmigaEnglish), kEoB1RipItemStringsAmigaEnglish }; + +static const char *const kEoB1CursedStringAmigaEnglish[1] = { + "Cursed %s %d" +}; + +static const StringListProvider kEoB1CursedStringAmigaEnglishProvider = { ARRAYSIZE(kEoB1CursedStringAmigaEnglish), kEoB1CursedStringAmigaEnglish }; + +static const char *const kEoB1MagicObjectStringsAmigaEnglish[5] = { + "Mage Scroll", + "Cleric Scroll", + "Ring", + "Potion", + "Wand" +}; + +static const StringListProvider kEoB1MagicObjectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicObjectStringsAmigaEnglish), kEoB1MagicObjectStringsAmigaEnglish }; + +static const char *const kEoB1MagicObjectString5AmigaEnglish[1] = { + "Stick" +}; + +static const StringListProvider kEoB1MagicObjectString5AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicObjectString5AmigaEnglish), kEoB1MagicObjectString5AmigaEnglish }; + +static const char *const kEoB1PatternSuffixAmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB1PatternSuffixAmigaEnglishProvider = { ARRAYSIZE(kEoB1PatternSuffixAmigaEnglish), kEoB1PatternSuffixAmigaEnglish }; + +static const char *const kEoB1PatternGrFix1AmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB1PatternGrFix1AmigaEnglishProvider = { ARRAYSIZE(kEoB1PatternGrFix1AmigaEnglish), kEoB1PatternGrFix1AmigaEnglish }; + +static const char *const kEoB1PatternGrFix2AmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB1PatternGrFix2AmigaEnglishProvider = { ARRAYSIZE(kEoB1PatternGrFix2AmigaEnglish), kEoB1PatternGrFix2AmigaEnglish }; + +static const char *const kEoB1ValidateArmorStringAmigaEnglish[1] = { + "%s can't wear that type of armor.\r" +}; + +static const StringListProvider kEoB1ValidateArmorStringAmigaEnglishProvider = { ARRAYSIZE(kEoB1ValidateArmorStringAmigaEnglish), kEoB1ValidateArmorStringAmigaEnglish }; + +static const char *const kEoB1ValidateNoDropStringAmigaEnglish[1] = { + "You can't put that item there.\r" +}; + +static const StringListProvider kEoB1ValidateNoDropStringAmigaEnglishProvider = { ARRAYSIZE(kEoB1ValidateNoDropStringAmigaEnglish), kEoB1ValidateNoDropStringAmigaEnglish }; + +static const char *const kEoB1PotionStringsAmigaEnglish[2] = { + "poisoned", + "%s feels %s!\r" +}; + +static const StringListProvider kEoB1PotionStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1PotionStringsAmigaEnglish), kEoB1PotionStringsAmigaEnglish }; + +static const char *const kEoB1WandStringsAmigaEnglish[2] = { + "The wand has no apparent magical effect\r", + "no effect.\r" +}; + +static const StringListProvider kEoB1WandStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1WandStringsAmigaEnglish), kEoB1WandStringsAmigaEnglish }; + +static const char *const kEoB1ItemMisuseStringsAmigaEnglish[3] = { + "%s 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 kEoB1ItemMisuseStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1ItemMisuseStringsAmigaEnglish), kEoB1ItemMisuseStringsAmigaEnglish }; + +static const char *const kEoB1TakenStringsAmigaEnglish[1] = { + " taken.\r" +}; + +static const StringListProvider kEoB1TakenStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1TakenStringsAmigaEnglish), kEoB1TakenStringsAmigaEnglish }; + +static const char *const kEoB1PotionEffectStringsAmigaEnglish[8] = { + "much stronger", + "better", + "much better", + "ill for a moment", + "no longer hungry", + "fast and agile", + "transparent", + "better" +}; + +static const StringListProvider kEoB1PotionEffectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1PotionEffectStringsAmigaEnglish), kEoB1PotionEffectStringsAmigaEnglish }; + +static const char *const kEoB1YesNoStringsAmigaEnglish[2] = { + "yes", + "no" +}; + +static const StringListProvider kEoB1YesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1YesNoStringsAmigaEnglish), kEoB1YesNoStringsAmigaEnglish }; + +static const char *const kEoB1MoreStringsAmigaEnglish[1] = { + "MORE" +}; + +static const StringListProvider kEoB1MoreStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MoreStringsAmigaEnglish), kEoB1MoreStringsAmigaEnglish }; + +static const char *const kEoB1NpcMaxStringsAmigaEnglish[1] = { + "You may only have six characters in your party. Select the one you wish to drop." +}; + +static const StringListProvider kEoB1NpcMaxStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1NpcMaxStringsAmigaEnglish), kEoB1NpcMaxStringsAmigaEnglish }; + +static const char *const kEoB1NpcJoinStringsAmigaEnglish[1] = { + "%s joins the party.\r" +}; + +static const StringListProvider kEoB1NpcJoinStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1NpcJoinStringsAmigaEnglish), kEoB1NpcJoinStringsAmigaEnglish }; + +static const char *const kEoB1CancelStringsAmigaEnglish[1] = { + "CANCEL" +}; + +static const StringListProvider kEoB1CancelStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1CancelStringsAmigaEnglish), kEoB1CancelStringsAmigaEnglish }; + +static const char *const kEoB1MenuStringsMainAmigaEnglish[8] = { + "Select Option:", + "Rest Party", + "Memorize Spells", + "Pray for Spells", + "Scribe Scrolls", + "Preferences", + "Game Options", + "Exit" +}; + +static const StringListProvider kEoB1MenuStringsMainAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsMainAmigaEnglish), kEoB1MenuStringsMainAmigaEnglish }; + +static const char *const kEoB1MenuStringsSaveLoadAmigaEnglish[8] = { + "Load Game", + "Save Game", + "Drop Character", + "Quit Game", + "Game Options:", + "\r Game saved.", + "\r Save game\r failure!", + "\r Load game\r failure!" +}; + +static const StringListProvider kEoB1MenuStringsSaveLoadAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsSaveLoadAmigaEnglish), kEoB1MenuStringsSaveLoadAmigaEnglish }; + +static const char *const kEoB1MenuStringsOnOffAmigaEnglish[2] = { + "ON", + "OFF" +}; + +static const StringListProvider kEoB1MenuStringsOnOffAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsOnOffAmigaEnglish), kEoB1MenuStringsOnOffAmigaEnglish }; + +static const char *const kEoB1MenuStringsSpellsAmigaEnglish[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 You don't have\r any Cleric able\r to pray in your\r party.", + "\r You don't have\r any Mage able to\r learn 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 kEoB1MenuStringsSpellsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsSpellsAmigaEnglish), kEoB1MenuStringsSpellsAmigaEnglish }; + +static const char *const kEoB1MenuStringsRestAmigaEnglish[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 kEoB1MenuStringsRestAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsRestAmigaEnglish), kEoB1MenuStringsRestAmigaEnglish }; + +static const char *const kEoB1MenuStringsDropAmigaEnglish[1] = { + " You cannot have\r less than four\r characters." +}; + +static const StringListProvider kEoB1MenuStringsDropAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsDropAmigaEnglish), kEoB1MenuStringsDropAmigaEnglish }; + +static const char *const kEoB1MenuStringsExitAmigaEnglish[1] = { + " Are you sure you\r wish to exit the\r game?" +}; + +static const StringListProvider kEoB1MenuStringsExitAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsExitAmigaEnglish), kEoB1MenuStringsExitAmigaEnglish }; + +static const char *const kEoB1MenuStringsStarveAmigaEnglish[1] = { + " Your party is\r starving. Do you\r wish to continue\r resting?" +}; + +static const StringListProvider kEoB1MenuStringsStarveAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsStarveAmigaEnglish), kEoB1MenuStringsStarveAmigaEnglish }; + +static const char *const kEoB1MenuStringsScribeAmigaEnglish[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 scrolls to\r be 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 kEoB1MenuStringsScribeAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsScribeAmigaEnglish), kEoB1MenuStringsScribeAmigaEnglish }; + +static const char *const kEoB1MenuStringsDrop2AmigaEnglish[3] = { + " Select the\r character you\r wish to drop.", + " Are you sure you\r wish to SAVE the\r game?", + " Are you sure you\r wish to LOAD a\r saved game?" +}; + +static const StringListProvider kEoB1MenuStringsDrop2AmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsDrop2AmigaEnglish), kEoB1MenuStringsDrop2AmigaEnglish }; + +static const char *const kEoB1MenuStringsHeadAmigaEnglish[3] = { + "Camp:", + "Preferences:", + "Game Options:" +}; + +static const StringListProvider kEoB1MenuStringsHeadAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsHeadAmigaEnglish), kEoB1MenuStringsHeadAmigaEnglish }; + +static const char *const kEoB1MenuStringsPoisonAmigaEnglish[1] = { + "Poisoned party\rmembers will die!\rRest anyway?" +}; + +static const StringListProvider kEoB1MenuStringsPoisonAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsPoisonAmigaEnglish), kEoB1MenuStringsPoisonAmigaEnglish }; + +static const char *const kEoB1MenuStringsMgcAmigaEnglish[2] = { + "%-18s %1d", + "%d of %d Remaining. " +}; + +static const StringListProvider kEoB1MenuStringsMgcAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsMgcAmigaEnglish), kEoB1MenuStringsMgcAmigaEnglish }; + +static const char *const kEoB1MenuStringsPrefsAmigaEnglish[4] = { + "Tunes are %-3s", + "Sounds are %-3s", + "Bar Graphs are %-3s", + "" +}; + +static const StringListProvider kEoB1MenuStringsPrefsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsPrefsAmigaEnglish), kEoB1MenuStringsPrefsAmigaEnglish }; + +static const char *const kEoB1MenuStringsRest2AmigaEnglish[4] = { + "%s gained %s.\r", + "%s memorized %s.\r", + "%s casts healing on %s.\r", + "Hours rested: %-4d" +}; + +static const StringListProvider kEoB1MenuStringsRest2AmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsRest2AmigaEnglish), kEoB1MenuStringsRest2AmigaEnglish }; + +static const char *const kEoB1MenuStringsRest4AmigaEnglish[1] = { + "\rYou can't rest here, monsters are near.\r" +}; + +static const StringListProvider kEoB1MenuStringsRest4AmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsRest4AmigaEnglish), kEoB1MenuStringsRest4AmigaEnglish }; + +static const char *const kEoB1MenuStringsDefeatAmigaEnglish[1] = { + "All of your party has been defeated. The minions of evil will be able to carry out their plans unhindered!\r" +}; + +static const StringListProvider kEoB1MenuStringsDefeatAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuStringsDefeatAmigaEnglish), kEoB1MenuStringsDefeatAmigaEnglish }; + +static const char *const kEoB1MenuYesNoStringsAmigaEnglish[2] = { + "Yes", + "No" +}; + +static const StringListProvider kEoB1MenuYesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MenuYesNoStringsAmigaEnglish), kEoB1MenuYesNoStringsAmigaEnglish }; + +static const char *const kEoB1CharGuiStringsHpAmigaEnglish[2] = { + "HP", + "%3d of %-3d" +}; + +static const StringListProvider kEoB1CharGuiStringsHpAmigaEnglishProvider = { ARRAYSIZE(kEoB1CharGuiStringsHpAmigaEnglish), kEoB1CharGuiStringsHpAmigaEnglish }; + +static const char *const kEoB1CharGuiStringsWp1AmigaEnglish[2] = { + "MISS", + "HACK" +}; + +static const StringListProvider kEoB1CharGuiStringsWp1AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharGuiStringsWp1AmigaEnglish), kEoB1CharGuiStringsWp1AmigaEnglish }; + +static const char *const kEoB1CharGuiStringsWrAmigaEnglish[4] = { + "CAN'T", + "REACH", + "NO", + "AMMO" +}; + +static const StringListProvider kEoB1CharGuiStringsWrAmigaEnglishProvider = { ARRAYSIZE(kEoB1CharGuiStringsWrAmigaEnglish), kEoB1CharGuiStringsWrAmigaEnglish }; + +static const char *const kEoB1CharGuiStringsSt1AmigaEnglish[6] = { + "Swapping", + "DEAD", + "UNCONSCIOUS", + "POISON (SLOW)", + "POISONED", + "PARALYZED" +}; + +static const StringListProvider kEoB1CharGuiStringsSt1AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharGuiStringsSt1AmigaEnglish), kEoB1CharGuiStringsSt1AmigaEnglish }; + +static const char *const kEoB1CharGuiStringsInAmigaEnglish[4] = { + "CHARACTER INFO", + "ARMOR CLASS", + "EXP", + "LVL" +}; + +static const StringListProvider kEoB1CharGuiStringsInAmigaEnglishProvider = { ARRAYSIZE(kEoB1CharGuiStringsInAmigaEnglish), kEoB1CharGuiStringsInAmigaEnglish }; + +static const char *const kEoB1CharStatusStrings7AmigaEnglish[1] = { + "%s no longer has giant strength.\r" +}; + +static const StringListProvider kEoB1CharStatusStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharStatusStrings7AmigaEnglish), kEoB1CharStatusStrings7AmigaEnglish }; + +static const char *const kEoB1CharStatusStrings81AmigaEnglish[1] = { + "%s feels the effects of poison!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings81AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharStatusStrings81AmigaEnglish), kEoB1CharStatusStrings81AmigaEnglish }; + +static const char *const kEoB1CharStatusStrings9AmigaEnglish[1] = { + "%s is no longer paralyzed!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings9AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharStatusStrings9AmigaEnglish), kEoB1CharStatusStrings9AmigaEnglish }; + +static const char *const kEoB1CharStatusStrings131AmigaEnglish[1] = { + "%s is %s!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings131AmigaEnglishProvider = { ARRAYSIZE(kEoB1CharStatusStrings131AmigaEnglish), kEoB1CharStatusStrings131AmigaEnglish }; + +static const char *const kEoB1LevelGainStringsAmigaEnglish[1] = { + "\x06\x06""%s has gained a level of experience.""\x06\x1F""\r" +}; + +static const StringListProvider kEoB1LevelGainStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1LevelGainStringsAmigaEnglish), kEoB1LevelGainStringsAmigaEnglish }; + +static const char *const kEoB1BookNumbersAmigaEnglish[5] = { + "First", + "Second", + "Third", + "Fourth", + "Fifth" +}; + +static const StringListProvider kEoB1BookNumbersAmigaEnglishProvider = { ARRAYSIZE(kEoB1BookNumbersAmigaEnglish), kEoB1BookNumbersAmigaEnglish }; + +static const char *const kEoB1MageSpellsListAmigaEnglish[26] = { + "", + "Armor", + "Burning Hands", + "Detect Magic", + "Magic Missile", + "Read Magic", + "Shield", + "Shocking Grasp", + "Invisibility", + "Knock", + "M's Acid Arrow", + "Stinking Cloud", + "Dispel Magic", + "Fireball", + "Flame Arrow", + "Haste", + "Hold Person", + "Invisibility 10'", + "Lightning Bolt", + "Vampiric Touch", + "Fear", + "Ice Storm", + "Stoneskin", + "Cloudkill", + "Cone of Cold", + "Hold Monster" +}; + +static const StringListProvider kEoB1MageSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB1MageSpellsListAmigaEnglish), kEoB1MageSpellsListAmigaEnglish }; + +static const char *const kEoB1ClericSpellsListAmigaEnglish[25] = { + "", + "Bless", + "Cure Light Wnds", + "Cause Light Wnds", + "Detect Magic", + "Protect-Evil", + "Aid", + "Flame Blade", + "Hold Person", + "Slow Poison", + "Create Food", + "Dispel Magic", + "Magical Vestment", + "Prayer", + "Remove Paralysis", + "Cure Serious", + "Cause Serious", + "Neutral-Poison", + "Protect-Evil 10'", + "Protect-Lightning", + "Cure Critical", + "Cause Critical", + "Flame Strike", + "Raise Dead", + "Lay on Hands" +}; + +static const StringListProvider kEoB1ClericSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB1ClericSpellsListAmigaEnglish), kEoB1ClericSpellsListAmigaEnglish }; + +static const char *const kEoB1SpellNamesAmigaEnglish[51] = { + "", + "armor", + "burning hands", + "detect magic", + "magic missile", + "shield", + "shocking grasp", + "invisibility", + "melf's acid arrow", + "stinking cloud", + "dispel magic", + "fireball", + "flame arrow", + "haste", + "hold person", + "invisibility 10' radius", + "lightning bolt", + "vampiric touch", + "fear", + "ice storm", + "stoneskin", + "cloudkill", + "cone of cold", + "hold monster", + "bless", + "cure light wounds", + "cause light wounds", + "detect magic", + "protection from evil", + "aid", + "flame blade", + "hold person", + "slow poison", + "create food", + "dispel magic", + "magical vestment", + "prayer", + "remove paralysis", + "cure serious wounds", + "cause serious wounds", + "neutralize poison", + "protection from evil 10' radius", + "protection from lightning", + "cure critical wounds", + "cause critical wounds", + "flame strike", + "raise dead", + "lay on hands", + "", + "", + "" +}; + +static const StringListProvider kEoB1SpellNamesAmigaEnglishProvider = { ARRAYSIZE(kEoB1SpellNamesAmigaEnglish), kEoB1SpellNamesAmigaEnglish }; + +static const char *const kEoB1MagicStrings1AmigaEnglish[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", + "ok\r" +}; + +static const StringListProvider kEoB1MagicStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings1AmigaEnglish), kEoB1MagicStrings1AmigaEnglish }; + +static const char *const kEoB1MagicStrings2AmigaEnglish[3] = { + "no effect\r", + "%s has been disintegrated!\r", + "The party has been hit by a death spell!\r" +}; + +static const StringListProvider kEoB1MagicStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings2AmigaEnglish), kEoB1MagicStrings2AmigaEnglish }; + +static const char *const kEoB1MagicStrings3AmigaEnglish[6] = { + "Cast spell on which character? ", + "\rok\r", + "\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 kEoB1MagicStrings3AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings3AmigaEnglish), kEoB1MagicStrings3AmigaEnglish }; + +static const char *const kEoB1MagicStrings4AmigaEnglish[1] = { + "no effect.\r" +}; + +static const StringListProvider kEoB1MagicStrings4AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings4AmigaEnglish), kEoB1MagicStrings4AmigaEnglish }; + +static const char *const kEoB1MagicStrings6AmigaEnglish[1] = { + "%s already has a high base armor class.\r" +}; + +static const StringListProvider kEoB1MagicStrings6AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings6AmigaEnglish), kEoB1MagicStrings6AmigaEnglish }; + +static const char *const kEoB1MagicStrings7AmigaEnglish[5] = { + "1ST", + "2ND", + "3RD", + "4TH", + "5TH" +}; + +static const StringListProvider kEoB1MagicStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings7AmigaEnglish), kEoB1MagicStrings7AmigaEnglish }; + +static const char *const kEoB1MagicStrings8AmigaEnglish[3] = { + "All spells on %s are dispelled.\r", + "The party is already blessed!\r", + "The aid spell fails!\r" +}; + +static const StringListProvider kEoB1MagicStrings8AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings8AmigaEnglish), kEoB1MagicStrings8AmigaEnglish }; + +static const char *const kEoB1MagicStrings9AmigaEnglish[1] = { + "%s is already protected by stoneskin.\r" +}; + +static const StringListProvider kEoB1MagicStrings9AmigaEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings9AmigaEnglish), kEoB1MagicStrings9AmigaEnglish }; + +static const byte kEoB1ManDefAmigaEnglish[120] = { + 0x09, 0x0a, 0x02, 0x00, 0x09, 0x04, 0x03, 0x00, + 0x09, 0x06, 0x06, 0x00, 0x09, 0x03, 0x03, 0x00, + 0x09, 0x04, 0x02, 0x00, 0x09, 0x01, 0x02, 0x00, + 0x09, 0x05, 0x01, 0x00, 0x09, 0x09, 0x02, 0x00, + 0x09, 0x06, 0x02, 0x00, 0x23, 0x01, 0x05, 0x00, + 0x23, 0x02, 0x02, 0x00, 0x23, 0x03, 0x06, 0x00, + 0x23, 0x05, 0x01, 0x00, 0x23, 0x06, 0x03, 0x00, + 0x23, 0x07, 0x01, 0x00, 0x1a, 0x01, 0x01, 0x00, + 0x1a, 0x03, 0x02, 0x00, 0x1a, 0x06, 0x01, 0x00, + 0x24, 0x01, 0x03, 0x00, 0x24, 0x03, 0x04, 0x00, + 0x24, 0x03, 0x01, 0x00, 0x02, 0x04, 0x03, 0x00, + 0x02, 0x03, 0x03, 0x00, 0x02, 0x05, 0x03, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x01, 0x05, 0x03, 0x00, + 0x01, 0x04, 0x03, 0x00, 0x0c, 0x02, 0x01, 0x00, + 0x0c, 0x03, 0x03, 0x00, 0x0c, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB1ManDefAmigaEnglishProvider = { ARRAYSIZE(kEoB1ManDefAmigaEnglish), kEoB1ManDefAmigaEnglish }; + +static const char *const kEoB1ManWordAmigaEnglish[31] = { + "attacks", + "short", + "line", + "weapons", + "certain", + "rank", + "rear", + "can", + "away", + "dungeon", + "cursor", + "feature", + "information", + "displayed", + "below", + "around", + "carefree", + "gnomes", + "clerics", + "mystic", + "pummel", + "fitness", + "using", + "toughness", + "wealth", + "wizard", + "officials", + "hound", + "disturbing", + "flaming", + "" +}; + +static const StringListProvider kEoB1ManWordAmigaEnglishProvider = { ARRAYSIZE(kEoB1ManWordAmigaEnglish), kEoB1ManWordAmigaEnglish }; + +static const char *const kEoB1ManPromptAmigaEnglish[1] = { + "\r\r\r\rOn the page with this symbol...\r\rFind line %d\rEnter word %d\r" +}; + +static const StringListProvider kEoB1ManPromptAmigaEnglishProvider = { ARRAYSIZE(kEoB1ManPromptAmigaEnglish), kEoB1ManPromptAmigaEnglish }; + +static const char *const kEoB1MonsterDistAttStringsAmigaEnglish[5] = { + "%s is hit by a cause serious wounds spell!\r", + "The party is hit with a psychic mind blast!\r", + "paralyzed", + "poisoned", + "paralyzed" +}; + +static const StringListProvider kEoB1MonsterDistAttStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB1MonsterDistAttStringsAmigaEnglish), kEoB1MonsterDistAttStringsAmigaEnglish }; + diff --git a/devtools/create_kyradat/resources/eob1_amiga_german.h b/devtools/create_kyradat/resources/eob1_amiga_german.h new file mode 100644 index 0000000000..feb856f275 --- /dev/null +++ b/devtools/create_kyradat/resources/eob1_amiga_german.h @@ -0,0 +1,899 @@ +static const char *const kEoB1ChargenStrings1AmigaGerman[9] = { + "Ihr Team ist\rkomplett. SPIEL-\rKnopf oder 'P'\rdruecken, um zu\rbeginnen.", + " ", + "RK\rHP\rEBN", + "%s\r%d\r%d\r%d\r%d\r%d", + "%d\r%d", + "%d", + "%d/%d", + "%d/%d/%d", + "Waehle das Feld\rdes Charakters\rzum Erstellen oder\rAnschauen." +}; + +static const StringListProvider kEoB1ChargenStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenStrings1AmigaGerman), kEoB1ChargenStrings1AmigaGerman }; + +static const char *const kEoB1ChargenStrings2AmigaGerman[12] = { + "%s", + "%d", + "%s", + "%d", + "%d", + "%d", + "%s", + "%d", + "WAEHLE RASSE:", + "WAEHLE KLASSE:", + "GESINNUNG WAEHLEN:", + "Name:" +}; + +static const StringListProvider kEoB1ChargenStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenStrings2AmigaGerman), kEoB1ChargenStrings2AmigaGerman }; + +static const char *const kEoB1ChargenStatStringsAmigaGerman[12] = { + "STR", + "INT", + "WIS", + "DEX", + "CON", + "CHA", + "STAERKE", + "INTELLIGENZ", + "WEISHEIT", + "GEWANDHEIT", + "KONSTITUTION", + "CHARISMA" +}; + +static const StringListProvider kEoB1ChargenStatStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenStatStringsAmigaGerman), kEoB1ChargenStatStringsAmigaGerman }; + +static const char *const kEoB1ChargenRaceSexStringsAmigaGerman[12] = { + "MENSCH MAENNL.", + "MENSCH WEIBL.", + "ELF MAENNL.", + "ELF WEIBL.", + "HALB-ELF MAENNL.", + "HALB-ELF WEIBL.", + "ZWERG MAENNL.", + "ZWERG WEIBL.", + "GNOM MAENNL.", + "GNOM WEIBL.", + "HALBLING MAENNL.", + "HALBLING WEIBL." +}; + +static const StringListProvider kEoB1ChargenRaceSexStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenRaceSexStringsAmigaGerman), kEoB1ChargenRaceSexStringsAmigaGerman }; + +static const char *const kEoB1ChargenClassStringsAmigaGerman[21] = { + "KAEMPFER", + "WALDLAEUFER", + "PALADIN", + "MAGIER", + "KLERIKER", + "DIEB", + "KAEMPFER/KLERIKER", + "KAEMPFER/DIEB", + "KAEMPFER/MAGIER", + "KAEMPF./MAGIER/DIEB", + "DIEB/MAGIER", + "KLERIKER/DIEB", + "KAEMPF./KLE./MAGIER", + "WALDL./KLER.", + "KLER./MAGIER", + "KAEMPFER", + "MAGIER", + "KLERIKER", + "DIEB", + "PALADIN", + "WALDLAEUFER" +}; + +static const StringListProvider kEoB1ChargenClassStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenClassStringsAmigaGerman), kEoB1ChargenClassStringsAmigaGerman }; + +static const char *const kEoB1ChargenAlignmentStringsAmigaGerman[9] = { + "RECHTSCH. GUT", + "NEUTRAL GUT", + "CHAOTISCH GUT", + "RECHTSCH. NEUTRAL", + "ABSOLUT NEUTRAL", + "CHAOTISCH NEUTRAL", + "RECHTSCH. BOESE", + "NEUTRAL BOESE", + "CHAOTISCH BOESE" +}; + +static const StringListProvider kEoB1ChargenAlignmentStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenAlignmentStringsAmigaGerman), kEoB1ChargenAlignmentStringsAmigaGerman }; + +static const char *const kEoB1ChargenEnterGameStringsAmigaGerman[1] = { + " Spiel startet.\r Bitte warten." +}; + +static const StringListProvider kEoB1ChargenEnterGameStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ChargenEnterGameStringsAmigaGerman), kEoB1ChargenEnterGameStringsAmigaGerman }; + +static const char *const kEoB1MainMenuStringsAmigaGerman[3] = { + "ALTES SPIEL LADEN\r", + "NEUES TEAM AUFBAUEN\r", + "ENDE > AMIGADOS\r" +}; + +static const StringListProvider kEoB1MainMenuStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1MainMenuStringsAmigaGerman), kEoB1MainMenuStringsAmigaGerman }; + +static const char *const kEoB1BonusStringsAmigaGerman[3] = { + "Herzlichen Glueckwunsch fuer das Auffinden aller 12 Beholder-Boni.\r\rDie beteiligten Charaktere des gluecklichen Teams waren:\r\r", + "\r", + "\r\rPasswort: %04x\r" +}; + +static const StringListProvider kEoB1BonusStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1BonusStringsAmigaGerman), kEoB1BonusStringsAmigaGerman }; + +static const char *const kEoB1TurnUndeadStringAmigaGerman[1] = { + "\x06\x06""%s benutzt die Macht, Untote zu vertreiben!""\x06\x1F""\r" +}; + +static const StringListProvider kEoB1TurnUndeadStringAmigaGermanProvider = { ARRAYSIZE(kEoB1TurnUndeadStringAmigaGerman), kEoB1TurnUndeadStringAmigaGerman }; + +static const char *const kEoB1Npc0StringsAmigaGerman[2] = { + "\r Ich wuensche Euch Glueck auf Euren Reisen.", + "Wer soll wiedererweckt werden?" +}; + +static const StringListProvider kEoB1Npc0StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc0StringsAmigaGerman), kEoB1Npc0StringsAmigaGerman }; + +static const char *const kEoB1Npc11StringsAmigaGerman[3] = { + "Wunden heilen", + "Reden", + "Gehen" +}; + +static const StringListProvider kEoB1Npc11StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc11StringsAmigaGerman), kEoB1Npc11StringsAmigaGerman }; + +static const char *const kEoB1Npc12StringsAmigaGerman[2] = { + "Wunden heilen", + "Gehen" +}; + +static const StringListProvider kEoB1Npc12StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc12StringsAmigaGerman), kEoB1Npc12StringsAmigaGerman }; + +static const char *const kEoB1Npc21StringsAmigaGerman[2] = { + "Angebot hoeren", + "Gehen" +}; + +static const StringListProvider kEoB1Npc21StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc21StringsAmigaGerman), kEoB1Npc21StringsAmigaGerman }; + +static const char *const kEoB1Npc22StringsAmigaGerman[2] = { + "Helfen", + "Gehen" +}; + +static const StringListProvider kEoB1Npc22StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc22StringsAmigaGerman), kEoB1Npc22StringsAmigaGerman }; + +static const char *const kEoB1Npc31StringsAmigaGerman[2] = { + "Team heilen", + "Gehen" +}; + +static const StringListProvider kEoB1Npc31StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc31StringsAmigaGerman), kEoB1Npc31StringsAmigaGerman }; + +static const char *const kEoB1Npc32StringsAmigaGerman[3] = { + "Team heilen", + "Tote erwecken", + "Gehen" +}; + +static const StringListProvider kEoB1Npc32StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc32StringsAmigaGerman), kEoB1Npc32StringsAmigaGerman }; + +static const char *const kEoB1Npc4StringsAmigaGerman[2] = { + "Angreifen", + "Bestechen" +}; + +static const StringListProvider kEoB1Npc4StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc4StringsAmigaGerman), kEoB1Npc4StringsAmigaGerman }; + +static const char *const kEoB1Npc5StringsAmigaGerman[3] = { + "toeten", + "anhoeren", + "gehen lassen" +}; + +static const StringListProvider kEoB1Npc5StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc5StringsAmigaGerman), kEoB1Npc5StringsAmigaGerman }; + +static const char *const kEoB1Npc6StringsAmigaGerman[2] = { + "Ergeben", + "Angreifen" +}; + +static const StringListProvider kEoB1Npc6StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc6StringsAmigaGerman), kEoB1Npc6StringsAmigaGerman }; + +static const char *const kEoB1Npc7StringsAmigaGerman[3] = { + "befreien", + "toeten", + "Gehen" +}; + +static const StringListProvider kEoB1Npc7StringsAmigaGermanProvider = { ARRAYSIZE(kEoB1Npc7StringsAmigaGerman), kEoB1Npc7StringsAmigaGerman }; + +static const char *const kEoB1PryDoorStringsAmigaGerman[8] = { + "Niemand kann die Tuer aufbrechen.\r", + "Das Team bricht die Tuer auf.\r", + "%s bricht die tuer auf!\r", + "Das Team versucht die Tuer aufzubrechen,\raber schafft es nicht.\r", + "Dieser Gegenstand kann hier nicht plaziert werden.\r", + "Dieser Gegenstand ist zu gross.\r", + "Niemand schafft es, die Tuer aufzubrechen.\r", + "\r" +}; + +static const StringListProvider kEoB1PryDoorStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1PryDoorStringsAmigaGerman), kEoB1PryDoorStringsAmigaGerman }; + +static const char *const kEoB1WarningStringsAmigaGerman[3] = { + "Hier geht es nicht weiter.\r", + "%s kann keine Nahrung zu sich nehmen!\r", + "Dies kann man nicht essen!\r" +}; + +static const StringListProvider kEoB1WarningStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1WarningStringsAmigaGerman), kEoB1WarningStringsAmigaGerman }; + +static const char *const kEoB1ItemSuffixStringsRingsAmigaGerman[4] = { + "Schmuck", + "Zauber", + "Nahrungs", + "Federfall" +}; + +static const StringListProvider kEoB1ItemSuffixStringsRingsAmigaGermanProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsRingsAmigaGerman), kEoB1ItemSuffixStringsRingsAmigaGerman }; + +static const char *const kEoB1ItemSuffixStringsPotionsAmigaGerman[8] = { + "Riesenstaerke", + "Heilungs", + "Extra Heilungs", + "Gift", + "Vitalitaets", + "Schnelligkeits", + "Unsichtbarkeits", + "Gift-Heilungs-" +}; + +static const StringListProvider kEoB1ItemSuffixStringsPotionsAmigaGermanProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsPotionsAmigaGerman), kEoB1ItemSuffixStringsPotionsAmigaGerman }; + +static const char *const kEoB1ItemSuffixStringsWandsAmigaGerman[7] = { + "Stock", + "Blitz", + "Frost", + "Heilungs", + "Feuerball", + "Silvias", + "Magisches Geschoss" +}; + +static const StringListProvider kEoB1ItemSuffixStringsWandsAmigaGermanProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsWandsAmigaGerman), kEoB1ItemSuffixStringsWandsAmigaGerman }; + +static const char *const kEoB1RipItemStringsAmigaGerman[3] = { + "%s verlor ihr ", + "%s verlor sein ", + ".\r" +}; + +static const StringListProvider kEoB1RipItemStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1RipItemStringsAmigaGerman), kEoB1RipItemStringsAmigaGerman }; + +static const char *const kEoB1CursedStringAmigaGerman[1] = { + "Verflucht %s %d" +}; + +static const StringListProvider kEoB1CursedStringAmigaGermanProvider = { ARRAYSIZE(kEoB1CursedStringAmigaGerman), kEoB1CursedStringAmigaGerman }; + +static const char *const kEoB1MagicObjectStringsAmigaGerman[5] = { + "Magier-Schriftrolle", + "Kleriker-Scriftrolle", + "Ring", + "Trank", + "Stab" +}; + +static const StringListProvider kEoB1MagicObjectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1MagicObjectStringsAmigaGerman), kEoB1MagicObjectStringsAmigaGerman }; + +static const char *const kEoB1MagicObjectString5AmigaGerman[1] = { + "Stock" +}; + +static const StringListProvider kEoB1MagicObjectString5AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicObjectString5AmigaGerman), kEoB1MagicObjectString5AmigaGerman }; + +static const char *const kEoB1PatternSuffixAmigaGerman[1] = { + "%s-%s" +}; + +static const StringListProvider kEoB1PatternSuffixAmigaGermanProvider = { ARRAYSIZE(kEoB1PatternSuffixAmigaGerman), kEoB1PatternSuffixAmigaGerman }; + +static const char *const kEoB1PatternGrFix1AmigaGerman[1] = { + "%s-%s" +}; + +static const StringListProvider kEoB1PatternGrFix1AmigaGermanProvider = { ARRAYSIZE(kEoB1PatternGrFix1AmigaGerman), kEoB1PatternGrFix1AmigaGerman }; + +static const char *const kEoB1PatternGrFix2AmigaGerman[1] = { + "%s-%s" +}; + +static const StringListProvider kEoB1PatternGrFix2AmigaGermanProvider = { ARRAYSIZE(kEoB1PatternGrFix2AmigaGerman), kEoB1PatternGrFix2AmigaGerman }; + +static const char *const kEoB1ValidateArmorStringAmigaGerman[1] = { + "%s kann diese Ruestung nicht tragen.\r" +}; + +static const StringListProvider kEoB1ValidateArmorStringAmigaGermanProvider = { ARRAYSIZE(kEoB1ValidateArmorStringAmigaGerman), kEoB1ValidateArmorStringAmigaGerman }; + +static const char *const kEoB1ValidateNoDropStringAmigaGerman[1] = { + "Das kannst du hier nicht ablegen.\r" +}; + +static const StringListProvider kEoB1ValidateNoDropStringAmigaGermanProvider = { ARRAYSIZE(kEoB1ValidateNoDropStringAmigaGerman), kEoB1ValidateNoDropStringAmigaGerman }; + +static const char *const kEoB1PotionStringsAmigaGerman[2] = { + "vergiftet", + "%s fuehlt sich %s!\r" +}; + +static const StringListProvider kEoB1PotionStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1PotionStringsAmigaGerman), kEoB1PotionStringsAmigaGerman }; + +static const char *const kEoB1WandStringsAmigaGerman[2] = { + "der stab hat offensichtlich keinen magischen effekt.\r", + "kein effekt.\r", +}; + +static const StringListProvider kEoB1WandStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1WandStringsAmigaGerman), kEoB1WandStringsAmigaGerman }; + +static const char *const kEoB1ItemMisuseStringsAmigaGerman[3] = { + "%s kann das nicht benutzen.\r", + "Dies wird automatisch benutzt.\r", + "Das laesst sich so nicht benutzen.\r" +}; + +static const StringListProvider kEoB1ItemMisuseStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1ItemMisuseStringsAmigaGerman), kEoB1ItemMisuseStringsAmigaGerman }; + +static const char *const kEoB1TakenStringsAmigaGerman[1] = { + " genommen.\r" +}; + +static const StringListProvider kEoB1TakenStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1TakenStringsAmigaGerman), kEoB1TakenStringsAmigaGerman }; + +static const char *const kEoB1PotionEffectStringsAmigaGerman[8] = { + "viel staerker", + "besser", + "viel besser", + "einen Moment uebel", + "nicht mehr hungrig", + "schnell und agil", + "transparent", + "besser" +}; + +static const StringListProvider kEoB1PotionEffectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1PotionEffectStringsAmigaGerman), kEoB1PotionEffectStringsAmigaGerman }; + +static const char *const kEoB1YesNoStringsAmigaGerman[2] = { + "ja", + "nein" +}; + +static const StringListProvider kEoB1YesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1YesNoStringsAmigaGerman), kEoB1YesNoStringsAmigaGerman }; + +static const char *const kEoB1MoreStringsAmigaGerman[1] = { + "MEHR" +}; + +static const StringListProvider kEoB1MoreStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1MoreStringsAmigaGerman), kEoB1MoreStringsAmigaGerman }; + +static const char *const kEoB1NpcMaxStringsAmigaGerman[1] = { + "Es sind nur sechs Charaktere in einem Team erlaubt. \rWaehlen Sie aus, welchen Sie entlassen wollen." +}; + +static const StringListProvider kEoB1NpcMaxStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1NpcMaxStringsAmigaGerman), kEoB1NpcMaxStringsAmigaGerman }; + +static const char *const kEoB1NpcJoinStringsAmigaGerman[1] = { + "%s wird in's Team aufgenommen.\r" +}; + +static const StringListProvider kEoB1NpcJoinStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1NpcJoinStringsAmigaGerman), kEoB1NpcJoinStringsAmigaGerman }; + +static const char *const kEoB1CancelStringsAmigaGerman[1] = { + "ABBRECHEN" +}; + +static const StringListProvider kEoB1CancelStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1CancelStringsAmigaGerman), kEoB1CancelStringsAmigaGerman }; + +static const char *const kEoB1MenuStringsMainAmigaGerman[8] = { + "Option Waehlen:", + "Ausruhen", + "Zauber lernen", + "Fuer Zauber beten", + "Schriftrollen", + "Einstellungen", + "Spieloptionen", + "Ende" +}; + +static const StringListProvider kEoB1MenuStringsMainAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsMainAmigaGerman), kEoB1MenuStringsMainAmigaGerman }; + +static const char *const kEoB1MenuStringsSaveLoadAmigaGerman[8] = { + "Spiel laden", + "Spiel speichern", + "Charakter entlassen", + "Spielende", + "Spieloptionen:", + "\r Gespeichert.", + "\r Speichern\r Fehler!", + "\r Spiel laden\r Fehler!" +}; + +static const StringListProvider kEoB1MenuStringsSaveLoadAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsSaveLoadAmigaGerman), kEoB1MenuStringsSaveLoadAmigaGerman }; + +static const char *const kEoB1MenuStringsOnOffAmigaGerman[2] = { + "AN", + "AUS" +}; + +static const StringListProvider kEoB1MenuStringsOnOffAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsOnOffAmigaGerman), kEoB1MenuStringsOnOffAmigaGerman }; + +static const char *const kEoB1MenuStringsSpellsAmigaGerman[17] = { + "\r\r Charakter aus dem \r Team waehlen, der\r den zauber lernen\r moechte\r ", + "\r Der Paladin ist \r noch zu\r unerfahren.", + "\r\r Der Magier hat \r kein Zauberbuch!", + "\r\r\r Charakter aus dem\r Team waehlen, der\r fuer Sprueche\r meditieren moechte.", + "\r Das Team hat kei-\r nen Kleriker, der\r meditieren koennte\r ", + "\r Das Team hat kei-\r nen Magier, der\r zaubern koennte.", + " Ein bewusstloser\r oder toter Magier\r kann keine Zauber\r lernen.", + " Ein bewusstloser\r oder toter Kleriker\r kann nicht fuer Zauber\r meditieren.", + "1", + "2", + "3", + "4", + "5", + "Neu", + "Verfuegbare Zauber:", + "Ja", + "Nein" +}; + +static const StringListProvider kEoB1MenuStringsSpellsAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsSpellsAmigaGerman), kEoB1MenuStringsSpellsAmigaGerman }; + +static const char *const kEoB1MenuStringsRestAmigaGerman[5] = { + "\rWerden die Heiler\rdas Team heilen?", + " Jemand ist noch\r verletzt. Rasten,\r bis geheilt?", + "Ausruhen", + "\r Alle Charactere\r sind ganz\r ausgeruht.", + " Das Team muss\r zum Lernen der\r Sprueche aus-\r ruhen." +}; + +static const StringListProvider kEoB1MenuStringsRestAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsRestAmigaGerman), kEoB1MenuStringsRestAmigaGerman }; + +static const char *const kEoB1MenuStringsDropAmigaGerman[1] = { + " Sie muessen min-\r destens vier\r Charaktere be-\r sitzen." +}; + +static const StringListProvider kEoB1MenuStringsDropAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsDropAmigaGerman), kEoB1MenuStringsDropAmigaGerman }; + +static const char *const kEoB1MenuStringsExitAmigaGerman[1] = { + " Wollen Sie das\r Spiel wirklich\r beenden?" +}; + +static const StringListProvider kEoB1MenuStringsExitAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsExitAmigaGerman), kEoB1MenuStringsExitAmigaGerman }; + +static const char *const kEoB1MenuStringsStarveAmigaGerman[1] = { + " Ihr Team verhungert.\r Soll weiter gerastet\r werden?" +}; + +static const StringListProvider kEoB1MenuStringsStarveAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsStarveAmigaGerman), kEoB1MenuStringsStarveAmigaGerman }; + +static const char *const kEoB1MenuStringsScribeAmigaGerman[5] = { + "Schriftrolle(n) waeh-\rlen, die Uebertragen\rwerden soll(en).", + "\r\r\r Welcher Magier des\r Teams moechte eine\r Schriftrolle Ueber-\r tragen?.", + " Es gibt keine\r Schriftrollen zum\r Uebertragen.", + " Sie haben keine\r Schriftrollen fuer\r diesen Magier.", + "\r Keiner ihrer Magier\r kann Schriftrollen\r uebertragen." +}; + +static const StringListProvider kEoB1MenuStringsScribeAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsScribeAmigaGerman), kEoB1MenuStringsScribeAmigaGerman }; + +static const char *const kEoB1MenuStringsDrop2AmigaGerman[3] = { + " Waehlen Sie den\r zu entlassenden\r Charakter.", + " Wollen Sie das\r Spiel wirklich\r SPEICHERN?", + " Wollen Sie wirk-\r lich ein altes\r Spiel LADEN?" +}; + +static const StringListProvider kEoB1MenuStringsDrop2AmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsDrop2AmigaGerman), kEoB1MenuStringsDrop2AmigaGerman }; + +static const char *const kEoB1MenuStringsHeadAmigaGerman[3] = { + "Camp:", + "Einstellungen:", + "Spieloptionen:" +}; + +static const StringListProvider kEoB1MenuStringsHeadAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsHeadAmigaGerman), kEoB1MenuStringsHeadAmigaGerman }; + +static const char *const kEoB1MenuStringsPoisonAmigaGerman[1] = { + "Vergiftete Team-\rmitglieder werden\rsterben.\rTrotzdem rasten?" +}; + +static const StringListProvider kEoB1MenuStringsPoisonAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsPoisonAmigaGerman), kEoB1MenuStringsPoisonAmigaGerman }; + +static const char *const kEoB1MenuStringsMgcAmigaGerman[2] = { + "%-18s %1d", + "%d von %d Uebrigen. " +}; + +static const StringListProvider kEoB1MenuStringsMgcAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsMgcAmigaGerman), kEoB1MenuStringsMgcAmigaGerman }; + +static const char *const kEoB1MenuStringsPrefsAmigaGerman[4] = { + "Musik ist %-3s", + "Geraeusche sind %-3s", + "Grafikzeilen %-3s", + "" +}; + +static const StringListProvider kEoB1MenuStringsPrefsAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsPrefsAmigaGerman), kEoB1MenuStringsPrefsAmigaGerman }; + +static const char *const kEoB1MenuStringsRest2AmigaGerman[4] = { + "%s erhaelt %s.\r", + "%s lernt %s.\r", + "%s spricht heilung auf %s.\r", + "Ruhestunden: %-4d" +}; + +static const StringListProvider kEoB1MenuStringsRest2AmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsRest2AmigaGerman), kEoB1MenuStringsRest2AmigaGerman }; + +static const char *const kEoB1MenuStringsRest4AmigaGerman[1] = { + "\rRast ist nicht moeglich, Monster sind in der Naehe." +}; + +static const StringListProvider kEoB1MenuStringsRest4AmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsRest4AmigaGerman), kEoB1MenuStringsRest4AmigaGerman }; + +static const char *const kEoB1MenuStringsDefeatAmigaGerman[1] = { + " Dein ganzes team ist geschlagen. \rDie Helfer des boesen koennen ihre Plaene ungehindert erfuellen! \r" +}; + +static const StringListProvider kEoB1MenuStringsDefeatAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuStringsDefeatAmigaGerman), kEoB1MenuStringsDefeatAmigaGerman }; + +static const char *const kEoB1MenuYesNoStringsAmigaGerman[2] = { + "Ja", + "Nein" +}; + +static const StringListProvider kEoB1MenuYesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1MenuYesNoStringsAmigaGerman), kEoB1MenuYesNoStringsAmigaGerman }; + +static const char *const kEoB1CharGuiStringsHpAmigaGerman[2] = { + "HP", + "%3d / %-3d" +}; + +static const StringListProvider kEoB1CharGuiStringsHpAmigaGermanProvider = { ARRAYSIZE(kEoB1CharGuiStringsHpAmigaGerman), kEoB1CharGuiStringsHpAmigaGerman }; + +static const char *const kEoB1CharGuiStringsWp1AmigaGerman[2] = { + "FEHL", + "HACK" +}; + +static const StringListProvider kEoB1CharGuiStringsWp1AmigaGermanProvider = { ARRAYSIZE(kEoB1CharGuiStringsWp1AmigaGerman), kEoB1CharGuiStringsWp1AmigaGerman }; + +static const char *const kEoB1CharGuiStringsWrAmigaGerman[4] = { + " ZU", + "WEIT", + "KEINE", + " MUN" +}; + +static const StringListProvider kEoB1CharGuiStringsWrAmigaGermanProvider = { ARRAYSIZE(kEoB1CharGuiStringsWrAmigaGerman), kEoB1CharGuiStringsWrAmigaGerman }; + +static const char *const kEoB1CharGuiStringsSt1AmigaGerman[6] = { + "Tausche", + "TOT", + "BEWUSSTLOS", + "GIFT (LANGSAM)", + "VERGIFTED", + "BETAEUBT" +}; + +static const StringListProvider kEoB1CharGuiStringsSt1AmigaGermanProvider = { ARRAYSIZE(kEoB1CharGuiStringsSt1AmigaGerman), kEoB1CharGuiStringsSt1AmigaGerman }; + +static const char *const kEoB1CharGuiStringsInAmigaGerman[4] = { + "CHARAKTER INFO", + "RUESTUNG", + "ERF", + "EBN" +}; + +static const StringListProvider kEoB1CharGuiStringsInAmigaGermanProvider = { ARRAYSIZE(kEoB1CharGuiStringsInAmigaGerman), kEoB1CharGuiStringsInAmigaGerman }; + +static const char *const kEoB1CharStatusStrings7AmigaGerman[1] = { + "%s besitzt nun keine Riesen-Staerke mehr.\r" +}; + +static const StringListProvider kEoB1CharStatusStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB1CharStatusStrings7AmigaGerman), kEoB1CharStatusStrings7AmigaGerman }; + +static const char *const kEoB1CharStatusStrings81AmigaGerman[1] = { + "%s fuehlt, wie das Gift wirkt!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings81AmigaGermanProvider = { ARRAYSIZE(kEoB1CharStatusStrings81AmigaGerman), kEoB1CharStatusStrings81AmigaGerman }; + +static const char *const kEoB1CharStatusStrings9AmigaGerman[1] = { + "%s ist nicht mehr gelaehmt!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings9AmigaGermanProvider = { ARRAYSIZE(kEoB1CharStatusStrings9AmigaGerman), kEoB1CharStatusStrings9AmigaGerman }; + +static const char *const kEoB1CharStatusStrings131AmigaGerman[1] = { + "%s ist %s!\r" +}; + +static const StringListProvider kEoB1CharStatusStrings131AmigaGermanProvider = { ARRAYSIZE(kEoB1CharStatusStrings131AmigaGerman), kEoB1CharStatusStrings131AmigaGerman }; + +static const char *const kEoB1LevelGainStringsAmigaGerman[1] = { + "\x06\x06""%s steigt eine erfahrungsstufe auf.""\x06\x1F""\r" +}; + +static const StringListProvider kEoB1LevelGainStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1LevelGainStringsAmigaGerman), kEoB1LevelGainStringsAmigaGerman }; + +static const char *const kEoB1BookNumbersAmigaGerman[5] = { + "Erster", + "Zweiter", + "Dritter", + "Vierter", + "Fuenfter" +}; + +static const StringListProvider kEoB1BookNumbersAmigaGermanProvider = { ARRAYSIZE(kEoB1BookNumbersAmigaGerman), kEoB1BookNumbersAmigaGerman }; + +static const char *const kEoB1MageSpellsListAmigaGerman[26] = { + "", + "Ruestung", + "Brennende Haende", + "Magie entdecken", + "Magisch. Geschoss", + "Magie lesen", + "Schild", + "Schockgriff", + "Unsichtbarkeit", + "Klopfen", + "Ms Saeurepfeil", + "Stinkende Wolke", + "Magie bannen", + "Feuerball", + "Flammenpfeil", + "Hast", + "Person festhalten", + "Unsichtbarkeit 3m", + "Blitzstrahl", + "Vampirgriff", + "Furcht", + "Eissturm", + "Steinhaut", + "Todeswolke", + "Kaeltekegel", + "Monster festhalten" +}; + +static const StringListProvider kEoB1MageSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB1MageSpellsListAmigaGerman), kEoB1MageSpellsListAmigaGerman }; + +static const char *const kEoB1ClericSpellsListAmigaGerman[25] = { + "", + "Segen", + "L. Wnd. heilen", + "L. Wnd verurs.", + "Magie entdecken", + "Schutz vor Boesem", + "Staerkung", + "Flammenklinge", + "Person festhalten", + "Gift verlangsamen", + "Nahrung machen", + "Magie bannen", + "Schutzgewand", + "Gebet", + "Laehmung aufheben", + "Schwere W. heilen", + "Schwere W. verurs.", + "Gift neutral.", + "Schutz v. Boes. 3m", + "Schutz v. Blitzen", + "Krit. W. heilen", + "Krit. W. verurs.", + "Flammenschlag", + "Tote erwecken", + "Haende auflegen" +}; + +static const StringListProvider kEoB1ClericSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB1ClericSpellsListAmigaGerman), kEoB1ClericSpellsListAmigaGerman }; + +static const char *const kEoB1SpellNamesAmigaGerman[51] = { + "", + "Ruestung", + "brennende Haende", + "Magie entdecken", + "magisches Geschoss", + "Schild", + "Schockgriff", + "Unsichtbarkeit", + "Ms saeurepfeil", + "stinkende Wolke", + "Magie bannen", + "Feuerball", + "Flammenpfeil", + "hast", + "Person festhalten", + "Unsichtbarkeit 3m", + "Blitzstrahl", + "Vampirgriff", + "Furcht", + "Eissturm", + "Steinhaut", + "Todeswolke", + "Kaeltekegel", + "Monster festhalten", + "Segen", + "leichte Wunden heilen", + "leichte Wunden verursachen", + "Magie entdecken", + "Schutz vor boesem", + "Staerkung", + "Flammenklinge", + "Person festhalten", + "Gift verlangsamen", + "Nahrung erschaffen", + "Magie bannen", + "Schutzgewand", + "Gebet", + "Laehmung aufheben", + "schwere Wunden heilen", + "schwere Wunden verursachen", + "Gift neutralisieren", + "Schutz vor Boes. 3m", + "Schutz vor Blitzen", + "kritische Wunden heilen", + "kritische Wunden verursachen", + "Flammenschlag", + "Tote erwecken", + "Haende auflegen", + "", + "", + "" +}; + +static const StringListProvider kEoB1SpellNamesAmigaGermanProvider = { ARRAYSIZE(kEoB1SpellNamesAmigaGerman), kEoB1SpellNamesAmigaGerman }; + +static const char *const kEoB1MagicStrings1AmigaGerman[6] = { + "KEIN ZAUBER", + "KEIN ZAUBER", + "Fuer diesen Zauber musst du eine Hand frei haben.\r", + "Zwei Zauber dieses Typs koennen nicht gleichzeitig aktiv sein.\r", + "%s zaubert %s.\r", + "ok\r" +}; + +static const StringListProvider kEoB1MagicStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings1AmigaGerman), kEoB1MagicStrings1AmigaGerman }; + +static const char *const kEoB1MagicStrings2AmigaGerman[3] = { + "keine wirkung\r", + "%s wurde aufgeloest!\r", + "Das Team wurde mit einem Todesbann belegt!\r" +}; + +static const StringListProvider kEoB1MagicStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings2AmigaGerman), kEoB1MagicStrings2AmigaGerman }; + +static const char *const kEoB1MagicStrings3AmigaGerman[6] = { + "Zauber auf welchen Charakter anwenden ? ", + "\rok\r", + "\rZauber abgebrochen.\r", + "%ss %s Zauber laesst nach.\r", + "%s traf das monster nicht.\r", + "%s kann nur in vorderen Reihen zuschlagen!\r" +}; + +static const StringListProvider kEoB1MagicStrings3AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings3AmigaGerman), kEoB1MagicStrings3AmigaGerman }; + +static const char *const kEoB1MagicStrings4AmigaGerman[2] = { + "keine wirkung.\r", + "keine wirkung\r" +}; + +static const StringListProvider kEoB1MagicStrings4AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings4AmigaGerman), kEoB1MagicStrings4AmigaGerman }; + +static const char *const kEoB1MagicStrings6AmigaGerman[1] = { + "%s hat bereits eine hochrangige Ruestungsklasse.\r" +}; + +static const StringListProvider kEoB1MagicStrings6AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings6AmigaGerman), kEoB1MagicStrings6AmigaGerman }; + +static const char *const kEoB1MagicStrings7AmigaGerman[5] = { + "1.", + "2.", + "3.", + "4.", + "5." +}; + +static const StringListProvider kEoB1MagicStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings7AmigaGerman), kEoB1MagicStrings7AmigaGerman }; + +static const char *const kEoB1MagicStrings8AmigaGerman[3] = { + "Alle Zauber auf %s wurden abgewehrt.\r", + "Das Team ist schon gesegnet!\r", + "Der Heilzauber versagt!\r" +}; + +static const StringListProvider kEoB1MagicStrings8AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings8AmigaGerman), kEoB1MagicStrings8AmigaGerman }; + +static const char *const kEoB1MagicStrings9AmigaGerman[1] = { + "%s wurde schon mit Steinhaut geschuetzt.\r" +}; + +static const StringListProvider kEoB1MagicStrings9AmigaGermanProvider = { ARRAYSIZE(kEoB1MagicStrings9AmigaGerman), kEoB1MagicStrings9AmigaGerman }; + +static const byte kEoB1ManDefAmigaGerman[120] = { + 0x09, 0x0A, 0x01, 0x00, 0x09, 0x04, 0x03, 0x00, + 0x09, 0x06, 0x01, 0x00, 0x09, 0x03, 0x03, 0x00, + 0x09, 0x04, 0x02, 0x00, 0x09, 0x01, 0x02, 0x00, + 0x09, 0x05, 0x01, 0x00, 0x09, 0x09, 0x02, 0x00, + 0x09, 0x01, 0x03, 0x00, 0x23, 0x01, 0x05, 0x00, + 0x23, 0x02, 0x02, 0x00, 0x23, 0x03, 0x06, 0x00, + 0x23, 0x05, 0x01, 0x00, 0x23, 0x06, 0x03, 0x00, + 0x23, 0x07, 0x01, 0x00, 0x1A, 0x02, 0x01, 0x00, + 0x1A, 0x03, 0x02, 0x00, 0x1A, 0x06, 0x01, 0x00, + 0x24, 0x01, 0x03, 0x00, 0x24, 0x03, 0x03, 0x00, + 0x24, 0x03, 0x01, 0x00, 0x02, 0x04, 0x03, 0x00, + 0x02, 0x03, 0x03, 0x00, 0x02, 0x07, 0x02, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x01, 0x05, 0x03, 0x00, + 0x01, 0x04, 0x03, 0x00, 0x0C, 0x02, 0x01, 0x00, + 0x0C, 0x03, 0x03, 0x00, 0x0C, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB1ManDefAmigaGermanProvider = { ARRAYSIZE(kEoB1ManDefAmigaGerman), kEoB1ManDefAmigaGerman }; + +static const char *const kEoB1ManWordAmigaGerman[31] = { + "dargestellt", + "nur", + "attackieren", + "sie", + "handwaffen", + "monster", + "diese", + "wird", + "jedoch", + "sie", + "getragene", + "sobald", + "klerikale", + "getragene", + "sich", + "elternteile", + "gesicht", + "nicht", + "ihrer", + "magische", + "einige", + "sich", + "charaktere", + "gesinnung", + "versammlung", + "wachen", + "des", + "werden", + "seinen", + "greift", + "" +}; + +static const StringListProvider kEoB1ManWordAmigaGermanProvider = { ARRAYSIZE(kEoB1ManWordAmigaGerman), kEoB1ManWordAmigaGerman }; + +static const char *const kEoB1ManPromptAmigaGerman[1] = { + "\r\r\r\rAuf der Seite mit diesem Symbol...\r\rFinde Zeile %d\rGib Wort %d ein\r" +}; + +static const StringListProvider kEoB1ManPromptAmigaGermanProvider = { ARRAYSIZE(kEoB1ManPromptAmigaGerman), kEoB1ManPromptAmigaGerman }; + +static const char *const kEoB1MonsterDistAttStringsAmigaGerman[5] = { + "%s wurde von einem Schwere-Wunden-Zauber getroffen!\r", + "Das Team wurde von einem psychischen Hirnstoss getroffen!\r", + "gelaehmt", + "vergiftet", + "gelaehmt" +}; + +static const StringListProvider kEoB1MonsterDistAttStringsAmigaGermanProvider = { ARRAYSIZE(kEoB1MonsterDistAttStringsAmigaGerman), kEoB1MonsterDistAttStringsAmigaGerman }; + diff --git a/devtools/create_kyradat/resources/eob1_dos.h b/devtools/create_kyradat/resources/eob1_dos.h index c278f50af2..88f82d10ad 100644 --- a/devtools/create_kyradat/resources/eob1_dos.h +++ b/devtools/create_kyradat/resources/eob1_dos.h @@ -1755,3 +1755,20 @@ static const EoBCharacter kEoB1NpcPresetsDOS[9] = { static const EoBCharacterProvider kEoB1NpcPresetsDOSProvider = { ARRAYSIZE(kEoB1NpcPresetsDOS), kEoB1NpcPresetsDOS }; +static const char *const kEoB1SoundFilesIntroDOS[1] = { + "SOUND" +}; + +static const StringListProvider kEoB1SoundFilesIntroDOSProvider = { ARRAYSIZE(kEoB1SoundFilesIntroDOS), kEoB1SoundFilesIntroDOS }; + +static const char *const kEoB1SoundFilesIngameDOS[1] = { + "ADLIB" +}; + +static const StringListProvider kEoB1SoundFilesIngameDOSProvider = { ARRAYSIZE(kEoB1SoundFilesIngameDOS), kEoB1SoundFilesIngameDOS }; + +static const char *const kEoB1SoundFilesFinaleDOS[1] = { + "ADLIB" +}; + +static const StringListProvider kEoB1SoundFilesFinaleDOSProvider = { ARRAYSIZE(kEoB1SoundFilesFinaleDOS), kEoB1SoundFilesFinaleDOS };
\ No newline at end of file diff --git a/devtools/create_kyradat/resources/eob1_dos_english.h b/devtools/create_kyradat/resources/eob1_dos_english.h index 4f6861eb1c..2b2beb4dec 100644 --- a/devtools/create_kyradat/resources/eob1_dos_english.h +++ b/devtools/create_kyradat/resources/eob1_dos_english.h @@ -817,6 +817,13 @@ static const char *const kEoB1MagicStrings8DOSEnglish[3] = { static const StringListProvider kEoB1MagicStrings8DOSEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings8DOSEnglish), kEoB1MagicStrings8DOSEnglish }; +/* +static const char *const kEoB1MagicStrings9DOSEnglish[1] = { + "%s is already protected by stoneskin.\r" +}; + +static const StringListProvider kEoB1MagicStrings9DOSEnglishProvider = { ARRAYSIZE(kEoB1MagicStrings9DOSEnglish), kEoB1MagicStrings9DOSEnglish }; +*/ static const byte kEoB1ManDefDOSEnglish[120] = { 0x09, 0x0A, 0x02, 0x00, 0x09, 0x04, 0x03, 0x00, 0x09, 0x06, 0x06, 0x00, 0x09, 0x03, 0x03, 0x00, diff --git a/devtools/create_kyradat/resources/eob1_dos_german.h b/devtools/create_kyradat/resources/eob1_dos_german.h index 8551594266..9cab7cb261 100644 --- a/devtools/create_kyradat/resources/eob1_dos_german.h +++ b/devtools/create_kyradat/resources/eob1_dos_german.h @@ -819,6 +819,12 @@ static const char *const kEoB1MagicStrings8DOSGerman[3] = { static const StringListProvider kEoB1MagicStrings8DOSGermanProvider = { ARRAYSIZE(kEoB1MagicStrings8DOSGerman), kEoB1MagicStrings8DOSGerman }; +/*static const char *const kEoB1MagicStrings9DOSGerman[1] = { + "%s is already protected by stoneskin.\r" +}; + +static const StringListProvider kEoB1MagicStrings9DOSGermanProvider = { ARRAYSIZE(kEoB1MagicStrings9DOSGerman), kEoB1MagicStrings9DOSGerman }; +*/ static const byte kEoB1ManDefDOSGerman[120] = { 0x09, 0x0A, 0x01, 0x00, 0x09, 0x04, 0x03, 0x00, 0x09, 0x06, 0x01, 0x00, 0x09, 0x03, 0x03, 0x00, diff --git a/devtools/create_kyradat/resources/eob1_dos_italian.h b/devtools/create_kyradat/resources/eob1_dos_italian.h index f2e1a7491f..abb94530c1 100644 --- a/devtools/create_kyradat/resources/eob1_dos_italian.h +++ b/devtools/create_kyradat/resources/eob1_dos_italian.h @@ -816,7 +816,13 @@ static const char *const kEoB1MagicStrings8DOSItalian[3] = { }; static const StringListProvider kEoB1MagicStrings8DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings8DOSItalian), kEoB1MagicStrings8DOSItalian }; +/* +static const char *const kEoB1MagicStrings9DOSItalian[1] = { + "%s e gia protetto da pelle di pietra.\r" +}; +static const StringListProvider kEoB1MagicStrings9DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings9DOSItalian), kEoB1MagicStrings9DOSItalian }; +*/ static const byte kEoB1ManDefDOSItalian[120] = { 0x09, 0x0A, 0x02, 0x00, 0x09, 0x04, 0x03, 0x00, 0x09, 0x06, 0x06, 0x00, 0x09, 0x03, 0x03, 0x00, diff --git a/devtools/create_kyradat/resources/eob2_dos.h b/devtools/create_kyradat/resources/eob2_dos.h index 3a44d78fa8..6daf018251 100644 --- a/devtools/create_kyradat/resources/eob2_dos.h +++ b/devtools/create_kyradat/resources/eob2_dos.h @@ -2491,3 +2491,15 @@ static const byte kEoB2DscBlockIndexDOS[72] = { static const ByteProvider kEoB2DscBlockIndexDOSProvider = { ARRAYSIZE(kEoB2DscBlockIndexDOS), kEoB2DscBlockIndexDOS }; +static const char *const kEoB2SoundFilesIntroDOS[1] = { + "INTRO" +}; + +static const StringListProvider kEoB2SoundFilesIntroDOSProvider = { ARRAYSIZE(kEoB2SoundFilesIntroDOS), kEoB2SoundFilesIntroDOS }; + +static const char *const kEoB2SoundFilesFinaleDOS[2] = { + "FINALE1", + "FINALE2" +}; + +static const StringListProvider kEoB2SoundFilesFinaleDOSProvider = { ARRAYSIZE(kEoB2SoundFilesFinaleDOS), kEoB2SoundFilesFinaleDOS };
\ No newline at end of file diff --git a/devtools/create_kyradat/resources/eob2_fmtowns.h b/devtools/create_kyradat/resources/eob2_fmtowns.h index 74af7a34ab..128c7e4eb7 100644 --- a/devtools/create_kyradat/resources/eob2_fmtowns.h +++ b/devtools/create_kyradat/resources/eob2_fmtowns.h @@ -73655,4 +73655,16 @@ static const uint16 kEoB2FontDmpSearchTblFMTowns[149] = { 0x9681, 0x4881, 0x8381, 0x8481, 0x0000 }; -static const Uint16Provider kEoB2FontDmpSearchTblFMTownsProvider = { ARRAYSIZE(kEoB2FontDmpSearchTblFMTowns), kEoB2FontDmpSearchTblFMTowns };
\ No newline at end of file +static const Uint16Provider kEoB2FontDmpSearchTblFMTownsProvider = { ARRAYSIZE(kEoB2FontDmpSearchTblFMTowns), kEoB2FontDmpSearchTblFMTowns }; + +static const char *const kEoB2SoundFilesIntroFMTowns[1] = { + "INTRO" +}; + +static const StringListProvider kEoB2SoundFilesIntroFMTownsProvider = { ARRAYSIZE(kEoB2SoundFilesIntroFMTowns), kEoB2SoundFilesIntroFMTowns }; + +static const char *const kEoB2SoundFilesFinaleFMTowns[1] = { + "FINALE" +}; + +static const StringListProvider kEoB2SoundFilesFinaleFMTownsProvider = { ARRAYSIZE(kEoB2SoundFilesFinaleFMTowns), kEoB2SoundFilesFinaleFMTowns };
\ No newline at end of file diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat Binary files differindex 8e1fbe93d5..20114e58ac 100644 --- a/dists/engine-data/kyra.dat +++ b/dists/engine-data/kyra.dat diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp index 58cc394abd..21677ac697 100644 --- a/engines/kyra/engine/eobcommon.cpp +++ b/engines/kyra/engine/eobcommon.cpp @@ -196,7 +196,7 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags) _abortStrings = _saveLoadStrings = _mnWord = _mnPrompt = _bookNumbers = 0; _mageSpellList = _clericSpellList = _spellNames = _magicStrings1 = 0; _magicStrings2 = _magicStrings3 = _magicStrings4 = _magicStrings6 = 0; - _magicStrings7 = _magicStrings8 = _saveNamePatterns = 0; + _magicStrings7 = _magicStrings8 = _magicStrings9 = _saveNamePatterns = 0; _spellAnimBuffer = 0; _sparkEffectDefSteps = _sparkEffectDefSubSteps = _sparkEffectDefShift = 0; _sparkEffectDefAdd = _sparkEffectDefX = _sparkEffectDefY = _sparkEffectOfShift = 0; @@ -432,8 +432,12 @@ Common::Error EoBCoreEngine::init() { _debugger = new Debugger_EoB(this); assert(_debugger); - _screen->loadFont(Screen::FID_6_FNT, "FONT6.FNT"); - _screen->loadFont(Screen::FID_8_FNT, "FONT8.FNT"); + if (_flags.platform == Common::kPlatformAmiga) { + + } else { + _screen->loadFont(Screen::FID_6_FNT, "FONT6.FNT"); + _screen->loadFont(Screen::FID_8_FNT, "FONT8.FNT"); + } Common::Error err = KyraRpgEngine::init(); if (err.getCode() != Common::kNoError) diff --git a/engines/kyra/engine/eobcommon.h b/engines/kyra/engine/eobcommon.h index 9078e50409..c56a41b6a1 100644 --- a/engines/kyra/engine/eobcommon.h +++ b/engines/kyra/engine/eobcommon.h @@ -1096,6 +1096,7 @@ protected: const char *const *_magicStrings6; const char *const *_magicStrings7; const char *const *_magicStrings8; + const char *const *_magicStrings9; uint8 *_spellAnimBuffer; diff --git a/engines/kyra/engine/scene_rpg.cpp b/engines/kyra/engine/scene_rpg.cpp index 72922d4b53..0528df6db1 100644 --- a/engines/kyra/engine/scene_rpg.cpp +++ b/engines/kyra/engine/scene_rpg.cpp @@ -87,7 +87,6 @@ void KyraRpgEngine::setLevelShapesDim(int index, int16 &x1, int16 &x2, int dim) x1 += (_sceneXoffset >> 3); x2 += (_sceneXoffset >> 3); - _lvlShapeTop[index] = y1; _lvlShapeBottom[index] = y2; _lvlShapeLeftRight[index << 1] = x1; diff --git a/engines/kyra/resource/resource.h b/engines/kyra/resource/resource.h index 077b4eab7a..a1ff902a84 100644 --- a/engines/kyra/resource/resource.h +++ b/engines/kyra/resource/resource.h @@ -455,6 +455,7 @@ enum KyraResources { kEoBBaseMagicStrings6, kEoBBaseMagicStrings7, kEoBBaseMagicStrings8, + kEoBBaseMagicStrings9, kEoBBaseExpObjectTlMode, kEoBBaseExpObjectTblIndex, @@ -486,6 +487,13 @@ enum KyraResources { kEoBBaseConeOfColdDest4, kEoBBaseConeOfColdGfxTbl, + kEoBBaseSoundMap, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + + kEoB1BaseLevelSounds1, + kEoB1BaseLevelSounds2, kEoB1MainMenuStrings, kEoB1BonusStrings, @@ -509,6 +517,15 @@ enum KyraResources { kEoB1IntroTvlY2, kEoB1IntroTvlW, kEoB1IntroTvlH, + kEoB1IntroOrbFadePal, + + kEoB1FinaleCouncilAnim1, + kEoB1FinaleCouncilAnim2, + kEoB1FinaleCouncilAnim3, + kEoB1FinaleCouncilAnim4, + kEoB1FinaleEyesAnim, + kEoB1FinaleHandsAnim, + kEoB1FinaleTextDuration, kEoB1DoorShapeDefs, kEoB1DoorSwitchShapeDefs, diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp index fb6d14dd4b..e569cf1479 100644 --- a/engines/kyra/resource/staticres.cpp +++ b/engines/kyra/resource/staticres.cpp @@ -39,7 +39,7 @@ namespace Kyra { -#define RESFILE_VERSION 92 +#define RESFILE_VERSION 93 namespace { bool checkKyraDat(Common::SeekableReadStream *file) { diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp index 4a94c8448a..23a5203a68 100644 --- a/engines/kyra/resource/staticres_eob.cpp +++ b/engines/kyra/resource/staticres_eob.cpp @@ -432,6 +432,7 @@ void EoBCoreEngine::initStaticResource() { _magicStrings6 = _staticres->loadStrings(kEoBBaseMagicStrings6, temp); _magicStrings7 = _staticres->loadStrings(kEoBBaseMagicStrings7, temp); _magicStrings8 = _staticres->loadStrings(kEoBBaseMagicStrings8, temp); + _magicStrings9 = _staticres->loadStrings(kEoBBaseMagicStrings9, temp); _expObjectTlMode = _staticres->loadRawData(kEoBBaseExpObjectTlMode, temp); _expObjectTblIndex = _staticres->loadRawData(kEoBBaseExpObjectTblIndex, temp); @@ -460,6 +461,13 @@ void EoBCoreEngine::initStaticResource() { _coneOfColdDest4 = (const int8 *)_staticres->loadRawData(kEoBBaseConeOfColdDest4, temp); _coneOfColdGfxTbl = _staticres->loadRawData(kEoBBaseConeOfColdGfxTbl, _coneOfColdGfxTblSize); + _staticres->loadStrings(kEoBBaseSoundMap, temp); + _staticres->loadStrings(kEoBBaseLevelSounds1, temp); + _staticres->loadStrings(kEoBBaseLevelSounds2, temp); + _staticres->loadStrings(kEoBBaseSoundFilesIntro, temp); + _staticres->loadStrings(kEoBBaseSoundFilesIngame, temp); + _staticres->loadStrings(kEoBBaseSoundFilesFinale, temp); + // Hard code the following strings, since EOB I doesn't have them in the original. // EOB I doesn't have load and save menus, because there is only one single // save slot. Instead of emulating this we provide a menu similiar to EOB II. @@ -1129,11 +1137,9 @@ void EoBEngine::initStaticResource() { p->dmgDc[2].base = (int8)*ps++; ps++; p->capsFlags = *ps++; - p->typeFlags = READ_LE_UINT16(ps); - ps += 2; - ps++; - ps++; - p->experience = READ_LE_UINT16(ps); + p->typeFlags = (_flags.platform == Common::kPlatformAmiga) ? READ_BE_UINT32(++ps) : READ_LE_UINT32(ps); + ps += 4; + p->experience = (_flags.platform == Common::kPlatformAmiga) ? READ_BE_UINT16(ps) : READ_LE_UINT16(ps); ps += 2; p->u30 = *ps++; p->sound1 = (int8)*ps++; @@ -1226,6 +1232,8 @@ void EoBEngine::initSpells() { for (int i = 0; i < _numSpells; i++) { EoBSpell *s = &_spells[i]; + if (_flags.platform == Common::kPlatformAmiga) + src++; src += 4; s->flags = flagTable[i].typeFlag; s->damageFlags = flagTable[i].damageFlag; |