diff options
author | Matthew Hoops | 2011-05-03 17:17:27 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-05-03 17:25:41 -0400 |
commit | 9cb600099f4c29298707787cafad2741a1cd6686 (patch) | |
tree | fb1930fa56b611317831d66442cba19b18d2e57a /engines/sci/engine/kscripts.cpp | |
parent | 3b2283daf850605ca897002afbafe44489c35473 (diff) | |
parent | 95a6098f672191dc0792bd4f9bfa18706bbe8e3a (diff) | |
download | scummvm-rg350-9cb600099f4c29298707787cafad2741a1cd6686.tar.gz scummvm-rg350-9cb600099f4c29298707787cafad2741a1cd6686.tar.bz2 scummvm-rg350-9cb600099f4c29298707787cafad2741a1cd6686.zip |
Merge remote branch 'upstream/master' into pegasus
Diffstat (limited to 'engines/sci/engine/kscripts.cpp')
-rw-r--r-- | engines/sci/engine/kscripts.cpp | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index 810e8a13ee..b9baa3540a 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -56,14 +56,6 @@ reg_t kUnLoad(EngineState *s, int argc, reg_t *argv) { ResourceType restype = g_sci->getResMan()->convertResType(argv[0].toUint16()); reg_t resnr = argv[1]; - // WORKAROUND for a broken script in room 320 in Castle of Dr. Brain. - // Script 377 tries to free the hunk memory allocated for the saved area - // (underbits) beneath the pop up window, which results in having the - // window stay on screen even when it's closed. Ignore this request here. - if (restype == kResourceTypeMemory && g_sci->getGameId() == GID_CASTLEBRAIN && - s->currentRoomNumber() == 320) - return s->r_acc; - if (restype == kResourceTypeMemory) s->_segMan->freeHunkEntry(resnr); } @@ -257,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); |