aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-05-11 11:13:24 +0000
committerMax Horn2003-05-11 11:13:24 +0000
commite5f8056d88247eb095890c8fa050fc406cbf0abb (patch)
tree65fec9eb46cb603e25beb0bd71be59ad86a7c1e6
parent134c32bc989a06d52e3f63fe786e28961571eb19 (diff)
downloadscummvm-rg350-e5f8056d88247eb095890c8fa050fc406cbf0abb.tar.gz
scummvm-rg350-e5f8056d88247eb095890c8fa050fc406cbf0abb.tar.bz2
scummvm-rg350-e5f8056d88247eb095890c8fa050fc406cbf0abb.zip
cleanup / tweaks (V2 masking, at least in Zakdemo, seems not to work properly, though)
svn-id: r7429
-rw-r--r--scumm/gfx.cpp14
-rw-r--r--scumm/script_v2.cpp4
2 files changed, 10 insertions, 8 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index 06e4b38e32..a3de607f2a 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -871,7 +871,7 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
if (_disable_zbuffer)
numzbuf = 0;
- else if (_numZBuffer <= 1)
+ else if (_numZBuffer <= 1 || (_vm->_features & GF_AFTER_V2))
numzbuf = _numZBuffer;
else {
numzbuf = _numZBuffer;
@@ -949,7 +949,7 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
else
bgbak_ptr = vs->screenPtr + (y * _numStrips + x) * 8;
- mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x);
+ mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x) + _imgBufOffs[1];
const int left = (stripnr << 3);
const int right = left + (numstrip << 3);
@@ -1013,8 +1013,7 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
theY++;
if (theY >= height) {
if (left <= theX && theX < right) {
- mask_ptr -= _numStrips * height;
- mask_ptr++;
+ mask_ptr -= _numStrips * height - 1;
}
theY = 0;
theX += 8;
@@ -1033,8 +1032,7 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
theY++;
if (theY >= height) {
if (left <= theX && theX < right) {
- mask_ptr -= _numStrips * height;
- mask_ptr++;
+ mask_ptr -= _numStrips * height - 1;
}
theY = 0;
theX += 8;
@@ -1073,8 +1071,6 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
else
bgbak_ptr = backbuff_ptr;
- mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x);
-
if (!(_vm->_features & GF_AFTER_V2)) {
if (_vm->_features & GF_16COLOR) {
decodeStripEGA(bgbak_ptr, smap_ptr + READ_LE_UINT16(smap_ptr + stripnr * 2 + 2), height);
@@ -1085,6 +1081,8 @@ void Gdi::drawBitmap(byte *ptr, VirtScreen *vs, int x, int y, const int width, c
}
}
+ mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x);
+
CHECK_HEAP;
if (vs->alloctwobuffers) {
if (_vm->hasCharsetMask(sx << 3, y, (sx + 1) << 3, bottom)) {
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 842d854a5a..ef2ccba00b 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -821,8 +821,12 @@ void Scumm_v2::o2_doSentence() {
// TODO
switch(fetchScriptByte()) {
case 1:
+ // TODO - execute the sentence
+ _sentenceNum--;
break;
case 2:
+ // TODO - print the sentence
+ _sentenceNum--;
break;
}
}