aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_kyradat/games.cpp
diff options
context:
space:
mode:
authorMax Horn2011-04-09 23:47:35 +0200
committerMax Horn2011-04-09 23:47:35 +0200
commit6cf1de87acdb878e3a3e4ef7cc33d45adee4a592 (patch)
treed20295fc02d514a62ee4f22a5a34136316d0916c /devtools/create_kyradat/games.cpp
parentae49865e9e48b8569922d2ea1792541fb23b4a64 (diff)
downloadscummvm-rg350-6cf1de87acdb878e3a3e4ef7cc33d45adee4a592.tar.gz
scummvm-rg350-6cf1de87acdb878e3a3e4ef7cc33d45adee4a592.tar.bz2
scummvm-rg350-6cf1de87acdb878e3a3e4ef7cc33d45adee4a592.zip
DEVTOOLS: Renamed 'tools' directory to 'devtools'
Diffstat (limited to 'devtools/create_kyradat/games.cpp')
-rw-r--r--devtools/create_kyradat/games.cpp990
1 files changed, 990 insertions, 0 deletions
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;
+}
+