diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2006-08-24 23:35:20 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2006-08-24 23:35:20 +0000 |
commit | 833abc3732c87ed4822fa31065f84d857e9018cc (patch) | |
tree | 9fdb75fc714403bb5a6c52a57bfa1dc8b4b87877 /src | |
parent | 36507be9efb10a031cea5eaf54297089126a9daa (diff) | |
download | mana-833abc3732c87ed4822fa31065f84d857e9018cc.tar.gz mana-833abc3732c87ed4822fa31065f84d857e9018cc.tar.bz2 mana-833abc3732c87ed4822fa31065f84d857e9018cc.tar.xz mana-833abc3732c87ed4822fa31065f84d857e9018cc.zip |
added a config option to set the grade of detail of the overlay system.
Diffstat (limited to 'src')
-rw-r--r-- | src/engine.cpp | 6 | ||||
-rw-r--r-- | src/map.cpp | 14 | ||||
-rw-r--r-- | src/map.h | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index a80351d4..557b5d7e 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -239,7 +239,11 @@ void Engine::draw(Graphics *graphics) mCurrentMap->draw(graphics, (int)view_x, (int)view_y, 0); mCurrentMap->draw(graphics, (int)view_x, (int)view_y, 1); mCurrentMap->draw(graphics, (int)view_x, (int)view_y, 2); - mCurrentMap->drawOverlay(graphics, view_x, view_y); + mCurrentMap->drawOverlay( graphics, + view_x, + view_y, + (int)config.getValue("OverlayDetail", 2) + ); } // Find a path from the player to the mouse, and draw it. This is for debug diff --git a/src/map.cpp b/src/map.cpp index 463a8c8e..027a5440 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -167,12 +167,15 @@ Map::draw(Graphics *graphics, int scrollX, int scrollY, int layer) } void -Map::drawOverlay(Graphics *graphics, float scrollX, float scrollY) +Map::drawOverlay(Graphics *graphics, float scrollX, float scrollY, int detail) { - std::list<AmbientOverlay>::iterator i; - static int lastTick = tick_time; + // detail 0: no overlays + if (detail <= 0) return; + + std::list<AmbientOverlay>::iterator i; + // Avoid freaking out when tick_time overflows if (tick_time < lastTick) { @@ -223,6 +226,9 @@ Map::drawOverlay(Graphics *graphics, float scrollX, float scrollY) mLastScrollX = scrollX; mLastScrollY = scrollY; lastTick++; + + // detail 1: only one overlay, higher: all overlays + if (detail == 1) break; } //draw overlays @@ -237,6 +243,8 @@ Map::drawOverlay(Graphics *graphics, float scrollX, float scrollY) graphics->getHeight() + (int)(*i).scrollY ); }; + // detail 1: only one overlay, higher: all overlays + if (detail == 1) break; }; } @@ -104,7 +104,7 @@ class Map : public Properties /** * Draws the overlay graphic to the given graphics output. */ - void drawOverlay(Graphics *graphics, float scrollX, float scrollY); + void drawOverlay(Graphics *graphics, float scrollX, float scrollY, int detail); /** * Sets the size of the map. This will destroy any existing map data. |