Skip to content

Commit 832d7d2

Browse files
hari01584sev-
authored andcommitted
DIRECTOR: Change error in case of bad file to warning, to exit gracefully
Initially for a bad file that didn't exist, the ProjectorArchive was throwing up, now however implemented gracefully loading. Fixed error and termination for `Majestic.bin`, the path it tried to look up was `Majestic` from detection entry.
1 parent 608beef commit 832d7d2

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

engines/director/resource.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,10 @@ ProjectorArchive::ProjectorArchive(Common::String path)
545545

546546
// Buffer 100K into memory
547547
Common::SeekableReadStream *stream = createBufferedReadStream();
548+
if (!stream) {
549+
_isLoaded = false;
550+
return;
551+
}
548552

549553
// Build our filemap using the buffered stream
550554
_isLoaded = loadArchive(stream);
@@ -556,8 +560,10 @@ Common::SeekableReadStream *ProjectorArchive::createBufferedReadStream() {
556560
const uint32 READ_BUFFER_SIZE = 1024 * 100;
557561

558562
Common::SeekableReadStream *stream = SearchMan.createReadStreamForMember(_path);
559-
if (!stream)
560-
error("ProjectorArchive::createBufferedReadStream(): Cannot open %s", _path.c_str());
563+
if (!stream) {
564+
warning("ProjectorArchive::createBufferedReadStream(): Cannot open %s", _path.c_str());
565+
return nullptr;
566+
}
561567

562568
return Common::wrapBufferedSeekableReadStream(stream, READ_BUFFER_SIZE, DisposeAfterUse::YES);
563569
}

0 commit comments

Comments
 (0)