From f286ae8f0757c9d645bfc29c424479829c12245b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 4 May 2013 09:57:40 +0200 Subject: HOPKINS: Fix bug #3612482 - ending credits issues --- engines/hopkins/font.cpp | 1 + engines/hopkins/hopkins.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp index 611327e9a8..ac0eee2866 100644 --- a/engines/hopkins/font.cpp +++ b/engines/hopkins/font.cpp @@ -433,6 +433,7 @@ void FontManager::displayText(int xp, int yp, const Common::String &message, int if (currentChar > 31) { int characterIndex = currentChar - 32; _vm->_graphicsMan->displayFont(_vm->_graphicsMan->_frontBuffer, _font, xp, yp, characterIndex, col); + _vm->_graphicsMan->addDirtyRect(xp, yp, xp + _vm->_objectsMan->getWidth(_font, characterIndex) + 1, yp + _vm->_objectsMan->getHeight(_font, characterIndex) + 1); xp += _vm->_objectsMan->getWidth(_font, characterIndex); } } diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index a778b84b88..83d0bdf030 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -2443,13 +2443,14 @@ void HopkinsEngine::displayCredits() { _globals->_eventMode = EVENTMODE_CREDITS; _globals->_creditsStartX = _globals->_creditsEndX = _globals->_creditsStartY = _globals->_creditsEndY = -1; int soundId = 28; + do { for (int i = 0; i < _globals->_creditsLineNumb; ++i) { if (_globals->_creditsItem[i]._actvFl) { int nextY = _globals->_creditsPosY + i * _globals->_creditsStep; _globals->_creditsItem[i]._linePosY = nextY; - if ((nextY - 21 >= 0) && (nextY - 21 <= 418)) { + if ((nextY >= 51) && (nextY <= 460)) { int col = 0; switch (_globals->_creditsItem[i]._color) { case '1': @@ -2474,7 +2475,7 @@ void HopkinsEngine::displayCredits() { --_globals->_creditsPosY; if (_globals->_creditsStartX != -1 || _globals->_creditsEndX != -1 || _globals->_creditsStartY != -1 || _globals->_creditsEndY != -1) { _events->refreshScreenAndEvents(); - _graphicsMan->copySurface(_graphicsMan->_backBuffer, 60, 50, 520, 380, _graphicsMan->_frontBuffer, 60, 50); + _graphicsMan->copySurface(_graphicsMan->_backBuffer, 60, 50, 520, 430, _graphicsMan->_frontBuffer, 60, 50); } else { _events->refreshScreenAndEvents(); } -- cgit v1.2.3