From 194081e7ae79a632ce446653cc7119b74d3a6fac Mon Sep 17 00:00:00 2001 From: md5 Date: Mon, 28 Feb 2011 22:32:41 +0200 Subject: SCI: Removed several workarounds which are no longer needed, after the changes regarding hunk pointers in r0d555c4 --- engines/sci/engine/kscripts.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'engines/sci/engine/kscripts.cpp') diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index 810e8a13ee..30c8b6a130 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); } -- cgit v1.2.3 From 0b8c57be8482f58d6c5a9ff54102c440cf399dc4 Mon Sep 17 00:00:00 2001 From: md5 Date: Sat, 12 Mar 2011 00:57:45 +0200 Subject: SCI: Moved a heap patch from kScriptID() into script_patches.cpp --- engines/sci/engine/kscripts.cpp | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) (limited to 'engines/sci/engine/kscripts.cpp') 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); -- cgit v1.2.3