aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kscripts.cpp
diff options
context:
space:
mode:
authormd52011-03-12 00:57:45 +0200
committermd52011-03-12 00:57:45 +0200
commit0b8c57be8482f58d6c5a9ff54102c440cf399dc4 (patch)
tree3c4da7b06b410e155b86440ebfda4ebf275dca34 /engines/sci/engine/kscripts.cpp
parentbd6602ea6f3956e4670dd2c22980039c1ddc018e (diff)
downloadscummvm-rg350-0b8c57be8482f58d6c5a9ff54102c440cf399dc4.tar.gz
scummvm-rg350-0b8c57be8482f58d6c5a9ff54102c440cf399dc4.tar.bz2
scummvm-rg350-0b8c57be8482f58d6c5a9ff54102c440cf399dc4.zip
SCI: Moved a heap patch from kScriptID() into script_patches.cpp
Diffstat (limited to 'engines/sci/engine/kscripts.cpp')
-rw-r--r--engines/sci/engine/kscripts.cpp30
1 files changed, 3 insertions, 27 deletions
diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp
index 30c8b6a130..b9baa3540a 100644
--- a/engines/sci/engine/kscripts.cpp
+++ b/engines/sci/engine/kscripts.cpp
@@ -249,33 +249,9 @@ reg_t kScriptID(EngineState *s, int argc, reg_t *argv) {
// is used for timing during the intro, and in the problematic version it's
// initialized to 0, whereas it's 6 in other versions. Thus, we assign it
// to 6 here, fixing the speed of the introduction. Refer to bug #3102071.
- if (g_sci->getGameId() == GID_PQ2 && script == 200) {
- if (s->variables[VAR_GLOBAL][3].isNull()) {
- warning("Fixing speed in the intro of PQ2, version 1.002.011");
- s->variables[VAR_GLOBAL][3] = make_reg(0, 6);
- }
- }
-
- // HACK: Prevent the murderer from getting stuck behind the door in
- // Colonel's Bequest, room 215. A temporary fix for bug #3122075.
- // TODO/FIXME: Add a proper fix for this. There is a regression in this
- // scene with the new kInitBresen and kDoBresen functions (r52467). Using
- // just the "old" kInitBresen works. This hack is added for now because the
- // two functions are quite complex. The "old" versions were created based
- // on observations, and not on the interpreter itself, thus they have a lot
- // of differences in the way they behave and set variables to the mover object.
- // Since this is just a death scene where Laura is supposed to die anyway,
- // figuring out the exact cause of this is just not worth the effort.
- // Differences between the new and the old kInitBresen to the MoveTo object:
- // dy: 1 (new) - 2 (old)
- // b-i1: 20 (new) - 12 (old)
- // b-di: 65526 (new) - 65516 (old)
- // Performing the changes above to MoveTo (0017:033a) allows the killer to
- // move. Note that the actual issue might not be with kInitBresen/kDoBresen,
- // and there might be another underlying problem here.
- if (g_sci->getGameId() == GID_LAURABOW && script == 215) {
- warning("Moving actor position for the shower scene of Colonel's Bequest");
- writeSelectorValue(s->_segMan, s->_segMan->findObjectByName("killer"), SELECTOR(x), 6);
+ if (g_sci->getGameId() == GID_PQ2 && script == 200 &&
+ s->variables[VAR_GLOBAL][3].isNull()) {
+ s->variables[VAR_GLOBAL][3] = make_reg(0, 6);
}
return make_reg(scriptSeg, address);