diff options
-rw-r--r-- | engines/fullpipe/messages.cpp | 3 | ||||
-rw-r--r-- | engines/fullpipe/statics.cpp | 47 |
2 files changed, 47 insertions, 3 deletions
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp index 22343af8f8..dcb47faaf7 100644 --- a/engines/fullpipe/messages.cpp +++ b/engines/fullpipe/messages.cpp @@ -302,7 +302,8 @@ void MessageQueue::update() { } void MessageQueue::messageQueueCallback1(int par) { - warning("STUB: MessageQueue::messageQueueCallback1()"); + // Autosave + debug(3, "STUB: MessageQueue::messageQueueCallback1()"); } ExCommand *MessageQueue::getExCommandByIndex(uint idx) { diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index 3308b05e49..897db56f89 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -774,8 +774,51 @@ void StaticANIObject::hide() { } } -void StaticANIObject::show1(int x, int y, int movementId, int mqId) { - warning("STUB: StaticANIObject::show1(%d, %d, %d, %d)", x, y, movementId, mqId); +void StaticANIObject::show1(int x, int y, int movId, int mqId) { + debug(0, "StaticANIObject::show1(%d, %d, %d, %d)", x, y, movId, mqId); + + if (_messageQueueId) + return; + + if (movId == -1) { + _flags |= 4u; + if (x != -1 && y != -1) + setOXY(x, y); + + return; + } + + Movement *mov = getMovementById(movId); + if (!mov) + return; + + if (x != -1 && y != -1) + setOXY(x, y); + + _statics = mov->_staticsObj1; + + Common::Point point; + + mov->_staticsObj1->getSomeXY(point); + _statics->_x = x - point.x; + _statics->_y = y - point.y; + + _statics->_countdown = _statics->_initialCountdown; + + _flags |= 4; + _ox = x; + _oy = y; + _movement = 0; + + if (mov->_currMovement) + _flags |= 8; + else if (_flags & 8) + _flags ^= 8; + + if (_flags & 1) + _flags ^= 1; + + _messageQueueId = mqId; } void StaticANIObject::show2(int x, int y, int movementId, int mqId) { |