aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/chapters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/chapters.cpp')
-rw-r--r--engines/bladerunner/chapters.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/engines/bladerunner/chapters.cpp b/engines/bladerunner/chapters.cpp
index 09ab94bb98..7cf7c5e0f5 100644
--- a/engines/bladerunner/chapters.cpp
+++ b/engines/bladerunner/chapters.cpp
@@ -39,8 +39,18 @@ bool Chapters::enterChapter(int chapter) {
if (!_vm->openArchive(Common::String::format("VQA%d.MIX", MIN(id, 3))))
return false;
- if (!_vm->openArchive(Common::String::format("%d.TLK", MIN(id, 3))))
- return false;
+ if (_vm->_cutContent) {
+ for (int chi = 1; chi < 4; ++chi) {
+ if (!_vm->isArchiveOpen(Common::String::format("%d.TLK", chi))
+ && !_vm->openArchive(Common::String::format("%d.TLK", chi))
+ ){
+ return false;
+ }
+ }
+ } else {
+ if (!_vm->openArchive(Common::String::format("%d.TLK", MIN(id, 3))))
+ return false;
+ }
if (!_vm->openArchive(Common::String::format("OUTTAKE%d.MIX", id)))
return false;
@@ -61,7 +71,15 @@ void Chapters::closeResources() {
}
#endif // BLADERUNNER_ORIGINAL_BUGS
_vm->closeArchive(Common::String::format("VQA%d.MIX", MIN(id, 3)));
- _vm->closeArchive(Common::String::format("%d.TLK", MIN(id, 3)));
+ if (_vm->_cutContent) {
+ for (int chi = 1; chi < 4; ++chi) {
+ if (_vm->isArchiveOpen(Common::String::format("%d.TLK", chi))) {
+ _vm->closeArchive(Common::String::format("%d.TLK", chi));
+ }
+ }
+ } else {
+ _vm->closeArchive(Common::String::format("%d.TLK", MIN(id, 3)));
+ }
_vm->closeArchive(Common::String::format("OUTTAKE%d.MIX", id));
_hasOpenResources = false;
}