From b956b2414986de7813a7920b6e03c1fde971cc6e Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sat, 15 Oct 2011 01:00:58 +0300 Subject: SCI: Added a heuristic to distinguish Mac SCI1.1 from SCI2.1 versions This removes the hack that checks for the existence of resource.cfg --- engines/sci/resource.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'engines/sci/resource.cpp') diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index bdd7d6692b..d1eb350c94 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -2181,15 +2181,16 @@ void ResourceManager::detectSciVersion() { } if (_volVersion == kResVersionSci11Mac) { - // SCI32 doesn't have the resource.cfg file, so we can figure out - // which of the games are SCI1.1. Note that there are no Mac SCI2 games. - // Yes, that means that GK1 Mac is SCI2.1 and not SCI2. + Resource *res = testResource(ResourceId(kResourceTypeScript, 64920)); + // Distinguish between SCI1.1 and SCI32 games here. SCI32 games will + // always include script 64920 (the Array class). Note that there are + // no Mac SCI2 games. Yes, that means that GK1 Mac is SCI2.1 and not SCI2. // TODO: Decide between SCI2.1 and SCI3 - if (Common::File::exists("resource.cfg")) - s_sciVersion = SCI_VERSION_1_1; - else + if (res) s_sciVersion = SCI_VERSION_2_1; + else + s_sciVersion = SCI_VERSION_1_1; return; } -- cgit v1.2.3 From 935eaa175bb6df628f0118e70a59b895f65e92a1 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 19 Oct 2011 23:44:34 +0300 Subject: SCI: Move the palette merging checking code inside the GfxPalette class --- engines/sci/resource.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/sci/resource.cpp') diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index d1eb350c94..c50d1b8d8a 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -2355,7 +2355,7 @@ bool ResourceManager::detectFontExtended() { } // detects, if SCI1.1 game uses palette merging or copying - this is supposed to only get used on SCI1.1 games -bool ResourceManager::detectForPaletteMergingForSci11() { +bool ResourceManager::detectPaletteMergingSci11() { // Load palette 999 (default palette) Resource *res = findResource(ResourceId(kResourceTypePalette, 999), false); -- cgit v1.2.3 From c4b2cd057a78b56a6ad554b796e4574567b0ca18 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sat, 29 Oct 2011 18:28:37 +0300 Subject: SCI: Fixed speech in PQ4 CD --- engines/sci/resource.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'engines/sci/resource.cpp') diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index c50d1b8d8a..9171e5e5d9 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -169,8 +169,11 @@ ResourceType ResourceManager::convertResType(byte type) { if (type < ARRAYSIZE(s_resTypeMapSci21)) { // LSL6 hires doesn't have the chunk resource type, to match // the resource types of the lowres version, thus we use the - // older resource types here - if (g_sci && g_sci->getGameId() == GID_LSL6HIRES) + // older resource types here. + // PQ4 CD and QFG4 CD are SCI2.1, but use the resource types of the + // corresponding SCI2 floppy disk versions. + if (g_sci && (g_sci->getGameId() == GID_LSL6HIRES || + g_sci->getGameId() == GID_QFG4 || g_sci->getGameId() == GID_PQ4)) return s_resTypeMapSci0[type]; else return s_resTypeMapSci21[type]; -- cgit v1.2.3