diff options
| -rw-r--r-- | engines/kyra/engine/timer_eob.cpp | 14 | ||||
| -rw-r--r-- | engines/kyra/gui/gui_eob.cpp | 2 | ||||
| -rw-r--r-- | engines/kyra/gui/saveload_eob.cpp | 2 | ||||
| -rw-r--r-- | engines/kyra/script/script_eob.cpp | 4 | 
4 files changed, 19 insertions, 3 deletions
| diff --git a/engines/kyra/engine/timer_eob.cpp b/engines/kyra/engine/timer_eob.cpp index ef50201bc8..8bc81b324a 100644 --- a/engines/kyra/engine/timer_eob.cpp +++ b/engines/kyra/engine/timer_eob.cpp @@ -61,6 +61,9 @@ void EoBCoreEngine::enableSysTimer(int sysTimer) {  	KyraRpgEngine::enableSysTimer(sysTimer); +	if (!_disableElapsedTime) +		return; +  	_disableElapsedTime = _system->getMillis() - _disableElapsedTime;  	for (int i = 0; i < 6; i++) { @@ -75,8 +78,10 @@ void EoBCoreEngine::enableSysTimer(int sysTimer) {  	if (_scriptTimersMode & 1) {  		for (int i = 0; i < _scriptTimersCount; i++) { -			if (_scriptTimers[i].next) +			if (_scriptTimers[i].next) {  				_scriptTimers[i].next += _disableElapsedTime; +				debugC(3, kDebugLevelTimer, "EoBCoreEngine::enableSysTimer()     - CTIME: %08d   SCRIPT TIMER[%02d].NEXT: %08d", _system->getMillis(), i, _scriptTimers[i].next); +			}  		}  	} @@ -94,6 +99,9 @@ void EoBCoreEngine::disableSysTimer(int sysTimer) {  	KyraRpgEngine::disableSysTimer(sysTimer); +	if (_disableElapsedTime) +		return; +  	_disableElapsedTime = _system->getMillis();  } @@ -202,9 +210,11 @@ void EoBCoreEngine::advanceTimers(uint32 millis) {  			if (_scriptTimers[i].next > ct) {  				uint32 chrt = _scriptTimers[i].next - ct;  				_scriptTimers[i].next = chrt > millis ? ct + chrt - millis : 1; +				debugC(3, kDebugLevelTimer, "EoBCoreEngine::advanceTimers()      - CTIME: %08d   SCRIPT TIMER[%02d].NEXT: %08d", ct, i, _scriptTimers[i].next);  			} else if (_scriptTimers[i].next) {                  _scriptTimers[i].next = 1; -            } +				debugC(3, kDebugLevelTimer, "EoBCoreEngine::advanceTimers()      - CTIME: %08d   SCRIPT TIMER[%02d].NEXT: %08d", ct, i, _scriptTimers[i].next); +            }			  		}  	} diff --git a/engines/kyra/gui/gui_eob.cpp b/engines/kyra/gui/gui_eob.cpp index 981a33fb52..2d51adb498 100644 --- a/engines/kyra/gui/gui_eob.cpp +++ b/engines/kyra/gui/gui_eob.cpp @@ -507,7 +507,7 @@ void EoBCoreEngine::gui_drawInventoryItem(int slot, int redraw, int pageNum) {  		uint8 col1 = guiSettings()->colors.frame1;  		uint8 col2 = guiSettings()->colors.frame2; -		if (_flags.platform == Common::kPlatformAmiga) { +		if (_flags.gameID == GI_EOB1 && _flags.platform == Common::kPlatformAmiga) {  			col1 = guiSettings()->colors.inactiveTabFrame1;  			col2 = guiSettings()->colors.inactiveTabFrame2;  		} else if (_configRenderMode == Common::kRenderCGA) { diff --git a/engines/kyra/gui/saveload_eob.cpp b/engines/kyra/gui/saveload_eob.cpp index 5a55c8f68b..07c99d5b95 100644 --- a/engines/kyra/gui/saveload_eob.cpp +++ b/engines/kyra/gui/saveload_eob.cpp @@ -51,6 +51,8 @@ Common::Error EoBCoreEngine::loadGameState(int slot) {  	if (slot != -1)  		_screen->fadeToBlack(10); +	enableSysTimer(2); +  	for (int i = 0; i < 6; i++) {  		EoBCharacter *c = &_characters[i];  		c->id = in.readByte(); diff --git a/engines/kyra/script/script_eob.cpp b/engines/kyra/script/script_eob.cpp index a7363967d7..8c0fb0601e 100644 --- a/engines/kyra/script/script_eob.cpp +++ b/engines/kyra/script/script_eob.cpp @@ -58,6 +58,7 @@ const uint8 *EoBCoreEngine::initScriptTimers(const uint8 *pos) {  		_scriptTimers[_scriptTimersCount].ticks = ticks;  		pos += 2;  		_scriptTimers[_scriptTimersCount++].next = _system->getMillis() + ticks * _tickLength; +		debugC(3, kDebugLevelTimer, "EoBCoreEngine::initScriptTimers()   - CTIME: %08d   SCRIPT TIMER[%02d].NEXT: %08d", _system->getMillis(), _scriptTimersCount - 1, _scriptTimers[_scriptTimersCount - 1].next);  	}  	return pos; @@ -76,6 +77,7 @@ void EoBCoreEngine::updateScriptTimers() {  			if (_scriptTimers[i].next < _system->getMillis()) {  				_inf->run(_scriptTimers[i].func, _flags.gameID == GI_EOB1 ? 0x20 : 0x80);  				_scriptTimers[i].next = _system->getMillis() + _scriptTimers[i].ticks * _tickLength; +				debugC(3, kDebugLevelTimer, "EoBCoreEngine::updateScriptTimers() - CTIME: %08d   SCRIPT TIMER[%02d].NEXT: %08d", _system->getMillis(), i, _scriptTimers[i].next);  				_sceneUpdateRequired = true;  				timerUpdate = true;  			} @@ -1537,6 +1539,8 @@ int EoBInfProcessor::oeob_delay(int8 *data) {  }  int EoBInfProcessor::oeob_drawScene(int8 *data) { +	if (_vm->game() == GI_EOB2 && _vm->gameFlags().platform == Common::kPlatformAmiga) +		_screen->setupDualPalettesSplitScreen(_screen->getPalette(6), _screen->getPalette(7));  	_vm->drawScene(1);  	return 0;  } | 
