diff options
author | Travis Howell | 2011-08-28 00:40:55 +1000 |
---|---|---|
committer | Matthew Hoops | 2011-08-27 11:00:24 -0400 |
commit | 5346ac18b7e33a603aa2743fa57f430d96cdbc33 (patch) | |
tree | 2ad2a778bea8b850cd68438448283e16aa90ff1f /engines/agos/installshield_cab.h | |
parent | f91f0f275660cfa3362036f583619b4ef7d343fd (diff) | |
download | scummvm-rg350-5346ac18b7e33a603aa2743fa57f430d96cdbc33.tar.gz scummvm-rg350-5346ac18b7e33a603aa2743fa57f430d96cdbc33.tar.bz2 scummvm-rg350-5346ac18b7e33a603aa2743fa57f430d96cdbc33.zip |
AGOS: Integrate InstallShield support.
Diffstat (limited to 'engines/agos/installshield_cab.h')
-rw-r--r-- | engines/agos/installshield_cab.h | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/engines/agos/installshield_cab.h b/engines/agos/installshield_cab.h index 3fb8e66b03..f7e8bed277 100644 --- a/engines/agos/installshield_cab.h +++ b/engines/agos/installshield_cab.h @@ -21,11 +21,6 @@ */ #include "common/archive.h" -#include "common/scummsys.h" -#include "common/endian.h" -#include "common/file.h" -#include "common/hash-str.h" -#include "common/hashmap.h" #include "common/str.h" #ifndef AGOS_INSTALLSHIELD_CAB_H @@ -33,34 +28,13 @@ namespace AGOS { -class InstallShieldCabinet : public Common::Archive { -public: - InstallShieldCabinet(); - ~InstallShieldCabinet(); - - bool open(const Common::String &filename); - void close(); - bool isOpen() const { return _stream != 0; } - - // Common::Archive API implementation - bool hasFile(const Common::String &name); - int listMembers(Common::ArchiveMemberList &list); - Common::ArchiveMemberPtr getMember(const Common::String &name); - Common::SeekableReadStream *createReadStreamForMember(const Common::String &name) const; - -private: - struct FileEntry { - uint32 uncompressedSize; - uint32 compressedSize; - uint32 offset; - uint16 flags; - }; - - Common::SeekableReadStream *_stream; - - typedef Common::HashMap<Common::String, FileEntry, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> FileMap; - FileMap _map; -}; +/** + * This factory method creates an Archive instance corresponding to the content + * of the InstallShield compressed file with the given name. + * + * May return 0 in case of a failure. + */ +Common::Archive *makeInstallShieldArchive(const Common::String &name); } // End of namespace AGOS |