aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Boutonné2010-02-06 23:06:20 +0000
committerArnaud Boutonné2010-02-06 23:06:20 +0000
commitd7a7fcd3a4c48840021adda1c456e5cb7ff2d9e5 (patch)
treeef26d8aaea56e8f61cd402a84f868ffe4bc4c5dd
parentaaa58495672b28fdc9ebd8132c8e3dc5424e1b53 (diff)
downloadscummvm-rg350-d7a7fcd3a4c48840021adda1c456e5cb7ff2d9e5.tar.gz
scummvm-rg350-d7a7fcd3a4c48840021adda1c456e5cb7ff2d9e5.tar.bz2
scummvm-rg350-d7a7fcd3a4c48840021adda1c456e5cb7ff2d9e5.zip
Fascination - Use invalidateRect instead of dirtiedRect, fix several other little errors
svn-id: r47947
-rw-r--r--engines/gob/draw.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/engines/gob/draw.cpp b/engines/gob/draw.cpp
index 872e703eda..90877a553b 100644
--- a/engines/gob/draw.cpp
+++ b/engines/gob/draw.cpp
@@ -882,7 +882,6 @@ void Draw::winDecomp(int16 x, int16 y, SurfaceDescPtr bmp) {
// TODO: Implementation to be confirmed (used cut and paste from another part of the code)
Resource *resource;
- warning("winDecomp");
resource = _vm->_game->_resources->getResource((uint16) _spriteLeft,
&_spriteRight, &_spriteBottom);
@@ -907,6 +906,7 @@ void Draw::winDraw(int16 fct) {
int16 height;
warning("winDraw %d", fct);
+
bool found = false;
int len;
Resource *resource;
@@ -1045,8 +1045,8 @@ void Draw::winDraw(int16 fct) {
for (int i = 9; i >= j; i--) {
if (table[i])
_vm->_video->drawSprite(*_fascinWin[table[i]].savedSurface, *_spritesArray[_destSurface],
- _fascinWin[table[i]].left & 15, 0,
- (_fascinWin[table[i]].left & 15) + _fascinWin[table[i]].width - 1,
+ _fascinWin[table[i]].left & 7, 0,
+ (_fascinWin[table[i]].left & 7) + _fascinWin[table[i]].width - 1,
_fascinWin[table[i]].height - 1, _fascinWin[table[i]].left - _spriteLeft + _destSpriteX,
_fascinWin[table[i]].top - _spriteTop + _destSpriteY, 0);
}
@@ -1064,15 +1064,15 @@ void Draw::winDraw(int16 fct) {
for (int i = 9; i >= max; i--) {
if (table[i])
_vm->_video->drawSprite(*_fascinWin[table[i]].savedSurface, *tempSrf,
- _fascinWin[table[i]].left & 15, 0,
- (_fascinWin[table[i]].left & 15) + _fascinWin[table[i]].width - 1,
+ _fascinWin[table[i]].left & 7, 0,
+ (_fascinWin[table[i]].left & 7) + _fascinWin[table[i]].width - 1,
_fascinWin[table[i]].height - 1,
_fascinWin[table[i]].left - left,
_fascinWin[table[i]].top - top , 0);
}
- // NOTE: Strangerke not sure concerning the use of _destSurface
- dirtiedRect(_destSurface, left, top, width, height);
+ invalidateRect(left, top, width, height);
+
switch (fct) {
case DRAW_BLITSURF: // 0 - move
_vm->_video->drawSprite(*_spritesArray[_sourceSurface], *tempSrf,
@@ -1152,7 +1152,7 @@ void Draw::winDraw(int16 fct) {
int k = table[i];
_vm->_video->drawSprite(*tempSrf, *_fascinWin[k].savedSurface,
0, 0, width - left, height - top,
- left - _fascinWin[k].left + (_fascinWin[k].left & 15),
+ left - _fascinWin[k].left + (_fascinWin[k].left & 7),
top - _fascinWin[k].top, 0);
// Shift skipped as always set to zero (?)
_vm->_video->drawSprite(*_frontSurface, *tempSrf,
@@ -1171,10 +1171,10 @@ void Draw::winDraw(int16 fct) {
int l = table[j];
_vm->_video->drawSprite(*_fascinWin[l].savedSurface, *tempSrf,
MAX(_fascinWin[l].left, _fascinWin[k].left)
- - _fascinWin[l].left + (_fascinWin[l].left & 15),
+ - _fascinWin[l].left + (_fascinWin[l].left & 7),
MAX(_fascinWin[l].top , _fascinWin[k].top ) - _fascinWin[l].top,
MIN(_fascinWin[l].left + _fascinWin[l].width - 1, _fascinWin[k].left + _fascinWin[k].width - 1)
- - _fascinWin[l].left + (_fascinWin[l].left & 15),
+ - _fascinWin[l].left + (_fascinWin[l].left & 7),
MIN(_fascinWin[l].top + _fascinWin[l].height - 1, _fascinWin[k].top + _fascinWin[k].height - 1)
- _fascinWin[l].top,
MAX(_fascinWin[l].left, _fascinWin[k].left) - left,
@@ -1186,9 +1186,7 @@ void Draw::winDraw(int16 fct) {
_vm->_video->drawSprite(*tempSrf, *_backSurface, 0, 0, width - left, height - top, left, top, 0);
tempSrf.reset();
} else {
- // NOTE: Strangerke not sure concerning the use of _destSurface
-
- dirtiedRect(_destSurface, left, top, width, height);
+ invalidateRect(left, top, width, height);
switch (fct) {
case DRAW_BLITSURF: // 0 - move
_vm->_video->drawSprite(*_spritesArray[_sourceSurface], *_backSurface,