diff options
Diffstat (limited to 'engines/avalanche/timer.cpp')
-rw-r--r-- | engines/avalanche/timer.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/engines/avalanche/timer.cpp b/engines/avalanche/timer.cpp index 091045f4e4..f63098aea8 100644 --- a/engines/avalanche/timer.cpp +++ b/engines/avalanche/timer.cpp @@ -632,11 +632,39 @@ void Timer::arkataShouts() { addTimer(160, kProcArkataShouts, kReasonArkataShouts); } +/** + * @remarks Contains the content of the function 'winning_pic', originally located in PINGO. + */ void Timer::winning() { _vm->_dialogs->displayScrollChain('Q', 79); - //_vm->_pingo->winningPic(); - warning("STUB: Timer::winning()"); + // This was originally located in winning_pic: + CursorMan.showMouse(false); + _vm->_graphics->saveScreen(); + _vm->fadeOut(); + _vm->_graphics->drawWinningPic(); + _vm->_graphics->refreshScreen(); + _vm->fadeIn(); + + // Waiting for a keypress or a left mouseclick: + Common::Event event; + bool escape = false; + while (!_vm->shouldQuit() && !escape) { + _vm->_graphics->refreshScreen(); + while (_vm->getEvent(event)) { + if ((event.type == Common::EVENT_LBUTTONUP) || (event.type == Common::EVENT_KEYDOWN)) { + escape = true; + break; + } + } + } + + _vm->fadeOut(); + _vm->_graphics->restoreScreen(); + _vm->_graphics->removeBackup(); + _vm->fadeIn(); + CursorMan.showMouse(true); + // winning_pic's end. _vm->callVerb(kVerbCodeScore); _vm->_dialogs->displayText(" T H E E N D "); |