aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/detection.cpp7
-rw-r--r--engines/scumm/he/animation_he.h2
-rw-r--r--engines/scumm/he/script_v72he.cpp7
-rw-r--r--engines/scumm/he/script_v80he.cpp10
-rw-r--r--engines/scumm/he/wiz_he.cpp8
-rw-r--r--engines/scumm/imuse_digi/dimuse_bndmgr.cpp2
-rw-r--r--engines/scumm/imuse_digi/dimuse_bndmgr.h2
-rw-r--r--engines/scumm/imuse_digi/dimuse_sndmgr.cpp6
-rw-r--r--engines/scumm/imuse_digi/dimuse_sndmgr.h2
9 files changed, 15 insertions, 31 deletions
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp
index 10224d997d..6430ab7c4d 100644
--- a/engines/scumm/detection.cpp
+++ b/engines/scumm/detection.cpp
@@ -466,7 +466,7 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
//
DetectorDesc &d = fileMD5Map[file];
if (d.md5.empty()) {
- Common::File *tmp = 0;
+ Common::SeekableReadStream *tmp = 0;
bool isDiskImg = (file.hasSuffix(".d64") || file.hasSuffix(".dsk") || file.hasSuffix(".prg"));
if (isDiskImg) {
@@ -474,12 +474,11 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
debug(2, "Falling back to disk-based detection");
} else {
- tmp = new Common::File;
- tmp->open(d.node);
+ tmp = d.node.createReadStream();
}
Common::String md5str;
- if (tmp && tmp->isOpen())
+ if (tmp)
md5str = computeStreamMD5AsString(*tmp, kMD5FileSizeLimit);
if (!md5str.empty()) {
diff --git a/engines/scumm/he/animation_he.h b/engines/scumm/he/animation_he.h
index 34794b35ac..af4ec2041d 100644
--- a/engines/scumm/he/animation_he.h
+++ b/engines/scumm/he/animation_he.h
@@ -26,8 +26,6 @@
#if !defined(SCUMM_HE_ANIMATION_H) && defined(ENABLE_HE)
#define SCUMM_HE_ANIMATION_H
-#include "common/file.h"
-
#include "graphics/video/smk_decoder.h"
#include "sound/mixer.h"
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index 76daacbd54..32c15abcba 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -1412,12 +1412,7 @@ void ScummEngine_v72he::o72_openFile() {
if (!_saveFileMan->listSavefiles(filename).empty()) {
_hInFileTable[slot] = _saveFileMan->openForLoading(filename);
} else {
- Common::File *f = new Common::File();
- f->open(filename);
- if (!f->isOpen())
- delete f;
- else
- _hInFileTable[slot] = f;
+ _hInFileTable[slot] = SearchMan.createReadStreamForMember(filename);
}
break;
case 2:
diff --git a/engines/scumm/he/script_v80he.cpp b/engines/scumm/he/script_v80he.cpp
index b06dc712d9..c225be4b6c 100644
--- a/engines/scumm/he/script_v80he.cpp
+++ b/engines/scumm/he/script_v80he.cpp
@@ -25,6 +25,7 @@
#ifdef ENABLE_HE
+#include "common/archive.h"
#include "common/config-file.h"
#include "common/config-manager.h"
#include "common/savefile.h"
@@ -94,14 +95,9 @@ void ScummEngine_v80he::o80_getFileSize() {
Common::SeekableReadStream *f = 0;
if (!_saveFileMan->listSavefiles(filename).empty()) {
- f = _saveFileMan->openForLoading((const char *)filename);
+ f = _saveFileMan->openForLoading(filename);
} else {
- Common::File *file = new Common::File();
- file->open((const char *)filename);
- if (!file->isOpen())
- delete file;
- else
- f = file;
+ f = SearchMan.createReadStreamForMember(filename);
}
if (!f) {
diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index ddbbb2101f..807380272d 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -25,6 +25,7 @@
#ifdef ENABLE_HE
+#include "common/archive.h"
#include "common/system.h"
#include "graphics/cursorman.h"
#include "graphics/primitives.h"
@@ -2374,12 +2375,7 @@ void Wiz::processWizImage(const WizParameters *params) {
if (!_vm->_saveFileMan->listSavefiles(filename).empty()) {
f = _vm->_saveFileMan->openForLoading(filename);
} else {
- Common::File *nf = new Common::File();
- nf->open(filename);
- if (!nf->isOpen())
- delete nf;
- else
- f = nf;
+ f = SearchMan.createReadStreamForMember(filename);
}
if (f) {
diff --git a/engines/scumm/imuse_digi/dimuse_bndmgr.cpp b/engines/scumm/imuse_digi/dimuse_bndmgr.cpp
index 3ae6f7e919..f10f17f3d8 100644
--- a/engines/scumm/imuse_digi/dimuse_bndmgr.cpp
+++ b/engines/scumm/imuse_digi/dimuse_bndmgr.cpp
@@ -157,7 +157,7 @@ BundleMgr::~BundleMgr() {
delete _file;
}
-Common::File *BundleMgr::getFile(const char *filename, int32 &offset, int32 &size) {
+Common::SeekableReadStream *BundleMgr::getFile(const char *filename, int32 &offset, int32 &size) {
BundleDirCache::IndexNode target;
strcpy(target.filename, filename);
BundleDirCache::IndexNode *found = (BundleDirCache::IndexNode *)bsearch(&target, _indexTable, _numFiles,
diff --git a/engines/scumm/imuse_digi/dimuse_bndmgr.h b/engines/scumm/imuse_digi/dimuse_bndmgr.h
index 65360d8ba4..a78697a854 100644
--- a/engines/scumm/imuse_digi/dimuse_bndmgr.h
+++ b/engines/scumm/imuse_digi/dimuse_bndmgr.h
@@ -101,7 +101,7 @@ public:
bool open(const char *filename, bool &compressed, bool errorFlag = false);
void close();
- Common::File *getFile(const char *filename, int32 &offset, int32 &size);
+ Common::SeekableReadStream *getFile(const char *filename, int32 &offset, int32 &size);
int32 decompressSampleByName(const char *name, int32 offset, int32 size, byte **compFinal, bool headerOutside);
int32 decompressSampleByIndex(int32 index, int32 offset, int32 size, byte **compFinal, int header_size, bool headerOutside);
int32 decompressSampleByCurIndex(int32 offset, int32 size, byte **compFinal, int headerSize, bool headerOutside);
diff --git a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp
index 1d4769a7f5..4054843163 100644
--- a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp
+++ b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp
@@ -93,7 +93,7 @@ void ImuseDigiSndMgr::countElements(byte *ptr, int &numRegions, int &numJumps, i
} while (tag != MKID_BE('DATA'));
}
-void ImuseDigiSndMgr::prepareSoundFromRMAP(Common::File *file, SoundDesc *sound, int32 offset, int32 size) {
+void ImuseDigiSndMgr::prepareSoundFromRMAP(Common::SeekableReadStream *file, SoundDesc *sound, int32 offset, int32 size) {
int l;
file->seek(offset, SEEK_SET);
@@ -428,7 +428,7 @@ ImuseDigiSndMgr::SoundDesc *ImuseDigiSndMgr::openSound(int32 soundId, const char
char fileName[24];
int32 offset = 0, size = 0;
sprintf(fileName, "%s.map", soundName);
- Common::File *rmapFile = sound->bundle->getFile(fileName, offset, size);
+ Common::SeekableReadStream *rmapFile = sound->bundle->getFile(fileName, offset, size);
if (!rmapFile) {
closeSound(sound);
return NULL;
@@ -666,7 +666,7 @@ int32 ImuseDigiSndMgr::getDataFromRegion(SoundDesc *soundDesc, int region, byte
sprintf(fileName, "%s_reg%03d", soundDesc->name, region);
if (scumm_stricmp(fileName, soundDesc->lastFileName) != 0) {
int32 offs = 0, len = 0;
- Common::File *cmpFile;
+ Common::SeekableReadStream *cmpFile;
uint8 soundMode = 0;
sprintf(fileName, "%s_reg%03d.fla", soundDesc->name, region);
diff --git a/engines/scumm/imuse_digi/dimuse_sndmgr.h b/engines/scumm/imuse_digi/dimuse_sndmgr.h
index 0a667eba9d..aa7a1b77ca 100644
--- a/engines/scumm/imuse_digi/dimuse_sndmgr.h
+++ b/engines/scumm/imuse_digi/dimuse_sndmgr.h
@@ -113,7 +113,7 @@ private:
bool checkForProperHandle(SoundDesc *soundDesc);
SoundDesc *allocSlot();
void prepareSound(byte *ptr, SoundDesc *sound);
- void prepareSoundFromRMAP(Common::File *file, SoundDesc *sound, int32 offset, int32 size);
+ void prepareSoundFromRMAP(Common::SeekableReadStream *file, SoundDesc *sound, int32 offset, int32 size);
ScummEngine *_vm;
byte _disk;