diff options
author | Travis Howell | 2004-08-22 06:16:16 +0000 |
---|---|---|
committer | Travis Howell | 2004-08-22 06:16:16 +0000 |
commit | 82b9f1e599b0cd37d81eeda573a5b23bd0d85d9b (patch) | |
tree | 0a6ec72f2468188f593464d66c5f5f5e1fe3c710 /scumm | |
parent | 0574c35fa45a856f4176ad72e597311c65b4f677 (diff) | |
download | scummvm-rg350-82b9f1e599b0cd37d81eeda573a5b23bd0d85d9b.tar.gz scummvm-rg350-82b9f1e599b0cd37d81eeda573a5b23bd0d85d9b.tar.bz2 scummvm-rg350-82b9f1e599b0cd37d81eeda573a5b23bd0d85d9b.zip |
Mac. version of indy3 uses VAR_VIDEOMODE value of 50
Add initial support for loading EGA resource
svn-id: r14671
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/resource.cpp | 2 | ||||
-rw-r--r-- | scumm/scumm.cpp | 18 | ||||
-rw-r--r-- | scumm/scumm.h | 2 |
3 files changed, 19 insertions, 3 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp index babb2f0671..f51e2b4e64 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -2601,6 +2601,8 @@ uint16 newTag2Old(uint32 oldTag) { return (0x5842); // BX case (MKID('CYCL')): return (0x4343); // CC + case (MKID('EPAL')): + return (0x5053); // SP default: return (0); } diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 8303712236..481d7fb267 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -559,6 +559,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _ENCD_offs = 0; _EXCD_offs = 0; _CLUT_offs = 0; + _EPAL_offs = 0; _IM00_offs = 0; _PALS_offs = 0; _fullRedraw = false; @@ -1360,13 +1361,14 @@ void ScummEngine::initScummVars() { } else VAR(VAR_SOUNDCARD) = 3; } - // Amiga version of MI2 and FM Towns versions use unique values if (_features & GF_FMTOWNS) VAR(VAR_VIDEOMODE) = 42; + else if (_gameId == GID_INDY3 && (_features & GF_MACINTOSH)) + VAR(VAR_VIDEOMODE) = 50; else if (_gameId == GID_MONKEY2 && (_features & GF_AMIGA)) VAR(VAR_VIDEOMODE) = 82; else - VAR(VAR_VIDEOMODE) = 19; + VAR(VAR_VIDEOMODE) = 14; if (_gameId == GID_LOOM && _features & GF_OLD_BUNDLE) { // Set number of sound resources if (!(_features & GF_MACINTOSH)) @@ -2306,6 +2308,7 @@ void ScummEngine::initRoomSubBlocks() { _ENCD_offs = 0; _EXCD_offs = 0; + _EPAL_offs = 0; _CLUT_offs = 0; _PALS_offs = 0; @@ -2606,6 +2609,17 @@ void ScummEngine::initRoomSubBlocks() { if (_features & GF_OLD_BUNDLE) ptr = 0; else if (_features & GF_SMALL_HEADER) + ptr = findResourceSmall(MKID('EPAL'), roomptr); + else + ptr = findResourceData(MKID('EPAL'), roomptr); + + if (ptr) { + _EPAL_offs = ptr - roomptr; + } + + if (_features & GF_OLD_BUNDLE) + ptr = 0; // TODO ? do 16 bit games use a palette?!? + else if (_features & GF_SMALL_HEADER) ptr = findResourceSmall(MKID('CLUT'), roomptr); else ptr = findResourceData(MKID('CLUT'), roomptr); diff --git a/scumm/scumm.h b/scumm/scumm.h index 3b091558fe..a577de5d94 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -854,7 +854,7 @@ protected: ColorCycle _colorCycle[16]; // Palette cycles uint32 _ENCD_offs, _EXCD_offs; - uint32 _CLUT_offs; + uint32 _CLUT_offs, _EPAL_offs; uint32 _IM00_offs, _PALS_offs; StripTable *_roomStrips; |