diff options
| -rw-r--r-- | scumm/gfx.cpp | 3 | ||||
| -rw-r--r-- | scumm/script_v6.cpp | 6 | ||||
| -rw-r--r-- | scumm/scummvm.cpp | 5 | 
3 files changed, 9 insertions, 5 deletions
| diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index f7379e03c2..a262dbeed9 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -2724,8 +2724,9 @@ void Scumm::cyclePalette() {  	byte *start, *end;  	byte tmp[3]; -	if (_features & GF_AFTER_V2) { +	if (VAR_TIMER == 0xFF) {  		// FIXME - no idea if this is right :-/ +		// Needed for both V2 and V8 at this time  		valueToAdd = VAR(VAR_TIMER_NEXT);  	} else {  		valueToAdd = VAR(VAR_TIMER); diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 16f04701dd..7b69a6578c 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -1155,7 +1155,8 @@ void Scumm_v6::o6_loadRoomWithEgo() {  void Scumm_v6::o6_getRandomNumber() {  	int rnd;  	rnd = _rnd.getRandomNumber(pop()); -	VAR(VAR_V6_RANDOM_NR) = rnd; +	if (VAR_V6_RANDOM_NR != 0xFF) +		VAR(VAR_V6_RANDOM_NR) = rnd;  	push(rnd);  } @@ -1163,7 +1164,8 @@ void Scumm_v6::o6_getRandomNumberRange() {  	int max = pop();  	int min = pop();  	int rnd = _rnd.getRandomNumberRng(min, max); -	VAR(VAR_V6_RANDOM_NR) = rnd; +	if (VAR_V6_RANDOM_NR != 0xFF) +		VAR(VAR_V6_RANDOM_NR) = rnd;  	push(rnd);  } diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index 4f48a6c2f8..0e90b8945b 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -856,8 +856,9 @@ int Scumm::scummLoop(int delta) {  		VAR(VAR_TMR_1) += delta;  		VAR(VAR_TMR_2) += delta;  		VAR(VAR_TMR_3) += delta; -		VAR(VAR_TMR_4) += delta;  	} +	if (VAR_TMR_4 != 0xFF) +		VAR(VAR_TMR_4) += delta;  	if (delta > 15)  		delta = 15; @@ -1066,7 +1067,7 @@ load_game:  	/* show or hide mouse */  	_system->show_mouse(_cursor.state > 0); -	if (!(_features & GF_AFTER_V2)) +	if (VAR_TIMER != 0xFF)  		VAR(VAR_TIMER) = 0;  	return VAR(VAR_TIMER_NEXT); | 
