diff options
Diffstat (limited to 'engines/kyra')
-rw-r--r-- | engines/kyra/kyra_mr.cpp | 1 | ||||
-rw-r--r-- | engines/kyra/screen.cpp | 6 | ||||
-rw-r--r-- | engines/kyra/screen.h | 1 | ||||
-rw-r--r-- | engines/kyra/vqa.cpp | 18 | ||||
-rw-r--r-- | engines/kyra/vqa.h | 4 |
5 files changed, 10 insertions, 20 deletions
diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp index 48ba96ec8b..a485ae47e4 100644 --- a/engines/kyra/kyra_mr.cpp +++ b/engines/kyra/kyra_mr.cpp @@ -378,7 +378,6 @@ void KyraEngine_MR::playVQA(const char *name) { _screen->fadeToBlack(60); _screen->clearPage(0); - vqa.setDrawPage(0); vqa.play(); vqa.close(); diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp index d172045302..8c97e46a8f 100644 --- a/engines/kyra/screen.cpp +++ b/engines/kyra/screen.cpp @@ -977,10 +977,6 @@ void Screen::copyPage(uint8 srcPage, uint8 dstPage) { } void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint8 *src) { - copyBlockToPage(pageNum, w, x, y, w, h, src); -} - -void Screen::copyBlockToPage(int pageNum, int pitch, int x, int y, int w, int h, const uint8 *src) { if (y < 0) { src += (-y) * w; h += y; @@ -1010,7 +1006,7 @@ void Screen::copyBlockToPage(int pageNum, int pitch, int x, int y, int w, int h, while (h--) { memcpy(dst, src, w); dst += SCREEN_W; - src += pitch; + src += w; } } diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h index 33bff4dd4f..156b5b9a7c 100644 --- a/engines/kyra/screen.h +++ b/engines/kyra/screen.h @@ -428,7 +428,6 @@ public: void copyRegionToBuffer(int pageNum, int x, int y, int w, int h, uint8 *dest); void copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint8 *src); - void copyBlockToPage(int pageNum, int pitch, int x, int y, int w, int h, const uint8 *src); void shuffleScreen(int sx, int sy, int w, int h, int srcPage, int dstPage, int ticks, bool transparent); void fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum = -1, bool xored = false); diff --git a/engines/kyra/vqa.cpp b/engines/kyra/vqa.cpp index 76e5c7285a..975a763715 100644 --- a/engines/kyra/vqa.cpp +++ b/engines/kyra/vqa.cpp @@ -38,6 +38,7 @@ #include "common/system.h" #include "common/events.h" +#include "graphics/palette.h" #include "graphics/surface.h" namespace Kyra { @@ -594,7 +595,6 @@ VQAMovie::VQAMovie(KyraEngine_v1 *vm, OSystem *system) { _vm = vm; _screen = _vm->screen(); _decoder = new VQADecoder(); - _drawPage = -1; } VQAMovie::~VQAMovie() { @@ -602,10 +602,6 @@ VQAMovie::~VQAMovie() { delete _decoder; } -void VQAMovie::setDrawPage(int page) { - _drawPage = page; -} - bool VQAMovie::open(const char *filename) { if (_file.open(filename)) { return true; @@ -652,14 +648,18 @@ void VQAMovie::play() { if (_decoder->needsUpdate()) { const Graphics::Surface *surface = _decoder->decodeNextFrame(); if (_decoder->hasDirtyPalette()) { - memcpy(_screen->getPalette(0).getData(), _decoder->getPalette(), 3 * 256); - _screen->setScreenPalette(_screen->getPalette(0)); + const byte *decoderPalette = _decoder->getPalette(); + byte systemPalette[256 * 3]; + for (int i = 0; i < ARRAYSIZE(systemPalette); i++) { + systemPalette[i] = (decoderPalette[i] * 0xFF) / 0x3F; + } + _system->getPaletteManager()->setPalette(systemPalette, 0, 256); } - _screen->copyBlockToPage(_drawPage, surface->pitch, x, y, width, height, (const byte *)surface->getBasePtr(0, 0)); + _system->copyRectToScreen((const byte *)surface->getBasePtr(0, 0), surface->pitch, x, y, width, height); } - _screen->updateScreen(); + _system->updateScreen(); _system->delayMillis(10); } } diff --git a/engines/kyra/vqa.h b/engines/kyra/vqa.h index 26dbc8d062..44d1354f3d 100644 --- a/engines/kyra/vqa.h +++ b/engines/kyra/vqa.h @@ -139,8 +139,6 @@ public: VQAMovie(KyraEngine_v1 *vm, OSystem *system); ~VQAMovie(); - void setDrawPage(int page); - bool open(const char *filename); void close(); void play(); @@ -150,8 +148,6 @@ private: Screen *_screen; VQADecoder *_decoder; Common::File _file; - - int _drawPage; }; } // End of namespace Kyra |