From 98a8c01dbb4498edfb4f310b15334d6139f614c3 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 18 Aug 2010 07:14:17 +0000 Subject: SCI: Fixed bug #3038433 - "HOYLE1: Crashes" svn-id: r52182 --- engines/sci/engine/klists.cpp | 3 +++ engines/sci/engine/workarounds.cpp | 1 + 2 files changed, 4 insertions(+) (limited to 'engines/sci/engine') diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp index 93e95099f5..2188087b8c 100644 --- a/engines/sci/engine/klists.cpp +++ b/engines/sci/engine/klists.cpp @@ -40,6 +40,9 @@ static bool isSaneNodePointer(SegManager *segMan, reg_t addr) { if ((g_sci->getGameId() == GID_ICEMAN) && (g_sci->getEngineState()->currentRoomNumber() == 40)) { // ICEMAN: when plotting course, unDrawLast is called by startPlot::changeState // there is no previous entry so we get 0 in here + } else if ((g_sci->getGameId() == GID_HOYLE1) && (g_sci->getEngineState()->currentRoomNumber() == 3)) { + // HOYLE1: after sorting cards in hearts, in the next round + // we get an invalid node - bug #3038433 } else { error("isSaneNodePointer: Node at %04x:%04x wasn't found", PRINT_REG(addr)); } diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index 4fe1e66570..f7b2b16792 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -48,6 +48,7 @@ const SciWorkaroundEntry opcodeDptoaWorkarounds[] = { // gameID, room,script,lvl, object-name, method-name, call,index, workaround const SciWorkaroundEntry opcodeGeWorkarounds[] = { + { GID_HOYLE1, 5, 213, 0, "", "export 0", -1, 0, { WORKAROUND_FAKE, 1 } }, // happens sometimes during cribbage - bug #3038433 { GID_PQ3, 31, 31, 0, "rm031", "init", -1, 0, { WORKAROUND_FAKE, 1 } }, // pq3 english: when exiting the car, while morales is making phonecalls - bug #3037565 SCI_WORKAROUNDENTRY_TERMINATOR }; -- cgit v1.2.3