diff options
author | Eugene Sandulenko | 2014-01-03 22:54:51 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-03 22:54:51 +0200 |
commit | b87d052d01adde493bc1af3c1b68c07a1623582b (patch) | |
tree | bd4fe81ce04a2a738171a40f2b64b9434229a6d3 | |
parent | 25aa1b72d95505514ea3e6b6d1c342972891a4a0 (diff) | |
download | scummvm-rg350-b87d052d01adde493bc1af3c1b68c07a1623582b.tar.gz scummvm-rg350-b87d052d01adde493bc1af3c1b68c07a1623582b.tar.bz2 scummvm-rg350-b87d052d01adde493bc1af3c1b68c07a1623582b.zip |
FULLPIPE: Implement MovGraphReact::setCenter()
-rw-r--r-- | engines/fullpipe/motion.cpp | 22 | ||||
-rw-r--r-- | engines/fullpipe/motion.h | 10 |
2 files changed, 23 insertions, 9 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index f82fe53a80..069679430f 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -2027,8 +2027,11 @@ void ReactParallel::createRegion() { // GdiObject::Attach(_rgn, CreatePolygonRgn(_points, 4, 2); } -void ReactParallel::setCenter() { - warning("STUB: ReactParallel::setCenter()"); +void ReactParallel::setCenter(int x1, int y1, int x2, int y2) { + _x1 = x1; + _y1 = y1; + _x2 = x2; + _y2 = y2; } ReactPolygonal::ReactPolygonal() { @@ -2067,8 +2070,19 @@ void ReactPolygonal::createRegion() { } } -void ReactPolygonal::setCenter() { - warning("STUB: ReactPolygonal::setCenter()"); +void ReactPolygonal::setCenter(int x1, int y1, int x2, int y2) { + int cX = (x2 + x1) / 2; + int cY = (y2 + y1) / 2; + + if (_points) { + for (int i = 0; i < _pointCount; i++) { + _points[i]->x += cX - _centerX; + _points[i]->y += cY - _centerY; + } + } + + _centerX = cX; + _centerY = cY; } bool MovGraphReact::pointInRegion(int x, int y) { diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h index e482c0c476..1c8f17e13c 100644 --- a/engines/fullpipe/motion.h +++ b/engines/fullpipe/motion.h @@ -74,7 +74,7 @@ public: MovGraphReact() : _pointCount(0), _points(0) {} ~MovGraphReact() { free(_points); } - virtual void setCenter() {} + virtual void setCenter(int x1, int y1, int x2, int y2) {} virtual void createRegion() {} virtual bool pointInRegion(int x, int y); }; @@ -243,11 +243,11 @@ class ReactParallel : public MovGraphReact { int _dx; int _dy; - public: +public: ReactParallel(); virtual bool load(MfcArchive &file); - virtual void setCenter(); + virtual void setCenter(int x1, int y1, int x2, int y2); virtual void createRegion(); }; @@ -256,11 +256,11 @@ class ReactPolygonal : public MovGraphReact { int _centerX; int _centerY; - public: +public: ReactPolygonal(); virtual bool load(MfcArchive &file); - virtual void setCenter(); + virtual void setCenter(int x1, int y1, int x2, int y2); virtual void createRegion(); }; |