aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2012-09-28 01:47:38 +0300
committerFilippos Karapetis2012-09-28 01:47:38 +0300
commit17b42b557048baa876be0e7dfbf12de55edbff7a (patch)
treef25c40bd82408f2d6867a89a518c9e5a033bf170
parenta1969ae268bfcbe8300e27ca4505acd45d223854 (diff)
downloadscummvm-rg350-17b42b557048baa876be0e7dfbf12de55edbff7a.tar.gz
scummvm-rg350-17b42b557048baa876be0e7dfbf12de55edbff7a.tar.bz2
scummvm-rg350-17b42b557048baa876be0e7dfbf12de55edbff7a.zip
PARALLACTION: Add a workaround for the end credits of NS
The end credits reference a version of Dino called "Dinor", which makes the engine look for a non-existing file. We set the name to "dino", as it should be in this case, so that the engine loads the correct file. Part of the fixes for bug #5866
-rw-r--r--engines/parallaction/disk_ns.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/parallaction/disk_ns.cpp b/engines/parallaction/disk_ns.cpp
index 718265664f..bad854525d 100644
--- a/engines/parallaction/disk_ns.cpp
+++ b/engines/parallaction/disk_ns.cpp
@@ -262,8 +262,15 @@ Common::SeekableReadStream *DosDisk_ns::tryOpenFile(const char* name) {
Script* Disk_ns::loadLocation(const char *name) {
char path[PATH_LEN];
+ const char *charName = _vm->_char.getBaseName();
- sprintf(path, "%s%s/%s.loc", _vm->_char.getBaseName(), _language.c_str(), name);
+ // WORKAROUND: Special case for the Multilingual DOS version: during the ending
+ // sequence, it tries to load a non-existing file using "Dinor" as a character
+ // name. In this case, the character name should be just "dino".
+ if (!strcmp(charName, "Dinor"))
+ charName = "dino";
+
+ sprintf(path, "%s%s/%s.loc", charName, _language.c_str(), name);
debugC(3, kDebugDisk, "Disk_ns::loadLocation(%s): trying '%s'", name, path);
Common::SeekableReadStream *stream = tryOpenFile(path);