[Scummvm-cvs-logs] SF.net SVN: scummvm: [22888] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Jun 3 17:13:27 CEST 2006
Revision: 22888
Author: lordhoto
Date: 2006-06-03 08:13:18 -0700 (Sat, 03 Jun 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22888&view=rev
Log Message:
-----------
Implements cmd_fadeEntirePalette, should fix some missing palette fades.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/scene.cpp
scummvm/trunk/engines/kyra/screen.cpp
scummvm/trunk/engines/kyra/script_v1.cpp
scummvm/trunk/engines/kyra/sprites.cpp
Modified: scummvm/trunk/engines/kyra/scene.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene.cpp 2006-06-03 15:07:26 UTC (rev 22887)
+++ scummvm/trunk/engines/kyra/scene.cpp 2006-06-03 15:13:18 UTC (rev 22888)
@@ -460,8 +460,6 @@
_screen->loadBitmap(fileNameBuffer, 3, 3, 0);
_sprites->loadSceneShapes();
_exitListPtr = 0;
-
- _screen->setScreenPalette(_screen->_currentPalette);
_scaleMode = 1;
for (int i = 0; i < 145; ++i) {
Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp 2006-06-03 15:07:26 UTC (rev 22887)
+++ scummvm/trunk/engines/kyra/screen.cpp 2006-06-03 15:13:18 UTC (rev 22888)
@@ -49,7 +49,7 @@
free(_screenPalette);
free(_decodeShapeBuffer);
free(_animBlockPtr);
- for (int i = 0; i < 3; ++i) {
+ for (int i = 0; i < ARRAYSIZE(_palettes); ++i) {
free(_palettes[i]);
}
delete [] _bitBlitRects;
@@ -92,7 +92,7 @@
if (_screenPalette) {
memset(_screenPalette, 0, 768);
}
- for (int i = 0; i < 3; ++i) {
+ for (int i = 0; i < ARRAYSIZE(_palettes); ++i) {
_palettes[i] = (uint8 *)malloc(768);
if (_palettes[i]) {
memset(_palettes[i], 0, 768);
@@ -1928,7 +1928,7 @@
uint8 *Screen::getPalette(int num) {
debugC(9, kDebugLevelScreen, "Screen::getPalette(%d)", num);
- assert(num >= 0 && num < 4);
+ assert(num >= 0 && num < ARRAYSIZE(_palettes)+1);
if (num == 0) {
return _screenPalette;
}
Modified: scummvm/trunk/engines/kyra/script_v1.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v1.cpp 2006-06-03 15:07:26 UTC (rev 22887)
+++ scummvm/trunk/engines/kyra/script_v1.cpp 2006-06-03 15:13:18 UTC (rev 22888)
@@ -1504,7 +1504,28 @@
}
int KyraEngine::cmd_fadeEntirePalette(ScriptState *script) {
- warning("STUB: cmd_fadeEntirePalette");
+ debugC(3, kDebugLevelScriptFuncs, "cmd_fadeEntirePalette(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+ int cmd = stackPos(0);
+ uint8 *fadePal = 0;
+ if (cmd == 0) {
+ fadePal = _screen->getPalette(2);
+ uint8 *screenPal = _screen->getPalette(0);
+ uint8 *backUpPal = _screen->getPalette(3);
+
+ memcpy(backUpPal, screenPal, sizeof(uint8)*768);
+ memset(fadePal, 0, sizeof(uint8)*768);
+ } else if (cmd == 1) {
+ //fadePal = _screen->getPalette(3);
+ warning("unimplemented cmd_fadeEntirePalette function");
+ return 0;
+ } else if (cmd == 2) {
+ // HACK
+ uint8 *clearPal = _screen->getPalette(0);
+ fadePal = _screen->getPalette(1);
+ memset(clearPal, 0, sizeof(uint8)*768);
+ }
+
+ _screen->fadePalette(fadePal, stackPos(1));
return 0;
}
Modified: scummvm/trunk/engines/kyra/sprites.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sprites.cpp 2006-06-03 15:07:26 UTC (rev 22887)
+++ scummvm/trunk/engines/kyra/sprites.cpp 2006-06-03 15:13:18 UTC (rev 22888)
@@ -412,6 +412,8 @@
_engine->_northExitHeight += 1;
// XXX
memcpy(_screen->_currentPalette + 744 - 60, _dat + 0x17, 60);
+ _engine->_paletteChanged = 1;
+ memcpy(_screen->getPalette(1), _screen->_currentPalette, sizeof(uint8)*768);
uint8 *data = _dat + 0x6B;
uint16 length = READ_LE_UINT16(data);
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