aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/screen.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-09-14 16:29:14 +0000
committerJohannes Schickel2008-09-14 16:29:14 +0000
commiteddae0e105d8ba323523bccf5c78327e15f6f6c7 (patch)
tree17d53d4a3b37cca78fd15333041837a0916c9b11 /engines/kyra/screen.cpp
parent8316aba03d24ca6bb91ea5547ee74701800c00a0 (diff)
downloadscummvm-rg350-eddae0e105d8ba323523bccf5c78327e15f6f6c7.tar.gz
scummvm-rg350-eddae0e105d8ba323523bccf5c78327e15f6f6c7.tar.bz2
scummvm-rg350-eddae0e105d8ba323523bccf5c78327e15f6f6c7.zip
Fixed thumbnail creation / loading in kyra.
svn-id: r34527
Diffstat (limited to 'engines/kyra/screen.cpp')
-rw-r--r--engines/kyra/screen.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 32fef01083..77512771f7 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -476,6 +476,25 @@ void Screen::setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue) {
setScreenPalette(_currentPalette);
}
+void Screen::getRealPalette(int num, uint8 *dst) {
+ debugC(9, kDebugLevelScreen, "Screen::setRealPalette(%d, %p)", num, (const void *)dst);
+ const int colors = (_vm->gameFlags().platform == Common::kPlatformAmiga ? 32 : 256);
+ const uint8 *palData = getPalette(num);
+
+ if (!palData) {
+ memset(dst, 0, colors * 3);
+ return;
+ }
+
+ for (int i = 0; i < colors; ++i) {
+ dst[0] = (palData[0] << 2) | (palData[0] & 3);
+ dst[1] = (palData[1] << 2) | (palData[1] & 3);
+ dst[2] = (palData[2] << 2) | (palData[2] & 3);
+ dst += 3;
+ palData += 3;
+ }
+}
+
void Screen::setScreenPalette(const uint8 *palData) {
debugC(9, kDebugLevelScreen, "Screen::setScreenPalette(%p)", (const void *)palData);