diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2007-02-10 18:28:17 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2007-02-10 18:28:17 +0000 |
commit | d9af4a90a1b242645d38ff1427793ba86c1805b7 (patch) | |
tree | 9ed0ecc8fa53cb357f2e914145ef3bfea4458bc9 /src/gui/viewport.cpp | |
parent | 41cee6568c7c005ed54d665b82cc5f251b23ab59 (diff) | |
download | mana-d9af4a90a1b242645d38ff1427793ba86c1805b7.tar.gz mana-d9af4a90a1b242645d38ff1427793ba86c1805b7.tar.bz2 mana-d9af4a90a1b242645d38ff1427793ba86c1805b7.tar.xz mana-d9af4a90a1b242645d38ff1427793ba86c1805b7.zip |
Fixed the bug in the scrolling limitation that made it possible to scroll outside of the map in the south and east.
Diffstat (limited to 'src/gui/viewport.cpp')
-rw-r--r-- | src/gui/viewport.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 90f3536c..098b913a 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -134,18 +134,22 @@ Viewport::draw(gcn::Graphics *gcnGraphics) mViewY = player_y; }; - if (mMap) { + // Don't move camera so that the end of the map is on screen + int viewXmax = ((mMap->getWidth() - 1) * 32) - graphics->getWidth(); + int viewYmax = ((mMap->getHeight() - 1) * 32) - graphics->getHeight(); + if (mMap) + { if (mViewX < 0) { mViewX = 0; } if (mViewY < 0) { mViewY = 0; } - if (mViewX > (mMap->getWidth() - midTileX) * 32) { - mViewX = (mMap->getWidth() - midTileX) * 32; + if (mViewX > viewXmax) { + mViewX = viewXmax; } - if (mViewY > (mMap->getHeight() - midTileY) * 32) { - mViewY = (mMap->getHeight() - midTileY) * 32; + if (mViewY > viewYmax) { + mViewY = viewYmax; } } |