mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 14:18:37 +00:00
Fixed a roomOps that was creating a lots of bugs in indy and Zak
svn-id: r4016
This commit is contained in:
parent
f5a8c89eb3
commit
ed6b863e7c
@ -272,7 +272,7 @@ void Scumm::executeScript()
|
||||
_opcode = fetchScriptByte();
|
||||
_scriptPointerStart = _scriptPointer;
|
||||
vm.slot[_currentScript].didexec = 1;
|
||||
//debug(1, "Script %d: [%X] %s()", vm.slot[_currentScript].number, _opcode, _opcodes_lookup[_opcode]);
|
||||
debug(1, "Script %d: [%X] %s()", vm.slot[_currentScript].number, _opcode, _opcodes_lookup[_opcode]);
|
||||
op = getOpcode(_opcode);
|
||||
(this->*op) ();
|
||||
}
|
||||
|
@ -1320,10 +1320,13 @@ void Scumm::o5_getActorY()
|
||||
|
||||
void Scumm::o5_getAnimCounter()
|
||||
{
|
||||
Actor *a;
|
||||
getResultPos();
|
||||
setResult(derefActorSafe
|
||||
(getVarOrDirectByte(0x80),
|
||||
"o5_getActorAnimCounter")->cost.animCounter1);
|
||||
a=derefActorSafe(getVarOrDirectByte(0x80),"o5_getActorAnimCounter");
|
||||
if(a) // FIXME
|
||||
setResult(a->cost.animCounter1);
|
||||
else
|
||||
setResult(0);
|
||||
}
|
||||
|
||||
void Scumm::o5_getClosestObjActor()
|
||||
@ -1890,16 +1893,8 @@ void Scumm::o5_roomOps()
|
||||
int a = 0, b = 0, c, d, e;
|
||||
|
||||
if (_features & GF_OLD256) {
|
||||
a = getVarOrDirectByte(0x80);
|
||||
b = getVarOrDirectByte(0x40);
|
||||
if (_gameId == GID_INDY3_256 && (a == 0 || a ==16) && b == 0) { /* FIXME */
|
||||
// Set screen height
|
||||
c = fetchScriptByte();
|
||||
d = fetchScriptByte();
|
||||
e = fetchScriptByte();
|
||||
initScreens(0, a, 320, c);
|
||||
return;
|
||||
}
|
||||
a = getVarOrDirectWord(0x80);
|
||||
b = getVarOrDirectWord(0x40);
|
||||
}
|
||||
|
||||
_opcode = fetchScriptByte();
|
||||
@ -1976,10 +1971,9 @@ void Scumm::o5_roomOps()
|
||||
e = getVarOrDirectByte(0x40);
|
||||
setScaleItem(e - 1, b, a, d, c);
|
||||
case 8: /* room scale? */
|
||||
|
||||
a = getVarOrDirectByte(0x80);
|
||||
b = getVarOrDirectByte(0x40);
|
||||
c = getVarOrDirectByte(0x20);
|
||||
// a = getVarOrDirectByte(0x80);
|
||||
// b = getVarOrDirectByte(0x40);
|
||||
// c = getVarOrDirectByte(0x20);
|
||||
darkenPalette(b, c, a, a, a);
|
||||
break;
|
||||
case 9: /* ? */
|
||||
|
Loading…
Reference in New Issue
Block a user