work around some illegal var access' in COMI/V8 - there are more, but I am not always sure if avoiding the access is the proper fix; maybe in some cases we should just define that var for V8 to the proper value?

svn-id: r7425
This commit is contained in:
Max Horn 2003-05-10 22:35:12 +00:00
parent f412952667
commit 5be0ce7adc
3 changed files with 9 additions and 5 deletions

View file

@ -2724,8 +2724,9 @@ void Scumm::cyclePalette() {
byte *start, *end; byte *start, *end;
byte tmp[3]; byte tmp[3];
if (_features & GF_AFTER_V2) { if (VAR_TIMER == 0xFF) {
// FIXME - no idea if this is right :-/ // FIXME - no idea if this is right :-/
// Needed for both V2 and V8 at this time
valueToAdd = VAR(VAR_TIMER_NEXT); valueToAdd = VAR(VAR_TIMER_NEXT);
} else { } else {
valueToAdd = VAR(VAR_TIMER); valueToAdd = VAR(VAR_TIMER);

View file

@ -1155,7 +1155,8 @@ void Scumm_v6::o6_loadRoomWithEgo() {
void Scumm_v6::o6_getRandomNumber() { void Scumm_v6::o6_getRandomNumber() {
int rnd; int rnd;
rnd = _rnd.getRandomNumber(pop()); rnd = _rnd.getRandomNumber(pop());
VAR(VAR_V6_RANDOM_NR) = rnd; if (VAR_V6_RANDOM_NR != 0xFF)
VAR(VAR_V6_RANDOM_NR) = rnd;
push(rnd); push(rnd);
} }
@ -1163,7 +1164,8 @@ void Scumm_v6::o6_getRandomNumberRange() {
int max = pop(); int max = pop();
int min = pop(); int min = pop();
int rnd = _rnd.getRandomNumberRng(min, max); 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); push(rnd);
} }

View file

@ -856,8 +856,9 @@ int Scumm::scummLoop(int delta) {
VAR(VAR_TMR_1) += delta; VAR(VAR_TMR_1) += delta;
VAR(VAR_TMR_2) += delta; VAR(VAR_TMR_2) += delta;
VAR(VAR_TMR_3) += delta; VAR(VAR_TMR_3) += delta;
VAR(VAR_TMR_4) += delta;
} }
if (VAR_TMR_4 != 0xFF)
VAR(VAR_TMR_4) += delta;
if (delta > 15) if (delta > 15)
delta = 15; delta = 15;
@ -1066,7 +1067,7 @@ load_game:
/* show or hide mouse */ /* show or hide mouse */
_system->show_mouse(_cursor.state > 0); _system->show_mouse(_cursor.state > 0);
if (!(_features & GF_AFTER_V2)) if (VAR_TIMER != 0xFF)
VAR(VAR_TIMER) = 0; VAR(VAR_TIMER) = 0;
return VAR(VAR_TIMER_NEXT); return VAR(VAR_TIMER_NEXT);