AVALANCHE: Implement 'winning_pic'.

This commit is contained in:
uruk 2014-02-10 10:49:02 +01:00
parent a4583ade56
commit 3f6d71dd25
3 changed files with 46 additions and 2 deletions

View File

@ -718,6 +718,19 @@ void GraphicManager::shiftScreen() {
_surface.drawLine(0, 0, _surface.w, 0, kColorBlack);
}
void GraphicManager::drawWinningPic() {
Common::File file;
if (!file.open("finale.avd"))
error("AVALANCHE: Timer: File not found: finale.avd");
Graphics::Surface winning = loadPictureRaw(file, 640, 200);
drawPicture(_surface, winning, 0, 0);
winning.free();
file.close();
}
void GraphicManager::clearAlso() {
_magics.fillRect(Common::Rect(0, 0, 640, 200), 0);
_magics.frameRect(Common::Rect(0, 45, 640, 161), 15);

View File

@ -92,6 +92,9 @@ public:
// Used in wobble()
void shiftScreen();
// Used in winning()
void drawWinningPic();
// Ghostroom's functions:
void ghostDrawGhost(byte ghostArr[2][66][26], uint16 destX, int16 destY); // Very similar to loadPictureSign(). TODO: Unify the two later if possible.
void ghostDrawGlerk(byte glerkArr[4][35][9], uint16 destX, uint16 destY); // Very similar to ghostDrawGhost(), but not enough to unify the two.

View File

@ -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 ");