the idea on its head.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10209 c06c8d41-db1a-0410-9941-cceddc491573
A4FBEPVX7W4H4R7AMJEGONTJC5N7SC2E3S3CV7RZYS2SAONUQBHQC N73PR6EHLADBQDS2XACPYB27U6A3JV3UVI7JAFFOJKCMYCH7DDEQC ZX2BGBBNWBF5NNDT2RXGNQYXC6RV5QIC4N4IFHK6CT6BM7NRCDLAC KF5BNN42PTO35TBQD5CNMDXFAXHYCSQTBOOXZV7I3ML5VASUUT5AC HBPUTW5HDHUEPB62DMJ6GGP2D2GLZB53O5VRTWDLQ4Z53NWB3MKQC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC YKUVKAIE3IVK377PRJKAXPM45POXYW3ATAKNI3XWKXVFBDRU5LSQC PHZTAI6CW7JHKFW77MKDK75UCNWBXFK7VDD3D5ORVXUFWV3C3EVQC QXJZCH66QBMFHOBQAFP2C5XNTMCUYGLUSOKXQUS5O7TODSVQ6GHAC 33QMQXTWFPR4LUBHEWTFGR74L5QJJDQTT5JZRBFTPDQBPXIHQIUQC 4SUUJM2DQUEWHDG3UKJUDZABLHFVF2CFUX5GVAWKT7BBBGR2ISTQC JUCA26S3JSQFMZTBL7566ITHCOXXEFTFT7KDOWSUXA5JLZK5QJWAC YRZBGNKW7PP3UJEKNO22FMMC7W5V52L4LZAWE3C3UKTO2NNSXA4QC 7IERR3KESLBDHEMGSFRYGA66PZBPGKPUGMFDCSFR3WDX7RXD5OTAC TZLAHS2FQGDWDAO6OQFZIZALQCCRTCRBJZBNZFNQ4G7D5UYAIFQAC 542WW2UJM6XF22442ZD5NFMTS6HTDM74JKJ7GQHBLQ3D6C6T4C3AC U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC QON6K747RDVN55UTIJWNGIIGSDS7IHKB24JMHWSIMAQ572D7C3NAC UX6M56N7WTF6B3OTKUFTONBUFZXNEL4SKQT22Q7IVFOBM25LKQ3AC 22ZPAVDZLX4R66AODFVA56HH4T3XU62UUON6LYZG3GGTXCTD3YVAC WRDCASRSGOBY5RLVORAMRBSYKEWLLO7VZ4V5NQG2TKBWYNU4OZKAC QXMDZLLFI565U6MG5VNDZGMHCUU7EE265YRQGTFMCH73ECG2I62AC BCL6BB7HZXAJCAGKK6MZ7AGWNLFP46FIXRVGJ6LR3QLDE6XFQGVAC HBXWZNXAJ7LUX7FYUIHQYBTRMWVJC6CAQQL3NNZHK5ETLIFEZJ7QC ODEILHD5WHXOY5KEBTSUVTSVBUD2GCA5TXWWKIXO7XJY5MFHOKMQC TZTHE3TEKUDMNLAXWKHO66SYIVCVCIOJLKF3MCHSNJTXCKTWK3LAC IIUK3DT26O7F4IBKB6QFTPLO4EVKBH55SAEXLNQEQRLDGJ37NDGAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC PRQVFUGUGPKI2Q74ODEI3CYUJQB63CKC6ONQTE3BTOHKXG4JCNLQC CLCS24K2K33W7OVPPNBQ476FYMY34IBODFEKSVB4UP3SOUHPT4AAC IBOWTB7TZLGE454RTNFG3L3VCSBSU6A43AZ3TSAH545QFV7OEACAC V4F3SDV2H4HBH6G6W5M3REN3BDSSE4IDF2RNM7PJMKRW3IDJ7PNAC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC ILOED4VB4I6VPAUTR75ZWX6MXDYXB5DO2EDK2UH67O3HNKWV23RQC ZCRK2DJ5VKECRQXZTWT4NUDL2VT5ZHUK7NT6NQPLRJ56TDX5PJSAC 4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC S2LIBA2CLTZ6ZU66AUZ2CCNLCDOBSGWQGTZ6HFAFP2XSWAALGLSQC TILE_FLAG_TRAV_EXCL = 0x00080000,TILE_FLAG_EXCL_CTR = 0x00100000,TILE_FLAG_SANCTUARY = 0x00200000,TILE_FLAG_TUT_CURSOR = 0x00400000,TILE_FLAG_RAY_OOR = 0x00800000,TILE_FLAG_OOR = 0x01000000,
TILE_FLAG_WAS_SECRET = 0x00080000,TILE_FLAG_TRAV_EXCL = 0x00100000,TILE_FLAG_EXCL_CTR = 0x00200000,TILE_FLAG_SANCTUARY = 0x00400000,TILE_FLAG_TUT_CURSOR = 0x00800000,TILE_FLAG_RAY_OOR = 0x01000000,TILE_FLAG_OOR = 0x02000000,
tile_flavour &flv = env.tile_flv[x + m_cx_to_gx][y + m_cy_to_gy];int offset = flv.special % tile_dngn_count(TILE_BLOOD);m_buf_dngn.add(TILE_BLOOD + offset, x, y);}
if (bg & TILE_FLAG_BLOOD){tile_flavour &flv = env.tile_flv[x + m_cx_to_gx][y + m_cy_to_gy];int offset = flv.special % tile_dngn_count(TILE_BLOOD);m_buf_dngn.add(TILE_BLOOD + offset, x, y);}
if (bg & TILE_FLAG_SANCTUARY && !(bg & TILE_FLAG_UNSEEN))m_buf_dngn.add(TILE_SANCTUARY, x, y);// Apply the travel exclusion under the foreground if the cell is// visible. It will be applied later if the cell is unseen.if (bg & TILE_FLAG_EXCL_CTR && !(bg & TILE_FLAG_UNSEEN))m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_CENTRE_BG, x, y);else if (bg & TILE_FLAG_TRAV_EXCL && !(bg & TILE_FLAG_UNSEEN))m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_BG, x, y);
if (!(bg & TILE_FLAG_UNSEEN)){if (bg & TILE_FLAG_SANCTUARY)m_buf_dngn.add(TILE_SANCTUARY, x, y);
if (bg & TILE_FLAG_RAY)m_buf_dngn.add(TILE_RAY, x, y);else if (bg & TILE_FLAG_RAY_OOR)m_buf_dngn.add(TILE_RAY_OUT_OF_RANGE, x, y);
// Apply the travel exclusion under the foreground if the cell is// visible. It will be applied later if the cell is unseen.if (bg & TILE_FLAG_EXCL_CTR)m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_CENTRE_BG, x, y);else if (bg & TILE_FLAG_TRAV_EXCL)m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_BG, x, y);}if (bg & TILE_FLAG_RAY)m_buf_dngn.add(TILE_RAY, x, y);else if (bg & TILE_FLAG_RAY_OOR)m_buf_dngn.add(TILE_RAY_OUT_OF_RANGE, x, y);}
return (unsigned int) grid_secret_door_appearance(coord_def(gx, gy));
case DNGN_DETECTED_SECRET_DOOR:{const dungeon_feature_type appear= grid_secret_door_appearance(coord_def(gx, gy));ASSERT(!grid_is_secret_door(appear));return tileidx_feature((int) appear, gx, gy);}
static void _erase_between(std::string& s,const std::string &left,const std::string &right){std::string::size_type left_pos;std::string::size_type right_pos;while ((left_pos = s.find(left)) != std::string::npos&& (right_pos = s.find(right, left_pos + left.size())) != std::string::npos)s.erase(s.begin() + left_pos, s.begin() + right_pos + right.size());}
case TRAP_ZOT:return ("Zot trap");case TRAP_NEEDLE:return ("needle trap");
case TRAP_ALARM:return ("alarm trap");