aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/message.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp
index b905c4f418..fac6260f90 100644
--- a/engines/sci/engine/message.cpp
+++ b/engines/sci/engine/message.cpp
@@ -148,11 +148,16 @@ int MessageState::loadRes(int module) {
if (_module == module)
return 1;
+ // Unlock old resource
+ if (_module != -1)
+ resmgr->unlockResource(current_res, _module, kResourceTypeMessage);
+
_module = module;
- current_res = resmgr->findResource(kResourceTypeMessage, module, 0);
+ current_res = resmgr->findResource(kResourceTypeMessage, module, 1);
if (current_res == NULL || current_res->data == NULL) {
sciprintf("Message subsystem: Failed to load %d.MSG\n", module);
+ _module = -1;
return 0;
}