diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2008-12-08 14:13:32 +0100 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2008-12-08 09:46:07 -0700 |
commit | 332f02da85370a6a2cd5ddc53e252fe2ae3eb53b (patch) | |
tree | b2aa55e3b4bc299d697a589a56b01bddb62c77d4 | |
parent | 224fc155978ebbce35ee42560edab628121d7d2e (diff) | |
download | mana-332f02da85370a6a2cd5ddc53e252fe2ae3eb53b.tar.gz mana-332f02da85370a6a2cd5ddc53e252fe2ae3eb53b.tar.bz2 mana-332f02da85370a6a2cd5ddc53e252fe2ae3eb53b.tar.xz mana-332f02da85370a6a2cd5ddc53e252fe2ae3eb53b.zip |
Clip the minimap image to within its window
The image wasn't clipped so it would draw beneath the map name and on
top of the window border.
-rw-r--r-- | src/gui/minimap.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index bb51d64a..578e2ce6 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -74,28 +74,30 @@ void Minimap::draw(gcn::Graphics *graphics) const gcn::Rectangle a = getChildrenArea(); - int mapOriginX = a.x; - int mapOriginY = a.y; + graphics->pushClipArea(a); + + int mapOriginX = 0; + int mapOriginY = 0; if (mMapImage) { if (mMapImage->getWidth() > a.width || mMapImage->getHeight() > a.height) { - mapOriginX += ((a.width) / 2) - (player_node->mX * mProportion); - mapOriginY += ((a.height) / 2) - (player_node->mY * mProportion); + mapOriginX = ((a.width) / 2) - (player_node->mX * mProportion); + mapOriginY = ((a.height) / 2) - (player_node->mY * mProportion); - const int minOriginX = a.x + a.width - mMapImage->getWidth(); - const int minOriginY = a.y + a.height - mMapImage->getHeight(); + const int minOriginX = a.width - mMapImage->getWidth(); + const int minOriginY = a.height - mMapImage->getHeight(); if (mapOriginX < minOriginX) mapOriginX = minOriginX; if (mapOriginY < minOriginY) mapOriginY = minOriginY; - if (mapOriginX > a.x) - mapOriginX = a.x; - if (mapOriginY > a.y) - mapOriginY = a.y; + if (mapOriginX > 0) + mapOriginX = 0; + if (mapOriginY > 0) + mapOriginY = 0; } static_cast<Graphics*>(graphics)-> @@ -140,4 +142,6 @@ void Minimap::draw(gcn::Graphics *graphics) (int) (being->mY * mProportion) + mapOriginY - offset, dotSize, dotSize)); } + + graphics->popClipArea(); } |