aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2011-02-27 15:44:12 +0100
committerWillem Jan Palenstijn2011-02-27 15:52:19 +0100
commitd7112b5bbc17e80065534d5308f24ea0fefeedaf (patch)
treecadf5d8b51a02a8f7e160843609fb22900261501
parent72f65b3946278661db95fc02511444ff1658a3bf (diff)
downloadscummvm-rg350-d7112b5bbc17e80065534d5308f24ea0fefeedaf.tar.gz
scummvm-rg350-d7112b5bbc17e80065534d5308f24ea0fefeedaf.tar.bz2
scummvm-rg350-d7112b5bbc17e80065534d5308f24ea0fefeedaf.zip
SCI: Remove kDoBresen special case for SCI_VERSION_1_EGA_ONLY
Confirmed with QfG2 disassembly (the only 1_EGA_ONLY game) that it behaves the same as SCI_VERSION_1_EARLY games, except for the uninitialized read already mentioned in kDoBresen.
-rw-r--r--engines/sci/engine/kmovement.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/engines/sci/engine/kmovement.cpp b/engines/sci/engine/kmovement.cpp
index bc22397c15..392db56419 100644
--- a/engines/sci/engine/kmovement.cpp
+++ b/engines/sci/engine/kmovement.cpp
@@ -374,17 +374,10 @@ reg_t kDoBresen(EngineState *s, int argc, reg_t *argv) {
writeSelectorValue(segMan, mover, SELECTOR(b_i2), mover_i2);
writeSelectorValue(segMan, mover, SELECTOR(b_di), mover_di);
- if (getSciVersion() == SCI_VERSION_1_EGA_ONLY) {
- // We need to compare directly in here, complete may have happened during
- // the current move
- if ((client_x == mover_x) && (client_y == mover_y))
- invokeSelector(s, mover, SELECTOR(moveDone), argc, argv);
- }
-
- if (getSciVersion() >= SCI_VERSION_1_EARLY) {
- // This calling code here was right before the last return in
- // sci1ega and got changed to this position since sci1early
- // this was an uninitialized issue in sierra sci
+ if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY) {
+ // In sci1egaonly this block of code was outside of the main if,
+ // but client_x/client_y aren't set there, so it was an
+ // uninitialized read in SSCI. (This issue was fixed in sci1early.)
if (handleMoveCount)
writeSelectorValue(segMan, mover, SELECTOR(b_movCnt), mover_moveCnt);
// We need to compare directly in here, complete may have happened during