aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/op_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/op_cmd.cpp')
-rw-r--r--engines/agi/op_cmd.cpp23
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;