aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula
diff options
context:
space:
mode:
Diffstat (limited to 'engines/drascula')
-rw-r--r--engines/drascula/saveload.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp
index 9063fbc792..94c4e817ee 100644
--- a/engines/drascula/saveload.cpp
+++ b/engines/drascula/saveload.cpp
@@ -300,6 +300,16 @@ bool DrasculaEngine::loadGame(int slot) {
if (!sscanf(currentData, "%d.ald", &roomNum)) {
error("Bad save format");
}
+
+ // When loading room 102 while being attached below the pendulum Some variables
+ // are not correctly set and can cause random crashes when calling enterRoom below.
+ // The crash occurs in moveCharacters() when accessing factor_red[curY + curHeight].
+ if (roomNum == 102 && flags[1] == 2) {
+ curX = 103;
+ curY = 108;
+ curWidth = curHeight = 0;
+ }
+
enterRoom(roomNum);
selectVerb(kVerbNone);