aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/dataio.cpp
diff options
context:
space:
mode:
authorArnaud Boutonné2009-04-21 21:44:37 +0000
committerArnaud Boutonné2009-04-21 21:44:37 +0000
commitee929136835a98a108073965315dd87028ed3f12 (patch)
treeef0e6407b3ec5fc82306b7923c0fbc329d094d07 /engines/gob/dataio.cpp
parent3c580662063b91e1a81468a441261d608381fc3d (diff)
downloadscummvm-rg350-ee929136835a98a108073965315dd87028ed3f12.tar.gz
scummvm-rg350-ee929136835a98a108073965315dd87028ed3f12.tar.bz2
scummvm-rg350-ee929136835a98a108073965315dd87028ed3f12.zip
Patch #2725859 : Added some MD5 to the gob engine, modified the way the first STK and TOT is declared, added inter and draw skeleton for Fascination
svn-id: r40059
Diffstat (limited to 'engines/gob/dataio.cpp')
-rw-r--r--engines/gob/dataio.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/gob/dataio.cpp b/engines/gob/dataio.cpp
index a2bb730870..dbb1e66eb2 100644
--- a/engines/gob/dataio.cpp
+++ b/engines/gob/dataio.cpp
@@ -370,6 +370,7 @@ void DataIO::openDataFile(const char *src, bool itk) {
ChunkDesc *dataDesc;
char path[128];
int16 file;
+ char *fakeTotPtr;
strncpy0(path, src, 127);
if (!strchr(path, '.')) {
@@ -409,6 +410,13 @@ void DataIO::openDataFile(const char *src, bool itk) {
Util::replaceChar(dataDesc[i].chunkName, (char) 0x8E, 'O');
Util::replaceChar(dataDesc[i].chunkName, (char) 0x91, 'C');
Util::replaceChar(dataDesc[i].chunkName, (char) 0x92, 'T');
+
+ // Geisha use 0ot files, which are compressed TOT files without the packed byte set.
+ fakeTotPtr = strstr(dataDesc[i].chunkName, "0OT");
+ if (fakeTotPtr != 0) {
+ strncpy(fakeTotPtr, "TOT", 3);
+ dataDesc[i].packed = 1;
+ }
}
for (int i = 0; i < _numDataChunks[file]; i++)