summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r--crawl-ref/source/view.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index ef9a12b817..dff80df984 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -182,6 +182,16 @@ void set_envmap_col( int x, int y, int colour )
env.map[x][y].colour = colour;
}
+void set_envmap_prop( int x, int y, int prop )
+{
+ env.map[x][y].property = prop;
+}
+
+bool is_sanctuary( int x, int y)
+{
+ return (env.map[x][y].property != FPROP_NONE);
+}
+
bool is_envmap_item(int x, int y)
{
return (get_viewobj_flags(env.map[x][y].object) & MC_ITEM);
@@ -350,6 +360,22 @@ static void get_symbol( int x, int y,
{
const int colmask = *colour & COLFLAG_MASK;
+ if (object < NUM_REAL_FEATURES
+ && is_sanctuary(x,y) && object >= DNGN_MINMOVE)
+ {
+ if (env.map[x][y].property == FPROP_SANCTUARY_1)
+ *colour = YELLOW | colmask;
+ else if (env.map[x][y].property == FPROP_SANCTUARY_2)
+ {
+ if (!one_chance_in(3))
+ *colour = WHITE | colmask;
+ else if (one_chance_in(3))
+ *colour = LIGHTCYAN | colmask;
+ else
+ *colour = LIGHTGRAY | colmask;
+ }
+ }
+ else
if (object < NUM_REAL_FEATURES && env.grid_colours[x][y])
{
*colour = env.grid_colours[x][y] | colmask;