diff options
author | Filippos Karapetis | 2013-10-30 09:42:28 +0200 |
---|---|---|
committer | Filippos Karapetis | 2013-10-30 09:42:56 +0200 |
commit | cc3475598621b0dc294b85ff18edb803c386abee (patch) | |
tree | 1664821a2df53c3ca7363f7be62c4dad38300343 /engines/sci | |
parent | 3e6a1422e31f9ccdc6f6acd7def9e246d1b6f0e6 (diff) | |
download | scummvm-rg350-cc3475598621b0dc294b85ff18edb803c386abee.tar.gz scummvm-rg350-cc3475598621b0dc294b85ff18edb803c386abee.tar.bz2 scummvm-rg350-cc3475598621b0dc294b85ff18edb803c386abee.zip |
SCI: Fix script bug #3615119 - "SCI: Crazy Nick Laura Bow - Uninitialized read error 2"
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/seg_manager.cpp | 10 | ||||
-rw-r--r-- | engines/sci/engine/workarounds.cpp | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index 97e33f256b..a059bee74e 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -262,8 +262,14 @@ const char *SegManager::getObjectName(reg_t pos) { const char *name = 0; if (nameReg.getSegment()) name = derefString(nameReg); - if (!name) - return "<invalid name>"; + if (!name) { + // Crazy Nick Laura Bow is missing some object names needed for the static + // selector vocabulary + if (g_sci->getGameId() == GID_CNICK_LAURABOW && pos == make_reg(1, 0x2267)) + return "Character"; + else + return "<invalid name>"; + } return name; } diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index 764a080c82..16437d0918 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -55,6 +55,7 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = { { GID_CASTLEBRAIN, 280, 280, 0, "programmer", "dispatchEvent", -1, 0, { WORKAROUND_FAKE, 0xf } }, // pressing 'q' on the computer screen in the robot room, and closing the help dialog that pops up (bug #3039656). Moves the cursor to the view with the ID returned (in this case, the robot hand) { GID_CNICK_KQ, -1, 0, 1, "Character", "say", -1, -1, { WORKAROUND_FAKE, 0 } }, // checkers/backgammon, like in hoyle 3 - temps 504 and 505 - bug #3606025 { GID_CNICK_KQ, -1, 700, 0, "gcWindow", "open", -1, -1, { WORKAROUND_FAKE, 0 } }, // when entering the control menu, like in hoyle 3 + { GID_CNICK_LAURABOW, -1, 0, 1, "Character", "say", -1, -1, { WORKAROUND_FAKE, 0 } }, // Yatch, like in hoyle 3 - temps 504 and 505 - bug #3615119 { GID_CNICK_LAURABOW, -1, 700, 0, NULL, "open", -1, -1, { WORKAROUND_FAKE, 0 } }, // when entering control menu - bug #3615118 (same as the gcWindow workaround for Hoyle 3) { GID_CNICK_LAURABOW,100, 110, 0, NULL, "doit", -1, -1, { WORKAROUND_FAKE, 0 } }, // when changing the "Dominoes per hand" setting - bug #3615130 { GID_CNICK_LONGBOW, 0, 0, 0, "RH Budget", "init", -1, 1, { WORKAROUND_FAKE, 0 } }, // when starting the game |