[Scummvm-cvs-logs] SF.net SVN: scummvm:[34527] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Sep 14 18:29:15 CEST 2008
Revision: 34527
http://scummvm.svn.sourceforge.net/scummvm/?rev=34527&view=rev
Author: lordhoto
Date: 2008-09-14 16:29:14 +0000 (Sun, 14 Sep 2008)
Log Message:
-----------
Fixed thumbnail creation / loading in kyra.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/gui_hof.cpp
scummvm/trunk/engines/kyra/gui_lok.cpp
scummvm/trunk/engines/kyra/gui_mr.cpp
scummvm/trunk/engines/kyra/saveload.cpp
scummvm/trunk/engines/kyra/screen.cpp
scummvm/trunk/engines/kyra/screen.h
Modified: scummvm/trunk/engines/kyra/gui_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_hof.cpp 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/gui_hof.cpp 2008-09-14 16:29:14 UTC (rev 34527)
@@ -796,7 +796,9 @@
#pragma mark -
void GUI_HoF::createScreenThumbnail(Graphics::Surface &dst) {
- ::createThumbnail(&dst, _vm->_screenBuffer, Screen::SCREEN_W, Screen::SCREEN_H, _screen->getPalette(1));
+ uint8 screenPal[768];
+ _screen->getRealPalette(1, screenPal);
+ ::createThumbnail(&dst, _vm->_screenBuffer, Screen::SCREEN_W, Screen::SCREEN_H, screenPal);
}
void GUI_HoF::setupPalette() {
Modified: scummvm/trunk/engines/kyra/gui_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lok.cpp 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/gui_lok.cpp 2008-09-14 16:29:14 UTC (rev 34527)
@@ -204,7 +204,10 @@
uint8 *screen = new uint8[Screen::SCREEN_W*Screen::SCREEN_H];
if (screen) {
_screen->queryPageFromDisk("SEENPAGE.TMP", 0, screen);
- ::createThumbnail(&dst, screen, Screen::SCREEN_W, Screen::SCREEN_H, _screen->getPalette(2));
+
+ uint8 screenPal[768];
+ _screen->getRealPalette(2, screenPal);
+ ::createThumbnail(&dst, screen, Screen::SCREEN_W, Screen::SCREEN_H, screenPal);
}
delete[] screen;
}
Modified: scummvm/trunk/engines/kyra/gui_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_mr.cpp 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/gui_mr.cpp 2008-09-14 16:29:14 UTC (rev 34527)
@@ -1141,7 +1141,9 @@
}
void GUI_MR::createScreenThumbnail(Graphics::Surface &dst) {
- ::createThumbnail(&dst, _vm->_screenBuffer, Screen::SCREEN_W, Screen::SCREEN_H, _screen->getPalette(0));
+ uint8 screenPal[768];
+ _screen->getRealPalette(0, screenPal);
+ ::createThumbnail(&dst, _vm->_screenBuffer, Screen::SCREEN_W, Screen::SCREEN_H, screenPal);
}
void GUI_MR::flagButtonEnable(Button *button) {
Modified: scummvm/trunk/engines/kyra/saveload.cpp
===================================================================
--- scummvm/trunk/engines/kyra/saveload.cpp 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/saveload.cpp 2008-09-14 16:29:14 UTC (rev 34527)
@@ -43,6 +43,7 @@
header.originalSave = false;
header.oldHeader = false;
header.flags = 0;
+ header.thumbnail = 0;
if (type == MKID_BE('KYRA') || type == MKID_BE('ARYK')) { // old Kyra1 header ID
header.gameID = GI_KYRA1;
Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/screen.cpp 2008-09-14 16:29:14 UTC (rev 34527)
@@ -476,6 +476,25 @@
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);
Modified: scummvm/trunk/engines/kyra/screen.h
===================================================================
--- scummvm/trunk/engines/kyra/screen.h 2008-09-14 16:21:31 UTC (rev 34526)
+++ scummvm/trunk/engines/kyra/screen.h 2008-09-14 16:29:14 UTC (rev 34527)
@@ -152,6 +152,8 @@
void setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue);
void setScreenPalette(const uint8 *palData);
const uint8 *getScreenPalette() const { return _screenPalette; }
+
+ void getRealPalette(int num, uint8 *dst);
uint8 *getPalette(int num);
// gui specific (processing on _curPage)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list