aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/vqa.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-05-21 20:41:53 +0000
committerTorbjörn Andersson2006-05-21 20:41:53 +0000
commit57efbacb9af159c59043d5265b12625206d48224 (patch)
tree1cc8f6329ffe8353998c5d775a6ee165d9f1b6c4 /engines/kyra/vqa.cpp
parenta1f5bddaa8644630d71dd6a497d653c677a35351 (diff)
downloadscummvm-rg350-57efbacb9af159c59043d5265b12625206d48224.tar.gz
scummvm-rg350-57efbacb9af159c59043d5265b12625206d48224.tar.bz2
scummvm-rg350-57efbacb9af159c59043d5265b12625206d48224.zip
Palette handling simplification, suggested by LordHoto.
svn-id: r22567
Diffstat (limited to 'engines/kyra/vqa.cpp')
-rw-r--r--engines/kyra/vqa.cpp26
1 files changed, 3 insertions, 23 deletions
diff --git a/engines/kyra/vqa.cpp b/engines/kyra/vqa.cpp
index 83eedea694..e0bc757da9 100644
--- a/engines/kyra/vqa.cpp
+++ b/engines/kyra/vqa.cpp
@@ -463,7 +463,6 @@ void VQAMovie::displayFrame(uint frameNum) {
byte *inbuf, *outbuf;
uint32 insize, outsize;
- byte *pal;
uint32 end;
switch (tag) {
@@ -532,32 +531,13 @@ void VQAMovie::displayFrame(uint frameNum) {
case MKID_BE('CPL0'): // Palette
assert(size <= 3 * 256);
-
- inbuf = (byte *)allocBuffer(0, size);
- pal = _palette;
- _file.read(inbuf, size);
-
- for (i = 0; i < size / 3; i++) {
- *pal++ = *inbuf++;
- *pal++ = *inbuf++;
- *pal++ = *inbuf++;
- }
-
+ _file.read(_vm->screen()->_currentPalette, size);
break;
case MKID_BE('CPLZ'): // Palette
inbuf = (byte *)allocBuffer(0, size);
- outbuf = (byte *)allocBuffer(1, 3 * 256);
- pal = _palette;
_file.read(inbuf, size);
- size = decodeFormat80(inbuf, outbuf);
-
- for (i = 0; i < size / 3; i++) {
- *pal++ = *outbuf++;
- *pal++ = *outbuf++;
- *pal++ = *outbuf++;
- }
-
+ size = decodeFormat80(inbuf, _vm->screen()->_currentPalette);
break;
case MKID_BE('VPT0'): // Frame data
@@ -600,7 +580,7 @@ void VQAMovie::displayFrame(uint frameNum) {
// The frame has been decoded
if (_frameInfo[frameNum] & 0x80000000) {
- _vm->screen()->setScreenPalette(_palette);
+ _vm->screen()->setScreenPalette(_vm->screen()->_currentPalette);
}
int blockPitch = _header.width / _header.blockW;