aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2013-10-07 02:05:10 +0300
committerFilippos Karapetis2013-10-07 02:05:39 +0300
commit3d8a4d23dd9dd077c5bc140411b8c8fb13213984 (patch)
tree144170684ed6adabbe08387fecca996e50912a25 /engines
parent78707b285f7f324d92ed2d1b20f0d7c653ee2590 (diff)
downloadscummvm-rg350-3d8a4d23dd9dd077c5bc140411b8c8fb13213984.tar.gz
scummvm-rg350-3d8a4d23dd9dd077c5bc140411b8c8fb13213984.tar.bz2
scummvm-rg350-3d8a4d23dd9dd077c5bc140411b8c8fb13213984.zip
NEVERHOOD: Correctly disable input when Klaymen drinks the wrong potion
Diffstat (limited to 'engines')
-rw-r--r--engines/neverhood/staticdata.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/neverhood/staticdata.cpp b/engines/neverhood/staticdata.cpp
index 006992641a..ec9c852118 100644
--- a/engines/neverhood/staticdata.cpp
+++ b/engines/neverhood/staticdata.cpp
@@ -53,6 +53,22 @@ void StaticData::load(const char *filename) {
messageItem.messageValue = fd.readUint32LE();
messageList->push_back(messageItem);
}
+
+ // WORKAROUND for a problem in two of the game's message lists:
+ // the message lists used when Klaymen is drinking the wrong potion
+ // have as a last element the animation itself (message 0x4832).
+ // However, when processMessageList() reaches the last element in a
+ // message list, it allows player input, which means that the player
+ // can erroneously skip these potion drinking animations. We insert
+ // another message at the end of these lists to prevent player input
+ // till the animations are finished
+ if (id == 0x004AF0C8 || id == 0x004B5BD0) { // wrong potion message lists
+ MessageItem messageItem;
+ messageItem.messageNum = 0x4004; // set Klaymen's state to idle
+ messageItem.messageValue = 0;
+ messageList->push_back(messageItem);
+ }
+
_messageLists[id] = messageList;
}