aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/kyra/screen.cpp38
-rw-r--r--engines/kyra/screen_lok.cpp9
-rw-r--r--engines/kyra/screen_lol.cpp3
3 files changed, 23 insertions, 27 deletions
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index b8eac058fd..3eea7aab14 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -137,16 +137,15 @@ bool Screen::init() {
// We setup the PC98 text mode palette at [16, 24], since that will be used
// for KANJI characters in Lands of Lore.
if (_use16ColorMode && _vm->gameFlags().platform == Common::kPlatformPC98) {
- uint8 palette[8 * 4];
+ uint8 palette[8 * 3];
for (int i = 0; i < 8; ++i) {
- palette[i * 4 + 0] = ((i >> 1) & 1) * 0xFF;
- palette[i * 4 + 1] = ((i >> 2) & 1) * 0xFF;
- palette[i * 4 + 2] = ((i >> 0) & 1) * 0xFF;
- palette[i * 4 + 3] = 0;
-
- _system->getPaletteManager()->setPalette(palette, 16, 8);
+ palette[i * 3 + 0] = ((i >> 1) & 1) * 0xFF;
+ palette[i * 3 + 1] = ((i >> 2) & 1) * 0xFF;
+ palette[i * 3 + 2] = ((i >> 0) & 1) * 0xFF;
}
+
+ _system->getPaletteManager()->setPalette(palette, 16, 8);
}
_curDim = 0;
@@ -180,7 +179,7 @@ bool Screen::enableScreenDebug(bool enable) {
}
void Screen::setResolution() {
- byte palette[4*256];
+ byte palette[3*256];
_system->getPaletteManager()->grabPalette(palette, 0, 256);
int width = 320, height = 200;
@@ -700,14 +699,13 @@ void Screen::getRealPalette(int num, uint8 *dst) {
}
void Screen::setScreenPalette(const Palette &pal) {
- uint8 screenPal[256 * 4];
+ uint8 screenPal[256 * 3];
_screenPalette->copy(pal);
for (int i = 0; i < pal.getNumColors(); ++i) {
- screenPal[4 * i + 0] = (pal[i * 3 + 0] * 0xFF) / 0x3F;
- screenPal[4 * i + 1] = (pal[i * 3 + 1] * 0xFF) / 0x3F;
- screenPal[4 * i + 2] = (pal[i * 3 + 2] * 0xFF) / 0x3F;
- screenPal[4 * i + 3] = 0;
+ screenPal[3 * i + 0] = (pal[i * 3 + 0] * 0xFF) / 0x3F;
+ screenPal[3 * i + 1] = (pal[i * 3 + 1] * 0xFF) / 0x3F;
+ screenPal[3 * i + 2] = (pal[i * 3 + 2] * 0xFF) / 0x3F;
}
_paletteChanged = true;
@@ -729,19 +727,19 @@ void Screen::setInterfacePalette(const Palette &pal, uint8 r, uint8 g, uint8 b)
if (!_isAmiga)
return;
- uint8 screenPal[32 * 4];
+ uint8 screenPal[32 * 3];
assert(32 <= pal.getNumColors());
for (int i = 0; i < pal.getNumColors(); ++i) {
if (i != 0x10) {
- screenPal[4 * i + 0] = (pal[i * 3 + 0] * 0xFF) / 0x3F;
- screenPal[4 * i + 1] = (pal[i * 3 + 1] * 0xFF) / 0x3F;
- screenPal[4 * i + 2] = (pal[i * 3 + 2] * 0xFF) / 0x3F;
+ screenPal[3 * i + 0] = (pal[i * 3 + 0] * 0xFF) / 0x3F;
+ screenPal[3 * i + 1] = (pal[i * 3 + 1] * 0xFF) / 0x3F;
+ screenPal[3 * i + 2] = (pal[i * 3 + 2] * 0xFF) / 0x3F;
} else {
- screenPal[4 * i + 0] = (r * 0xFF) / 0x3F;
- screenPal[4 * i + 1] = (g * 0xFF) / 0x3F;
- screenPal[4 * i + 2] = (b * 0xFF) / 0x3F;
+ screenPal[3 * i + 0] = (r * 0xFF) / 0x3F;
+ screenPal[3 * i + 1] = (g * 0xFF) / 0x3F;
+ screenPal[3 * i + 2] = (b * 0xFF) / 0x3F;
}
screenPal[4 * i + 3] = 0;
}
diff --git a/engines/kyra/screen_lok.cpp b/engines/kyra/screen_lok.cpp
index da96ea6821..227349754f 100644
--- a/engines/kyra/screen_lok.cpp
+++ b/engines/kyra/screen_lok.cpp
@@ -447,12 +447,11 @@ void Screen_LoK_16::mergeOverlay(int x, int y, int w, int h) {
}
void Screen_LoK_16::set16ColorPalette(const uint8 *pal) {
- uint8 palette[16 * 4];
+ uint8 palette[16 * 3];
for (int i = 0; i < 16; ++i) {
- palette[i * 4 + 0] = (pal[i * 3 + 0] * 0xFF) / 0x0F;
- palette[i * 4 + 1] = (pal[i * 3 + 1] * 0xFF) / 0x0F;
- palette[i * 4 + 2] = (pal[i * 3 + 2] * 0xFF) / 0x0F;
- palette[i * 4 + 3] = 0;
+ palette[i * 3 + 0] = (pal[i * 3 + 0] * 0xFF) / 0x0F;
+ palette[i * 3 + 1] = (pal[i * 3 + 1] * 0xFF) / 0x0F;
+ palette[i * 3 + 2] = (pal[i * 3 + 2] * 0xFF) / 0x0F;
}
_system->getPaletteManager()->setPalette(palette, 0, 16);
diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp
index e85ea13371..ff35facbb5 100644
--- a/engines/kyra/screen_lol.cpp
+++ b/engines/kyra/screen_lol.cpp
@@ -795,11 +795,10 @@ void Screen_LoL::copyColor(int dstColorIndex, int srcColorIndex) {
uint8 *d = _screenPalette->getData() + dstColorIndex * 3;
memcpy(d, s, 3);
- uint8 ci[4];
+ uint8 ci[3];
ci[0] = (d[0] << 2) | (d[0] & 3);
ci[1] = (d[1] << 2) | (d[1] & 3);
ci[2] = (d[2] << 2) | (d[2] & 3);
- ci[3] = 0;
_system->getPaletteManager()->setPalette(ci, dstColorIndex, 1);
}