[Scummvm-cvs-logs] SF.net SVN: scummvm:[44143] scummvm/trunk/tools/create_kyradat
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Thu Sep 17 14:02:17 CEST 2009
Revision: 44143
http://scummvm.svn.sourceforge.net/scummvm/?rev=44143&view=rev
Author: lordhoto
Date: 2009-09-17 12:02:17 +0000 (Thu, 17 Sep 2009)
Log Message:
-----------
- Cleanup multi language game processing
- Vast move of static data tables to new files
- Other cleanup
Modified Paths:
--------------
scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
scummvm/trunk/tools/create_kyradat/create_kyradat.h
scummvm/trunk/tools/create_kyradat/extract.cpp
scummvm/trunk/tools/create_kyradat/module.mk
scummvm/trunk/tools/create_kyradat/tables.h
Added Paths:
-----------
scummvm/trunk/tools/create_kyradat/games.cpp
scummvm/trunk/tools/create_kyradat/tables.cpp
Removed Paths:
-------------
scummvm/trunk/tools/create_kyradat/misc.h
scummvm/trunk/tools/create_kyradat/providers.h
Modified: scummvm/trunk/tools/create_kyradat/create_kyradat.cpp
===================================================================
--- scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/create_kyradat.cpp 2009-09-17 12:02:17 UTC (rev 44143)
@@ -29,7 +29,7 @@
#include "create_kyradat.h"
#include "tables.h"
-#include "providers.h"
+#include "extract.h"
#include "md5.h"
@@ -38,59 +38,6 @@
kIndexSize = 12
};
-// tables
-
-#include "misc.h"
-
-bool extractRaw(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractStrings10(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractRooms(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractShapes(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractAmigaSfx(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractWdSfx(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-
-bool extractHofSeqData(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractHofShapeAnimDataV1(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractHofShapeAnimDataV2(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-
-bool extractStringsWoSuffix(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractPaddedStrings(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractRaw16to8(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractMrShapeAnimData(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractRaw16(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractRaw32(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-bool extractLolButtonDefs(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
-
-void createFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
-void createLangFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
-
-const ExtractType extractTypeTable[] = {
- { kTypeLanguageList, extractStrings, createLangFilename },
- { kTypeStringList, extractStrings, createFilename },
- { kTypeRoomList, extractRooms, createFilename },
- { kTypeShapeList, extractShapes, createFilename },
- { kTypeRawData, extractRaw, createFilename },
- { kTypeAmigaSfxTable, extractAmigaSfx, createFilename },
- { kTypeTownsWDSfxTable, extractWdSfx, createFilename },
-
- { k2TypeSeqData, extractHofSeqData, createFilename },
- { k2TypeShpDataV1, extractHofShapeAnimDataV1, createFilename },
- { k2TypeShpDataV2, extractHofShapeAnimDataV2, createFilename },
- { k2TypeSoundList, extractStringsWoSuffix, createFilename },
- { k2TypeLangSoundList, extractStringsWoSuffix, createLangFilename },
- { k2TypeSize10StringList, extractStrings10, createFilename },
- { k2TypeSfxList, extractPaddedStrings, createFilename },
- { k3TypeRaw16to8, extractRaw16to8, createFilename },
- { k3TypeShpData, extractMrShapeAnimData, createFilename },
-
- { kLolTypeRaw16, extractRaw16, createFilename },
- { kLolTypeRaw32, extractRaw32, createFilename },
- { kLolTypeButtonDef, extractLolButtonDefs, createFilename },
-
- { -1, 0, 0}
-};
-
const ExtractFilename extractFilenames[] = {
// INTRO / OUTRO sequences
{ kForestSeq, kTypeRawData, "FOREST.SEQ" },
@@ -349,16 +296,6 @@
return 0;
}
-// type processing
-
-const ExtractType *findExtractType(const int type) {
- for (const ExtractType *i = extractTypeTable; i->type != -1; ++i) {
- if (i->type == type)
- return i;
- }
- return 0;
-}
-
// filename processing
bool getFilename(char *dstFilename, const Game *g, const int id) {
@@ -372,43 +309,49 @@
return true;
}
-void createFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename) {
- strcpy(dstFilename, filename);
+// misc tables
- static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
- strcat(dstFilename, gidExtensions[gid]);
+const SpecialExtension specialTable[] = {
+ { kTalkieVersion, "CD" },
+ { kDemoVersion, "DEM" },
+ { kDemoCDVersion, "CD.DEM" },
+ { kFMTownsVersionE , "TNS" },
+ { kFMTownsVersionJ, "TNS" },
+ { kAmigaVersion, "AMG" },
- for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
- if (specialE->special == special) {
- strcat(dstFilename, ".");
- strcat(dstFilename, specialE->ext);
- break;
- }
- }
-}
+ { k2CDFile1E, "CD" },
+ { k2CDFile1F, "CD" },
+ { k2CDFile1G, "CD" },
+ { k2CDFile1I, "CD" },
+ { k2CDFile2E, "CD" },
+ { k2CDFile2F, "CD" },
+ { k2CDFile2G, "CD" },
+ { k2CDDemoE, "CD" },
+ { k2CDDemoF, "CD" },
+ { k2CDDemoG, "CD" },
-void createLangFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename) {
- strcpy(dstFilename, filename);
+ { k2TownsFile1E, "TNS" },
+ { k2TownsFile1J, "TNS" },
+ { k2TownsFile2E, "TNS" },
+ { k2TownsFile2J, "TNS" },
+ { k2DemoVersion, "DEM" },
+ { k2DemoLol, "DEM" },
- for (const Language *langE = languageTable; langE->lang != -1; ++langE) {
- if (langE->lang == lang) {
- strcat(dstFilename, ".");
- strcat(dstFilename, langE->ext);
- break;
- }
- }
+ { kLolCD1, "CD" },
+ { kLolCD2, "CD" },
- static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
- strcat(dstFilename, gidExtensions[gid]);
+ { -1, 0 }
+};
- for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
- if (specialE->special == special) {
- strcat(dstFilename, ".");
- strcat(dstFilename, specialE->ext);
- break;
- }
- }
-}
+const Language languageTable[] = {
+ { EN_ANY, "ENG" },
+ { DE_DEU, "GER" },
+ { FR_FRA, "FRE" },
+ { IT_ITA, "ITA" },
+ { ES_ESP, "SPA" },
+ { JA_JPN, "JPN" },
+ { -1, 0 }
+};
// index generation
@@ -568,34 +511,40 @@
}
fclose(input);
- const Game *g = findGame(buffer, size);
- if (!g) {
- warning("skipping unknown file '%s'", argv[i]);
- delete[] buffer;
- continue;
- }
+ md5_context ctx;
+ uint8 digest[16];
+ char md5Str[33];
+ md5_starts(&ctx);
+ md5_update(&ctx, buffer, size);
+ md5_finish(&ctx, digest);
+
+ for (int j = 0; j < 16; ++j)
+ sprintf(md5Str + j*2, "%02x", (int)digest[j]);
+
printf("Processing file '%s'...\n", argv[i]);
- if (!process(out, g, buffer, size))
- fprintf(stderr, "ERROR: couldn't process file\n");
+ bool variantProcessed = false;
- if (g->special == kFMTownsVersionE || g->special == k2TownsFile1E || g->special == k2TownsFile2E ||
- g->special == k2CDFile1E || g->special == k2CDFile2E || g->special == k2CDDemoE) {
- // This is for executables which contain support for at least 2 languages
- // The English and non language specific data has now been extracted.
- // We switch to the second language and continue extraction.
- if (!process(out, ++g, buffer, size))
- fprintf(stderr, "ERROR: couldn't process file\n");
- }
+ for (const Game **game = gameDescs; *game != 0; ++game) {
+ for (const Game *variant = *game; variant->md5 != 0; ++variant) {
+ if (!std::strcmp(variant->md5, md5Str)) {
+ variantProcessed = true;
- if (g->special == k2CDFile1F || g->special == k2CDFile2F || g->special == k2CDDemoF) {
- // This is for executables which contain support for 3 languages.
- // We switch to the third language and continue extraction.
- if (!process(out, ++g, buffer, size))
- fprintf(stderr, "ERROR: couldn't process file\n");
+ if (!process(out, variant, buffer, size))
+ fprintf(stderr, "ERROR: couldn't process file\n");
+
+ // We do not break the loop here, so all registered game
+ // variants will be processed. Like it is for example
+ // required for multi language executables.
+ }
+ }
}
+ if (!variantProcessed)
+ fprintf(stderr, "ERROR: File '%s' with md5 sum \"%s\" has no variant registered\n", argv[i], md5Str);
+
+ // delete the current entry
delete[] buffer;
}
@@ -615,15 +564,6 @@
return 0;
}
-const int *getNeedList(const Game *g) {
- for (const GameNeed *need = gameNeedTable; need->game != -1; ++need) {
- if (need->game == g->game && need->special == g->special)
- return need->entries;
- }
-
- return 0;
-}
-
const char *getIdString(const int id) {
switch (id) {
case kForestSeq:
@@ -1252,36 +1192,3 @@
return true;
}
-// game data detection
-
-const Game *gameDescs[] = {
- kyra1Games,
- kyra2Games,
- kyra3Games,
- lolGames,
- 0
-};
-
-const Game *findGame(const byte *buffer, const uint32 size) {
- md5_context ctx;
- uint8 digest[16];
- char md5str[33];
-
- md5_starts(&ctx);
- md5_update(&ctx, buffer, size);
- md5_finish(&ctx, digest);
-
- for (int j = 0; j < 16; ++j) {
- sprintf(md5str + j*2, "%02x", (int)digest[j]);
- }
-
- for (const Game **i = gameDescs; *i != 0; ++i) {
- for (const Game *p = *i; p->game != -1; ++p) {
- if (strcmp(md5str, p->md5) == 0)
- return p;
- }
- }
-
- printf("file is not supported (unknown md5 \"%s\")\n", md5str);
- return 0;
-}
Modified: scummvm/trunk/tools/create_kyradat/create_kyradat.h
===================================================================
--- scummvm/trunk/tools/create_kyradat/create_kyradat.h 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/create_kyradat.h 2009-09-17 12:02:17 UTC (rev 44143)
@@ -32,6 +32,8 @@
const char *ext;
};
+extern const Language languageTable[];
+
enum kExtractID {
kForestSeq = 1,
kKallakWritingSeq,
@@ -268,20 +270,6 @@
kMaxResIDs
};
-struct ExtractEntrySearchData {
- int lang;
- int platform;
-
- SearchData hint;
-};
-
-#define EXTRACT_END_ENTRY { UNK_LANG, kPlatformUnknown, { 0, 0, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } }
-
-struct ExtractEntry {
- int id;
- const ExtractEntrySearchData *providers;
-};
-
struct ExtractFilename {
int id;
int type;
@@ -333,6 +321,8 @@
const char *ext;
};
+extern const SpecialExtension specialTable[];
+
enum kGame {
kKyra1 = 0,
kKyra2 = 1,
@@ -351,42 +341,8 @@
#define GAME_DUMMY_ENTRY { -1, -1, -1, -1, 0 }
-struct GameNeed {
- int game;
- int special;
+extern const Game *gameDescs[];
- const int *entries;
-};
+const int *getNeedList(const Game *g);
-enum kExtractType {
- kTypeLanguageList = 0,
- kTypeStringList,
- kTypeRoomList,
- kTypeShapeList,
- kTypeRawData,
- kTypeAmigaSfxTable,
- kTypeTownsWDSfxTable,
-
- k2TypeSeqData,
- k2TypeShpDataV1,
- k2TypeShpDataV2,
- k2TypeSoundList,
- k2TypeLangSoundList,
- k2TypeSize10StringList,
- k2TypeSfxList,
-
- k3TypeRaw16to8,
- k3TypeShpData,
-
- kLolTypeRaw16,
- kLolTypeRaw32,
- kLolTypeButtonDef
-};
-
-struct ExtractType {
- int type;
- bool (*extract)(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
- void (*createFilename)(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
-};
-
#endif
Modified: scummvm/trunk/tools/create_kyradat/extract.cpp
===================================================================
--- scummvm/trunk/tools/create_kyradat/extract.cpp 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/extract.cpp 2009-09-17 12:02:17 UTC (rev 44143)
@@ -22,7 +22,124 @@
#include "create_kyradat.h"
+#include "extract.h"
+// Filename creation
+
+void createFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
+
+namespace {
+
+void createLangFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
+
+// Extraction function prototypes
+
+bool extractRaw(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractStrings10(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractRooms(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractShapes(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractAmigaSfx(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractWdSfx(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+
+bool extractHofSeqData(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractHofShapeAnimDataV1(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractHofShapeAnimDataV2(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+
+bool extractStringsWoSuffix(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractPaddedStrings(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractRaw16to8(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractMrShapeAnimData(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractRaw16(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractRaw32(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+bool extractLolButtonDefs(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang);
+
+// Extraction type table
+
+const ExtractType extractTypeTable[] = {
+ { kTypeLanguageList, extractStrings, createLangFilename },
+ { kTypeStringList, extractStrings, createFilename },
+ { kTypeRoomList, extractRooms, createFilename },
+ { kTypeShapeList, extractShapes, createFilename },
+ { kTypeRawData, extractRaw, createFilename },
+ { kTypeAmigaSfxTable, extractAmigaSfx, createFilename },
+ { kTypeTownsWDSfxTable, extractWdSfx, createFilename },
+
+ { k2TypeSeqData, extractHofSeqData, createFilename },
+ { k2TypeShpDataV1, extractHofShapeAnimDataV1, createFilename },
+ { k2TypeShpDataV2, extractHofShapeAnimDataV2, createFilename },
+ { k2TypeSoundList, extractStringsWoSuffix, createFilename },
+ { k2TypeLangSoundList, extractStringsWoSuffix, createLangFilename },
+ { k2TypeSize10StringList, extractStrings10, createFilename },
+ { k2TypeSfxList, extractPaddedStrings, createFilename },
+ { k3TypeRaw16to8, extractRaw16to8, createFilename },
+ { k3TypeShpData, extractMrShapeAnimData, createFilename },
+
+ { kLolTypeRaw16, extractRaw16, createFilename },
+ { kLolTypeRaw32, extractRaw32, createFilename },
+ { kLolTypeButtonDef, extractLolButtonDefs, createFilename },
+
+ { -1, 0, 0}
+};
+
+} // end of anonymous namespace
+
+void createFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename) {
+ strcpy(dstFilename, filename);
+
+ static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
+ strcat(dstFilename, gidExtensions[gid]);
+
+ for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
+ if (specialE->special == special) {
+ strcat(dstFilename, ".");
+ strcat(dstFilename, specialE->ext);
+ break;
+ }
+ }
+}
+
+namespace {
+
+void createLangFilename(char *dstFilename, const int gid, const int lang, const int special, const char *filename) {
+ strcpy(dstFilename, filename);
+
+ for (const Language *langE = languageTable; langE->lang != -1; ++langE) {
+ if (langE->lang == lang) {
+ strcat(dstFilename, ".");
+ strcat(dstFilename, langE->ext);
+ break;
+ }
+ }
+
+ static const char *gidExtensions[] = { "", ".K2", ".K3", 0, ".LOL" };
+ strcat(dstFilename, gidExtensions[gid]);
+
+ for (const SpecialExtension *specialE = specialTable; specialE->special != -1; ++specialE) {
+ if (specialE->special == special) {
+ strcat(dstFilename, ".");
+ strcat(dstFilename, specialE->ext);
+ break;
+ }
+ }
+}
+
+} // end of anonymous namespace
+
+// misc
+
+const ExtractType *findExtractType(const int type) {
+ for (const ExtractType *i = extractTypeTable; i->type != -1; ++i) {
+ if (i->type == type)
+ return i;
+ }
+ return 0;
+}
+
+// Extractor implementation
+
+namespace {
+
bool extractRaw(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int id, int lang) {
uint8 *buffer = new uint8[size];
assert(buffer);
@@ -823,3 +940,5 @@
return out.addFile(filename, buffer, outsize);
}
+} // end of anonymous namespace
+
Copied: scummvm/trunk/tools/create_kyradat/games.cpp (from rev 44142, scummvm/trunk/tools/create_kyradat/misc.h)
===================================================================
--- scummvm/trunk/tools/create_kyradat/games.cpp (rev 0)
+++ scummvm/trunk/tools/create_kyradat/games.cpp 2009-09-17 12:02:17 UTC (rev 44143)
@@ -0,0 +1,810 @@
+/* ScummVM Tools
+ * Copyright (C) 2009 The ScummVM project
+ *
+ * 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$
+ *
+ */
+
+#include "create_kyradat.h"
+
+// Game tables
+
+namespace {
+
+const Game kyra1Games[] = {
+ // Demos
+ { kKyra1, EN_ANY, kPlatformPC, kDemoVersion, "7b7504c8560ffc914d34c44c71b3094c" },
+ { kKyra1, EN_ANY, kPlatformPC, kDemoCDVersion, "226fdba99cb11ef1047131d9a50e6292" },
+
+ // Amiga
+ { kKyra1, EN_ANY, kPlatformAmiga, kAmigaVersion, "b620564b6b7e0787b053ca9e35bd9f52" },
+
+ // Floppy
+ { kKyra1, EN_ANY, kPlatformPC, -1, "76a4fc84e173cadb6369785787e1546e" },
+ { kKyra1, DE_DEU, kPlatformPC, -1, "9442d6f7db6a41f3dd4aa4de5d36e107" },
+ { kKyra1, FR_FRA, kPlatformPC, -1, "aa9d6d78d8b199deaf48efeca6d19af2" },
+ { kKyra1, IT_ITA, kPlatformPC, -1, "5d7550306b369a3492f9f3402702477c" },
+ { kKyra1, ES_ESP, kPlatformPC, -1, "9ff130d2558bcd674d4074849d93c362" },
+
+ // Talkie
+ { kKyra1, EN_ANY, kPlatformPC, kTalkieVersion, "1ebc18f3e7fbb72474a55cb0fa089ed4" },
+ { kKyra1, DE_DEU, kPlatformPC, kTalkieVersion, "c65d381184f98ac26d9efd2d45baef51" },
+ { kKyra1, FR_FRA, kPlatformPC, kTalkieVersion, "307c5d4a554d9068ac3d326e350ae4a6" },
+ { kKyra1, IT_ITA, kPlatformPC, kTalkieVersion, "d0f1752098236083d81b9497bd2b6989" }, // Italian fan translation
+
+ // FM-TOWNS
+ { kKyra1, EN_ANY, kPlatformFMTowns, kFMTownsVersionE, "5a3ad60ccd0f2e29463e0368cd14a60d" },
+ { kKyra1, JA_JPN, kPlatformFMTowns, kFMTownsVersionJ, "5a3ad60ccd0f2e29463e0368cd14a60d" },
+
+ GAME_DUMMY_ENTRY
+};
+
+const Game kyra2Games[] = {
+ // demos
+ { kKyra2, EN_ANY, kPlatformPC, k2DemoVersion, "a620a37579dd44ab0403482285e3897f" },
+ { kKyra2, EN_ANY, kPlatformPC, k2CDDemoE, "fa54d8abfe05f9186c05f7de7eaf1480" },
+ { kKyra2, FR_FRA, kPlatformPC, k2CDDemoF, "fa54d8abfe05f9186c05f7de7eaf1480" },
+ { kKyra2, DE_DEU, kPlatformPC, k2CDDemoG, "fa54d8abfe05f9186c05f7de7eaf1480" },
+
+ // floppy games
+ { kKyra2, EN_ANY, kPlatformPC, k2FloppyFile1, "9b0f5e57b5a2ed88b5b989cbb402b6c7" },
+ { kKyra2, FR_FRA, kPlatformPC, k2FloppyFile1, "df31cc9e37e1cf68df2fdc75ddf2d87b" },
+ { kKyra2, DE_DEU, kPlatformPC, k2FloppyFile1, "0ca4f9a1438264a4c63c3218e064ed3b" },
+ { kKyra2, IT_ITA, kPlatformPC, k2FloppyFile1, "178d3ab913f61bfba21d2fb196405e8c" },
+ { kKyra2, EN_ANY, kPlatformPC, k2FloppyFile2, "7c3eadbe5122722cf2e5e1611e19dfb9" },
+ { kKyra2, FR_FRA, kPlatformPC, k2FloppyFile2, "fc2c6782778e6c6d5a553d1cb73c98ad" },
+ { kKyra2, DE_DEU, kPlatformPC, k2FloppyFile2, "0d9b0eb7b0ad889ec942d74d80dde1bf" },
+ { kKyra2, IT_ITA, kPlatformPC, k2FloppyFile2, "3a61ed6b7c00ddae383a0361799e2ba6" },
+
+ // talkie games
+ { kKyra2, EN_ANY, kPlatformPC, k2CDFile1E, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
+ { kKyra2, FR_FRA, kPlatformPC, k2CDFile1F, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
+ { kKyra2, DE_DEU, kPlatformPC, k2CDFile1G, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
+ { kKyra2, EN_ANY, kPlatformPC, k2CDFile2E, "e20d0d2e500f01e399ec588247a7e213" },
+ { kKyra2, FR_FRA, kPlatformPC, k2CDFile2F, "e20d0d2e500f01e399ec588247a7e213" },
+ { kKyra2, DE_DEU, kPlatformPC, k2CDFile2G, "e20d0d2e500f01e399ec588247a7e213" },
+ { kKyra2, IT_ITA, kPlatformPC, k2CDFile1I, "130795aa8f2333250c895dae9028b9bb" }, // Italian Fan Translation (using same offsets as English)
+
+ // FM-TOWNS games
+ { kKyra2, EN_ANY, kPlatformFMTowns, k2TownsFile1E, "74f50d79c919cc8e7196c24942ce43d7" },
+ { kKyra2, JA_JPN, kPlatformFMTowns, k2TownsFile1J, "74f50d79c919cc8e7196c24942ce43d7" },
+ { kKyra2, EN_ANY, kPlatformFMTowns, k2TownsFile2E, "a9a7fd4f05d00090e9e8bda073e6d431" },
+ { kKyra2, JA_JPN, kPlatformFMTowns, k2TownsFile2J, "a9a7fd4f05d00090e9e8bda073e6d431" },
+
+ GAME_DUMMY_ENTRY
+};
+
+const Game kyra3Games[] = {
+ { kKyra3, EN_ANY, kPlatformPC, -1, "bf68701eb591d0b72219f314c0d32688" },
+ GAME_DUMMY_ENTRY
+};
+
+const Game lolGames[] = {
+ // DOS demo
+ { kLol, EN_ANY, kPlatformPC, k2DemoLol, "30bb5af87d38adb47d3e6ce06b1cb042" },
+
+ // DOS floppy
+ { kLol, EN_ANY, kPlatformPC, -1, "6b843869772c1b779e1386be868c15dd" },
+
+ // DOS CD
+ { kLol, EN_ANY, kPlatformPC, kLolCD1, "9d1778314de80598c0b0d032e2a1a1cf" },
+ { kLol, EN_ANY, kPlatformPC, kLolCD2, "263998ec600afca1cc7b935c473df670" },
+
+ GAME_DUMMY_ENTRY
+};
+
+} // end of anonymous namespace
+
+const Game *gameDescs[] = {
+ kyra1Games,
+ kyra2Games,
+ kyra3Games,
+ lolGames,
+ 0
+};
+
+// Need tables
+
+namespace {
+
+const int kyra1FloppyNeed[] = {
+ kKallakWritingSeq,
+ kMalcolmTreeSeq,
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kKallakMalcolmSeq,
+ kForestSeq,
+ kIntroCPSStrings,
+ kIntroCOLStrings,
+ kIntroWSAStrings,
+ kIntroStrings,
+ kRoomList,
+ kRoomFilenames,
+ kCharacterImageFilenames,
+ kDefaultShapes,
+ kItemNames,
+ kTakenStrings,
+ kPlacedStrings,
+ kDroppedStrings,
+ kNoDropStrings,
+ kAmuleteAnimSeq,
+ kPaletteList1,
+ kPaletteList2,
+ kPaletteList3,
+ kPaletteList4,
+ kPaletteList5,
+ kPaletteList6,
+ kPaletteList7,
+ kPaletteList8,
+ kPaletteList9,
+ kPaletteList10,
+ kPaletteList11,
+ kPaletteList12,
+ kPaletteList13,
+ kPaletteList14,
+ kPaletteList15,
+ kPaletteList16,
+ kPaletteList17,
+ kPaletteList18,
+ kPaletteList19,
+ kPaletteList20,
+ kPaletteList21,
+ kPaletteList22,
+ kPaletteList23,
+ kPaletteList24,
+ kPaletteList25,
+ kPaletteList26,
+ kPaletteList27,
+ kPaletteList28,
+ kPaletteList29,
+ kPaletteList30,
+ kPaletteList31,
+ kPaletteList32,
+ kPaletteList33,
+ kPutDownString,
+ kWaitAmuletString,
+ kBlackJewelString,
+ kHealingTipString,
+ kPoisonGoneString,
+ kHealing1Shapes,
+ kHealing2Shapes,
+ kThePoisonStrings,
+ kFluteStrings,
+ kPoisonDeathShapes,
+ kFluteShapes,
+ kWinter1Shapes,
+ kWinter2Shapes,
+ kWinter3Shapes,
+ kDrinkShapes,
+ kWispShapes,
+ kMagicAnimShapes,
+ kBranStoneShapes,
+ kWispJewelStrings,
+ kMagicJewelStrings,
+ kFlaskFullString,
+ kFullFlaskString,
+ kOutroReunionSeq,
+ kOutroHomeString,
+ kVeryCleverString,
+ kGUIStrings,
+ kNewGameString,
+ kConfigStrings,
+ kAudioTracks,
+ kAudioTracksIntro,
+ -1
+};
+
+const int kyra1CDNeed[] = {
+ kKallakWritingSeq,
+ kMalcolmTreeSeq,
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kKallakMalcolmSeq,
+ kForestSeq,
+ kIntroCPSStrings,
+ kIntroCOLStrings,
+ kIntroWSAStrings,
+ kIntroStrings,
+ kRoomList,
+ kRoomFilenames,
+ kCharacterImageFilenames,
+ kDefaultShapes,
+ kItemNames,
+ kTakenStrings,
+ kPlacedStrings,
+ kDroppedStrings,
+ kNoDropStrings,
+ kAmuleteAnimSeq,
+ kPaletteList1,
+ kPaletteList2,
+ kPaletteList3,
+ kPaletteList4,
+ kPaletteList5,
+ kPaletteList6,
+ kPaletteList7,
+ kPaletteList8,
+ kPaletteList9,
+ kPaletteList10,
+ kPaletteList11,
+ kPaletteList12,
+ kPaletteList13,
+ kPaletteList14,
+ kPaletteList15,
+ kPaletteList16,
+ kPaletteList17,
+ kPaletteList18,
+ kPaletteList19,
+ kPaletteList20,
+ kPaletteList21,
+ kPaletteList22,
+ kPaletteList23,
+ kPaletteList24,
+ kPaletteList25,
+ kPaletteList26,
+ kPaletteList27,
+ kPaletteList28,
+ kPaletteList29,
+ kPaletteList30,
+ kPaletteList31,
+ kPaletteList32,
+ kPaletteList33,
+ kPutDownString,
+ kWaitAmuletString,
+ kBlackJewelString,
+ kHealingTipString,
+ kPoisonGoneString,
+ kHealing1Shapes,
+ kHealing2Shapes,
+ kThePoisonStrings,
+ kFluteStrings,
+ kPoisonDeathShapes,
+ kFluteShapes,
+ kWinter1Shapes,
+ kWinter2Shapes,
+ kWinter3Shapes,
+ kDrinkShapes,
+ kWispShapes,
+ kMagicAnimShapes,
+ kBranStoneShapes,
+ kWispJewelStrings,
+ kMagicJewelStrings,
+ kFlaskFullString,
+ kFullFlaskString,
+ kOutroReunionSeq,
+ kOutroHomeString,
+ kVeryCleverString,
+ kGUIStrings,
+ kNewGameString,
+ kConfigStrings,
+ kAudioTracks,
+ kAudioTracksIntro,
+ -1
+};
+
+const int kyra1DemoNeed[] = {
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kIntroCPSStrings,
+ kIntroCOLStrings,
+ kIntroWSAStrings,
+ kIntroStrings,
+ kDemo1Seq,
+ kDemo2Seq,
+ kDemo3Seq,
+ kDemo4Seq,
+ kAudioTracksIntro,
+ -1
+};
+
+const int kyra1DemoCDNeed[] = {
+ kKallakWritingSeq,
+ kMalcolmTreeSeq,
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kKallakMalcolmSeq,
+ kForestSeq,
+ kIntroCPSStrings,
+ kIntroCOLStrings,
+ kIntroWSAStrings,
+ kIntroStrings,
+ kAudioTracksIntro,
+ -1
+};
+
+const int kyra1TownsNeed[] = {
+ kKallakWritingSeq,
+ kMalcolmTreeSeq,
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kKallakMalcolmSeq,
+ kForestSeq,
+ kIntroCPSStrings,
+ kIntroCOLStrings,
+ kIntroWSAStrings,
+ kIntroStrings,
+ kRoomList,
+ kRoomFilenames,
+ kCharacterImageFilenames,
+ kDefaultShapes,
+ kItemNames,
+ kTakenStrings,
+ kPlacedStrings,
+ kDroppedStrings,
+ kNoDropStrings,
+ kAmuleteAnimSeq,
+ kPaletteList1,
+ kPaletteList2,
+ kPaletteList3,
+ kPaletteList4,
+ kPaletteList5,
+ kPaletteList6,
+ kPaletteList7,
+ kPaletteList8,
+ kPaletteList9,
+ kPaletteList10,
+ kPaletteList11,
+ kPaletteList12,
+ kPaletteList13,
+ kPaletteList14,
+ kPaletteList15,
+ kPaletteList16,
+ kPaletteList17,
+ kPaletteList18,
+ kPaletteList19,
+ kPaletteList20,
+ kPaletteList21,
+ kPaletteList22,
+ kPaletteList23,
+ kPaletteList24,
+ kPaletteList25,
+ kPaletteList26,
+ kPaletteList27,
+ kPaletteList28,
+ kPaletteList29,
+ kPaletteList30,
+ kPaletteList31,
+ kPaletteList32,
+ kPaletteList33,
+ kPutDownString,
+ kWaitAmuletString,
+ kBlackJewelString,
+ kHealingTipString,
+ kPoisonGoneString,
+ kHealing1Shapes,
+ kHealing2Shapes,
+ kThePoisonStrings,
+ kFluteStrings,
+ kPoisonDeathShapes,
+ kFluteShapes,
+ kWinter1Shapes,
+ kWinter2Shapes,
+ kWinter3Shapes,
+ kDrinkShapes,
+ kWispShapes,
+ kMagicAnimShapes,
+ kBranStoneShapes,
+ kWispJewelStrings,
+ kMagicJewelStrings,
+ kFlaskFullString,
+ kFullFlaskString,
+ kOutroReunionSeq,
+ kOutroHomeString,
+ kVeryCleverString,
+ kGUIStrings,
+ kNewGameString,
+ kConfigStrings,
+
+ kKyra1TownsSFXwdTable,
+ kKyra1TownsSFXbtTable,
+ kKyra1TownsCDATable,
+ kAudioTracks,
+ kCreditsStrings,
+ -1
+};
+
+const int kyra1AmigaNeed[] = {
+ kKallakWritingSeq,
+ kMalcolmTreeSeq,
+ kWestwoodLogoSeq,
+ kKyrandiaLogoSeq,
+ kKallakMalcolmSeq,
+ kForestSeq,
+ kIntroCPSStrings,
+ kIntroWSAStrings,
+ kIntroCOLStrings,
+ kIntroStrings,
+ kRoomList,
+ kRoomFilenames,
+ kCharacterImageFilenames,
+ kDefaultShapes,
+ kItemNames,
+ kTakenStrings,
+ kPlacedStrings,
+ kDroppedStrings,
+ kNoDropStrings,
+ kAmuleteAnimSeq,
+ kPutDownString,
+ kWaitAmuletString,
+ kBlackJewelString,
+ kHealingTipString,
+ kPoisonGoneString,
+ kHealing1Shapes,
+ kHealing2Shapes,
+ kThePoisonStrings,
+ kFluteStrings,
+ kPoisonDeathShapes,
+ kFluteShapes,
+ kWinter1Shapes,
+ kWinter2Shapes,
+ kWinter3Shapes,
+ kDrinkShapes,
+ kWispShapes,
+ kMagicAnimShapes,
+ kBranStoneShapes,
+ kWispJewelStrings,
+ kMagicJewelStrings,
+ kFlaskFullString,
+ kFullFlaskString,
+ kOutroReunionSeq,
+ kOutroHomeString,
+ kVeryCleverString,
+ kGUIStrings,
+ kNewGameString,
+ kConfigStrings,
+ kCreditsStrings,
+ kAmigaIntroSFXTable,
+ kAmigaGameSFXTable,
+ -1
+};
+
+const int kyra2CDFile1Need[] = {
+ k2SeqplayPakFiles,
+ k2SeqplayCredits,
+ k2SeqplayCreditsSpecial,
+ k2SeqplayStrings,
+ k2SeqplaySfxFiles,
+ k2SeqplayTlkFiles,
+ k2SeqplaySeqData,
+ k2SeqplayIntroTracks,
+ k2SeqplayFinaleTracks,
+ -1
+};
+
+const int kyra2CDFile2Need[] = {
+ k2IngameSfxFiles,
+ k2IngameSfxIndex,
+ k2IngameTracks,
+ k2IngameTalkObjIndex,
+ k2IngameItemAnimData,
+ -1
+};
+
+const int kyra2CDDemoNeed[] = {
+ k2IngameSfxFiles,
+ k2IngameSfxIndex,
+ k2IngameTracks,
+ k2IngameTalkObjIndex,
+ k2IngameItemAnimData,
+ k2IngameTlkDemoStrings,
+ -1
+};
+
+const int kyra2FloppyFile1Need[] = {
+ k2SeqplayPakFiles,
+ k2SeqplayStrings,
+ k2SeqplaySfxFiles,
+ k2SeqplayIntroTracks,
+ k2SeqplayFinaleTracks,
+ k2SeqplaySeqData,
+ -1
+};
+
+const int kyra2FloppyFile2Need[] = {
+ k2IngamePakFiles,
+ k2IngameSfxFiles,
+ k2IngameSfxIndex,
+ k2IngameTracks,
+ k2IngameTalkObjIndex,
+ k2IngameItemAnimData,
+ -1
+};
+
+const int kyra2TownsFile1Need[] = {
+ k2SeqplayPakFiles,
+ k2SeqplayStrings,
+ k2SeqplaySfxFiles,
+ k2SeqplaySeqData,
+ k2SeqplayIntroCDA,
+ k2SeqplayFinaleCDA,
+ -1
+};
+
+const int kyra2TownsFile2Need[] = {
+ k2IngamePakFiles,
+ k2IngameSfxFilesTns,
+ k2IngameSfxIndex,
+ k2IngameCDA,
+ k2IngameTalkObjIndex,
+ k2IngameTimJpStrings,
+ k2IngameItemAnimData,
+ -1
+};
+
+const int kyra2DemoNeed[] = {
+ k2SeqplayPakFiles,
+ k2SeqplaySeqData,
+ k2SeqplaySfxFiles,
+ k2SeqplayIntroTracks,
+ k2SeqplayShapeAnimData,
+ -1
+};
+
+const int kyra2TlkDemoNeed[] = {
+ k2IngameTlkDemoStrings,
+ -1
+};
+
+const int kyra3Need[] = {
+ k3MainMenuStrings,
+ k3MusicFiles,
+ k3ScoreTable,
+ k3SfxFiles,
+ k3SfxMap,
+ k3ItemAnimData,
+ k3ItemMagicTable,
+ k3ItemStringMap,
+ -1
+};
+
+const int lolFloppyNeed[] = {
+ kLolIngamePakFiles,
+
+ kLolCharacterDefs,
+ kLolIngameSfxFiles,
+ kLolIngameSfxIndex,
+ kLolMusicTrackMap,
+ kLolGMSfxIndex,
+ kLolMT32SfxIndex,
+ kLolSpellProperties,
+ kLolGameShapeMap,
+ kLolSceneItemOffs,
+ kLolCharInvIndex,
+ kLolCharInvDefs,
+ kLolCharDefsMan,
+ kLolCharDefsWoman,
+ kLolCharDefsKieran,
+ kLolCharDefsAkshel,
+ kLolExpRequirements,
+ kLolMonsterModifiers,
+ kLolMonsterLevelOffsets,
+ kLolMonsterDirFlags,
+ kLolMonsterScaleY,
+ kLolMonsterScaleX,
+ kLolMonsterScaleWH,
+ kLolFlyingItemShp,
+ kLolInventoryDesc,
+
+ kLolLevelShpList,
+ kLolLevelDatList,
+ kLolCompassDefs,
+ kLolStashSetup,
+ kLolDscUnk1,
+ kLolDscShapeIndex1,
+ kLolDscShapeIndex2,
+ kLolDscScaleWidthData,
+ kLolDscScaleHeightData,
+ kLolDscX,
+ kLolDscY,
+ kLolDscTileIndex,
+ kLolDscUnk2,
+ kLolDscDoorShapeIndex,
+ kLolDscDimData1,
+ kLolDscDimData2,
+ kLolDscBlockMap,
+ kLolDscDimMap,
+ kLolDscShapeOvlIndex,
+ 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 lolCDFile1Need[] = {
+ kLolHistory,
+ -1
+};
+
+const int lolCDFile2Need[] = {
+ kLolCharacterDefs,
+ kLolIngameSfxFiles,
+ kLolIngameSfxIndex,
+ kLolMusicTrackMap,
+ kLolGMSfxIndex,
+ kLolMT32SfxIndex,
+ kLolSpellProperties,
+ kLolGameShapeMap,
+ kLolSceneItemOffs,
+ kLolCharInvIndex,
+ kLolCharInvDefs,
+ kLolCharDefsMan,
+ kLolCharDefsWoman,
+ kLolCharDefsKieran,
+ kLolCharDefsAkshel,
+ kLolExpRequirements,
+ kLolMonsterModifiers,
+ kLolMonsterLevelOffsets,
+ kLolMonsterDirFlags,
+ kLolMonsterScaleY,
+ kLolMonsterScaleX,
+ kLolMonsterScaleWH,
+ kLolFlyingItemShp,
+ kLolInventoryDesc,
+
+ kLolLevelShpList,
+ kLolLevelDatList,
+ kLolCompassDefs,
+ kLolItemPrices,
+ kLolStashSetup,
+ kLolDscUnk1,
+ kLolDscShapeIndex1,
+ kLolDscShapeIndex2,
+ kLolDscScaleWidthData,
+ kLolDscScaleHeightData,
+ kLolDscX,
+ kLolDscY,
+ kLolDscTileIndex,
+ kLolDscUnk2,
+ kLolDscDoorShapeIndex,
+ kLolDscDimData1,
+ kLolDscDimData2,
+ kLolDscBlockMap,
+ kLolDscDimMap,
+ kLolDscShapeOvlIndex,
+ 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,
+ kLolSeqplayIntroTracks,
+ -1
+};
+
+struct GameNeed {
+ int game;
+ int special;
+
+ const int *entries;
+};
+
+const GameNeed gameNeedTable[] = {
+ { kKyra1, -1, kyra1FloppyNeed },
+ { kKyra1, kTalkieVersion, kyra1CDNeed },
+ { kKyra1, kFMTownsVersionE , kyra1TownsNeed },
+ { kKyra1, kFMTownsVersionJ, kyra1TownsNeed },
+ { kKyra1, kAmigaVersion, kyra1AmigaNeed },
+ { kKyra1, kDemoVersion, kyra1DemoNeed },
+ { kKyra1, kDemoCDVersion, kyra1DemoCDNeed },
+
+ { kKyra2, k2FloppyFile1, kyra2FloppyFile1Need },
+ { kKyra2, k2FloppyFile2, kyra2FloppyFile2Need },
+ { kKyra2, k2CDFile1E, kyra2CDFile1Need },
+ { kKyra2, k2CDFile1F, kyra2CDFile1Need },
+ { kKyra2, k2CDFile1G, kyra2CDFile1Need },
+ { kKyra2, k2CDFile1I, kyra2CDFile1Need }, // Italian fan translation
+ { kKyra2, k2CDFile2E, kyra2CDFile2Need },
+ { kKyra2, k2CDFile2F, kyra2CDFile2Need },
+ { kKyra2, k2CDFile2G, kyra2CDFile2Need },
+ { kKyra2, k2CDDemoE, kyra2CDDemoNeed },
+ { kKyra2, k2CDDemoF, kyra2CDDemoNeed },
+ { kKyra2, k2CDDemoG, kyra2CDDemoNeed },
+ { kKyra2, k2TownsFile1E , kyra2TownsFile1Need },
+ { kKyra2, k2TownsFile1J, kyra2TownsFile1Need },
+ { kKyra2, k2TownsFile2E , kyra2TownsFile2Need },
+ { kKyra2, k2TownsFile2J, kyra2TownsFile2Need },
+ { kKyra2, k2DemoVersion, kyra2DemoNeed },
+ { kKyra2, k2DemoVersionTlkE, kyra2TlkDemoNeed },
+ { kKyra2, k2DemoVersionTlkF, kyra2TlkDemoNeed },
+ { kKyra2, k2DemoVersionTlkG, kyra2TlkDemoNeed },
+ { kLol, k2DemoLol, lolDemoNeed },
+
+ { kKyra3, -1, kyra3Need },
+
+ { kLol, -1, lolFloppyNeed },
+ { kLol, kLolCD1, lolCDFile1Need },
+ { kLol, kLolCD2, lolCDFile2Need },
+
+ { -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 && need->special == g->special)
+ return need->entries;
+ }
+
+ return 0;
+}
+
Property changes on: scummvm/trunk/tools/create_kyradat/games.cpp
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Date Rev Author URL Id
Added: svn:eol-style
+ native
Deleted: scummvm/trunk/tools/create_kyradat/misc.h
===================================================================
--- scummvm/trunk/tools/create_kyradat/misc.h 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/misc.h 2009-09-17 12:02:17 UTC (rev 44143)
@@ -1,791 +0,0 @@
-const int kyra1FloppyNeed[] = {
- kKallakWritingSeq,
- kMalcolmTreeSeq,
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kKallakMalcolmSeq,
- kForestSeq,
- kIntroCPSStrings,
- kIntroCOLStrings,
- kIntroWSAStrings,
- kIntroStrings,
- kRoomList,
- kRoomFilenames,
- kCharacterImageFilenames,
- kDefaultShapes,
- kItemNames,
- kTakenStrings,
- kPlacedStrings,
- kDroppedStrings,
- kNoDropStrings,
- kAmuleteAnimSeq,
- kPaletteList1,
- kPaletteList2,
- kPaletteList3,
- kPaletteList4,
- kPaletteList5,
- kPaletteList6,
- kPaletteList7,
- kPaletteList8,
- kPaletteList9,
- kPaletteList10,
- kPaletteList11,
- kPaletteList12,
- kPaletteList13,
- kPaletteList14,
- kPaletteList15,
- kPaletteList16,
- kPaletteList17,
- kPaletteList18,
- kPaletteList19,
- kPaletteList20,
- kPaletteList21,
- kPaletteList22,
- kPaletteList23,
- kPaletteList24,
- kPaletteList25,
- kPaletteList26,
- kPaletteList27,
- kPaletteList28,
- kPaletteList29,
- kPaletteList30,
- kPaletteList31,
- kPaletteList32,
- kPaletteList33,
- kPutDownString,
- kWaitAmuletString,
- kBlackJewelString,
- kHealingTipString,
- kPoisonGoneString,
- kHealing1Shapes,
- kHealing2Shapes,
- kThePoisonStrings,
- kFluteStrings,
- kPoisonDeathShapes,
- kFluteShapes,
- kWinter1Shapes,
- kWinter2Shapes,
- kWinter3Shapes,
- kDrinkShapes,
- kWispShapes,
- kMagicAnimShapes,
- kBranStoneShapes,
- kWispJewelStrings,
- kMagicJewelStrings,
- kFlaskFullString,
- kFullFlaskString,
- kOutroReunionSeq,
- kOutroHomeString,
- kVeryCleverString,
- kGUIStrings,
- kNewGameString,
- kConfigStrings,
- kAudioTracks,
- kAudioTracksIntro,
- -1
-};
-
-const int kyra1CDNeed[] = {
- kKallakWritingSeq,
- kMalcolmTreeSeq,
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kKallakMalcolmSeq,
- kForestSeq,
- kIntroCPSStrings,
- kIntroCOLStrings,
- kIntroWSAStrings,
- kIntroStrings,
- kRoomList,
- kRoomFilenames,
- kCharacterImageFilenames,
- kDefaultShapes,
- kItemNames,
- kTakenStrings,
- kPlacedStrings,
- kDroppedStrings,
- kNoDropStrings,
- kAmuleteAnimSeq,
- kPaletteList1,
- kPaletteList2,
- kPaletteList3,
- kPaletteList4,
- kPaletteList5,
- kPaletteList6,
- kPaletteList7,
- kPaletteList8,
- kPaletteList9,
- kPaletteList10,
- kPaletteList11,
- kPaletteList12,
- kPaletteList13,
- kPaletteList14,
- kPaletteList15,
- kPaletteList16,
- kPaletteList17,
- kPaletteList18,
- kPaletteList19,
- kPaletteList20,
- kPaletteList21,
- kPaletteList22,
- kPaletteList23,
- kPaletteList24,
- kPaletteList25,
- kPaletteList26,
- kPaletteList27,
- kPaletteList28,
- kPaletteList29,
- kPaletteList30,
- kPaletteList31,
- kPaletteList32,
- kPaletteList33,
- kPutDownString,
- kWaitAmuletString,
- kBlackJewelString,
- kHealingTipString,
- kPoisonGoneString,
- kHealing1Shapes,
- kHealing2Shapes,
- kThePoisonStrings,
- kFluteStrings,
- kPoisonDeathShapes,
- kFluteShapes,
- kWinter1Shapes,
- kWinter2Shapes,
- kWinter3Shapes,
- kDrinkShapes,
- kWispShapes,
- kMagicAnimShapes,
- kBranStoneShapes,
- kWispJewelStrings,
- kMagicJewelStrings,
- kFlaskFullString,
- kFullFlaskString,
- kOutroReunionSeq,
- kOutroHomeString,
- kVeryCleverString,
- kGUIStrings,
- kNewGameString,
- kConfigStrings,
- kAudioTracks,
- kAudioTracksIntro,
- -1
-};
-
-const int kyra1DemoNeed[] = {
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kIntroCPSStrings,
- kIntroCOLStrings,
- kIntroWSAStrings,
- kIntroStrings,
- kDemo1Seq,
- kDemo2Seq,
- kDemo3Seq,
- kDemo4Seq,
- kAudioTracksIntro,
- -1
-};
-
-const int kyra1DemoCDNeed[] = {
- kKallakWritingSeq,
- kMalcolmTreeSeq,
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kKallakMalcolmSeq,
- kForestSeq,
- kIntroCPSStrings,
- kIntroCOLStrings,
- kIntroWSAStrings,
- kIntroStrings,
- kAudioTracksIntro,
- -1
-};
-
-const int kyra1TownsNeed[] = {
- kKallakWritingSeq,
- kMalcolmTreeSeq,
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kKallakMalcolmSeq,
- kForestSeq,
- kIntroCPSStrings,
- kIntroCOLStrings,
- kIntroWSAStrings,
- kIntroStrings,
- kRoomList,
- kRoomFilenames,
- kCharacterImageFilenames,
- kDefaultShapes,
- kItemNames,
- kTakenStrings,
- kPlacedStrings,
- kDroppedStrings,
- kNoDropStrings,
- kAmuleteAnimSeq,
- kPaletteList1,
- kPaletteList2,
- kPaletteList3,
- kPaletteList4,
- kPaletteList5,
- kPaletteList6,
- kPaletteList7,
- kPaletteList8,
- kPaletteList9,
- kPaletteList10,
- kPaletteList11,
- kPaletteList12,
- kPaletteList13,
- kPaletteList14,
- kPaletteList15,
- kPaletteList16,
- kPaletteList17,
- kPaletteList18,
- kPaletteList19,
- kPaletteList20,
- kPaletteList21,
- kPaletteList22,
- kPaletteList23,
- kPaletteList24,
- kPaletteList25,
- kPaletteList26,
- kPaletteList27,
- kPaletteList28,
- kPaletteList29,
- kPaletteList30,
- kPaletteList31,
- kPaletteList32,
- kPaletteList33,
- kPutDownString,
- kWaitAmuletString,
- kBlackJewelString,
- kHealingTipString,
- kPoisonGoneString,
- kHealing1Shapes,
- kHealing2Shapes,
- kThePoisonStrings,
- kFluteStrings,
- kPoisonDeathShapes,
- kFluteShapes,
- kWinter1Shapes,
- kWinter2Shapes,
- kWinter3Shapes,
- kDrinkShapes,
- kWispShapes,
- kMagicAnimShapes,
- kBranStoneShapes,
- kWispJewelStrings,
- kMagicJewelStrings,
- kFlaskFullString,
- kFullFlaskString,
- kOutroReunionSeq,
- kOutroHomeString,
- kVeryCleverString,
- kGUIStrings,
- kNewGameString,
- kConfigStrings,
-
- kKyra1TownsSFXwdTable,
- kKyra1TownsSFXbtTable,
- kKyra1TownsCDATable,
- kAudioTracks,
- kCreditsStrings,
- -1
-};
-
-const int kyra1AmigaNeed[] = {
- kKallakWritingSeq,
- kMalcolmTreeSeq,
- kWestwoodLogoSeq,
- kKyrandiaLogoSeq,
- kKallakMalcolmSeq,
- kForestSeq,
- kIntroCPSStrings,
- kIntroWSAStrings,
- kIntroCOLStrings,
- kIntroStrings,
- kRoomList,
- kRoomFilenames,
- kCharacterImageFilenames,
- kDefaultShapes,
- kItemNames,
- kTakenStrings,
- kPlacedStrings,
- kDroppedStrings,
- kNoDropStrings,
- kAmuleteAnimSeq,
- kPutDownString,
- kWaitAmuletString,
- kBlackJewelString,
- kHealingTipString,
- kPoisonGoneString,
- kHealing1Shapes,
- kHealing2Shapes,
- kThePoisonStrings,
- kFluteStrings,
- kPoisonDeathShapes,
- kFluteShapes,
- kWinter1Shapes,
- kWinter2Shapes,
- kWinter3Shapes,
- kDrinkShapes,
- kWispShapes,
- kMagicAnimShapes,
- kBranStoneShapes,
- kWispJewelStrings,
- kMagicJewelStrings,
- kFlaskFullString,
- kFullFlaskString,
- kOutroReunionSeq,
- kOutroHomeString,
- kVeryCleverString,
- kGUIStrings,
- kNewGameString,
- kConfigStrings,
- kCreditsStrings,
- kAmigaIntroSFXTable,
- kAmigaGameSFXTable,
- -1
-};
-
-const int kyra2CDFile1Need[] = {
- k2SeqplayPakFiles,
- k2SeqplayCredits,
- k2SeqplayCreditsSpecial,
- k2SeqplayStrings,
- k2SeqplaySfxFiles,
- k2SeqplayTlkFiles,
- k2SeqplaySeqData,
- k2SeqplayIntroTracks,
- k2SeqplayFinaleTracks,
- -1
-};
-
-const int kyra2CDFile2Need[] = {
- k2IngameSfxFiles,
- k2IngameSfxIndex,
- k2IngameTracks,
- k2IngameTalkObjIndex,
- k2IngameItemAnimData,
- -1
-};
-
-const int kyra2CDDemoNeed[] = {
- k2IngameSfxFiles,
- k2IngameSfxIndex,
- k2IngameTracks,
- k2IngameTalkObjIndex,
- k2IngameItemAnimData,
- k2IngameTlkDemoStrings,
- -1
-};
-
-const int kyra2FloppyFile1Need[] = {
- k2SeqplayPakFiles,
- k2SeqplayStrings,
- k2SeqplaySfxFiles,
- k2SeqplayIntroTracks,
- k2SeqplayFinaleTracks,
- k2SeqplaySeqData,
- -1
-};
-
-const int kyra2FloppyFile2Need[] = {
- k2IngamePakFiles,
- k2IngameSfxFiles,
- k2IngameSfxIndex,
- k2IngameTracks,
- k2IngameTalkObjIndex,
- k2IngameItemAnimData,
- -1
-};
-
-const int kyra2TownsFile1Need[] = {
- k2SeqplayPakFiles,
- k2SeqplayStrings,
- k2SeqplaySfxFiles,
- k2SeqplaySeqData,
- k2SeqplayIntroCDA,
- k2SeqplayFinaleCDA,
- -1
-};
-
-const int kyra2TownsFile2Need[] = {
- k2IngamePakFiles,
- k2IngameSfxFilesTns,
- k2IngameSfxIndex,
- k2IngameCDA,
- k2IngameTalkObjIndex,
- k2IngameTimJpStrings,
- k2IngameItemAnimData,
- -1
-};
-
-const int kyra2DemoNeed[] = {
- k2SeqplayPakFiles,
- k2SeqplaySeqData,
- k2SeqplaySfxFiles,
- k2SeqplayIntroTracks,
- k2SeqplayShapeAnimData,
- -1
-};
-
-const int kyra2TlkDemoNeed[] = {
- k2IngameTlkDemoStrings,
- -1
-};
-
-const int kyra3Need[] = {
- k3MainMenuStrings,
- k3MusicFiles,
- k3ScoreTable,
- k3SfxFiles,
- k3SfxMap,
- k3ItemAnimData,
- k3ItemMagicTable,
- k3ItemStringMap,
- -1
-};
-
-const int lolFloppyNeed[] = {
- kLolIngamePakFiles,
-
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolMusicTrackMap,
- kLolGMSfxIndex,
- kLolMT32SfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterLevelOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingItemShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolStashSetup,
- kLolDscUnk1,
- kLolDscShapeIndex1,
- kLolDscShapeIndex2,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscShapeOvlIndex,
- 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 lolCDFile1Need[] = {
- kLolHistory,
- -1
-};
-
-const int lolCDFile2Need[] = {
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolMusicTrackMap,
- kLolGMSfxIndex,
- kLolMT32SfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterLevelOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingItemShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolItemPrices,
- kLolStashSetup,
- kLolDscUnk1,
- kLolDscShapeIndex1,
- kLolDscShapeIndex2,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscShapeOvlIndex,
- 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,
- kLolSeqplayIntroTracks,
- -1
-};
-
-const GameNeed gameNeedTable[] = {
- { kKyra1, -1, kyra1FloppyNeed },
- { kKyra1, kTalkieVersion, kyra1CDNeed },
- { kKyra1, kFMTownsVersionE , kyra1TownsNeed },
- { kKyra1, kFMTownsVersionJ, kyra1TownsNeed },
- { kKyra1, kAmigaVersion, kyra1AmigaNeed },
- { kKyra1, kDemoVersion, kyra1DemoNeed },
- { kKyra1, kDemoCDVersion, kyra1DemoCDNeed },
-
- { kKyra2, k2FloppyFile1, kyra2FloppyFile1Need },
- { kKyra2, k2FloppyFile2, kyra2FloppyFile2Need },
- { kKyra2, k2CDFile1E, kyra2CDFile1Need },
- { kKyra2, k2CDFile1F, kyra2CDFile1Need },
- { kKyra2, k2CDFile1G, kyra2CDFile1Need },
- { kKyra2, k2CDFile1I, kyra2CDFile1Need }, // Italian fan translation
- { kKyra2, k2CDFile2E, kyra2CDFile2Need },
- { kKyra2, k2CDFile2F, kyra2CDFile2Need },
- { kKyra2, k2CDFile2G, kyra2CDFile2Need },
- { kKyra2, k2CDDemoE, kyra2CDDemoNeed },
- { kKyra2, k2CDDemoF, kyra2CDDemoNeed },
- { kKyra2, k2CDDemoG, kyra2CDDemoNeed },
- { kKyra2, k2TownsFile1E , kyra2TownsFile1Need },
- { kKyra2, k2TownsFile1J, kyra2TownsFile1Need },
- { kKyra2, k2TownsFile2E , kyra2TownsFile2Need },
- { kKyra2, k2TownsFile2J, kyra2TownsFile2Need },
- { kKyra2, k2DemoVersion, kyra2DemoNeed },
- { kKyra2, k2DemoVersionTlkE, kyra2TlkDemoNeed },
- { kKyra2, k2DemoVersionTlkF, kyra2TlkDemoNeed },
- { kKyra2, k2DemoVersionTlkG, kyra2TlkDemoNeed },
- { kLol, k2DemoLol, lolDemoNeed },
-
- { kKyra3, -1, kyra3Need },
-
- { kLol, -1, lolFloppyNeed },
- { kLol, kLolCD1, lolCDFile1Need },
- { kLol, kLolCD2, lolCDFile2Need },
-
- { -1, -1, 0 }
-};
-
-const SpecialExtension specialTable[] = {
- { kTalkieVersion, "CD" },
- { kDemoVersion, "DEM" },
- { kDemoCDVersion, "CD.DEM" },
- { kFMTownsVersionE , "TNS" },
- { kFMTownsVersionJ, "TNS" },
- { kAmigaVersion, "AMG" },
-
- { k2CDFile1E, "CD" },
- { k2CDFile1F, "CD" },
- { k2CDFile1G, "CD" },
- { k2CDFile1I, "CD" },
- { k2CDFile2E, "CD" },
- { k2CDFile2F, "CD" },
- { k2CDFile2G, "CD" },
- { k2CDDemoE, "CD" },
- { k2CDDemoF, "CD" },
- { k2CDDemoG, "CD" },
-
- { k2TownsFile1E, "TNS" },
- { k2TownsFile1J, "TNS" },
- { k2TownsFile2E, "TNS" },
- { k2TownsFile2J, "TNS" },
- { k2DemoVersion, "DEM" },
- { k2DemoLol, "DEM" },
-
- { kLolCD1, "CD" },
- { kLolCD2, "CD" },
-
- { -1, 0 }
-};
-
-const Language languageTable[] = {
- { EN_ANY, "ENG" },
- { DE_DEU, "GER" },
- { FR_FRA, "FRE" },
- { IT_ITA, "ITA" },
- { ES_ESP, "SPA" },
- { JA_JPN, "JPN" },
- { -1, 0 }
-};
-
-const Game kyra1Games[] = {
- // Demos
- { kKyra1, EN_ANY, kPlatformPC, kDemoVersion, "7b7504c8560ffc914d34c44c71b3094c" },
- { kKyra1, EN_ANY, kPlatformPC, kDemoCDVersion, "226fdba99cb11ef1047131d9a50e6292" },
-
- // Amiga
- { kKyra1, EN_ANY, kPlatformAmiga, kAmigaVersion, "b620564b6b7e0787b053ca9e35bd9f52" },
-
- // Floppy
- { kKyra1, EN_ANY, kPlatformPC, -1, "76a4fc84e173cadb6369785787e1546e" },
- { kKyra1, DE_DEU, kPlatformPC, -1, "9442d6f7db6a41f3dd4aa4de5d36e107" },
- { kKyra1, FR_FRA, kPlatformPC, -1, "aa9d6d78d8b199deaf48efeca6d19af2" },
- { kKyra1, IT_ITA, kPlatformPC, -1, "5d7550306b369a3492f9f3402702477c" },
- { kKyra1, ES_ESP, kPlatformPC, -1, "9ff130d2558bcd674d4074849d93c362" },
-
- // Talkie
- { kKyra1, EN_ANY, kPlatformPC, kTalkieVersion, "1ebc18f3e7fbb72474a55cb0fa089ed4" },
- { kKyra1, DE_DEU, kPlatformPC, kTalkieVersion, "c65d381184f98ac26d9efd2d45baef51" },
- { kKyra1, FR_FRA, kPlatformPC, kTalkieVersion, "307c5d4a554d9068ac3d326e350ae4a6" },
- { kKyra1, IT_ITA, kPlatformPC, kTalkieVersion, "d0f1752098236083d81b9497bd2b6989" }, // Italian fan translation
-
- // FM-TOWNS
- { kKyra1, EN_ANY, kPlatformFMTowns, kFMTownsVersionE, "5a3ad60ccd0f2e29463e0368cd14a60d" },
- { kKyra1, JA_JPN, kPlatformFMTowns, kFMTownsVersionJ, "5a3ad60ccd0f2e29463e0368cd14a60d" },
-
- GAME_DUMMY_ENTRY
-};
-
-const Game kyra2Games[] = {
- // demos
- { kKyra2, EN_ANY, kPlatformPC, k2DemoVersion, "a620a37579dd44ab0403482285e3897f" },
- { kKyra2, EN_ANY, kPlatformPC, k2CDDemoE, "fa54d8abfe05f9186c05f7de7eaf1480" },
- { kKyra2, FR_FRA, kPlatformPC, k2CDDemoF, "fa54d8abfe05f9186c05f7de7eaf1480" },
- { kKyra2, DE_DEU, kPlatformPC, k2CDDemoG, "fa54d8abfe05f9186c05f7de7eaf1480" },
-
- // floppy games
- { kKyra2, EN_ANY, kPlatformPC, k2FloppyFile1, "9b0f5e57b5a2ed88b5b989cbb402b6c7" },
- { kKyra2, FR_FRA, kPlatformPC, k2FloppyFile1, "df31cc9e37e1cf68df2fdc75ddf2d87b" },
- { kKyra2, DE_DEU, kPlatformPC, k2FloppyFile1, "0ca4f9a1438264a4c63c3218e064ed3b" },
- { kKyra2, IT_ITA, kPlatformPC, k2FloppyFile1, "178d3ab913f61bfba21d2fb196405e8c" },
- { kKyra2, EN_ANY, kPlatformPC, k2FloppyFile2, "7c3eadbe5122722cf2e5e1611e19dfb9" },
- { kKyra2, FR_FRA, kPlatformPC, k2FloppyFile2, "fc2c6782778e6c6d5a553d1cb73c98ad" },
- { kKyra2, DE_DEU, kPlatformPC, k2FloppyFile2, "0d9b0eb7b0ad889ec942d74d80dde1bf" },
- { kKyra2, IT_ITA, kPlatformPC, k2FloppyFile2, "3a61ed6b7c00ddae383a0361799e2ba6" },
-
- // talkie games
- { kKyra2, EN_ANY, kPlatformPC, k2CDFile1E, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
- { kKyra2, FR_FRA, kPlatformPC, k2CDFile1F, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
- { kKyra2, DE_DEU, kPlatformPC, k2CDFile1G, "85bbc1cc6c4cef6ad31fc6ee79518efb" },
- { kKyra2, EN_ANY, kPlatformPC, k2CDFile2E, "e20d0d2e500f01e399ec588247a7e213" },
- { kKyra2, FR_FRA, kPlatformPC, k2CDFile2F, "e20d0d2e500f01e399ec588247a7e213" },
- { kKyra2, DE_DEU, kPlatformPC, k2CDFile2G, "e20d0d2e500f01e399ec588247a7e213" },
- { kKyra2, IT_ITA, kPlatformPC, k2CDFile1I, "130795aa8f2333250c895dae9028b9bb" }, // Italian Fan Translation (using same offsets as English)
-
- // FM-TOWNS games
- { kKyra2, EN_ANY, kPlatformFMTowns, k2TownsFile1E, "74f50d79c919cc8e7196c24942ce43d7" },
- { kKyra2, JA_JPN, kPlatformFMTowns, k2TownsFile1J, "74f50d79c919cc8e7196c24942ce43d7" },
- { kKyra2, EN_ANY, kPlatformFMTowns, k2TownsFile2E, "a9a7fd4f05d00090e9e8bda073e6d431" },
- { kKyra2, JA_JPN, kPlatformFMTowns, k2TownsFile2J, "a9a7fd4f05d00090e9e8bda073e6d431" },
-
- GAME_DUMMY_ENTRY
-};
-
-const Game kyra3Games[] = {
- { kKyra3, EN_ANY, kPlatformPC, -1, "bf68701eb591d0b72219f314c0d32688" },
- GAME_DUMMY_ENTRY
-};
-
-const Game lolGames[] = {
- // DOS demo
- { kLol, EN_ANY, kPlatformPC, k2DemoLol, "30bb5af87d38adb47d3e6ce06b1cb042" },
-
- // DOS floppy
- { kLol, EN_ANY, kPlatformPC, -1, "6b843869772c1b779e1386be868c15dd" },
-
- // DOS CD
- { kLol, EN_ANY, kPlatformPC, kLolCD1, "9d1778314de80598c0b0d032e2a1a1cf" },
- { kLol, EN_ANY, kPlatformPC, kLolCD2, "263998ec600afca1cc7b935c473df670" },
-
- GAME_DUMMY_ENTRY
-};
Modified: scummvm/trunk/tools/create_kyradat/module.mk
===================================================================
--- scummvm/trunk/tools/create_kyradat/module.mk 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/module.mk 2009-09-17 12:02:17 UTC (rev 44143)
@@ -6,10 +6,12 @@
MODULE_OBJS := \
create_kyradat.o \
extract.o \
+ games.o \
+ md5.o \
pak.o \
- md5.o \
- util.o \
- search.o
+ search.o \
+ tables.o \
+ util.o
# Set the name of the executable
TOOL_EXECUTABLE := create_kyradat
Deleted: scummvm/trunk/tools/create_kyradat/providers.h
===================================================================
--- scummvm/trunk/tools/create_kyradat/providers.h 2009-09-17 11:01:08 UTC (rev 44142)
+++ scummvm/trunk/tools/create_kyradat/providers.h 2009-09-17 12:02:17 UTC (rev 44143)
@@ -1,201 +0,0 @@
-const ExtractEntry extractProviders[] = {
- { kForestSeq, kForestSeqProvider },
- { kKallakWritingSeq, kKallakWritingSeqProvider },
- { kKyrandiaLogoSeq, kKyrandiaLogoSeqProvider },
- { kKallakMalcolmSeq, kKallakMalcolmSeqProvider },
- { kMalcolmTreeSeq, kMalcolmTreeSeqProvider },
- { kWestwoodLogoSeq, kWestwoodLogoSeqProvider },
- { kDemo1Seq, kDemo1SeqProvider },
- { kDemo2Seq, kDemo2SeqProvider },
- { kDemo3Seq, kDemo3SeqProvider },
- { kDemo4Seq, kDemo4SeqProvider },
- { kAmuleteAnimSeq, kAmuleteAnimSeqProvider },
- { kOutroReunionSeq, kOutroReunionSeqProvider },
- { kIntroCPSStrings, kIntroCPSStringsProvider },
- { kIntroCOLStrings, kIntroCOLStringsProvider },
- { kIntroWSAStrings, kIntroWSAStringsProvider },
- { kIntroStrings, kIntroStringsProvider },
- { kOutroHomeString, kOutroHomeStringProvider },
- { kRoomFilenames, kRoomFilenamesProvider },
- { kRoomList, kRoomListProvider },
- { kCharacterImageFilenames, kCharacterImageFilenamesProvider },
- { kAudioTracks, kAudioTracksProvider },
- { kAudioTracksIntro, kAudioTracksIntroProvider },
- { kItemNames, kItemNamesProvider },
- { kTakenStrings, kTakenStringsProvider },
- { kPlacedStrings, kPlacedStringsProvider },
- { kDroppedStrings, kDroppedStringsProvider },
- { kNoDropStrings, kNoDropStringsProvider },
- { kPutDownString, kPutDownStringProvider },
- { kWaitAmuletString, kWaitAmuletStringProvider },
- { kBlackJewelString, kBlackJewelStringProvider },
- { kPoisonGoneString, kPoisonGoneStringProvider },
- { kHealingTipString, kHealingTipStringProvider },
- { kWispJewelStrings, kWispJewelStringsProvider },
- { kMagicJewelStrings, kMagicJewelStringsProvider },
- { kThePoisonStrings, kThePoisonStringsProvider },
- { kFluteStrings, kFluteStringsProvider },
- { kFlaskFullString, kFlaskFullStringProvider },
- { kFullFlaskString, kFullFlaskStringProvider },
- { kVeryCleverString, kVeryCleverStringProvider },
- { kNewGameString, kNewGameStringProvider },
- { kDefaultShapes, kDefaultShapesProvider },
- { kHealing1Shapes, kHealing1ShapesProvider },
- { kHealing2Shapes, kHealing2ShapesProvider },
- { kPoisonDeathShapes, kPoisonDeathShapesProvider },
- { kFluteShapes, kFluteShapesProvider },
- { kWinter1Shapes, kWinter1ShapesProvider },
- { kWinter2Shapes, kWinter2ShapesProvider },
- { kWinter3Shapes, kWinter3ShapesProvider },
- { kDrinkShapes, kDrinkShapesProvider },
- { kWispShapes, kWispShapesProvider },
- { kMagicAnimShapes, kMagicAnimShapesProvider },
- { kBranStoneShapes, kBranStoneShapesProvider },
- { kPaletteList1, kPaletteList1Provider },
- { kPaletteList2, kPaletteList2Provider },
- { kPaletteList3, kPaletteList3Provider },
- { kPaletteList4, kPaletteList4Provider },
- { kPaletteList5, kPaletteList5Provider },
- { kPaletteList6, kPaletteList6Provider },
- { kPaletteList7, kPaletteList7Provider },
- { kPaletteList8, kPaletteList8Provider },
- { kPaletteList9, kPaletteList9Provider },
- { kPaletteList10, kPaletteList10Provider },
- { kPaletteList11, kPaletteList11Provider },
- { kPaletteList12, kPaletteList12Provider },
- { kPaletteList13, kPaletteList13Provider },
- { kPaletteList14, kPaletteList14Provider },
- { kPaletteList15, kPaletteList15Provider },
- { kPaletteList16, kPaletteList16Provider },
- { kPaletteList17, kPaletteList17Provider },
- { kPaletteList18, kPaletteList18Provider },
- { kPaletteList19, kPaletteList19Provider },
- { kPaletteList20, kPaletteList20Provider },
- { kPaletteList21, kPaletteList21Provider },
- { kPaletteList22, kPaletteList22Provider },
- { kPaletteList23, kPaletteList23Provider },
- { kPaletteList24, kPaletteList24Provider },
- { kPaletteList25, kPaletteList25Provider },
- { kPaletteList26, kPaletteList26Provider },
- { kPaletteList27, kPaletteList27Provider },
- { kPaletteList28, kPaletteList28Provider },
- { kPaletteList29, kPaletteList29Provider },
- { kPaletteList30, kPaletteList30Provider },
- { kPaletteList31, kPaletteList31Provider },
- { kPaletteList32, kPaletteList32Provider },
- { kPaletteList33, kPaletteList33Provider },
- { kGUIStrings, kGUIStringsProvider },
- { kConfigStrings, kConfigStringsProvider },
- { kKyra1TownsSFXwdTable, kKyra1TownsSFXwdTableProvider },
- { kKyra1TownsSFXbtTable, kKyra1TownsSFXbtTableProvider },
- { kKyra1TownsCDATable, kKyra1TownsCDATableProvider },
- { kCreditsStrings, kCreditsStringsProvider },
- { kAmigaIntroSFXTable, kAmigaIntroSFXTableProvider },
- { kAmigaGameSFXTable, kAmigaGameSFXTableProvider },
- { k2SeqplayPakFiles, k2SeqplayPakFilesProvider },
- { k2SeqplayStrings, k2SeqplayStringsProvider },
- { k2SeqplaySfxFiles, k2SeqplaySfxFilesProvider },
- { k2SeqplayTlkFiles, k2SeqplayTlkFilesProvider },
- { k2SeqplaySeqData, k2SeqplaySeqDataProvider },
- { k2SeqplayCredits, k2SeqplayCreditsProvider },
- { k2SeqplayCreditsSpecial, k2SeqplayCreditsSpecialProvider },
- { k2SeqplayIntroTracks, k2SeqplayIntroTracksProvider },
- { k2SeqplayFinaleTracks, k2SeqplayFinaleTracksProvider },
- { k2SeqplayIntroCDA, k2SeqplayIntroCDAProvider },
- { k2SeqplayFinaleCDA, k2SeqplayFinaleCDAProvider },
- { k2SeqplayShapeAnimData, k2SeqplayShapeAnimDataProvider },
- { k2IngamePakFiles, k2IngamePakFilesProvider },
- { k2IngameSfxFiles, k2IngameSfxFilesProvider },
- { k2IngameSfxFilesTns, k2IngameSfxFilesTnsProvider },
- { k2IngameSfxIndex, k2IngameSfxIndexProvider },
- { k2IngameTracks, k2IngameTracksProvider },
- { k2IngameCDA, k2IngameCDAProvider },
- { k2IngameTalkObjIndex, k2IngameTalkObjIndexProvider },
- { k2IngameTimJpStrings, k2IngameTimJpStringsProvider },
- { k2IngameItemAnimData, k2IngameItemAnimDataProvider },
- { k2IngameTlkDemoStrings, k2IngameTlkDemoStringsProvider },
- { k3MainMenuStrings, k3MainMenuStringsProvider },
- { k3MusicFiles, k3MusicFilesProvider },
- { k3ScoreTable, k3ScoreTableProvider },
- { k3SfxFiles, k3SfxFilesProvider },
- { k3SfxMap, k3SfxMapProvider },
- { k3ItemAnimData, k3ItemAnimDataProvider },
- { k3ItemMagicTable, k3ItemMagicTableProvider },
- { k3ItemStringMap, k3ItemStringMapProvider },
- { kLolSeqplayIntroTracks, kLolSeqplayIntroTracksProvider },
- { kLolIngamePakFiles, kLolIngamePakFilesProvider },
- { kLolCharacterDefs, kLolCharacterDefsProvider },
- { kLolIngameSfxFiles, kLolIngameSfxFilesProvider },
- { kLolIngameSfxIndex, kLolIngameSfxIndexProvider },
- { kLolMusicTrackMap, kLolMusicTrackMapProvider },
- { kLolGMSfxIndex, kLolGMSfxIndexProvider },
- { kLolMT32SfxIndex, kLolMT32SfxIndexProvider },
- { kLolSpellProperties, kLolSpellPropertiesProvider },
- { kLolGameShapeMap, kLolGameShapeMapProvider },
- { kLolSceneItemOffs, kLolSceneItemOffsProvider },
- { kLolCharInvIndex, kLolCharInvIndexProvider },
- { kLolCharInvDefs, kLolCharInvDefsProvider },
- { kLolCharDefsMan, kLolCharDefsManProvider },
- { kLolCharDefsWoman, kLolCharDefsWomanProvider },
- { kLolCharDefsKieran, kLolCharDefsKieranProvider },
- { kLolCharDefsAkshel, kLolCharDefsAkshelProvider },
- { kLolExpRequirements, kLolExpRequirementsProvider },
- { kLolMonsterModifiers, kLolMonsterModifiersProvider },
- { kLolMonsterLevelOffsets, kLolMonsterLevelOffsetsProvider },
- { kLolMonsterDirFlags, kLolMonsterDirFlagsProvider },
- { kLolMonsterScaleY, kLolMonsterScaleYProvider },
- { kLolMonsterScaleX, kLolMonsterScaleXProvider },
- { kLolMonsterScaleWH, kLolMonsterScaleWHProvider },
- { kLolFlyingItemShp, kLolFlyingItemShpProvider },
- { kLolInventoryDesc, kLolInventoryDescProvider },
- { kLolLevelShpList, kLolLevelShpListProvider },
- { kLolLevelDatList, kLolLevelDatListProvider },
- { kLolCompassDefs, kLolCompassDefsProvider },
- { kLolItemPrices, kLolItemPricesProvider },
- { kLolStashSetup, kLolStashSetupProvider },
- { kLolDscUnk1, kLolDscUnk1Provider },
- { kLolDscShapeIndex1, kLolDscShapeIndex1Provider },
- { kLolDscShapeIndex2, kLolDscShapeIndex2Provider },
- { kLolDscScaleWidthData, kLolDscScaleWidthDataProvider },
- { kLolDscScaleHeightData, kLolDscScaleHeightDataProvider },
- { kLolDscX, kLolDscXProvider },
- { kLolDscY, kLolDscYProvider },
- { kLolDscTileIndex, kLolDscTileIndexProvider },
- { kLolDscUnk2, kLolDscUnk2Provider },
- { kLolDscDoorShapeIndex, kLolDscDoorShapeIndexProvider },
- { kLolDscDimData1, kLolDscDimData1Provider },
- { kLolDscDimData2, kLolDscDimData2Provider },
- { kLolDscBlockMap, kLolDscBlockMapProvider },
- { kLolDscDimMap, kLolDscDimMapProvider },
- { kLolDscShapeOvlIndex, kLolDscShapeOvlIndexProvider },
- { kLolDscBlockIndex, kLolDscBlockIndexProvider },
- { kLolDscDoor1, kLolDscDoor1Provider },
- { kLolDscDoorScale, kLolDscDoorScaleProvider },
- { kLolDscDoor4, kLolDscDoor4Provider },
- { kLolDscDoorX, kLolDscDoorXProvider },
- { kLolDscDoorY, kLolDscDoorYProvider },
- { kLolScrollXTop, kLolScrollXTopProvider },
- { kLolScrollYTop, kLolScrollYTopProvider },
- { kLolScrollXBottom, kLolScrollXBottomProvider },
- { kLolScrollYBottom, kLolScrollYBottomProvider },
- { kLolButtonDefs, kLolButtonDefsProvider },
- { kLolButtonList1, kLolButtonList1Provider },
- { kLolButtonList2, kLolButtonList2Provider },
- { kLolButtonList3, kLolButtonList3Provider },
- { kLolButtonList4, kLolButtonList4Provider },
- { kLolButtonList5, kLolButtonList5Provider },
- { kLolButtonList6, kLolButtonList6Provider },
- { kLolButtonList7, kLolButtonList7Provider },
- { kLolButtonList8, kLolButtonList8Provider },
- { kLolLegendData, kLolLegendDataProvider },
- { kLolMapCursorOvl, kLolMapCursorOvlProvider },
- { kLolMapStringId, kLolMapStringIdProvider },
- { kLolSpellbookAnim, kLolSpellbookAnimProvider },
- { kLolSpellbookCoords, kLolSpellbookCoordsProvider },
- { kLolHealShapeFrames, kLolHealShapeFramesProvider },
- { kLolLightningDefs, kLolLightningDefsProvider },
- { kLolFireballCoords, kLolFireballCoordsProvider },
- { kLolHistory, kLolHistoryProvider },
- { -1, NULL }
-};
-
Copied: scummvm/trunk/tools/create_kyradat/tables.cpp (from rev 44142, scummvm/trunk/tools/create_kyradat/tables.h)
===================================================================
--- scummvm/trunk/tools/create_kyradat/tables.cpp (rev 0)
+++ scummvm/trunk/tools/create_kyradat/tables.cpp 2009-09-17 12:02:17 UTC (rev 44143)
@@ -0,0 +1,1844 @@
+/* ScummVM Tools
+ * Copyright (C) 2009 The ScummVM project
+ *
+ * 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$
+ *
+ */
+
+#include "tables.h"
+
+// Id provider tables
+
+const ExtractEntrySearchData kForestSeqProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000195, 0x00001455, { { 0x86, 0xC2, 0x45, 0xEB, 0x16, 0x8A, 0x44, 0x73, 0xB4, 0x59, 0x13, 0x9B, 0x85, 0x40, 0x82, 0x81 } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x000002DE, 0x00003946, { { 0x85, 0x79, 0xDC, 0xB8, 0x62, 0xAD, 0xD6, 0x01, 0xA5, 0x66, 0x6B, 0xC4, 0x61, 0xCA, 0x82, 0xF5 } } } }, // CD
+
+ { UNK_LANG, kPlatformAmiga, { 0x00000273, 0x00001D80, { { 0x18, 0x32, 0xB7, 0xFB, 0xD8, 0x1A, 0x6D, 0x83, 0x75, 0xF5, 0x2B, 0xF7, 0xC0, 0xFD, 0x85, 0xEF } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000196, 0x00001468, { { 0x06, 0x8D, 0xC1, 0x9B, 0xBC, 0x28, 0xE8, 0x36, 0x43, 0x67, 0x34, 0xAA, 0x78, 0xB9, 0xCB, 0x72 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kKallakWritingSeqProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x000007F5, 0x00006DCD, { { 0x0E, 0x0A, 0x75, 0xA5, 0x71, 0x5A, 0xC6, 0x32, 0x52, 0x7F, 0xEC, 0x2B, 0x0B, 0xF2, 0x22, 0xE6 } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x00000805, 0x0000719E, { { 0xA2, 0xFE, 0x0A, 0xAA, 0xD9, 0x43, 0x5A, 0xBE, 0x56, 0x38, 0x73, 0x42, 0xAC, 0xA9, 0x1B, 0x01 } } } }, // CD
+
+ { UNK_LANG, kPlatformAmiga, { 0x000007F4, 0x00006DAD, { { 0x84, 0x9D, 0x82, 0xD2, 0x4E, 0x8B, 0xE2, 0x86, 0x82, 0x5E, 0xE7, 0x2C, 0x7A, 0xD6, 0xFE, 0x19 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x000007F7, 0x00006E23, { { 0x97, 0x8C, 0x63, 0x8D, 0x91, 0x68, 0xA5, 0x63, 0x55, 0x43, 0xE7, 0xE0, 0x12, 0xF9, 0x80, 0xA4 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kKyrandiaLogoSeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000005C, 0x000003D3, { { 0x75, 0xC5, 0x55, 0x54, 0x00, 0xD7, 0xE9, 0x26, 0x0F, 0x01, 0xB1, 0xB7, 0xA9, 0x29, 0xF7, 0x69 } } } },
+ { UNK_LANG, kPlatformPC, { 0x000000A6, 0x00000A09, { { 0x70, 0x6E, 0x74, 0xBB, 0xD7, 0x09, 0x05, 0xDD, 0xA3, 0x09, 0x96, 0x40, 0xBD, 0x01, 0x19, 0x05 } } } }, // CD
+ { UNK_LANG, kPlatformPC, { 0x00000054, 0x00000300, { { 0x4E, 0xAD, 0xD0, 0x73, 0xD2, 0x3C, 0xF6, 0x6B, 0x65, 0x23, 0xA2, 0x30, 0xD6, 0xEE, 0x1C, 0x13 } } } }, // demo
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kKallakMalcolmSeqProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000026B, 0x00002132, { { 0x51, 0x07, 0x32, 0xA2, 0x09, 0x47, 0x97, 0x02, 0x85, 0x31, 0x39, 0x93, 0x3A, 0x53, 0x47, 0xA5 } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x0000027B, 0x0000220A, { { 0xB7, 0xC1, 0x57, 0x04, 0x9B, 0x67, 0x82, 0x7B, 0x6E, 0xFD, 0x59, 0xF2, 0x10, 0x93, 0x89, 0x12 } } } }, // CD
+
+ { UNK_LANG, kPlatformAmiga, { 0x000002B8, 0x0000280B, { { 0x98, 0xC8, 0x36, 0x8C, 0xF8, 0x92, 0xC2, 0xB9, 0x1B, 0x71, 0x6B, 0x4C, 0xA4, 0x6C, 0xF6, 0x30 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x0000026D, 0x00002188, { { 0x7E, 0x3B, 0x06, 0x69, 0x11, 0x59, 0xBE, 0x42, 0xCB, 0x33, 0x9C, 0x15, 0xCF, 0x61, 0xF6, 0xB0 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kMalcolmTreeSeqProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000216, 0x000014FB, { { 0xBA, 0x6F, 0x63, 0xD5, 0x44, 0xCE, 0xE8, 0x20, 0xD4, 0x4C, 0x06, 0x58, 0x21, 0x8E, 0x07, 0x8B } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x00000230, 0x0000192A, { { 0x28, 0xCC, 0x89, 0x40, 0x8A, 0xF7, 0xCB, 0xC0, 0x11, 0x8F, 0x0F, 0xE5, 0x5F, 0x24, 0x2D, 0x32 } } } }, // CD
+
+ { UNK_LANG, kPlatformAmiga, { 0x00000214, 0x000014C4, { { 0xA2, 0x60, 0x16, 0x14, 0x20, 0xE4, 0x8D, 0x89, 0xC4, 0x30, 0x07, 0x21, 0xC9, 0x26, 0xA6, 0x84 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000218, 0x00001551, { { 0x30, 0x42, 0xD3, 0x7D, 0x6B, 0x43, 0x3B, 0xC7, 0x63, 0x56, 0x7D, 0x12, 0xE0, 0x53, 0x41, 0x48 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kWestwoodLogoSeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000004B, 0x000002FE, { { 0x6E, 0xDA, 0x5D, 0x1E, 0xF4, 0x38, 0xAE, 0x7A, 0x9F, 0xBC, 0x00, 0x7C, 0x77, 0x9D, 0x03, 0xAF } } } },
+ { UNK_LANG, kPlatformPC, { 0x0000004B, 0x0000032A, { { 0x9A, 0x54, 0x6F, 0x6C, 0x70, 0xD1, 0x02, 0x94, 0xD1, 0xA1, 0xA7, 0xBE, 0x1B, 0x10, 0xBD, 0x2F } } } }, // CD
+ { UNK_LANG, kPlatformPC, { 0x00000044, 0x00000243, { { 0x00, 0x11, 0x10, 0x64, 0x60, 0xE8, 0xB5, 0x59, 0x00, 0x60, 0xF5, 0x10, 0xB5, 0x63, 0x9D, 0x55 } } } }, // demo
+
+ { UNK_LANG, kPlatformAmiga, { 0x0000004D, 0x00000319, { { 0xE9, 0x5D, 0xD4, 0x60, 0x4E, 0xA6, 0x92, 0x30, 0x9C, 0x77, 0x99, 0xBC, 0xB1, 0x97, 0xFB, 0xBD } } } },
+
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kDemo1SeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000026, 0x0000016E, { { 0x61, 0xF2, 0x84, 0x42, 0x89, 0x6E, 0xB8, 0x0D, 0x01, 0xB7, 0xE4, 0x49, 0xA1, 0x72, 0xDC, 0x66 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kDemo2SeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000023, 0x00000151, { { 0xE7, 0x9F, 0xA7, 0x80, 0xE3, 0xC1, 0x63, 0xF2, 0x3F, 0x7B, 0x64, 0xD9, 0x70, 0x3A, 0xF1, 0x55 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kDemo3SeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000059, 0x000001A8, { { 0x9E, 0x90, 0x4F, 0x9E, 0xBC, 0x39, 0x37, 0xD1, 0x10, 0x67, 0x8C, 0xE5, 0x84, 0xFD, 0xD9, 0x7C } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kDemo4SeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x0000013E, { { 0xB7, 0x67, 0x1D, 0x50, 0x11, 0xD0, 0x16, 0x91, 0x40, 0x40, 0xD1, 0xC0, 0xA0, 0x79, 0x3D, 0xCE } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kAmuleteAnimSeqProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002A, 0x0000025D, { { 0xB1, 0x59, 0x3C, 0x9A, 0x61, 0xC0, 0x1D, 0x80, 0xB5, 0x0C, 0x2E, 0xF9, 0xF6, 0x36, 0xED, 0x7D } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kOutroReunionSeqProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000547, 0x0000781C, { { 0xCF, 0xD6, 0x1D, 0x3D, 0x14, 0x40, 0x88, 0x35, 0x36, 0x4F, 0x0B, 0x1F, 0x9A, 0x1C, 0x3D, 0xAC } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x000005E5, 0x00008918, { { 0x6A, 0x33, 0x8C, 0xB0, 0x16, 0x57, 0x2D, 0xEB, 0xB2, 0xE1, 0x64, 0x80, 0x98, 0x99, 0x98, 0x19 } } } }, // CD
+
+ { UNK_LANG, kPlatformAmiga, { 0x0000054A, 0x0000785F, { { 0x55, 0xEA, 0xB8, 0x7F, 0x3A, 0x86, 0xCD, 0xA6, 0xBC, 0xA7, 0x9A, 0x39, 0xED, 0xF5, 0x30, 0x0A } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000547, 0x00007876, { { 0x7A, 0xC7, 0x80, 0x34, 0x7A, 0x1B, 0xAB, 0xF8, 0xA7, 0x2F, 0x63, 0x3C, 0xDA, 0x89, 0x3F, 0x82 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kIntroCPSStringsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000014, 0x0000071D, { { 0xBA, 0xB6, 0x58, 0xB3, 0x28, 0x5E, 0x9F, 0x77, 0x69, 0x9D, 0x77, 0x53, 0x9D, 0x0D, 0xB0, 0x29 } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x00000015, 0x00000786, { { 0xCF, 0x09, 0xE1, 0xD9, 0x8E, 0x34, 0x5D, 0xEA, 0xBC, 0xAC, 0xC4, 0xF4, 0x4A, 0xEC, 0xFF, 0xC1 } } } }, // CD
+ { UNK_LANG, kPlatformPC, { 0x0000000C, 0x00000413, { { 0xA1, 0xE3, 0x06, 0x53, 0x23, 0x9A, 0xE0, 0xF1, 0xE4, 0xFD, 0xD9, 0x05, 0x22, 0xA6, 0x28, 0x46 } } } }, // demo
+
+ { UNK_LANG, kPlatformAmiga, { 0x00000016, 0x0000070A, { { 0xD9, 0xDB, 0x91, 0xCD, 0x93, 0x81, 0xC4, 0x3F, 0x14, 0xF1, 0xC5, 0x02, 0xE7, 0x3F, 0x3A, 0x6C } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000015, 0x0000071D, { { 0x59, 0x65, 0x08, 0xF9, 0x4C, 0x81, 0xA1, 0xE3, 0x68, 0xF7, 0xE3, 0xF6, 0x33, 0x5F, 0xF5, 0x36 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kIntroCOLStringsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000002B, 0x00000F09, { { 0x01, 0x40, 0x65, 0xC1, 0x33, 0xAA, 0x64, 0xA7, 0x44, 0xD5, 0x89, 0x68, 0x17, 0x47, 0xC7, 0x1D } } } },
+ { UNK_LANG, kPlatformPC, { 0x00000046, 0x0000174F, { { 0xAA, 0x59, 0x01, 0x20, 0x06, 0xB4, 0x80, 0xC0, 0x84, 0x38, 0xFD, 0x97, 0xBF, 0x78, 0xDD, 0x78 } } } }, // demo
+
+ { UNK_LANG, kPlatformAmiga, { 0x0000002E, 0x00000F09, { { 0x2A, 0x42, 0xB8, 0x4E, 0xC6, 0xF0, 0x5F, 0x4A, 0x08, 0xB4, 0xE3, 0xE5, 0xBD, 0x32, 0x11, 0x06 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000030, 0x00000F09, { { 0x05, 0x7B, 0x69, 0xB7, 0x6A, 0xC3, 0x7F, 0xD9, 0x7E, 0x51, 0x87, 0xA5, 0x31, 0xD8, 0x80, 0xB3 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kIntroWSAStringsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000086, 0x00002E5D, { { 0xD2, 0x8D, 0x62, 0xEF, 0xEB, 0x75, 0x04, 0x13, 0x64, 0x85, 0x6B, 0x6C, 0xE8, 0x6C, 0xCF, 0x52 } } } },
+ { UNK_LANG, kPlatformPC, { 0x0000004D, 0x00001AEC, { { 0x15, 0xBC, 0x8C, 0xD9, 0x33, 0x0C, 0xC5, 0x66, 0x87, 0x3B, 0x76, 0xEE, 0x0C, 0x41, 0x4D, 0x1F } } } }, // demo
+
+ { UNK_LANG, kPlatformAmiga, { 0x00000080, 0x00002E5D, { { 0x67, 0x03, 0x20, 0xDF, 0xAA, 0x3C, 0x6A, 0xB5, 0x45, 0xD0, 0x00, 0x2B, 0x30, 0xCC, 0x36, 0xB6 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x00000093, 0x00002E5D, { { 0xAB, 0xD1, 0x32, 0x89, 0x2A, 0x8D, 0xC0, 0x2C, 0x87, 0x87, 0xA3, 0x14, 0x2A, 0x2A, 0x22, 0x7F } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kIntroStringsProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x000004F5, 0x0001A7B1, { { 0xC7, 0x65, 0x5B, 0x5A, 0x56, 0x43, 0x94, 0x55, 0x5B, 0x00, 0xFD, 0x5D, 0xF4, 0xB5, 0x04, 0x15 } } } }, // floppy
+ { EN_ANY, kPlatformPC, { 0x000004F6, 0x0001A7B1, { { 0xDE, 0x41, 0xB1, 0x98, 0xD5, 0xAD, 0x6B, 0xBA, 0x33, 0x04, 0x19, 0x5D, 0xCC, 0x07, 0xB5, 0x56 } } } }, // CD
+ { EN_ANY, kPlatformPC, { 0x000002FA, 0x00010181, { { 0x48, 0xD3, 0x1B, 0x8E, 0x8D, 0xBC, 0x1F, 0x51, 0x35, 0x71, 0xE2, 0xAB, 0xC8, 0xBE, 0xFC, 0x88 } } } }, // demo
+
+ { FR_FRA, kPlatformPC, { 0x000005EF, 0x000207E6, { { 0xDC, 0x6C, 0x9A, 0x7C, 0x19, 0x45, 0x2B, 0x25, 0x84, 0xCC, 0xE1, 0x40, 0xFE, 0x8E, 0xF4, 0x51 } } } }, // floppy
+ { FR_FRA, kPlatformPC, { 0x000005F0, 0x000207E6, { { 0xB8, 0x51, 0xEA, 0x44, 0x64, 0x04, 0xE4, 0x6A, 0x7B, 0xBD, 0x31, 0x62, 0xC0, 0xDD, 0xEA, 0xEF } } } }, // CD
+
+ { DE_DEU, kPlatformPC, { 0x00000605, 0x000212AB, { { 0x8F, 0x3A, 0x9D, 0x9A, 0x81, 0xF2, 0x4A, 0x90, 0xBC, 0xBD, 0x62, 0x8B, 0xD8, 0xD6, 0xF4, 0x5D } } } }, // floppy
+ { DE_DEU, kPlatformPC, { 0x00000606, 0x000212AB, { { 0xB0, 0x78, 0x86, 0xFB, 0xCB, 0x3D, 0x1E, 0x1E, 0x86, 0xE7, 0x2C, 0x2B, 0x3A, 0x3C, 0x6F, 0x1C } } } }, // CD
+
+ { IT_ITA, kPlatformPC, { 0x0000057C, 0x0001DF02, { { 0x4B, 0x09, 0xBC, 0xBC, 0xB3, 0x3C, 0x69, 0xEB, 0xA6, 0xB5, 0x76, 0xED, 0xC7, 0x57, 0x71, 0xB0 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x000005F0, 0x0001CF13, { { 0x4F, 0xA0, 0x47, 0x57, 0x6D, 0x2D, 0xA6, 0x62, 0x06, 0xBE, 0x86, 0xD2, 0xD7, 0xEA, 0x2E, 0xD6 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x000005CF, 0x00020415, { { 0xCC, 0xE5, 0x9F, 0xB8, 0xCA, 0xFA, 0x2D, 0x05, 0xB8, 0xAF, 0x9F, 0x1F, 0x8A, 0xA8, 0x56, 0xDE } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x0000050A, 0x0001A7B1, { { 0x1B, 0x74, 0x71, 0x4C, 0xAB, 0x81, 0x10, 0x59, 0x8A, 0x21, 0x50, 0xBB, 0xFE, 0x6F, 0xD0, 0xE8 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x00000545, 0x0001A84C, { { 0xEF, 0xE2, 0xE4, 0x92, 0xE1, 0x18, 0xF8, 0x3C, 0x91, 0x29, 0x4D, 0x82, 0xA4, 0x3E, 0xE6, 0x7D } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x000005FB, 0x0003163E, { { 0x16, 0x28, 0x83, 0xCE, 0x29, 0x94, 0x9F, 0x82, 0xDC, 0xD4, 0x06, 0xE8, 0x67, 0xC9, 0x56, 0x29 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kOutroHomeStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000005, 0x00000189, { { 0xA5, 0xF3, 0x03, 0x3F, 0x43, 0x2B, 0x77, 0xCC, 0x5C, 0x96, 0x64, 0xB1, 0x75, 0xB5, 0x3E, 0xF6 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000007, 0x00000267, { { 0xD0, 0xC1, 0x11, 0x49, 0x3D, 0x3F, 0xCE, 0x84, 0x8F, 0xEF, 0xE3, 0xFD, 0x43, 0xCA, 0x92, 0xB0 } } } },
+
+ { DE_DEU, kPlatformPC, { 0x0000000E, 0x00000473, { { 0xB6, 0xEB, 0xE8, 0x22, 0x67, 0x24, 0xA9, 0xA3, 0x94, 0x55, 0xC6, 0x57, 0x17, 0x15, 0x5B, 0x04 } } } },
+
+ { UNK_LANG, kPlatformPC, { 0x00000005, 0x00000178, { { 0x2E, 0x9C, 0x94, 0x0F, 0x29, 0x77, 0x27, 0x1D, 0x77, 0x1E, 0x5A, 0xF8, 0x0E, 0x8D, 0x09, 0x6B } } } }, // floppy italian + spanish
+
+ { IT_ITA, kPlatformPC, { 0x00000007, 0x000001B8, { { 0x17, 0x95, 0x5B, 0x4F, 0xE2, 0x07, 0x5A, 0x49, 0xFA, 0xCE, 0x53, 0x8B, 0xE7, 0x46, 0x69, 0xC7 } } } }, // (fan) CD
+
+ { JA_JPN, kPlatformFMTowns, { 0x00000007, 0x000003E8, { { 0x68, 0x35, 0x87, 0x53, 0xD9, 0x53, 0x1F, 0x13, 0x24, 0x61, 0x0D, 0x8D, 0x33, 0x91, 0xF3, 0x47 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRoomFilenamesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x000002DC, 0x0000B7AA, { { 0x31, 0x56, 0x41, 0x69, 0x1E, 0x84, 0x54, 0x2C, 0xF7, 0x7B, 0x98, 0x25, 0xF3, 0x91, 0x56, 0xFD } } } },
+
+ { UNK_LANG, kPlatformAmiga, { 0x00000308, 0x0000B7AA, { { 0x6D, 0xA4, 0xE8, 0x27, 0x68, 0x24, 0xCF, 0xAA, 0x30, 0x32, 0x71, 0x74, 0x36, 0x68, 0x82, 0x20 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x0000034C, 0x0000B7AA, { { 0x7C, 0x1B, 0x89, 0x09, 0xF0, 0x87, 0x3C, 0x64, 0x3D, 0x0E, 0x61, 0xCC, 0x09, 0x8D, 0xC9, 0x95 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRoomListProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00004DD6, 0x0010312B, { { 0xC6, 0xF0, 0xC4, 0x2C, 0x5A, 0xD7, 0x48, 0xE4, 0x41, 0x23, 0x65, 0x6D, 0xC8, 0xC7, 0xCE, 0xF5 } } } },
+
+ { UNK_LANG, kPlatformAmiga, { 0x00004ECC, 0x0010312B, { { 0x9A, 0x91, 0xF1, 0x9C, 0x8A, 0x96, 0x1C, 0x7B, 0xB7, 0xE4, 0xF1, 0xE9, 0x7D, 0xEF, 0x40, 0xBF } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x000064E8, 0x0010312B, { { 0x94, 0x5C, 0x87, 0x35, 0x35, 0x6B, 0x3E, 0xBF, 0x55, 0x3D, 0xDB, 0xD9, 0xFB, 0x97, 0x27, 0x5D } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kCharacterImageFilenamesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x000000E4, 0x00003A8F, { { 0x7A, 0x77, 0x6D, 0x26, 0xC8, 0x43, 0xCB, 0x74, 0x46, 0x2E, 0x04, 0x22, 0x89, 0x27, 0x33, 0x06 } } } },
+
+ { UNK_LANG, kPlatformAmiga, { 0x000000F0, 0x00003A8F, { { 0xC0, 0xD9, 0x8C, 0x2B, 0x65, 0x51, 0x7C, 0x13, 0x52, 0x7E, 0xF7, 0x63, 0xA6, 0xA9, 0xCE, 0x40 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x000000F7, 0x00003A8F, { { 0x1F, 0xAB, 0x8E, 0x5F, 0xAD, 0x76, 0x57, 0x37, 0xD7, 0x9B, 0x3F, 0x35, 0x4B, 0xA0, 0x98, 0x37 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kAudioTracksProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000041, 0x00000FBF, { { 0xB5, 0xA2, 0x90, 0xE9, 0x73, 0x83, 0x47, 0x5A, 0xB3, 0x3E, 0x04, 0xBB, 0xAA, 0xC8, 0x84, 0x53 } } } },
+
+ { UNK_LANG, kPlatformFMTowns, { 0x0000005D, 0x0000154E, { { 0xA7, 0x7E, 0x03, 0x0A, 0x81, 0x54, 0xD2, 0x5D, 0x7B, 0x33, 0x07, 0xBF, 0x70, 0x01, 0x4B, 0x79 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kAudioTracksIntroProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x0000022C, { { 0x5F, 0xC9, 0xE1, 0x4B, 0x34, 0x52, 0xB9, 0xF8, 0xFF, 0x37, 0x8B, 0xF4, 0xEF, 0x5E, 0xC5, 0xDA } } } }, // floppy + demo
+ { UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x00000458, { { 0xEB, 0xB3, 0x96, 0xA5, 0x07, 0xE6, 0x11, 0x58, 0xDB, 0x3F, 0x34, 0x30, 0xFB, 0x7B, 0x92, 0xC8 } } } }, // CD
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kItemNamesProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000468, 0x00018B13, { { 0xCE, 0xFE, 0x19, 0x5D, 0x3F, 0xD7, 0x2A, 0xF6, 0xD0, 0xC5, 0xBC, 0x17, 0x6A, 0x52, 0xDB, 0xFE } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000506, 0x0001C3CC, { { 0x46, 0xD4, 0x19, 0x04, 0x2A, 0x46, 0xCD, 0x63, 0x41, 0x5A, 0x8E, 0xA8, 0x00, 0xDD, 0x02, 0x77 } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000512, 0x0001DD2C, { { 0x5D, 0xB0, 0x6B, 0x8E, 0x9C, 0x70, 0x09, 0x90, 0x3C, 0xC6, 0x58, 0x1F, 0x71, 0x24, 0x76, 0x56 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000591, 0x0001F869, { { 0x4D, 0xD7, 0x66, 0xBB, 0x9A, 0xD8, 0x79, 0x1E, 0x92, 0x2B, 0xE5, 0xC2, 0x0F, 0x02, 0x0B, 0x35 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000506, 0x0001C1D9, { { 0xF2, 0x2D, 0x18, 0x13, 0x61, 0xFB, 0x57, 0x93, 0x5C, 0xDC, 0x79, 0x44, 0x96, 0x01, 0xA6, 0x90 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000530, 0x0001D90A, { { 0x52, 0xFB, 0xA8, 0x3F, 0xA3, 0x6F, 0xC2, 0x67, 0x55, 0x9F, 0x66, 0x9F, 0xFD, 0x79, 0x44, 0xDF } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000380, 0x00012960, { { 0x2D, 0x81, 0xCF, 0x7A, 0x9D, 0x71, 0x83, 0xB7, 0xE5, 0x00, 0xB0, 0x6E, 0x25, 0x94, 0xCB, 0xA4 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x00000505, 0x00018B13, { { 0x62, 0x76, 0x84, 0x5D, 0x8D, 0xBA, 0x23, 0xC5, 0x67, 0x26, 0x22, 0xBD, 0xBE, 0x81, 0x2D, 0xFF } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x00000587, 0x000247A1, { { 0xE8, 0xCA, 0x1E, 0x34, 0x05, 0xE5, 0x08, 0xCA, 0xA7, 0xFE, 0x55, 0xCB, 0x75, 0xD0, 0xA7, 0x19 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kTakenStringsProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000010, 0x000004C2, { { 0x08, 0xC0, 0x66, 0xB1, 0x45, 0x04, 0x78, 0xF9, 0xAF, 0x0F, 0x52, 0xC8, 0x0E, 0x0C, 0x69, 0x86 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x0000001E, 0x000008FA, { { 0xC9, 0xCC, 0x2E, 0x0B, 0xE4, 0xE0, 0x44, 0xBD, 0xC2, 0x10, 0x09, 0xA3, 0x36, 0xB1, 0x5D, 0x1C } } } }, // floppy
+ { FR_FRA, kPlatformPC, { 0x0000000F, 0x0000047D, { { 0xE8, 0xB5, 0x15, 0xD5, 0x96, 0x81, 0xD2, 0x84, 0xAB, 0x33, 0xC1, 0x1C, 0x47, 0x1B, 0xFE, 0xDB } } } }, // CD
+
+ { DE_DEU, kPlatformPC, { 0x0000001C, 0x000009C0, { { 0xA8, 0x64, 0xDD, 0x9D, 0x91, 0x42, 0x04, 0x26, 0xD0, 0x80, 0x40, 0xED, 0x08, 0x51, 0xC9, 0xBB } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000014, 0x00000588, { { 0x5B, 0x75, 0xAE, 0xD7, 0x50, 0x6C, 0x3E, 0x65, 0x5C, 0xF8, 0x84, 0x34, 0x48, 0x58, 0x0E, 0x6E } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x0000000F, 0x000002F0, { { 0x37, 0x22, 0x62, 0xE4, 0x1B, 0x1F, 0xD6, 0x9E, 0x94, 0xA3, 0x41, 0x00, 0xD5, 0x29, 0x28, 0x09 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000014, 0x000005D8, { { 0xD6, 0x00, 0x90, 0x6A, 0x75, 0x3B, 0xF1, 0xFE, 0xF4, 0x3E, 0x0E, 0x1D, 0x39, 0xEB, 0x2D, 0xC8 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000008, 0x00000261, { { 0x93, 0x5B, 0x79, 0xE8, 0x89, 0x8E, 0xB5, 0x37, 0x39, 0x2A, 0xB0, 0x04, 0x98, 0x80, 0x5A, 0x4E } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x0000001C, 0x00000AED, { { 0x32, 0xD2, 0x87, 0x67, 0x3D, 0x01, 0x50, 0xF3, 0xFA, 0x19, 0x7A, 0xB0, 0xF8, 0x6F, 0x8A, 0x07 } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x0000001F, 0x00000EB7, { { 0x7F, 0x8C, 0xFF, 0x35, 0x30, 0x71, 0x9A, 0x78, 0xCC, 0x07, 0x11, 0x86, 0xE3, 0x0D, 0x16, 0xDF } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kPlacedStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000009, 0x000002B7, { { 0xE7, 0xCF, 0x8A, 0x19, 0xEF, 0x98, 0xE5, 0x74, 0x46, 0x46, 0x47, 0x65, 0xB6, 0x81, 0x70, 0x0A } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000011, 0x00000545, { { 0x05, 0xEF, 0x74, 0x54, 0x06, 0xB7, 0x64, 0x47, 0x21, 0x56, 0x55, 0x74, 0x70, 0x2D, 0xA8, 0x23 } } } },
+
+ { DE_DEU, kPlatformPC, { 0x0000000B, 0x00000389, { { 0xB9, 0x74, 0xBE, 0x63, 0xB4, 0xA4, 0x8A, 0x04, 0xD9, 0x50, 0x73, 0xB7, 0x01, 0x9E, 0x77, 0xD3 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000000D, 0x0000040D, { { 0x9C, 0x71, 0x53, 0x35, 0xC3, 0xE8, 0x46, 0xB9, 0xD2, 0xFA, 0x1C, 0x8C, 0xC3, 0xFF, 0xBC, 0x1F } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000011, 0x000003B8, { { 0xC8, 0xA6, 0xE4, 0x8A, 0xF7, 0x4C, 0x3F, 0xA6, 0x24, 0x7F, 0xEF, 0xE4, 0x63, 0x8B, 0x72, 0xF3 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x0000000D, 0x00000439, { { 0x57, 0xAE, 0x1C, 0xC1, 0xF5, 0xE8, 0x5B, 0x9E, 0x90, 0x02, 0xB9, 0x8D, 0x86, 0x38, 0xFB, 0xA8 } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x0000000D, 0x0000074C, { { 0x0E, 0x1C, 0x1F, 0xD2, 0xCF, 0xBF, 0x40, 0xE1, 0x59, 0x0F, 0x1B, 0x46, 0xED, 0x8B, 0x96, 0x8E } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kDroppedStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000A, 0x0000033C, { { 0x96, 0x63, 0xFD, 0x73, 0x71, 0xCC, 0x62, 0x59, 0x86, 0x02, 0x47, 0x55, 0x82, 0xF8, 0x5E, 0x1F } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000011, 0x00000579, { { 0x3D, 0x0C, 0x3C, 0xAD, 0x2E, 0xE3, 0x7A, 0x5A, 0x4A, 0x21, 0x1C, 0x96, 0xC5, 0x5A, 0xA7, 0x9E } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000011, 0x00000612, { { 0xEC, 0xCD, 0x99, 0x58, 0xF7, 0x08, 0x92, 0x43, 0x95, 0x10, 0x6B, 0xDD, 0x61, 0xF7, 0x5C, 0xA4 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000000B, 0x0000031B, { { 0x32, 0x0C, 0xCD, 0x83, 0xF6, 0x97, 0xC8, 0x76, 0x57, 0x6B, 0x7C, 0xAD, 0x51, 0xEB, 0x91, 0x1F } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000011, 0x000003B8, { { 0xC8, 0xA6, 0xE4, 0x8A, 0xF7, 0x4C, 0x3F, 0xA6, 0x24, 0x7F, 0xEF, 0xE4, 0x63, 0x8B, 0x72, 0xF3 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000008, 0x00000261, { { 0x1D, 0xB5, 0xFB, 0x23, 0x94, 0xA7, 0x86, 0x7A, 0xAC, 0x53, 0xDA, 0x6F, 0xCC, 0x41, 0x0F, 0xD7 } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x0000000B, 0x0000059F, { { 0xDD, 0x5E, 0x51, 0x7E, 0xD9, 0xFC, 0xCD, 0xAD, 0x6B, 0x93, 0x71, 0xBE, 0x83, 0x63, 0x3F, 0x88 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kNoDropStringsProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000047, 0x00001881, { { 0xEF, 0x81, 0x2B, 0x8F, 0x06, 0x0C, 0xA6, 0xBA, 0x50, 0x9C, 0x99, 0x40, 0x53, 0xFD, 0xC1, 0x55 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x0000004C, 0x00001B39, { { 0xFF, 0xD5, 0x5D, 0x1C, 0xF1, 0x8A, 0xA4, 0x21, 0xB1, 0x56, 0x2B, 0xAC, 0x9F, 0x40, 0x30, 0x53 } } } },
+
+ { DE_DEU, kPlatformPC, { 0x0000004C, 0x00001AFF, { { 0xE5, 0x05, 0x79, 0x10, 0x91, 0x95, 0x64, 0x40, 0xB2, 0x73, 0x39, 0xFA, 0x50, 0x8D, 0xCE, 0x8A } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000045, 0x00001850, { { 0x50, 0x34, 0x82, 0xA9, 0x28, 0xDE, 0x44, 0xB3, 0x2D, 0x59, 0x0B, 0x7F, 0xCE, 0x42, 0x1F, 0x73 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x0000004C, 0x00001650, { { 0x42, 0x7A, 0x04, 0xCD, 0x69, 0xB1, 0x06, 0x9A, 0xD8, 0x7E, 0x7A, 0x14, 0x5B, 0x1C, 0x70, 0xB8 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x0000003D, 0x000015FA, { { 0x87, 0x2E, 0xE6, 0x8A, 0xF1, 0xC9, 0xC9, 0xEC, 0xD3, 0x2C, 0x25, 0x7E, 0x36, 0x02, 0xF7, 0xAC } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000048, 0x00001881, { { 0x69, 0xA8, 0x0B, 0x47, 0xFD, 0xA0, 0x94, 0x12, 0x82, 0x1D, 0xE0, 0x9C, 0xB1, 0x10, 0x6D, 0x11 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x0000007A, 0x0000323C, { { 0x00, 0x7F, 0x8E, 0x2E, 0x7B, 0xFC, 0x06, 0x0B, 0x7A, 0x7F, 0x17, 0xAF, 0x47, 0x82, 0xC1, 0x16 } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x00000061, 0x00002E9C, { { 0x8A, 0xFA, 0x43, 0x26, 0x68, 0x6D, 0x5A, 0x59, 0x0C, 0x9E, 0xCB, 0x28, 0x43, 0x33, 0x54, 0x49 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kPutDownStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000026, 0x00000D27, { { 0x83, 0x09, 0x51, 0xD3, 0x94, 0x2B, 0xB1, 0x8B, 0x8B, 0x16, 0xA9, 0xEB, 0xE8, 0xA2, 0x4F, 0x0C } } } },
+
+ { FR_FRA, kPlatformPC, { 0x0000002E, 0x0000101D, { { 0xBC, 0xEA, 0x6C, 0x1F, 0x31, 0xCF, 0x30, 0x26, 0x2D, 0x24, 0xC5, 0xEA, 0x97, 0x49, 0xDC, 0x4C } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000028, 0x00000E7E, { { 0x26, 0x93, 0x76, 0x37, 0x41, 0x2E, 0xF3, 0xED, 0xF5, 0x7B, 0xA7, 0xEB, 0x80, 0x61, 0x3B, 0x84 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000034, 0x0000131D, { { 0x36, 0x87, 0x4D, 0x73, 0x2A, 0x67, 0xBA, 0xCE, 0xCB, 0x33, 0x3C, 0x10, 0xCC, 0x3E, 0x7E, 0xAD } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x0000002E, 0x00000EB2, { { 0x14, 0x08, 0xE6, 0xD1, 0x54, 0x76, 0x2A, 0x9E, 0xBE, 0x5A, 0x15, 0xEB, 0x52, 0x01, 0x52, 0x97 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x0000002D, 0x00001052, { { 0x12, 0x0A, 0x23, 0x11, 0xDF, 0x8A, 0x59, 0xD4, 0xF2, 0xCA, 0xA5, 0xA7, 0x76, 0x1B, 0x54, 0xB6 } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x00000029, 0x0000187D, { { 0xDE, 0xEE, 0x66, 0x88, 0x57, 0xF5, 0xF9, 0x2E, 0xD2, 0x14, 0xF5, 0x83, 0xA0, 0x0D, 0x96, 0x86 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kWaitAmuletStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000003D, 0x0000150D, { { 0x11, 0xC8, 0x7E, 0x83, 0x7A, 0xC3, 0x5D, 0xD9, 0x72, 0xFC, 0x75, 0xCB, 0x57, 0xE9, 0xF1, 0x36 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000049, 0x00001ADD, { { 0xFD, 0xCF, 0x9C, 0xAD, 0xA2, 0xAA, 0x74, 0x11, 0x8E, 0x89, 0x02, 0xCB, 0x2B, 0x5B, 0x2B, 0x1C } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000048, 0x000019CF, { { 0x82, 0xDD, 0xBD, 0xA3, 0xD0, 0xE0, 0x19, 0xC0, 0x6D, 0xC5, 0xEE, 0x7A, 0x0B, 0x49, 0x06, 0xCE } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000004A, 0x00001B4C, { { 0x38, 0x26, 0x54, 0x10, 0x3D, 0x32, 0xCD, 0xAE, 0x3F, 0x96, 0xFE, 0x6F, 0x4A, 0x94, 0x72, 0xB0 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000049, 0x0000184F, { { 0x11, 0x42, 0xB2, 0xD6, 0x76, 0xEA, 0xF9, 0xCA, 0x46, 0xE4, 0xA6, 0x35, 0xE8, 0xB9, 0x8B, 0xE9 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000042, 0x000017FD, { { 0x0A, 0x8A, 0x7E, 0x9A, 0x5F, 0x4A, 0x35, 0x06, 0x4D, 0x6B, 0xBF, 0x29, 0x1B, 0xAD, 0xD8, 0x37 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x0000003E, 0x0000150D, { { 0xA8, 0xBF, 0x99, 0x9B, 0xC1, 0x36, 0x21, 0x47, 0x6D, 0x99, 0x4F, 0x34, 0xE6, 0x61, 0x47, 0xFD } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x00000029, 0x000017A7, { { 0xFD, 0xA3, 0xAD, 0x24, 0x16, 0x49, 0x22, 0x6F, 0x52, 0xE9, 0x50, 0x11, 0x51, 0x38, 0xCA, 0xE0 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kBlackJewelStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000023, 0x00000B73, { { 0xBE, 0xE9, 0xBD, 0x65, 0xB9, 0xB1, 0xCD, 0xF0, 0x45, 0x03, 0x01, 0x70, 0xBE, 0xD0, 0x0F, 0x80 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x0000002B, 0x00000F11, { { 0x68, 0xA0, 0xA3, 0xA0, 0xB6, 0xD1, 0x40, 0x22, 0xB4, 0x10, 0x3D, 0x5A, 0x7F, 0x1F, 0x4B, 0xE7 } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000031, 0x0000113B, { { 0xA5, 0x00, 0xD1, 0xDC, 0x25, 0x99, 0x3E, 0x6B, 0xFF, 0xC8, 0x6C, 0xDA, 0xA4, 0xCF, 0x51, 0xD7 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000022, 0x00000B6E, { { 0xAE, 0xA0, 0xDF, 0x07, 0xDD, 0x88, 0x98, 0x6B, 0xDD, 0x9E, 0x2E, 0xC0, 0xBD, 0x45, 0x2E, 0x2B } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x0000002B, 0x00000D6D, { { 0x08, 0x5E, 0x1F, 0xA8, 0x8F, 0x1F, 0x6A, 0xE0, 0xF3, 0x49, 0xEF, 0x44, 0xA8, 0xCD, 0xDE, 0x45 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000025, 0x00000CF6, { { 0x4B, 0x13, 0x39, 0xCB, 0x3F, 0x44, 0x18, 0x46, 0x43, 0xDB, 0x94, 0xC5, 0x3E, 0x6B, 0xC4, 0x74 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000024, 0x00000B73, { { 0x8D, 0x57, 0x5F, 0x93, 0x85, 0x75, 0xF2, 0xD8, 0x36, 0xC2, 0x7C, 0x0E, 0x3B, 0xEA, 0xE0, 0x0A } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x00000035, 0x0000205F, { { 0x33, 0xD6, 0x19, 0xEE, 0xEA, 0xDD, 0x9F, 0xB5, 0x77, 0x0C, 0x8E, 0x84, 0x5E, 0x61, 0x22, 0x3E } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kPoisonGoneStringProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x0000002D, 0x00000F59, { { 0x9A, 0x88, 0x07, 0x5A, 0x9C, 0xC3, 0x7B, 0xB0, 0x79, 0x69, 0xE0, 0x84, 0x11, 0x9B, 0x82, 0xCD } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000059, 0x00001E91, { { 0xDA, 0x9C, 0xC4, 0x7A, 0x79, 0x73, 0x60, 0xBF, 0x31, 0xF8, 0x8F, 0xAF, 0xC1, 0x4D, 0x25, 0xEC } } } }, // floppy
+ { FR_FRA, kPlatformPC, { 0x0000002A, 0x00000EAA, { { 0x0B, 0x4E, 0xDF, 0x03, 0x9E, 0x64, 0x3B, 0x13, 0x10, 0x6A, 0xF9, 0x4C, 0x66, 0x0D, 0x09, 0xC5 } } } }, // (fan) CD
+
+ { DE_DEU, kPlatformPC, { 0x00000036, 0x00001324, { { 0x30, 0x67, 0xEE, 0x7C, 0x4D, 0x36, 0xFE, 0x46, 0x05, 0x44, 0x23, 0xA1, 0xB4, 0x07, 0x16, 0xB5 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000034, 0x0000128D, { { 0x4E, 0x54, 0xFE, 0x58, 0x7F, 0x15, 0xFA, 0xC1, 0x50, 0xF8, 0x47, 0x29, 0x15, 0xE8, 0x83, 0xC7 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x0000002A, 0x00000DFD, { { 0x57, 0xDC, 0xE0, 0x45, 0x2E, 0x89, 0x77, 0x7F, 0x4B, 0x41, 0xCF, 0x4A, 0xFE, 0x0B, 0xAF, 0xC1 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000033, 0x0000127E, { { 0x67, 0xEB, 0xD3, 0x00, 0xF8, 0x4F, 0xF1, 0x79, 0x48, 0xE6, 0x9C, 0xB2, 0xA7, 0xCF, 0x76, 0x07 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x0000002E, 0x00000F59, { { 0xAD, 0x95, 0xF3, 0xA7, 0xBB, 0x04, 0x08, 0x77, 0xD0, 0x71, 0xFC, 0x8B, 0x33, 0x2A, 0x6D, 0xD3 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x0000003C, 0x000013B4, { { 0xE9, 0x54, 0xF1, 0xEC, 0x64, 0x5A, 0xEB, 0xC7, 0xAA, 0x7E, 0xA2, 0x9F, 0xE8, 0xFB, 0x3A, 0x82 } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x0000003D, 0x000017D1, { { 0x7C, 0x93, 0x62, 0x32, 0x47, 0xB9, 0x78, 0x03, 0x86, 0x8D, 0x99, 0xB8, 0x86, 0x68, 0xEF, 0x3A } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kHealingTipStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002D, 0x00000F04, { { 0xC0, 0xC7, 0x0C, 0x3D, 0xA7, 0x62, 0x14, 0xFB, 0xE8, 0x52, 0x05, 0x0D, 0xFE, 0xF6, 0xC7, 0x28 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000036, 0x0000132C, { { 0x86, 0x65, 0x80, 0x10, 0x40, 0x32, 0x6C, 0x2F, 0x5E, 0x76, 0xFB, 0xDC, 0x19, 0x33, 0x02, 0x3C } } } },
+
+ { DE_DEU, kPlatformPC, { 0x0000003C, 0x00001537, { { 0x78, 0xC2, 0x76, 0x24, 0x0D, 0x1F, 0xC0, 0x13, 0x4E, 0x34, 0x0A, 0x50, 0x4C, 0x35, 0x7E, 0xB1 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000003F, 0x0000170E, { { 0x0B, 0x37, 0xA4, 0x5E, 0x05, 0x4A, 0x96, 0x1F, 0x2E, 0x02, 0x43, 0xBE, 0xCC, 0xF9, 0x21, 0x5E } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000036, 0x00001364, { { 0x59, 0x70, 0x13, 0x8D, 0x93, 0x9C, 0x1B, 0x69, 0x2F, 0x13, 0x9A, 0xB2, 0x4C, 0x97, 0x7E, 0x95 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000028, 0x00000E0F, { { 0x3E, 0x40, 0xCA, 0x2A, 0x5F, 0xFE, 0x74, 0x30, 0x8C, 0x31, 0x41, 0x09, 0xBD, 0xFD, 0xA3, 0x7E } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x0000002E, 0x00000F04, { { 0x95, 0x39, 0x36, 0x89, 0xC4, 0x60, 0x7C, 0x0C, 0xDC, 0x06, 0xF7, 0x86, 0x1A, 0xF7, 0x93, 0x2B } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x0000002B, 0x00001949, { { 0xC7, 0xE3, 0x0A, 0x6B, 0x8F, 0xCA, 0xBC, 0x3A, 0xDC, 0x76, 0x48, 0xD3, 0x8B, 0xD9, 0x44, 0x2E } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kWispJewelStringsProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000053, 0x00001C62, { { 0x9A, 0xF1, 0xCC, 0xB3, 0x09, 0xF0, 0x9C, 0x33, 0x0E, 0xF0, 0xE3, 0xF8, 0x24, 0x63, 0x40, 0x95 } } } }, // floppy
+ { EN_ANY, kPlatformPC, { 0x00000052, 0x00001CE8, { { 0x6D, 0x69, 0x6D, 0x15, 0x4F, 0xF1, 0xD8, 0xA6, 0x53, 0x9F, 0xE3, 0x77, 0x75, 0x25, 0xE7, 0x93 } } } }, // CD
+
+ { FR_FRA, kPlatformPC, { 0x0000005B, 0x00001E9A, { { 0xC1, 0x26, 0xF3, 0x64, 0x18, 0x7D, 0xF7, 0x5A, 0xB6, 0x2B, 0x44, 0x57, 0xDC, 0x60, 0x20, 0x3C } } } }, // floppy
+ { FR_FRA, kPlatformPC, { 0x00000050, 0x00001B8D, { { 0x9A, 0xCE, 0x1D, 0x62, 0xFA, 0xC6, 0x73, 0x80, 0x02, 0x0A, 0x61, 0x24, 0xDC, 0x2A, 0xEF, 0xE6 } } } }, // CD
+
+ { DE_DEU, kPlatformPC, { 0x00000061, 0x00002184, { { 0x4B, 0x20, 0xD7, 0xE6, 0x00, 0xBF, 0x32, 0x40, 0xB7, 0xD0, 0xD6, 0xEC, 0x9C, 0x0F, 0x0B, 0xF0 } } } }, // floppy
+ { DE_DEU, kPlatformPC, { 0x00000058, 0x00001E88, { { 0x0E, 0x14, 0xD1, 0xF3, 0x03, 0x29, 0x48, 0x1D, 0x32, 0x2A, 0xBB, 0x0B, 0x48, 0xB3, 0x2E, 0x47 } } } }, // CD
+
+ { IT_ITA, kPlatformPC, { 0x00000074, 0x00002945, { { 0x17, 0x8B, 0x7E, 0xD9, 0x04, 0x7C, 0xD4, 0x9D, 0xCE, 0xF0, 0x79, 0x00, 0xAC, 0x82, 0x7C, 0x82 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000050, 0x00001A10, { { 0xFB, 0x79, 0x74, 0x14, 0xB9, 0x75, 0x4F, 0x44, 0x83, 0xB1, 0xD4, 0xBE, 0x17, 0x0F, 0xC4, 0xD6 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x0000005F, 0x0000211E, { { 0xE7, 0x0A, 0x85, 0x25, 0x44, 0x41, 0x47, 0x3B, 0x7A, 0xA6, 0x62, 0xAE, 0xAE, 0xD5, 0x92, 0x45 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000056, 0x00001C62, { { 0x43, 0x28, 0x3C, 0x0F, 0x78, 0x52, 0xE7, 0x2A, 0x77, 0xF3, 0x21, 0x5A, 0xF0, 0xFC, 0x9E, 0xF8 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x00000075, 0x00002B94, { { 0xA5, 0x4C, 0xBF, 0x5F, 0xD3, 0xF8, 0x6D, 0xE4, 0xB4, 0x8E, 0x64, 0x84, 0xD9, 0xBA, 0x2B, 0x33 } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x00000067, 0x00002C6B, { { 0x55, 0x56, 0x6B, 0xEA, 0xEF, 0x34, 0xDA, 0x23, 0x23, 0xF4, 0x9D, 0x0F, 0xBF, 0xC3, 0x1F, 0xDA } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kMagicJewelStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000013, 0x0000069E, { { 0x7C, 0xF2, 0xEE, 0x7C, 0x8A, 0xCE, 0x5B, 0x09, 0x32, 0xDC, 0x31, 0x1F, 0x45, 0x21, 0x84, 0xFF } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000011, 0x000005DB, { { 0x44, 0x99, 0x35, 0x77, 0x9B, 0x3D, 0xF8, 0xAF, 0x7A, 0xA6, 0x14, 0xD0, 0x99, 0xC6, 0x80, 0x7B } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000014, 0x000006EF, { { 0xDE, 0x77, 0xB6, 0x8C, 0x39, 0x5C, 0x6F, 0xDF, 0x7D, 0x04, 0x0F, 0x65, 0x24, 0x75, 0xED, 0x95 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000001D, 0x00000A83, { { 0x60, 0x69, 0x18, 0x6C, 0x34, 0xB0, 0x56, 0xE3, 0x06, 0x7C, 0xB1, 0xDD, 0x26, 0x80, 0xAE, 0x30 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000011, 0x000005E4, { { 0xD5, 0x11, 0xDA, 0x40, 0x09, 0x6A, 0x5D, 0x76, 0x5C, 0x20, 0xC4, 0x43, 0x4D, 0xF3, 0x67, 0xF0 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000011, 0x000005CD, { { 0x32, 0x2A, 0xFF, 0x9F, 0x10, 0x75, 0x6B, 0xD6, 0x46, 0xAE, 0x55, 0xD3, 0x68, 0x4F, 0xBB, 0x5A } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000014, 0x0000069E, { { 0x6A, 0x1C, 0x9B, 0x85, 0x61, 0xC7, 0x28, 0xA9, 0xA3, 0xF4, 0xFA, 0x47, 0x90, 0x8F, 0x06, 0xB4 } } } },
+
+ { JA_JPN, kPlatformFMTowns, { 0x0000000F, 0x0000087E, { { 0xD8, 0xF1, 0x40, 0x9D, 0x9C, 0x15, 0x9E, 0xBD, 0x69, 0xE5, 0xE1, 0x51, 0x34, 0x22, 0xF3, 0x75 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kThePoisonStringsProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000057, 0x00001C24, { { 0xBC, 0x31, 0x5C, 0x25, 0x50, 0x36, 0x58, 0x20, 0x55, 0xFC, 0x75, 0x47, 0x2D, 0x43, 0x73, 0x78 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x00000068, 0x000022D8, { { 0x39, 0xDA, 0xB3, 0xD2, 0xDA, 0x3F, 0xAB, 0x40, 0x1A, 0x4F, 0x9D, 0x02, 0xBA, 0x37, 0xEC, 0x4D } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000072, 0x00002690, { { 0xEF, 0x62, 0x85, 0xA3, 0x8B, 0x20, 0x4B, 0x65, 0xF8, 0xE7, 0x2C, 0x02, 0x3F, 0x3F, 0x25, 0x65 } } } },
+
+ { IT_ITA, kPlatformPC, { 0x00000063, 0x000021F8, { { 0x3C, 0x2E, 0xF8, 0xAD, 0xCF, 0xB5, 0xE7, 0x2C, 0x98, 0x7A, 0xB9, 0x6F, 0x7A, 0x42, 0xE1, 0x92 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000068, 0x00002077, { { 0x5D, 0xF4, 0xF9, 0xD9, 0x87, 0x34, 0x14, 0xAB, 0xE4, 0x9A, 0x67, 0xAF, 0x18, 0x8B, 0x40, 0x98 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000059, 0x00001DF7, { { 0x16, 0x7B, 0x5F, 0x91, 0x06, 0x5B, 0xFC, 0x9C, 0x88, 0x61, 0xCC, 0x1B, 0x52, 0x4F, 0x91, 0xC5 } } } },
+
+ { EN_ANY, kPlatformAmiga, { 0x00000058, 0x00001C24, { { 0xBA, 0x1F, 0xBD, 0x5C, 0x85, 0x3D, 0x3C, 0x92, 0xD1, 0x13, 0xF3, 0x40, 0x2E, 0xBB, 0x1C, 0xE2 } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x00000092, 0x0000334E, { { 0xC9, 0x02, 0xB5, 0xEF, 0x90, 0xA8, 0x9C, 0x6E, 0xAD, 0xD6, 0x1F, 0xCC, 0x71, 0x9F, 0x19, 0x2C } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x000000A0, 0x00003EEB, { { 0x4B, 0x0C, 0xD5, 0xF0, 0xFE, 0x05, 0xF5, 0x09, 0x96, 0xA9, 0xE4, 0xDD, 0x86, 0x8D, 0x79, 0x3C } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kFluteStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000003C, 0x00001599, { { 0x96, 0x72, 0x5A, 0x8A, 0xA0, 0xEE, 0xA2, 0xCE, 0x4D, 0x21, 0x01, 0x6C, 0xC5, 0x1A, 0xEB, 0x21 } } } }, // floppy + AMIGA
+ { EN_ANY, kPlatformPC, { 0x0000009C, 0x00002334, { { 0xA8, 0xA3, 0x1F, 0x0D, 0x36, 0x25, 0x19, 0x98, 0x50, 0xA0, 0x13, 0x65, 0xF4, 0xE8, 0x27, 0x19 } } } }, // CD
+
+ { FR_FRA, kPlatformPC, { 0x00000045, 0x000018EE, { { 0x3E, 0x3B, 0x20, 0x46, 0xEB, 0xB0, 0x88, 0x26, 0xB2, 0x0D, 0xD6, 0x8F, 0xF7, 0x53, 0x74, 0xAE } } } },
+
+ { DE_DEU, kPlatformPC, { 0x00000040, 0x000016F2, { { 0x70, 0xFF, 0x86, 0x73, 0x9E, 0x75, 0xDD, 0x17, 0x27, 0x86, 0x44, 0xE9, 0x78, 0x3D, 0x48, 0xDB } } } },
+
+ { IT_ITA, kPlatformPC, { 0x0000004C, 0x00001BFB, { { 0x06, 0x4F, 0x6A, 0x37, 0x8B, 0x44, 0x27, 0x26, 0xCE, 0x28, 0xB2, 0x47, 0x71, 0xE2, 0x27, 0x73 } } } }, // floppy
+ { IT_ITA, kPlatformPC, { 0x00000045, 0x00001726, { { 0x5A, 0xCF, 0x64, 0x4B, 0x61, 0x57, 0xEC, 0xB3, 0xBF, 0x32, 0x45, 0x51, 0x5D, 0x02, 0xC5, 0xB6 } } } }, // (fan) CD
+
+ { ES_ESP, kPlatformPC, { 0x00000052, 0x00001D8E, { { 0x9D, 0xA5, 0xF1, 0x42, 0xD1, 0x48, 0xEB, 0x8F, 0x4B, 0xDC, 0xD9, 0x10, 0x55, 0xBD, 0x12, 0xBB } } } },
+
+ { EN_ANY, kPlatformFMTowns, { 0x0000005A, 0x000024F9, { { 0xCA, 0x1F, 0x62, 0x23, 0x22, 0x25, 0x4A, 0x94, 0x8A, 0x50, 0x59, 0xD5, 0xB4, 0x4E, 0xF1, 0xA6 } } } },
+ { JA_JPN, kPlatformFMTowns, { 0x00000053, 0x00002745, { { 0x7A, 0xBB, 0xFC, 0x30, 0xB6, 0xCE, 0x61, 0xD4, 0xDB, 0xB0, 0xE6, 0xB2, 0xF4, 0x4D, 0x81, 0x35 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kFlaskFullStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001C, 0x000009C8, { { 0xA5, 0xC7, 0x5E, 0x6E, 0x02, 0xEE, 0x8C, 0xF8, 0xF0, 0xBF, 0x69, 0xB8, 0x05, 0x1E, 0xF5, 0x28 } } } },
+
+ { FR_FRA, kPlatformPC, { 0x0000001E, 0x00000AC7, { { 0x4E, 0x7A, 0xC8, 0xC5, 0xD4, 0xB8, 0xD0, 0x73, 0x66, 0x2B, 0x2A, 0x13, 0xDE, 0xE1, 0x32, 0xAA } } } },
+
+ { DE_DEU, kPlatformPC, { 0x0000001E, 0x00000A71, { { 0x11, 0x88, 0x37, 0x8E, 0x17, 0xF2, 0x82, 0x1E, 0x72, 0xF0, 0xA3, 0x2B, 0x4F, 0x76, 0x5F, 0xBA } } } },
+
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list