aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kscripts.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2011-05-03 17:17:27 -0400
committerMatthew Hoops2011-05-03 17:25:41 -0400
commit9cb600099f4c29298707787cafad2741a1cd6686 (patch)
treefb1930fa56b611317831d66442cba19b18d2e57a /engines/sci/engine/kscripts.cpp
parent3b2283daf850605ca897002afbafe44489c35473 (diff)
parent95a6098f672191dc0792bd4f9bfa18706bbe8e3a (diff)
downloadscummvm-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.cpp38
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);