aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorArnaud Boutonné2010-02-03 00:51:09 +0000
committerArnaud Boutonné2010-02-03 00:51:09 +0000
commitac6e9e07a3fdd2d90122de2ee01ca37ea616b3b7 (patch)
tree8678b43f118284421c451a2f0c6e2df8f648c9b4 /engines
parent86aa70ec4b10fcb931c5a819fe7953a7301fa252 (diff)
downloadscummvm-rg350-ac6e9e07a3fdd2d90122de2ee01ca37ea616b3b7.tar.gz
scummvm-rg350-ac6e9e07a3fdd2d90122de2ee01ca37ea616b3b7.tar.bz2
scummvm-rg350-ac6e9e07a3fdd2d90122de2ee01ca37ea616b3b7.zip
Fascination - Fix screen transition
svn-id: r47830
Diffstat (limited to 'engines')
-rw-r--r--engines/gob/draw.cpp9
-rw-r--r--engines/gob/draw.h1
-rw-r--r--engines/gob/game.cpp2
3 files changed, 11 insertions, 1 deletions
diff --git a/engines/gob/draw.cpp b/engines/gob/draw.cpp
index 2168053835..1cdfc1dbf3 100644
--- a/engines/gob/draw.cpp
+++ b/engines/gob/draw.cpp
@@ -653,7 +653,7 @@ bool Draw::winOverlap(int16 idWin1, int16 idWin2) {
return true;
}
-void Draw::closeWin (int16 i) {
+void Draw::closeWin(int16 i) {
warning("closeWin %d", i);
if (_fascinWin[i].id == -1)
return;
@@ -665,6 +665,13 @@ void Draw::closeWin (int16 i) {
_winCount--;
}
+void Draw::closeAllWin() {
+ for (int i = 0; i < 10; i++){
+ activeWin(i);
+ closeWin(i);
+ }
+}
+
int16 Draw::openWin(int16 id) {
if (_fascinWin[id].id != -1)
return 0;
diff --git a/engines/gob/draw.h b/engines/gob/draw.h
index 4f5576ac0d..467917aa13 100644
--- a/engines/gob/draw.h
+++ b/engines/gob/draw.h
@@ -193,6 +193,7 @@ public:
void winDecomp(int16 x, int16 y, SurfaceDescPtr bmp);
void activeWin(int16 id);
void closeWin(int16 id);
+ void closeAllWin();
void restoreWin(int16 i);
void saveWin(int16 id);
void winMove(int16 id);
diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp
index af9f03ecbf..ddf095a5d1 100644
--- a/engines/gob/game.cpp
+++ b/engines/gob/game.cpp
@@ -352,6 +352,8 @@ void Game::playTot(int16 skipPlay) {
}
}
+ if (_vm->getGameType() == kGameTypeFascination)
+ _vm->_draw->closeAllWin();
if (_totToLoad[0] == 0)
break;