diff options
Diffstat (limited to 'engines/teenagent')
-rw-r--r-- | engines/teenagent/resources.cpp | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/engines/teenagent/resources.cpp b/engines/teenagent/resources.cpp index 74ebae9c9b..49a429d5b7 100644 --- a/engines/teenagent/resources.cpp +++ b/engines/teenagent/resources.cpp @@ -22,6 +22,7 @@ #include "teenagent/resources.h" #include "teenagent/teenagent.h" #include "common/textconsole.h" +#include "common/zlib.h" namespace TeenAgent { @@ -69,26 +70,15 @@ bool Resources::loadArchives(const ADGameDescription *gd) { return false; } - // Check if teenagent.dat is compressed (older versions of the file) - uint16 header = dat_file->readUint16BE(); - bool isCompressed = (header == 0x1F8B || - ((header & 0x0F00) == 0x0800 && - header % 31 == 0)); - dat_file->seek(-2, SEEK_CUR); - - if (isCompressed) { - delete dat_file; - Common::String errorMessage = "The teenagent.dat file is compressed. Please decompress it"; - GUIErrorMessage(errorMessage); - warning("%s", errorMessage.c_str()); - return false; - } - - cseg.read(dat_file, 0xb3b0); - dseg.read(dat_file, 0xe790); - eseg.read(dat_file, 0x8be2); + // teenagent.dat used to be compressed with zlib compression. The usage of + // zlib here is no longer needed, and it's maintained only for backwards + // compatibility. + Common::SeekableReadStream *dat = Common::wrapCompressedReadStream(dat_file); + cseg.read(dat, 0xb3b0); + dseg.read(dat, 0xe790); + eseg.read(dat, 0x8be2); - delete dat_file; + delete dat; FilePack varia; varia.open("varia.res"); |