diff options
author | Martin Kiewitz | 2010-06-25 17:59:48 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-06-25 17:59:48 +0000 |
commit | 69694f361977d8ae1908957e5fb9d4ad242bbf98 (patch) | |
tree | 1e971259cc01c985f8da0aa9e2187f17632aecd6 /engines | |
parent | aedc77f0bddcfcd11e465ee29c5fc66973ef9f9b (diff) | |
download | scummvm-rg350-69694f361977d8ae1908957e5fb9d4ad242bbf98.tar.gz scummvm-rg350-69694f361977d8ae1908957e5fb9d4ad242bbf98.tar.bz2 scummvm-rg350-69694f361977d8ae1908957e5fb9d4ad242bbf98.zip |
SCI: changing workaround results for opcodes from signal_reg to make_reg(0, 1)
svn-id: r50278
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/vm.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index f54cddc253..9ebf8ca53d 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -1029,7 +1029,7 @@ void run_vm(EngineState *s, bool restoring) { error("[VM] op_gt: comparsion between a pointer and number"); // Pseudo-WORKAROUND: sierra allows any pointer <-> value comparsion // Happens in SQ1, room 28, when throwing the water at Orat - s->r_acc = SIGNAL_REG; + s->r_acc = make_reg(0, 1); } else s->r_acc = ACC_ARITHMETIC_L(signed_validate_arithmetic(r_temp) > (int16)/*acc*/); break; @@ -1082,7 +1082,7 @@ void run_vm(EngineState *s, bool restoring) { // It works because in those games, the maximum resource number is 999, // so any parameter value above that threshold must be a pointer. if (r_temp.segment && (s->r_acc == make_reg(0, 1000))) - s->r_acc = SIGNAL_REG; + s->r_acc = make_reg(0, 1); else if (r_temp.segment && s->r_acc.segment) s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset > s->r_acc.offset); else |