diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp index c790ef29f53..cf4a937f4e6 100644 --- a/engines/fullpipe/modal.cpp +++ b/engines/fullpipe/modal.cpp @@ -298,9 +298,31 @@ ModalMap::~ModalMap() { } bool ModalMap::init(int counterdiff) { - warning("STUB: ModalMap::init()"); + g_fp->setCursor(PIC_CSR_ITN); - return false; + if (_flag) { + _rect2.left = _mouseX + _field_38 - g_fp->_mouseScreenPos.x; + _rect2.top = _mouseY + _field_3C - g_fp->_mouseScreenPos.y;; + _rect2.right = _rect2.left + 800; + _rect2.bottom = _rect2.top + 600; + + g_fp->_sceneRect =_rect2; + + _mapScene->updateScrolling2(); + + _rect2 = g_fp->_sceneRect; + } + + _field_40--; + + if (_field_40 <= 0) { + _field_40 = 12; + + if (_pic) + _pic->_flags ^= 4; + } + + return _isRunning; } void ModalMap::update() { diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h index f4f075b7df2..af52e1b6a97 100644 --- a/engines/fullpipe/modal.h +++ b/engines/fullpipe/modal.h @@ -25,7 +25,7 @@ namespace Fullpipe { -class Picture; +class PictureObject; class BaseModalObject { public: @@ -79,7 +79,7 @@ public: class ModalMap : public BaseModalObject { Scene *_mapScene; - Picture *_pic; + PictureObject *_pic; bool _isRunning; Common::Rect _rect1; int _x;