aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-15 11:35:27 +0200
committerEugene Sandulenko2014-01-15 15:39:29 +0200
commitdb4c5eb2c0e13d7c4081674f3d3487ef5b9205a3 (patch)
treea2bc9df021b739daa945e082e4908fada15b400f
parentf3ca6b2626501195bc6d4ec9babf324afdcb530d (diff)
downloadscummvm-rg350-db4c5eb2c0e13d7c4081674f3d3487ef5b9205a3.tar.gz
scummvm-rg350-db4c5eb2c0e13d7c4081674f3d3487ef5b9205a3.tar.bz2
scummvm-rg350-db4c5eb2c0e13d7c4081674f3d3487ef5b9205a3.zip
FULLPIPE: Implement ModalMap::init()
-rw-r--r--engines/fullpipe/modal.cpp26
-rw-r--r--engines/fullpipe/modal.h4
2 files changed, 26 insertions, 4 deletions
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp
index c790ef29f5..cf4a937f4e 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 f4f075b7df..af52e1b6a9 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;