From 6cf1de87acdb878e3a3e4ef7cc33d45adee4a592 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 9 Apr 2011 23:47:35 +0200 Subject: DEVTOOLS: Renamed 'tools' directory to 'devtools' --- devtools/create_kyradat/games.cpp | 990 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 990 insertions(+) create mode 100644 devtools/create_kyradat/games.cpp (limited to 'devtools/create_kyradat/games.cpp') diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp new file mode 100644 index 0000000000..75a956cab0 --- /dev/null +++ b/devtools/create_kyradat/games.cpp @@ -0,0 +1,990 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +#include "create_kyradat.h" + +// Game tables + +namespace { + +const Game kyra1Games[] = { + // Demos + { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "7b7504c8560ffc914d34c44c71b3094c", 0 } }, + { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieDemoVersion, { "226fdba99cb11ef1047131d9a50e6292", 0 } }, + + // Amiga + { kKyra1, { EN_ANY, -1, -1 }, kPlatformAmiga, kNoSpecial, { "b620564b6b7e0787b053ca9e35bd9f52", 0 } }, + { kKyra1, { DE_DEU, -1, -1 }, kPlatformAmiga, kNoSpecial, { "ceddb4bd4df51698e3851e75106d117a", 0 } }, + + // Floppy + { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "76a4fc84e173cadb6369785787e1546e", 0 } }, + { kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "9442d6f7db6a41f3dd4aa4de5d36e107", 0 } }, + { kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "aa9d6d78d8b199deaf48efeca6d19af2", 0 } }, + { kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "5d7550306b369a3492f9f3402702477c", 0 } }, + { kKyra1, { ES_ESP, -1, -1 }, kPlatformPC, kNoSpecial, { "9ff130d2558bcd674d4074849d93c362", 0 } }, + + // Talkie + { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieVersion, { "1ebc18f3e7fbb72474a55cb0fa089ed4", 0 } }, + { kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kTalkieVersion, { "c65d381184f98ac26d9efd2d45baef51", 0 } }, + { kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kTalkieVersion, { "307c5d4a554d9068ac3d326e350ae4a6", 0 } }, + { kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kTalkieVersion, { "d0f1752098236083d81b9497bd2b6989", 0 } }, // Italian fan translation + + // FM-TOWNS + { kKyra1, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "5a3ad60ccd0f2e29463e0368cd14a60d", 0 } }, + + // PC-98 + { kKyra1, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "b9c06ac5177f5bf1f1acc0eea3937f6d", 0 } }, + + GAME_DUMMY_ENTRY +}; + +const Game kyra2Games[] = { + // demos + { kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "a620a37579dd44ab0403482285e3897f", 0 } }, + + { kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieDemoVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "fa54d8abfe05f9186c05f7de7eaf1480" } }, + + // floppy games + { kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "9b0f5e57b5a2ed88b5b989cbb402b6c7", "7c3eadbe5122722cf2e5e1611e19dfb9" } }, + { kKyra2, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "df31cc9e37e1cf68df2fdc75ddf2d87b", "fc2c6782778e6c6d5a553d1cb73c98ad" } }, + { kKyra2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0ca4f9a1438264a4c63c3218e064ed3b", "0d9b0eb7b0ad889ec942d74d80dde1bf" } }, + { kKyra2, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "178d3ab913f61bfba21d2fb196405e8c", "3a61ed6b7c00ddae383a0361799e2ba6" } }, + + // talkie games + { kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } }, + { kKyra2, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "130795aa8f2333250c895dae9028b9bb", "e20d0d2e500f01e399ec588247a7e213" } }, // Italian Fan Translation + + // FM-TOWNS games + { kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "74f50d79c919cc8e7196c24942ce43d7", "a9a7fd4f05d00090e9e8bda073e6d431" } }, + + // PC-98 + { kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformPC98, kNoSpecial, { "9bbf9a69be956db072b485929b416082", "f55fda3e60c4956ce6e72b24d2ae1a07" } }, + + GAME_DUMMY_ENTRY +}; + +const Game kyra3Games[] = { + // DOS CD (multi language version, with no language specific strings) + { kKyra3, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, + { kKyra3, { EN_ANY, IT_ITA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum + { kKyra3, { ES_ESP, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum + + GAME_DUMMY_ENTRY +}; + +const Game lolGames[] = { + // DOS demo + { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } }, + + // DOS floppy (no language specifc strings) + { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } }, + { kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } }, + + // PC98 (no language specifc strings) + { kLol, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } }, + + // DOS CD (multi language version, with no language specific strings) + { kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } }, + + GAME_DUMMY_ENTRY +}; + +} // end of anonymous namespace + +const Game * const gameDescs[] = { + kyra1Games, + kyra2Games, + kyra3Games, + lolGames, + 0 +}; + +// Need tables + +namespace { + +const int kyra1FloppyNeed[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1RoomList, + k1RoomFilenames, + k1CharacterImageFilenames, + k1DefaultShapes, + k1ItemNames, + k1TakenStrings, + k1PlacedStrings, + k1DroppedStrings, + k1NoDropStrings, + k1AmuleteAnimSeq, + k1SpecialPalette1, + k1SpecialPalette2, + k1SpecialPalette3, + k1SpecialPalette4, + k1SpecialPalette5, + k1SpecialPalette6, + k1SpecialPalette7, + k1SpecialPalette8, + k1SpecialPalette9, + k1SpecialPalette10, + k1SpecialPalette11, + k1SpecialPalette12, + k1SpecialPalette13, + k1SpecialPalette14, + k1SpecialPalette15, + k1SpecialPalette16, + k1SpecialPalette17, + k1SpecialPalette18, + k1SpecialPalette19, + k1SpecialPalette20, + k1SpecialPalette21, + k1SpecialPalette22, + k1SpecialPalette23, + k1SpecialPalette24, + k1SpecialPalette25, + k1SpecialPalette26, + k1SpecialPalette27, + k1SpecialPalette28, + k1SpecialPalette29, + k1SpecialPalette30, + k1SpecialPalette31, + k1SpecialPalette32, + k1SpecialPalette33, + k1PutDownString, + k1WaitAmuletString, + k1BlackJewelString, + k1HealingTipString, + k1PoisonGoneString, + k1Healing1Shapes, + k1Healing2Shapes, + k1ThePoisonStrings, + k1FluteStrings, + k1PoisonDeathShapes, + k1FluteShapes, + k1Winter1Shapes, + k1Winter2Shapes, + k1Winter3Shapes, + k1DrinkShapes, + k1WispShapes, + k1MagicAnimShapes, + k1BranStoneShapes, + k1WispJewelStrings, + k1MagicJewelStrings, + k1FlaskFullString, + k1FullFlaskString, + k1OutroReunionSeq, + k1OutroHomeString, + k1VeryCleverString, + k1GUIStrings, + k1NewGameString, + k1ConfigStrings, + k1AudioTracks, + k1AudioTracksIntro, + -1 +}; + +const int kyra1CDNeed[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1RoomList, + k1RoomFilenames, + k1CharacterImageFilenames, + k1DefaultShapes, + k1ItemNames, + k1TakenStrings, + k1PlacedStrings, + k1DroppedStrings, + k1NoDropStrings, + k1AmuleteAnimSeq, + k1SpecialPalette1, + k1SpecialPalette2, + k1SpecialPalette3, + k1SpecialPalette4, + k1SpecialPalette5, + k1SpecialPalette6, + k1SpecialPalette7, + k1SpecialPalette8, + k1SpecialPalette9, + k1SpecialPalette10, + k1SpecialPalette11, + k1SpecialPalette12, + k1SpecialPalette13, + k1SpecialPalette14, + k1SpecialPalette15, + k1SpecialPalette16, + k1SpecialPalette17, + k1SpecialPalette18, + k1SpecialPalette19, + k1SpecialPalette20, + k1SpecialPalette21, + k1SpecialPalette22, + k1SpecialPalette23, + k1SpecialPalette24, + k1SpecialPalette25, + k1SpecialPalette26, + k1SpecialPalette27, + k1SpecialPalette28, + k1SpecialPalette29, + k1SpecialPalette30, + k1SpecialPalette31, + k1SpecialPalette32, + k1SpecialPalette33, + k1PutDownString, + k1WaitAmuletString, + k1BlackJewelString, + k1HealingTipString, + k1PoisonGoneString, + k1Healing1Shapes, + k1Healing2Shapes, + k1ThePoisonStrings, + k1FluteStrings, + k1PoisonDeathShapes, + k1FluteShapes, + k1Winter1Shapes, + k1Winter2Shapes, + k1Winter3Shapes, + k1DrinkShapes, + k1WispShapes, + k1MagicAnimShapes, + k1BranStoneShapes, + k1WispJewelStrings, + k1MagicJewelStrings, + k1FlaskFullString, + k1FullFlaskString, + k1OutroReunionSeq, + k1OutroHomeString, + k1VeryCleverString, + k1GUIStrings, + k1NewGameString, + k1ConfigStrings, + k1AudioTracks, + k1AudioTracksIntro, + -1 +}; + +const int kyra1DemoNeed[] = { + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1Demo1Seq, + k1Demo2Seq, + k1Demo3Seq, + k1Demo4Seq, + k1AudioTracksIntro, + -1 +}; + +const int kyra1DemoCDNeed[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1AudioTracksIntro, + -1 +}; + +const int kyra1TownsNeed[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1RoomList, + k1RoomFilenames, + k1CharacterImageFilenames, + k1DefaultShapes, + k1ItemNames, + k1TakenStrings, + k1PlacedStrings, + k1DroppedStrings, + k1NoDropStrings, + k1AmuleteAnimSeq, + k1SpecialPalette1, + k1SpecialPalette2, + k1SpecialPalette3, + k1SpecialPalette4, + k1SpecialPalette5, + k1SpecialPalette6, + k1SpecialPalette7, + k1SpecialPalette8, + k1SpecialPalette9, + k1SpecialPalette10, + k1SpecialPalette11, + k1SpecialPalette12, + k1SpecialPalette13, + k1SpecialPalette14, + k1SpecialPalette15, + k1SpecialPalette16, + k1SpecialPalette17, + k1SpecialPalette18, + k1SpecialPalette19, + k1SpecialPalette20, + k1SpecialPalette21, + k1SpecialPalette22, + k1SpecialPalette23, + k1SpecialPalette24, + k1SpecialPalette25, + k1SpecialPalette26, + k1SpecialPalette27, + k1SpecialPalette28, + k1SpecialPalette29, + k1SpecialPalette30, + k1SpecialPalette31, + k1SpecialPalette32, + k1SpecialPalette33, + k1PutDownString, + k1WaitAmuletString, + k1BlackJewelString, + k1HealingTipString, + k1PoisonGoneString, + k1Healing1Shapes, + k1Healing2Shapes, + k1ThePoisonStrings, + k1FluteStrings, + k1PoisonDeathShapes, + k1FluteShapes, + k1Winter1Shapes, + k1Winter2Shapes, + k1Winter3Shapes, + k1DrinkShapes, + k1WispShapes, + k1MagicAnimShapes, + k1BranStoneShapes, + k1WispJewelStrings, + k1MagicJewelStrings, + k1FlaskFullString, + k1FullFlaskString, + k1OutroReunionSeq, + k1OutroHomeString, + k1VeryCleverString, + k1GUIStrings, + k1NewGameString, + k1ConfigStrings, + + k1TownsMusicFadeTable, + k1TownsMusicFadeTable, + k1TownsSFXwdTable, + k1TownsSFXbtTable, + k1TownsCDATable, + k1AudioTracks, + k1CreditsStrings, + -1 +}; + +const int kyra1PC98Need[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroCOLStrings, + k1IntroWSAStrings, + k1IntroStrings, + k1RoomList, + k1RoomFilenames, + k1CharacterImageFilenames, + k1DefaultShapes, + k1ItemNames, + k1TakenStrings, + k1PlacedStrings, + k1DroppedStrings, + k1NoDropStrings, + k1AmuleteAnimSeq, + k1SpecialPalette1, + k1SpecialPalette2, + k1SpecialPalette3, + k1SpecialPalette4, + k1SpecialPalette5, + k1SpecialPalette6, + k1SpecialPalette7, + k1SpecialPalette8, + k1SpecialPalette9, + k1SpecialPalette10, + k1SpecialPalette11, + k1SpecialPalette12, + k1SpecialPalette13, + k1SpecialPalette14, + k1SpecialPalette15, + k1SpecialPalette16, + k1SpecialPalette17, + k1SpecialPalette18, + k1SpecialPalette19, + k1SpecialPalette20, + k1SpecialPalette21, + k1SpecialPalette22, + k1SpecialPalette23, + k1SpecialPalette24, + k1SpecialPalette25, + k1SpecialPalette26, + k1SpecialPalette27, + k1SpecialPalette28, + k1SpecialPalette29, + k1SpecialPalette30, + k1SpecialPalette31, + k1SpecialPalette32, + k1SpecialPalette33, + k1PutDownString, + k1WaitAmuletString, + k1BlackJewelString, + k1HealingTipString, + k1PoisonGoneString, + k1Healing1Shapes, + k1Healing2Shapes, + k1ThePoisonStrings, + k1FluteStrings, + k1PoisonDeathShapes, + k1FluteShapes, + k1Winter1Shapes, + k1Winter2Shapes, + k1Winter3Shapes, + k1DrinkShapes, + k1WispShapes, + k1MagicAnimShapes, + k1BranStoneShapes, + k1WispJewelStrings, + k1MagicJewelStrings, + k1FlaskFullString, + k1FullFlaskString, + k1OutroReunionSeq, + k1OutroHomeString, + k1VeryCleverString, + k1GUIStrings, + k1NewGameString, + k1ConfigStrings, + + k1PC98StoryStrings, + k1PC98IntroSfx, + k1CreditsStrings, + -1 +}; + +const int kyra1AmigaNeed[] = { + k1KallakWritingSeq, + k1MalcolmTreeSeq, + k1WestwoodLogoSeq, + k1KyrandiaLogoSeq, + k1KallakMalcolmSeq, + k1ForestSeq, + k1IntroCPSStrings, + k1IntroWSAStrings, + k1IntroCOLStrings, + k1IntroStrings, + k1RoomList, + k1RoomFilenames, + k1CharacterImageFilenames, + k1DefaultShapes, + k1ItemNames, + k1TakenStrings, + k1PlacedStrings, + k1DroppedStrings, + k1NoDropStrings, + k1AmuleteAnimSeq, + k1PutDownString, + k1WaitAmuletString, + k1BlackJewelString, + k1HealingTipString, + k1PoisonGoneString, + k1Healing1Shapes, + k1Healing2Shapes, + k1ThePoisonStrings, + k1FluteStrings, + k1PoisonDeathShapes, + k1FluteShapes, + k1Winter1Shapes, + k1Winter2Shapes, + k1Winter3Shapes, + k1DrinkShapes, + k1WispShapes, + k1MagicAnimShapes, + k1BranStoneShapes, + k1WispJewelStrings, + k1MagicJewelStrings, + k1FlaskFullString, + k1FullFlaskString, + k1OutroReunionSeq, + k1OutroHomeString, + k1VeryCleverString, + k1GUIStrings, + k1NewGameString, + k1ConfigStrings, + k1CreditsStrings, + k1AmigaIntroSFXTable, + k1AmigaGameSFXTable, + -1 +}; + +const int kyra2CDNeed[] = { + k2SeqplayPakFiles, + k2SeqplayCredits, + k2SeqplayCreditsSpecial, + k2SeqplayStrings, + k2SeqplaySfxFiles, + k2SeqplayTlkFiles, + k2SeqplaySeqData, + k2SeqplayIntroTracks, + k2SeqplayFinaleTracks, + k2IngameSfxFiles, + k2IngameSfxIndex, + k2IngameTracks, + k2IngameTalkObjIndex, + k2IngameShapeAnimData, + -1 +}; + +const int kyra2CDDemoNeed[] = { + k2SeqplayPakFiles, + k2SeqplayCredits, + k2SeqplayCreditsSpecial, + k2SeqplayStrings, + k2SeqplaySfxFiles, + k2SeqplayTlkFiles, + k2SeqplaySeqData, + k2SeqplayIntroTracks, + k2SeqplayFinaleTracks, + k2IngameSfxFiles, + k2IngameSfxIndex, + k2IngameTracks, + k2IngameTalkObjIndex, + k2IngameShapeAnimData, + k2IngameTlkDemoStrings, + -1 +}; + +const int kyra2FloppyNeed[] = { + k2SeqplayPakFiles, + k2SeqplayStrings, + k2SeqplaySfxFiles, + k2SeqplayIntroTracks, + k2SeqplayFinaleTracks, + k2SeqplaySeqData, + k2IngamePakFiles, + k2IngameSfxFiles, + k2IngameSfxIndex, + k2IngameTracks, + k2IngameTalkObjIndex, + k2IngameShapeAnimData, + -1 +}; + +const int kyra2TownsNeed[] = { + k2SeqplayPakFiles, + k2SeqplayStrings, + k2SeqplaySfxFiles, + k2SeqplaySeqData, + k2SeqplayIntroCDA, + k2SeqplayFinaleCDA, + k2IngamePakFiles, + k2IngameSfxFiles, + k2IngameSfxIndex, + k2IngameCDA, + k2IngameTalkObjIndex, + k2IngameTimJpStrings, + k2IngameShapeAnimData, + -1 +}; + +const int kyra2PC98Need[] = { + k2SeqplayPakFiles, + k2SeqplayStrings, + k2SeqplaySfxFiles, + k2SeqplaySeqData, + k2IngamePakFiles, + k2IngameSfxFiles, + k2IngameSfxIndex, + k2IngameTalkObjIndex, + k2IngameTimJpStrings, + k2IngameShapeAnimData, + -1 +}; + +const int kyra2DemoNeed[] = { + k2SeqplayPakFiles, + k2SeqplaySeqData, + k2SeqplaySfxFiles, + k2SeqplayIntroTracks, + k2SeqplayShapeAnimData, + -1 +}; + +const int kyra3Need[] = { + k3MainMenuStrings, + k3MusicFiles, + k3ScoreTable, + k3SfxFiles, + k3SfxMap, + k3ItemAnimData, + k3ItemMagicTable, + k3ItemStringMap, + -1 +}; + +const int lolFloppyNeed[] = { + kLolIngamePakFiles, + + kLolCharacterDefs, + kLolIngameSfxFiles, + kLolIngameSfxIndex, + kLolMusicTrackMap, + kLolIngameGMSfxIndex, + kLolIngameMT32SfxIndex, + kLolIngamePcSpkSfxIndex, + kLolSpellProperties, + kLolGameShapeMap, + kLolSceneItemOffs, + kLolCharInvIndex, + kLolCharInvDefs, + kLolCharDefsMan, + kLolCharDefsWoman, + kLolCharDefsKieran, + kLolCharDefsAkshel, + kLolExpRequirements, + kLolMonsterModifiers, + kLolMonsterShiftOffsets, + kLolMonsterDirFlags, + kLolMonsterScaleY, + kLolMonsterScaleX, + kLolMonsterScaleWH, + kLolFlyingObjectShp, + kLolInventoryDesc, + + kLolLevelShpList, + kLolLevelDatList, + kLolCompassDefs, + kLolStashSetup, + kLolDscUnk1, + kLolDscShapeIndex, + kLolDscOvlMap, + kLolDscScaleWidthData, + kLolDscScaleHeightData, + kLolDscX, + kLolDscY, + kLolDscTileIndex, + kLolDscUnk2, + kLolDscDoorShapeIndex, + kLolDscDimData1, + kLolDscDimData2, + kLolDscBlockMap, + kLolDscDimMap, + kLolDscOvlIndex, + kLolDscBlockIndex, + kLolDscDoor1, + kLolDscDoorScale, + kLolDscDoor4, + kLolDscDoorX, + kLolDscDoorY, + + kLolScrollXTop, + kLolScrollYTop, + kLolScrollXBottom, + kLolScrollYBottom, + + kLolButtonDefs, + kLolButtonList1, + kLolButtonList1, + kLolButtonList2, + kLolButtonList3, + kLolButtonList4, + kLolButtonList5, + kLolButtonList6, + kLolButtonList7, + kLolButtonList8, + + kLolLegendData, + kLolMapCursorOvl, + kLolMapStringId, + + kLolSpellbookAnim, + kLolSpellbookCoords, + kLolHealShapeFrames, + kLolLightningDefs, + kLolFireballCoords, + + -1 +}; + +const int lolPC98Need[] = { + kLolIngamePakFiles, + + kLolCharacterDefs, + kLolIngameSfxFiles, + kLolIngameSfxIndex, + kLolSpellProperties, + kLolGameShapeMap, + kLolSceneItemOffs, + kLolCharInvIndex, + kLolCharInvDefs, + kLolCharDefsMan, + kLolCharDefsWoman, + kLolCharDefsKieran, + kLolCharDefsAkshel, + kLolExpRequirements, + kLolMonsterModifiers, + kLolMonsterShiftOffsets, + kLolMonsterDirFlags, + kLolMonsterScaleY, + kLolMonsterScaleX, + kLolMonsterScaleWH, + kLolFlyingObjectShp, + kLolInventoryDesc, + + kLolLevelShpList, + kLolLevelDatList, + kLolCompassDefs, + kLolStashSetup, + kLolDscUnk1, + kLolDscShapeIndex, + kLolDscOvlMap, + kLolDscScaleWidthData, + kLolDscScaleHeightData, + kLolDscX, + kLolDscY, + kLolDscTileIndex, + kLolDscUnk2, + kLolDscDoorShapeIndex, + kLolDscDimData1, + kLolDscDimData2, + kLolDscBlockMap, + kLolDscDimMap, + kLolDscOvlIndex, + kLolDscBlockIndex, + kLolDscDoor1, + kLolDscDoorScale, + kLolDscDoor4, + kLolDscDoorX, + kLolDscDoorY, + + kLolScrollXTop, + kLolScrollYTop, + kLolScrollXBottom, + kLolScrollYBottom, + + kLolButtonDefs, + kLolButtonList1, + kLolButtonList1, + kLolButtonList2, + kLolButtonList3, + kLolButtonList4, + kLolButtonList5, + kLolButtonList6, + kLolButtonList7, + kLolButtonList8, + + kLolLegendData, + kLolMapStringId, + + kLolSpellbookAnim, + kLolSpellbookCoords, + kLolHealShapeFrames, + kLolLightningDefs, + kLolFireballCoords, + + kLolCredits, + + -1 +}; + +const int lolCDNeed[] = { + kLolHistory, + kLolCharacterDefs, + kLolIngameSfxFiles, + kLolIngameSfxIndex, + kLolMusicTrackMap, + kLolIngameGMSfxIndex, + kLolIngameMT32SfxIndex, + kLolIngamePcSpkSfxIndex, + kLolSpellProperties, + kLolGameShapeMap, + kLolSceneItemOffs, + kLolCharInvIndex, + kLolCharInvDefs, + kLolCharDefsMan, + kLolCharDefsWoman, + kLolCharDefsKieran, + kLolCharDefsAkshel, + kLolExpRequirements, + kLolMonsterModifiers, + kLolMonsterShiftOffsets, + kLolMonsterDirFlags, + kLolMonsterScaleY, + kLolMonsterScaleX, + kLolMonsterScaleWH, + kLolFlyingObjectShp, + kLolInventoryDesc, + + kLolLevelShpList, + kLolLevelDatList, + kLolCompassDefs, + kLolItemPrices, + kLolStashSetup, + kLolDscUnk1, + kLolDscShapeIndex, + kLolDscOvlMap, + kLolDscScaleWidthData, + kLolDscScaleHeightData, + kLolDscX, + kLolDscY, + kLolDscTileIndex, + kLolDscUnk2, + kLolDscDoorShapeIndex, + kLolDscDimData1, + kLolDscDimData2, + kLolDscBlockMap, + kLolDscDimMap, + kLolDscOvlIndex, + kLolDscBlockIndex, + kLolDscDoor1, + kLolDscDoorScale, + kLolDscDoor4, + kLolDscDoorX, + kLolDscDoorY, + + kLolScrollXTop, + kLolScrollYTop, + kLolScrollXBottom, + kLolScrollYBottom, + + kLolButtonDefs, + kLolButtonList1, + kLolButtonList1, + kLolButtonList2, + kLolButtonList3, + kLolButtonList4, + kLolButtonList5, + kLolButtonList6, + kLolButtonList7, + kLolButtonList8, + + kLolLegendData, + kLolMapCursorOvl, + kLolMapStringId, + + kLolSpellbookAnim, + kLolSpellbookCoords, + kLolHealShapeFrames, + kLolLightningDefs, + kLolFireballCoords, + -1 +}; + +const int lolDemoNeed[] = { + k2SeqplayPakFiles, + k2SeqplayStrings, + k2SeqplaySeqData, + k2SeqplaySfxFiles, + k2SeqplayIntroTracks, + -1 +}; + +struct GameNeed { + int game; + int platform; + int special; + + const int *entries; +}; + +const GameNeed gameNeedTable[] = { + { kKyra1, kPlatformPC, kNoSpecial, kyra1FloppyNeed }, + { kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed }, + + { kKyra1, kPlatformPC, kTalkieVersion, kyra1CDNeed }, + + { kKyra1, kPlatformFMTowns, kNoSpecial, kyra1TownsNeed }, + + { kKyra1, kPlatformPC98, kNoSpecial, kyra1PC98Need }, + + { kKyra1, kPlatformPC, kDemoVersion, kyra1DemoNeed }, + + { kKyra1, kPlatformPC, kTalkieDemoVersion, kyra1DemoCDNeed }, + + { kKyra2, kPlatformPC, kNoSpecial, kyra2FloppyNeed }, + + { kKyra2, kPlatformPC, kTalkieVersion, kyra2CDNeed }, + + { kKyra2, kPlatformPC, kTalkieDemoVersion, kyra2CDDemoNeed }, + + { kKyra2, kPlatformFMTowns, kNoSpecial, kyra2TownsNeed }, + + { kKyra2, kPlatformPC98, kNoSpecial, kyra2PC98Need }, + + { kKyra2, kPlatformPC, kDemoVersion, kyra2DemoNeed }, + + { kLol, kPlatformPC, kDemoVersion, lolDemoNeed }, + + { kKyra3, kPlatformPC, kTalkieVersion, kyra3Need }, + + { kLol, kPlatformPC, kNoSpecial, lolFloppyNeed }, + { kLol, kPlatformPC98, kNoSpecial, lolPC98Need }, + + { kLol, kPlatformPC, kTalkieVersion, lolCDNeed }, + + { -1, -1, -1, 0 } +}; + +} // end of anonymous namespace + +const int *getNeedList(const Game *g) { + for (const GameNeed *need = gameNeedTable; need->game != -1; ++need) { + if (need->game == g->game && g->platform == need->platform && need->special == g->special) + return need->entries; + } + + return 0; +} + -- cgit v1.2.3