From 18ee9fbc32f1af20fbf06f101e677a55dbc627da Mon Sep 17 00:00:00 2001 From: Le Philousophe Date: Sun, 20 Oct 2019 17:51:55 +0200 Subject: CRYOMNI3D: Fix loading links with German Windows version --- engines/cryomni3d/cryomni3d.h | 5 +++- engines/cryomni3d/detection_tables.h | 46 ++++++++++++++++----------------- engines/cryomni3d/versailles/engine.cpp | 4 ++- 3 files changed, 30 insertions(+), 25 deletions(-) (limited to 'engines/cryomni3d') diff --git a/engines/cryomni3d/cryomni3d.h b/engines/cryomni3d/cryomni3d.h index f28a28fdd6..d1b2e36d3d 100644 --- a/engines/cryomni3d/cryomni3d.h +++ b/engines/cryomni3d/cryomni3d.h @@ -75,7 +75,10 @@ enum CryOmni3DGameFeatures { GF_VERSAILLES_FONTS_SET_C = (3 << 0), // Fonts for Italian version (Helvet12 is used for docs texts) GF_VERSAILLES_AUDIOPADDING_NO = (0 << 2), // Audio files have underscore padding before extension - GF_VERSAILLES_AUDIOPADDING_YES = (1 << 2) // Audio files have underscore padding before extension + GF_VERSAILLES_AUDIOPADDING_YES = (1 << 2), // Audio files have underscore padding before extension + + GF_VERSAILLES_LINK_STANDARD = (0 << 3), // Links file is lien_doc.txt + GF_VERSAILLES_LINK_LOCALIZED = (1 << 3) // Links file is taken from cryomni3d.dat }; struct CryOmni3DGameDescription; diff --git a/engines/cryomni3d/detection_tables.h b/engines/cryomni3d/detection_tables.h index 01fce77d81..69c6ac4db5 100644 --- a/engines/cryomni3d/detection_tables.h +++ b/engines/cryomni3d/detection_tables.h @@ -56,7 +56,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -73,7 +73,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -90,7 +90,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -107,7 +107,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -124,7 +124,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -141,7 +141,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -158,7 +158,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_A | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_A | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -175,7 +175,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -192,7 +192,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -209,7 +209,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -226,7 +226,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -243,7 +243,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_NO | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -260,7 +260,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -277,7 +277,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_C | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_C | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -294,7 +294,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_C | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_C | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -311,7 +311,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_SET_B | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_LOCALIZED, }, // Versailles 1685 @@ -321,14 +321,14 @@ static const CryOmni3DGameDescription gameDescriptions[] = { { "versailles", "", - VERSAILLES_ENTRY("PROGRAM.Z", "2e1a40237f8b28cb6ef29cff137fa561", 238041, "ALM"), + VERSAILLES_ENTRY_DEF("PROGRAM.Z", "2e1a40237f8b28cb6ef29cff137fa561", 238041), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -345,7 +345,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -362,7 +362,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -379,7 +379,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -396,7 +396,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, // Versailles 1685 @@ -413,7 +413,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = { GUI_OPTIONS_VERSAILLES }, GType_VERSAILLES, - GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES, + GF_VERSAILLES_FONTS_NUMERIC | GF_VERSAILLES_AUDIOPADDING_YES | GF_VERSAILLES_LINK_STANDARD, }, { AD_TABLE_END_MARKER, 0, 0 } }; diff --git a/engines/cryomni3d/versailles/engine.cpp b/engines/cryomni3d/versailles/engine.cpp index e8f7728359..307722bc11 100644 --- a/engines/cryomni3d/versailles/engine.cpp +++ b/engines/cryomni3d/versailles/engine.cpp @@ -127,7 +127,9 @@ Common::Error CryOmni3DEngine_Versailles::run() { initDocPeopleRecord(); _docManager.init(&_sprites, &_fontManager, &_messages, this, _localizedFilenames[LocalizedFilenames::kAllDocs], - _localizedFilenames[LocalizedFilenames::kLinksDocs]); + getFeatures() & GF_VERSAILLES_LINK_LOCALIZED ? + _localizedFilenames[LocalizedFilenames::kLinksDocs] : + "lien_doc.txt"); _countdownSurface.create(40, 15, Graphics::PixelFormat::createFormatCLUT8()); -- cgit v1.2.3