diff options
| -rw-r--r-- | engines/sword1/animation.cpp | 5 | ||||
| -rw-r--r-- | engines/sword1/screen.cpp | 4 | 
2 files changed, 6 insertions, 3 deletions
| diff --git a/engines/sword1/animation.cpp b/engines/sword1/animation.cpp index 43de05b155..9d196d39be 100644 --- a/engines/sword1/animation.cpp +++ b/engines/sword1/animation.cpp @@ -191,7 +191,8 @@ void MoviePlayer::play(void) {  		_snd->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSoundHandle, _bgSoundStream);  	}  	_currentFrame = 0; -	while (decodeFrame()) { +	bool terminated = false; +	while (!terminated && decodeFrame()) {  		processFrame();  		syncFrame();  		updateScreen(); @@ -205,7 +206,7 @@ void MoviePlayer::play(void) {  			case OSystem::EVENT_KEYDOWN:  				if (event.kbd.keycode == 27) {  					_snd->stopHandle(_bgSoundHandle); -					return; +					terminated = true;  				}  				break;  			case OSystem::EVENT_QUIT: diff --git a/engines/sword1/screen.cpp b/engines/sword1/screen.cpp index 57a9b6137c..ba04d03d84 100644 --- a/engines/sword1/screen.cpp +++ b/engines/sword1/screen.cpp @@ -68,7 +68,9 @@ void Screen::clearScreen(void) {  	if (_screenBuf) {  		_fullRefresh = true;  		memset(_screenBuf, 0, _scrnSizeX * _scrnSizeY); -		_system->copyRectToScreen(_screenBuf, 640, 0, 0, 640, 480); +		// The buffer isn't necessarily big enough to clear the entire +		// screen, so the menu areas are unaffected. For now. +		_system->copyRectToScreen(_screenBuf, SCREEN_WIDTH, 0, 40, SCREEN_WIDTH, SCREEN_DEPTH);  	}  } | 
