There is still a bug in that 'x'ing over a former trap will describe the feature as 'floor' rather than 'trap'. This is because _describe_feature() looks at the actual grid, not the envmap. However, there is currently no perfect way to prevent this: map_cell only stores an appearance, not the actual feature layer. So if a monster was on a trap when you last saw it, and then the trap gets disarmed, there is no way to know that there was once a trap there. The correct fix is to have map_cell remember the object, feature and monster layers separately, but since this will break savefiles and require some work, I'm not fixing it yet.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9020 c06c8d41-db1a-0410-9941-cceddc491573
IT424EEO2IZGLBCJG5VYIKTTBXV5YXQYBE3IZ3JDJHOYFUPB6LAAC
const dungeon_feature_type grid_value = grd(p);
dungeon_feature_type grid_value = grd(p);
if (!see_grid(p))
{
const int remembered = get_envmap_obj(p);
if (remembered < NUM_REAL_FEATURES)
grid_value = static_cast<dungeon_feature_type>(remembered);
}