diff options
Diffstat (limited to 'engines/agi/op_cmd.cpp')
-rw-r--r-- | engines/agi/op_cmd.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp index 62606911dc..01abf21230 100644 --- a/engines/agi/op_cmd.cpp +++ b/engines/agi/op_cmd.cpp @@ -314,7 +314,10 @@ void cmdLastCel(AgiGame *state, uint8 *p) { void cmdSetCel(AgiGame *state, uint8 *p) { state->_vm->setCel(&vt, p1); - vt.flags &= ~DONTUPDATE; + + if (getVersion() >= 0x2000) { + vt.flags &= ~DONTUPDATE; + } } void cmdSetCelF(AgiGame *state, uint8 *p) { @@ -1032,6 +1035,15 @@ void cmdReverseLoop(AgiGame *state, uint8 *p) { setflag(p1, false); } +void cmdReverseLoopV1(AgiGame *state, uint8 *p) { + debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1); + vt.cycle = CYCLE_REV_LOOP; + state->_vm->setCel(&vt, 0); + vt.flags |= (DONTUPDATE | UPDATE | CYCLING); + vt.parm1 = p1; + vt.parm3 = 0; +} + void cmdEndOfLoop(AgiGame *state, uint8 *p) { debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1); vt.cycle = CYCLE_END_OF_LOOP; @@ -1040,6 +1052,15 @@ void cmdEndOfLoop(AgiGame *state, uint8 *p) { setflag(p1, false); } +void cmdEndOfLoopV1(AgiGame *state, uint8 *p) { + debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1); + vt.cycle = CYCLE_END_OF_LOOP; + state->_vm->setCel(&vt, 0); + vt.flags |= (DONTUPDATE | UPDATE | CYCLING); + vt.parm1 = p1; + vt.parm3 = 0; +} + void cmdBlock(AgiGame *state, uint8 *p) { debugC(4, kDebugLevelScripts, "x1=%d, y1=%d, x2=%d, y2=%d", p0, p1, p2, p3); state->block.active = true; |