summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/map_knowledge.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-12-01 15:23:42 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-12-01 15:26:52 +0100
commite12f92d931dcef88c6890f9aef8629534bf859c8 (patch)
tree7c5e94c192640ddfa5dd4463439f2640c23fb7c0 /crawl-ref/source/map_knowledge.cc
parent83436251ef251effc98348bcefd6e0590a4fdf04 (diff)
downloadcrawl-ref-e12f92d931dcef88c6890f9aef8629534bf859c8.tar.gz
crawl-ref-e12f92d931dcef88c6890f9aef8629534bf859c8.zip
Unify colour handling in env.show and env.map_knowledge.
Colour is now always precomputed, and only possibly overridden by travel information on display. It's quite unclear that storing the colour in env.show and env.map_knowledge is the right thing to do, but at least it's handled consistently now.
Diffstat (limited to 'crawl-ref/source/map_knowledge.cc')
-rw-r--r--crawl-ref/source/map_knowledge.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/crawl-ref/source/map_knowledge.cc b/crawl-ref/source/map_knowledge.cc
index fd19abfdc7..6ecac9706b 100644
--- a/crawl-ref/source/map_knowledge.cc
+++ b/crawl-ref/source/map_knowledge.cc
@@ -9,6 +9,7 @@
#include "feature.h"
#include "mon-util.h"
#include "notes.h"
+#include "options.h"
#include "overmap.h"
#include "showsymb.h"
#include "stuff.h"
@@ -70,7 +71,10 @@ show_type get_map_knowledge_obj(int x, int y)
void set_map_knowledge_detected_item(int x, int y, bool detected)
{
if (detected)
+ {
env.map_knowledge[x][y].flags |= MAP_DETECTED_ITEM;
+ env.map_knowledge[x][y].object.colour = Options.detected_item_colour;
+ }
else
env.map_knowledge[x][y].flags &= ~MAP_DETECTED_ITEM;
}
@@ -83,7 +87,10 @@ bool is_map_knowledge_detected_item(int x, int y)
void set_map_knowledge_detected_mons(int x, int y, bool detected)
{
if (detected)
+ {
env.map_knowledge[x][y].flags |= MAP_DETECTED_MONSTER;
+ env.map_knowledge[x][y].object.colour = Options.detected_monster_colour;
+ }
else
env.map_knowledge[x][y].flags &= ~MAP_DETECTED_MONSTER;
}
@@ -151,8 +158,10 @@ void set_terrain_changed( int x, int y )
void set_terrain_mapped( int x, int y )
{
- env.map_knowledge[x][y].flags &= (~MAP_CHANGED_FLAG);
- env.map_knowledge[x][y].flags |= MAP_MAGIC_MAPPED_FLAG;
+ map_cell* cell = &env.map_knowledge[x][y];
+ cell->flags &= (~MAP_CHANGED_FLAG);
+ cell->flags |= MAP_MAGIC_MAPPED_FLAG;
+ cell->object.colour = get_feature_def(cell->object).map_colour;
#ifdef USE_TILE
tiles.update_minimap(x, y);
#endif