From 67eedc08d27e6a3649db5bcb9a4c0ad76e468d35 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 14 Oct 2005 11:25:48 +0000 Subject: [PATCH] Oops. Fixes a bug with wrong filename for intro text in english version. Also gets rid of GF_KYRA* since GI_KYRA* should be used instead. And last but not least fixes text drawing while Kallaks writing scene. svn-id: r19081 --- kyra/kyra.cpp | 26 +++++++++++++++----------- kyra/kyra.h | 13 +++++-------- kyra/resource.cpp | 2 +- kyra/seqplayer.cpp | 4 ++-- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/kyra/kyra.cpp b/kyra/kyra.cpp index e66c4badc8a..4ccce0f99b6 100644 --- a/kyra/kyra.cpp +++ b/kyra/kyra.cpp @@ -69,19 +69,19 @@ struct KyraGameSettings { }; static const KyraGameSettings kyra_games[] = { - { "kyra1", "Legend of Kyrandia (Floppy, English)", GI_KYRA1, GF_ENGLISH | GF_FLOPPY | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (Floppy, English)", GI_KYRA1, GF_ENGLISH | GF_FLOPPY, "796e44863dd22fa635b042df1bf16673", "GEMCUT.EMC" }, - { "kyra1", "Legend of Kyrandia (Floppy, French)", GI_KYRA1, GF_FRENCH | GF_FLOPPY | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (Floppy, French)", GI_KYRA1, GF_FRENCH | GF_FLOPPY, "abf8eb360e79a6c2a837751fbd4d3d24", "GEMCUT.EMC" }, - { "kyra1", "Legend of Kyrandia (Floppy, German)", GI_KYRA1, GF_GERMAN | GF_FLOPPY | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (Floppy, German)", GI_KYRA1, GF_GERMAN | GF_FLOPPY, "6018e1dfeaca7fe83f8d0b00eb0dd049", "GEMCUT.EMC"}, - { "kyra1", "Legend of Kyrandia (CD, English)", GI_KYRA1, GF_ENGLISH | GF_TALKIE | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (CD, English)", GI_KYRA1, GF_ENGLISH | GF_TALKIE, "fac399fe62f98671e56a005c5e94e39f", "GEMCUT.PAK" }, - { "kyra1", "Legend of Kyrandia (CD, German)", GI_KYRA1, GF_GERMAN | GF_TALKIE | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (CD, German)", GI_KYRA1, GF_GERMAN | GF_TALKIE, "230f54e6afc007ab4117159181a1c722", "GEMCUT.PAK" }, - { "kyra1", "Legend of Kyrandia (CD, French)", GI_KYRA1, GF_FRENCH | GF_TALKIE | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (CD, French)", GI_KYRA1, GF_FRENCH | GF_TALKIE, "b037c41768b652a040360ffa3556fd2a", "GEMCUT.PAK" }, - { "kyra1", "Legend of Kyrandia (Demo)", GI_KYRA1, GF_DEMO | GF_KYRA1, + { "kyra1", "Legend of Kyrandia (Demo)", GI_KYRA1, GF_DEMO, "fb722947d94897512b13b50cc84fd648", "DEMO1.WSA" }, { 0, 0, 0, 0, 0, 0 } }; @@ -98,7 +98,7 @@ struct KyraGameList { }; static const KyraGameList kyra_list[] = { - { "kyra1", "Legend of Kyrandia", GF_KYRA1 }, + { "kyra1", "Legend of Kyrandia (Unknown)", 0 }, { 0, 0, 0 } }; @@ -148,7 +148,7 @@ DetectedGameList Engine_KYRA_detectGames(const FSList &fslist) { } } if (detectedGames.isEmpty()) { - printf("Unknown MD5 (%s)! Please report the details (language, platform, etc.) of this game to the ScummVM team\n", md5str); + debug("Unknown MD5 (%s)! Please report the details (language, platform, etc.) of this game to the ScummVM team\n", md5str); const KyraGameList *g1 = kyra_list; while (g1->name) { @@ -190,7 +190,7 @@ KyraEngine::KyraEngine(GameDetector *detector, OSystem *system) // TODO // Fallback. Maybe we will be able to determine game type from game // data contents - _features = GF_KYRA1; + _features = 0; for (g = kyra_games; g->name; g++) { if (!Common::File::exists(g->checkFile)) @@ -217,6 +217,10 @@ KyraEngine::KyraEngine(GameDetector *detector, OSystem *system) if (!found) { debug("Unknown MD5 (%s)! Please report the details (language, platform, etc.) of this game to the ScummVM team", md5str); + // a bit hacky but should work fine for now + debug("Assuming an english floppy version for now"); + _features = GF_FLOPPY | GF_ENGLISH; + _game = GI_KYRA1; } } @@ -845,7 +849,7 @@ void KyraEngine::seq_introStory() { _screen->clearPage(3); _screen->clearPage(0); if (_features & GF_ENGLISH) { - loadBitmap("TEXT_ENG.CPS", 3, 3, 0); + loadBitmap("TEXT.CPS", 3, 3, 0); } else if (_features & GF_GERMAN) { loadBitmap("TEXT_GER.CPS", 3, 3, 0); } else if (_features & GF_FRENCH) { diff --git a/kyra/kyra.h b/kyra/kyra.h index 870ec070819..33270a01a20 100644 --- a/kyra/kyra.h +++ b/kyra/kyra.h @@ -36,14 +36,11 @@ namespace Kyra { enum { GF_FLOPPY = 1 << 0, GF_TALKIE = 1 << 1, - GF_KYRA1 = 1 << 2, - GF_KYRA2 = 1 << 3, - GF_KYRA3 = 1 << 4, - GF_AUDIOCD = 1 << 5, // FM-Towns versions seems to use audio CD - GF_DEMO = 1 << 6, - GF_ENGLISH = 1 << 7, - GF_FRENCH = 1 << 8, - GF_GERMAN = 1 << 9 + GF_AUDIOCD = 1 << 2, // FM-Towns versions seems to use audio CD + GF_DEMO = 1 << 3, + GF_ENGLISH = 1 << 4, + GF_FRENCH = 1 << 5, + GF_GERMAN = 1 << 6 }; diff --git a/kyra/resource.cpp b/kyra/resource.cpp index e138c82b4f2..3a86b945de8 100644 --- a/kyra/resource.cpp +++ b/kyra/resource.cpp @@ -188,7 +188,7 @@ PAKFile::PAKFile(const Common::String& file) { _open = false; if (!pakfile.open(file.c_str())) { - printf("pakfile couldn't open %s\n", file.c_str()); + debug("couldn't open pakfile '%s'\n", file.c_str()); return; } diff --git a/kyra/seqplayer.cpp b/kyra/seqplayer.cpp index fe5a3122390..08dc5db0eb4 100755 --- a/kyra/seqplayer.cpp +++ b/kyra/seqplayer.cpp @@ -601,9 +601,9 @@ bool SeqPlayer::playSequence(const uint8 *seqData, bool skipSeq) { ++_seqDisplayedChar; if (KyraEngine::_seq_textsTableEN[_seqDisplayedText][_seqDisplayedChar] == '\0') { _seqDisplayedTextTimer = 0xFFFFFFFF; + } else { + _seqDisplayedTextTimer = _system->getMillis() + 1000 / 60; } - } else { - _seqDisplayedTextTimer = _system->getMillis() + 1000 / 60; } }