aboutsummaryrefslogtreecommitdiff
path: root/engines/saga
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga')
-rw-r--r--engines/saga/game.cpp10
-rw-r--r--engines/saga/saga.h8
-rw-r--r--engines/saga/sagagame.cpp156
-rw-r--r--engines/saga/sagagame.h3
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;