From 3bf9b714ff65b5ddfb27a318dae2d23baf34317a Mon Sep 17 00:00:00 2001 From: haranp Date: Thu, 8 Nov 2007 16:55:18 +0000 Subject: Fix for 1826891: x-examination reveals secret doors masquerading as non-rock walls. They will now masquerade (to 'x') as walls of whatever type is nearby. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2815 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/direct.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'crawl-ref/source/direct.cc') diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc index ba35a626ce..994e5b463d 100644 --- a/crawl-ref/source/direct.cc +++ b/crawl-ref/source/direct.cc @@ -1748,7 +1748,20 @@ std::string feature_description(int mx, int my, description_level_type dtype, return (feature_do_grammar( dtype, add_stop, false, marker_feature_description(coord_def(mx, my)))); - + case DNGN_SECRET_DOOR: + { + // If we have neighbouring walls, try to look like them. + // Arguably we should go by our own colour, but well... + for ( int dx = -1; dx <= 1; ++dx ) + for ( int dy = -1; dy <= 1; ++dy ) + { + const dungeon_feature_type neighbour = grd[mx+dx][my+dy]; + if ( grid_is_wall(neighbour) ) + return feature_description(neighbour, NUM_TRAPS, + dtype, add_stop); + } + return (feature_description(grid, NUM_TRAPS, dtype, add_stop)); + } default: return (feature_description(grid, NUM_TRAPS, dtype, add_stop)); } -- cgit v1.2.3-54-g00ecf