diff options
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/draw.cpp | 9 | ||||
-rw-r--r-- | engines/gob/draw.h | 1 | ||||
-rw-r--r-- | engines/gob/game.cpp | 2 |
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; |