diff options
Diffstat (limited to 'engines/saga')
-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 |
4 files changed, 90 insertions, 87 deletions
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; |