aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/tinsel/detection.cpp43
-rw-r--r--engines/tinsel/tinsel.cpp50
2 files changed, 72 insertions, 21 deletions
diff --git a/engines/tinsel/detection.cpp b/engines/tinsel/detection.cpp
index 8870fabfc6..1cba5da1b8 100644
--- a/engines/tinsel/detection.cpp
+++ b/engines/tinsel/detection.cpp
@@ -87,8 +87,8 @@ static const TinselGameDescription gameDescriptions[] = {
// TINSEL_V2: The Discworld 2 game used this updated version of the Tinsel 1 engine,
// and as far as we know there aren't any variations of this engine.
- {
- { // This version has *.gra files
+ { // Floppy V1 version, with *.gra files
+ {
"dw",
"Floppy",
AD_ENTRY1s("dw.gra", "c8808ccd988d603dd35dff42013ae7fd", 781656),
@@ -102,6 +102,24 @@ static const TinselGameDescription gameDescriptions[] = {
TINSEL_V1,
},
+ { // CD V1 version, with *.gra files (same as the floppy one, with english.smp)
+ {
+ "dw",
+ "CD",
+ {
+ {"dw.gra", 0, "c8808ccd988d603dd35dff42013ae7fd", 781656},
+ {"english.smp", 0, NULL, -1},
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ Common::ADGF_NO_FLAGS
+ },
+ GID_DW1,
+ 0,
+ GF_CD,
+ TINSEL_V1,
+ },
+
{ // Multilingual CD with english speech and *.gra files.
// Note: It contains no english subtitles.
{
@@ -267,7 +285,7 @@ static const TinselGameDescription gameDescriptions[] = {
TINSEL_V1,
},
- { // Europen/Australian Discworld 2 release
+ { // European/Australian Discworld 2 release
{
"dw2",
"CD",
@@ -286,6 +304,25 @@ static const TinselGameDescription gameDescriptions[] = {
TINSEL_V2,
},
+ { // US Discworld 2 release
+ {
+ "dw2",
+ "CD",
+ {
+ {"dw2.scn", 0, "c6d15ce9720a9d8fef06e6582dcf3f34", 103593},
+ {"us1.smp", 0, NULL, -1},
+ {NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ Common::ADGF_NO_FLAGS
+ },
+ GID_DW2,
+ 0,
+ GF_CD | GF_SCNFILES,
+ TINSEL_V2,
+ },
+
{ // French version of Discworld 2
{
"dw2",
diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp
index a998836d1d..f4d16b268c 100644
--- a/engines/tinsel/tinsel.cpp
+++ b/engines/tinsel/tinsel.cpp
@@ -800,26 +800,40 @@ static const GameSettings tinselSettings[] = {
{NULL, NULL, 0, 0, NULL}
};
+// For the languages, refer to the LANGUAGE enum in dw.h
+
const char *TinselEngine::_sampleIndices[][3] = {
- { "english.idx", "english1.idx", "english2.idx" },
- { "french.idx", "french1.idx", "french2.idx" },
- { "german.idx", "german1.idx", "german2.idx" },
- { "english.idx", "english1.idx", "english2.idx" }, // Italian
- { "english.idx", "english1.idx", "english2.idx" } // Spanish
+ { "english.idx", "english1.idx", "english2.idx" }, // English
+ { "french.idx", "french1.idx", "french2.idx" }, // French
+ { "german.idx", "german1.idx", "german2.idx" }, // German
+ { "english.idx", "english1.idx", "english2.idx" }, // Italian
+ { "english.idx", "english1.idx", "english2.idx" }, // Spanish
+ { "english.idx", "english1.idx", "english2.idx" }, // Hebrew (FIXME: not sure if this is correct)
+ { "english.idx", "english1.idx", "english2.idx" }, // Hungarian (FIXME: not sure if this is correct)
+ { "english.idx", "english1.idx", "english2.idx" }, // Japanese (FIXME: not sure if this is correct)
+ { "us.idx", "us1.idx", "us2.idx" } // US English
};
const char *TinselEngine::_sampleFiles[][3] = {
- { "english.smp", "english1.smp", "english2.smp" },
- { "french.smp", "french1.smp", "french2.smp" },
- { "german.smp", "german1.smp", "german2.smp" },
- { "english.smp", "english1.smp", "english2.smp" }, // Italian
- { "english.smp", "english1.smp", "english2.smp" } // Spanish,
+ { "english.smp", "english1.smp", "english2.smp" }, // English
+ { "french.smp", "french1.smp", "french2.smp" }, // French
+ { "german.smp", "german1.smp", "german2.smp" }, // German
+ { "english.smp", "english1.smp", "english2.smp" }, // Italian
+ { "english.smp", "english1.smp", "english2.smp" }, // Spanish
+ { "english.smp", "english1.smp", "english2.smp" }, // Hebrew (FIXME: not sure if this is correct)
+ { "english.smp", "english1.smp", "english2.smp" }, // Hungarian (FIXME: not sure if this is correct)
+ { "english.smp", "english1.smp", "english2.smp" }, // Japanese (FIXME: not sure if this is correct)
+ { "us.smp", "us1.smp", "us2.smp" }, // US English
};
const char *TinselEngine::_textFiles[][3] = {
- { "english.txt", "english1.txt", "english2.txt" },
- { "french.txt", "french1.txt", "french2.txt" },
- { "german.txt", "german1.txt", "german2.txt" },
- { "italian.txt", "italian1.txt", "italian2.txt" },
- { "spanish.txt", "spanish1.txt", "spanish2.txt" }
+ { "english.txt", "english1.txt", "english2.txt" }, // English
+ { "french.txt", "french1.txt", "french2.txt" }, // French
+ { "german.txt", "german1.txt", "german2.txt" }, // German
+ { "italian.txt", "italian1.txt", "italian2.txt" }, // Italian
+ { "spanish.txt", "spanish1.txt", "spanish2.txt" }, // Spanish
+ { "english.txt", "english1.txt", "english2.txt" }, // Hebrew (FIXME: not sure if this is correct)
+ { "english.txt", "english1.txt", "english2.txt" }, // Hungarian (FIXME: not sure if this is correct)
+ { "english.txt", "english1.txt", "english2.txt" }, // Japanese (FIXME: not sure if this is correct)
+ { "us.txt", "us1.txt", "us2.txt" } // US English
};
@@ -1246,7 +1260,7 @@ const char *TinselEngine::getSampleIndex(LANGUAGE lang) {
if (TinselV2) {
cd = GetCurrentCD();
assert((cd == 1) || (cd == 2));
- assert(((unsigned int) lang) < 5);
+ assert(((unsigned int) lang) < NUM_LANGUAGES);
} else {
cd = 0;
lang = TXT_ENGLISH;
@@ -1261,7 +1275,7 @@ const char *TinselEngine::getSampleFile(LANGUAGE lang) {
if (TinselV2) {
cd = GetCurrentCD();
assert((cd == 1) || (cd == 2));
- assert(((unsigned int) lang) < 5);
+ assert(((unsigned int) lang) < NUM_LANGUAGES);
} else {
cd = 0;
lang = TXT_ENGLISH;
@@ -1271,7 +1285,7 @@ const char *TinselEngine::getSampleFile(LANGUAGE lang) {
}
const char *TinselEngine::getTextFile(LANGUAGE lang) {
- assert(((unsigned int) lang) < 5);
+ assert(((unsigned int) lang) < NUM_LANGUAGES);
int cd;