aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/messages.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index 96ed389527..c24dee47c8 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -414,7 +414,25 @@ bool MessageQueue::checkGlobalExCommandList2() {
}
void MessageQueue::finish() {
- warning("STUB: MessageQueue::finish()");
+ if (!_parId)
+ return;
+
+ MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(_parId);
+
+ _parId = 0;
+
+ if (!mq)
+ return;
+
+ if (!_flag1) {
+ mq->update();
+ return;
+ }
+
+ mq->_counter--;
+
+ if (!mq->_counter && !mq->_exCommands.size())
+ mq->update();
}
void MessageQueue::replaceKeyCode(int key1, int key2) {