aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2011-08-27 10:23:19 -0700
committerEugene Sandulenko2011-08-27 10:23:19 -0700
commit064ab0fd628f660d8565512dfbffb0c11a82f046 (patch)
treeac553523b5442af31bad9a1a3fa80bb3af85682f /engines/scumm/scumm.cpp
parent35aa235e4b4c4212b59d00adb77d2e3d00dd440e (diff)
parentcd45d63e064c5f45e911256de75c3efef156337d (diff)
downloadscummvm-rg350-064ab0fd628f660d8565512dfbffb0c11a82f046.tar.gz
scummvm-rg350-064ab0fd628f660d8565512dfbffb0c11a82f046.tar.bz2
scummvm-rg350-064ab0fd628f660d8565512dfbffb0c11a82f046.zip
Merge pull request #77 from lordhoto/indy4amiga
SCUMM: Implement proper Indy4 Amiga palette handling.
Diffstat (limited to 'engines/scumm/scumm.cpp')
-rw-r--r--engines/scumm/scumm.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 3b83019275..81f6af453c 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -290,6 +290,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
#endif
_shadowPalette = NULL;
_shadowPaletteSize = 0;
+ _verbPalette = NULL;
memset(_currentPalette, 0, sizeof(_currentPalette));
memset(_darkenPalette, 0, sizeof(_darkenPalette));
memset(_HEV7ActorPalette, 0, sizeof(_HEV7ActorPalette));
@@ -610,6 +611,7 @@ ScummEngine::~ScummEngine() {
_textSurface.free();
free(_shadowPalette);
+ free(_verbPalette);
free(_palManipPalette);
free(_palManipIntermediatePal);
@@ -1408,6 +1410,10 @@ void ScummEngine::resetScumm() {
_16BitPalette = (uint16 *)calloc(512, sizeof(uint16));
#endif
+ // Indy4 Amiga needs another palette map for the verb area.
+ if (_game.platform == Common::kPlatformAmiga && _game.id == GID_INDY4 && !_verbPalette)
+ _verbPalette = (uint8 *)calloc(256, 1);
+
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
if (_game.platform == Common::kPlatformFMTowns) {
delete _townsScreen;