This was done by adding env_show_grid as a property to all exclusions. losight() is currently called if an exclusion is set, when changing levels/restarting the game and at a vitrification event (in all of the latter cases for all exclusions on the level).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7121 c06c8d41-db1a-0410-9941-cceddc491573
45OFFQNRRS46LXSPQ3SPNP2OXMBECE22A6NWQPITDEOXLRKYSQKAC
5XNQ3SSNBFXFNWA6DPM74W6FH65NX665P3DMH6YCWVFOPZTJSYCQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
EJRKMYKMOYRQXTWGFTMADEWIGWLMWHMUDA73AUT7HO5OBK2GUQEAC
XP3TQISCLEST3ZNTF6OZ6FYMHIIPMVTNVBIIG47LA5PS7J234SQAC
HIPFIMUOA7DFOFV3DQ55YZJVGNU2GNDYFUCB4MRPUR5DTYDO5YMAC
25BU4E7ND5KWNWCNIEOQPI5ITHMRNVQUQNJURBFSEP5FVASYDVQQC
75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TFHMBVXTRA2LXBHE7L7OEWK37JQN5DWZ3HOACMN7PRWVJNCS4TYQC
}
void travel_exclude::set_exclude_show()
{
losight(show, grd, pos);
}
void init_exclusion_los()
{
for (unsigned int i = 0; i < curr_excludes.size(); i++)
curr_excludes[i].set_exclude_show();
}
void update_exclusion_los(coord_def &p)
{
for (unsigned int i = 0; i < curr_excludes.size(); i++)
if ((curr_excludes[i].pos - p).abs() <= LOS_RADIUS)
curr_excludes[i].set_exclude_show();