diff options
author | Eugene Sandulenko | 2014-04-25 22:30:10 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2014-04-25 22:30:10 +0300 |
commit | 58648b08948129aafa9c678a18834052254f5b11 (patch) | |
tree | 6315a838992299191e8ef13cc0d51adb0191961f /engines/fullpipe/statics.cpp | |
parent | 8230577153fb15ee588ca3b7e0d43b1e13e49eaa (diff) | |
download | scummvm-rg350-58648b08948129aafa9c678a18834052254f5b11.tar.gz scummvm-rg350-58648b08948129aafa9c678a18834052254f5b11.tar.bz2 scummvm-rg350-58648b08948129aafa9c678a18834052254f5b11.zip |
FULLPIPE: Implement StaticANIObject::changeStatics1()
Diffstat (limited to 'engines/fullpipe/statics.cpp')
-rw-r--r-- | engines/fullpipe/statics.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index a3a160b5b2..4d813d3b0b 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -277,8 +277,11 @@ void StaticANIObject::deleteFromGlobalMessageQueue() { } } -void StaticANIObject::queueMessageQueue(MessageQueue *mq) { - if (isIdle() && !(_flags & 0x80)) { +bool StaticANIObject::queueMessageQueue(MessageQueue *mq) { + if (_flags & 0x80) + return false; + + if (isIdle()) { deleteFromGlobalMessageQueue(); _messageQueueId = 0; _messageNum = 0; @@ -296,6 +299,8 @@ void StaticANIObject::queueMessageQueue(MessageQueue *mq) { _messageQueueId = 0; } } + + return true; } void StaticANIObject::restartMessageQueue(MessageQueue *mq) { @@ -1019,9 +1024,26 @@ void StaticANIObject::adjustSomeXY() { } MessageQueue *StaticANIObject::changeStatics1(int msgNum) { - warning("STUB: StaticANIObject::changeStatics1(%d)", msgNum); + g_fp->_mgm->addItem(_id); - return 0; + MessageQueue *mq = g_fp->_mgm->genMQ(this, msgNum, 0, 0, 0); + + if (!mq) + return 0; + + if (mq->getCount() <= 0) { + g_fp->_globalMessageQueueList->addMessageQueue(mq); + + if (_flags & 1) + _messageQueueId = mq->_id; + } else { + if (!queueMessageQueue(mq)) + return 0; + + g_fp->_globalMessageQueueList->addMessageQueue(mq); + } + + return mq; } void StaticANIObject::changeStatics2(int objId) { |