summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilepick.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-29 13:25:10 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-29 13:25:10 +0000
commit6ce5131f6be6ace73ddf2a9eb66099131d370cf6 (patch)
tree8500b2f31d0a241e3d23b873f55ca20d9fc86180 /crawl-ref/source/tilepick.cc
parent268bc2a45c52e1940e0efd361bcf8014c8288198 (diff)
downloadcrawl-ref-6ce5131f6be6ace73ddf2a9eb66099131d370cf6.tar.gz
crawl-ref-6ce5131f6be6ace73ddf2a9eb66099131d370cf6.zip
Don't change dungeon flavour for tiles out of sight. (Fixes 2828717.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10461 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tilepick.cc')
-rw-r--r--crawl-ref/source/tilepick.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 916dacc00a..7e5afc1dcc 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -2710,7 +2710,8 @@ int tileidx_zap(int colour)
static inline void _finalize_tile(unsigned int *tile,
unsigned char wall_flv,
unsigned char floor_flv,
- unsigned char special_flv)
+ unsigned char special_flv,
+ coord_def gc)
{
int orig = (*tile) & TILE_FLAG_MASK;
int flag = (*tile) & (~TILE_FLAG_MASK);
@@ -2732,14 +2733,12 @@ static inline void _finalize_tile(unsigned int *tile,
(*tile) = wall_flv;
else if (orig == TILE_DNGN_CLOSED_DOOR || orig == TILE_DNGN_OPEN_DOOR)
(*tile) = orig + std::min((int)special_flv, 3);
- else if (orig >= TILE_DNGN_LAVA && orig < TILE_BLOOD)
- {
- // Tiles may change from turn to turn.
- (*tile) = orig + random2(tile_dngn_count(orig));
- }
else if (orig < TILE_DNGN_MAX)
{
- // Tile flavour is fixed.
+ // Some tiles may change from turn to turn, but only if in view.
+ if (orig >= TILE_DNGN_LAVA && orig < TILE_BLOOD && see_grid(gc))
+ env.tile_flv(gc).special = random2(256);
+
(*tile) = orig + (special_flv % tile_dngn_count(orig));
}
@@ -4489,7 +4488,8 @@ void tile_finish_dngn(unsigned int *tileb, int cx, int cy)
special_flv = env.tile_flv(gc).special;
}
- _finalize_tile(&tileb[count+1], wall_flv, floor_flv, special_flv);
+ _finalize_tile(&tileb[count+1], wall_flv, floor_flv, special_flv,
+ gc);
if (is_excluded(gc))
{