diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-12-01 15:23:42 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-12-01 15:26:52 +0100 |
commit | e12f92d931dcef88c6890f9aef8629534bf859c8 (patch) | |
tree | 7c5e94c192640ddfa5dd4463439f2640c23fb7c0 /crawl-ref/source/map_knowledge.cc | |
parent | 83436251ef251effc98348bcefd6e0590a4fdf04 (diff) | |
download | crawl-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.cc | 13 |
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 |