From 02ecc7abb7ab53e88ae2edec332a38d8c85f1beb Mon Sep 17 00:00:00 2001 From: athrxx Date: Fri, 8 Mar 2019 15:02:01 +0100 Subject: KYRA: (EOB2/Amiga) - add static resources --- devtools/create_kyradat/create_kyradat.cpp | 15 +- devtools/create_kyradat/create_kyradat.h | 13 +- devtools/create_kyradat/games.cpp | 345 ++- devtools/create_kyradat/resources.cpp | 411 ++- devtools/create_kyradat/resources/eob2_amiga.h | 2775 ++++++++++++++++++++ .../create_kyradat/resources/eob2_amiga_english.h | 1055 ++++++++ .../create_kyradat/resources/eob2_amiga_german.h | 1057 ++++++++ .../create_kyradat/resources/eob2_dos_english.h | 2 +- .../create_kyradat/resources/eob2_dos_german.h | 4 +- dists/engine-data/kyra.dat | Bin 1650618 -> 1696846 bytes engines/kyra/resource/resource.h | 13 +- engines/kyra/resource/staticres.cpp | 2 +- engines/kyra/resource/staticres_eob.cpp | 21 +- engines/kyra/sequence/sequences_darkmoon.cpp | 4 +- engines/kyra/sound/sound_amiga_eob.cpp | 4 +- 15 files changed, 5687 insertions(+), 34 deletions(-) create mode 100644 devtools/create_kyradat/resources/eob2_amiga.h create mode 100644 devtools/create_kyradat/resources/eob2_amiga_english.h create mode 100644 devtools/create_kyradat/resources/eob2_amiga_german.h diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index 0c43b4fcda..8f5b7b6de3 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -45,7 +45,7 @@ enum { - kKyraDatVersion = 93 + kKyraDatVersion = 94 }; const ExtractFilename extractFilenames[] = { @@ -414,10 +414,10 @@ const ExtractFilename extractFilenames[] = { { kEoBBaseSoundFilesIntro, kStringList, false }, { kEoBBaseSoundFilesIngame, kStringList, false }, { kEoBBaseSoundFilesFinale, kStringList, false }, + { kEoBBaseLevelSoundFiles1, kStringList, false }, + { kEoBBaseLevelSoundFiles2, kStringList, false }, // EYE OF THE BEHOLDER I - { kEoB1LevelSoundFiles1, kStringList, false }, - { kEoB1LevelSoundFiles2, kStringList, false }, { kEoB1MainMenuStrings, kStringList, true }, { kEoB1BonusStrings, kStringList, true }, @@ -552,6 +552,9 @@ const ExtractFilename extractFilenames[] = { { kEoB2IntroShapes01, kEoB2ShapeData, false }, { kEoB2IntroShapes04, kEoB2ShapeData, false }, { kEoB2IntroShapes07, kEoB2ShapeData, false }, + { kEoB2IntroShapes13, kEoB2ShapeData, false }, + { kEoB2IntroShapes14, kEoB2ShapeData, false }, + { kEoB2IntroShapes15, kEoB2ShapeData, false }, { kEoB2IntroCpsDataStreet1, kRawData, false }, { kEoB2IntroCpsDataStreet2, kRawData, false }, { kEoB2IntroCpsDataDoorway1, kRawData, false }, @@ -867,6 +870,12 @@ const ExtractFilename extractFilenames[] = { { kEoB2PcmSoundEffectsIntro, kRawData, false }, { kEoB2PcmSoundEffectsFinale, kRawData, false }, + { kEoB2SoundMapExtra, kStringList, false }, + { kEoB2SoundIndex1, kRawData, false }, + { kEoB2SoundIndex2, kRawData, false }, + { kEoB2SoundFilesIngame2, kStringList, false }, + { kEoB2MonsterSoundPatchData, kRawData, false }, + // LANDS OF LORE // Ingame diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index a37fab34f4..40c725560f 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -418,9 +418,9 @@ enum kExtractID { kEoBBaseSoundFilesIntro, kEoBBaseSoundFilesIngame, kEoBBaseSoundFilesFinale, + kEoBBaseLevelSoundFiles1, + kEoBBaseLevelSoundFiles2, - kEoB1LevelSoundFiles1, - kEoB1LevelSoundFiles2, kEoB1MainMenuStrings, kEoB1BonusStrings, @@ -558,6 +558,9 @@ enum kExtractID { kEoB2IntroShapes01, kEoB2IntroShapes04, kEoB2IntroShapes07, + kEoB2IntroShapes13, + kEoB2IntroShapes14, + kEoB2IntroShapes15, kEoB2FinaleStrings, kEoB2CreditsData, @@ -857,6 +860,12 @@ enum kExtractID { kEoB2PcmSoundEffectsIntro, kEoB2PcmSoundEffectsFinale, + kEoB2SoundMapExtra, + kEoB2SoundIndex1, + kEoB2SoundIndex2, + kEoB2SoundFilesIngame2, + kEoB2MonsterSoundPatchData, + kLoLIngamePakFiles, kLoLCharacterDefs, kLoLIngameSfxFiles, diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index 9457416333..fe7b45f55c 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -113,8 +113,8 @@ const Game eob2Games[] = { { kEoB2, kPlatformDOS, kNoSpecial, EN_ANY }, { kEoB2, kPlatformDOS, kNoSpecial, DE_DEU }, - //{ kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY }, - //{ kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU }, + { kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY }, + { kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU }, //{ kEoB2, kPlatformPC98, kNoSpecial, JA_JPN }, @@ -1703,8 +1703,8 @@ const int eob1AmigaNeed[] = { kEoBBaseNpcPresets, kEoBBaseSoundMap, - kEoB1LevelSoundFiles1, - kEoB1LevelSoundFiles2, + kEoBBaseLevelSoundFiles1, + kEoBBaseLevelSoundFiles2, kEoBBaseSoundFilesIntro, kEoBBaseSoundFilesIngame, kEoBBaseSoundFilesFinale, @@ -2322,6 +2322,341 @@ const int eob2FloppyNeed[] = { -1 }; +const int eob2AmigaNeed[] = { + kEoBBaseChargenStrings1, + kEoBBaseChargenStrings2, + kEoBBaseChargenStartLevels, + kEoBBaseChargenStatStrings, + kEoBBaseChargenRaceSexStrings, + kEoBBaseChargenClassStrings, + kEoBBaseChargenAlignmentStrings, + kEoBBaseChargenEnterGameStrings, + kEoBBaseChargenClassMinStats, + kEoBBaseChargenRaceMinStats, + kEoBBaseChargenRaceMaxStats, + + kEoBBaseSaveThrowTable1, + kEoBBaseSaveThrowTable2, + kEoBBaseSaveThrowTable3, + kEoBBaseSaveThrowTable4, + kEoBBaseSaveThrwLvlIndex, + kEoBBaseSaveThrwModDiv, + kEoBBaseSaveThrwModExt, + + kEoBBasePryDoorStrings, + kEoBBaseWarningStrings, + + kEoBBaseItemSuffixStringsRings, + kEoBBaseItemSuffixStringsPotions, + kEoBBaseItemSuffixStringsWands, + + kEoBBaseRipItemStrings, + kEoBBaseCursedString, + kEoBBaseEnchantedString, + kEoBBaseMagicObjectStrings, + kEoBBaseMagicObjectString5, + kEoBBasePatternSuffix, + kEoBBasePatternGrFix1, + kEoBBasePatternGrFix2, + kEoBBaseValidateArmorString, + kEoBBaseValidateCursedString, + kEoBBaseValidateNoDropString, + kEoBBasePotionStrings, + kEoBBaseWandStrings, + kEoBBaseItemMisuseStrings, + + kEoBBaseTakenStrings, + kEoBBasePotionEffectStrings, + + kEoBBaseYesNoStrings, + kRpgCommonMoreStrings, + kEoBBaseNpcMaxStrings, + kEoBBaseOkStrings, + kEoBBaseNpcJoinStrings, + kEoBBaseCancelStrings, + kEoBBaseAbortStrings, + + kEoBBaseMenuStringsMain, + kEoBBaseMenuStringsSaveLoad, + kEoBBaseMenuStringsOnOff, + kEoBBaseMenuStringsSpells, + kEoBBaseMenuStringsRest, + kEoBBaseMenuStringsDrop, + kEoBBaseMenuStringsExit, + kEoBBaseMenuStringsStarve, + kEoBBaseMenuStringsScribe, + kEoBBaseMenuStringsDrop2, + kEoBBaseMenuStringsHead, + kEoBBaseMenuStringsPoison, + kEoBBaseMenuStringsMgc, + kEoBBaseMenuStringsPrefs, + kEoBBaseMenuStringsRest2, + kEoBBaseMenuStringsRest3, + kEoBBaseMenuStringsRest4, + kEoBBaseMenuStringsDefeat, + kEoBBaseMenuStringsTransfer, + kEoBBaseMenuStringsSpec, + kEoBBaseMenuStringsSpellNo, + kEoBBaseMenuYesNoStrings, + + kEoBBaseSpellLevelsMage, + kEoBBaseSpellLevelsCleric, + kEoBBaseNumSpellsCleric, + kEoBBaseNumSpellsWisAdj, + kEoBBaseNumSpellsPal, + kEoBBaseNumSpellsMage, + + kEoBBaseCharGuiStringsHp, + kEoBBaseCharGuiStringsWp2, + kEoBBaseCharGuiStringsWr, + kEoBBaseCharGuiStringsSt2, + kEoBBaseCharGuiStringsIn, + + kEoBBaseCharStatusStrings7, + kEoBBaseCharStatusStrings82, + kEoBBaseCharStatusStrings9, + kEoBBaseCharStatusStrings12, + kEoBBaseCharStatusStrings132, + + kEoBBaseLevelGainStrings, + kEoBBaseExperienceTable0, + kEoBBaseExperienceTable1, + kEoBBaseExperienceTable2, + kEoBBaseExperienceTable3, + kEoBBaseExperienceTable4, + + kEoBBaseBookNumbers, + kEoBBaseMageSpellsList, + kEoBBaseClericSpellsList, + kEoBBaseSpellNames, + kEoBBaseMagicStrings1, + kEoBBaseMagicStrings2, + kEoBBaseMagicStrings3, + kEoBBaseMagicStrings4, + kEoBBaseMagicStrings6, + kEoBBaseMagicStrings7, + kEoBBaseMagicStrings8, + + kEoBBaseExpObjectTlMode, + 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, + kEoBBaseDscDoorType5Offs, + kEoBBaseDscDoorY1, + kRpgCommonDscDoorY2, + kRpgCommonDscDoorFrameY1, + kRpgCommonDscDoorFrameY2, + + kEoBBaseDscItemPosIndex, + kEoBBaseDscItemShpX, + kEoBBaseDscItemScaleIndex, + kEoBBaseDscItemTileIndex, + kEoBBaseDscItemShapeMap, + kEoBBaseDscTelptrShpCoords, + + kEoBBasePortalSeqData, + kEoBBaseManDef, + kEoBBaseManWord, + kEoBBaseManPrompt, + + kEoBBaseDscMonsterFrmOffsTbl1, + kEoBBaseDscMonsterFrmOffsTbl2, + + kEoBBaseInvSlotX, + kEoBBaseInvSlotY, + kEoBBaseSlotValidationFlags, + + kEoBBaseProjectileWeaponTypes, + kEoBBaseWandTypes, + + kEoBBaseDrawObjPosIndex, + kEoBBaseFlightObjFlipIndex, + kEoBBaseFlightObjShpMap, + kEoBBaseFlightObjSclIndex, + + kEoB2MainMenuStrings, + + kEoB2TransferPortraitFrames, + kEoB2TransferConvertTable, + kEoB2TransferItemTable, + kEoB2TransferExpTable, + kEoB2TransferStrings1, + kEoB2TransferStrings2, + kEoB2TransferLabels, + + kEoB2IntroStrings, + kEoB2IntroCPSFiles, + kEoB2IntroAnimData00, + kEoB2IntroAnimData01, + kEoB2IntroAnimData02, + kEoB2IntroAnimData03, + kEoB2IntroAnimData04, + kEoB2IntroAnimData05, + kEoB2IntroAnimData06, + kEoB2IntroAnimData07, + kEoB2IntroAnimData08, + kEoB2IntroAnimData09, + kEoB2IntroAnimData10, + kEoB2IntroAnimData11, + kEoB2IntroAnimData12, + kEoB2IntroAnimData13, + kEoB2IntroAnimData14, + kEoB2IntroAnimData15, + kEoB2IntroAnimData16, + kEoB2IntroAnimData17, + kEoB2IntroAnimData18, + kEoB2IntroAnimData19, + kEoB2IntroAnimData20, + kEoB2IntroAnimData21, + kEoB2IntroAnimData22, + kEoB2IntroAnimData23, + kEoB2IntroAnimData24, + kEoB2IntroAnimData25, + kEoB2IntroAnimData26, + kEoB2IntroAnimData27, + kEoB2IntroAnimData28, + kEoB2IntroAnimData29, + kEoB2IntroAnimData30, + kEoB2IntroAnimData31, + kEoB2IntroAnimData32, + kEoB2IntroAnimData33, + kEoB2IntroAnimData34, + kEoB2IntroAnimData35, + kEoB2IntroAnimData36, + kEoB2IntroAnimData37, + kEoB2IntroAnimData38, + kEoB2IntroAnimData39, + kEoB2IntroAnimData40, + + kEoB2IntroShapes00, + kEoB2IntroShapes01, + kEoB2IntroShapes04, + kEoB2IntroShapes07, + kEoB2IntroShapes13, + kEoB2IntroShapes14, + kEoB2IntroShapes15, + + kEoB2FinaleStrings, + kEoB2FinaleCPSFiles, + kEoB2FinaleAnimData00, + kEoB2FinaleAnimData01, + kEoB2FinaleAnimData02, + kEoB2FinaleAnimData03, + kEoB2FinaleAnimData04, + kEoB2FinaleAnimData05, + kEoB2FinaleAnimData06, + kEoB2FinaleAnimData07, + kEoB2FinaleAnimData08, + kEoB2FinaleAnimData09, + kEoB2FinaleAnimData10, + kEoB2FinaleAnimData11, + kEoB2FinaleAnimData12, + kEoB2FinaleAnimData13, + kEoB2FinaleAnimData14, + kEoB2FinaleAnimData15, + kEoB2FinaleAnimData16, + kEoB2FinaleAnimData17, + kEoB2FinaleAnimData18, + kEoB2FinaleAnimData19, + kEoB2FinaleAnimData20, + kEoB2FinaleShapes00, + kEoB2FinaleShapes03, + kEoB2FinaleShapes07, + kEoB2FinaleShapes09, + kEoB2FinaleShapes10, + + kEoB2NpcShapeData, + kEoBBaseClassModifierFlags, + + kEoBBaseMonsterStepTable02, + kEoBBaseMonsterStepTable1, + kEoBBaseMonsterStepTable2, + kEoBBaseMonsterStepTable3, + kEoBBaseMonsterCloseAttPosTable1, + kEoBBaseMonsterCloseAttPosTable22, + kEoBBaseMonsterCloseAttUnkTable, + kEoBBaseMonsterCloseAttChkTable1, + kEoBBaseMonsterCloseAttChkTable2, + kEoBBaseMonsterCloseAttDstTable1, + kEoBBaseMonsterCloseAttDstTable2, + + kEoBBaseMonsterProximityTable, + kEoBBaseFindBlockMonstersTable, + kEoBBaseMonsterDirChangeTable, + kEoBBaseMonsterDistAttStrings, + kEoBBaseEncodeMonsterDefs, + kEoBBaseNpcPresets, + kEoB2Npc1Strings, + kEoB2Npc2Strings, + kEoB2MonsterDustStrings, + kEoB2DreamSteps, + kEoB2KheldranStrings, + kEoB2HornStrings, + kEoB2HornSounds, + kEoB2WallOfForceDsX, + kEoB2WallOfForceDsY, + kEoB2WallOfForceNumW, + kEoB2WallOfForceNumH, + kEoB2WallOfForceShpId, + + kRpgCommonDscShapeIndex, + kRpgCommonDscX, + kRpgCommonDscTileIndex, + kRpgCommonDscDimData1, + kRpgCommonDscDimData2, + kRpgCommonDscBlockMap, + kRpgCommonDscDimMap, + kRpgCommonDscBlockIndex, + + kEoBBaseSoundMap, + kEoB2SoundMapExtra, + kEoB2SoundIndex1, + kEoB2SoundIndex2, + kEoB2SoundFilesIngame2, + kEoB2MonsterSoundPatchData, + kEoBBaseLevelSoundFiles1, + kEoBBaseLevelSoundFiles2, + kEoBBaseSoundFilesIntro, + kEoBBaseSoundFilesIngame, + kEoBBaseSoundFilesFinale, + + -1 +}; + const int eob2PC98Need[] = { kEoBBaseChargenStrings1, kEoBBaseChargenStrings2, @@ -3263,7 +3598,7 @@ const GameNeed gameNeedTable[] = { //{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need }, { kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed }, - //{ kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed }, + { kEoB2, kPlatformAmiga, kNoSpecial, eob2AmigaNeed }, //{ kEoB2, kPlatformPC98, kNoSpecial, eob2PC98Need }, { kEoB2, kPlatformFMTowns, kNoSpecial, eob2FMTownsNeed }, diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp index 4de1d41503..36e6b0baf5 100644 --- a/devtools/create_kyradat/resources.cpp +++ b/devtools/create_kyradat/resources.cpp @@ -104,9 +104,9 @@ #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_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" @@ -1595,8 +1595,8 @@ static const ResourceProvider resourceProviders[] = { { 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 }, + { kEoBBaseLevelSoundFiles1, kEoB1, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB1LevelSoundFiles1AmigaProvider }, + { kEoBBaseLevelSoundFiles2, 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 }, @@ -2073,6 +2073,407 @@ static const ResourceProvider resourceProviders[] = { { kEoB2MonsterDustStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsDOSGermanProvider }, { kEoB2KheldranStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2KheldranStringsDOSGermanProvider }, { kEoB2HornStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2HornStringsDOSGermanProvider }, + + + + + { kEoBBaseChargenStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStrings1AmigaEnglishProvider }, + { kEoBBaseChargenStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStrings2AmigaEnglishProvider }, + { kEoBBaseChargenStartLevels, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsAmigaProvider }, + { kEoBBaseChargenStatStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenStatStringsAmigaEnglishProvider }, + { kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenRaceSexStringsAmigaEnglishProvider }, + { kEoBBaseChargenClassStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenClassStringsAmigaEnglishProvider }, + { kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenAlignmentStringsAmigaEnglishProvider }, + { kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ChargenEnterGameStringsAmigaEnglishProvider }, + { kEoBBaseChargenClassMinStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenClassMinStatsAmigaProvider }, + { kEoBBaseChargenRaceMinStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMinStatsAmigaProvider }, + { kEoBBaseChargenRaceMaxStats, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMaxStatsAmigaProvider }, + { kEoBBaseSaveThrowTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable1AmigaProvider }, + { kEoBBaseSaveThrowTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable2AmigaProvider }, + { kEoBBaseSaveThrowTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable3AmigaProvider }, + { kEoBBaseSaveThrowTable4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable4AmigaProvider }, + { kEoBBaseSaveThrwLvlIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwLvlIndexAmigaProvider }, + { kEoBBaseSaveThrwModDiv, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModDivAmigaProvider }, + { kEoBBaseSaveThrwModExt, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModExtAmigaProvider }, + { kEoBBasePryDoorStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PryDoorStringsAmigaEnglishProvider }, + { kEoBBaseWarningStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2WarningStringsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsRingsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsPotionsAmigaEnglishProvider }, + { kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemSuffixStringsWandsAmigaEnglishProvider }, + { kEoBBaseRipItemStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2RipItemStringsAmigaEnglishProvider }, + { kEoBBaseCursedString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CursedStringAmigaEnglishProvider }, + { kEoBBaseEnchantedString, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2EnchantedStringAmigaProvider }, + { kEoBBaseMagicObjectStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicObjectStringsAmigaEnglishProvider }, + { kEoBBaseMagicObjectString5, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicObjectString5AmigaEnglishProvider }, + { kEoBBasePatternSuffix, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternSuffixAmigaEnglishProvider }, + { kEoBBasePatternGrFix1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternGrFix1AmigaEnglishProvider }, + { kEoBBasePatternGrFix2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PatternGrFix2AmigaEnglishProvider }, + { kEoBBaseValidateArmorString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateArmorStringAmigaEnglishProvider }, + { kEoBBaseValidateCursedString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateCursedStringAmigaEnglishProvider }, + { kEoBBaseValidateNoDropString, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ValidateNoDropStringAmigaEnglishProvider }, + { kEoBBasePotionStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PotionStringsAmigaEnglishProvider }, + { kEoBBaseWandStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2WandStringsAmigaEnglishProvider }, + { kEoBBaseItemMisuseStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ItemMisuseStringsAmigaEnglishProvider }, + { kEoBBaseTakenStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TakenStringsAmigaEnglishProvider }, + { kEoBBasePotionEffectStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2PotionEffectStringsAmigaEnglishProvider }, + { kEoBBaseYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2YesNoStringsAmigaEnglishProvider }, + { kRpgCommonMoreStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MoreStringsAmigaEnglishProvider }, + { kEoBBaseNpcMaxStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2NpcMaxStringsAmigaEnglishProvider }, + { kEoBBaseOkStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2OkStringsAmigaEnglishProvider }, + { kEoBBaseNpcJoinStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2NpcJoinStringsAmigaEnglishProvider }, + { kEoBBaseCancelStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CancelStringsAmigaEnglishProvider }, + { kEoBBaseAbortStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2AbortStringsAmigaEnglishProvider }, + { kEoBBaseMenuStringsMain, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsMainAmigaEnglishProvider }, + { kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSaveLoadAmigaEnglishProvider }, + { kEoBBaseMenuStringsOnOff, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsOnOffAmigaEnglishProvider }, + { kEoBBaseMenuStringsSpells, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSpellsAmigaEnglishProvider }, + { kEoBBaseMenuStringsRest, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRestAmigaEnglishProvider }, + { kEoBBaseMenuStringsDrop, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDropAmigaEnglishProvider }, + { kEoBBaseMenuStringsExit, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsExitAmigaEnglishProvider }, + { kEoBBaseMenuStringsStarve, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsStarveAmigaEnglishProvider }, + { kEoBBaseMenuStringsScribe, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsScribeAmigaEnglishProvider }, + { kEoBBaseMenuStringsDrop2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDrop2AmigaEnglishProvider }, + { kEoBBaseMenuStringsHead, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsHeadAmigaEnglishProvider }, + { kEoBBaseMenuStringsPoison, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsPoisonAmigaEnglishProvider }, + { kEoBBaseMenuStringsMgc, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsMgcAmigaEnglishProvider }, + { kEoBBaseMenuStringsPrefs, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsPrefsAmigaEnglishProvider }, + { kEoBBaseMenuStringsRest2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest2AmigaEnglishProvider }, + { kEoBBaseMenuStringsRest3, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest3AmigaEnglishProvider }, + { kEoBBaseMenuStringsRest4, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsRest4AmigaEnglishProvider }, + { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsDefeatAmigaEnglishProvider }, + { kEoBBaseMenuStringsTransfer, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsTransferAmigaEnglishProvider }, + { kEoBBaseMenuStringsSpec, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuStringsSpecAmigaEnglishProvider }, + { kEoBBaseMenuStringsSpellNo, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MenuStringsSpellNoAmigaProvider }, + { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MenuYesNoStringsAmigaEnglishProvider }, + { kEoBBaseSpellLevelsMage, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsMageAmigaProvider }, + { kEoBBaseSpellLevelsCleric, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsClericAmigaProvider }, + { kEoBBaseNumSpellsCleric, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsClericAmigaProvider }, + { kEoBBaseNumSpellsWisAdj, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsWisAdjAmigaProvider }, + { kEoBBaseNumSpellsPal, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsPalAmigaProvider }, + { kEoBBaseNumSpellsMage, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NumSpellsMageAmigaProvider }, + { kEoBBaseCharGuiStringsHp, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsHpAmigaEnglishProvider }, + { kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsWp2AmigaEnglishProvider }, + { kEoBBaseCharGuiStringsWr, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsWrAmigaEnglishProvider }, + { kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsSt2AmigaEnglishProvider }, + { kEoBBaseCharGuiStringsIn, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharGuiStringsInAmigaEnglishProvider }, + { kEoBBaseCharStatusStrings7, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings7AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings82, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings82AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings9, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings9AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings12, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings12AmigaEnglishProvider }, + { kEoBBaseCharStatusStrings132, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2CharStatusStrings132AmigaEnglishProvider }, + { kEoBBaseLevelGainStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2LevelGainStringsAmigaEnglishProvider }, + { kEoBBaseExperienceTable0, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable0AmigaProvider }, + { kEoBBaseExperienceTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable1AmigaProvider }, + { kEoBBaseExperienceTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable2AmigaProvider }, + { kEoBBaseExperienceTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable3AmigaProvider }, + { kEoBBaseExperienceTable4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable4AmigaProvider }, + { kEoBBaseBookNumbers, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2BookNumbersAmigaEnglishProvider }, + { kEoBBaseMageSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MageSpellsListAmigaEnglishProvider }, + { kEoBBaseClericSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ClericSpellsListAmigaEnglishProvider }, + { kEoBBaseSpellNames, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2SpellNamesAmigaEnglishProvider }, + { kEoBBaseMagicStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings1AmigaEnglishProvider }, + { kEoBBaseMagicStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings2AmigaEnglishProvider }, + { kEoBBaseMagicStrings3, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings3AmigaEnglishProvider }, + { kEoBBaseMagicStrings4, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings4AmigaEnglishProvider }, + { kEoBBaseMagicStrings6, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings6AmigaEnglishProvider }, + { kEoBBaseMagicStrings7, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings7AmigaEnglishProvider }, + { kEoBBaseMagicStrings8, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MagicStrings8AmigaEnglishProvider }, + { kEoBBaseExpObjectTlMode, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTlModeAmigaProvider }, + { kEoBBaseExpObjectTblIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTblIndexAmigaProvider }, + { kEoBBaseExpObjectShpStart, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectShpStartAmigaProvider }, + { kEoBBaseExpObjectTbl1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl1AmigaProvider }, + { kEoBBaseExpObjectTbl2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl2AmigaProvider }, + { kEoBBaseExpObjectTbl3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl3AmigaProvider }, + { kEoBBaseExpObjectY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ExpObjectYAmigaProvider }, + { kEoBBaseSparkDefSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefStepsAmigaProvider }, + { kEoBBaseSparkDefSubSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefSubStepsAmigaProvider }, + { kEoBBaseSparkDefShift, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefShiftAmigaProvider }, + { kEoBBaseSparkDefAdd, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefAddAmigaProvider }, + { kEoBBaseSparkDefX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefXAmigaProvider }, + { kEoBBaseSparkDefY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkDefYAmigaProvider }, + { kEoBBaseSparkOfFlags1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags1AmigaProvider }, + { kEoBBaseSparkOfFlags2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags2AmigaProvider }, + { kEoBBaseSparkOfShift, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfShiftAmigaProvider }, + { kEoBBaseSparkOfX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfXAmigaProvider }, + { kEoBBaseSparkOfY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SparkOfYAmigaProvider }, + { kEoBBaseSpellProperties, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SpellPropertiesAmigaProvider }, + { kEoBBaseMagicFlightProps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MagicFlightPropsAmigaProvider }, + { kEoBBaseTurnUndeadEffect, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TurnUndeadEffectAmigaProvider }, + { kEoBBaseBurningHandsDest, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2BurningHandsDestAmigaProvider }, + { kEoBBaseConeOfColdDest1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest1AmigaProvider }, + { kEoBBaseConeOfColdDest2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest2AmigaProvider }, + { kEoBBaseConeOfColdDest3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest3AmigaProvider }, + { kEoBBaseConeOfColdDest4, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest4AmigaProvider }, + { kEoBBaseConeOfColdGfxTbl, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdGfxTblAmigaProvider }, + { kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexAmigaProvider }, + { kEoBBaseWllFlagPreset, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetAmigaProvider }, + { kEoBBaseDscShapeCoords, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsAmigaProvider }, + { kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsAmigaProvider }, + { kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1AmigaProvider }, + { kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2AmigaProvider }, + { kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3AmigaProvider }, + { kEoBBaseDscDoorType5Offs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorType5OffsAmigaProvider }, + { kEoBBaseDscDoorY1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorY1AmigaProvider }, + { kRpgCommonDscDoorY2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorY2AmigaProvider }, + { kRpgCommonDscDoorFrameY1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY1AmigaProvider }, + { kRpgCommonDscDoorFrameY2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY2AmigaProvider }, + { kEoBBaseDscItemPosIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemPosIndexAmigaProvider }, + { kEoBBaseDscItemShpX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemShpXAmigaProvider }, + { kEoBBaseDscItemScaleIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemScaleIndexAmigaProvider }, + { kEoBBaseDscItemTileIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemTileIndexAmigaProvider }, + { kEoBBaseDscItemShapeMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscItemShapeMapAmigaProvider }, + { kEoBBaseDscTelptrShpCoords, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscTelptrShpCoordsAmigaProvider }, + { kEoBBasePortalSeqData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2PortalSeqDataAmigaProvider }, + { kEoBBaseManDef, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManDefAmigaEnglishProvider }, + { kEoBBaseManWord, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManWordAmigaEnglishProvider }, + { kEoBBaseManPrompt, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2ManPromptAmigaEnglishProvider }, + { kEoBBaseDscMonsterFrmOffsTbl1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl1AmigaProvider }, + { kEoBBaseDscMonsterFrmOffsTbl2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl2AmigaProvider }, + { kEoBBaseInvSlotX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2InvSlotXAmigaProvider }, + { kEoBBaseInvSlotY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2InvSlotYAmigaProvider }, + { kEoBBaseSlotValidationFlags, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SlotValidationFlagsAmigaProvider }, + { kEoBBaseProjectileWeaponTypes, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ProjectileWeaponTypesAmigaProvider }, + { kEoBBaseWandTypes, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WandTypesAmigaProvider }, + { kEoBBaseDrawObjPosIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DrawObjPosIndexAmigaProvider }, + { kEoBBaseFlightObjFlipIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjFlipIndexAmigaProvider }, + { kEoBBaseFlightObjShpMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjShpMapAmigaProvider }, + { kEoBBaseFlightObjSclIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FlightObjSclIndexAmigaProvider }, + { kEoB2MainMenuStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MainMenuStringsAmigaEnglishProvider }, + { kEoB2TransferPortraitFrames, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferPortraitFramesAmigaProvider }, + { kEoB2TransferConvertTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferConvertTableAmigaProvider }, + { kEoB2TransferItemTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferItemTableAmigaProvider }, + { kEoB2TransferExpTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2TransferExpTableAmigaProvider }, + { kEoB2TransferStrings1, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferStrings1AmigaEnglishProvider }, + { kEoB2TransferStrings2, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferStrings2AmigaEnglishProvider }, + { kEoB2TransferLabels, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2TransferLabelsAmigaEnglishProvider }, + { kEoB2IntroStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2IntroStringsAmigaEnglishProvider }, + { kEoB2IntroCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2IntroCPSFilesAmigaEnglishProvider }, + { kEoB2IntroAnimData00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData00AmigaProvider }, + { kEoB2IntroAnimData01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData01AmigaProvider }, + { kEoB2IntroAnimData02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData02AmigaProvider }, + { kEoB2IntroAnimData03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData03AmigaProvider }, + { kEoB2IntroAnimData04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData04AmigaProvider }, + { kEoB2IntroAnimData05, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData05AmigaProvider }, + { kEoB2IntroAnimData06, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData06AmigaProvider }, + { kEoB2IntroAnimData07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData07AmigaProvider }, + { kEoB2IntroAnimData08, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData08AmigaProvider }, + { kEoB2IntroAnimData09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData09AmigaProvider }, + { kEoB2IntroAnimData10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData10AmigaProvider }, + { kEoB2IntroAnimData11, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData11AmigaProvider }, + { kEoB2IntroAnimData12, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData12AmigaProvider }, + { kEoB2IntroAnimData13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData13AmigaProvider }, + { kEoB2IntroAnimData14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData14AmigaProvider }, + { kEoB2IntroAnimData15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData15AmigaProvider }, + { kEoB2IntroAnimData16, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData16AmigaProvider }, + { kEoB2IntroAnimData17, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData17AmigaProvider }, + { kEoB2IntroAnimData18, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData18AmigaProvider }, + { kEoB2IntroAnimData19, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData19AmigaProvider }, + { kEoB2IntroAnimData20, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData20AmigaProvider }, + { kEoB2IntroAnimData21, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData21AmigaProvider }, + { kEoB2IntroAnimData22, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData22AmigaProvider }, + { kEoB2IntroAnimData23, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData23AmigaProvider }, + { kEoB2IntroAnimData24, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData24AmigaProvider }, + { kEoB2IntroAnimData25, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData25AmigaProvider }, + { kEoB2IntroAnimData26, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData26AmigaProvider }, + { kEoB2IntroAnimData27, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData27AmigaProvider }, + { kEoB2IntroAnimData28, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData28AmigaProvider }, + { kEoB2IntroAnimData29, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData29AmigaProvider }, + { kEoB2IntroAnimData30, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData30AmigaProvider }, + { kEoB2IntroAnimData31, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData31AmigaProvider }, + { kEoB2IntroAnimData32, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData32AmigaProvider }, + { kEoB2IntroAnimData33, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData33AmigaProvider }, + { kEoB2IntroAnimData34, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData34AmigaProvider }, + { kEoB2IntroAnimData35, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData35AmigaProvider }, + { kEoB2IntroAnimData36, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData36AmigaProvider }, + { kEoB2IntroAnimData37, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData37AmigaProvider }, + { kEoB2IntroAnimData38, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData38AmigaProvider }, + { kEoB2IntroAnimData39, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData39AmigaProvider }, + { kEoB2IntroAnimData40, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData40AmigaProvider }, + { kEoB2IntroShapes00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes00AmigaProvider }, + { kEoB2IntroShapes01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes01AmigaProvider }, + { kEoB2IntroShapes04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes04AmigaProvider }, + { kEoB2IntroShapes07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes07AmigaProvider }, + { kEoB2IntroShapes13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes13AmigaProvider }, + { kEoB2IntroShapes14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes14AmigaProvider }, + { kEoB2IntroShapes15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2IntroShapes15AmigaProvider }, + { kEoB2FinaleStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2FinaleStringsAmigaEnglishProvider }, + { kEoB2FinaleCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2FinaleCPSFilesAmigaEnglishProvider }, + { kEoB2FinaleAnimData00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData00AmigaProvider }, + { kEoB2FinaleAnimData01, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData01AmigaProvider }, + { kEoB2FinaleAnimData02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData02AmigaProvider }, + { kEoB2FinaleAnimData03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData03AmigaProvider }, + { kEoB2FinaleAnimData04, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData04AmigaProvider }, + { kEoB2FinaleAnimData05, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData05AmigaProvider }, + { kEoB2FinaleAnimData06, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData06AmigaProvider }, + { kEoB2FinaleAnimData07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData07AmigaProvider }, + { kEoB2FinaleAnimData08, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData08AmigaProvider }, + { kEoB2FinaleAnimData09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData09AmigaProvider }, + { kEoB2FinaleAnimData10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData10AmigaProvider }, + { kEoB2FinaleAnimData11, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData11AmigaProvider }, + { kEoB2FinaleAnimData12, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData12AmigaProvider }, + { kEoB2FinaleAnimData13, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData13AmigaProvider }, + { kEoB2FinaleAnimData14, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData14AmigaProvider }, + { kEoB2FinaleAnimData15, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData15AmigaProvider }, + { kEoB2FinaleAnimData16, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData16AmigaProvider }, + { kEoB2FinaleAnimData17, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData17AmigaProvider }, + { kEoB2FinaleAnimData18, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData18AmigaProvider }, + { kEoB2FinaleAnimData19, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData19AmigaProvider }, + { kEoB2FinaleAnimData20, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData20AmigaProvider }, + { kEoB2FinaleShapes00, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes00AmigaProvider }, + { kEoB2FinaleShapes03, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes03AmigaProvider }, + { kEoB2FinaleShapes07, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes07AmigaProvider }, + { kEoB2FinaleShapes09, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes09AmigaProvider }, + { kEoB2FinaleShapes10, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes10AmigaProvider }, + { kEoB2NpcShapeData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NpcShapeDataAmigaProvider }, + { kEoBBaseClassModifierFlags, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2ClassModifierFlagsAmigaProvider }, + { kEoBBaseMonsterStepTable02, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable02AmigaProvider }, + { kEoBBaseMonsterStepTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable1AmigaProvider }, + { kEoBBaseMonsterStepTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable2AmigaProvider }, + { kEoBBaseMonsterStepTable3, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable3AmigaProvider }, + { kEoBBaseMonsterCloseAttPosTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttPosTable22, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable22AmigaProvider }, + { kEoBBaseMonsterCloseAttUnkTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttUnkTableAmigaProvider }, + { kEoBBaseMonsterCloseAttChkTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttChkTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable2AmigaProvider }, + { kEoBBaseMonsterCloseAttDstTable1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable1AmigaProvider }, + { kEoBBaseMonsterCloseAttDstTable2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable2AmigaProvider }, + { kEoBBaseMonsterProximityTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterProximityTableAmigaProvider }, + { kEoBBaseFindBlockMonstersTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2FindBlockMonstersTableAmigaProvider }, + { kEoBBaseMonsterDirChangeTable, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterDirChangeTableAmigaProvider }, + { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MonsterDistAttStringsAmigaEnglishProvider }, + { kEoBBaseEncodeMonsterDefs, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2EncodeMonsterDefsAmigaProvider }, + { kEoBBaseNpcPresets, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsAmigaProvider }, + { kEoBBaseSoundMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundMapAmigaProvider }, + { kEoB2SoundMapExtra, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundMapExtraAmigaProvider }, + { kEoB2SoundIndex1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundIndex1AmigaProvider }, + { kEoB2SoundIndex2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundIndex2AmigaProvider }, + { kEoB2SoundFilesIngame2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIngame2AmigaProvider }, + { kEoB2MonsterSoundPatchData, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2MonsterSoundPatchDataAmigaProvider }, + { kEoBBaseLevelSoundFiles1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2LevelSoundFiles1AmigaProvider }, + { kEoBBaseLevelSoundFiles2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2LevelSoundFiles2AmigaProvider }, + { kEoBBaseSoundFilesIntro, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIntroAmigaProvider }, + { kEoBBaseSoundFilesIngame, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesIngameAmigaProvider }, + { kEoBBaseSoundFilesFinale, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2SoundFilesFinaleAmigaProvider }, + { kEoB2Npc1Strings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2Npc1StringsAmigaEnglishProvider }, + { kEoB2Npc2Strings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2Npc2StringsAmigaEnglishProvider }, + { kEoB2MonsterDustStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2MonsterDustStringsAmigaEnglishProvider }, + { kEoB2DreamSteps, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DreamStepsAmigaProvider }, + { kEoB2KheldranStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2KheldranStringsAmigaEnglishProvider }, + { kEoB2HornStrings, kEoB2, kPlatformAmiga, kNoSpecial, EN_ANY, &kEoB2HornStringsAmigaEnglishProvider }, + { kEoB2HornSounds, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2HornSoundsAmigaProvider }, + { kEoB2WallOfForceDsX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsXAmigaProvider }, + { kEoB2WallOfForceDsY, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsYAmigaProvider }, + { kEoB2WallOfForceNumW, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumWAmigaProvider }, + { kEoB2WallOfForceNumH, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumHAmigaProvider }, + { kEoB2WallOfForceShpId, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShpIdAmigaProvider }, + { kRpgCommonDscShapeIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexAmigaProvider }, + { kRpgCommonDscX, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscXAmigaProvider }, + { kRpgCommonDscTileIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexAmigaProvider }, + { kRpgCommonDscDimData1, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimData1AmigaProvider }, + { kRpgCommonDscDimData2, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimData2AmigaProvider }, + { kRpgCommonDscBlockMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapAmigaProvider }, + { kRpgCommonDscDimMap, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscDimMapAmigaProvider }, + { kRpgCommonDscBlockIndex, kEoB2, kPlatformAmiga, kNoSpecial, UNK_LANG, &kEoB2DscBlockIndexAmigaProvider }, + { kEoBBaseChargenStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStrings1AmigaGermanProvider }, + { kEoBBaseChargenStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStrings2AmigaGermanProvider }, + { kEoBBaseChargenStatStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenStatStringsAmigaGermanProvider }, + { kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenRaceSexStringsAmigaGermanProvider }, + { kEoBBaseChargenClassStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenClassStringsAmigaGermanProvider }, + { kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenAlignmentStringsAmigaGermanProvider }, + { kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ChargenEnterGameStringsAmigaGermanProvider }, + { kEoBBasePryDoorStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PryDoorStringsAmigaGermanProvider }, + { kEoBBaseWarningStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2WarningStringsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsRingsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsPotionsAmigaGermanProvider }, + { kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemSuffixStringsWandsAmigaGermanProvider }, + { kEoBBaseRipItemStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2RipItemStringsAmigaGermanProvider }, + { kEoBBaseCursedString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CursedStringAmigaGermanProvider }, + { kEoBBaseMagicObjectStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicObjectStringsAmigaGermanProvider }, + { kEoBBaseMagicObjectString5, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicObjectString5AmigaGermanProvider }, + { kEoBBasePatternSuffix, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternSuffixAmigaGermanProvider }, + { kEoBBasePatternGrFix1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternGrFix1AmigaGermanProvider }, + { kEoBBasePatternGrFix2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PatternGrFix2AmigaGermanProvider }, + { kEoBBaseValidateArmorString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateArmorStringAmigaGermanProvider }, + { kEoBBaseValidateCursedString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateCursedStringAmigaGermanProvider }, + { kEoBBaseValidateNoDropString, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ValidateNoDropStringAmigaGermanProvider }, + { kEoBBasePotionStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PotionStringsAmigaGermanProvider }, + { kEoBBaseWandStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2WandStringsAmigaGermanProvider }, + { kEoBBaseItemMisuseStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ItemMisuseStringsAmigaGermanProvider }, + { kEoBBaseTakenStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TakenStringsAmigaGermanProvider }, + { kEoBBasePotionEffectStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2PotionEffectStringsAmigaGermanProvider }, + { kEoBBaseYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2YesNoStringsAmigaGermanProvider }, + { kRpgCommonMoreStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MoreStringsAmigaGermanProvider }, + { kEoBBaseNpcMaxStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2NpcMaxStringsAmigaGermanProvider }, + { kEoBBaseOkStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2OkStringsAmigaGermanProvider }, + { kEoBBaseNpcJoinStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2NpcJoinStringsAmigaGermanProvider }, + { kEoBBaseCancelStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CancelStringsAmigaGermanProvider }, + { kEoBBaseAbortStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2AbortStringsAmigaGermanProvider }, + { kEoBBaseMenuStringsMain, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsMainAmigaGermanProvider }, + { kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSaveLoadAmigaGermanProvider }, + { kEoBBaseMenuStringsOnOff, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsOnOffAmigaGermanProvider }, + { kEoBBaseMenuStringsSpells, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSpellsAmigaGermanProvider }, + { kEoBBaseMenuStringsRest, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRestAmigaGermanProvider }, + { kEoBBaseMenuStringsDrop, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDropAmigaGermanProvider }, + { kEoBBaseMenuStringsExit, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsExitAmigaGermanProvider }, + { kEoBBaseMenuStringsStarve, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsStarveAmigaGermanProvider }, + { kEoBBaseMenuStringsScribe, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsScribeAmigaGermanProvider }, + { kEoBBaseMenuStringsDrop2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDrop2AmigaGermanProvider }, + { kEoBBaseMenuStringsHead, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsHeadAmigaGermanProvider }, + { kEoBBaseMenuStringsPoison, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsPoisonAmigaGermanProvider }, + { kEoBBaseMenuStringsMgc, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsMgcAmigaGermanProvider }, + { kEoBBaseMenuStringsPrefs, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsPrefsAmigaGermanProvider }, + { kEoBBaseMenuStringsRest2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest2AmigaGermanProvider }, + { kEoBBaseMenuStringsRest3, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest3AmigaGermanProvider }, + { kEoBBaseMenuStringsRest4, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsRest4AmigaGermanProvider }, + { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsDefeatAmigaGermanProvider }, + { kEoBBaseMenuStringsTransfer, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsTransferAmigaGermanProvider }, + { kEoBBaseMenuStringsSpec, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuStringsSpecAmigaGermanProvider }, + { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MenuYesNoStringsAmigaGermanProvider }, + { kEoBBaseCharGuiStringsHp, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsHpAmigaGermanProvider }, + { kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsWp2AmigaGermanProvider }, + { kEoBBaseCharGuiStringsWr, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsWrAmigaGermanProvider }, + { kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsSt2AmigaGermanProvider }, + { kEoBBaseCharGuiStringsIn, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharGuiStringsInAmigaGermanProvider }, + { kEoBBaseCharStatusStrings7, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings7AmigaGermanProvider }, + { kEoBBaseCharStatusStrings82, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings82AmigaGermanProvider }, + { kEoBBaseCharStatusStrings9, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings9AmigaGermanProvider }, + { kEoBBaseCharStatusStrings12, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings12AmigaGermanProvider }, + { kEoBBaseCharStatusStrings132, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2CharStatusStrings132AmigaGermanProvider }, + { kEoBBaseLevelGainStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2LevelGainStringsAmigaGermanProvider }, + { kEoBBaseBookNumbers, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2BookNumbersAmigaGermanProvider }, + { kEoBBaseMageSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MageSpellsListAmigaGermanProvider }, + { kEoBBaseClericSpellsList, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ClericSpellsListAmigaGermanProvider }, + { kEoBBaseSpellNames, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2SpellNamesAmigaGermanProvider }, + { kEoBBaseMagicStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings1AmigaGermanProvider }, + { kEoBBaseMagicStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings2AmigaGermanProvider }, + { kEoBBaseMagicStrings3, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings3AmigaGermanProvider }, + { kEoBBaseMagicStrings4, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings4AmigaGermanProvider }, + { kEoBBaseMagicStrings6, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings6AmigaGermanProvider }, + { kEoBBaseMagicStrings7, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings7AmigaGermanProvider }, + { kEoBBaseMagicStrings8, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MagicStrings8AmigaGermanProvider }, + { kEoBBaseManDef, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManDefAmigaGermanProvider }, + { kEoBBaseManWord, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManWordAmigaGermanProvider }, + { kEoBBaseManPrompt, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2ManPromptAmigaGermanProvider }, + { kEoB2MainMenuStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MainMenuStringsAmigaGermanProvider }, + { kEoB2TransferStrings1, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferStrings1AmigaGermanProvider }, + { kEoB2TransferStrings2, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferStrings2AmigaGermanProvider }, + { kEoB2TransferLabels, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2TransferLabelsAmigaGermanProvider }, + { kEoB2IntroStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2IntroStringsAmigaGermanProvider }, + { kEoB2IntroCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2IntroCPSFilesAmigaGermanProvider }, + { kEoB2FinaleStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2FinaleStringsAmigaGermanProvider }, + { kEoB2FinaleCPSFiles, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2FinaleCPSFilesAmigaGermanProvider }, + { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MonsterDistAttStringsAmigaGermanProvider }, + { kEoB2Npc1Strings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2Npc1StringsAmigaGermanProvider }, + { kEoB2Npc2Strings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2Npc2StringsAmigaGermanProvider }, + { kEoB2MonsterDustStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsAmigaGermanProvider }, + { kEoB2KheldranStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2KheldranStringsAmigaGermanProvider }, + { kEoB2HornStrings, kEoB2, kPlatformAmiga, kNoSpecial, DE_DEU, &kEoB2HornStringsAmigaGermanProvider }, + + + + + + { kEoBBaseChargenStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings1FMTownsJapaneseProvider }, { kEoBBaseChargenStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings2FMTownsJapaneseProvider }, { kEoBBaseChargenStartLevels, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsFMTownsProvider }, diff --git a/devtools/create_kyradat/resources/eob2_amiga.h b/devtools/create_kyradat/resources/eob2_amiga.h new file mode 100644 index 0000000000..16cb4406e8 --- /dev/null +++ b/devtools/create_kyradat/resources/eob2_amiga.h @@ -0,0 +1,2775 @@ +static const byte kEoB2ChargenStartLevelsAmiga[60] = { + 0x07, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, + 0x06, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, + 0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, + 0x06, 0x06, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02, + 0x06, 0x05, 0x00, 0x02, 0x05, 0x05, 0x06, 0x03, + 0x06, 0x05, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02, + 0x05, 0x05, 0x05, 0x03, 0x05, 0x06, 0x00, 0x02, + 0x06, 0x05, 0x00, 0x02 +}; + +static const ByteProvider kEoB2ChargenStartLevelsAmigaProvider = { ARRAYSIZE(kEoB2ChargenStartLevelsAmiga), kEoB2ChargenStartLevelsAmiga }; + +static const byte kEoB2ChargenClassMinStatsAmiga[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 kEoB2ChargenClassMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenClassMinStatsAmiga), kEoB2ChargenClassMinStatsAmiga }; + +static const byte kEoB2ChargenRaceMinStatsAmiga[36] = { + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08, + 0x03, 0x07, 0x06, 0x08, 0x03, 0x04, 0x03, 0x06, + 0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0c, 0x02, + 0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06, + 0x03, 0x08, 0x0a, 0x06 +}; + +static const ByteProvider kEoB2ChargenRaceMinStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMinStatsAmiga), kEoB2ChargenRaceMinStatsAmiga }; + +static const uint16 kEoB2ChargenRaceMaxStatsAmiga[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 kEoB2ChargenRaceMaxStatsAmigaProvider = { ARRAYSIZE(kEoB2ChargenRaceMaxStatsAmiga), kEoB2ChargenRaceMaxStatsAmiga }; + +static const byte kEoB2SaveThrowTable1Amiga[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 kEoB2SaveThrowTable1AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable1Amiga), kEoB2SaveThrowTable1Amiga }; + +static const byte kEoB2SaveThrowTable2Amiga[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 kEoB2SaveThrowTable2AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable2Amiga), kEoB2SaveThrowTable2Amiga }; + +static const byte kEoB2SaveThrowTable3Amiga[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 kEoB2SaveThrowTable3AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable3Amiga), kEoB2SaveThrowTable3Amiga }; + +static const byte kEoB2SaveThrowTable4Amiga[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 kEoB2SaveThrowTable4AmigaProvider = { ARRAYSIZE(kEoB2SaveThrowTable4Amiga), kEoB2SaveThrowTable4Amiga }; + +static const byte kEoB2SaveThrwLvlIndexAmiga[6] = { + 0x11, 0x15, 0x13, 0x15, 0x11, 0x11 +}; + +static const ByteProvider kEoB2SaveThrwLvlIndexAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwLvlIndexAmiga), kEoB2SaveThrwLvlIndexAmiga }; + +static const byte kEoB2SaveThrwModDivAmiga[6] = { + 0x02, 0x05, 0x03, 0x04, 0x02, 0x02 +}; + +static const ByteProvider kEoB2SaveThrwModDivAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModDivAmiga), kEoB2SaveThrwModDivAmiga }; + +static const byte kEoB2SaveThrwModExtAmiga[6] = { + 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A +}; + +static const ByteProvider kEoB2SaveThrwModExtAmigaProvider = { ARRAYSIZE(kEoB2SaveThrwModExtAmiga), kEoB2SaveThrwModExtAmiga }; + +static const char *const kEoB2EnchantedStringAmiga[1] = { + "+%d %s" +}; + +static const StringListProvider kEoB2EnchantedStringAmigaProvider = { ARRAYSIZE(kEoB2EnchantedStringAmiga), kEoB2EnchantedStringAmiga }; + +static const char *const kEoB2MenuStringsSpellNoAmiga[3] = { + "6", + "7", + "8" +}; + +static const StringListProvider kEoB2MenuStringsSpellNoAmigaProvider = { ARRAYSIZE(kEoB2MenuStringsSpellNoAmiga), kEoB2MenuStringsSpellNoAmiga }; + +static const byte kEoB2SpellLevelsMageAmiga[35] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, + 0x05, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x08, + 0x00, 0x01, 0x01 +}; + +static const ByteProvider kEoB2SpellLevelsMageAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsMageAmiga), kEoB2SpellLevelsMageAmiga }; + +static const byte kEoB2SpellLevelsClericAmiga[29] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, + 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x00 +}; + +static const ByteProvider kEoB2SpellLevelsClericAmigaProvider = { ARRAYSIZE(kEoB2SpellLevelsClericAmiga), kEoB2SpellLevelsClericAmiga }; + +static const byte kEoB2NumSpellsClericAmiga[136] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, + 0x05, 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, + 0x06, 0x05, 0x05, 0x03, 0x02, 0x02, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x04, 0x02, 0x02, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x05, 0x03, 0x02, 0x01, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x02, 0x01, 0x00, + 0x07, 0x07, 0x07, 0x06, 0x04, 0x03, 0x01, 0x00, + 0x07, 0x07, 0x07, 0x07, 0x05, 0x03, 0x02, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsClericAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsClericAmiga), kEoB2NumSpellsClericAmiga }; + +static const byte kEoB2NumSpellsWisAdjAmiga[64] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsWisAdjAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsWisAdjAmiga), kEoB2NumSpellsWisAdjAmiga }; + +static const byte kEoB2NumSpellsPalAmiga[136] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2NumSpellsPalAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsPalAmiga), kEoB2NumSpellsPalAmiga }; + +static const byte kEoB2NumSpellsMageAmiga[136] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x04, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x01, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x02, 0x01, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x02 +}; + +static const ByteProvider kEoB2NumSpellsMageAmigaProvider = { ARRAYSIZE(kEoB2NumSpellsMageAmiga), kEoB2NumSpellsMageAmiga }; + +static const uint32 kEoB2ExperienceTable0Amiga[14] = { + 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848, + 0x0003D090, 0x0007A120, 0x000B71B0, 0x000F4240, 0x001312D0, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable0AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable0Amiga), kEoB2ExperienceTable0Amiga }; + +static const uint32 kEoB2ExperienceTable1Amiga[14] = { + 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90, + 0x00020F58, 0x0003D090, 0x0005B8D8, 0x000B71B0, 0x00112A88, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable1AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable1Amiga), kEoB2ExperienceTable1Amiga }; + +static const uint32 kEoB2ExperienceTable2Amiga[14] = { + 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0, + 0x00036EE8, 0x0006DDD0, 0x000A4CB8, 0x000DBBA0, 0x00112A88, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable2AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable2Amiga), kEoB2ExperienceTable2Amiga }; + +static const uint32 kEoB2ExperienceTable3Amiga[14] = { + 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170, + 0x0001ADB0, 0x00027100, 0x00035B60, 0x0006B6C0, 0x000A1220, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable3AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable3Amiga), kEoB2ExperienceTable3Amiga }; + +static const uint32 kEoB2ExperienceTable4Amiga[14] = { + 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0, + 0x000493E0, 0x000927C0, 0x000DBBA0, 0x00124F80, 0x0016E360, 0xFFFFFFFF +}; + +static const Uint32Provider kEoB2ExperienceTable4AmigaProvider = { ARRAYSIZE(kEoB2ExperienceTable4Amiga), kEoB2ExperienceTable4Amiga }; + +static const byte kEoB2ExpObjectTlModeAmiga[18] = { + 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x02, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTlModeAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTlModeAmiga), kEoB2ExpObjectTlModeAmiga }; + +static const byte kEoB2ExpObjectTblIndexAmiga[14] = { + 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTblIndexAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTblIndexAmiga), kEoB2ExpObjectTblIndexAmiga }; + +static const byte kEoB2ExpObjectShpStartAmiga[4] = { + 0x07, 0x0C, 0x0F, 0x12 +}; + +static const ByteProvider kEoB2ExpObjectShpStartAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectShpStartAmiga), kEoB2ExpObjectShpStartAmiga }; + +static const byte kEoB2ExpObjectTbl1Amiga[13] = { + 0x1f, 0x17, 0x1f, 0x17, 0x18, 0x17, 0x18, 0x19, + 0x18, 0x19, 0x18, 0x19, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl1AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl1Amiga), kEoB2ExpObjectTbl1Amiga }; + +static const byte kEoB2ExpObjectTbl2Amiga[10] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1e, 0x1d, + 0x1e, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl2AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl2Amiga), kEoB2ExpObjectTbl2Amiga }; + +static const byte kEoB2ExpObjectTbl3Amiga[11] = { + 0x17, 0x1b, 0x17, 0x1b, 0x08, 0x1b, 0x08, 0x1e, + 0x08, 0x1e, 0x00 +}; + +static const ByteProvider kEoB2ExpObjectTbl3AmigaProvider = { ARRAYSIZE(kEoB2ExpObjectTbl3Amiga), kEoB2ExpObjectTbl3Amiga }; + +static const byte kEoB2ExpObjectYAmiga[4] = { + 0x77, 0x67, 0x4F, 0x3F +}; + +static const ByteProvider kEoB2ExpObjectYAmigaProvider = { ARRAYSIZE(kEoB2ExpObjectYAmiga), kEoB2ExpObjectYAmiga }; + +static const byte kEoB2SparkDefStepsAmiga[8] = { + 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01 +}; + +static const ByteProvider kEoB2SparkDefStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefStepsAmiga), kEoB2SparkDefStepsAmiga }; + +static const byte kEoB2SparkDefSubStepsAmiga[4] = { + 0xC0, 0x30, 0x0C, 0x03 +}; + +static const ByteProvider kEoB2SparkDefSubStepsAmigaProvider = { ARRAYSIZE(kEoB2SparkDefSubStepsAmiga), kEoB2SparkDefSubStepsAmiga }; + +static const byte kEoB2SparkDefShiftAmiga[4] = { + 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2SparkDefShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkDefShiftAmiga), kEoB2SparkDefShiftAmiga }; + +static const byte kEoB2SparkDefAddAmiga[8] = { + 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F +}; + +static const ByteProvider kEoB2SparkDefAddAmigaProvider = { ARRAYSIZE(kEoB2SparkDefAddAmiga), kEoB2SparkDefAddAmiga }; + +static const byte kEoB2SparkDefXAmiga[6] = { + 0x17, 0x20, 0x17, 0x20, 0x17, 0x20 +}; + +static const ByteProvider kEoB2SparkDefXAmigaProvider = { ARRAYSIZE(kEoB2SparkDefXAmiga), kEoB2SparkDefXAmiga }; + +static const byte kEoB2SparkDefYAmiga[6] = { + 0x02, 0x02, 0x34, 0x34, 0x66, 0x66 +}; + +static const ByteProvider kEoB2SparkDefYAmigaProvider = { ARRAYSIZE(kEoB2SparkDefYAmiga), kEoB2SparkDefYAmiga }; + +static const uint32 kEoB2SparkOfFlags1Amiga[11] = { + 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB, + 0x00000156, 0x00000001, 0x00000000 +}; + +static const Uint32Provider kEoB2SparkOfFlags1AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags1Amiga), kEoB2SparkOfFlags1Amiga }; + +static const uint32 kEoB2SparkOfFlags2Amiga[16] = { + 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000, + 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003 +}; + +static const Uint32Provider kEoB2SparkOfFlags2AmigaProvider = { ARRAYSIZE(kEoB2SparkOfFlags2Amiga), kEoB2SparkOfFlags2Amiga }; + +static const byte kEoB2SparkOfShiftAmiga[16] = { + 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10, + 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2SparkOfShiftAmigaProvider = { ARRAYSIZE(kEoB2SparkOfShiftAmiga), kEoB2SparkOfShiftAmiga }; + +static const byte kEoB2SparkOfXAmiga[16] = { + 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78, + 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48 +}; + +static const ByteProvider kEoB2SparkOfXAmigaProvider = { ARRAYSIZE(kEoB2SparkOfXAmiga), kEoB2SparkOfXAmiga }; + +static const byte kEoB2SparkOfYAmiga[16] = { + 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B, + 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44 +}; + +static const ByteProvider kEoB2SparkOfYAmigaProvider = { ARRAYSIZE(kEoB2SparkOfYAmiga), kEoB2SparkOfYAmiga }; + +static const byte kEoB2SpellPropertiesAmiga[1820] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0b, 0xc6, 0x00, 0x01, + 0xb6, 0xbe, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xcc, + 0x00, 0x01, 0xb7, 0x2a, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, + 0x0b, 0xda, 0x00, 0x01, 0xb8, 0x52, 0x00, 0x4c, + 0x00, 0x03, 0x0b, 0x3e, 0x00, 0x01, 0xb8, 0x78, + 0x5f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x03, 0x0b, 0xe8, 0x00, 0x01, 0xb8, 0x9e, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xb8, 0xd6, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0b, 0xf6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8b, 0x00, 0x03, 0x0b, 0x46, + 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x0b, 0xfe, + 0x00, 0x01, 0xb9, 0x16, 0x04, 0x88, 0x00, 0x03, + 0x0b, 0x4e, 0x00, 0x01, 0xb9, 0xe2, 0x58, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, + 0x0c, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, + 0x00, 0x03, 0x0b, 0x56, 0x00, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0x14, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x28, 0x00, 0x01, + 0xb6, 0x74, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0x48, 0x00, 0x01, 0xba, 0x44, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xba, 0x82, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x03, 0x0c, 0x5a, 0x00, 0x01, 0xb6, 0x18, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x68, 0x00, 0x01, + 0xba, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbb, 0x02, 0x63, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x0c, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, 0x00, 0x03, + 0x0b, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0x78, 0x00, 0x01, 0xbb, 0x3e, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbb, 0x7c, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x03, 0x0c, 0x9c, 0x00, 0x01, + 0xbc, 0x7e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbc, 0xbc, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x0c, 0xac, + 0x00, 0x01, 0xbc, 0xf8, 0x04, 0x88, 0x00, 0x03, + 0x0b, 0x6e, 0x00, 0x01, 0xbd, 0xc6, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0c, 0xbc, 0x00, 0x01, 0xbd, 0xf2, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0c, 0xc2, 0x00, 0x01, 0xbe, 0x54, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xbe, 0x92, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x00, 0x03, 0x0c, 0xcc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x29, 0x00, 0x03, 0x0b, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0xe2, + 0x00, 0x01, 0xbf, 0x18, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0c, 0xf0, 0x00, 0x01, 0xbf, 0x96, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, + 0x00, 0x03, 0x0c, 0xfe, 0x00, 0x01, 0xc0, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xc0, 0xc0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0x0c, 0x00, 0x01, + 0xc2, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x1a, + 0x00, 0x01, 0xc3, 0x58, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0d, 0x28, 0x00, 0x01, 0xc3, 0xce, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x03, 0x0d, 0x38, 0x00, 0x01, 0xc4, 0x48, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0x48, 0x00, 0x01, + 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e, + 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x54, + 0x00, 0x01, 0xc4, 0xac, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0d, 0x64, 0x00, 0x01, 0xc5, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0d, 0x74, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x03, + 0x0b, 0x86, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0d, 0x90, 0x00, 0x01, 0xc5, 0x7c, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x03, 0x0d, 0xa4, 0x00, 0x01, 0xc5, 0x9a, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0d, 0xb6, 0x00, 0x01, + 0xb8, 0x52, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x3e, + 0x00, 0x01, 0xb8, 0x78, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xc4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x03, + 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0d, 0xda, 0x00, 0x01, 0xc5, 0xda, 0x00, 0x39, + 0x00, 0x03, 0x0b, 0x96, 0x00, 0x01, 0xc6, 0xbc, + 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0d, 0xde, 0x00, 0x01, 0xc6, 0xe4, + 0x24, 0x08, 0x00, 0x03, 0x0b, 0x9e, 0x00, 0x01, + 0xb9, 0xe2, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x00, 0x03, 0x0d, 0xea, 0x00, 0x01, + 0xbb, 0x3e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xbb, 0x7c, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0xf6, + 0x00, 0x01, 0xc7, 0x9e, 0x00, 0x28, 0x00, 0x03, + 0x0b, 0xa6, 0x00, 0x01, 0xc8, 0x14, 0x6f, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x02, 0x00, 0x01, 0xc8, 0x2e, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0x0e, 0x00, 0x01, 0xb6, 0x18, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0e, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x99, 0x00, 0x03, 0x0b, 0xae, + 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x03, + 0x0b, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x36, 0x00, 0x01, 0xc8, 0x6e, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0x48, 0x00, 0x01, 0xc9, 0x02, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0x5e, 0x00, 0x01, + 0xc8, 0xbc, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0x72, + 0x00, 0x01, 0xc9, 0x26, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0e, 0x84, 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, + 0x00, 0x03, 0x0b, 0x8e, 0x00, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0xa4, 0x00, 0x01, 0xc9, 0x5a, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0xba, 0x00, 0x01, + 0xc9, 0x78, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0e, 0xd0, + 0x00, 0x01, 0xc9, 0xb8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc9, 0xf6, 0x62, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, + 0x0e, 0xde, 0x00, 0x01, 0xca, 0x26, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0xea, 0x00, 0x01, 0xc4, 0xac, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x03, 0x0e, 0xf6, 0x00, 0x01, + 0xc4, 0x78, 0x00, 0x4c, 0x00, 0x03, 0x0b, 0x7e, + 0x00, 0x01, 0xc4, 0x92, 0x49, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x02, + 0x00, 0x01, 0xca, 0x6a, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x0f, 0x08, 0x00, 0x01, 0xca, 0x86, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1c, 0x00, 0x01, + 0xcd, 0xf6, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x2a, + 0x00, 0x01, 0xca, 0xea, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0f, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xce, 0x30, + 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4c, 0x00, 0x03, 0x0b, 0xbe, 0x00, 0x00, + 0x00, 0x00, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xce, 0x9a, 0x62, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xcc, 0x7e, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x0f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0xfa, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x4e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xcd, 0x0c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xcd, 0x7e, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2SpellPropertiesAmigaProvider = { ARRAYSIZE(kEoB2SpellPropertiesAmiga), kEoB2SpellPropertiesAmiga }; + +static const byte kEoB2MagicFlightPropsAmiga[56] = { + 0x04, 0xff, 0x41, 0x0c, 0x0b, 0xff, 0x04, 0x06, + 0x0d, 0xff, 0x7a, 0x09, 0x0f, 0xff, 0x4a, 0x08, + 0x11, 0x06, 0x38, 0x0a, 0x14, 0x06, 0x7a, 0x0b, + 0x18, 0xff, 0x4a, 0x08, 0x36, 0xff, 0x4b, 0x09, + 0x3f, 0xff, 0x4b, 0x09, 0x41, 0x06, 0x4b, 0x09, + 0x42, 0x06, 0x4b, 0x08, 0x43, 0x06, 0x4b, 0x08, + 0x44, 0x06, 0x4b, 0x08, 0x45, 0x06, 0x4b, 0x08 +}; + +static const ByteProvider kEoB2MagicFlightPropsAmigaProvider = { ARRAYSIZE(kEoB2MagicFlightPropsAmiga), kEoB2MagicFlightPropsAmiga }; + +static const byte kEoB2TurnUndeadEffectAmiga[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 kEoB2TurnUndeadEffectAmigaProvider = { ARRAYSIZE(kEoB2TurnUndeadEffectAmiga), kEoB2TurnUndeadEffectAmiga }; + +static const byte kEoB2BurningHandsDestAmiga[32] = { + 0x02, 0x03, 0x04, 0x01, 0x02, 0x05, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00, + 0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x00, 0x00, + 0x01, 0x03, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00 +}; + +static const ByteProvider kEoB2BurningHandsDestAmigaProvider = { ARRAYSIZE(kEoB2BurningHandsDestAmiga), kEoB2BurningHandsDestAmiga }; + +static const byte kEoB2ConeOfColdDest1Amiga[7] = { + 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1 +}; + +static const ByteProvider kEoB2ConeOfColdDest1AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest1Amiga), kEoB2ConeOfColdDest1Amiga }; + +static const byte kEoB2ConeOfColdDest2Amiga[7] = { + 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23 +}; + +static const ByteProvider kEoB2ConeOfColdDest2AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest2Amiga), kEoB2ConeOfColdDest2Amiga }; + +static const byte kEoB2ConeOfColdDest3Amiga[7] = { + 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61 +}; + +static const ByteProvider kEoB2ConeOfColdDest3AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest3Amiga), kEoB2ConeOfColdDest3Amiga }; + +static const byte kEoB2ConeOfColdDest4Amiga[7] = { + 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD +}; + +static const ByteProvider kEoB2ConeOfColdDest4AmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdDest4Amiga), kEoB2ConeOfColdDest4Amiga }; + +static const byte kEoB2ConeOfColdGfxTblAmiga[8] = { + 0x1f, 0x1c, 0x1f, 0x1c, 0x1d, 0x1d, 0x1d, 0x00 +}; + +static const ByteProvider kEoB2ConeOfColdGfxTblAmigaProvider = { ARRAYSIZE(kEoB2ConeOfColdGfxTblAmiga), kEoB2ConeOfColdGfxTblAmiga }; + +static const byte kEoB2DscDoorShapeIndexAmiga[53] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01 +}; + +static const ByteProvider kEoB2DscDoorShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscDoorShapeIndexAmiga), kEoB2DscDoorShapeIndexAmiga }; + +static const byte kEoB2WllFlagPresetAmiga[25] = { + 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F, + 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xA8, 0x88, 0x88, + 0x88, 0x9F, 0xA8, 0x88, 0x88, 0x88, 0x9F, 0x03, + 0x03 +}; + +static const ByteProvider kEoB2WllFlagPresetAmigaProvider = { ARRAYSIZE(kEoB2WllFlagPresetAmiga), kEoB2WllFlagPresetAmiga }; + +static const uint16 kEoB2DscShapeCoordsAmiga[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 kEoB2DscShapeCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscShapeCoordsAmiga), kEoB2DscShapeCoordsAmiga }; + +static const byte kEoB2DscDoorScaleOffsAmiga[53] = { + 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x33, 0x34 +}; + +static const ByteProvider kEoB2DscDoorScaleOffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleOffsAmiga), kEoB2DscDoorScaleOffsAmiga }; + +static const byte kEoB2DscDoorScaleMult1Amiga[4] = { + 0x08, 0x0C, 0x12, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult1Amiga), kEoB2DscDoorScaleMult1Amiga }; + +static const byte kEoB2DscDoorScaleMult2Amiga[4] = { + 0x00, 0x02, 0x04, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult2Amiga), kEoB2DscDoorScaleMult2Amiga }; + +static const byte kEoB2DscDoorScaleMult3Amiga[4] = { + 0x05, 0x08, 0x0C, 0x00 +}; + +static const ByteProvider kEoB2DscDoorScaleMult3AmigaProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult3Amiga), kEoB2DscDoorScaleMult3Amiga }; + +static const byte kEoB2DscDoorType5OffsAmiga[6] = { + 0x05, 0x03, 0x01, 0x05, 0x03, 0x01 +}; + +static const ByteProvider kEoB2DscDoorType5OffsAmigaProvider = { ARRAYSIZE(kEoB2DscDoorType5OffsAmiga), kEoB2DscDoorType5OffsAmiga }; + +static const byte kEoB2DscDoorY1Amiga[4] = { + 0x3B, 0x47, 0x56, 0x00 +}; + +static const ByteProvider kEoB2DscDoorY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY1Amiga), kEoB2DscDoorY1Amiga }; + +static const byte kEoB2DscDoorY2Amiga[4] = { + 0x1F, 0x18, 0x0F, 0x00 +}; + +static const ByteProvider kEoB2DscDoorY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorY2Amiga), kEoB2DscDoorY2Amiga }; + +static const byte kEoB2DscDoorFrameY1Amiga[4] = { + 0x1E, 0x18, 0x10, 0x00 +}; + +static const ByteProvider kEoB2DscDoorFrameY1AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY1Amiga), kEoB2DscDoorFrameY1Amiga }; + +static const byte kEoB2DscDoorFrameY2Amiga[4] = { + 0x3B, 0x47, 0x56, 0x78 +}; + +static const ByteProvider kEoB2DscDoorFrameY2AmigaProvider = { ARRAYSIZE(kEoB2DscDoorFrameY2Amiga), kEoB2DscDoorFrameY2Amiga }; + +static const byte kEoB2DscItemPosIndexAmiga[16] = { + 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01, + 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02 +}; + +static const ByteProvider kEoB2DscItemPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemPosIndexAmiga), kEoB2DscItemPosIndexAmiga }; + +static const uint16 kEoB2DscItemShpXAmiga[18] = { + 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8, + 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8, + 0x0058, 0x0108 +}; + +static const Uint16Provider kEoB2DscItemShpXAmigaProvider = { ARRAYSIZE(kEoB2DscItemShpXAmiga), kEoB2DscItemShpXAmiga }; + +static const byte kEoB2DscItemScaleIndexAmiga[18] = { + 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, + 0x25, 0x00 +}; + +static const ByteProvider kEoB2DscItemScaleIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemScaleIndexAmiga), kEoB2DscItemScaleIndexAmiga }; + +static const byte kEoB2DscItemTileIndexAmiga[18] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B, + 0x0C, 0x0D +}; + +static const ByteProvider kEoB2DscItemTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscItemTileIndexAmiga), kEoB2DscItemTileIndexAmiga }; + +static const byte kEoB2DscItemShapeMapAmiga[113] = { + 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x03, 0x04, + 0x03, 0x05, 0x06, 0x06, 0x12, 0x05, 0x0f, 0x12, + 0x14, 0x08, 0x13, 0x11, 0x15, 0x18, 0x07, 0x07, + 0x07, 0x1f, 0x09, 0x23, 0x09, 0x09, 0x09, 0x09, + 0x08, 0x1c, 0x1c, 0x1a, 0x1b, 0x21, 0x1d, 0x1d, + 0x22, 0x22, 0x22, 0x00, 0x16, 0x00, 0x00, 0x17, + 0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x19, 0x23, + 0x10, 0x1e, 0x17, 0x25, 0x17, 0x26, 0x12, 0x21, + 0x17, 0x23, 0x1c, 0x00, 0x20, 0x25, 0x12, 0x18, + 0x1f, 0x07, 0x07, 0x15, 0x15, 0x0f, 0x03, 0x09, + 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, + 0x1b, 0x17, 0x17, 0x16, 0x16, 0x21, 0x08, 0x25, + 0x25, 0x25, 0x25, 0x28, 0x03, 0x04, 0x21, 0x00, + 0x17, 0x00, 0x20, 0x24, 0x27, 0x27, 0x1c, 0x27, + 0x00 +}; + +static const ByteProvider kEoB2DscItemShapeMapAmigaProvider = { ARRAYSIZE(kEoB2DscItemShapeMapAmiga), kEoB2DscItemShapeMapAmiga }; + +static const byte kEoB2DscTelptrShpCoordsAmiga[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 kEoB2DscTelptrShpCoordsAmigaProvider = { ARRAYSIZE(kEoB2DscTelptrShpCoordsAmiga), kEoB2DscTelptrShpCoordsAmiga }; + +static const byte kEoB2PortalSeqDataAmiga[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 kEoB2PortalSeqDataAmigaProvider = { ARRAYSIZE(kEoB2PortalSeqDataAmiga), kEoB2PortalSeqDataAmiga }; + +static const byte kEoB2DscMonsterFrmOffsTbl1Amiga[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 kEoB2DscMonsterFrmOffsTbl1AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl1Amiga), kEoB2DscMonsterFrmOffsTbl1Amiga }; + +static const byte kEoB2DscMonsterFrmOffsTbl2Amiga[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 kEoB2DscMonsterFrmOffsTbl2AmigaProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl2Amiga), kEoB2DscMonsterFrmOffsTbl2Amiga }; + +static const uint16 kEoB2InvSlotXAmiga[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 kEoB2InvSlotXAmigaProvider = { ARRAYSIZE(kEoB2InvSlotXAmiga), kEoB2InvSlotXAmiga }; + +static const byte kEoB2InvSlotYAmiga[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 kEoB2InvSlotYAmigaProvider = { ARRAYSIZE(kEoB2InvSlotYAmiga), kEoB2InvSlotYAmiga }; + +static const uint16 kEoB2SlotValidationFlagsAmiga[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 kEoB2SlotValidationFlagsAmigaProvider = { ARRAYSIZE(kEoB2SlotValidationFlagsAmiga), kEoB2SlotValidationFlagsAmiga }; + +static const byte kEoB2ProjectileWeaponTypesAmiga[15] = { + 0xFF, 0x01, 0xFF, 0x02, 0x04, 0x03, 0x05, 0x10, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12 +}; + +static const ByteProvider kEoB2ProjectileWeaponTypesAmigaProvider = { ARRAYSIZE(kEoB2ProjectileWeaponTypesAmiga), kEoB2ProjectileWeaponTypesAmiga }; + +static const byte kEoB2WandTypesAmiga[8] = { + 0x00, 0x11, 0x17, 0x31, 0x0D, 0xFF, 0x04, 0x0C +}; + +static const ByteProvider kEoB2WandTypesAmigaProvider = { ARRAYSIZE(kEoB2WandTypesAmiga), kEoB2WandTypesAmiga }; + +static const byte kEoB2DrawObjPosIndexAmiga[20] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03, + 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01, + 0x03, 0x00, 0x02, 0x04 +}; + +static const ByteProvider kEoB2DrawObjPosIndexAmigaProvider = { ARRAYSIZE(kEoB2DrawObjPosIndexAmiga), kEoB2DrawObjPosIndexAmiga }; + +static const byte kEoB2FlightObjFlipIndexAmiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB2FlightObjFlipIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjFlipIndexAmiga), kEoB2FlightObjFlipIndexAmiga }; + +static const byte kEoB2FlightObjShpMapAmiga[45] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, + 0xFF, 0xFF, 0x04, 0xFF, 0x06, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2FlightObjShpMapAmigaProvider = { ARRAYSIZE(kEoB2FlightObjShpMapAmiga), kEoB2FlightObjShpMapAmiga }; + +static const byte kEoB2FlightObjSclIndexAmiga[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 kEoB2FlightObjSclIndexAmigaProvider = { ARRAYSIZE(kEoB2FlightObjSclIndexAmiga), kEoB2FlightObjSclIndexAmiga }; + +static const uint16 kEoB2TransferPortraitFramesAmiga[32] = { + 0x0004, 0x0018, 0x009d, 0x0038, 0x00a2, 0x0018, 0x013c, 0x0039, + 0x0004, 0x0040, 0x009d, 0x0060, 0x00a2, 0x0040, 0x013c, 0x0060, + 0x0004, 0x0068, 0x009d, 0x0089, 0x00a2, 0x0068, 0x013c, 0x0089, + 0x0004, 0x0094, 0x002e, 0x009e, 0x0110, 0x0094, 0x013a, 0x009e +}; + +static const Uint16Provider kEoB2TransferPortraitFramesAmigaProvider = { ARRAYSIZE(kEoB2TransferPortraitFramesAmiga), kEoB2TransferPortraitFramesAmiga }; + +static const byte kEoB2TransferConvertTableAmiga[49] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x05, 0x06, + 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x0D, 0x00, 0x0E, + 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x00, 0x00, + 0x17, 0x18, 0x22, 0x24, 0x23, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x31, 0x30, 0x32, 0x33, 0x00, 0x35, 0x34, 0x36, + 0x37 +}; + +static const ByteProvider kEoB2TransferConvertTableAmigaProvider = { ARRAYSIZE(kEoB2TransferConvertTableAmiga), kEoB2TransferConvertTableAmiga }; + +static const byte kEoB2TransferItemTableAmiga[60] = { + 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +static const ByteProvider kEoB2TransferItemTableAmigaProvider = { ARRAYSIZE(kEoB2TransferItemTableAmiga), kEoB2TransferItemTableAmiga }; + +static const uint32 kEoB2TransferExpTableAmiga[6] = { + 0x000F423F, 0x000B71AF, 0x000DBB9F, 0x0006B6BF, 0x000DBB9F, 0x000DBB9F +}; + +static const Uint32Provider kEoB2TransferExpTableAmigaProvider = { ARRAYSIZE(kEoB2TransferExpTableAmiga), kEoB2TransferExpTableAmiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData00Amiga[5] = { + { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 }, + { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 8, 0, 0, 0, 0, 0 }, + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData00AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData00Amiga), kEoB2IntroAnimData00Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData01Amiga[5] = { + { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 }, + { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 7, 0, 0, 0, 0, 0 }, + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData01AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData01Amiga), kEoB2IntroAnimData01Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData02Amiga[5] = { + { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 }, + { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 }, + { 0x00, 0, 216, 51, 18, 0, 0, 0, 0, 0 }, + { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData02AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData02Amiga), kEoB2IntroAnimData02Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData03Amiga[4] = { + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData03AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData03Amiga), kEoB2IntroAnimData03Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData04Amiga[3] = { + { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 }, + { 0x01, 0, 282, 8, 1, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData04AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData04Amiga), kEoB2IntroAnimData04Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData05Amiga[4] = { + { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData05AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData05Amiga), kEoB2IntroAnimData05Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData06Amiga[16] = { + { 0x01, 12, 170, 11, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 188, 38, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 203, 63, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 218, 85, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 232, 107, 2, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01, 3, 242, 125, 1, 0, 0, 0, 0, 0 }, + { 0x01, 4, 240, 125, 2, 0, 0, 0, 0, 0 }, + { 0x01, 5, 238, 124, 2, 0, 0, 0, 0, 0 }, + { 0x01, 6, 236, 123, 2, 0, 0, 0, 0, 0 }, + { 0x01, 7, 232, 121, 2, 0, 0, 0, 0, 0 }, + { 0x01, 8, 226, 120, 3, 0, 0, 0, 0, 0 }, + { 0x01, 9, 220, 119, 3, 0, 0, 0, 0, 0 }, + { 0x01, 10, 241, 115, 3, 0, 0, 0, 0, 0 }, + { 0x01, 11, 241, 115, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData06AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData06Amiga), kEoB2IntroAnimData06Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData07Amiga[5] = { + { 0x01, 12, 54, 17, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 80, 53, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 104, 87, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 130, 124, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData07AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData07Amiga), kEoB2IntroAnimData07Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData08Amiga[6] = { + { 0x01, 12, 112, 8, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 126, 34, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 142, 60, 2, 0, 0, 0, 0, 0 }, + { 0x01, 12, 170, 109, 2, 0, 0, 0, 0, 0 }, + { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData08AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData08Amiga), kEoB2IntroAnimData08Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData09Amiga[4] = { + { 0x05, 0, 184, 64, 6, 0, 30, 8, 3, 16 }, + { 0x05, 0, 184, 64, 6, 0, 33, 8, 3, 16 }, + { 0x05, 0, 184, 64, 6, 0, 36, 8, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData09AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData09Amiga), kEoB2IntroAnimData09Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData10Amiga[10] = { + { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 }, + { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 }, + { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData10AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData10Amiga), kEoB2IntroAnimData10Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData11Amiga[10] = { + { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 }, + { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 90, 4, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 3, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 2, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 1, 0, 0, 0, 0 }, + { 0x03, 15, 36, 48, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData11AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData11Amiga), kEoB2IntroAnimData11Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData12Amiga[4] = { + { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 104, 24, 5, 0, 0, 8, 15, 112 }, + { 0x05, 0, 104, 24, 5, 0, 15, 8, 15, 112 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData12AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData12Amiga), kEoB2IntroAnimData12Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData13Amiga[6] = { + { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 }, + { 0x05, 0, 104, 72, 5, 0, 10, 120, 10, 64 }, + { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 }, + { 0x05, 0, 104, 72, 5, 0, 20, 120, 10, 64 }, + { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData13AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData13Amiga), kEoB2IntroAnimData13Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData14Amiga[4] = { + { 0x05, 0, 104, 0, 8, 0, 0, 0, 13, 200 }, + { 0x05, 0, 104, 0, 8, 0, 13, 0, 13, 200 }, + { 0x05, 0, 104, 0, 8, 0, 26, 0, 13, 200 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData14AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData14Amiga), kEoB2IntroAnimData14Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData15Amiga[11] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 6, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 7, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 8, 112, 72, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData15AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData15Amiga), kEoB2IntroAnimData15Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData16Amiga[12] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData16AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData16Amiga), kEoB2IntroAnimData16Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData17Amiga[8] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData17AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData17Amiga), kEoB2IntroAnimData17Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData18Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 12, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData18AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData18Amiga), kEoB2IntroAnimData18Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData19Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 10, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 12, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData19AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData19Amiga), kEoB2IntroAnimData19Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData20Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 15, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 16, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 }, + { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 }, + { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData20AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData20Amiga), kEoB2IntroAnimData20Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData21Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 10, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData21AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData21Amiga), kEoB2IntroAnimData21Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData22Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 20, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData22AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData22Amiga), kEoB2IntroAnimData22Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData23Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 30, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData23AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData23Amiga), kEoB2IntroAnimData23Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData24Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 0, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData24AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData24Amiga), kEoB2IntroAnimData24Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData25Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 10, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData25AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData25Amiga), kEoB2IntroAnimData25Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData26Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 20, 96, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData26AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData26Amiga), kEoB2IntroAnimData26Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData27Amiga[2] = { + { 0x05, 0, 104, 32, 0, 0, 0, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData27AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData27Amiga), kEoB2IntroAnimData27Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData28Amiga[2] = { + { 0x05, 0, 104, 32, 3, 0, 0, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData28AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData28Amiga), kEoB2IntroAnimData28Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData29Amiga[2] = { + { 0x05, 0, 104, 32, 4, 0, 10, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData29AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData29Amiga), kEoB2IntroAnimData29Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData30Amiga[2] = { + { 0x05, 0, 104, 32, 8, 0, 20, 0, 10, 96 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData30AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData30Amiga), kEoB2IntroAnimData30Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData31Amiga[5] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 176, 56, 3, 0, 19, 136, 2, 8 }, + { 0x05, 0, 176, 56, 3, 0, 21, 136, 2, 8 }, + { 0x05, 0, 176, 56, 3, 0, 23, 136, 2, 8 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData31AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData31Amiga), kEoB2IntroAnimData31Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData32Amiga[14] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 }, + { 0x05, 0, 144, 88, 5, 0, 1, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 }, + { 0x05, 0, 176, 56, 2, 0, 23, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 13, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 }, + { 0x05, 0, 144, 88, 6, 0, 1, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 }, + { 0x05, 0, 176, 56, 0, 0, 23, 136, 2, 8 }, + { 0x05, 0, 144, 88, 3, 0, 1, 136, 6, 40 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData32AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData32Amiga), kEoB2IntroAnimData32Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData33Amiga[8] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 80, 64, 0, 0, 1, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 7, 136, 2, 16 }, + { 0x05, 0, 80, 64, 0, 0, 3, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 9, 136, 2, 16 }, + { 0x05, 0, 80, 64, 0, 0, 5, 136, 2, 16 }, + { 0x05, 0, 248, 64, 3, 0, 11, 136, 2, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData33AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData33Amiga), kEoB2IntroAnimData33Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData34Amiga[5] = { + { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 16, 48, 0, 0, 0, 152, 14, 48 }, + { 0x05, 0, 192, 48, 4, 0, 14, 128, 13, 48 }, + { 0x05, 0, 16, 48, 0, 0, 1, 40, 35, 48 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData34AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData34Amiga), kEoB2IntroAnimData34Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData35Amiga[6] = { + { 0x06, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 24, 3, 0, 0, 128, 2, 32 }, + { 0x05, 0, 152, 16, 3, 0, 0, 88, 5, 40 }, + { 0x05, 0, 128, 0, 3, 0, 0, 0, 10, 88 }, + { 0x05, 0, 104, 0, 3, 0, 13, 0, 14, 88 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData35AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData35Amiga), kEoB2IntroAnimData35Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData36Amiga[2] = { + { 0x05, 0, 104, 0, 0, 0, 13, 0, 13, 200 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData36AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData36Amiga), kEoB2IntroAnimData36Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData37Amiga[25] = { + { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 4, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 4, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 54, 4, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 3, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 2, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 1, 0, 0, 0, 0 }, + { 0x03, 17, 36, 48, 0, 0, 0, 0, 0, 0 }, + { 0x03, 16, 142, 80, 0, 0, 0, 0, 0, 0 }, + { 0x03, 19, 151, 28, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData37AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData37Amiga), kEoB2IntroAnimData37Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData38Amiga[22] = { + { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 }, + { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 90, 4, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 4, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 3, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 2, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 1, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0x03, 22, 13, 32, 0, 0, 0, 0, 0, 0 }, + { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData38AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData38Amiga), kEoB2IntroAnimData38Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData39Amiga[3] = { + { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData39AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData39Amiga), kEoB2IntroAnimData39Amiga }; + +static const DarkMoonAnimCommand kEoB2IntroAnimData40Amiga[5] = { + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2IntroAnimData40AmigaProvider = { ARRAYSIZE(kEoB2IntroAnimData40Amiga), kEoB2IntroAnimData40Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes00Amiga[15] = { + { 0, 1, 137, 4, 43 }, + { 1, 5, 137, 4, 54 }, + { 2, 9, 140, 4, 8 }, + { 3, 1, 181, 1, 3 }, + { 4, 9, 154, 1, 3 }, + { 5, 9, 158, 2, 5 }, + { 6, 9, 164, 3, 7 }, + { 7, 9, 172, 3, 11 }, + { 8, 9, 184, 5, 13 }, + { 9, 15, 137, 6, 15 }, + { 10, 15, 153, 2, 21 }, + { 11, 17, 153, 2, 21 }, + { 12, 1, 185, 1, 4 }, + { 13, 1, 190, 1, 1 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes00AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes00Amiga), kEoB2IntroShapes00Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes01Amiga[2] = { + { 0, 1, 137, 1, 16 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes01AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes01Amiga), kEoB2IntroShapes01Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes04Amiga[10] = { + { 15, 2, 0, 32, 14 }, + { 16, 5, 16, 5, 8 }, + { 17, 2, 26, 32, 19 }, + { 18, 0, 140, 35, 10 }, + { 19, 21, 16, 3, 8 }, + { 20, 0, 47, 22, 10 }, + { 21, 0, 59, 31, 10 }, + { 22, 0, 71, 36, 39 }, + { 23, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes04AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes04Amiga), kEoB2IntroShapes04Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes07Amiga[18] = { + { -9, 1, 136, 6, 40 }, + { -1, 7, 136, 6, 40 }, + { -2, 13, 136, 6, 40 }, + { 3, 19, 136, 2, 16 }, + { 4, 21, 136, 2, 16 }, + { 5, 23, 136, 2, 16 }, + { 6, 19, 152, 1, 8 }, + { 7, 20, 152, 1, 8 }, + { 8, 21, 152, 1, 8 }, + { -10, 25, 136, 2, 16 }, + { -11, 27, 136, 2, 16 }, + { -12, 29, 136, 2, 16 }, + { -13, 31, 136, 2, 16 }, + { -14, 25, 152, 2, 16 }, + { -15, 27, 152, 2, 16 }, + { -16, 29, 152, 2, 16 }, + { -17, 31, 152, 2, 16 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes07AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes07Amiga), kEoB2IntroShapes07Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes13Amiga[10] = { + { 25, 2, 0, 32, 14 }, + { 26, 5, 16, 5, 8 }, + { 27, 2, 26, 32, 19 }, + { 28, 0, 140, 35, 10 }, + { 29, 21, 16, 3, 8 }, + { 30, 0, 47, 22, 10 }, + { 31, 0, 59, 31, 10 }, + { 32, 0, 71, 36, 39 }, + { 33, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes13AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes13Amiga), kEoB2IntroShapes13Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes14Amiga[10] = { + { 35, 2, 0, 32, 14 }, + { 36, 5, 16, 5, 8 }, + { 37, 2, 26, 32, 19 }, + { 38, 0, 140, 35, 10 }, + { 39, 21, 16, 3, 8 }, + { 40, 0, 47, 22, 10 }, + { 41, 0, 59, 31, 10 }, + { 42, 0, 71, 36, 39 }, + { 43, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes14AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes14Amiga), kEoB2IntroShapes14Amiga }; + +static const DarkMoonShapeDef kEoB2IntroShapes15Amiga[10] = { + { 45, 2, 0, 32, 14 }, + { 46, 5, 16, 5, 8 }, + { 47, 2, 26, 32, 19 }, + { 48, 0, 140, 35, 10 }, + { 49, 21, 16, 3, 8 }, + { 50, 0, 47, 22, 10 }, + { 51, 0, 59, 31, 10 }, + { 52, 0, 71, 36, 39 }, + { 53, 0, 119, 24, 15 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2IntroShapes15AmigaProvider = { ARRAYSIZE(kEoB2IntroShapes15Amiga), kEoB2IntroShapes15Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData00Amiga[11] = { + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 136, 8, 8, 0, 5, 136, 11, 48 }, + { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 4, 0, 0, 88, 8, 48 }, + { 0x02, 3, 80, 8, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 4, 0, 8, 88, 8, 48 }, + { 0x05, 0, 232, 88, 4, 0, 16, 88, 8, 48 }, + { 0x02, 2, 232, 88, 4, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData00AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData00Amiga), kEoB2FinaleAnimData00Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData01Amiga[9] = { + { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 136, 8, 12, 0, 5, 136, 11, 48 }, + { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 }, + { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 88, 6, 0, 0, 88, 8, 48 }, + { 0x05, 0, 232, 88, 6, 0, 8, 88, 8, 48 }, + { 0x05, 0, 232, 88, 6, 0, 16, 88, 8, 48 }, + { 0x02, 2, 232, 88, 6, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData01AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData01Amiga), kEoB2FinaleAnimData01Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData02Amiga[4] = { + { 0x05, 0, 232, 112, 6, 0, 24, 176, 3, 16 }, + { 0x05, 0, 232, 112, 6, 0, 27, 176, 3, 16 }, + { 0x05, 0, 232, 112, 6, 0, 30, 176, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData02AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData02Amiga), kEoB2FinaleAnimData02Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData03Amiga[6] = { + { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 }, + { 0x05, 0, 232, 112, 3, 0, 24, 176, 3, 16 }, + { 0x02, 3, 80, 8, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 232, 112, 3, 0, 27, 176, 3, 16 }, + { 0x05, 0, 232, 112, 3, 0, 30, 176, 3, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData03AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData03Amiga), kEoB2FinaleAnimData03Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData04Amiga[8] = { + { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 104, 40, 3, 0, 32, 88, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 32, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 24, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 16, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 0, 0, 8, 88 }, + { 0x05, 0, 104, 40, 3, 0, 24, 88, 8, 88 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData04AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData04Amiga), kEoB2FinaleAnimData04Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData05Amiga[7] = { + { 0x05, 0, 232, 112, 0, 0, 24, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 33, 176, 2, 16 }, + { 0x05, 0, 232, 112, 0, 0, 27, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 35, 176, 2, 16 }, + { 0x05, 0, 232, 112, 0, 0, 30, 176, 3, 16 }, + { 0x05, 0, 128, 40, 4, 0, 37, 176, 2, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData05AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData05Amiga), kEoB2FinaleAnimData05Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData06Amiga[2] = { + { 0x05, 0, 104, 40, 0, 0, 16, 136, 8, 48 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData06AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData06Amiga), kEoB2FinaleAnimData06Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData07Amiga[6] = { + { 0x05, 0, 208, 80, 4, 0, 0, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 6, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 12, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 18, 128, 6, 56 }, + { 0x05, 0, 208, 80, 4, 0, 24, 128, 6, 56 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData07AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData07Amiga), kEoB2FinaleAnimData07Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData08Amiga[3] = { + { 0x05, 0, 224, 56, 3, 0, 0, 184, 4, 16 }, + { 0x05, 0, 224, 56, 0, 0, 4, 184, 4, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData08AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData08Amiga), kEoB2FinaleAnimData08Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData09Amiga[8] = { + { 0x01, 1, -10, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 0, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 10, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 20, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 30, 40, 2, 0, 0, 0, 0, 0 }, + { 0x01, 1, 40, 40, 2, 0, 0, 0, 0, 0 }, + { 0x02, 2, 48, 40, 2, 0, 0, 0, 0, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData09AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData09Amiga), kEoB2FinaleAnimData09Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData10Amiga[14] = { + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 32, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 28, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 13, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 }, + { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData10AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData10Amiga), kEoB2FinaleAnimData10Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData11Amiga[18] = { + { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 }, + { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData11AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData11Amiga), kEoB2FinaleAnimData11Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData12Amiga[23] = { + { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 }, + { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 }, + { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 }, + { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 }, + { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 }, + { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData12AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData12Amiga), kEoB2FinaleAnimData12Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData13Amiga[23] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData13AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData13Amiga), kEoB2FinaleAnimData13Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData14Amiga[24] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData14AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData14Amiga), kEoB2FinaleAnimData14Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData15Amiga[19] = { + { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 }, + { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 }, + { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData15AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData15Amiga), kEoB2FinaleAnimData15Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData16Amiga[13] = { + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 1, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 2, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x02, 3, 168, 16, 3, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 }, + { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData16AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData16Amiga), kEoB2FinaleAnimData16Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData17Amiga[20] = { + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData17AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData17Amiga), kEoB2FinaleAnimData17Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData18Amiga[28] = { + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 }, + { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 }, + { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 }, + { 0x05, 0, 168, 16, 0, 0, 16, 80, 16, 80 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData18AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData18Amiga), kEoB2FinaleAnimData18Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData19Amiga[7] = { + { 0x05, 0, 80, 80, 4, 0, 0, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 6, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 12, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 18, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 24, 128, 6, 56 }, + { 0x05, 0, 80, 80, 4, 0, 30, 128, 6, 56 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData19AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData19Amiga), kEoB2FinaleAnimData19Amiga }; + +static const DarkMoonAnimCommand kEoB2FinaleAnimData20Amiga[3] = { + { 0x05, 0, 96, 56, 3, 0, 0, 184, 4, 16 }, + { 0x05, 0, 96, 56, 0, 0, 4, 184, 4, 16 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData20AmigaProvider = { ARRAYSIZE(kEoB2FinaleAnimData20Amiga), kEoB2FinaleAnimData20Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes00Amiga[4] = { + { -1, 16, 0, 11, 48 }, + { -2, 28, 80, 8, 48 }, + { -3, 9, 0, 5, 40 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes00AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes00Amiga), kEoB2FinaleShapes00Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes03Amiga[3] = { + { -1, 30, 0, 8, 96 }, + { -2, 30, 104, 10, 96 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes03AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes03Amiga), kEoB2FinaleShapes03Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes07Amiga[4] = { + { 1, 0, 0, 16, 72 }, + { 2, 16, 0, 16, 72 }, + { 3, 0, 72, 16, 72 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes07AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes07Amiga), kEoB2FinaleShapes07Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes09Amiga[9] = { + { 0, 0, 0, 32, 16 }, + { 2, 0, 36, 35, 41 }, + { 3, 0, 77, 24, 17 }, + { 4, 0, 94, 15, 33 }, + { 5, 24, 77, 10, 17 }, + { 6, 16, 99, 23, 69 }, + { -10, 0, 136, 8, 64 }, + { -11, 8, 136, 8, 64 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes09AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes09Amiga), kEoB2FinaleShapes09Amiga }; + +static const DarkMoonShapeDef kEoB2FinaleShapes10Amiga[4] = { + { 1, 0, 0, 40, 30 }, + { 15, 9, 37, 21, 48 }, + { 16, 16, 88, 6, 56 }, + { 0, 0, 0, 0, 0 } +}; + +static const DarkMoonShapeDefProvider kEoB2FinaleShapes10AmigaProvider = { ARRAYSIZE(kEoB2FinaleShapes10Amiga), kEoB2FinaleShapes10Amiga }; + +static const byte kEoB2NpcShapeDataAmiga[24] = { + 0x00, 0x00, 0x00, 0x05, 0x39, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x64, 0x05, 0x4f, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x39, 0x06, 0x2b, 0x00, 0x00, 0xff +}; + +static const ByteProvider kEoB2NpcShapeDataAmigaProvider = { ARRAYSIZE(kEoB2NpcShapeDataAmiga), kEoB2NpcShapeDataAmiga }; + +static const byte kEoB2ClassModifierFlagsAmiga[15] = { + 0x01, 0x20, 0x10, 0x02, 0x04, 0x08, 0x05, 0x09, + 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06 +}; + +static const ByteProvider kEoB2ClassModifierFlagsAmigaProvider = { ARRAYSIZE(kEoB2ClassModifierFlagsAmiga), kEoB2ClassModifierFlagsAmiga }; + +static const byte kEoB2MonsterStepTable02Amiga[8] = { + 0xE0, 0xE1, 0x01, 0x21, 0x20, 0x1F, 0xFF, 0xDF +}; + +static const ByteProvider kEoB2MonsterStepTable02AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable02Amiga), kEoB2MonsterStepTable02Amiga }; + +static const byte kEoB2MonsterStepTable1Amiga[16] = { + 0x01, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, + 0x00, 0x00, 0xFF, 0x20, 0xFF, 0x00, 0x00, 0xE0 +}; + +static const ByteProvider kEoB2MonsterStepTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable1Amiga), kEoB2MonsterStepTable1Amiga }; + +static const byte kEoB2MonsterStepTable2Amiga[8] = { + 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00 +}; + +static const ByteProvider kEoB2MonsterStepTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable2Amiga), kEoB2MonsterStepTable2Amiga }; + +static const byte kEoB2MonsterStepTable3Amiga[8] = { + 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00 +}; + +static const ByteProvider kEoB2MonsterStepTable3AmigaProvider = { ARRAYSIZE(kEoB2MonsterStepTable3Amiga), kEoB2MonsterStepTable3Amiga }; + +static const byte kEoB2MonsterCloseAttPosTable1Amiga[4] = { + 0x00, 0x01, 0x03, 0x02 +}; + +static const ByteProvider kEoB2MonsterCloseAttPosTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable1Amiga), kEoB2MonsterCloseAttPosTable1Amiga }; + +static const byte kEoB2MonsterCloseAttPosTable22Amiga[16] = { + 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x01, 0x02, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttPosTable22AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable22Amiga), kEoB2MonsterCloseAttPosTable22Amiga }; + +static const byte kEoB2MonsterCloseAttUnkTableAmiga[10] = { + 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttUnkTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttUnkTableAmiga), kEoB2MonsterCloseAttUnkTableAmiga }; + +static const byte kEoB2MonsterCloseAttChkTable1Amiga[16] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttChkTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable1Amiga), kEoB2MonsterCloseAttChkTable1Amiga }; + +static const byte kEoB2MonsterCloseAttChkTable2Amiga[16] = { + 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 +}; + +static const ByteProvider kEoB2MonsterCloseAttChkTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable2Amiga), kEoB2MonsterCloseAttChkTable2Amiga }; + +static const byte kEoB2MonsterCloseAttDstTable1Amiga[16] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB2MonsterCloseAttDstTable1AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable1Amiga), kEoB2MonsterCloseAttDstTable1Amiga }; + +static const byte kEoB2MonsterCloseAttDstTable2Amiga[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 kEoB2MonsterCloseAttDstTable2AmigaProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable2Amiga), kEoB2MonsterCloseAttDstTable2Amiga }; + +static const byte kEoB2MonsterProximityTableAmiga[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 kEoB2MonsterProximityTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterProximityTableAmiga), kEoB2MonsterProximityTableAmiga }; + +static const byte kEoB2FindBlockMonstersTableAmiga[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 kEoB2FindBlockMonstersTableAmigaProvider = { ARRAYSIZE(kEoB2FindBlockMonstersTableAmiga), kEoB2FindBlockMonstersTableAmiga }; + +static const byte kEoB2MonsterDirChangeTableAmiga[16] = { + 0xff, 0x06, 0x02, 0xff, 0x00, 0x07, 0x01, 0xff, + 0x04, 0x05, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static const ByteProvider kEoB2MonsterDirChangeTableAmigaProvider = { ARRAYSIZE(kEoB2MonsterDirChangeTableAmiga), kEoB2MonsterDirChangeTableAmiga }; + +static const uint16 kEoB2EncodeMonsterDefsAmiga[72] = { + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0028, 0x000c, 0x0038, + 0x0013, 0x0028, 0x000c, 0x0038, 0x001f, 0x0000, 0x0007, 0x0060, + 0x0000, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, 0x0007, 0x0060, + 0x0000, 0x0000, 0x0007, 0x0060, 0x0007, 0x0000, 0x0007, 0x0060, + 0x000e, 0x0000, 0x0007, 0x0060, 0x0015, 0x0000, 0x0007, 0x0060, + 0x001c, 0x0000, 0x0007, 0x0060, 0x0000, 0x0060, 0x0007, 0x0060, + 0x0000, 0x0000, 0x000a, 0x0058, 0x000a, 0x0000, 0x000a, 0x0058, + 0x0014, 0x0000, 0x000a, 0x0058, 0x001e, 0x0000, 0x000a, 0x0058, + 0x0000, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058, 0x000a, 0x0058 +}; + +static const Uint16Provider kEoB2EncodeMonsterDefsAmigaProvider = { ARRAYSIZE(kEoB2EncodeMonsterDefsAmiga), kEoB2EncodeMonsterDefsAmiga }; + +static const EoBCharacter kEoB2NpcPresetsAmiga[6] = { + { 0x00, 0x01, "Insal", + 15, 15, 0, 0, 13, 13, 11, 11, 17, 17, 16, 16, 9, 9, + 3, 39, 10, 0, 10, 5, 5, -1, 8, { 6, 0, 0 }, + { 0x00006ADA, 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, "Calandra", + 18, 18, 36, 36, 13, 13, 8, 8, 15, 15, 16, 16, 14, 14, + 4, 76, 10, 0, 1, 0, 2, -2, 12, { 9, 0, 0 }, + { 0x0003DF35, 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, "Shorn", + 15, 15, 0, 0, 14, 14, 13, 13, 14, 14, 13, 13, 16, 16, + 40, 40, 10, 0, 6, 4, 3, -3, 100, { 8, 0, 0 }, + { 0x00021730, 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, "San-raal", + 11, 11, 0, 0, 18, 18, 13, 13, 14, 14, 16, 16, 9, 9, + 28, 28, 10, 0, 2, 3, 5, -4, 100, { 8, 0, 0 }, + { 0x00017AF0, 0x00000000, 0x00000000 }, 0x096B4566, + { 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, "Tanglor", + 16, 16, 0, 0, 13, 13, 16, 16, 15, 15, 11, 11, 12, 12, + 53, 53, 9, 0, 4, 6, 1, -5, 100, { 7, 7, 0 }, + { 0x00010FC2, 0x00010FC2, 0x00000000 }, 0xFFFFFFFF, + { 0x0004, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 } }, + { 0x00, 0x01, "Amber", + 14, 14, 0, 0, 17, 17, 12, 12, 18, 18, 9, 9, 17, 17, + 36, 36, 10, 0, 3, 10, 1, -6, 100, { 7, 7, 0 }, + { 0x0000FAE6, 0x0000FAE6, 0x00000000 }, 0x00294566, + { 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 kEoB2NpcPresetsAmigaProvider = { ARRAYSIZE(kEoB2NpcPresetsAmiga), kEoB2NpcPresetsAmiga }; + +static const byte kEoB2DreamStepsAmiga[14] = { + 0x01, 0x02, 0x03, 0x02, 0x01, 0x00, 0x01, 0x02, + 0x03, 0x03, 0x02, 0x01, 0x00, 0xFF +}; + +static const ByteProvider kEoB2DreamStepsAmigaProvider = { ARRAYSIZE(kEoB2DreamStepsAmiga), kEoB2DreamStepsAmiga }; + +static const byte kEoB2HornSoundsAmiga[4] = { + 0x40, 0x41, 0x42, 0x43 +}; + +static const ByteProvider kEoB2HornSoundsAmigaProvider = { ARRAYSIZE(kEoB2HornSoundsAmiga), kEoB2HornSoundsAmiga }; + +static const uint16 kEoB2WallOfForceDsXAmiga[18] = { + 0xFFCC, 0xFFF4, 0x001C, 0x0044, 0x006C, 0x0094, 0x00BC, 0xFFB8, + 0xFFF8, 0x0038, 0x0078, 0x00B8, 0xFFC8, 0x0028, 0x0088, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB2WallOfForceDsXAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsXAmiga), kEoB2WallOfForceDsXAmiga }; + +static const byte kEoB2WallOfForceDsYAmiga[3] = { + 0x20, 0x18, 0x10 +}; + +static const ByteProvider kEoB2WallOfForceDsYAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceDsYAmiga), kEoB2WallOfForceDsYAmiga }; + +static const byte kEoB2WallOfForceNumWAmiga[3] = { + 0x01, 0x02, 0x03 +}; + +static const ByteProvider kEoB2WallOfForceNumWAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumWAmiga), kEoB2WallOfForceNumWAmiga }; + +static const byte kEoB2WallOfForceNumHAmiga[3] = { + 0x02, 0x06, 0x09 +}; + +static const ByteProvider kEoB2WallOfForceNumHAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceNumHAmiga), kEoB2WallOfForceNumHAmiga }; + +static const byte kEoB2WallOfForceShpIdAmiga[3] = { + 0x04, 0x02, 0x00 +}; + +static const ByteProvider kEoB2WallOfForceShpIdAmigaProvider = { ARRAYSIZE(kEoB2WallOfForceShpIdAmiga), kEoB2WallOfForceShpIdAmiga }; + +static const byte kEoB2DscShapeIndexAmiga[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 kEoB2DscShapeIndexAmigaProvider = { ARRAYSIZE(kEoB2DscShapeIndexAmiga), kEoB2DscShapeIndexAmiga }; + +static const uint16 kEoB2DscXAmiga[18] = { + 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60, + 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000 +}; + +static const Uint16Provider kEoB2DscXAmigaProvider = { ARRAYSIZE(kEoB2DscXAmiga), kEoB2DscXAmiga }; + +static const byte kEoB2DscTileIndexAmiga[18] = { + 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07, + 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F, + 0x11, 0x10 +}; + +static const ByteProvider kEoB2DscTileIndexAmigaProvider = { ARRAYSIZE(kEoB2DscTileIndexAmiga), kEoB2DscTileIndexAmiga }; + +static const byte kEoB2DscDimData1Amiga[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 kEoB2DscDimData1AmigaProvider = { ARRAYSIZE(kEoB2DscDimData1Amiga), kEoB2DscDimData1Amiga }; + +static const byte kEoB2DscDimData2Amiga[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 kEoB2DscDimData2AmigaProvider = { ARRAYSIZE(kEoB2DscDimData2Amiga), kEoB2DscDimData2Amiga }; + +static const byte kEoB2DscBlockMapAmiga[12] = { + 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00, + 0x03, 0x00, 0x01, 0x02 +}; + +static const ByteProvider kEoB2DscBlockMapAmigaProvider = { ARRAYSIZE(kEoB2DscBlockMapAmiga), kEoB2DscBlockMapAmiga }; + +static const byte kEoB2DscDimMapAmiga[18] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, + 0x03, 0x03 +}; + +static const ByteProvider kEoB2DscDimMapAmigaProvider = { ARRAYSIZE(kEoB2DscDimMapAmiga), kEoB2DscDimMapAmiga }; + +static const byte kEoB2DscBlockIndexAmiga[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 kEoB2DscBlockIndexAmigaProvider = { ARRAYSIZE(kEoB2DscBlockIndexAmiga), kEoB2DscBlockIndexAmiga }; + +static const char *const kEoB2SoundMapAmiga[120] = { + "", + "button", + "", + "door", + "door", + "slam", + "button", + "button", + "", + "eat", + "magica", + "throw", + "plate", + "passage", + "unlock", + "teleport", + "undead", + "pit", + "itemland", + "", + "", + "playhit", + "death", + "text", + "electric", + "transmute", + "dart", + "", + "", + "bump", + "", + "electric", + "playswing", + "", + "panel", + "explode", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "magicb", + "button", + "", + "drop", + "text", + "magicb", + "lock", + "", + "magicb", + "magicb", + "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", + "fireball", + "magica" +}; + +static const StringListProvider kEoB2SoundMapAmigaProvider = { ARRAYSIZE(kEoB2SoundMapAmiga), kEoB2SoundMapAmiga }; + +static const char *const kEoB2SoundMapExtraAmiga[63] = { + "", + "2Guards", + "Calandra", + "Dream", + "Dwarf", + "GrdInsal", + "Insal", + "x", + "Kheban", + "", + "OldLady", + "MagicMth", + "Castle1", + "BdrTrick", + "", + "2Cleric", + "Calandra", + "1Cleric", + "MagicMth", + "MagicMth", + "2Clerics", + "4WindDr", + "x", + "BloodDr", + "", + "Beholder", + "BdrTrick", + "MagicMth", + "DranSilv", + "MagicMth", + "1Cleric", + "Mantis2", + "Priest", + "Kheban", + "Tanglor1", + "Tanglor2", + "", + "MagicMth", + "MagicMth", + "Dran1Azr", + "x", + "x", + "FrostGt", + "FrostDed", + "Dran2Azr", + "Dran3Azr", + "BdrTrick", + "x", + "MagicMth", + "", + "Dran1Crm", + "Dran2Crm", + "Dran3Crm", + "Dran4Crm", + "DranDrag", + "EndTheme", + "DyingMan", + "Insal", + "Ojel", + "StoneGt", + "Implode", + "x", + "" +}; + +static const StringListProvider kEoB2SoundMapExtraAmigaProvider = { ARRAYSIZE(kEoB2SoundMapExtraAmiga), kEoB2SoundMapExtraAmiga }; + +static const byte kEoB2SoundIndex1Amiga[98] = { + 0xff, 0x01, 0xfd, 0x07, 0xfd, 0x04, 0xfe, 0x0a, + 0xfe, 0xff, 0x01, 0xfd, 0x07, 0x08, 0xff, 0x03, + 0x05, 0x09, 0x0b, 0x04, 0xfe, 0x0a, 0xfe, 0xff, + 0x00, 0xfd, 0x0c, 0xfd, 0xff, 0x01, 0xfd, 0x0d, + 0xfd, 0xff, 0x01, 0xfd, 0x08, 0xfd, 0xff, 0x06, + 0xfe, 0x07, 0xfe, 0x05, 0xfe, 0x0e, 0xfe, 0xff, + 0x05, 0xfe, 0x0f, 0xfe, 0xff, 0xfe, 0xfe, 0x0d, + 0xfe, 0xff, 0xff, 0x00, 0xfd, 0x0d, 0x0c, 0x00, + 0xfe, 0x0b, 0xfe, 0xff, 0x00, 0xfe, 0x0b, 0xfe, + 0xff, 0xfe, 0x01, 0x0b, 0x0d, 0xff, 0x02, 0xfd, + 0x10, 0xfd, 0xff, 0x00, 0x01, 0x11, 0xfe, 0xff, + 0x00, 0x01, 0x0e, 0x12, 0x02, 0x01, 0x11, 0xfe, + 0xff, 0x00 +}; + +static const ByteProvider kEoB2SoundIndex1AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex1Amiga), kEoB2SoundIndex1Amiga }; + +static const byte kEoB2SoundIndex2Amiga[17] = { + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, + 0x05 +}; + +static const ByteProvider kEoB2SoundIndex2AmigaProvider = { ARRAYSIZE(kEoB2SoundIndex2Amiga), kEoB2SoundIndex2Amiga }; + +static const char *const kEoB2SoundFilesIngame2Amiga[6] = { + "DUNG.OUT", + "FOREST.OUT", + "MEZZ.OUT", + "SILVER.OUT", + "AZURE.OUT", + "CRIMSON.OUT" +}; + +static const StringListProvider kEoB2SoundFilesIngame2AmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngame2Amiga), kEoB2SoundFilesIngame2Amiga }; + +static const char *const kEoB2LevelSoundFiles1Amiga[19] = { + "Move", + "Move2", + "Move3", + "LeechMov", + "SpiderMov", + "Flap", + "MantisMov", + "Blade", + "FlindAtk", + "Rustatk", + "SloshSuck", + "Claw", + "BeastAtk", + "Magick", + "Spear", + "Growl", + "Punch", + "HoundAtk", + "FlayerAtk" +}; + +static const StringListProvider kEoB2LevelSoundFiles1AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles1Amiga), kEoB2LevelSoundFiles1Amiga }; + +static const char *const kEoB2LevelSoundFiles2Amiga[19] = { + "Walk1m", + "Walk2m", + "Walk3m", + "Leechm", + "Spiderm", + "Flapm", + "Mantism", + "Blade", + "Flind", + "Rust", + "Slosh", + "Claw", + "Beast", + "Magick", + "Spear", + "Growl", + "Punch", + "Hound", + "Flayer" +}; + +static const StringListProvider kEoB2LevelSoundFiles2AmigaProvider = { ARRAYSIZE(kEoB2LevelSoundFiles2Amiga), kEoB2LevelSoundFiles2Amiga }; + +static const char *const kEoB2SoundFilesIntroAmiga[10] = { + "TELEPORT.CPS", + "BIGPIPE3A.CPS", + "PANFLUTE5.CPS", + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "FIN.SAM", + "INTRO.SAM", + "FLUTE3C.CPS", + "CHARGEN2.CPS", + "CHARGEN3.CPS" +}; + +static const StringListProvider kEoB2SoundFilesIntroAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIntroAmiga), kEoB2SoundFilesIntroAmiga }; + +static const char *const kEoB2SoundFilesIngameAmiga[7] = { + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "SFX1.CPS", + "SFX2.CPS", + "SFX3.CPS", + "SFX4.CPS", + "OUTTAKES3.CPS" +}; + +static const StringListProvider kEoB2SoundFilesIngameAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesIngameAmiga), kEoB2SoundFilesIngameAmiga }; + +static const char *const kEoB2SoundFilesFinaleAmiga[5] = { + "BIGPIPE3A.CPS", + "OUTTAKES1.CPS", + "OUTTAKES2.CPS", + "FIN.SAM", + "FINALE.SAM" +}; + +static const StringListProvider kEoB2SoundFilesFinaleAmigaProvider = { ARRAYSIZE(kEoB2SoundFilesFinaleAmiga), kEoB2SoundFilesFinaleAmiga }; + +static const byte kEoB2MonsterSoundPatchDataAmiga[60] = { + 0x61, 0x27, 0x24, 0x22, 0x27, 0x25, 0x32, 0x27, 0x25, + 0x87, 0x27, 0x25, 0xa7, 0x27, 0x25, 0x97, 0x27, 0x25, + 0xb7, 0x27, 0x25, 0x08, 0x27, 0x25, 0x28, 0x27, 0x25, + 0x48, 0x27, 0x25, 0x68, 0x27, 0x25, 0x0a, 0x27, 0x25, + 0x1a, 0x27, 0x25, 0x0c, 0x27, 0x25, 0x4e, 0x27, 0x25, + 0x6e, 0x27, 0x25, 0x8e, 0x27, 0x25, 0xae, 0x27, 0x25, + 0x0f, 0x27, 0x25, 0x1f, 0x27, 0x25 +}; + +static const ByteProvider kEoB2MonsterSoundPatchDataAmigaProvider = { ARRAYSIZE(kEoB2MonsterSoundPatchDataAmiga), kEoB2MonsterSoundPatchDataAmiga }; diff --git a/devtools/create_kyradat/resources/eob2_amiga_english.h b/devtools/create_kyradat/resources/eob2_amiga_english.h new file mode 100644 index 0000000000..12c6e6189b --- /dev/null +++ b/devtools/create_kyradat/resources/eob2_amiga_english.h @@ -0,0 +1,1055 @@ +static const char *const kEoB2ChargenStrings1AmigaEnglish[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 kEoB2ChargenStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings1AmigaEnglish), kEoB2ChargenStrings1AmigaEnglish }; + +static const char *const kEoB2ChargenStrings2AmigaEnglish[12] = { + "%s", + "%d", + "%s", + "%d", + "%d", + "%d", + "%s", + "%d", + "SELECT RACE:", + "SELECT CLASS:", + "SELECT ALIGNMENT:", + "Name:" +}; + +static const StringListProvider kEoB2ChargenStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStrings2AmigaEnglish), kEoB2ChargenStrings2AmigaEnglish }; + +static const char *const kEoB2ChargenStatStringsAmigaEnglish[12] = { + "STR", + "INT", + "WIS", + "DEX", + "CON", + "CHA", + "STRENGTH", + "INTELLIGENCE", + "WISDOM", + "DEXTERITY", + "CONSTITUTION", + "CHARISMA" +}; + +static const StringListProvider kEoB2ChargenStatStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenStatStringsAmigaEnglish), kEoB2ChargenStatStringsAmigaEnglish }; + +static const char *const kEoB2ChargenRaceSexStringsAmigaEnglish[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 kEoB2ChargenRaceSexStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenRaceSexStringsAmigaEnglish), kEoB2ChargenRaceSexStringsAmigaEnglish }; + +static const char *const kEoB2ChargenClassStringsAmigaEnglish[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 kEoB2ChargenClassStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenClassStringsAmigaEnglish), kEoB2ChargenClassStringsAmigaEnglish }; + +static const char *const kEoB2ChargenAlignmentStringsAmigaEnglish[9] = { + "LAWFUL GOOD", + "NEUTRAL GOOD", + "CHAOTIC GOOD", + "LAWFUL NEUTRAL", + "TRUE NEUTRAL", + "CHAOTIC NEUTRAL", + "LAWFUL EVIL", + "NEUTRAL EVIL", + "CHAOTIC EVIL" +}; + +static const StringListProvider kEoB2ChargenAlignmentStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenAlignmentStringsAmigaEnglish), kEoB2ChargenAlignmentStringsAmigaEnglish }; + +static const char *const kEoB2ChargenEnterGameStringsAmigaEnglish[1] = { + " Entering game.\r Please wait." +}; + +static const StringListProvider kEoB2ChargenEnterGameStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ChargenEnterGameStringsAmigaEnglish), kEoB2ChargenEnterGameStringsAmigaEnglish }; + +static const char *const kEoB2PryDoorStringsAmigaEnglish[8] = { + "\r", + "You are not capable of forcing the door.\r", + "\x06\x04""You force the door.\r", + "\x06\x06""You try to force the door but fail.\r", + "You can't put that item there.\r", + "The item is too large to fit.\r", + "No one is able to pry this door open.\r", + "\r" +}; + +static const StringListProvider kEoB2PryDoorStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PryDoorStringsAmigaEnglish), kEoB2PryDoorStringsAmigaEnglish }; + +static const char *const kEoB2WarningStringsAmigaEnglish[4] = { + "You can't go that way.\r", + "%s isn't capable of eating food!\r", + "That food is rotten! You don't want to eat that!\r", + "You may only eat food!\r" +}; + +static const StringListProvider kEoB2WarningStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2WarningStringsAmigaEnglish), kEoB2WarningStringsAmigaEnglish }; + +static const char *const kEoB2ItemSuffixStringsRingsAmigaEnglish[4] = { + "Adornment", + "Wizardry", + "Sustenance", + "Feather Fall" +}; + +static const StringListProvider kEoB2ItemSuffixStringsRingsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsRingsAmigaEnglish), kEoB2ItemSuffixStringsRingsAmigaEnglish }; + +static const char *const kEoB2ItemSuffixStringsPotionsAmigaEnglish[8] = { + "Giant Strength", + "Healing", + "Extra Healing", + "Poison", + "Vitality", + "Speed", + "Invisibility", + "Cure Poison" +}; + +static const StringListProvider kEoB2ItemSuffixStringsPotionsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsPotionsAmigaEnglish), kEoB2ItemSuffixStringsPotionsAmigaEnglish }; + +static const char *const kEoB2ItemSuffixStringsWandsAmigaEnglish[8] = { + "Stick", + "Lightning", + "Frost", + "Curing", + "Fireball", + "Starfire", + "Magic Missile", + "Dispel Magic" +}; + +static const StringListProvider kEoB2ItemSuffixStringsWandsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsWandsAmigaEnglish), kEoB2ItemSuffixStringsWandsAmigaEnglish }; + +static const char *const kEoB2RipItemStringsAmigaEnglish[3] = { + "%s has lost her ", + "%s has lost his ", + ".\r" +}; + +static const StringListProvider kEoB2RipItemStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2RipItemStringsAmigaEnglish), kEoB2RipItemStringsAmigaEnglish }; + +static const char *const kEoB2CursedStringAmigaEnglish[1] = { + "%d Cursed %s" +}; + +static const StringListProvider kEoB2CursedStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2CursedStringAmigaEnglish), kEoB2CursedStringAmigaEnglish }; + +static const char *const kEoB2MagicObjectStringsAmigaEnglish[5] = { + "Mage Scroll", + "Cleric Scroll", + "Ring", + "Potion", + "Wand" +}; + +static const StringListProvider kEoB2MagicObjectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectStringsAmigaEnglish), kEoB2MagicObjectStringsAmigaEnglish }; + +static const char *const kEoB2MagicObjectString5AmigaEnglish[1] = { + "Stick" +}; + +static const StringListProvider kEoB2MagicObjectString5AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicObjectString5AmigaEnglish), kEoB2MagicObjectString5AmigaEnglish }; + +static const char *const kEoB2PatternSuffixAmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB2PatternSuffixAmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternSuffixAmigaEnglish), kEoB2PatternSuffixAmigaEnglish }; + +static const char *const kEoB2PatternGrFix1AmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB2PatternGrFix1AmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix1AmigaEnglish), kEoB2PatternGrFix1AmigaEnglish }; + +static const char *const kEoB2PatternGrFix2AmigaEnglish[1] = { + "%s of %s" +}; + +static const StringListProvider kEoB2PatternGrFix2AmigaEnglishProvider = { ARRAYSIZE(kEoB2PatternGrFix2AmigaEnglish), kEoB2PatternGrFix2AmigaEnglish }; + +static const char *const kEoB2ValidateArmorStringAmigaEnglish[1] = { + "%s can't wear that type of armor.\r" +}; + +static const StringListProvider kEoB2ValidateArmorStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateArmorStringAmigaEnglish), kEoB2ValidateArmorStringAmigaEnglish }; + +static const char *const kEoB2ValidateCursedStringAmigaEnglish[1] = { + "%s cannot release the weapon! It is cursed!\r" +}; + +static const StringListProvider kEoB2ValidateCursedStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateCursedStringAmigaEnglish), kEoB2ValidateCursedStringAmigaEnglish }; + +static const char *const kEoB2ValidateNoDropStringAmigaEnglish[1] = { + "You can't put that item there.\r" +}; + +static const StringListProvider kEoB2ValidateNoDropStringAmigaEnglishProvider = { ARRAYSIZE(kEoB2ValidateNoDropStringAmigaEnglish), kEoB2ValidateNoDropStringAmigaEnglish }; + +static const char *const kEoB2PotionStringsAmigaEnglish[2] = { + "poisoned", + "%s feels %s!\r" +}; + +static const StringListProvider kEoB2PotionStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PotionStringsAmigaEnglish), kEoB2PotionStringsAmigaEnglish }; + +static const char *const kEoB2WandStringsAmigaEnglish[1] = { + "The wand has no apparent magical effect\r" +}; + +static const StringListProvider kEoB2WandStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2WandStringsAmigaEnglish), kEoB2WandStringsAmigaEnglish }; + +static const char *const kEoB2ItemMisuseStringsAmigaEnglish[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 kEoB2ItemMisuseStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2ItemMisuseStringsAmigaEnglish), kEoB2ItemMisuseStringsAmigaEnglish }; + +static const char *const kEoB2TakenStringsAmigaEnglish[1] = { + " taken.\r" +}; + +static const StringListProvider kEoB2TakenStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2TakenStringsAmigaEnglish), kEoB2TakenStringsAmigaEnglish }; + +static const char *const kEoB2PotionEffectStringsAmigaEnglish[8] = { + "much stronger", + "better", + "much better", + "ill for a moment", + "satiated", + "fast and agile", + "transparent", + "better" +}; + +static const StringListProvider kEoB2PotionEffectStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2PotionEffectStringsAmigaEnglish), kEoB2PotionEffectStringsAmigaEnglish }; + +static const char *const kEoB2YesNoStringsAmigaEnglish[2] = { + "yes", + "no" +}; + +static const StringListProvider kEoB2YesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2YesNoStringsAmigaEnglish), kEoB2YesNoStringsAmigaEnglish }; + +static const char *const kEoB2MoreStringsAmigaEnglish[1] = { + "MORE" +}; + +static const StringListProvider kEoB2MoreStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MoreStringsAmigaEnglish), kEoB2MoreStringsAmigaEnglish }; + +static const char *const kEoB2NpcMaxStringsAmigaEnglish[1] = { + "You may only have six characters in your party. Select the one you wish to drop." +}; + +static const StringListProvider kEoB2NpcMaxStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2NpcMaxStringsAmigaEnglish), kEoB2NpcMaxStringsAmigaEnglish }; + +static const char *const kEoB2OkStringsAmigaEnglish[1] = { + "OK" +}; + +static const StringListProvider kEoB2OkStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2OkStringsAmigaEnglish), kEoB2OkStringsAmigaEnglish }; + +static const char *const kEoB2NpcJoinStringsAmigaEnglish[1] = { + "%s joins the party.\r" +}; + +static const StringListProvider kEoB2NpcJoinStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2NpcJoinStringsAmigaEnglish), kEoB2NpcJoinStringsAmigaEnglish }; + +static const char *const kEoB2CancelStringsAmigaEnglish[1] = { + "CANCEL" +}; + +static const StringListProvider kEoB2CancelStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2CancelStringsAmigaEnglish), kEoB2CancelStringsAmigaEnglish }; + +static const char *const kEoB2AbortStringsAmigaEnglish[1] = { + "ABORT" +}; + +static const StringListProvider kEoB2AbortStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2AbortStringsAmigaEnglish), kEoB2AbortStringsAmigaEnglish }; + +static const char *const kEoB2MenuStringsMainAmigaEnglish[8] = { + "Select Option:", + "Rest Party", + "Memorize Spells", + "Pray for Spells", + "Scribe Scrolls", + "Preferences", + "Game Options", + "Exit" +}; + +static const StringListProvider kEoB2MenuStringsMainAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMainAmigaEnglish), kEoB2MenuStringsMainAmigaEnglish }; + +static const char *const kEoB2MenuStringsSaveLoadAmigaEnglish[8] = { + "Load Game", + "Save Game", + "Drop Character", + "Quit Game", + "Game Options:", + "\r Game saved.", + "Attempts to save\ryour game have\rfailed!", + "Cannot load your\rsave game. The\rfile may be corrupt!" +}; + +static const StringListProvider kEoB2MenuStringsSaveLoadAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSaveLoadAmigaEnglish), kEoB2MenuStringsSaveLoadAmigaEnglish }; + +static const char *const kEoB2MenuStringsOnOffAmigaEnglish[2] = { + "ON", + "OFF" +}; + +static const StringListProvider kEoB2MenuStringsOnOffAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsOnOffAmigaEnglish), kEoB2MenuStringsOnOffAmigaEnglish }; + +static const char *const kEoB2MenuStringsSpellsAmigaEnglish[17] = { + "\r\r Select a character\r from your party who\r would like to learn\r spells.", + "\r Your Paladin is \r too low a level\r for spells.", + "\r\r The Mage has no\r Spell Book!", + "\r\r\r Select a character\r from your party\r who would like to\r pray for spells.", + "\r No party members\r are capable of\r praying for new\r spells.", + "\r No party members\r are capable of\r memorizing new\r spells.", + " An unconscious\r or dead Mage\r cannot memorize\r spells.", + " An unconscious\r or dead Cleric\r cannot pray for\r spells.", + "1", + "2", + "3", + "4", + "5", + "Clear", + "Spells Available:", + "Yes", + "No" +}; + +static const StringListProvider kEoB2MenuStringsSpellsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpellsAmigaEnglish), kEoB2MenuStringsSpellsAmigaEnglish }; + +static const char *const kEoB2MenuStringsRestAmigaEnglish[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 kEoB2MenuStringsRestAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRestAmigaEnglish), kEoB2MenuStringsRestAmigaEnglish }; + +static const char *const kEoB2MenuStringsDropAmigaEnglish[1] = { + " You cannot have\r less than four\r characters." +}; + +static const StringListProvider kEoB2MenuStringsDropAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDropAmigaEnglish), kEoB2MenuStringsDropAmigaEnglish }; + +static const char *const kEoB2MenuStringsExitAmigaEnglish[1] = { + " Are you sure you\r wish to exit the\r game?" +}; + +static const StringListProvider kEoB2MenuStringsExitAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsExitAmigaEnglish), kEoB2MenuStringsExitAmigaEnglish }; + +static const char *const kEoB2MenuStringsStarveAmigaEnglish[1] = { + " Your party is\r starving. Do you\r wish to continue\r resting?" +}; + +static const StringListProvider kEoB2MenuStringsStarveAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsStarveAmigaEnglish), kEoB2MenuStringsStarveAmigaEnglish }; + +static const char *const kEoB2MenuStringsScribeAmigaEnglish[5] = { + "Select the scroll(s)\ryou wish to scribe.", + "\r\r\r Select a Mage\r from your party\r who would like to\r scribe spells.", + " You don't have\r any scolls to be\r scribed.", + " You don't have\r any scrolls that\r this Mage needs.", + "\r You don't have\r any Mage able to\r scribe scrolls." +}; + +static const StringListProvider kEoB2MenuStringsScribeAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsScribeAmigaEnglish), kEoB2MenuStringsScribeAmigaEnglish }; + +static const char *const kEoB2MenuStringsDrop2AmigaEnglish[3] = { + " Select the\r character you\r wish to drop.", + " You must specify\r a name for your\r save game!", + " Are you sure you\r wish to replace\r your saved game?" +}; + +static const StringListProvider kEoB2MenuStringsDrop2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDrop2AmigaEnglish), kEoB2MenuStringsDrop2AmigaEnglish }; + +static const char *const kEoB2MenuStringsHeadAmigaEnglish[3] = { + "Camp:", + "Preferences:", + "Game Options:" +}; + +static const StringListProvider kEoB2MenuStringsHeadAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsHeadAmigaEnglish), kEoB2MenuStringsHeadAmigaEnglish }; + +static const char *const kEoB2MenuStringsPoisonAmigaEnglish[1] = { + "Poisoned party\rmembers may die!\rRest anyway?" +}; + +static const StringListProvider kEoB2MenuStringsPoisonAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPoisonAmigaEnglish), kEoB2MenuStringsPoisonAmigaEnglish }; + +static const char *const kEoB2MenuStringsMgcAmigaEnglish[2] = { + "%-18s %1d", + "%d of %d Remaining. " +}; + +static const StringListProvider kEoB2MenuStringsMgcAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsMgcAmigaEnglish), kEoB2MenuStringsMgcAmigaEnglish }; + +static const char *const kEoB2MenuStringsPrefsAmigaEnglish[4] = { + "Tunes are %-3s", + "Sounds are %-3s", + "Bar Graphs are %-3s", + "" +}; + +static const StringListProvider kEoB2MenuStringsPrefsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsPrefsAmigaEnglish), kEoB2MenuStringsPrefsAmigaEnglish }; + +static const char *const kEoB2MenuStringsRest2AmigaEnglish[5] = { + "%s gained %s.\r", + "%s memorized %s.\r", + "%s casts healing on %s.\r", + "Hours rested: %-4d", + "\r%s\r" +}; + +static const StringListProvider kEoB2MenuStringsRest2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest2AmigaEnglish), kEoB2MenuStringsRest2AmigaEnglish }; + +static const char *const kEoB2MenuStringsRest3AmigaEnglish[1] = { + "\x06\x06""You do not feel it is safe to rest here." +}; + +static const StringListProvider kEoB2MenuStringsRest3AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest3AmigaEnglish), kEoB2MenuStringsRest3AmigaEnglish }; + +static const char *const kEoB2MenuStringsRest4AmigaEnglish[1] = { + "\x06\x06""You can't rest here, monsters are near." +}; + +static const StringListProvider kEoB2MenuStringsRest4AmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsRest4AmigaEnglish), kEoB2MenuStringsRest4AmigaEnglish }; + +static const char *const kEoB2MenuStringsDefeatAmigaEnglish[1] = { + "\rYour entire party\rhas been defeated!\rWould you like to\rload a previously\rsaved game?" +}; + +static const StringListProvider kEoB2MenuStringsDefeatAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatAmigaEnglish), kEoB2MenuStringsDefeatAmigaEnglish }; + +static const char *const kEoB2MenuStringsTransferAmigaEnglish[5] = { + "You must transfer\rfour party members\rbefore you may play!", + "You may only transfer\rfour party members to\rEOB II!", + "Items which are not\ruseful or unbalance\rthe game will be\rdeleted.", + " \r You do not have\r a mage in your\r party.", + " \r You do not have\r a cleric or\r paladin in your\r party." +}; + +static const StringListProvider kEoB2MenuStringsTransferAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsTransferAmigaEnglish), kEoB2MenuStringsTransferAmigaEnglish }; + +static const char *const kEoB2MenuStringsSpecAmigaEnglish[2] = { + "As you awaken, you\rdiscover that Insal\rthe thief is gone!", + "A quick inventory\rreveals equipment\rhas been stolen!" +}; + +static const StringListProvider kEoB2MenuStringsSpecAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuStringsSpecAmigaEnglish), kEoB2MenuStringsSpecAmigaEnglish }; + +static const char *const kEoB2MenuYesNoStringsAmigaEnglish[2] = { + "Yes", + "No" +}; + +static const StringListProvider kEoB2MenuYesNoStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsAmigaEnglish), kEoB2MenuYesNoStringsAmigaEnglish }; + +static const char *const kEoB2CharGuiStringsHpAmigaEnglish[2] = { + "HP", + "%3d of %-3d" +}; + +static const StringListProvider kEoB2CharGuiStringsHpAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpAmigaEnglish), kEoB2CharGuiStringsHpAmigaEnglish }; + +static const char *const kEoB2CharGuiStringsWp2AmigaEnglish[3] = { + "MISS", + "HACK", + "BASH" +}; + +static const StringListProvider kEoB2CharGuiStringsWp2AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2AmigaEnglish), kEoB2CharGuiStringsWp2AmigaEnglish }; + +static const char *const kEoB2CharGuiStringsWrAmigaEnglish[4] = { + "CAN'T", + "REACH", + "NO", + "AMMO" +}; + +static const StringListProvider kEoB2CharGuiStringsWrAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrAmigaEnglish), kEoB2CharGuiStringsWrAmigaEnglish }; + +static const char *const kEoB2CharGuiStringsSt2AmigaEnglish[7] = { + "Swapping", + "DEAD", + "UNCONSCIOUS", + "POISON (SLOW)", + "POISONED", + "PARALYZED", + "PETRIFIED" +}; + +static const StringListProvider kEoB2CharGuiStringsSt2AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2AmigaEnglish), kEoB2CharGuiStringsSt2AmigaEnglish }; + +static const char *const kEoB2CharGuiStringsInAmigaEnglish[4] = { + "CHARACTER INFO", + "ARMOR CLASS", + "EXP", + "LVL" +}; + +static const StringListProvider kEoB2CharGuiStringsInAmigaEnglishProvider = { ARRAYSIZE(kEoB2CharGuiStringsInAmigaEnglish), kEoB2CharGuiStringsInAmigaEnglish }; + +static const char *const kEoB2CharStatusStrings7AmigaEnglish[1] = { + "%s no longer has giant strength.\r" +}; + +static const StringListProvider kEoB2CharStatusStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings7AmigaEnglish), kEoB2CharStatusStrings7AmigaEnglish }; + +static const char *const kEoB2CharStatusStrings82AmigaEnglish[1] = { + "\x06\x06""%s feels the effects of poison!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings82AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings82AmigaEnglish), kEoB2CharStatusStrings82AmigaEnglish }; + +static const char *const kEoB2CharStatusStrings9AmigaEnglish[1] = { + "\x06\x04""%s is no longer paralyzed!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings9AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings9AmigaEnglish), kEoB2CharStatusStrings9AmigaEnglish }; + +static const char *const kEoB2CharStatusStrings12AmigaEnglish[1] = { + "%s slows down.\r" +}; + +static const StringListProvider kEoB2CharStatusStrings12AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings12AmigaEnglish), kEoB2CharStatusStrings12AmigaEnglish }; + +static const char *const kEoB2CharStatusStrings132AmigaEnglish[1] = { + "\x06\x06""%s is %s!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings132AmigaEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings132AmigaEnglish), kEoB2CharStatusStrings132AmigaEnglish }; + +static const char *const kEoB2LevelGainStringsAmigaEnglish[1] = { + "\x06\x01""%s has gained a level.""\x06\x0f""\r" +}; + +static const StringListProvider kEoB2LevelGainStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2LevelGainStringsAmigaEnglish), kEoB2LevelGainStringsAmigaEnglish }; + +static const char *const kEoB2BookNumbersAmigaEnglish[5] = { + "First", + "Second", + "Third", + "Fourth", + "Fifth" +}; + +static const StringListProvider kEoB2BookNumbersAmigaEnglishProvider = { ARRAYSIZE(kEoB2BookNumbersAmigaEnglish), kEoB2BookNumbersAmigaEnglish }; + +static const char *const kEoB2MageSpellsListAmigaEnglish[33] = { + "", + "Armor", + "Burning Hands", + "Detect Magic", + "Magic Missile", + "Shield", + "Shocking Grasp", + "Blur", + "Detect Invisible", + "Imp Identify", + "Invisibility", + "M's Acid Arrow", + "Dispel Magic", + "Fireball", + "Haste", + "Hold Person", + "Invisibility 10'", + "Lightning Bolt", + "Vampiric Touch", + "Fear", + "Ice Storm", + "Imp Invisibility", + "Remove Curse", + "Cone of Cold", + "Hold Monster", + "Wall of Force", + "Disintegrate", + "Flesh to Stone", + "Stone to Flesh", + "True Seeing", + "Finger of Death", + "Power Word Stun", + "Bigby's Fist" +}; + +static const StringListProvider kEoB2MageSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB2MageSpellsListAmigaEnglish), kEoB2MageSpellsListAmigaEnglish }; + +static const char *const kEoB2ClericSpellsListAmigaEnglish[30] = { + "", + "Bless", + "Cause Light Wnds", + "Cure Light Wnds", + "Detect Magic", + "Protect-Evil", + "Aid", + "Flame Blade", + "Hold Person", + "Slow Poison", + "Create Food", + "Dispel Magic", + "Magical Vestment", + "Prayer", + "Remove Paralysis", + "Cause Serious", + "Cure Serious", + "Neutral-Poison", + "Protect-Evil 10'", + "Cause Critical", + "Cure Critical", + "Flame Strike", + "Raise Dead", + "Slay Living", + "True Seeing", + "Harm", + "Heal", + "Ressurection", + "Lay on Hands", + "Turn undead" +}; + +static const StringListProvider kEoB2ClericSpellsListAmigaEnglishProvider = { ARRAYSIZE(kEoB2ClericSpellsListAmigaEnglish), kEoB2ClericSpellsListAmigaEnglish }; + +static const char *const kEoB2SpellNamesAmigaEnglish[68] = { + "armor", + "burning hands", + "detect magic", + "magic missile", + "shield", + "shocking grasp", + "blur", + "detect invisibility", + "improved identify", + "invisibility", + "melf's acid arrow", + "dispel magic", + "fireball", + "haste", + "Hold Person", + "invisibility 10' radius", + "lightning bolt", + "vampiric touch", + "fear", + "ice storm", + "improved invisibility", + "remove curse", + "cone of cold", + "hold monster", + "wall of force", + "disintegrate", + "flesh to stone", + "stone to flesh", + "true seeing", + "finger of death", + "power word stun", + "bigby's clenched fist", + "bless", + "cause light wounds", + "cure light wounds", + "detect magic", + "protection from evil", + "aid", + "flame blade", + "hold person", + "slow poison", + "create food", + "dispel magic", + "magical vestment", + "prayer", + "remove paralysis", + "cause serious wounds", + "cure serious wounds", + "neutralize poison", + "protection from evil 10' radius", + "cause critical wounds", + "cure critical wounds", + "flame strike", + "raise dead", + "slay living", + "true seeing", + "harm", + "heal", + "ressurection", + "lay on hands", + "turn undead", + "", + "mystic defense", + "", + "", + "", + "", + "" +}; + +static const StringListProvider kEoB2SpellNamesAmigaEnglishProvider = { ARRAYSIZE(kEoB2SpellNamesAmigaEnglish), kEoB2SpellNamesAmigaEnglish }; + +static const char *const kEoB2MagicStrings1AmigaEnglish[6] = { + "ABORT SPELL", + "ABORT SPELL", + "You must have a free hand for this spell.\r", + "You can't have two of this spell type active.\r", + "%s casts %s.\r", + "\rok\r" +}; + +static const StringListProvider kEoB2MagicStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings1AmigaEnglish), kEoB2MagicStrings1AmigaEnglish }; + +static const char *const kEoB2MagicStrings2AmigaEnglish[5] = { + "The spell fails!\r", + "%s has been disintegrated!\r", + "\x06\x06""The party has been hit by a death spell!\r", + "\x06\x06""%s has been hit by cause serious wounds.\r", + "PETRIFIED" +}; + +static const StringListProvider kEoB2MagicStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings2AmigaEnglish), kEoB2MagicStrings2AmigaEnglish }; + +static const char *const kEoB2MagicStrings3AmigaEnglish[5] = { + "Cast spell on which character? ", + "\rSpell aborted.\r", + "%s's %s spell expires.\r", + "%s missed the monster.\r", + "%s must be in the front ranks to hit!\r" +}; + +static const StringListProvider kEoB2MagicStrings3AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings3AmigaEnglish), kEoB2MagicStrings3AmigaEnglish }; + +static const char *const kEoB2MagicStrings4AmigaEnglish[1] = { + "no effect.\r" +}; + +static const StringListProvider kEoB2MagicStrings4AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings4AmigaEnglish), kEoB2MagicStrings4AmigaEnglish }; + +static const char *const kEoB2MagicStrings6AmigaEnglish[1] = { + "%s already has an armor class better than AC 6." +}; + +static const StringListProvider kEoB2MagicStrings6AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings6AmigaEnglish), kEoB2MagicStrings6AmigaEnglish }; + +static const char *const kEoB2MagicStrings7AmigaEnglish[2] = { + "%s is already under the effect of a %s spell.\r", + "The party is already under the effect of a %s spell.\r" +}; + +static const StringListProvider kEoB2MagicStrings7AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings7AmigaEnglish), kEoB2MagicStrings7AmigaEnglish }; + +static const char *const kEoB2MagicStrings8AmigaEnglish[6] = { + "The spell fails!\r", + "held", + "The spell fails!\r", + "The spell fails\r", + "No monster within reach!\r", + "%s is already under the effect of an aid spell.\r" +}; + +static const StringListProvider kEoB2MagicStrings8AmigaEnglishProvider = { ARRAYSIZE(kEoB2MagicStrings8AmigaEnglish), kEoB2MagicStrings8AmigaEnglish }; + +static const byte kEoB2ManDefAmigaEnglish[200] = { + 0x09, 0x03, 0x04, 0x00, 0x09, 0x0d, 0x02, 0x00, + 0x09, 0x07, 0x07, 0x00, 0x14, 0x06, 0x05, 0x00, + 0x14, 0x10, 0x06, 0x00, 0x14, 0x1c, 0x03, 0x00, + 0x1a, 0x04, 0x06, 0x00, 0x1a, 0x0a, 0x05, 0x00, + 0x1a, 0x0c, 0x05, 0x00, 0x15, 0x03, 0x04, 0x00, + 0x15, 0x05, 0x05, 0x00, 0x15, 0x0f, 0x02, 0x00, + 0x15, 0x14, 0x03, 0x00, 0x15, 0x1b, 0x02, 0x00, + 0x15, 0x1d, 0x03, 0x00, 0x23, 0x01, 0x03, 0x00, + 0x23, 0x03, 0x03, 0x00, 0x23, 0x08, 0x03, 0x00, + 0x23, 0x19, 0x02, 0x00, 0x23, 0x1f, 0x04, 0x00, + 0x23, 0x26, 0x04, 0x00, 0x26, 0x03, 0x02, 0x00, + 0x26, 0x05, 0x06, 0x00, 0x26, 0x12, 0x03, 0x00, + 0x26, 0x18, 0x01, 0x00, 0x26, 0x1e, 0x01, 0x00, + 0x26, 0x21, 0x04, 0x00, 0x17, 0x01, 0x03, 0x00, + 0x17, 0x03, 0x06, 0x00, 0x17, 0x06, 0x02, 0x00, + 0x17, 0x0f, 0x05, 0x00, 0x17, 0x1b, 0x01, 0x00, + 0x17, 0x21, 0x06, 0x00, 0x12, 0x03, 0x02, 0x00, + 0x12, 0x05, 0x04, 0x00, 0x12, 0x09, 0x02, 0x00, + 0x12, 0x0b, 0x04, 0x00, 0x12, 0x0d, 0x06, 0x00, + 0x12, 0x0f, 0x03, 0x00, 0x12, 0x11, 0x05, 0x00, + 0x12, 0x12, 0x02, 0x00, 0x1f, 0x02, 0x04, 0x00, + 0x1f, 0x02, 0x07, 0x00, 0x1f, 0x04, 0x03, 0x00, + 0x1f, 0x06, 0x03, 0x00, 0x1f, 0x09, 0x03, 0x00, + 0x1f, 0x0a, 0x01, 0x00, 0x1c, 0x03, 0x03, 0x00, + 0x1c, 0x04, 0x02, 0x00, 0x1c, 0x05, 0x06, 0x00 +}; + +static const ByteProvider kEoB2ManDefAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManDefAmigaEnglish), kEoB2ManDefAmigaEnglish }; + +static const char *const kEoB2ManWordAmigaEnglish[51] = { + "cursor", + "majority", + "right", + "unusable", + "greyed", + "thrown", + "spellcasters", + "button", + "characters", + "carefree", + "practical", + "inherit", + "while", + "combinations", + "charm", + "individuals", + "gestures", + "pummel", + "paladins", + "skill", + "advancement", + "also", + "counters", + "knowledge", + "greater", + "assume", + "several", + "laying", + "reach", + "swiftly", + "allows", + "limited", + "jack", + "thrown", + "weapons", + "note", + "certain", + "damage", + "done", + "bonus", + "may", + "over", + "box", + "put", + "portrait", + "backpack", + "inside", + "causes", + "until", + "outright", + "" +}; + +static const StringListProvider kEoB2ManWordAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManWordAmigaEnglish), kEoB2ManWordAmigaEnglish }; + +static const char *const kEoB2ManPromptAmigaEnglish[1] = { + "\r\r\r\rOn the page with this symbol...\r\rFind line %d\rEnter word %d\r" +}; + +static const StringListProvider kEoB2ManPromptAmigaEnglishProvider = { ARRAYSIZE(kEoB2ManPromptAmigaEnglish), kEoB2ManPromptAmigaEnglish }; + +static const char *const kEoB2MainMenuStringsAmigaEnglish[5] = { + "LOAD GAME IN PROGRESS\r", + "START A NEW PARTY\r", + "TRANSFER EOB I PARTY\r", + "RUN INTRODUCTION\r", + "FORMAT SAVE GAME DISK\r" +}; + +static const StringListProvider kEoB2MainMenuStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MainMenuStringsAmigaEnglish), kEoB2MainMenuStringsAmigaEnglish }; + +static const char *const kEoB2TransferStrings1AmigaEnglish[2] = { + "Level: %d", + " / %d" +}; + +static const StringListProvider kEoB2TransferStrings1AmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings1AmigaEnglish), kEoB2TransferStrings1AmigaEnglish }; + +static const char *const kEoB2TransferStrings2AmigaEnglish[2] = { + "You may only take four characters on your adventure.", + "Select OK when you are finished choosing your party." +}; + +static const StringListProvider kEoB2TransferStrings2AmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferStrings2AmigaEnglish), kEoB2TransferStrings2AmigaEnglish }; + +static const char *const kEoB2TransferLabelsAmigaEnglish[2] = { + "CANCEL", + "OK" +}; + +static const StringListProvider kEoB2TransferLabelsAmigaEnglishProvider = { ARRAYSIZE(kEoB2TransferLabelsAmigaEnglish), kEoB2TransferLabelsAmigaEnglish }; + +static const char *const kEoB2IntroStringsAmigaEnglish[20] = { + "You were settling in for an evening \rby the fire.", + "Then a note was slipped to you.", + "It was from your friend Khelben \rBlackstaff, Archmage of the city.", + "The message was urgent.", + "What could Khelben want?", + "Welcome, please come in.", + "Khelben awaits you in his study.", + "Thank you for coming so quickly.", + "I am troubled my friend.", + "Ancient Evil stirs in the \rTemple Darkmoon.", + "I fear for the safety of our city.", + "I need your help.", + "Three nights ago \rI sent forth a scout.", + "She has not yet returned.", + "I fear for her safety.", + "Take this coin.", + "I will use it to contact you.", + "You must act quickly.", + "I will teleport you near Darkmoon.", + "May luck be with you, my friend." +}; + +static const StringListProvider kEoB2IntroStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2IntroStringsAmigaEnglish), kEoB2IntroStringsAmigaEnglish }; + +static const char *const kEoB2IntroCPSFilesAmigaEnglish[16] = { + "STREET1.CPS", + "STREET2.CPS", + "DOORWAY1.CPS", + "DOORWAY2.CPS", + "WESTWOOD1.CPS", + "WINDING.CPS", + "KHELBAN2.CPS", + "KHELBAN1.CPS", + "KHELBAN3.CPS", + "KHELBAN4.CPS", + "COIN.CPS", + "KHELBAN5.CPS", + "KHELBAN6.CPS", + "WESTWOOD2.CPS", + "WESTWOOD3.CPS", + "WESTWOOD4.CPS" +}; + +static const StringListProvider kEoB2IntroCPSFilesAmigaEnglishProvider = { ARRAYSIZE(kEoB2IntroCPSFilesAmigaEnglish), kEoB2IntroCPSFilesAmigaEnglish }; + +static const char *const kEoB2FinaleStringsAmigaEnglish[20] = { + "Finally, Dran has been defeated.", + "Suddenly, your friend Khelben appears.", + "Greetings, my victorious friends.", + "You have defeated Dran!", + "I did not know Dran was a dragon.", + "He must have been over 300 years old!", + "His power is gone.", + "But Darkmoon is still a source\rof great evil.", + "And many of his minions remain.", + "Now we must leave this place.", + "So my forces can destroy it\ronce and for all.", + "Follow me.", + "Powerful mages stand ready\rfor the final assault\ron Darkmoon.", + "The Temple's evil is very strong.", + "It must not be allowed to survive!", + "The Temple ceases to exist.", + "My friends, our work is done.", + "Thank you.", + "You have earned my deepest respect.", + "We will remember you always." +}; + +static const StringListProvider kEoB2FinaleStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2FinaleStringsAmigaEnglish), kEoB2FinaleStringsAmigaEnglish }; + +static const char *const kEoB2FinaleCPSFilesAmigaEnglish[13] = { + "DRAGON1.CPS", + "DRAGON2.CPS", + "HURRY1.CPS", + "HURRY2.CPS", + "DESTROY0.CPS", + "DESTROY1.CPS", + "DESTROY2.CPS", + "MAGIC.CPS", + "DESTROY3.CPS", + "CREDITS2.CPS", + "CREDITS3.CPS", + "HEROES.CPS", + "THANKS.CPS" +}; + +static const StringListProvider kEoB2FinaleCPSFilesAmigaEnglishProvider = { ARRAYSIZE(kEoB2FinaleCPSFilesAmigaEnglish), kEoB2FinaleCPSFilesAmigaEnglish }; + +static const char *const kEoB2MonsterDistAttStringsAmigaEnglish[5] = { + "The party is hit with a psychic mind blast!\r", + "paralyzed", + "poisoned", + "paralyzed", + "PETRIFIED" +}; + +static const StringListProvider kEoB2MonsterDistAttStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MonsterDistAttStringsAmigaEnglish), kEoB2MonsterDistAttStringsAmigaEnglish }; + +static const char *const kEoB2Npc1StringsAmigaEnglish[2] = { + "talk", + "leave" +}; + +static const StringListProvider kEoB2Npc1StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2Npc1StringsAmigaEnglish), kEoB2Npc1StringsAmigaEnglish }; + +static const char *const kEoB2Npc2StringsAmigaEnglish[2] = { + "release him", + "leave" +}; + +static const StringListProvider kEoB2Npc2StringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2Npc2StringsAmigaEnglish), kEoB2Npc2StringsAmigaEnglish }; + +static const char *const kEoB2MonsterDustStringsAmigaEnglish[1] = { + "The monster crumbles to dust!\r" +}; + +static const StringListProvider kEoB2MonsterDustStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2MonsterDustStringsAmigaEnglish), kEoB2MonsterDustStringsAmigaEnglish }; + +static const char *const kEoB2KheldranStringsAmigaEnglish[1] = { + " Such trusting whelps!" +}; + +static const StringListProvider kEoB2KheldranStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2KheldranStringsAmigaEnglish), kEoB2KheldranStringsAmigaEnglish }; + +static const char *const kEoB2HornStringsAmigaEnglish[4] = { + "A bellowing sound comes from the horn.\r", + "A hollow sound comes from the horn.\r", + "A melodious sound comes from the horn.\r", + "An eerie sound comes from the horn.\r" +}; + +static const StringListProvider kEoB2HornStringsAmigaEnglishProvider = { ARRAYSIZE(kEoB2HornStringsAmigaEnglish), kEoB2HornStringsAmigaEnglish }; + diff --git a/devtools/create_kyradat/resources/eob2_amiga_german.h b/devtools/create_kyradat/resources/eob2_amiga_german.h new file mode 100644 index 0000000000..df609f2e02 --- /dev/null +++ b/devtools/create_kyradat/resources/eob2_amiga_german.h @@ -0,0 +1,1057 @@ +static const char *const kEoB2ChargenStrings1AmigaGerman[9] = { + "Die Party ist\rkomplett. W""\xe4""hle\rSPIEL oder\rdr""\xfc""cke 'P', um\rzu starten.", + " ", + "RK\rTP\rSTF", + "%s\r%d\r%d\r%d\r%d\r%d", + "%d\r%d", + "%d", + "%d/%d", + "%d/%d/%d", + "W""\xe4""hle die Box des\rCharakters, den du\rerschaffen oder\ransehen willst." +}; + +static const StringListProvider kEoB2ChargenStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStrings1AmigaGerman), kEoB2ChargenStrings1AmigaGerman }; + +static const char *const kEoB2ChargenStrings2AmigaGerman[12] = { + "%s", + "%d", + "%s", + "%d", + "%d", + "%d", + "%s", + "%d", + "W""\xc4""HLE RASSE:", + "W""\xc4""HLE KLASSE:", + "W""\xc4""HLE GESINNUNG:", + "Name:" +}; + +static const StringListProvider kEoB2ChargenStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStrings2AmigaGerman), kEoB2ChargenStrings2AmigaGerman }; + +static const char *const kEoB2ChargenStatStringsAmigaGerman[12] = { + "ST""\xc4", + "INT", + "WEI", + "GES", + "KON", + "CHA", + "ST""\xc4""RKE", + "INTELLIGENZ", + "WEISHEIT", + "GESCHICK", + "KONSTITUTION", + "CHARISMA" +}; + +static const StringListProvider kEoB2ChargenStatStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenStatStringsAmigaGerman), kEoB2ChargenStatStringsAmigaGerman }; + +static const char *const kEoB2ChargenRaceSexStringsAmigaGerman[12] = { + "MENSCH, MANN", + "MENSCH, FRAU", + "ELF, MANN", + "ELF, FRAU", + "HALBELF, MANN", + "HALBELF, FRAU", + "ZWERG, MANN", + "ZWERG, FRAU", + "GNOM, MANN", + "GNOM, FRAU", + "HALBLING, MANN", + "HALBLING, FRAU" +}; + +static const StringListProvider kEoB2ChargenRaceSexStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenRaceSexStringsAmigaGerman), kEoB2ChargenRaceSexStringsAmigaGerman }; + +static const char *const kEoB2ChargenClassStringsAmigaGerman[21] = { + "K""\xc4""MPFER", + "WALDL""\xc4""UFER", + "PALADIN", + "MAGIER", + "KLERIKER", + "DIEB", + "K""\xc4""MPFER/KLERIKER", + "K""\xc4""MPFER/DIEB", + "K""\xc4""MPFER/MAGIER", + "K""\xc4""MPFER/MAGIER/DIEB", + "DIEB/MAGIER", + "KLERIKER/DIEB", + "K""\xc4""MPFER/KLER./MAG.", + "WALDL./KLER.", + "KLER./MAGIER", + "K""\xc4""MPFER", + "MAGIER", + "KLERIKER", + "DIEB", + "PALADIN", + "WALDL." +}; + +static const StringListProvider kEoB2ChargenClassStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenClassStringsAmigaGerman), kEoB2ChargenClassStringsAmigaGerman }; + +static const char *const kEoB2ChargenAlignmentStringsAmigaGerman[9] = { + "RECHTSCH. GUT", + "NEUTRAL GUT", + "CHAOTISCH GUT", + "RECHTSCH. NEUTRAL", + "NEUTRAL", + "CHAOTISCH NEUTRAL", + "RECHTSCH. B""\xd6""SE", + "NEUTRAL B""\xd6""SE", + "CHAOTISCH B""\xd6""SE" +}; + +static const StringListProvider kEoB2ChargenAlignmentStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenAlignmentStringsAmigaGerman), kEoB2ChargenAlignmentStringsAmigaGerman }; + +static const char *const kEoB2ChargenEnterGameStringsAmigaGerman[1] = { + " Lade Spiel.\r Bitte warten." +}; + +static const StringListProvider kEoB2ChargenEnterGameStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ChargenEnterGameStringsAmigaGerman), kEoB2ChargenEnterGameStringsAmigaGerman }; + +static const char *const kEoB2PryDoorStringsAmigaGerman[9] = { + "\r", + "Ihr k""\xf6""nnt die T""\xfc""r nicht aufbrechen.\r", + "\x06\x04""Ihr brecht die T""\xfc""r auf.\r", + "\x06\x06""Ihr versucht vergeblich die T""\xfc""r gewaltsam zu\r""\xf6""ffnen.\r", + "Das kann man hier nicht ablegen.\r", + "Das passt hier nicht.\r", + "Niemand kann die T""\xfc""r aufbrechen.\r", + "\r", + "\r" +}; + +static const StringListProvider kEoB2PryDoorStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PryDoorStringsAmigaGerman), kEoB2PryDoorStringsAmigaGerman }; + +static const char *const kEoB2WarningStringsAmigaGerman[4] = { + "Da geht's nicht lang.\r", + "%s kann nichts zu sich nehmen!\r", + "Das Zeug ist vergammelt! das will doch kein Mensch essen!\r", + "Euch bekommt nur richtige Nahrung!\r" +}; + +static const StringListProvider kEoB2WarningStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2WarningStringsAmigaGerman), kEoB2WarningStringsAmigaGerman }; + +static const char *const kEoB2ItemSuffixStringsRingsAmigaGerman[4] = { + "s Schmuckes", + "r Zauberei", + "r Nahrung", + "s Federfalls" +}; + +static const StringListProvider kEoB2ItemSuffixStringsRingsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsRingsAmigaGerman), kEoB2ItemSuffixStringsRingsAmigaGerman }; + +static const char *const kEoB2ItemSuffixStringsPotionsAmigaGerman[8] = { + "r Riesenkraft", + "r Heilung", + "r Extra Heilung", + "s Giftes", + "r Lebenskraft", + "r Geschwindigkeit", + "r Unsichtbarkeit", + "r Entgiftung" +}; + +static const StringListProvider kEoB2ItemSuffixStringsPotionsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsPotionsAmigaGerman), kEoB2ItemSuffixStringsPotionsAmigaGerman }; + +static const char *const kEoB2ItemSuffixStringsWandsAmigaGerman[8] = { + "r L""\xe4""hmung", + "s Gewitters", + "r K""\xe4""lte", + "r Heilung", + "s Feuerballs", + "Sternenfeuer", + "r Magischen Geschosse", + "r gebannten magie" +}; + +static const StringListProvider kEoB2ItemSuffixStringsWandsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemSuffixStringsWandsAmigaGerman), kEoB2ItemSuffixStringsWandsAmigaGerman }; + +static const char *const kEoB2RipItemStringsAmigaGerman[4] = { + "%s verlor: ", + "%s verlor: ", + ".\r", + "%d %s (verflucht)" +}; + +static const StringListProvider kEoB2RipItemStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2RipItemStringsAmigaGerman), kEoB2RipItemStringsAmigaGerman }; + +static const char *const kEoB2CursedStringAmigaGerman[1] = { + "%d %s (verflucht) " +}; + +static const StringListProvider kEoB2CursedStringAmigaGermanProvider = { ARRAYSIZE(kEoB2CursedStringAmigaGerman), kEoB2CursedStringAmigaGerman }; + +static const char *const kEoB2MagicObjectStringsAmigaGerman[5] = { + "Magierrolle", + "Klerikerrolle", + "Ring", + "Trank", + "Stab" +}; + +static const StringListProvider kEoB2MagicObjectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MagicObjectStringsAmigaGerman), kEoB2MagicObjectStringsAmigaGerman }; + +static const char *const kEoB2MagicObjectString5AmigaGerman[1] = { + "Zepter" +}; + +static const StringListProvider kEoB2MagicObjectString5AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicObjectString5AmigaGerman), kEoB2MagicObjectString5AmigaGerman }; + +static const char *const kEoB2PatternSuffixAmigaGerman[1] = { + "%s de%s" +}; + +static const StringListProvider kEoB2PatternSuffixAmigaGermanProvider = { ARRAYSIZE(kEoB2PatternSuffixAmigaGerman), kEoB2PatternSuffixAmigaGerman }; + +static const char *const kEoB2PatternGrFix1AmigaGerman[1] = { + "%s: %s" +}; + +static const StringListProvider kEoB2PatternGrFix1AmigaGermanProvider = { ARRAYSIZE(kEoB2PatternGrFix1AmigaGerman), kEoB2PatternGrFix1AmigaGerman }; + +static const char *const kEoB2PatternGrFix2AmigaGerman[1] = { + "%s %s" +}; + +static const StringListProvider kEoB2PatternGrFix2AmigaGermanProvider = { ARRAYSIZE(kEoB2PatternGrFix2AmigaGerman), kEoB2PatternGrFix2AmigaGerman }; + +static const char *const kEoB2ValidateArmorStringAmigaGerman[1] = { + "%s kann diese r""\xfc""stungsart nicht tragen.\r" +}; + +static const StringListProvider kEoB2ValidateArmorStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateArmorStringAmigaGerman), kEoB2ValidateArmorStringAmigaGerman }; + +static const char *const kEoB2ValidateCursedStringAmigaGerman[1] = { + "%s kann die Waffe nicht loslassen! Sie ist verflucht!\r" +}; + +static const StringListProvider kEoB2ValidateCursedStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateCursedStringAmigaGerman), kEoB2ValidateCursedStringAmigaGerman }; + +static const char *const kEoB2ValidateNoDropStringAmigaGerman[1] = { + "Diesen Gegenstand hier nicht ablegen.\r" +}; + +static const StringListProvider kEoB2ValidateNoDropStringAmigaGermanProvider = { ARRAYSIZE(kEoB2ValidateNoDropStringAmigaGerman), kEoB2ValidateNoDropStringAmigaGerman }; + +static const char *const kEoB2PotionStringsAmigaGerman[2] = { + "vergiftet", + "%s f""\xfc""hlt sich %s!\r" +}; + +static const StringListProvider kEoB2PotionStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PotionStringsAmigaGerman), kEoB2PotionStringsAmigaGerman }; + +static const char *const kEoB2WandStringsAmigaGerman[1] = { + "Der Stab hat offenbar keinen magischen Effekt\r" +}; + +static const StringListProvider kEoB2WandStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2WandStringsAmigaGerman), kEoB2WandStringsAmigaGerman }; + +static const char *const kEoB2ItemMisuseStringsAmigaGerman[3] = { + "%s kann diesen Gegenstand nicht nutzen.\r", + "Dieser Gegenstand wird automatisch beim Tragen benutzt.\r", + "Das kann man so nicht benutzen.\r" +}; + +static const StringListProvider kEoB2ItemMisuseStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2ItemMisuseStringsAmigaGerman), kEoB2ItemMisuseStringsAmigaGerman }; + +static const char *const kEoB2TakenStringsAmigaGerman[1] = { + " aufgenommen.\r" +}; + +static const StringListProvider kEoB2TakenStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2TakenStringsAmigaGerman), kEoB2TakenStringsAmigaGerman }; + +static const char *const kEoB2PotionEffectStringsAmigaGerman[8] = { + "viel st""\xe4""rker", + "besser", + "viel besser", + "etwas krank", + "pappsatt", + "schnell und agil", + "transparent", + "besser" +}; + +static const StringListProvider kEoB2PotionEffectStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2PotionEffectStringsAmigaGerman), kEoB2PotionEffectStringsAmigaGerman }; + +static const char *const kEoB2YesNoStringsAmigaGerman[2] = { + "ja", + "nein" +}; + +static const StringListProvider kEoB2YesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2YesNoStringsAmigaGerman), kEoB2YesNoStringsAmigaGerman }; + +static const char *const kEoB2MoreStringsAmigaGerman[1] = { + "MEHR" +}; + +static const StringListProvider kEoB2MoreStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MoreStringsAmigaGerman), kEoB2MoreStringsAmigaGerman }; + +static const char *const kEoB2NpcMaxStringsAmigaGerman[1] = { + "Maximal sechs Charaktere pro Party. Wen wollt Ihr entlassen." +}; + +static const StringListProvider kEoB2NpcMaxStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2NpcMaxStringsAmigaGerman), kEoB2NpcMaxStringsAmigaGerman }; + +static const char *const kEoB2OkStringsAmigaGerman[1] = { + "OK" +}; + +static const StringListProvider kEoB2OkStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2OkStringsAmigaGerman), kEoB2OkStringsAmigaGerman }; + +static const char *const kEoB2NpcJoinStringsAmigaGerman[1] = { + "%s wird Partymitglied.\r" +}; + +static const StringListProvider kEoB2NpcJoinStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2NpcJoinStringsAmigaGerman), kEoB2NpcJoinStringsAmigaGerman }; + +static const char *const kEoB2CancelStringsAmigaGerman[1] = { + "ABBR." +}; + +static const StringListProvider kEoB2CancelStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2CancelStringsAmigaGerman), kEoB2CancelStringsAmigaGerman }; + +static const char *const kEoB2AbortStringsAmigaGerman[1] = { + "ABBR." +}; + +static const StringListProvider kEoB2AbortStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2AbortStringsAmigaGerman), kEoB2AbortStringsAmigaGerman }; + +static const char *const kEoB2MenuStringsMainAmigaGerman[8] = { + "W""\xe4""hle Option:", + "Rasten", + "Spr""\xfc""che merken", + "Um Spr""\xfc""che beten", + "Rollen notieren", + "Voreinstellungen", + "Spieloptionen", + "Ende" +}; + +static const StringListProvider kEoB2MenuStringsMainAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsMainAmigaGerman), kEoB2MenuStringsMainAmigaGerman }; + +static const char *const kEoB2MenuStringsSaveLoadAmigaGerman[8] = { + "Spiel laden", + "Spiel speichern", + "Charakter entl.", + "Beenden", + "Spieloptionen:", + "\r Gespeichert.", + "Speicherversuch\rfehlgeschlagen!", + "Ladeversuch\rfehlgeschlagen.\rEvtl. Disk-Error!" +}; + +static const StringListProvider kEoB2MenuStringsSaveLoadAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSaveLoadAmigaGerman), kEoB2MenuStringsSaveLoadAmigaGerman }; + +static const char *const kEoB2MenuStringsOnOffAmigaGerman[2] = { + "AN", + "AUS" +}; + +static const StringListProvider kEoB2MenuStringsOnOffAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsOnOffAmigaGerman), kEoB2MenuStringsOnOffAmigaGerman }; + +static const char *const kEoB2MenuStringsSpellsAmigaGerman[17] = { + "\r\r W""\xe4""hlt einen Charak-\r ter aus der Party,\r der Spr""\xfc""che lernen\r soll.", + "\r Der Paladin ist\r eine Stufe zu nied-\r rig zum zaubern.", + "\r\r Der magier hat\r kein Spruchbuch!", + "\r\r\r W""\xe4""hlt einen Charak-\r ter aus der Party,\r der f""\xfc""r Spr""\xfc""che\r beten will.", + "\r Niemand in der\r Party ist in der\r Lage, f""\xfc""r Spr""\xfc""che\r zu beten.", + "\r Niemand in der\r Party ist in der\r Lage, sich Spr""\xfc""che\r zu merken.", + " Jemand der bewu""\xdf""t-\r los oder tot ist\r kann keine Spr""\xfc""che\r merken.", + " Jemand der bewu""\xdf""t-\r los oder tot ist\r kann nicht um\r Spr""\xfc""che beten.", + "1", + "2", + "3", + "4", + "5", + "Neu", + "Verf""\xfc""gbare Zauber:", + "Ja", + "Nein" +}; + +static const StringListProvider kEoB2MenuStringsSpellsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSpellsAmigaGerman), kEoB2MenuStringsSpellsAmigaGerman }; + +static const char *const kEoB2MenuStringsRestAmigaGerman[5] = { + "\rWerden eure Heiler\rdie Party heilen?", + " Jemand ist noch\r verletzt. Weiter-\r rasten?", + "Die Party rastet.", + "\r Alle Spieler\r sind voll\r ausgeruht.", + " Eure Party braucht\r Rast, um Spr""\xfc""che\r zu erhalten." +}; + +static const StringListProvider kEoB2MenuStringsRestAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRestAmigaGerman), kEoB2MenuStringsRestAmigaGerman }; + +static const char *const kEoB2MenuStringsDropAmigaGerman[1] = { + " Weniger als vier\r Charaktere sind\r nicht erlaubt." +}; + +static const StringListProvider kEoB2MenuStringsDropAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDropAmigaGerman), kEoB2MenuStringsDropAmigaGerman }; + +static const char *const kEoB2MenuStringsExitAmigaGerman[1] = { + " Ganz bestimmt\r das Spiel\r abbrechen?" +}; + +static const StringListProvider kEoB2MenuStringsExitAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsExitAmigaGerman), kEoB2MenuStringsExitAmigaGerman }; + +static const char *const kEoB2MenuStringsStarveAmigaGerman[1] = { + " Eure Party hungert.\r Wollt Ihr weiter\r rasten?" +}; + +static const StringListProvider kEoB2MenuStringsStarveAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsStarveAmigaGerman), kEoB2MenuStringsStarveAmigaGerman }; + +static const char *const kEoB2MenuStringsScribeAmigaGerman[5] = { + "W""\xe4""hlt die Rolle(n)\rzum notieren.", + "\r\r\r W""\xe4""hlt den Magier\r aus der Party,\r der Spr""\xfc""che\r notieren m""\xf6""chte.", + " Ihr habt keine\r ""\xfc""bertragbaren\r Schriftrollen.", + " Ihr habt keine\r Rollen, die dieser\r Magier braucht.", + "\r Ihr habt keinen\r Magier, der Rollen\r ""\xfc""bertragen kann." +}; + +static const StringListProvider kEoB2MenuStringsScribeAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsScribeAmigaGerman), kEoB2MenuStringsScribeAmigaGerman }; + +static const char *const kEoB2MenuStringsDrop2AmigaGerman[3] = { + " W""\xe4""hlt den Charak-\r ter, den Ihr\r entfernen m""\xf6""chtet.", + " Spielst""\xe4""nde m""\xfc""ssen\r einen Namen haben!", + " Ganz sicher den\r alten Spielstand\r ""\xfc""berschreiben?" +}; + +static const StringListProvider kEoB2MenuStringsDrop2AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDrop2AmigaGerman), kEoB2MenuStringsDrop2AmigaGerman }; + +static const char *const kEoB2MenuStringsHeadAmigaGerman[3] = { + "Rast:", + "Voreinstellung:", + "Spieloptionen:" +}; + +static const StringListProvider kEoB2MenuStringsHeadAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsHeadAmigaGerman), kEoB2MenuStringsHeadAmigaGerman }; + +static const char *const kEoB2MenuStringsPoisonAmigaGerman[1] = { + "Vergiftete Spieler\rk""\xf6""nnten sterben!\rTrotzdem rasten?" +}; + +static const StringListProvider kEoB2MenuStringsPoisonAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsPoisonAmigaGerman), kEoB2MenuStringsPoisonAmigaGerman }; + +static const char *const kEoB2MenuStringsMgcAmigaGerman[2] = { + "%-18s %1d", + "%d von %d verf""\xfc""gbar. " +}; + +static const StringListProvider kEoB2MenuStringsMgcAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsMgcAmigaGerman), kEoB2MenuStringsMgcAmigaGerman }; + +static const char *const kEoB2MenuStringsPrefsAmigaGerman[4] = { + "Musik ist %-3s", + "FX sind %-3s", + "Balkengrafik: %-3s", + "" +}; + +static const StringListProvider kEoB2MenuStringsPrefsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsPrefsAmigaGerman), kEoB2MenuStringsPrefsAmigaGerman }; + +static const char *const kEoB2MenuStringsRest2AmigaGerman[5] = { + "%s erhielt %s.\r", + "%s merkt sich %s.\r", + "%s heilt %s.\r", + "Raststunden: %-4d ", + "\r%s\r" +}; + +static const StringListProvider kEoB2MenuStringsRest2AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest2AmigaGerman), kEoB2MenuStringsRest2AmigaGerman }; + +static const char *const kEoB2MenuStringsRest3AmigaGerman[1] = { + "\x06\x06""Es scheint, als sei es nicht sicher hier zu rasten." +}; + +static const StringListProvider kEoB2MenuStringsRest3AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest3AmigaGerman), kEoB2MenuStringsRest3AmigaGerman }; + +static const char *const kEoB2MenuStringsRest4AmigaGerman[1] = { + "\x06\x06""In der N""\xe4""he von Monstern k""\xf6""nnt Ihr nicht rasten." +}; + +static const StringListProvider kEoB2MenuStringsRest4AmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsRest4AmigaGerman), kEoB2MenuStringsRest4AmigaGerman }; + +static const char *const kEoB2MenuStringsDefeatAmigaGerman[1] = { + "\rDie gesamte Party\rwurde besiegt!\rEinen alten Spiel-\rstand laden?" +}; + +static const StringListProvider kEoB2MenuStringsDefeatAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsDefeatAmigaGerman), kEoB2MenuStringsDefeatAmigaGerman }; + +static const char *const kEoB2MenuStringsTransferAmigaGerman[5] = { + "Mindestens vier\rSpieler vor Spiel-\rbeginn transferieren!", + "Nur vier Spieler\rtransferieren!", + "Bestimmte Habselig-\rkeiten werden\rgel""\xf6""scht.", + " \r Kein Magier in\r der Party.", + " \r Kein Kleriker\r oder Paladin\r in der Party." +}; + +static const StringListProvider kEoB2MenuStringsTransferAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsTransferAmigaGerman), kEoB2MenuStringsTransferAmigaGerman }; + +static const char *const kEoB2MenuStringsSpecAmigaGerman[2] = { + "Beim Aufwachen bem-\rerkt Ihr die Ab-\rwesenheit von Insal!", + "Eine kurzer Blick\rzeigt, das Ausr""\xfc""st-\rung gestohlen wurde!" +}; + +static const StringListProvider kEoB2MenuStringsSpecAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuStringsSpecAmigaGerman), kEoB2MenuStringsSpecAmigaGerman }; + +static const char *const kEoB2MenuYesNoStringsAmigaGerman[2] = { + "Ja", + "Nein" +}; + +static const StringListProvider kEoB2MenuYesNoStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsAmigaGerman), kEoB2MenuYesNoStringsAmigaGerman }; + +static const char *const kEoB2CharGuiStringsHpAmigaGerman[2] = { + "TP", + "%3d / %-3d" +}; + +static const StringListProvider kEoB2CharGuiStringsHpAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpAmigaGerman), kEoB2CharGuiStringsHpAmigaGerman }; + +static const char *const kEoB2CharGuiStringsWp2AmigaGerman[3] = { + "WUSCH", + "HACK", + "FATZ" +}; + +static const StringListProvider kEoB2CharGuiStringsWp2AmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2AmigaGerman), kEoB2CharGuiStringsWp2AmigaGerman }; + +static const char *const kEoB2CharGuiStringsWrAmigaGerman[4] = { + " ZU ", + "WEIT", + "OHNE", + "MUN" +}; + +static const StringListProvider kEoB2CharGuiStringsWrAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrAmigaGerman), kEoB2CharGuiStringsWrAmigaGerman }; + +static const char *const kEoB2CharGuiStringsSt2AmigaGerman[7] = { + "TAUSCHE", + "TOT", + "BEWUSSTLOS", + "GIFT (LANGSAM)", + "VERGIFTET", + "BET""\xc4""UBT", + "AUS STEIN" +}; + +static const StringListProvider kEoB2CharGuiStringsSt2AmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2AmigaGerman), kEoB2CharGuiStringsSt2AmigaGerman }; + +static const char *const kEoB2CharGuiStringsInAmigaGerman[4] = { + "CHARAKTER INFO", + "R""\xdc""STUNGSKL.", + "ERF", + "STF" +}; + +static const StringListProvider kEoB2CharGuiStringsInAmigaGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsInAmigaGerman), kEoB2CharGuiStringsInAmigaGerman }; + +static const char *const kEoB2CharStatusStrings7AmigaGerman[1] = { + "%s hat nicht l""\xe4""nger riesenkr""\xe4""fte.\r" +}; + +static const StringListProvider kEoB2CharStatusStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings7AmigaGerman), kEoB2CharStatusStrings7AmigaGerman }; + +static const char *const kEoB2CharStatusStrings82AmigaGerman[1] = { + "\x06\x06""%s f""\xfc""hlt Gift in sich!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings82AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings82AmigaGerman), kEoB2CharStatusStrings82AmigaGerman }; + +static const char *const kEoB2CharStatusStrings9AmigaGerman[1] = { + "\x06\x04""%s ist nicht l""\xe4""nger bet""\xe4""ubt!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings9AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings9AmigaGerman), kEoB2CharStatusStrings9AmigaGerman }; + +static const char *const kEoB2CharStatusStrings12AmigaGerman[1] = { + "%s wird langsamer.\r" +}; + +static const StringListProvider kEoB2CharStatusStrings12AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings12AmigaGerman), kEoB2CharStatusStrings12AmigaGerman }; + +static const char *const kEoB2CharStatusStrings132AmigaGerman[1] = { + "\x06\x06""%s %s!\r" +}; + +static const StringListProvider kEoB2CharStatusStrings132AmigaGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings132AmigaGerman), kEoB2CharStatusStrings132AmigaGerman }; + +static const char *const kEoB2LevelGainStringsAmigaGerman[1] = { + "\x06\x01""%s steigt eine Stufe auf.""\x06\x0f""\r" +}; + +static const StringListProvider kEoB2LevelGainStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2LevelGainStringsAmigaGerman), kEoB2LevelGainStringsAmigaGerman }; + +static const char *const kEoB2BookNumbersAmigaGerman[5] = { + "Erste", + "Zweite", + "Dritte", + "Vierte", + "F""\xfc""nfte" +}; + +static const StringListProvider kEoB2BookNumbersAmigaGermanProvider = { ARRAYSIZE(kEoB2BookNumbersAmigaGerman), kEoB2BookNumbersAmigaGerman }; + +static const char *const kEoB2MageSpellsListAmigaGerman[33] = { + "", + "Panzer", + "Brennende H""\xe4""nde", + "Magie entdecken", + "Magisch. Geschoss", + "Schild", + "Schockgriff", + "Verschwimmen", + "Unsichtb. entd.", + "Identifiziern+", + "Unsichtbarkeit", + "M's S""\xe4""urepfeil", + "Magie bannen", + "Feuerball", + "Hast", + "Person halten", + "Unsichtb. 3m", + "Blitzstrahl", + "Vampirgriff", + "Furcht", + "Eissturm", + "Unsichtbarkeit+", + "Fluch brechen", + "K""\xe4""ltekegel", + "Monster halten", + "Kraftfeld", + "Aufl""\xf6""sung", + "Fleisch zu Stein", + "Stein zu Fleisch", + "Wahrer Blick", + "Todesfinger", + "Wort:Bet""\xe4""ubung", + "Bigbys Faust" +}; + +static const StringListProvider kEoB2MageSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB2MageSpellsListAmigaGerman), kEoB2MageSpellsListAmigaGerman }; + +static const char *const kEoB2ClericSpellsListAmigaGerman[30] = { + "", + "Segen", + "Leicht verwunden", + "L. Wunden heilen", + "Magie entdecken", + "Schutz v. B""\xf6""sem", + "St""\xe4""rkung", + "Flammenklinge", + "Person halten", + "Gift verlangs.", + "Nahr. erschaffen", + "Magie bannen", + "Schutzgewand", + "Gebet", + "L""\xe4""hmung aufheben", + "Schwer verwunden", + "S. Wunden heilen", + "Gift neutr.", + "Schutz-B""\xf6""ses 3m", + "Kritisch verw.", + "K. Wunden heilen", + "Flammenschlag", + "Tote erwecken", + "Schneller Tod", + "Wahrer Blick", + "Leid", + "Heilung", + "Auferstehung", + "Handauflegen", + "Untote abwenden" +}; + +static const StringListProvider kEoB2ClericSpellsListAmigaGermanProvider = { ARRAYSIZE(kEoB2ClericSpellsListAmigaGerman), kEoB2ClericSpellsListAmigaGerman }; + +static const char *const kEoB2SpellNamesAmigaGerman[68] = { + "panzer", + "brennende H""\xe4""nde", + "magie entdecken", + "magisches Geschoss", + "schild", + "schockgriff", + "verschwimmen", + "unsichtbares entdecken", + "verbessertes identifizieren", + "unsichtbarkeit", + "melfs S""\xe4""urepfeil", + "magie bannen", + "feuerball", + "hast", + "person halten", + "unsichtbarkeit 3m", + "blitzschlag", + "vampirgriff", + "furcht", + "eissturm", + "verbesserte Unsichtbarkeit", + "fluch brechen", + "k""\xe4""ltekegel", + "monster halten", + "kraftfeld", + "aufl""\xf6""sung", + "fleisch zu stein", + "stein zu fleisch", + "wahrer Blick", + "Todesfinger", + "wort der Macht: Bet""\xe4""ubung", + "bigbys geballte Faust", + "segen", + "leichte Wunden verursachen", + "leichte Wunden heilen", + "magie entdecken", + "schutz vor B""\xf6""sem", + "st""\xe4""rkung", + "flammenklinge", + "person halten", + "gift verlangsamen", + "nahrung erschaffen", + "magie bannen", + "schutzgewand", + "gebet", + "l""\xe4""hmung aufheben", + "schwere wunden verursachen", + "schwere wunden heilen", + "gift neutralisieren", + "schutz vor b""\xf6""sem 3m", + "kritische wunden verursachen", + "kritische wunden heilen", + "flammenschlag", + "tote erwecken", + "schneller tot", + "wahrer blick", + "leid", + "heilung", + "auferstehung", + "hand auflegen", + "untote abwenden", + "", + "mystische abwehr", + "", + "", + "", + "", + "" +}; + +static const StringListProvider kEoB2SpellNamesAmigaGermanProvider = { ARRAYSIZE(kEoB2SpellNamesAmigaGerman), kEoB2SpellNamesAmigaGerman }; + +static const char *const kEoB2MagicStrings1AmigaGerman[6] = { + "ABBRECHEN", + "ABBRECHEN", + "Man braucht eine freie Hand f""\xfc""r diesen Zauber.\r", + "Von diesen Zaubern kann man nur einen aktivieren.\r", + "%s zaubert %s.\r", + "\rok\r" +}; + +static const StringListProvider kEoB2MagicStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings1AmigaGerman), kEoB2MagicStrings1AmigaGerman }; + +static const char *const kEoB2MagicStrings2AmigaGerman[5] = { + "Der Zauber versagt!\r", + "%s wurde aufgel""\xf6""st!\r", + "\x06\x06""Die Party wurde von einem Todeszauber getroffen!\r", + "\x06\x06""%s wurde von einem schwer verwunden Zauber getroffen.\r", + "AUS STEIN" +}; + +static const StringListProvider kEoB2MagicStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings2AmigaGerman), kEoB2MagicStrings2AmigaGerman }; + +static const char *const kEoB2MagicStrings3AmigaGerman[5] = { + "Wen verzaubern? ", + "\rSpruch abgebrochen.\r", + "%s's %s Zauber l""\xe4""sst nach.\r", + "%s verfehlt das Monster.\r", + "%s muss vorn stehen um zu treffen!\r" +}; + +static const StringListProvider kEoB2MagicStrings3AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings3AmigaGerman), kEoB2MagicStrings3AmigaGerman }; + +static const char *const kEoB2MagicStrings4AmigaGerman[1] = { + "keine Wirkung.\r" +}; + +static const StringListProvider kEoB2MagicStrings4AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings4AmigaGerman), kEoB2MagicStrings4AmigaGerman }; + +static const char *const kEoB2MagicStrings6AmigaGerman[1] = { + "%s hat schon eine R""\xfc""stungklasse ""\xfc""ber 6." +}; + +static const StringListProvider kEoB2MagicStrings6AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings6AmigaGerman), kEoB2MagicStrings6AmigaGerman }; + +static const char *const kEoB2MagicStrings7AmigaGerman[2] = { + "%s steht schon unter dem effekt eines %s spruches.\r", + "die party steht schon unter dem effekt eines %s spruches.\r" +}; + +static const StringListProvider kEoB2MagicStrings7AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings7AmigaGerman), kEoB2MagicStrings7AmigaGerman }; + +static const char *const kEoB2MagicStrings8AmigaGerman[6] = { + "Der Zauber versagt!\r", + "ist gel""\xe4""hmt", + "Der Zauber versagt!\r", + "Der Zauber versagt!\r", + "Kein Monster in Reichweite!\r", + "%s steht bereits unter einem St""\xe4""rkungszauber.\r" +}; + +static const StringListProvider kEoB2MagicStrings8AmigaGermanProvider = { ARRAYSIZE(kEoB2MagicStrings8AmigaGerman), kEoB2MagicStrings8AmigaGerman }; + +static const byte kEoB2ManDefAmigaGerman[200] = { + 0x09, 0x01, 0x03, 0x00, 0x09, 0x01, 0x06, 0x00, + 0x09, 0x02, 0x07, 0x00, 0x14, 0x01, 0x01, 0x00, + 0x14, 0x02, 0x01, 0x00, 0x14, 0x04, 0x02, 0x00, + 0x1A, 0x01, 0x03, 0x00, 0x1A, 0x02, 0x02, 0x00, + 0x1A, 0x07, 0x04, 0x00, 0x15, 0x01, 0x02, 0x00, + 0x15, 0x01, 0x05, 0x00, 0x15, 0x02, 0x01, 0x00, + 0x15, 0x03, 0x04, 0x00, 0x15, 0x04, 0x01, 0x00, + 0x15, 0x05, 0x05, 0x00, 0x23, 0x01, 0x02, 0x00, + 0x23, 0x01, 0x05, 0x00, 0x23, 0x02, 0x03, 0x00, + 0x23, 0x03, 0x01, 0x00, 0x23, 0x06, 0x03, 0x00, + 0x23, 0x0A, 0x06, 0x00, 0x26, 0x01, 0x01, 0x00, + 0x26, 0x01, 0x03, 0x00, 0x26, 0x01, 0x05, 0x00, + 0x26, 0x02, 0x04, 0x00, 0x26, 0x03, 0x02, 0x00, + 0x26, 0x04, 0x01, 0x00, 0x17, 0x01, 0x02, 0x00, + 0x17, 0x01, 0x04, 0x00, 0x17, 0x01, 0x05, 0x00, + 0x17, 0x02, 0x02, 0x00, 0x17, 0x03, 0x03, 0x00, + 0x17, 0x07, 0x01, 0x00, 0x12, 0x01, 0x02, 0x00, + 0x12, 0x01, 0x07, 0x00, 0x12, 0x03, 0x01, 0x00, + 0x12, 0x04, 0x02, 0x00, 0x12, 0x05, 0x02, 0x00, + 0x12, 0x06, 0x05, 0x00, 0x12, 0x07, 0x03, 0x00, + 0x12, 0x08, 0x01, 0x00, 0x1F, 0x01, 0x05, 0x00, + 0x1F, 0x02, 0x06, 0x00, 0x1F, 0x03, 0x02, 0x00, + 0x1F, 0x03, 0x01, 0x00, 0x1F, 0x04, 0x01, 0x00, + 0x1F, 0x04, 0x03, 0x00, 0x1C, 0x01, 0x01, 0x00, + 0x1C, 0x01, 0x03, 0x00, 0x1C, 0x02, 0x01, 0x00 +}; + +static const ByteProvider kEoB2ManDefAmigaGermanProvider = { ARRAYSIZE(kEoB2ManDefAmigaGerman), kEoB2ManDefAmigaGerman }; + +static const char *const kEoB2ManWordAmigaGerman[51] = { + "teil", + "geht", + "maus", + "um", + "einer", + "kann", + "das", + "schalter", + "der", + "einem", + "gnome", + "magieresistent", + "intelligenz", + "weisheit", + "dieb", + "weiter", + "setzen", + "ein", + "magier", + "diese", + "sind", + "eines", + "wodurch", + "schwerer", + "gute", + "bonus", + "bogen", + "und", + "dadurch", + "oft", + "raubt", + "keine", + "schrift", + "waffen", + "unterteilt", + "vordersten", + "nur", + "sie", + "klassen", + "zeigt", + "gegen", + "mausknopf", + "nahrungsbalken", + "charakters", + "des", + "um", + "gegenstand", + "durch", + "spruch", + "unsichtbar", + "" +}; + +static const StringListProvider kEoB2ManWordAmigaGermanProvider = { ARRAYSIZE(kEoB2ManWordAmigaGerman), kEoB2ManWordAmigaGerman }; + +static const char *const kEoB2ManPromptAmigaGerman[1] = { + "\r\r\r\rAuf der Seite mit diesem Symbol...\r\rFinde Zeile %d\rGib Wort %d ein\r" +}; + +static const StringListProvider kEoB2ManPromptAmigaGermanProvider = { ARRAYSIZE(kEoB2ManPromptAmigaGerman), kEoB2ManPromptAmigaGerman }; + +static const char *const kEoB2MainMenuStringsAmigaGerman[5] = { + "ALTES SPIEL LADEN\r", + "NEUE PARTY ERSTELLEN\r", + "EOB I PARTY TRANSFER\r", + "INTRO ANSEHEN\r", + "FORMATIEREN\r" +}; + +static const StringListProvider kEoB2MainMenuStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MainMenuStringsAmigaGerman), kEoB2MainMenuStringsAmigaGerman }; + +static const char *const kEoB2TransferStrings1AmigaGerman[2] = { + "Stufe: %d", + " / %d" +}; + +static const StringListProvider kEoB2TransferStrings1AmigaGermanProvider = { ARRAYSIZE(kEoB2TransferStrings1AmigaGerman), kEoB2TransferStrings1AmigaGerman }; + +static const char *const kEoB2TransferStrings2AmigaGerman[2] = { + "Dieses Abenteuer ist nur f""\xfc""r vier Charaktere.", + "OK w""\xe4""hlen, wenn Partyerstellung beendet." +}; + +static const StringListProvider kEoB2TransferStrings2AmigaGermanProvider = { ARRAYSIZE(kEoB2TransferStrings2AmigaGerman), kEoB2TransferStrings2AmigaGerman }; + +static const char *const kEoB2TransferLabelsAmigaGerman[2] = { + "ABBR.", + "OK" +}; + +static const StringListProvider kEoB2TransferLabelsAmigaGermanProvider = { ARRAYSIZE(kEoB2TransferLabelsAmigaGerman), kEoB2TransferLabelsAmigaGerman }; + +static const char *const kEoB2IntroStringsAmigaGerman[20] = { + "Ihr hattet euch gerade gem""\xfc""tlich am \rKamin niedergelassen.", + "Da wurde euch eine Botschaft\rzugespielt.", + "Sie war von eurem Freund Khelben \rBlackstaff, dem Erzmagier der Stadt.", + "Die Mitteilung war dringend.", + "Was konnte Khelben nur wollen?", + "Willkommen, bitte tretet ein.", + "Khelben erwartet euch im Studierzimmer.", + "Danke f""\xfc""r euer schnelles Kommen.", + "Meine Freunde, ich bin besorgt.", + "Uralte, b""\xf6""se M""\xe4""chte rumoren im \rTempel Darkmoon.", + "Ich f""\xfc""rchte um die Sicherheit \runserer Stadt.", + "Ich brauche eure Hilfe...", + "Vor drei N""\xe4""chten \rentsandte ich einen Kundschafter.", + "Sie kam niemals zur""\xfc""ck.", + "Ich f""\xfc""rchte um ihr Leben.", + "Nehmt diese M""\xfc""nze.", + "Mit ihrer Hilfe werde \rich euch erreichen.", + "Ihr m""\xfc\xdf""t schnell handeln.", + "Ich teleportiere euch nun in \rdie N""\xe4""he von Darkmoon.", + "M""\xf6""ge das Gl""\xfc""ck auf eurer Seite\rsein, Freunde." +}; + +static const StringListProvider kEoB2IntroStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2IntroStringsAmigaGerman), kEoB2IntroStringsAmigaGerman }; + +static const char *const kEoB2IntroCPSFilesAmigaGerman[16] = { + "STREET1.CPS", + "STREET2.CPS", + "DOORWAY1.CPS", + "DOORWAY2.CPS", + "WESTWOOD1.CPS", + "WINDING.CPS", + "KHELBAN2.CPS", + "KHELBAN1.CPS", + "KHELBAN3.CPS", + "KHELBAN4.CPS", + "COIN.CPS", + "KHELBAN5.CPS", + "KHELBAN6.CPS", + "WESTWOOD1.CPS", + "WESTWOOD3.CPS", + "WESTWOOD3.CPS" +}; + +static const StringListProvider kEoB2IntroCPSFilesAmigaGermanProvider = { ARRAYSIZE(kEoB2IntroCPSFilesAmigaGerman), kEoB2IntroCPSFilesAmigaGerman }; + +static const char *const kEoB2FinaleStringsAmigaGerman[20] = { + "Nun endlich wurde Dran besiegt.", + "Pl""\xf6""tzlich erscheint euer Freund \rKhelben.", + "Seid gegr""\xfc\xdf""t, meine siegreichen \rFreunde.", + "Ihr seid die Bezwinger von Dran!", + "Ich hatte keine Ahnung, da""\xdf"" \rDran ein Drache war.", + "Er mu""\xdf"" ""\xfc""ber 300 Jahre alt \rgewesen sein!", + "Seine Macht ist vergangen.", + "Noch immer ist Darkmoon\reine Quelle des B""\xf6""sen.", + "Und ein Teil seines Gefolges\rexistiert noch.", + "Daher m""\xfc""ssen wir diesen Platz\rnun verlassen.", + "So da""\xdf"" meine Kr""\xe4""fte ihn ein\r f""\xfc""r allemal\rzerst""\xf6""ren k""\xf6""nnen.", + "Folgt mir.", + "M""\xe4""chtige Magier sind bereit\rf""\xfc""r den letzten Schlag\rgegen Darkmoon.", + "Das B""\xf6""se im Tempel ist sehr stark.", + "Es darf keinesfalls weiter\rbestehen!", + "Der Tempel h""\xf6""rt auf zu\rexistieren.", + "Unsere Arbeit ist nun getan,\rmeine Freunde.", + "Seid bedankt.", + "Ihr habt Euch meinen tiefen\r Respekt erk""\xe4""mpft.", + "Wir werden Euch nie vergessen." +}; + +static const StringListProvider kEoB2FinaleStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2FinaleStringsAmigaGerman), kEoB2FinaleStringsAmigaGerman }; + +static const char *const kEoB2FinaleCPSFilesAmigaGerman[13] = { + "DRAGON1.CPS", + "DRAGON2.CPS", + "HURRY1.CPS", + "HURRY2.CPS", + "DESTROY0.CPS", + "DESTROY1.CPS", + "DESTROY2.CPS", + "MAGIC.CPS", + "DESTROY3.CPS", + "CREDITS2.CPS", + "CREDITS3.CPS", + "HEROES.CPS", + "THANKS.CPS" +}; + +static const StringListProvider kEoB2FinaleCPSFilesAmigaGermanProvider = { ARRAYSIZE(kEoB2FinaleCPSFilesAmigaGerman), kEoB2FinaleCPSFilesAmigaGerman }; + +static const char *const kEoB2MonsterDistAttStringsAmigaGerman[5] = { + "Die Party wurde von einem psychischen Angriff getroffen!\r", + "paralysiert", + "vergiftet", + "bet""\xe4""ubt", + "versteinert" +}; + +static const StringListProvider kEoB2MonsterDistAttStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MonsterDistAttStringsAmigaGerman), kEoB2MonsterDistAttStringsAmigaGerman }; + +static const char *const kEoB2Npc1StringsAmigaGerman[2] = { + "reden", + "weiter" +}; + +static const StringListProvider kEoB2Npc1StringsAmigaGermanProvider = { ARRAYSIZE(kEoB2Npc1StringsAmigaGerman), kEoB2Npc1StringsAmigaGerman }; + +static const char *const kEoB2Npc2StringsAmigaGerman[2] = { + "freilassen", + "weiterziehen" +}; + +static const StringListProvider kEoB2Npc2StringsAmigaGermanProvider = { ARRAYSIZE(kEoB2Npc2StringsAmigaGerman), kEoB2Npc2StringsAmigaGerman }; + +static const char *const kEoB2MonsterDustStringsAmigaGerman[1] = { + "Das Monster vergeht zu staub!\r" +}; + +static const StringListProvider kEoB2MonsterDustStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2MonsterDustStringsAmigaGerman), kEoB2MonsterDustStringsAmigaGerman }; + +static const char *const kEoB2KheldranStringsAmigaGerman[1] = { + " Diese Narren!" +}; + +static const StringListProvider kEoB2KheldranStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2KheldranStringsAmigaGerman), kEoB2KheldranStringsAmigaGerman }; + +static const char *const kEoB2HornStringsAmigaGerman[4] = { + "Ein br""\xfc""llendes Ger""\xe4""usch kommt aus dem Horn.\r", + "Ein hohler Ton dringt aus dem Horn.\r", + "Ein melodischer Ton klingt aus dem Horn.\r", + "Ein unheimliches Ger""\xe4""usch entweicht dem Horn.\r" +}; + +static const StringListProvider kEoB2HornStringsAmigaGermanProvider = { ARRAYSIZE(kEoB2HornStringsAmigaGerman), kEoB2HornStringsAmigaGerman }; + diff --git a/devtools/create_kyradat/resources/eob2_dos_english.h b/devtools/create_kyradat/resources/eob2_dos_english.h index 3fdf26d664..fb82783c93 100644 --- a/devtools/create_kyradat/resources/eob2_dos_english.h +++ b/devtools/create_kyradat/resources/eob2_dos_english.h @@ -556,7 +556,7 @@ static const char *const kEoB2CharStatusStrings82DOSEnglish[1] = { static const StringListProvider kEoB2CharStatusStrings82DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings82DOSEnglish), kEoB2CharStatusStrings82DOSEnglish }; static const char *const kEoB2CharStatusStrings9DOSEnglish[1] = { - "%s is no longer paralyzed!\r" + "\x06\x04""%s is no longer paralyzed!\r" }; static const StringListProvider kEoB2CharStatusStrings9DOSEnglishProvider = { ARRAYSIZE(kEoB2CharStatusStrings9DOSEnglish), kEoB2CharStatusStrings9DOSEnglish }; diff --git a/devtools/create_kyradat/resources/eob2_dos_german.h b/devtools/create_kyradat/resources/eob2_dos_german.h index 6445d132e8..ef9199dc7c 100644 --- a/devtools/create_kyradat/resources/eob2_dos_german.h +++ b/devtools/create_kyradat/resources/eob2_dos_german.h @@ -516,7 +516,7 @@ static const char *const kEoB2CharGuiStringsWp2DOSGerman[3] = { static const StringListProvider kEoB2CharGuiStringsWp2DOSGermanProvider = { ARRAYSIZE(kEoB2CharGuiStringsWp2DOSGerman), kEoB2CharGuiStringsWp2DOSGerman }; static const char *const kEoB2CharGuiStringsWrDOSGerman[4] = { - "ZU", + " ZU ", "WEIT", "OHNE", "MUN" @@ -558,7 +558,7 @@ static const char *const kEoB2CharStatusStrings82DOSGerman[1] = { static const StringListProvider kEoB2CharStatusStrings82DOSGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings82DOSGerman), kEoB2CharStatusStrings82DOSGerman }; static const char *const kEoB2CharStatusStrings9DOSGerman[1] = { - "%s ist nicht l""\x84""nger bet""\x84""ubt!\r" + "\x06\x04""%s ist nicht l""\x84""nger bet""\x84""ubt!\r" }; static const StringListProvider kEoB2CharStatusStrings9DOSGermanProvider = { ARRAYSIZE(kEoB2CharStatusStrings9DOSGerman), kEoB2CharStatusStrings9DOSGerman }; diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat index 20114e58ac..4c651221c0 100644 Binary files a/dists/engine-data/kyra.dat and b/dists/engine-data/kyra.dat differ diff --git a/engines/kyra/resource/resource.h b/engines/kyra/resource/resource.h index 02415cf4ff..cbd442fcc1 100644 --- a/engines/kyra/resource/resource.h +++ b/engines/kyra/resource/resource.h @@ -492,9 +492,9 @@ enum KyraResources { kEoBBaseSoundFilesIntro, kEoBBaseSoundFilesIngame, kEoBBaseSoundFilesFinale, + kEoBBaseLevelSounds1, + kEoBBaseLevelSounds2, - kEoB1BaseLevelSounds1, - kEoB1BaseLevelSounds2, kEoB1MainMenuStrings, kEoB1BonusStrings, @@ -632,6 +632,9 @@ enum KyraResources { kEoB2IntroShapes01, kEoB2IntroShapes04, kEoB2IntroShapes07, + kEoB2IntroShapes13, + kEoB2IntroShapes14, + kEoB2IntroShapes15, kEoB2FinaleStrings, kEoB2CreditsData, @@ -930,6 +933,12 @@ enum KyraResources { kEoB2PcmSoundEffectsIntro, kEoB2PcmSoundEffectsFinale, + kEoB2SoundMapExtra, + kEoB2SoundIndex1, + kEoB2SoundIndex2, + kEoB2SoundFilesIngame2, + kEoB2MonsterSoundPatchData, + kLoLIngamePakFiles, kLoLCharacterDefs, kLoLIngameSfxFiles, diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp index e569cf1479..fcf3158f5e 100644 --- a/engines/kyra/resource/staticres.cpp +++ b/engines/kyra/resource/staticres.cpp @@ -39,7 +39,7 @@ namespace Kyra { -#define RESFILE_VERSION 93 +#define RESFILE_VERSION 94 namespace { bool checkKyraDat(Common::SeekableReadStream *file) { diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp index 7ff439d202..a75c464573 100644 --- a/engines/kyra/resource/staticres_eob.cpp +++ b/engines/kyra/resource/staticres_eob.cpp @@ -24,6 +24,8 @@ #include "kyra/resource/resource.h" #include "kyra/sound/sound_intern.h" +#include "common/memstream.h" + namespace Kyra { @@ -1390,18 +1392,19 @@ void DarkMoonEngine::initSpells() { EoBCoreEngine::initSpells(); int temp; - const uint8 *src = _staticres->loadRawData(kEoBBaseSpellProperties, temp); + const uint8 *data = _staticres->loadRawData(kEoBBaseSpellProperties, temp); + Common::MemoryReadStreamEndian *src = new Common::MemoryReadStreamEndian(data, temp, _flags.platform == Common::kPlatformAmiga); for (int i = 0; i < _numSpells; i++) { EoBSpell *s = &_spells[i]; - src += 8; - s->flags = READ_LE_UINT16(src); - src += 10; - s->sound = *src++; - s->effectFlags = READ_LE_UINT32(src); - src += 4; - s->damageFlags = READ_LE_UINT16(src); - src += 2; + src->skip(8); + s->flags = src->readUint16(); + src->skip(8); + s->sound = src->readByte(); + if (_flags.platform == Common::kPlatformAmiga) + src->skip(1); + s->effectFlags = src->readUint32(); + s->damageFlags = src->readUint16(); } } diff --git a/engines/kyra/sequence/sequences_darkmoon.cpp b/engines/kyra/sequence/sequences_darkmoon.cpp index 56bcbba633..c1fd9e6f69 100644 --- a/engines/kyra/sequence/sequences_darkmoon.cpp +++ b/engines/kyra/sequence/sequences_darkmoon.cpp @@ -833,11 +833,11 @@ void DarkMoonEngine::seq_playFinale() { snd_playSong(_flags.platform == Common::kPlatformFMTowns ? 16 : 1); int temp = 0; - const uint8 *creditsData = (_flags.platform == Common::kPlatformFMTowns) ? _res->fileData("CREDITS.TXT", 0) : _staticres->loadRawData(kEoB2CreditsData, temp); + const uint8 *creditsData = (_flags.platform != Common::kPlatformDOS) ? _res->fileData("CREDITS.TXT", 0) : _staticres->loadRawData(kEoB2CreditsData, temp); seq_playCredits(&sq, creditsData, 18, 2, 6, 2); - if (_flags.platform == Common::kPlatformFMTowns) + if (_flags.platform != Common::kPlatformDOS) delete[] creditsData; sq.delay(90); diff --git a/engines/kyra/sound/sound_amiga_eob.cpp b/engines/kyra/sound/sound_amiga_eob.cpp index d2cf976ec9..eccf380a69 100644 --- a/engines/kyra/sound/sound_amiga_eob.cpp +++ b/engines/kyra/sound/sound_amiga_eob.cpp @@ -52,8 +52,8 @@ bool SoundAmiga_EoB::init() { return false; int temp = 0; - _levelSoundList1 = _vm->staticres()->loadStrings(kEoB1BaseLevelSounds1, temp); - _levelSoundList2 = _vm->staticres()->loadStrings(kEoB1BaseLevelSounds2, temp); + _levelSoundList1 = _vm->staticres()->loadStrings(kEoBBaseLevelSounds1, temp); + _levelSoundList2 = _vm->staticres()->loadStrings(kEoBBaseLevelSounds2, temp); _ready = true; return true; -- cgit v1.2.3