aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise/function.cpp
diff options
context:
space:
mode:
authorVincent Hamm2007-12-25 20:16:59 +0000
committerVincent Hamm2007-12-25 20:16:59 +0000
commitb2ab69f455978a4dffc4fcb8cd6148edbb886327 (patch)
tree46cb912f296bbe687f13343af8e692fe35aeaab8 /engines/cruise/function.cpp
parenta3f1767009a692d1edaa3d1f0fd29c0de455a95c (diff)
downloadscummvm-rg350-b2ab69f455978a4dffc4fcb8cd6148edbb886327.tar.gz
scummvm-rg350-b2ab69f455978a4dffc4fcb8cd6148edbb886327.tar.bz2
scummvm-rg350-b2ab69f455978a4dffc4fcb8cd6148edbb886327.zip
Fix palette issues
svn-id: r29989
Diffstat (limited to 'engines/cruise/function.cpp')
-rw-r--r--engines/cruise/function.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/engines/cruise/function.cpp b/engines/cruise/function.cpp
index d620092732..e8322d1edd 100644
--- a/engines/cruise/function.cpp
+++ b/engines/cruise/function.cpp
@@ -903,30 +903,25 @@ int16 Op_SetColor(void) {
int i;
- int R,G,B;
-
#define convertRatio 36.571428571428571428571428571429
for (i=startIdx; i<=endIdx; i++) {
- R = (int)(colorR*convertRatio);
- G = (int)(colorG*convertRatio);
- B = (int)(colorB*convertRatio);
+ int offsetTable[3];
- if (R > 0xFF)
- R = 0xFF;
- if (G > 0xFF)
- G = 0xFF;
- if (B > 0xFF)
- B = 0xFF;
+ offsetTable[0] = (int)(colorR*convertRatio);
+ offsetTable[1] = (int)(colorG*convertRatio);
+ offsetTable[2] = (int)(colorB*convertRatio);
if (CVTLoaded) {
int colorIdx = cvtPalette[i];
- gfxModuleData_setPalColor(colorIdx, R, G, B);
+ calcRGB(&palScreen[masterScreen][3*colorIdx], &workpal[3*colorIdx], offsetTable);
} else {
- gfxModuleData_setPalColor(i, R, G, B);
+ calcRGB(&palScreen[masterScreen][3*i], &workpal[3*i], offsetTable);
}
}
+ gfxModuleData_setPal256(workpal);
+
return 0;
}