aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/gameDetector.cpp2
-rw-r--r--base/gameDetector.h10
-rw-r--r--base/plugins.cpp2
-rw-r--r--engines/gob/gob.cpp8
-rw-r--r--engines/kyra/kyra.cpp4
-rw-r--r--engines/lure/lure.cpp4
-rw-r--r--engines/queen/queen.cpp8
-rw-r--r--engines/saga/game.cpp12
-rw-r--r--engines/saga/saga.cpp6
-rw-r--r--engines/saga/saga.h2
-rw-r--r--engines/scumm/scumm.cpp27
-rw-r--r--engines/simon/simon.cpp36
-rw-r--r--engines/simon/simon.h2
-rw-r--r--engines/sky/sky.cpp2
-rw-r--r--engines/sword1/sword1.cpp10
-rw-r--r--engines/sword2/sword2.cpp12
16 files changed, 71 insertions, 76 deletions
diff --git a/base/gameDetector.cpp b/base/gameDetector.cpp
index 8d2b7e2d78..400ccce600 100644
--- a/base/gameDetector.cpp
+++ b/base/gameDetector.cpp
@@ -275,7 +275,7 @@ void listTargets() {
GameSettings GameDetector::findGame(const String &gameName, const Plugin **plugin) {
// Find the GameSettings for this target
const PluginList &plugins = PluginManager::instance().getPlugins();
- GameSettings result = {NULL, NULL, 0};
+ GameSettings result = {NULL, NULL};
PluginList::const_iterator iter = plugins.begin();
for (iter = plugins.begin(); iter != plugins.end(); ++iter) {
diff --git a/base/gameDetector.h b/base/gameDetector.h
index 0d7ceb2b33..bdbb68bf90 100644
--- a/base/gameDetector.h
+++ b/base/gameDetector.h
@@ -34,17 +34,9 @@ namespace Audio {
class Mixer;
}
-/** Global (shared) game feature flags. */
-enum {
-// GF_HAS_SPEECH = 1 << 28,
-// GF_HAS_SUBTITLES = 1 << 29,
- GF_DEFAULT_TO_1X_SCALER = 1 << 30
-};
-
struct GameSettings {
const char *gameid;
const char *description; // TODO: Rename this to "title" or so
- uint32 features; // TODO: Probably should get rid of this field
};
/**
@@ -58,7 +50,7 @@ struct GameSettings {
*/
template <class T>
GameSettings toGameSettings(const T &g) {
- GameSettings dummy = { g.gameid, g.description, g.features };
+ GameSettings dummy = { g.gameid, g.description };
return dummy;
}
diff --git a/base/plugins.cpp b/base/plugins.cpp
index 4da156f339..4a9201c79e 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -74,7 +74,7 @@ GameSettings Plugin::findGame(const char *gameName) const {
// Find the GameSettings for this game
assert(gameName);
GameList games = getSupportedGames();
- GameSettings result = {NULL, NULL, 0};
+ GameSettings result = {NULL, NULL};
for (GameList::iterator g = games.begin(); g != games.end(); ++g) {
if (!scumm_stricmp(g->gameid, gameName)) {
result = *g;
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index f97bc527ef..4fd60175f1 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -59,7 +59,7 @@ struct GobGameSettings {
uint32 features;
const char *md5sum;
GameSettings toGameSettings() const {
- GameSettings dummy = { gameid, description, features };
+ GameSettings dummy = { gameid, description };
return dummy;
}
};
@@ -121,9 +121,9 @@ static const GobGameSettings gob_games[] = {
// Keep list of different supported games
static const GameSettings gob_list[] = {
- {"gob1", "Gobliiins", Gob::GF_GOB1},
- {"gob2", "Gobliins 2", Gob::GF_GOB2},
- {0, 0, 0}
+ {"gob1", "Gobliiins"},
+ {"gob2", "Gobliins 2"},
+ {0, 0}
};
diff --git a/engines/kyra/kyra.cpp b/engines/kyra/kyra.cpp
index d918b5a2a7..c6c5df604f 100644
--- a/engines/kyra/kyra.cpp
+++ b/engines/kyra/kyra.cpp
@@ -97,8 +97,8 @@ static const KyraGameSettings kyra_games[] = {
// Keep list of different supported games
static const GameSettings kyra_list[] = {
- { "kyra1", "The Legend of Kyrandia", 0 },
- { 0, 0, 0 }
+ { "kyra1", "The Legend of Kyrandia" },
+ { 0, 0 }
};
struct KyraLanguageTable {
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index d7f2f932a0..96f15a7240 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -69,8 +69,8 @@ static const LureGameSettings lure_games[] = {
// Keep list of different supported games
static const GameSettings lure_list[] = {
- { "lure", "Lure of the Temptress", 0 },
- { 0, 0, 0 }
+ { "lure", "Lure of the Temptress" },
+ { 0, 0 }
};
GameList Engine_LURE_gameList() {
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index e529a12711..d7f3a80491 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -56,10 +56,10 @@ bool isSmartphone();
/* Flight of the Amazon Queen */
static const GameSettings queen_setting[] = {
- { "queen", "Flight of the Amazon Queen", 0 },
- { "queen", "Flight of the Amazon Queen (Demo)", 0 },
- { "queen", "Flight of the Amazon Queen (Interview)", 0 },
- { 0, 0, 0 }
+ { "queen", "Flight of the Amazon Queen" },
+ { "queen", "Flight of the Amazon Queen (Demo)" },
+ { "queen", "Flight of the Amazon Queen (Interview)" },
+ { 0, 0 }
};
GameList Engine_QUEEN_gameList() {
diff --git a/engines/saga/game.cpp b/engines/saga/game.cpp
index 86526fe267..5a6ffd88b9 100644
--- a/engines/saga/game.cpp
+++ b/engines/saga/game.cpp
@@ -1417,7 +1417,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::EN_USA,
Common::kPlatformPC,
},
@@ -1440,7 +1440,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::EN_USA,
Common::kPlatformPC,
},
@@ -1463,7 +1463,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::DE_DEU,
Common::kPlatformPC,
},
@@ -1485,7 +1485,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::ES_ESP,
Common::kPlatformPC,
},
@@ -1507,7 +1507,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::RU_RUS,
Common::kPlatformPC,
},
@@ -1529,7 +1529,7 @@ static GameDescription gameDescriptions[] = {
NULL,
0,
NULL,
- GF_DEFAULT_TO_1X_SCALER,
+ 0,
Common::FR_FRA,
Common::kPlatformPC,
},
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index 70d4f2bf71..45c12f616d 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -57,9 +57,9 @@
#include "saga/resnames.h"
static const GameSettings saga_games[] = {
- {"ite", "Inherit the Earth", 0},
- {"ihnm", "I Have No Mouth and I Must Scream", GF_DEFAULT_TO_1X_SCALER },
- {0, 0, 0}
+ {"ite", "Inherit the Earth"},
+ {"ihnm", "I Have No Mouth and I Must Scream"},
+ {0, 0}
};
GameList Engine_SAGA_gameList() {
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index f2111265bd..2e2c1358f0 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -518,7 +518,7 @@ struct GameDescription {
Common::Platform platform;
GameSettings toGameSettings() const {
- GameSettings dummy = { name, title, features };
+ GameSettings dummy = { name, title };
return dummy;
}
};
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 1c3b8b36ae..c09fefc143 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -194,7 +194,7 @@ struct ScummGameSettings {
Common::Platform platform;
GameSettings toGameSettings() const {
- GameSettings dummy = { gameid, findDescriptionFromGameID(gameid), features };
+ GameSettings dummy = { gameid, findDescriptionFromGameID(gameid) };
return dummy;
}
};
@@ -212,7 +212,7 @@ struct ObsoleteGameIDs {
Common::Platform platform;
GameSettings toGameSettings() const {
- GameSettings dummy = { from, "Obsolete game ID", 0 };
+ GameSettings dummy = { from, "Obsolete game ID" };
return dummy;
}
};
@@ -307,7 +307,7 @@ static const ScummGameSettings scumm_settings[] = {
/* Scumm Version 8 */
{"comi", 0, GID_CMI, 8, 0, MDT_NONE,
- GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEFAULT_TO_1X_SCALER, Common::kPlatformWindows},
+ GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE, Common::kPlatformWindows},
#endif
@@ -469,7 +469,7 @@ static const ScummGameSettings multiple_versions_md5_settings[] = {
GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows},
{"8fec68383202d38c0d25e9e3b757c5df", "Demo", GID_CMI, 8, 0, MDT_NONE,
- GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEFAULT_TO_1X_SCALER | GF_DEMO, Common::kPlatformWindows},
+ GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEMO, Common::kPlatformWindows},
{"362c1d281fb9899254cda66ad246c66a", "Demo", GID_DIG, 7, 0, MDT_NONE,
GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEMO, Common::kPlatformPC},
@@ -1565,14 +1565,15 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
if (_platform == Common::kPlatformFMTowns && _version == 3) { // FM-TOWNS V3 games use 320x240
_screenWidth = 320;
_screenHeight = 240;
- } else if (_features & GF_DEFAULT_TO_1X_SCALER) {
+ } else if (_version == 8 || _heversion >= 71) {
+ // COMI uses 640x480. Likewise starting from version 7.1, HE games use
+ // 640x480, too.
_screenWidth = 640;
_screenHeight = 480;
} else if (_platform == Common::kPlatformNES) {
_screenWidth = 256;
_screenHeight = 240;
} else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
- _features |= GF_DEFAULT_TO_1X_SCALER;
_screenWidth = 320;
_screenHeight = 200;
} else {
@@ -1804,14 +1805,15 @@ int ScummEngine::init(GameDetector &detector) {
// Initialize backend
_system->beginGFXTransaction();
+ bool defaultTo1XScaler = false;
if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
_system->initSize(Common::kHercW, Common::kHercH, 1);
- _features |= GF_DEFAULT_TO_1X_SCALER;
- detector._game.features |= GF_DEFAULT_TO_1X_SCALER;
+ defaultTo1XScaler = true;
} else {
_system->initSize(_screenWidth, _screenHeight, (detector._force1xOverlay ? 1 : 2));
+ defaultTo1XScaler = (_screenWidth > 320);
}
- initCommonGFX(detector, (_features & GF_DEFAULT_TO_1X_SCALER) != 0);
+ initCommonGFX(detector, defaultTo1XScaler);
_system->endGFXTransaction();
// On some systems it's not safe to run CD audio games from the CD.
@@ -3468,13 +3470,6 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) {
g++;
}
- // Starting from version 7.1, HE games use 640x480. We check this here since multiple
- // versions _could_ use different resolutions (I haven't verified this, though).
- if (game.heversion >= 71) {
- game.features |= GF_DEFAULT_TO_1X_SCALER;
- }
-
-
// Check for a user override of the platform. We allow the user to override
// the platform, to make it possible to add games which are not yet in
// our MD5 database but require a specific platform setting.
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp
index ba8bb58dcb..2ef92cb3e1 100644
--- a/engines/simon/simon.cpp
+++ b/engines/simon/simon.cpp
@@ -57,7 +57,7 @@ struct ObsoleteTargets {
Common::Platform platform;
GameSettings toGameSettings() const {
- GameSettings dummy = { from, "Obsolete Target", 0 };
+ GameSettings dummy = { from, "Obsolete Target" };
return dummy;
}
};
@@ -83,23 +83,23 @@ static ObsoleteTargets obsoleteTargetsTable[] = {
static const GameSettings simonGames[] = {
// Simon the Sorcerer 1 & 2 (not SCUMM games)
- {"feeble", "The Feeble Files", 0},
- {"simon1", "Simon the Sorcerer 1", 0},
- {"simon2", "Simon the Sorcerer 2", 0},
-
- {"simon1acorn", "Simon the Sorcerer 1 (Acorn)", 0},
- {"simon1amiga", "Simon the Sorcerer 1 (Amiga)", 0},
- {"simon1cd32", "Simon the Sorcerer 1 Talkie (Amiga CD32)", 0},
- {"simon1demo", "Simon the Sorcerer 1 (DOS Demo)", 0},
- {"simon1dos", "Simon the Sorcerer 1 (DOS)", 0},
- {"simon1talkie", "Simon the Sorcerer 1 Talkie", 0},
- {"simon1win", "Simon the Sorcerer 1 Talkie (Windows)", 0},
- {"simon2dos", "Simon the Sorcerer 2 (DOS)", 0},
- {"simon2talkie", "Simon the Sorcerer 2 Talkie", 0},
- {"simon2win", "Simon the Sorcerer 2 Talkie (Windows)", 0},
- {"simon2mac", "Simon the Sorcerer 2 Talkie (Amiga or Mac)", 0},
-
- {NULL, NULL, 0}
+ {"feeble", "The Feeble Files"},
+ {"simon1", "Simon the Sorcerer 1"},
+ {"simon2", "Simon the Sorcerer 2"},
+
+ {"simon1acorn", "Simon the Sorcerer 1 (Acorn)"},
+ {"simon1amiga", "Simon the Sorcerer 1 (Amiga)"},
+ {"simon1cd32", "Simon the Sorcerer 1 Talkie (Amiga CD32)"},
+ {"simon1demo", "Simon the Sorcerer 1 (DOS Demo)"},
+ {"simon1dos", "Simon the Sorcerer 1 (DOS)"},
+ {"simon1talkie", "Simon the Sorcerer 1 Talkie"},
+ {"simon1win", "Simon the Sorcerer 1 Talkie (Windows)"},
+ {"simon2dos", "Simon the Sorcerer 2 (DOS)"},
+ {"simon2talkie", "Simon the Sorcerer 2 Talkie"},
+ {"simon2win", "Simon the Sorcerer 2 Talkie (Windows)"},
+ {"simon2mac", "Simon the Sorcerer 2 Talkie (Amiga or Mac)"},
+
+ {NULL, NULL}
};
GameList Engine_SIMON_gameList() {
diff --git a/engines/simon/simon.h b/engines/simon/simon.h
index c2b58f03b6..1c0e2a1c84 100644
--- a/engines/simon/simon.h
+++ b/engines/simon/simon.h
@@ -128,7 +128,7 @@ struct GameDescription {
Common::Platform platform;
GameSettings toGameSettings() const {
- GameSettings dummy = { name, title, features };
+ GameSettings dummy = { name, title };
return dummy;
}
};
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index 1c5f97c29c..71cc74dc00 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -78,7 +78,7 @@ extern bool isSmartphone(void);
*/
static const GameSettings skySetting =
- {"sky", "Beneath a Steel Sky", 0 };
+ {"sky", "Beneath a Steel Sky" };
GameList Engine_SKY_gameList() {
GameList games;
diff --git a/engines/sword1/sword1.cpp b/engines/sword1/sword1.cpp
index 8c8ab2dc0d..689c4625c3 100644
--- a/engines/sword1/sword1.cpp
+++ b/engines/sword1/sword1.cpp
@@ -49,9 +49,9 @@ using namespace Sword1;
/* Broken Sword 1 */
static const GameSettings sword1FullSettings =
- {"sword1", "Broken Sword 1: The Shadow of the Templars", GF_DEFAULT_TO_1X_SCALER};
+ {"sword1", "Broken Sword 1: The Shadow of the Templars"};
static const GameSettings sword1DemoSettings =
- {"sword1demo", "Broken Sword 1: The Shadow of the Templars (Demo)", GF_DEFAULT_TO_1X_SCALER | Sword1::GF_DEMO };
+ {"sword1demo", "Broken Sword 1: The Shadow of the Templars (Demo)"};
// check these subdirectories (if present)
static const char *g_dirNames[] = { "clusters", "speech" };
@@ -126,7 +126,11 @@ void SwordEngine::errorString(const char *buf1, char *buf2) {
SwordEngine::SwordEngine(GameDetector *detector, OSystem *syst)
: Engine(syst) {
- _features = detector->_game.features;
+ if (0 == strcmp(detector->_game.gameid, "sword1demo"))
+ _features = GF_DEMO;
+ else
+ _features = 0;
+
if (!_mixer->isReady())
warning("Sound initialization failed");
diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index b4d7838b93..bcc1e36e86 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -57,9 +57,9 @@ struct Sword2GameSettings {
static const Sword2GameSettings sword2_settings[] = {
/* Broken Sword 2 */
- {"sword2", "Broken Sword 2: The Smoking Mirror", GF_DEFAULT_TO_1X_SCALER, "players.clu" },
- {"sword2alt", "Broken Sword 2: The Smoking Mirror (alt)", GF_DEFAULT_TO_1X_SCALER, "r2ctlns.ocx" },
- {"sword2demo", "Broken Sword 2: The Smoking Mirror (Demo)", GF_DEFAULT_TO_1X_SCALER | Sword2::GF_DEMO, "players.clu" },
+ {"sword2", "Broken Sword 2: The Smoking Mirror", 0, "players.clu" },
+ {"sword2alt", "Broken Sword 2: The Smoking Mirror (alt)", 0, "r2ctlns.ocx" },
+ {"sword2demo", "Broken Sword 2: The Smoking Mirror (Demo)", Sword2::GF_DEMO, "players.clu" },
{NULL, NULL, 0, NULL}
};
@@ -115,7 +115,11 @@ Sword2Engine::Sword2Engine(GameDetector *detector, OSystem *syst) : Engine(syst)
Common::File::addDefaultDirectory(_gameDataPath + "sword2/");
Common::File::addDefaultDirectory(_gameDataPath + "video/");
- _features = detector->_game.features;
+ if (0 == strcmp(detector->_game.gameid, "sword2demo"))
+ _features = GF_DEMO;
+ else
+ _features = 0;
+
_targetName = detector->_targetName;
_bootParam = ConfMan.getInt("boot_param");