git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6747 c06c8d41-db1a-0410-9941-cceddc491573
U6UUTZZVZHQVN3HWPN2CLRNE4VXESLNHS75W4CYUZIAKVHCYRCDQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
2TECJQA3PK7OYSSTOWZSQFWMTATJRHHA6JV3IGRHFGS3R7U27RZAC
5X5L5ORWCIVFQ75IZC3FAIJGVB3H65TTJPYE66XC52A5X3477GHQC
R2DQBWKIW7YUJB5SOQ7J274JIYRVX4H3ISFRPAL5RG2RVVP4G2KAC
45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC
WDEFQ6YABDQIGJXW5KT3OGR3EO6FZHXZELIRVIXQ4XDYTVOV5V6AC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC
YXWZYOBUFR4EHBSKXCFGZNK7NIM7IPE2GMZYIXEJTUPDDC3BIEDAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
3DRML4TAWIPPWCXCCXTPWV33SZCRSC2I6DWGAEUNJF7ZOIIWA35QC
RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC
RSIUBEQUGNU4LO6KH4PKVROWQS33DAKSY4XFVGN7T3CEKSXABCSAC
X4OCLD5YEXCYVQNMOQORLIO72AKUEMT3BT6FB3TW2HARKN5X7MEQC
OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
542UIZKI65UDRNEMGFFDBWYD5XC7AYLTZ3JZQRR2GHYJALD3YY6QC
Y4NA3JSN63RLATF4NNBPSR5CWF5Z7UEMWCGVX4B6NOAR47CGM4GQC
D7SLVLRNCYCBDYYRANHDG3JYEF25CFCSUY5FMF5KXVD5D4UZSDDAC
// Shouldn't happen for escape hatches.
if (grid_is_escape_hatch(feat))
continue;
stair_type = get_feature_dchar(feat);
// Is it a branch stair?
for (int i = 0; i < NUM_BRANCHES; ++i)
if (branches[i].entry_stairs == feat)
{
branch = branches[i].id;
break;
}
else if (branches[i].exit_stairs == feat)
if (branches[i].entry_stairs == feat)
{
branch = branches[i].id;
break;
}
else if (branches[i].exit_stairs == feat)
{
branch = branches[i].parent_branch;
break;
}
branch = branches[i].parent_branch;
break;
for (int y = crawl_view.vlos1.y; y <= crawl_view.vlos2.y; ++y)
for (int x = crawl_view.vlos1.x; x <= crawl_view.vlos2.x; ++x)
{
if (!in_vlos(x, y))
continue;
for (rectangle_iterator ri(crawl_view.vlos1, crawl_view.vlos2); ri; ++ri )
{
if (!in_vlos(*ri))
continue;
// At tutorial beginning disallow items in line of sight.
if (Options.tutorial_events[TUT_SEEN_FIRST_OBJECT])
{
int item = igrd[gx][gy];
if (item != NON_ITEM && is_valid_item(mitm[item]) )
destroy_item(item);
}
if (imon == NON_MONSTER || imon == MHITYOU)
continue;
// At tutorial beginning disallow items in line of sight.
if (Options.tutorial_events[TUT_SEEN_FIRST_OBJECT])
{
int item = igrd(g);
if (item != NON_ITEM && is_valid_item(mitm[item]) )
destroy_item(item);
}
// Mark as summoned so its items will also be discarded.
mon->mark_summoned(1, true);
monster_die(mon, KILL_DISMISSED, 0);
}
// Mark as summoned so its items will also be discarded.
mon->mark_summoned(1, true);
monster_die(mon, KILL_DISMISSED, 0);
}
static int compass_x[8] = { -1, 0, 1, 1, 1, 0, -1, -1 };
static int compass_y[8] = { -1, -1, -1, 0, 1, 1, 1, 0 };
static const coord_def mon_compass[8] = {
coord_def(-1,-1), coord_def(0,-1), coord_def(1,-1), coord_def(1,0),
coord_def( 1, 1), coord_def(0, 1), coord_def(-1,1), coord_def(-1,0)
};