aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-05-31 17:58:15 +0000
committerMax Horn2003-05-31 17:58:15 +0000
commit5d3bef9c57ea4a56e6df42121b1ae52a94531420 (patch)
tree8cba602380fa0aa06cfca550f7a81fa320f2cabe
parent1d47bfa7cdaf8355a3b51d31654e4f622c6cdfa9 (diff)
downloadscummvm-rg350-5d3bef9c57ea4a56e6df42121b1ae52a94531420.tar.gz
scummvm-rg350-5d3bef9c57ea4a56e6df42121b1ae52a94531420.tar.bz2
scummvm-rg350-5d3bef9c57ea4a56e6df42121b1ae52a94531420.zip
added hack to make The Dig work again, tbus might break all sorts of other things (though I don't really see how, but that won't stop the bugs :-)
svn-id: r8189
-rw-r--r--scumm/scummvm.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index e2a249db92..e5031a118e 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -1235,6 +1235,23 @@ void Scumm::startScene(int room, Actor * a, int objectNr) {
a->moving = 0;
}
} else {
+ if (a) {
+ // FIXME: This hack mostly is there to fix the tomb/statue room
+ // in The Dig. What happens there is that when you enter, you are
+ // placed at object 399, coords (307,141), which is in box 25.
+ // But then the entry script locks that and other boxes. Hence
+ // after the entry script runs, you basically can only do one thing
+ // in that room, and that is to leave it - which means the game
+ // is unfinishable.
+ // By calling adjustActorPos, we can solve the problem in this case:
+ // there is a very close box (box 12) which contains point (307,144).
+ // If we call adjustActorPos, Commander Low is moved into that box,
+ // and we can go on. But aqudran looked this up in his IMB DB for
+ // The DIG; and nothing like this is done there. Also I am pretty
+ // sure this used to work in 0.3.1. So apparently something broke
+ // down here, and I have no clue what that might be :-/
+ a-> adjustActorPos();
+ }
if (camera._follows) {
a = derefActor(camera._follows, "startScene: follows");
setCameraAt(a->x, a->y);