summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-07-17 17:09:00 +0300
committerAndrei Karas <akaras@inbox.ru>2011-07-17 17:09:00 +0300
commitb83bca17d42761c41f097ea315d01bb89105f618 (patch)
treec1b16a828c202f7b86e9375ecd75e43ed454f253
parente183a929a3653446a6545ca764e47c47f7b00e50 (diff)
downloadmv-b83bca17d42761c41f097ea315d01bb89105f618.tar.gz
mv-b83bca17d42761c41f097ea315d01bb89105f618.tar.bz2
mv-b83bca17d42761c41f097ea315d01bb89105f618.tar.xz
mv-b83bca17d42761c41f097ea315d01bb89105f618.zip
Fix map redrawing if changing map view mode.
-rw-r--r--src/game.cpp8
-rw-r--r--src/map.cpp8
-rw-r--r--src/map.h3
3 files changed, 16 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 623d2a069..494d35692 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1040,8 +1040,12 @@ void Game::handleInput()
// Find path to mouse (debug purpose)
if (!player_node->getDisableGameModifiers())
{
- viewport->toggleDebugPath();
- miniStatusWindow->updateStatus();
+ if (viewport)
+ viewport->toggleDebugPath();
+ if (miniStatusWindow)
+ miniStatusWindow->updateStatus();
+ if (mCurrentMap)
+ mCurrentMap->redrawMap();
used = true;
}
break;
diff --git a/src/map.cpp b/src/map.cpp
index fa9d014df..c5a7a8816 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -727,8 +727,9 @@ void Map::draw(Graphics *graphics, int scrollX, int scrollY)
bool overFringe = false;
int updateFlag = 0;
- if (mLastX != startX || mLastY != startY)
+ if (mRedrawMap || mLastX != startX || mLastY != startY)
{
+ mRedrawMap = false;
// fill vectors
mLastX = startX;
mLastY = startY;
@@ -1913,6 +1914,11 @@ void Map::reduce()
logger->log("tiles reduced: %d", cnt);
}
+void Map::redrawMap()
+{
+ mRedrawMap = true;
+}
+
SpecialLayer::SpecialLayer(int width, int height, bool drawSprites):
mWidth(width), mHeight(height)
{
diff --git a/src/map.h b/src/map.h
index 6832ed008..749c77ce5 100644
--- a/src/map.h
+++ b/src/map.h
@@ -507,6 +507,8 @@ class Map : public Properties, public ConfigListener
void reduce();
+ void redrawMap();
+
protected:
friend class Actor;
friend class Minimap;
@@ -607,6 +609,7 @@ class Map : public Properties, public ConfigListener
int mLastY;
int mLastScrollX;
int mLastScrollY;
+ bool mRedrawMap;
};