diff options
Diffstat (limited to 'engines/drascula')
-rw-r--r-- | engines/drascula/saveload.cpp | 10 |
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); |