From ac6e9e07a3fdd2d90122de2ee01ca37ea616b3b7 Mon Sep 17 00:00:00 2001 From: Arnaud Boutonné Date: Wed, 3 Feb 2010 00:51:09 +0000 Subject: Fascination - Fix screen transition svn-id: r47830 --- engines/gob/draw.cpp | 9 ++++++++- engines/gob/draw.h | 1 + engines/gob/game.cpp | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'engines') 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; -- cgit v1.2.3