1
/* ScummVM - Graphic Adventure Engine
3
* ScummVM is the legal property of its developers, whose names
4
* are too numerous to list here. Please refer to the COPYRIGHT
5
* file distributed with this source distribution.
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 2
10
* of the License, or (at your option) any later version.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
* $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/tags/release-1-2-1/tools/create_kyradat/games.cpp $
22
* $Id: games.cpp 51834 2010-08-07 14:38:07Z athrxx $
26
#include "create_kyradat.h"
32
const Game kyra1Games[] = {
34
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "7b7504c8560ffc914d34c44c71b3094c", 0 } },
35
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieDemoVersion, { "226fdba99cb11ef1047131d9a50e6292", 0 } },
38
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformAmiga, kNoSpecial, { "b620564b6b7e0787b053ca9e35bd9f52", 0 } },
39
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformAmiga, kNoSpecial, { "ceddb4bd4df51698e3851e75106d117a", 0 } },
42
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "76a4fc84e173cadb6369785787e1546e", 0 } },
43
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "9442d6f7db6a41f3dd4aa4de5d36e107", 0 } },
44
{ kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "aa9d6d78d8b199deaf48efeca6d19af2", 0 } },
45
{ kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "5d7550306b369a3492f9f3402702477c", 0 } },
46
{ kKyra1, { ES_ESP, -1, -1 }, kPlatformPC, kNoSpecial, { "9ff130d2558bcd674d4074849d93c362", 0 } },
49
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieVersion, { "1ebc18f3e7fbb72474a55cb0fa089ed4", 0 } },
50
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kTalkieVersion, { "c65d381184f98ac26d9efd2d45baef51", 0 } },
51
{ kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kTalkieVersion, { "307c5d4a554d9068ac3d326e350ae4a6", 0 } },
52
{ kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kTalkieVersion, { "d0f1752098236083d81b9497bd2b6989", 0 } }, // Italian fan translation
55
{ kKyra1, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "5a3ad60ccd0f2e29463e0368cd14a60d", 0 } },
58
{ kKyra1, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "b9c06ac5177f5bf1f1acc0eea3937f6d", 0 } },
63
const Game kyra2Games[] = {
65
{ kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "a620a37579dd44ab0403482285e3897f", 0 } },
67
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieDemoVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "fa54d8abfe05f9186c05f7de7eaf1480" } },
70
{ kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "9b0f5e57b5a2ed88b5b989cbb402b6c7", "7c3eadbe5122722cf2e5e1611e19dfb9" } },
71
{ kKyra2, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "df31cc9e37e1cf68df2fdc75ddf2d87b", "fc2c6782778e6c6d5a553d1cb73c98ad" } },
72
{ kKyra2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0ca4f9a1438264a4c63c3218e064ed3b", "0d9b0eb7b0ad889ec942d74d80dde1bf" } },
73
{ kKyra2, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "178d3ab913f61bfba21d2fb196405e8c", "3a61ed6b7c00ddae383a0361799e2ba6" } },
76
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } },
77
{ kKyra2, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "130795aa8f2333250c895dae9028b9bb", "e20d0d2e500f01e399ec588247a7e213" } }, // Italian Fan Translation
80
{ kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "74f50d79c919cc8e7196c24942ce43d7", "a9a7fd4f05d00090e9e8bda073e6d431" } },
83
{ kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformPC98, kNoSpecial, { "9bbf9a69be956db072b485929b416082", "f55fda3e60c4956ce6e72b24d2ae1a07" } },
88
const Game kyra3Games[] = {
89
// DOS CD (multi language version, with no language specific strings)
90
{ kKyra3, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } },
91
{ kKyra3, { EN_ANY, IT_ITA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
92
{ kKyra3, { ES_ESP, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
97
const Game lolGames[] = {
99
{ kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
101
// DOS floppy (no language specifc strings)
102
{ kLol, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } },
103
{ kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
105
// PC98 (no language specifc strings)
106
{ kLol, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } },
108
// DOS CD (multi language version, with no language specific strings)
109
{ kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
114
} // end of anonymous namespace
116
const Game * const gameDescs[] = {
128
const int kyra1FloppyNeed[] = {
141
k1CharacterImageFilenames,
215
const int kyra1CDNeed[] = {
228
k1CharacterImageFilenames,
302
const int kyra1DemoNeed[] = {
317
const int kyra1DemoCDNeed[] = {
332
const int kyra1TownsNeed[] = {
345
k1CharacterImageFilenames,
415
k1TownsMusicFadeTable,
416
k1TownsMusicFadeTable,
425
const int kyra1PC98Need[] = {
438
k1CharacterImageFilenames,
514
const int kyra1AmigaNeed[] = {
527
k1CharacterImageFilenames,
564
k1AmigaIntroSFXTable,
569
const int kyra2CDNeed[] = {
572
k2SeqplayCreditsSpecial,
577
k2SeqplayIntroTracks,
578
k2SeqplayFinaleTracks,
582
k2IngameTalkObjIndex,
583
k2IngameShapeAnimData,
587
const int kyra2CDDemoNeed[] = {
590
k2SeqplayCreditsSpecial,
595
k2SeqplayIntroTracks,
596
k2SeqplayFinaleTracks,
600
k2IngameTalkObjIndex,
601
k2IngameShapeAnimData,
602
k2IngameTlkDemoStrings,
606
const int kyra2FloppyNeed[] = {
610
k2SeqplayIntroTracks,
611
k2SeqplayFinaleTracks,
617
k2IngameTalkObjIndex,
618
k2IngameShapeAnimData,
622
const int kyra2TownsNeed[] = {
633
k2IngameTalkObjIndex,
634
k2IngameTimJpStrings,
635
k2IngameShapeAnimData,
639
const int kyra2PC98Need[] = {
647
k2IngameTalkObjIndex,
648
k2IngameTimJpStrings,
649
k2IngameShapeAnimData,
653
const int kyra2DemoNeed[] = {
657
k2SeqplayIntroTracks,
658
k2SeqplayShapeAnimData,
662
const int kyra3Need[] = {
674
const int lolFloppyNeed[] = {
681
kLolIngameGMSfxIndex,
682
kLolIngameMT32SfxIndex,
683
kLolIngamePcSpkSfxIndex,
694
kLolMonsterModifiers,
695
kLolMonsterShiftOffsets,
710
kLolDscScaleWidthData,
711
kLolDscScaleHeightData,
716
kLolDscDoorShapeIndex,
758
const int lolPC98Need[] = {
774
kLolMonsterModifiers,
775
kLolMonsterShiftOffsets,
790
kLolDscScaleWidthData,
791
kLolDscScaleHeightData,
796
kLolDscDoorShapeIndex,
839
const int lolCDNeed[] = {
845
kLolIngameGMSfxIndex,
846
kLolIngameMT32SfxIndex,
847
kLolIngamePcSpkSfxIndex,
858
kLolMonsterModifiers,
859
kLolMonsterShiftOffsets,
875
kLolDscScaleWidthData,
876
kLolDscScaleHeightData,
881
kLolDscDoorShapeIndex,
922
const int lolDemoNeed[] = {
927
k2SeqplayIntroTracks,
939
const GameNeed gameNeedTable[] = {
940
{ kKyra1, kPlatformPC, kNoSpecial, kyra1FloppyNeed },
941
{ kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
943
{ kKyra1, kPlatformPC, kTalkieVersion, kyra1CDNeed },
945
{ kKyra1, kPlatformFMTowns, kNoSpecial, kyra1TownsNeed },
947
{ kKyra1, kPlatformPC98, kNoSpecial, kyra1PC98Need },
949
{ kKyra1, kPlatformPC, kDemoVersion, kyra1DemoNeed },
951
{ kKyra1, kPlatformPC, kTalkieDemoVersion, kyra1DemoCDNeed },
953
{ kKyra2, kPlatformPC, kNoSpecial, kyra2FloppyNeed },
955
{ kKyra2, kPlatformPC, kTalkieVersion, kyra2CDNeed },
957
{ kKyra2, kPlatformPC, kTalkieDemoVersion, kyra2CDDemoNeed },
959
{ kKyra2, kPlatformFMTowns, kNoSpecial, kyra2TownsNeed },
961
{ kKyra2, kPlatformPC98, kNoSpecial, kyra2PC98Need },
963
{ kKyra2, kPlatformPC, kDemoVersion, kyra2DemoNeed },
965
{ kLol, kPlatformPC, kDemoVersion, lolDemoNeed },
967
{ kKyra3, kPlatformPC, kTalkieVersion, kyra3Need },
969
{ kLol, kPlatformPC, kNoSpecial, lolFloppyNeed },
970
{ kLol, kPlatformPC98, kNoSpecial, lolPC98Need },
972
{ kLol, kPlatformPC, kTalkieVersion, lolCDNeed },
977
} // end of anonymous namespace
979
const int *getNeedList(const Game *g) {
980
for (const GameNeed *need = gameNeedTable; need->game != -1; ++need) {
981
if (need->game == g->game && g->platform == need->platform && need->special == g->special)
982
return need->entries;