From 3d50c11071ee6b89fb11cda961b6f3cfb7c92f80 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 17 Mar 2013 16:28:20 -0400 Subject: [PATCH] HOPKINS: Fix corrupted frame at end of bank attack animation --- engines/hopkins/hopkins.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index 28217462327b..64a6c056a4e8 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -834,6 +834,7 @@ bool HopkinsEngine::runFull() { case 3: if (!_globals._saveData->_data[svBankAttackAnimPlayedFl]) { + // Play the bank attack animation _soundManager.playSound(3); if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS) _graphicsManager.loadImage("fond"); @@ -865,13 +866,20 @@ bool HopkinsEngine::runFull() { } else { _animationManager.playAnim("BANQUE.ANM", 200, 28, 200); } + _soundManager._specialSoundNum = 0; _soundManager.removeSample(1); _soundManager.removeSample(2); _soundManager.removeSample(3); _soundManager.removeSample(4); - if (getPlatform() != Common::kPlatformLinux) + + if (getPlatform() != Common::kPlatformLinux) { + // Copy the end of the animation into the secondary buffer and fade out the screen + Common::fill(_graphicsManager._vesaBuffer, _graphicsManager._vesaBuffer + + SCREEN_WIDTH * 2 * SCREEN_HEIGHT, 0); _graphicsManager.fadeOutLong(); + } + _globals._saveData->_data[svBankAttackAnimPlayedFl] = 1; } _linesManager.setMaxLineIdx(5);