aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTravis Howell2006-03-12 10:44:42 +0000
committerTravis Howell2006-03-12 10:44:42 +0000
commitfd389260f87d347ecf2255014a70f2ffd005c9cc (patch)
treea68c1ac32a67ea5730bd4fcc3ccf34876b15f440 /engines/scumm
parente94aa88ecedac24e0a2f3581425f60b10d5acb41 (diff)
downloadscummvm-rg350-fd389260f87d347ecf2255014a70f2ffd005c9cc.tar.gz
scummvm-rg350-fd389260f87d347ecf2255014a70f2ffd005c9cc.tar.bz2
scummvm-rg350-fd389260f87d347ecf2255014a70f2ffd005c9cc.zip
Adjust basename array setting in HE99+ games, for filename substitution
svn-id: r21229
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/scumm.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index db7dca86ed..3bfefb1410 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1607,12 +1607,19 @@ void ScummEngine_v99he::scummInit() {
_hePalettes = (uint8 *)malloc((_numPalettes + 1) * 1024);
memset(_hePalettes, 0, (_numPalettes + 1) * 1024);
+ byte basename[256];
+ char buf1[128];
+
+ strcpy((char *)basename, _baseName.c_str());
+ if (_substResFileName.almostGameID != 0) {
+ generateSubstResFileName((char *)basename, buf1, sizeof(buf1));
+ strcpy((char *)basename, buf1);
+ }
+
// Array 129 is set to base name
- // FIXME: Of course, we probably would want to insert the value
- // *after* applying the filename substitution here... ?
- int len = _baseName.size() + 1;
+ int len = resStrLen(basename);
ArrayHeader *ah = defineArray(129, kStringArray, 0, 0, 0, len);
- memcpy(ah->data, _baseName.c_str(), len);
+ memcpy(ah->data, basename, len);
}
#endif