mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-23 20:51:14 +00:00
MTROPOLIS: Add InstallShield cab archive type
This commit is contained in:
parent
968aa2fcd6
commit
077d4121a1
@ -27,6 +27,7 @@
|
|||||||
#include "common/compression/vise.h"
|
#include "common/compression/vise.h"
|
||||||
#include "common/formats/winexe.h"
|
#include "common/formats/winexe.h"
|
||||||
#include "common/compression/installshieldv3_archive.h"
|
#include "common/compression/installshieldv3_archive.h"
|
||||||
|
#include "common/compression/installshield_cab.h"
|
||||||
|
|
||||||
#include "graphics/maccursor.h"
|
#include "graphics/maccursor.h"
|
||||||
#include "graphics/wincursor.h"
|
#include "graphics/wincursor.h"
|
||||||
@ -1118,6 +1119,7 @@ private:
|
|||||||
kArchiveTypeMacVISE,
|
kArchiveTypeMacVISE,
|
||||||
kArchiveTypeStuffIt,
|
kArchiveTypeStuffIt,
|
||||||
kArchiveTypeInstallShieldV3,
|
kArchiveTypeInstallShieldV3,
|
||||||
|
kArchiveTypeInstallShieldCab,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct EnumBinding {
|
struct EnumBinding {
|
||||||
@ -1184,13 +1186,17 @@ void BootScriptContext::addArchive(ArchiveType archiveType, const Common::String
|
|||||||
|
|
||||||
Common::SeekableReadStream *stream = nullptr;
|
Common::SeekableReadStream *stream = nullptr;
|
||||||
|
|
||||||
if (_isMac)
|
bool isSingleStreamArchive = (archiveType != kArchiveTypeInstallShieldCab);
|
||||||
stream = Common::MacResManager::openFileOrDataFork(path, *junction._archive);
|
|
||||||
else
|
|
||||||
stream = junction._archive->createReadStreamForMember(path);
|
|
||||||
|
|
||||||
if (!stream)
|
if (isSingleStreamArchive) {
|
||||||
error("Couldn't mount archive from path %s", archivePath.c_str());
|
if (_isMac)
|
||||||
|
stream = Common::MacResManager::openFileOrDataFork(path, *junction._archive);
|
||||||
|
else
|
||||||
|
stream = junction._archive->createReadStreamForMember(path);
|
||||||
|
|
||||||
|
if (!stream)
|
||||||
|
error("Couldn't mount archive from path %s", archivePath.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
Common::Archive *archive = nullptr;
|
Common::Archive *archive = nullptr;
|
||||||
|
|
||||||
@ -1204,6 +1210,10 @@ void BootScriptContext::addArchive(ArchiveType archiveType, const Common::String
|
|||||||
archive = isa;
|
archive = isa;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case kArchiveTypeInstallShieldCab: {
|
||||||
|
archive = Common::makeInstallShieldArchive(path, *junction._archive);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case kArchiveTypeStuffIt:
|
case kArchiveTypeStuffIt:
|
||||||
archive = Common::createStuffItArchive(stream, false);
|
archive = Common::createStuffItArchive(stream, false);
|
||||||
break;
|
break;
|
||||||
@ -1420,7 +1430,8 @@ void BootScriptContext::executeFunction(const Common::String &functionName, cons
|
|||||||
|
|
||||||
const EnumBinding archiveTypeEnum[] = {ENUM_BINDING(kArchiveTypeMacVISE),
|
const EnumBinding archiveTypeEnum[] = {ENUM_BINDING(kArchiveTypeMacVISE),
|
||||||
ENUM_BINDING(kArchiveTypeStuffIt),
|
ENUM_BINDING(kArchiveTypeStuffIt),
|
||||||
ENUM_BINDING(kArchiveTypeInstallShieldV3)};
|
ENUM_BINDING(kArchiveTypeInstallShieldV3),
|
||||||
|
ENUM_BINDING(kArchiveTypeInstallShieldCab)};
|
||||||
|
|
||||||
|
|
||||||
Common::String str1, str2, str3, str4;
|
Common::String str1, str2, str3, str4;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user