From 353e5a78967e2ab1afdeb3ce9b482e0b455b3880 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Sun, 9 Mar 2008 09:28:10 +0000 Subject: Add hack to skip the faulty credits script in Russian HE99 version of Freddi Fish 3. svn-id: r31080 --- engines/scumm/detection_tables.h | 4 +++- engines/scumm/he/script_v72he.cpp | 8 ++++++++ engines/scumm/scumm.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h index dd05fd9c94..55b96e968e 100644 --- a/engines/scumm/detection_tables.h +++ b/engines/scumm/detection_tables.h @@ -295,9 +295,11 @@ static const GameSettings gameVariantsTable[] = { {"baseball", "", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, {"thinkerk", "", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, {"thinker1", "", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, - {"freddi3", "", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, {"spyfox", "", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, + {"freddi3", "", 0, GID_FREDDI3, 6, 90, MDT_NONE, GF_USE_KEY, UNK}, + {"freddi3", "HE 99", 0, GID_FREDDI3, 6, 99, MDT_NONE, GF_USE_KEY, UNK}, + // Humongous Entertainment Scumm Version 9.5 ? Scummsys.95 {"pajama2", "", 0, GID_HEGAME, 6, 95, MDT_NONE, GF_USE_KEY, UNK}, {"chase", "", 0, GID_HEGAME, 6, 95, MDT_NONE, GF_USE_KEY, UNK}, diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp index 8cc87d74b6..3cc48f84cc 100644 --- a/engines/scumm/he/script_v72he.cpp +++ b/engines/scumm/he/script_v72he.cpp @@ -792,6 +792,14 @@ void ScummEngine_v72he::o72_startScript() { getStackList(args, ARRAYSIZE(args)); script = pop(); flags = fetchScriptByte(); + + // HACK: The credits script in Russian HE99 version of Freddi Fish 3 + // uses null strings, causing various errors, so skip it. + if (_game.id == GID_FREDDI3 && _game.heversion == 99 && _language == Common::RU_RUS && + _currentRoom == 40 && script == 2057) { + return; + } + runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args); } diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h index 767aa53cf8..6e0e57c0fe 100644 --- a/engines/scumm/scumm.h +++ b/engines/scumm/scumm.h @@ -220,6 +220,7 @@ enum ScummGameId { GID_PUTTDEMO, GID_FBEAR, GID_FUNPACK, + GID_FREDDI3, GID_WATER, GID_PUTTRACE, GID_FUNSHOP, // Used for all three funshops -- cgit v1.2.3