radius_iterator instead of the previous setup.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6347 c06c8d41-db1a-0410-9941-cceddc491573
B7DNCNY7SXL5WAW5B3XZP5KIQSBWOJ3N2YW46WOUQKTRBRRZ7YOQC
LS35EVRDCOWZ46ZPCVFEREHEDKGCFUC4GIZVPDLKKQHP3W7RRZPAC
NNMRBCWXPEUN4MCDPHN756C7TZ2DIMRFDCXPENTB5MZ2EFVV6KBAC
WJLK4G4I2WNZQELV7PKYPHBCP3IKYI65WPJLVHRZU7AK6TW2V6CAC
GAUT326KHT3MMZPC7TJUOKGPZ6X624E7Z3IOFZEXYWUCORBCZTOAC
33NP4VXH6MMMH4JFK73G4ENZ2VYFKW2AWXIRITZLVIENKDOSJO2AC
JVWWN7BKTLALZ3VIKCFC45EUJ7CC5MLMH2ZOGOTNRF7FLWJGSMQAC
23KINGGZGEVCKOXZQAKJHHCEF7XOJCAJTQT7VEDSS55YMYQM3Z4AC
CVC5FFFLGVRR3KPYDNB6RF4FNACV3LI3HPSR4MCUNZ4C3FSQYBDAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
XVFTIQ7MSVKQDMQ2HT3IY6FJOZFK4H6OFGTUAID5VGCA5BGVXYPAC
MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC
QWZR7TCGSJAKK755AVEKFIMF5CX5GQLQC46TLI6URKZO2NJ3O26AC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
5FBOE2QNRLKUNOP54CZD6LFAMM7LX6NNLHJRJHRDDIUTQ7J723DQC
QCUMH3C7GXV7ZW444WT5SFAXQOJKJSE2YCQCEHMRYXCWF4QI7UMAC
TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
57E4T664CXRFPVW2BZBYI33UIHFS4PSEZURZYPSYSZK5DRLJJ5CQC
EFWEYIB2R3DPD3JWIPU6LS6SFLPMYN7J7X4GBZR7DJWKHJ3UELSAC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
HL6BR2XEXRPWBU4MQNI52H65OSJB46KOLC4R3KWNQYDEPPXBAH3AC
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC
VNIAJEGE3PYE6F6EAMCQDWMAS52EQTKJUPAFXK7ARCITZ326WTTQC
34RCM6RXIWHZMYXNGFQKLKQIAJ6QISIQ3D5HMK4HZNLVX66BSUBAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC
TR4NPGNO5QNNRJNVMNSUEO5QLT37HCXXDOBKXCB5XWXRQNAJ5SHAC
BDFIS53HAIHOCXQ5BE7WCO2MEOFCUQPFY4JGUWVLWY6JO3IFMEKQC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
BKU2GWFNG6H74G76JX4RP3WVMU4IKTHPSKRMLWZAGA6BXMMZ227AC
547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC
VIFZ6DO6GWJGYMXJZKFZ2JYNPHNE74H3OFAOCPISQG7M7A4LCOHAC
34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC
PUFMMCAH4X5Z25VMUNTWJLRG4NSUGNK45WY4I7NJ2GQXBGBK6SAAC
UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC
YOZHWGKGPWZGHQYNMMBHNGDO2UEVIHPOR6UF3SEZPIYWVMBGWBOAC
7Q4H6B62UZACQOUDHCHPMPBYEBXM5GVQINIHVHM4KLRENSH6VGTAC
MBBPLL4SZUB3JUUYQYLZW7S5OXRCEGJX3WWADOQXGHWQ7BIKCY5QC
VXWHZPSSJAOUIBJVCYGYOHILZFVDDVKUY5JMFFCQSYCXL3NAZIKAC
PZNRGNZPN4YLXL2UDMEUPE33AAZZ6Z2YPK6EQGYZL2PNTRWLCUNQC
JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC
IOMV4CS3PJA6VO3NYB6T45OTXQ5QYP6LT4JOCSLPKP22HWZ3FFKQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
QGIFCQMDBOD3QDWNSZOZFU7AHG2J53OWR5IE3VFCBNVO4SFBF2NQC
QGVAXJZXG2HUCLELWAN6LJJOBSP2BS6TIZMPJTDOAGI2E2SUCOCQC
CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
HQSI2RK5QGNSOR5Y67GZDK4ZWFZ5DSRPASXAV4VHYVB5TUXFZWJQC
4HLF6Q3OBOOHCCJ76L2BXVIYI6EMJ2G7O4XXZPFTLFP6BQGSUZNAC
L6YPJVODN32IYLEZQQZE2ENH3XDAZ63IQIDX3PB4CJEK3A4NUNSAC
52XHD5LKS6UVLXBYUXMPTMVMTXQ6FBUFXJ2TAW6R7CSJY7OXWVJAC
2O3C3MTT2ZBYIFGPJ4MF5R4AXBYUHOEN62KAUWFWF6JWHIIVLRNQC
SWT4O2TCOAQOVFA6WRA7MCU3KMTMJWFEMIHO64N4PWL5FNHDPADAC
KQNIGKATHT4YSPJFPJGIGPD6VNR5B753SE2JN2LCXZZJNHCGY3DQC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
CCMBDS5S4KEI4LJTVBFDDEGWRTWM4GQB2GLEUUT7TMQRXFLZ4HXQC
GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC
UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC
ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC
7VVRO5HMNNOXVRLBLJUCHUJP6MDIRMC2BWCO7MWH4OLQRM3LMTMQC
LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC
A5YOVQMFZRMT6NK7YUQI632TWC3CFATXDNCSB7M33EEYB62SA3XAC
65PB6QZNUDTUKE3I6YJAUXWHJRC3EKC4CPFHE2FRQDQIBN53DUPQC
YF2GZWXNV6NVFFEBEOYS67JQJQK2IUS5BZMGJW3XQPYIJYHQJCEQC
7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
{
if (num_changed == 1)
msg = "One of your ";
else if (num_changed == 2)
msg = "Two of your ";
else if (num_changed >= (potion.quantity * 3) / 4)
msg = "Most of your ";
else
msg = "Some of your ";
}
msg = "Some of your ";
if ( !have_nonsquelched || !_invisible_to_player(mitm[obj]) )
items.push_back( &mitm[obj] );
obj = mitm[obj].link;
if ( !have_nonsquelched || !_invisible_to_player(*si) )
items.push_back( & (*si) );
int o, next;
o = igrd[you.x_pos][you.y_pos];
while (o != NON_ITEM)
{
next = mitm[o].link;
_autoinscribe_item( mitm[o] );
o = next;
}
for ( stack_iterator si(you.pos()); si; ++si )
_autoinscribe_item( *si );
{
item = igrd[x][y];
while (item != NON_ITEM)
{
item_def &i(mitm[item]);
item = i.link;
if ((i.flags & ISFLAG_THROWN) && items_stack(i, mitem))
i.flags |= idflags;
}
}
for ( stack_iterator si(coord_def(x,y)); si; ++si )
if ((si->flags & ISFLAG_THROWN) && items_stack(*si, mitem))
si->flags |= idflags;
for (int x = you.x_pos - LOS_RADIUS; x < you.x_pos + LOS_RADIUS; x++)
for (int y = you.y_pos - LOS_RADIUS; y < you.y_pos + LOS_RADIUS; y++)
{
if (!in_bounds(x, y))
continue;
// is_terrain_known() doesn't work on unmappable levels because
// mapping flags are not set on such levels.
for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri)
if (grd(*ri) == DNGN_EXIT_ABYSS && get_screen_glyph(*ri) != ' ')
nearness = std::min(nearness, grid_distance(you.pos(), *ri));
// HACK: Why doesn't is_terrain_known() work here?
if (grd[x][y] == DNGN_EXIT_ABYSS
&& get_screen_glyph(x, y) != ' ')
{
nearness = MIN(nearness,
grid_distance(you.x_pos, you.y_pos, x, y));
}
}
for (int x = you.x_pos - LOS_RADIUS; x < you.x_pos + LOS_RADIUS; x++)
for (int y = you.y_pos - LOS_RADIUS; y < you.y_pos + LOS_RADIUS; y++)
{
if (!in_bounds(x, y))
continue;
// is_terrain_known() doesn't work on unmappable levels because
// mapping flags are not set on such levels.
if (get_screen_glyph(x, y) != ' ')
{
int i = igrd[x][y];
while (i != NON_ITEM)
{
item_def& item(mitm[i]);
if (is_rune(item) && item.plus == RUNE_ABYSSAL)
{
nearness = MIN(nearness,
grid_distance(you.x_pos, you.y_pos,
x, y));
}
i = item.link;
}
}
}
// See above comment about is_terrain_known().
for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri)
if (get_screen_glyph(ri->x, ri->y) != ' ')
for ( stack_iterator si(*ri); si; ++si )
if (is_rune(*si) && si->plus == RUNE_ABYSSAL)
nearness = std::min(nearness, grid_distance(you.pos(),*ri));