aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/installshield_cab.h
diff options
context:
space:
mode:
authorTravis Howell2011-08-28 00:40:55 +1000
committerMatthew Hoops2011-08-27 11:00:24 -0400
commit5346ac18b7e33a603aa2743fa57f430d96cdbc33 (patch)
tree2ad2a778bea8b850cd68438448283e16aa90ff1f /engines/agos/installshield_cab.h
parentf91f0f275660cfa3362036f583619b4ef7d343fd (diff)
downloadscummvm-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.h40
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