aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.cpp
diff options
context:
space:
mode:
authorMax Horn2007-02-14 23:29:13 +0000
committerMax Horn2007-02-14 23:29:13 +0000
commit247110b19b97971295b1b9972aa9457971d18181 (patch)
tree4307b8944cae53b716ec89da77e1a28eb947c0f9 /engines/scumm/scumm.cpp
parent97f84927e804e350daec843bd055c5fcde2d2ef8 (diff)
downloadscummvm-rg350-247110b19b97971295b1b9972aa9457971d18181.tar.gz
scummvm-rg350-247110b19b97971295b1b9972aa9457971d18181.tar.bz2
scummvm-rg350-247110b19b97971295b1b9972aa9457971d18181.zip
SCUMM: Many (most) game flags can computed based on the SCUMM version and other flags; we now do that were possible and only specify the absolute minimum in gameVariantsTable
svn-id: r25598
Diffstat (limited to 'engines/scumm/scumm.cpp')
-rw-r--r--engines/scumm/scumm.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 8d07538638..f2268c2a1a 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -594,6 +594,11 @@ ScummEngine::~ScummEngine() {
ScummEngine_v5::ScummEngine_v5(OSystem *syst, const DetectorResult &dr)
: ScummEngine(syst, dr) {
+ // All "classic" games (V5 and older) encrypted their data files
+ // with exception of the GF_OLD256 games.
+ if (!(_game.features & GF_OLD256))
+ _game.features |= GF_USE_KEY;
+
static const uint16 default_cursor_images[4][16] = {
/* cross-hair */
{ 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0000, 0x7e3f,
@@ -630,15 +635,20 @@ ScummEngine_v5::ScummEngine_v5(OSystem *syst, const DetectorResult &dr)
ScummEngine_v4::ScummEngine_v4(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v5(syst, dr) {
_resourceHeaderSize = 6;
+ _game.features |= GF_SMALL_HEADER;
}
ScummEngine_v3::ScummEngine_v3(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v4(syst, dr) {
+ // All v3 and older games only used 16 colors with exception of the GF_OLD256 games.
+ if (!(_game.features & GF_OLD256))
+ _game.features |= GF_16COLOR;
}
ScummEngine_v3old::ScummEngine_v3old(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v3(syst, dr) {
_resourceHeaderSize = 4;
+ _game.features |= GF_OLD_BUNDLE;
}
ScummEngine_v2::ScummEngine_v2(OSystem *syst, const DetectorResult &dr)
@@ -696,6 +706,9 @@ ScummEngine_v60he::ScummEngine_v60he(OSystem *syst, const DetectorResult &dr)
memset(_hInFileTable, 0, sizeof(_hInFileTable));
memset(_hOutFileTable, 0, sizeof(_hOutFileTable));
memset(_heTimers, 0, sizeof(_heTimers));
+
+ if (_game.heversion >= 61)
+ _game.features |= GF_NEW_COSTUMES;
}
ScummEngine_v60he::~ScummEngine_v60he() {
@@ -867,6 +880,8 @@ ScummEngine_v7::ScummEngine_v7(OSystem *syst, const DetectorResult &dr)
_languageBuffer = NULL;
_languageIndex = NULL;
clearSubtitleQueue();
+
+ _game.features |= GF_NEW_COSTUMES;
}
ScummEngine_v7::~ScummEngine_v7() {