summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilepick.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/tilepick.cc')
-rw-r--r--crawl-ref/source/tilepick.cc36
1 files changed, 26 insertions, 10 deletions
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index ddc0a9013f..725947c13c 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -121,6 +121,8 @@ int tileidx_monster_base(const monsters *mon, bool detected)
bool in_water = feat_is_water(grd(mon->pos()));
int type = mon->type;
+ if (!crawl_state.arena && you.misled())
+ type = mon->get_mislead_type();
// Show only base class for detected monsters.
if (detected)
@@ -1014,6 +1016,12 @@ int tileidx_monster_base(const monsters *mon, bool detected)
case MONS_EROLCHA:
return TILEP_MONS_EROLCHA;
+ // rakshasas ('R')
+ case MONS_MARA:
+ return TILEP_MONS_MARA;
+ case MONS_MARA_FAKE:
+ return TILEP_MONS_MARA_FAKE;
+
// trolls ('T')
case MONS_PURGY:
return TILEP_MONS_PURGY;
@@ -3123,9 +3131,9 @@ int _get_door_offset (int base_tile, bool opened = false,
// Modify wall tile index depending on floor/wall flavour.
static inline void _finalise_tile(unsigned int *tile,
- unsigned char wall_flv,
- unsigned char floor_flv,
- unsigned char special_flv,
+ unsigned int wall_flv,
+ unsigned int floor_flv,
+ unsigned int special_flv,
coord_def gc)
{
int orig = (*tile) & TILE_FLAG_MASK;
@@ -4411,14 +4419,22 @@ void tile_init_flavour(const coord_def &gc)
if (!env.tile_flv(gc).floor)
{
- int floor_rnd = random2(tile_dngn_count(env.tile_default.floor));
- env.tile_flv(gc).floor = env.tile_default.floor + floor_rnd;
+ int floor_base = env.tile_default.floor;
+ int colour = env.grid_colours(gc);
+ if (colour)
+ floor_base = tile_dngn_coloured(floor_base, colour);
+ int floor_rnd = random2(tile_dngn_count(floor_base));
+ env.tile_flv(gc).floor = floor_base + floor_rnd;
}
if (!env.tile_flv(gc).wall)
{
- int wall_rnd = random2(tile_dngn_count(env.tile_default.wall));
- env.tile_flv(gc).wall = env.tile_default.wall + wall_rnd;
+ int wall_base = env.tile_default.wall;
+ int colour = env.grid_colours(gc);
+ if (colour)
+ wall_base = tile_dngn_coloured(wall_base, colour);
+ int wall_rnd = random2(tile_dngn_count(wall_base));
+ env.tile_flv(gc).wall = wall_base + wall_rnd;
}
if (feat_is_door(grd(gc)))
@@ -4884,9 +4900,9 @@ void tile_finish_dngn(unsigned int *tileb, int cx, int cy)
+ coord_def(cx, cy) - crawl_view.vgrdc;
const coord_def gc = view2grid(ep);
- unsigned char wall_flv = 0;
- unsigned char floor_flv = 0;
- unsigned char special_flv = 0;
+ unsigned int wall_flv = 0;
+ unsigned int floor_flv = 0;
+ unsigned int special_flv = 0;
const bool in_bounds = (map_bounds(gc));
if (in_bounds)