aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.h
diff options
context:
space:
mode:
authorJohannes Schickel2011-08-26 05:51:08 +0200
committerJohannes Schickel2011-08-26 05:54:47 +0200
commit4ea4172cbad466738836f7be8ebdcad4eabd0bb9 (patch)
treed8c58fbaeb01f7c653ba27778ffd3acbe91742b0 /engines/scumm/scumm.h
parent479eeb7e47e8bb27551ba49f7d37c36b3b1b88ee (diff)
downloadscummvm-rg350-4ea4172cbad466738836f7be8ebdcad4eabd0bb9.tar.gz
scummvm-rg350-4ea4172cbad466738836f7be8ebdcad4eabd0bb9.tar.bz2
scummvm-rg350-4ea4172cbad466738836f7be8ebdcad4eabd0bb9.zip
SCUMM: Implement proper Indy4 Amiga palette handling.
This should fix incorrect text colors in some scenes.
Diffstat (limited to 'engines/scumm/scumm.h')
-rw-r--r--engines/scumm/scumm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index 04a175e732..8ffa893f33 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -970,6 +970,7 @@ protected:
void setCurrentPalette(int pal);
void setRoomPalette(int pal, int room);
void setPCEPaletteFromPtr(const byte *ptr);
+ void setAmigaPaletteFromPtr(const byte *ptr);
virtual void setPaletteFromPtr(const byte *ptr, int numcolor = -1);
virtual void setPalColor(int index, int r, int g, int b);
@@ -1065,6 +1066,9 @@ public:
uint16 _hePaletteSlot;
uint16 *_16BitPalette;
+ // Indy4 Amiga specific
+ byte *_verbPalette;
+
protected:
int _shadowPaletteSize;
byte _currentPalette[3 * 256];
@@ -1085,6 +1089,13 @@ protected:
bool _enable_gs;
bool _copyProtection;
+ uint16 _amigaFirstUsedColor;
+ byte _amigaPalette[3 * 64];
+ void mapRoomPalette(int idx);
+ int remapRoomPaletteColor(int r, int g, int b);
+ void mapVerbPalette(int idx);
+ int remapVerbPaletteColor(int r, int g, int b);
+
public:
uint16 _extraBoxFlags[65];