diff options
| -rw-r--r-- | kyra/screen.cpp | 8 | ||||
| -rw-r--r-- | kyra/script_v1.cpp | 15 | ||||
| -rw-r--r-- | kyra/staticres.cpp | 1 | 
3 files changed, 16 insertions, 8 deletions
| diff --git a/kyra/screen.cpp b/kyra/screen.cpp index f4071c880b..c9d6a08687 100644 --- a/kyra/screen.cpp +++ b/kyra/screen.cpp @@ -155,7 +155,7 @@ void Screen::fadeSpecialPalette(int palIndex, int startIndex, int size, int fade  	uint8 tempPal[768];  	memcpy(tempPal, _currentPalette, 768);  	memcpy(&tempPal[startIndex*3], _vm->palTable1()[palIndex], size*3); -	fadePalette(tempPal, fadeTime*9); +	fadePalette(tempPal, fadeTime*18);  	memcpy(&_currentPalette[startIndex*3], &tempPal[startIndex*3], size*3);  	setScreenPalette(_currentPalette);  	_system->updateScreen(); @@ -172,11 +172,11 @@ void Screen::fadePalette(const uint8 *palData, int delay) {  			maxDiff = diff;  		}  	} -	delay <<= 8; +	int16 delayInc = delay << 8;  	if (maxDiff != 0) { -		delay /= maxDiff; +		delayInc /= maxDiff;  	} -	int delayInc = delay; +	delay = delayInc;  	for (diff = 1; diff <= maxDiff; ++diff) {  		if (delayInc >= 512) {  			break; diff --git a/kyra/script_v1.cpp b/kyra/script_v1.cpp index fc019fce39..206af7a3a5 100644 --- a/kyra/script_v1.cpp +++ b/kyra/script_v1.cpp @@ -250,6 +250,7 @@ int KyraEngine::cmd_runSceneAnimUntilDone(ScriptState *script) {  	while (_sprites->_anims[stackPos(0)].play) {  		_sprites->updateSceneAnims();  		_animator->updateAllObjectShapes(); +		delay(10);  	}  	_animator->restoreAllObjectBackgrounds();  	_screen->showMouse(); @@ -463,7 +464,8 @@ int KyraEngine::cmd_runWSAFromBeginningToEnd(ScriptState *script) {  			} else {  				_screen->updateScreen();  			} -			delay(10); +			if (continueTime - _system->getMillis() >= 10) +				delay(10);  		}  	} @@ -489,7 +491,8 @@ int KyraEngine::cmd_displayWSAFrame(ScriptState *script) {  	while (_system->getMillis() < continueTime) {  		_sprites->updateSceneAnims();  		_animator->updateAllObjectShapes(); -		delay(10); +		if (continueTime - _system->getMillis() >= 10) +			delay(10);  	}  	_screen->showMouse();  	return 0; @@ -529,7 +532,8 @@ int KyraEngine::cmd_runWSAFrames(ScriptState *script) {  		while (_system->getMillis() < nextRun) {  			_sprites->updateSceneAnims();  			_animator->updateAllObjectShapes(); -			delay(10); +			if (nextRun - _system->getMillis() >= 10) +				delay(10);  		}  	}  	_screen->showMouse(); @@ -716,7 +720,8 @@ int KyraEngine::cmd_displayWSAFrameOnHidPage(ScriptState *script) {  	while (_system->getMillis() < continueTime) {  		_sprites->updateSceneAnims();  		_animator->updateAllObjectShapes(); -		delay(10); +		if (continueTime - _system->getMillis() >= 10) +			delay(10);  	}  	_screen->showMouse(); @@ -1254,6 +1259,8 @@ int KyraEngine::cmd_makeAmuletAppear(ScriptState *script) {  			while (_system->getMillis() < nextTime) {  				_sprites->updateSceneAnims();  				_animator->updateAllObjectShapes(); +				if (nextTime - _system->getMillis() >= 10) +					delay(10);  			}  		}  		_screen->showMouse(); diff --git a/kyra/staticres.cpp b/kyra/staticres.cpp index acfc6be4f1..b3d6d33d43 100644 --- a/kyra/staticres.cpp +++ b/kyra/staticres.cpp @@ -667,6 +667,7 @@ KyraEngine::OpcodeProc KyraEngine::_opcodeTable[] = {  	Opcode(cmd_fillRect),  	Opcode(cmd_dummy),  	Opcode(cmd_dummy), +	Opcode(cmd_dummy),  	Opcode(cmd_dummy)  };  #undef Opcode | 
