diff options
-rw-r--r-- | common/advancedDetector.cpp | 4 | ||||
-rw-r--r-- | common/advancedDetector.h | 3 | ||||
-rw-r--r-- | engines/agos/agos.h | 20 | ||||
-rw-r--r-- | engines/agos/game.cpp | 1023 | ||||
-rw-r--r-- | engines/agos/items.cpp | 4 | ||||
-rw-r--r-- | engines/saga/game.cpp | 10 | ||||
-rw-r--r-- | engines/saga/saga.h | 8 | ||||
-rw-r--r-- | engines/saga/sagagame.cpp | 156 | ||||
-rw-r--r-- | engines/saga/sagagame.h | 3 |
9 files changed, 721 insertions, 510 deletions
diff --git a/common/advancedDetector.cpp b/common/advancedDetector.cpp index 4a939cce3c..3399f4d4ca 100644 --- a/common/advancedDetector.cpp +++ b/common/advancedDetector.cpp @@ -103,6 +103,7 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla tstr = file->_key; tstr.toLowercase(); + debug(3, "+ %s", tstr.c_str()); if (!filesMD5.contains(tstr)) { if (testFile.open(file->_key)) { testFile.close(); @@ -112,6 +113,7 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla sprintf(md5str + j*2, "%02x", (int)md5sum[j]); } filesMD5[tstr] = String(md5str); + debug(3, "> %s: %s", tstr.c_str(), md5str); } } } @@ -136,6 +138,8 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla if (strcmp(fileDesc->md5, filesMD5[tstr].c_str()) && strcmp(fileDesc->md5, filesMD5[tstr2].c_str())) { fileMissing = true; break; + } else { + debug(3, "Matched file: %s", tstr.c_str()); } } if (!fileMissing) { diff --git a/common/advancedDetector.h b/common/advancedDetector.h index 055534e56d..c3396a9ddc 100644 --- a/common/advancedDetector.h +++ b/common/advancedDetector.h @@ -34,12 +34,9 @@ struct ADGameFileDescription { struct ADGameDescription { const char *name; - int gameType; - int gameId; const char *extra; int filesCount; ADGameFileDescription *filesDescriptions; - uint32 features; Language language; Platform platform; }; diff --git a/engines/agos/agos.h b/engines/agos/agos.h index b60aea1cea..76c1dd9c87 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -120,6 +120,14 @@ enum SIMONGameType { GType_PP = 7 }; +struct AGOSGameDescription { + Common::ADGameDescription desc; + + int gameType; + int gameId; + uint32 features; +}; + struct GameSpecificSettings; class Debugger; @@ -159,7 +167,7 @@ class AGOSEngine : public Engine { void setupFeebleVideoOpcodes(VgaOpcodeProc *op); public: - Common::ADGameDescription *_gameDescription; + AGOSGameDescription *_gameDescription; bool initGame(void); void setupGame(); @@ -167,12 +175,12 @@ public: int getGameId() const { return _gameDescription->gameId; } int getGameType() const { return _gameDescription->gameType; } uint32 getFeatures() const { return _gameDescription->features; } - Common::Language getLanguage() const { return _gameDescription->language; } - Common::Platform getPlatform() const { return _gameDescription->platform; } + Common::Language getLanguage() const { return _gameDescription->desc.language; } + Common::Platform getPlatform() const { return _gameDescription->desc.platform; } const char *getFileName(int type) const { - for (int i = 0; i < _gameDescription->filesCount; i++) { - if (_gameDescription->filesDescriptions[i].fileType == type) - return _gameDescription->filesDescriptions[i].fileName; + for (int i = 0; i < _gameDescription->desc.filesCount; i++) { + if (_gameDescription->desc.filesDescriptions[i].fileType == type) + return _gameDescription->desc.filesDescriptions[i].fileName; } error("getFileName: Invalid type %d", type); } diff --git a/engines/agos/game.cpp b/engines/agos/game.cpp index 3f3d968bfb..9cd004a5b9 100644 --- a/engines/agos/game.cpp +++ b/engines/agos/game.cpp @@ -640,881 +640,1080 @@ static ADGameFileDescription SWAMPY_GameFiles[] = { { "Gswampy", GAME_BASEFILE, "3a6d4d7b2433e660f2483f9396cc87a2"}, }; -static ADGameDescription gameDescriptions[] = { +static AGOSGameDescription gameDescriptions[] = { // Elvira - English Floppy { - "elvira", + { + "elvira", + "Floppy", + ARRAYSIZE(ELVIRA1DOS_GameFiles), + ELVIRA1DOS_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_ELVIRA, GID_ELVIRA, - "Floppy", - ARRAYSIZE(ELVIRA1DOS_GameFiles), - ELVIRA1DOS_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Elvira - English Floppy Alternative? { - "elvira", + { + "elvira", + "Floppy", + ARRAYSIZE(ELVIRA1DOS2_GameFiles), + ELVIRA1DOS2_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_ELVIRA, GID_ELVIRA, - "Floppy", - ARRAYSIZE(ELVIRA1DOS2_GameFiles), - ELVIRA1DOS2_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Elvira 2 - English Floppy { - "elvira2", + { + "elvira2", + "Floppy", + ARRAYSIZE(ELVIRA2DOS_GameFiles), + ELVIRA2DOS_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_ELVIRA2, GID_ELVIRA2, - "Floppy", - ARRAYSIZE(ELVIRA2DOS_GameFiles), - ELVIRA2DOS_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Waxworks - English Floppy { - "waxworks", + { + "waxworks", + "Floppy", + ARRAYSIZE(WAXWORKSDOS_GameFiles), + WAXWORKSDOS_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_WW, GID_WAXWORKS, - "Floppy", - ARRAYSIZE(WAXWORKSDOS_GameFiles), - WAXWORKSDOS_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English Acorn CD Demo { - "simon1", + { + "simon1", + "CD Demo", + ARRAYSIZE(SIMON1ACORNDEMO_GameFiles), + SIMON1ACORNDEMO_GameFiles, + Common::EN_ANY, + Common::kPlatformAcorn, + }, + GType_SIMON1, GID_SIMON1ACORNDEMO, - "CD Demo", - ARRAYSIZE(SIMON1ACORNDEMO_GameFiles), - SIMON1ACORNDEMO_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformAcorn, }, // Simon the Sorcerer 1 - English Acorn CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1ACORN_GameFiles), + SIMON1ACORN_GameFiles, + Common::EN_ANY, + Common::kPlatformAcorn, + }, + GType_SIMON1, GID_SIMON1ACORN, - "CD", - ARRAYSIZE(SIMON1ACORN_GameFiles), - SIMON1ACORN_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformAcorn, }, // Simon the Sorcerer 1 - English AGA Floppy { - "simon1", + { + "simon1", + "AGA Floppy", + ARRAYSIZE(SIMON1AMIGA_GameFiles), + SIMON1AMIGA_GameFiles, + Common::EN_ANY, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1AMIGA, - "AGA Floppy", - ARRAYSIZE(SIMON1AMIGA_GameFiles), - SIMON1AMIGA_GameFiles, GF_CRUNCHED | GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - French AGA Floppy { - "simon1", + { + "simon1", + "AGA Floppy", + ARRAYSIZE(SIMON1AMIGA_FR_GameFiles), + SIMON1AMIGA_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1AMIGA_FR, - "AGA Floppy", - ARRAYSIZE(SIMON1AMIGA_FR_GameFiles), - SIMON1AMIGA_FR_GameFiles, GF_CRUNCHED | GF_OLD_BUNDLE, - Common::FR_FRA, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - German AGA Floppy { - "simon1", + { + "simon1", + "AGA Floppy", + ARRAYSIZE(SIMON1AMIGA_DE_GameFiles), + SIMON1AMIGA_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1AMIGA_DE, - "AGA Floppy", - ARRAYSIZE(SIMON1AMIGA_DE_GameFiles), - SIMON1AMIGA_DE_GameFiles, GF_CRUNCHED | GF_OLD_BUNDLE, - Common::DE_DEU, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - English Amiga ECS Demo { - "simon1", + { + "simon1", + "ECS Demo", + ARRAYSIZE(SIMON1AMIGADEMO_GameFiles), + SIMON1AMIGADEMO_GameFiles, + Common::EN_ANY, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1AMIGADEMO, - "ECS Demo", - ARRAYSIZE(SIMON1AMIGADEMO_GameFiles), - SIMON1AMIGADEMO_GameFiles, GF_CRUNCHED | GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - English Amiga CD32 { - "simon1", + { + "simon1", + "CD32", + ARRAYSIZE(SIMON1CD32_GameFiles), + SIMON1CD32_GameFiles, + Common::EN_ANY, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1CD32, - "CD32", - ARRAYSIZE(SIMON1CD32_GameFiles), - SIMON1CD32_GameFiles, GF_TALKIE | GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - English Amiga CD32 alternative? { - "simon1", + { + "simon1", + "CD32", + ARRAYSIZE(SIMON1CD32_2_GameFiles), + SIMON1CD32_2_GameFiles, + Common::EN_ANY, + Common::kPlatformAmiga, + }, + GType_SIMON1, GID_SIMON1CD32_2, - "CD32", - ARRAYSIZE(SIMON1CD32_2_GameFiles), - SIMON1CD32_2_GameFiles, GF_TALKIE | GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformAmiga, }, // Simon the Sorcerer 1 - English DOS Floppy Demo { - "simon1", + { + "simon1", + "Floppy Demo", + ARRAYSIZE(SIMON1DEMO_GameFiles), + SIMON1DEMO_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DEMO, - "Floppy Demo", - ARRAYSIZE(SIMON1DEMO_GameFiles), - SIMON1DEMO_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS Floppy { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_GameFiles), + SIMON1DOS_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS, - "Floppy", - ARRAYSIZE(SIMON1DOS_GameFiles), - SIMON1DOS_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS Floppy with Russian patch { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_RU_GameFiles), + SIMON1DOS_RU_GameFiles, + Common::RU_RUS, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_RU, - "Floppy", - ARRAYSIZE(SIMON1DOS_RU_GameFiles), - SIMON1DOS_RU_GameFiles, GF_OLD_BUNDLE, - Common::RU_RUS, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS Floppy (Infocom) { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_INF_GameFiles), + SIMON1DOS_INF_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_INF, - "Floppy", - ARRAYSIZE(SIMON1DOS_INF_GameFiles), - SIMON1DOS_INF_GameFiles, GF_OLD_BUNDLE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS Floppy (Infocom) with Russian patch { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_INF_RU_GameFiles), + SIMON1DOS_INF_RU_GameFiles, + Common::RU_RUS, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_INF_RU, - "Floppy", - ARRAYSIZE(SIMON1DOS_INF_RU_GameFiles), - SIMON1DOS_INF_RU_GameFiles, GF_OLD_BUNDLE, - Common::RU_RUS, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - French DOS Floppy { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_FR_GameFiles), + SIMON1DOS_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_FR, - "Floppy", - ARRAYSIZE(SIMON1DOS_FR_GameFiles), - SIMON1DOS_FR_GameFiles, GF_OLD_BUNDLE, - Common::FR_FRA, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - German DOS Floppy { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_DE_GameFiles), + SIMON1DOS_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_DE, - "Floppy", - ARRAYSIZE(SIMON1DOS_DE_GameFiles), - SIMON1DOS_DE_GameFiles, GF_OLD_BUNDLE, - Common::DE_DEU, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - Italian DOS Floppy { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_IT_GameFiles), + SIMON1DOS_IT_GameFiles, + Common::IT_ITA, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_IT, - "Floppy", - ARRAYSIZE(SIMON1DOS_IT_GameFiles), - SIMON1DOS_IT_GameFiles, GF_OLD_BUNDLE, - Common::IT_ITA, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - Spanish DOS Floppy { - "simon1", + { + "simon1", + "Floppy", + ARRAYSIZE(SIMON1DOS_ES_GameFiles), + SIMON1DOS_ES_GameFiles, + Common::ES_ESP, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1DOS_ES, - "Floppy", - ARRAYSIZE(SIMON1DOS_ES_GameFiles), - SIMON1DOS_ES_GameFiles, GF_OLD_BUNDLE, - Common::ES_ESP, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_GameFiles), + SIMON1TALKIE_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE, - "CD", - ARRAYSIZE(SIMON1TALKIE_GameFiles), - SIMON1TALKIE_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English DOS CD alternate? { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE2_GameFiles), + SIMON1TALKIE2_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE2, - "CD", - ARRAYSIZE(SIMON1TALKIE2_GameFiles), - SIMON1TALKIE2_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - French DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_FR_GameFiles), + SIMON1TALKIE_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE_FR, - "CD", - ARRAYSIZE(SIMON1TALKIE_FR_GameFiles), - SIMON1TALKIE_FR_GameFiles, GF_TALKIE, - Common::FR_FRA, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - German DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_DE_GameFiles), + SIMON1TALKIE_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE_DE, - "CD", - ARRAYSIZE(SIMON1TALKIE_DE_GameFiles), - SIMON1TALKIE_DE_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - Hebrew DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_HB_GameFiles), + SIMON1TALKIE_HB_GameFiles, + Common::HB_ISR, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE_HB, - "CD", - ARRAYSIZE(SIMON1TALKIE_HB_GameFiles), - SIMON1TALKIE_HB_GameFiles, GF_TALKIE, - Common::HB_ISR, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - Italian DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_IT_GameFiles), + SIMON1TALKIE_IT_GameFiles, + Common::IT_ITA, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE_IT, - "CD", - ARRAYSIZE(SIMON1TALKIE_IT_GameFiles), - SIMON1TALKIE_IT_GameFiles, GF_TALKIE, - Common::IT_ITA, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - Italian DOS CD alternate { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_IT2_GameFiles), + SIMON1TALKIE_IT2_GameFiles, + // FIXME: DOS version which uses WAV format + Common::IT_ITA, + Common::kPlatformWindows, + }, + GType_SIMON1, GID_SIMON1TALKIE_IT2, - "CD", - ARRAYSIZE(SIMON1TALKIE_IT2_GameFiles), - SIMON1TALKIE_IT2_GameFiles, GF_TALKIE, - Common::IT_ITA, - // FIXME: DOS version which uses WAV format - Common::kPlatformWindows, }, // Simon the Sorcerer 1 - Spanish DOS CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1TALKIE_ES_GameFiles), + SIMON1TALKIE_ES_GameFiles, + Common::ES_ESP, + Common::kPlatformPC, + }, + GType_SIMON1, GID_SIMON1TALKIE_ES, - "CD", - ARRAYSIZE(SIMON1TALKIE_ES_GameFiles), - SIMON1TALKIE_ES_GameFiles, GF_TALKIE, - Common::ES_ESP, - Common::kPlatformPC, }, // Simon the Sorcerer 1 - English Windows CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1WIN_GameFiles), + SIMON1WIN_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_SIMON1, GID_SIMON1WIN, - "CD", - ARRAYSIZE(SIMON1WIN_GameFiles), - SIMON1WIN_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // Simon the Sorcerer 1 - English Windows CD with Russian patch { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1WIN_RU_GameFiles), + SIMON1WIN_RU_GameFiles, + Common::RU_RUS, + Common::kPlatformWindows, + }, + GType_SIMON1, GID_SIMON1WIN_RU, - "CD", - ARRAYSIZE(SIMON1WIN_RU_GameFiles), - SIMON1WIN_RU_GameFiles, GF_TALKIE, - Common::RU_RUS, - Common::kPlatformWindows, }, // Simon the Sorcerer 1 - German Windows CD { - "simon1", + { + "simon1", + "CD", + ARRAYSIZE(SIMON1WIN_DE_GameFiles), + SIMON1WIN_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformWindows, + }, + GType_SIMON1, GID_SIMON1WIN_DE, - "CD", - ARRAYSIZE(SIMON1WIN_DE_GameFiles), - SIMON1WIN_DE_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformWindows, }, // Simon the Sorcerer 2 - English DOS Floppy { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS_GameFiles), + SIMON2DOS_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS, - "Floppy", - ARRAYSIZE(SIMON2DOS_GameFiles), - SIMON2DOS_GameFiles, 0, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English DOS Floppy with Russian patch { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS_RU_GameFiles), + SIMON2DOS_RU_GameFiles, + Common::RU_RUS, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS_RU, - "Floppy", - ARRAYSIZE(SIMON2DOS_RU_GameFiles), - SIMON2DOS_RU_GameFiles, 0, - Common::RU_RUS, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English DOS Floppy alternate? { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS2_GameFiles), + SIMON2DOS2_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS2, - "Floppy", - ARRAYSIZE(SIMON2DOS2_GameFiles), - SIMON2DOS2_GameFiles, 0, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English DOS Floppy alternate? with Russian patch { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS2_RU_GameFiles), + SIMON2DOS2_RU_GameFiles, + Common::RU_RUS, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS2_RU, - "Floppy", - ARRAYSIZE(SIMON2DOS2_RU_GameFiles), - SIMON2DOS2_RU_GameFiles, 0, - Common::RU_RUS, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - German DOS Floppy { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS_DE_GameFiles), + SIMON2DOS_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS_DE, - "Floppy", - ARRAYSIZE(SIMON2DOS_DE_GameFiles), - SIMON2DOS_DE_GameFiles, 0, - Common::DE_DEU, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - Italian DOS Floppy { - "simon2", + { + "simon2", + "Floppy", + ARRAYSIZE(SIMON2DOS_IT_GameFiles), + SIMON2DOS_IT_GameFiles, + Common::IT_ITA, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DOS_IT, - "Floppy", - ARRAYSIZE(SIMON2DOS_IT_GameFiles), - SIMON2DOS_IT_GameFiles, 0, - Common::IT_ITA, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English DOS CD Demo { - "simon2", + { + "simon2", + "CD Demo", + ARRAYSIZE(SIMON2DEMO_GameFiles), + SIMON2DEMO_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2DEMO, - "CD Demo", - ARRAYSIZE(SIMON2DEMO_GameFiles), - SIMON2DEMO_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_GameFiles), + SIMON2TALKIE_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE, - "CD", - ARRAYSIZE(SIMON2TALKIE_GameFiles), - SIMON2TALKIE_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformPC, }, - // Simon the Sorcerer 2 - English DOS CD alternate? { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE2_GameFiles), + SIMON2TALKIE2_GameFiles, + Common::EN_ANY, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE2, - "CD", - ARRAYSIZE(SIMON2TALKIE2_GameFiles), - SIMON2TALKIE2_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - French DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_FR_GameFiles), + SIMON2TALKIE_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE_FR, - "CD", - ARRAYSIZE(SIMON2TALKIE_FR_GameFiles), - SIMON2TALKIE_FR_GameFiles, GF_TALKIE, - Common::FR_FRA, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - German DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_DE_GameFiles), + SIMON2TALKIE_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE_DE, - "CD", - ARRAYSIZE(SIMON2TALKIE_DE_GameFiles), - SIMON2TALKIE_DE_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - German DOS CD alternate? { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_DE2_GameFiles), + SIMON2TALKIE_DE2_GameFiles, + Common::DE_DEU, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE_DE2, - "CD", - ARRAYSIZE(SIMON2TALKIE_DE2_GameFiles), - SIMON2TALKIE_DE2_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - Hebrew DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_HB_GameFiles), + SIMON2TALKIE_HB_GameFiles, + Common::HB_ISR, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE_HB, - "CD", - ARRAYSIZE(SIMON2TALKIE_HB_GameFiles), - SIMON2TALKIE_HB_GameFiles, GF_TALKIE, - Common::HB_ISR, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - Italian DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_IT_GameFiles), + SIMON2TALKIE_IT_GameFiles, + // FIXME: DOS version which uses WAV format + Common::IT_ITA, + Common::kPlatformWindows, + }, + GType_SIMON2, GID_SIMON2TALKIE_IT, - "CD", - ARRAYSIZE(SIMON2TALKIE_IT_GameFiles), - SIMON2TALKIE_IT_GameFiles, GF_TALKIE, - Common::IT_ITA, - // FIXME: DOS version which uses WAV format - Common::kPlatformWindows, }, // Simon the Sorcerer 2 - Spanish DOS CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2TALKIE_ES_GameFiles), + SIMON2TALKIE_ES_GameFiles, + Common::ES_ESP, + Common::kPlatformPC, + }, + GType_SIMON2, GID_SIMON2TALKIE_ES, - "CD", - ARRAYSIZE(SIMON2TALKIE_ES_GameFiles), - SIMON2TALKIE_ES_GameFiles, GF_TALKIE, - Common::ES_ESP, - Common::kPlatformPC, }, // Simon the Sorcerer 2 - English Windows CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2WIN_GameFiles), + SIMON2WIN_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_SIMON2, GID_SIMON2WIN, - "CD", - ARRAYSIZE(SIMON2WIN_GameFiles), - SIMON2WIN_GameFiles, GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // Simon the Sorcerer 2 - German Windows CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2WIN_DE_GameFiles), + SIMON2WIN_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformWindows, + }, + GType_SIMON2, GID_SIMON2WIN_DE, - "CD", - ARRAYSIZE(SIMON2WIN_DE_GameFiles), - SIMON2WIN_DE_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformWindows, }, // Simon the Sorcerer 2 - German Windows CD 1.1 { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2WIN_DE2_GameFiles), + SIMON2WIN_DE2_GameFiles, + Common::DE_DEU, + Common::kPlatformWindows, + }, + GType_SIMON2, GID_SIMON2WIN_DE2, - "CD", - ARRAYSIZE(SIMON2WIN_DE2_GameFiles), - SIMON2WIN_DE2_GameFiles, GF_TALKIE, - Common::DE_DEU, - Common::kPlatformWindows, }, // Simon the Sorcerer 2 - Polish Windows CD { - "simon2", + { + "simon2", + "CD", + ARRAYSIZE(SIMON2WIN_PL_GameFiles), + SIMON2WIN_PL_GameFiles, + Common::PL_POL, + Common::kPlatformWindows, + }, + GType_SIMON2, GID_SIMON2WIN_PL, - "CD", - ARRAYSIZE(SIMON2WIN_PL_GameFiles), - SIMON2WIN_PL_GameFiles, GF_TALKIE, - Common::PL_POL, - Common::kPlatformWindows, }, // The Feeble Files - English Amiga CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_AMI_UK_GameFiles), + FEEBLEFILES_AMI_UK_GameFiles, + Common::EN_ANY, + Common::kPlatformAmiga, + }, + GType_FF, GID_FEEBLEFILES_AMI_UK, - "CD", - ARRAYSIZE(FEEBLEFILES_AMI_UK_GameFiles), - FEEBLEFILES_AMI_UK_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformAmiga, }, // The Feeble Files - German Amiga CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_AMI_DE_GameFiles), + FEEBLEFILES_AMI_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformAmiga, + }, + GType_FF, GID_FEEBLEFILES_AMI_DE, - "CD", - ARRAYSIZE(FEEBLEFILES_AMI_DE_GameFiles), - FEEBLEFILES_AMI_DE_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::DE_DEU, - Common::kPlatformAmiga, }, // The Feeble Files - English Macintosh CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_MAC_UK_GameFiles), + FEEBLEFILES_MAC_UK_GameFiles, + Common::EN_ANY, + Common::kPlatformMacintosh, + }, + GType_FF, GID_FEEBLEFILES_MAC_UK, - "CD", - ARRAYSIZE(FEEBLEFILES_MAC_UK_GameFiles), - FEEBLEFILES_MAC_UK_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformMacintosh, }, // The Feeble Files - French Macintosh CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_MAC_FR_GameFiles), + FEEBLEFILES_MAC_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformMacintosh, + }, + GType_FF, GID_FEEBLEFILES_MAC_FR, - "CD", - ARRAYSIZE(FEEBLEFILES_MAC_FR_GameFiles), - FEEBLEFILES_MAC_FR_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::FR_FRA, - Common::kPlatformMacintosh, }, // The Feeble Files - German Macintosh CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_MAC_DE_GameFiles), + FEEBLEFILES_MAC_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformMacintosh, + }, + GType_FF, GID_FEEBLEFILES_MAC_DE, - "CD", - ARRAYSIZE(FEEBLEFILES_MAC_DE_GameFiles), - FEEBLEFILES_MAC_DE_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::DE_DEU, - Common::kPlatformMacintosh, }, // The Feeble Files - Spanish Macintosh CD { - "feeble", + { + "feeble", + "CD", + ARRAYSIZE(FEEBLEFILES_MAC_ES_GameFiles), + FEEBLEFILES_MAC_ES_GameFiles, + Common::ES_ESP, + Common::kPlatformMacintosh, + }, + GType_FF, GID_FEEBLEFILES_MAC_ES, - "CD", - ARRAYSIZE(FEEBLEFILES_MAC_ES_GameFiles), - FEEBLEFILES_MAC_ES_GameFiles, GF_OLD_BUNDLE | GF_ZLIBCOMP | GF_TALKIE, - Common::ES_ESP, - Common::kPlatformMacintosh, }, // The Feeble Files - English Windows 2CD { - "feeble", + { + "feeble", + "2CD", + ARRAYSIZE(FEEBLEFILES_2CD_GameFiles), + FEEBLEFILES_2CD_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_2CD, - "2CD", - ARRAYSIZE(FEEBLEFILES_2CD_GameFiles), - FEEBLEFILES_2CD_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // The Feeble Files - English Windows 4CD { - "feeble", + { + "feeble", + "4CD", + ARRAYSIZE(FEEBLEFILES_4CD_GameFiles), + FEEBLEFILES_4CD_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_4CD, - "4CD", - ARRAYSIZE(FEEBLEFILES_4CD_GameFiles), - FEEBLEFILES_4CD_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // The Feeble Files - French Windows 4CD { - "feeble", + { + "feeble", + "4CD", + ARRAYSIZE(FEEBLEFILES_FR_GameFiles), + FEEBLEFILES_FR_GameFiles, + Common::FR_FRA, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_FR, - "4CD", - ARRAYSIZE(FEEBLEFILES_FR_GameFiles), - FEEBLEFILES_FR_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::FR_FRA, - Common::kPlatformWindows, }, // The Feeble Files - German Windows 4CD { - "feeble", + { + "feeble", + "4CD", + ARRAYSIZE(FEEBLEFILES_DE_GameFiles), + FEEBLEFILES_DE_GameFiles, + Common::DE_DEU, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_DE, - "4CD", - ARRAYSIZE(FEEBLEFILES_DE_GameFiles), - FEEBLEFILES_DE_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::DE_DEU, - Common::kPlatformWindows, }, // The Feeble Files - Italian Windows 4CD { - "feeble", + { + "feeble", + "4CD", + ARRAYSIZE(FEEBLEFILES_IT_GameFiles), + FEEBLEFILES_IT_GameFiles, + Common::IT_ITA, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_IT, - "4CD", - ARRAYSIZE(FEEBLEFILES_IT_GameFiles), - FEEBLEFILES_IT_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::IT_ITA, - Common::kPlatformWindows, }, // The Feeble Files - Spanish Windows 4CD { - "feeble", + { + "feeble", + "4CD", + ARRAYSIZE(FEEBLEFILES_ES_GameFiles), + FEEBLEFILES_ES_GameFiles, + Common::ES_ESP, + Common::kPlatformWindows, + }, + GType_FF, GID_FEEBLEFILES_ES, - "4CD", - ARRAYSIZE(FEEBLEFILES_ES_GameFiles), - FEEBLEFILES_ES_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::ES_ESP, - Common::kPlatformWindows, }, // Simon the Sorcerer's Puzzle Pack - Demon in my Pocket { - "dimp", + { + "dimp", + "CD", + ARRAYSIZE(DIMP_GameFiles), + DIMP_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_PP, GID_DIMP, - "CD", - ARRAYSIZE(DIMP_GameFiles), - DIMP_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // Simon the Sorcerer's Puzzle Pack - Jumble { - "jumble", + { + "jumble", + "CD", + ARRAYSIZE(JUMBLE_GameFiles), + JUMBLE_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_PP, GID_JUMBLE, - "CD", - ARRAYSIZE(JUMBLE_GameFiles), - JUMBLE_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // Simon the Sorcerer's Puzzle Pack - NoPatience { - "puzzle", + { + "puzzle", + "CD", + ARRAYSIZE(PUZZLE_GameFiles), + PUZZLE_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_PP, GID_PUZZLE, - "CD", - ARRAYSIZE(PUZZLE_GameFiles), - PUZZLE_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, // Simon the Sorcerer's Puzzle Pack - Swampy Adventures { - "swampy", + { + "swampy", + "CD", + ARRAYSIZE(SWAMPY_GameFiles), + SWAMPY_GameFiles, + Common::EN_ANY, + Common::kPlatformWindows, + }, + GType_PP, GID_SWAMPY, - "CD", - ARRAYSIZE(SWAMPY_GameFiles), - SWAMPY_GameFiles, GF_OLD_BUNDLE | GF_TALKIE, - Common::EN_ANY, - Common::kPlatformWindows, }, - }; DetectedGame toDetectedGame(const ADGameDescription &g) { @@ -1557,7 +1756,7 @@ bool AGOSEngine::initGame() { // over again... for (int i = 0; i < ARRAYSIZE(gameDescriptions); i++) - descList.push_back(&gameDescriptions[i]); + descList.push_back((ADGameDescription *)&gameDescriptions[i]); AdvDetector.registerGameDescriptions(descList); AdvDetector.setFileMD5Bytes(FILE_MD5_BYTES); @@ -1565,7 +1764,7 @@ bool AGOSEngine::initGame() { matches = AdvDetector.detectGame(NULL, language, platform); for (uint i = 0; i < matches.size(); i++) { - if (toDetectedGame(gameDescriptions[matches[i]]).gameid == gameid) { + if (toDetectedGame(gameDescriptions[matches[i]].desc).gameid == gameid) { gameNumber = matches[i]; break; } @@ -1577,7 +1776,7 @@ bool AGOSEngine::initGame() { error("AGOSEngine::loadGame wrong gameNumber"); } - debug(2, "Running %s", toDetectedGame(gameDescriptions[gameNumber]).description.c_str()); + debug(2, "Running %s", toDetectedGame(gameDescriptions[gameNumber].desc).description.c_str()); _gameDescription = &gameDescriptions[gameNumber]; @@ -1591,7 +1790,7 @@ DetectedGameList GAME_detectGames(const FSList &fslist) { Common::ADGameDescList descList; for (int i = 0; i < ARRAYSIZE(gameDescriptions); i++) - descList.push_back(&gameDescriptions[i]); + descList.push_back((ADGameDescription *)&gameDescriptions[i]); AdvDetector.registerGameDescriptions(descList); AdvDetector.setFileMD5Bytes(FILE_MD5_BYTES); @@ -1599,7 +1798,7 @@ DetectedGameList GAME_detectGames(const FSList &fslist) { matches = AdvDetector.detectGame(&fslist, Common::UNK_LANG, Common::kPlatformUnknown); for (uint i = 0; i < matches.size(); i++) - detectedGames.push_back(toDetectedGame(gameDescriptions[matches[i]])); + detectedGames.push_back(toDetectedGame(gameDescriptions[matches[i]].desc)); //delete &matches; return detectedGames; diff --git a/engines/agos/items.cpp b/engines/agos/items.cpp index 29de3ffade..0db5b30457 100644 --- a/engines/agos/items.cpp +++ b/engines/agos/items.cpp @@ -2226,9 +2226,9 @@ void AGOSEngine::o3_checkCD() { // 135: switch CD uint disc = readVariable(97); - if (!strcmp(_gameDescription->extra, "4CD")) { + if (!strcmp(_gameDescription->desc.extra, "4CD")) { _sound->switchVoiceFile(gss, disc); - } else if (!strcmp(_gameDescription->extra, "2CD")) { + } else if (!strcmp(_gameDescription->desc.extra, "2CD")) { if (disc == 1 || disc == 2) _sound->switchVoiceFile(gss, 1); else if (disc == 3 || disc == 4) diff --git a/engines/saga/game.cpp b/engines/saga/game.cpp index ab42f730b9..3f3ba177bc 100644 --- a/engines/saga/game.cpp +++ b/engines/saga/game.cpp @@ -112,11 +112,11 @@ using Common::ADGameDescription; #include "sagagame.cpp" -DetectedGame toDetectedGame(const ADGameDescription &g) { +DetectedGame toDetectedGame(const SAGAGameDescription &g) { const char *title; title = saga_games[g.gameType].description; - DetectedGame dg(g.name, title, g.language, g.platform); - dg.updateDesc(g.extra); + DetectedGame dg(g.desc.name, title, g.desc.language, g.desc.platform); + dg.updateDesc(g.desc.extra); return dg; } @@ -162,7 +162,7 @@ bool SagaEngine::initGame() { error("SagaEngine::loadGame wrong gameNumber"); } - _gameTitle = toDetectedGame(gameDescriptions[gameNumber].desc).description; + _gameTitle = toDetectedGame(gameDescriptions[gameNumber]).description; debug(2, "Running %s", _gameTitle.c_str()); _gameNumber = gameNumber; @@ -192,7 +192,7 @@ DetectedGameList GAME_detectGames(const FSList &fslist) { matches = AdvDetector.detectGame(&fslist, Common::UNK_LANG, Common::kPlatformUnknown); for (uint i = 0; i < matches.size(); i++) - detectedGames.push_back(toDetectedGame(gameDescriptions[matches[i]].desc)); + detectedGames.push_back(toDetectedGame(gameDescriptions[matches[i]])); //delete matches; return detectedGames; diff --git a/engines/saga/saga.h b/engines/saga/saga.h index d0b3291b93..7b2f112505 100644 --- a/engines/saga/saga.h +++ b/engines/saga/saga.h @@ -374,7 +374,7 @@ public: bool initGame(void); public: const SAGAGameDescription *getGameDescription() const { return _gameDescription; } - const bool isBigEndian() const { return (_gameDescription->desc.features & GF_BIG_ENDIAN_DATA) != 0; } + const bool isBigEndian() const { return (_gameDescription->features & GF_BIG_ENDIAN_DATA) != 0; } const bool isMacResources() const { return (getPlatform() == Common::kPlatformMacintosh); } const GameResourceDescription *getResourceDescription() { return _gameDescription->resourceDescription; } const GameSoundInfo *getVoiceInfo() const { return _gameDescription->voiceInfo; } @@ -387,9 +387,9 @@ public: } int getFontsCount() const { return _gameDescription->fontsCount; } - int getGameId() const { return _gameDescription->desc.gameId; } - int getGameType() const { return _gameDescription->desc.gameType; } - uint32 getFeatures() const { return _gameDescription->desc.features; } + int getGameId() const { return _gameDescription->gameId; } + int getGameType() const { return _gameDescription->gameType; } + uint32 getFeatures() const { return _gameDescription->features; } Common::Language getLanguage() const { return _gameDescription->desc.language; } Common::Platform getPlatform() const { return _gameDescription->desc.platform; } int getGameNumber() const { return _gameNumber; } diff --git a/engines/saga/sagagame.cpp b/engines/saga/sagagame.cpp index 56e2b95207..06d85ff8ff 100644 --- a/engines/saga/sagagame.cpp +++ b/engines/saga/sagagame.cpp @@ -818,15 +818,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_DEMO_G, // Game id "Demo", // Game title ARRAYSIZE(ITE_DEMO_G_GameFiles), // Game datafiles ITE_DEMO_G_GameFiles, - 0, // features Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_DEMO_G, // Game id + 0, // features &ITE_DisplayInfo, ITE_DEFAULT_SCENE, // Starting scene number &ITEDemo_Resources, @@ -843,15 +843,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_MACDEMO2, "Demo", ARRAYSIZE(ITE_MACDEMO2_GameFiles), ITE_MACDEMO2_GameFiles, - GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, Common::EN_ANY, Common::kPlatformMacintosh, }, + GType_ITE, + GID_ITE_MACDEMO2, + GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -868,15 +868,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_MACDEMO1, "early Demo", ARRAYSIZE(ITE_MACDEMO1_GameFiles), ITE_MACDEMO1_GameFiles, - GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformMacintosh, }, + GType_ITE, + GID_ITE_MACDEMO1, + GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -893,15 +893,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_MACCD_G, "CD", ARRAYSIZE(ITE_MACCD_G_GameFiles), ITE_MACCD_G_GameFiles, - GF_BIG_ENDIAN_DATA | GF_CD_FX, Common::EN_ANY, Common::kPlatformMacintosh, }, + GType_ITE, + GID_ITE_MACCD_G, + GF_BIG_ENDIAN_DATA | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -918,15 +918,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_MACCD, "Wyrmkeep CD", ARRAYSIZE(ITE_MACCD_GameFiles), ITE_MACCD_GameFiles, - GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformMacintosh, }, + GType_ITE, + GID_ITE_MACCD, + GF_BIG_ENDIAN_DATA | GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -944,15 +944,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_LINDEMO, "Demo", ARRAYSIZE(ITE_LINDEMO_GameFiles), ITE_LINDEMO_GameFiles, - GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, Common::EN_ANY, Common::kPlatformLinux, }, + GType_ITE, + GID_ITE_LINDEMO, + GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -969,15 +969,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_WINDEMO2, "Demo", ARRAYSIZE(ITE_WINDEMO2_GameFiles), ITE_WINDEMO2_GameFiles, - GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, Common::EN_ANY, Common::kPlatformWindows, }, + GType_ITE, + GID_ITE_WINDEMO2, + GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -994,15 +994,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_WINDEMO1, "early Demo", ARRAYSIZE(ITE_WINDEMO1_GameFiles), ITE_WINDEMO1_GameFiles, - GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformWindows, }, + GType_ITE, + GID_ITE_WINDEMO1, + GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1019,15 +1019,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_MULTICD, "Multi-OS CD Version", ARRAYSIZE(ITE_MULTICD_GameFiles), ITE_MULTICD_GameFiles, - GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformUnknown, }, + GType_ITE, + GID_ITE_MULTICD, + GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1044,15 +1044,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_LINCD, "CD Version", ARRAYSIZE(ITE_LINCD_GameFiles), ITE_LINCD_GameFiles, - GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformLinux, }, + GType_ITE, + GID_ITE_LINCD, + GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1069,15 +1069,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_WINCD, "CD Version", ARRAYSIZE(ITE_WINCD_GameFiles), ITE_WINCD_GameFiles, - GF_WYRMKEEP | GF_CD_FX, Common::EN_ANY, Common::kPlatformWindows, }, + GType_ITE, + GID_ITE_WINCD, + GF_WYRMKEEP | GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1094,15 +1094,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_CD_G, "CD Version", ARRAYSIZE(ITE_CD_G_GameFiles), ITE_CD_G_GameFiles, - GF_CD_FX, Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_CD_G, + GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1119,15 +1119,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_CD_G2, "CD Version", ARRAYSIZE(ITE_CD_G2_GameFiles), ITE_CD_G2_GameFiles, - GF_CD_FX, Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_CD_G2, + GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1144,15 +1144,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_CD_DE, "CD Version", ARRAYSIZE(ITE_CD_DE_GameFiles), ITE_CD_DE_GameFiles, - GF_CD_FX, Common::DE_DEU, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_CD_DE, + GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1169,15 +1169,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_CD_DE2, "CD Version", ARRAYSIZE(ITE_CD_DE2_GameFiles), ITE_CD_DE2_GameFiles, - GF_CD_FX, Common::DE_DEU, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_CD_DE2, + GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1194,15 +1194,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_CD, "CD Version", ARRAYSIZE(ITE_CD_GameFiles), ITE_CD_GameFiles, - GF_CD_FX, Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_CD, + GF_CD_FX, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1219,15 +1219,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_DISK_DE, "Floppy", ARRAYSIZE(ITE_DISK_DE_GameFiles), ITE_DISK_DE_GameFiles, - 0, Common::DE_DEU, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_DISK_DE, + 0, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1244,15 +1244,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_DISK_DE2, "Floppy", ARRAYSIZE(ITE_DISK_DE2_GameFiles), ITE_DISK_DE2_GameFiles, - 0, Common::DE_DEU, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_DISK_DE2, + 0, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1269,15 +1269,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_DISK_G, "Floppy", ARRAYSIZE(ITE_DISK_G_GameFiles), ITE_DISK_G_GameFiles, - 0, Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_DISK_G, + 0, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1294,15 +1294,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ite", - GType_ITE, - GID_ITE_DISK_G2, "Floppy", ARRAYSIZE(ITE_DISK_G2_GameFiles), ITE_DISK_G2_GameFiles, - 0, Common::EN_ANY, Common::kPlatformPC, }, + GType_ITE, + GID_ITE_DISK_G2, + 0, &ITE_DisplayInfo, ITE_DEFAULT_SCENE, &ITE_Resources, @@ -1319,15 +1319,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_DEMO, "Demo", ARRAYSIZE(IHNM_DEMO_GameFiles), IHNM_DEMO_GameFiles, - 0, Common::EN_ANY, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_DEMO, + 0, &IHNM_DisplayInfo, 0, &IHNM_Resources, @@ -1344,15 +1344,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_CD, "", ARRAYSIZE(IHNM_CD_GameFiles), IHNM_CD_GameFiles, - 0, Common::EN_ANY, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_CD, + 0, &IHNM_DisplayInfo, IHNM_DEFAULT_SCENE, &IHNM_Resources, @@ -1369,15 +1369,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_CD_DE, "", ARRAYSIZE(IHNM_CD_DE_GameFiles), IHNM_CD_DE_GameFiles, - 0, Common::DE_DEU, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_CD_DE, + 0, &IHNM_DisplayInfo, IHNM_DEFAULT_SCENE, &IHNM_Resources, @@ -1394,15 +1394,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_CD_ES, "", ARRAYSIZE(IHNM_CD_ES_GameFiles), IHNM_CD_ES_GameFiles, - 0, Common::ES_ESP, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_CD_ES, + 0, &IHNM_DisplayInfo, IHNM_DEFAULT_SCENE, &IHNM_Resources, @@ -1419,15 +1419,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_CD_RU, "", ARRAYSIZE(IHNM_CD_RU_GameFiles), IHNM_CD_RU_GameFiles, - 0, Common::RU_RUS, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_CD_RU, + 0, &IHNM_DisplayInfo, IHNM_DEFAULT_SCENE, &IHNM_Resources, @@ -1444,15 +1444,15 @@ static SAGAGameDescription gameDescriptions[] = { { { "ihnm", - GType_IHNM, - GID_IHNM_CD_FR, "", ARRAYSIZE(IHNM_CD_FR_GameFiles), IHNM_CD_FR_GameFiles, - 0, Common::FR_FRA, Common::kPlatformPC, }, + GType_IHNM, + GID_IHNM_CD_FR, + 0, &IHNM_DisplayInfo, IHNM_DEFAULT_SCENE, &IHNM_Resources, diff --git a/engines/saga/sagagame.h b/engines/saga/sagagame.h index d954f7c2cf..a9a490c4da 100644 --- a/engines/saga/sagagame.h +++ b/engines/saga/sagagame.h @@ -329,6 +329,9 @@ struct GamePatchDescription { struct SAGAGameDescription { Common::ADGameDescription desc; + int gameType; + int gameId; + uint32 features; GameDisplayInfo *gameDisplayInfo; int startSceneNumber; GameResourceDescription *resourceDescription; |