aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/statics.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 16:49:27 +0200
committerEugene Sandulenko2014-01-05 17:13:32 +0200
commit4babc0f9f01bf132564d1ed8ed115e3d6869d6c4 (patch)
treeb8b3b0d99e489b7e30241aa786e25d51e157ebd5 /engines/fullpipe/statics.cpp
parent4d8a50620d1ee34d3c1d1d3d941c6b94dd07b431 (diff)
downloadscummvm-rg350-4babc0f9f01bf132564d1ed8ed115e3d6869d6c4.tar.gz
scummvm-rg350-4babc0f9f01bf132564d1ed8ed115e3d6869d6c4.tar.bz2
scummvm-rg350-4babc0f9f01bf132564d1ed8ed115e3d6869d6c4.zip
FULLPIPE: Implement StaticANIObject::restartMessageQueue()
Diffstat (limited to 'engines/fullpipe/statics.cpp')
-rw-r--r--engines/fullpipe/statics.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 56698bfe0c..c6edce9621 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -282,7 +282,26 @@ void StaticANIObject::queueMessageQueue(MessageQueue *mq) {
}
void StaticANIObject::restartMessageQueue(MessageQueue *mq) {
- warning("STUB: StaticANIObject::restartMessageQueue()");
+ ExCommand *ex = mq->getExCommandByIndex(0);
+ if (ex) {
+ while (ex->_messageKind != 1 || ex->_parentId != _id) {
+ ex->_parId = 0;
+ ex->_excFlags |= 2;
+ ex->handleMessage();
+
+ mq->deleteExCommandByIndex(0, 0);
+
+ ex = mq->getExCommandByIndex(0);
+
+ if (!ex)
+ return;
+ }
+
+ if (ex) {
+ startAnim(ex->_messageNum, mq->_id, -1);
+ mq->deleteExCommandByIndex(0, 1);
+ }
+ }
}
MessageQueue *StaticANIObject::getMessageQueue() {