current range, which if set to a value > 0 will cause viewwindow to colour all grids not in los or not in range to be coloured grey. Has the side effect to also work for Tiles. :)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9735 c06c8d41-db1a-0410-9941-cceddc491573
WUEXSOUI2PT7NVNAE3B36FFNDTQJZM7J7WNYVYG3ZYZQ3AUF4A6QC
22REG5ZRWVFFAA37IUCQWNR3BZVTPUCAN2EFFTAVR4O4DPLQOHNQC
YHDGYR3VS3BCPPD4NLT53AN23R2KYPXBAN5JZJK55673VQ7MP7DAC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
YHC3WZ5ATCJCQQ4CMWJA2IDPSY6FQZP7HJL6JI5WXETTY54BJU2AC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
EJKHYV2Z6UPRVYUAL4WRW33GBNHYBFPMPA57HMBX2LQKXHIUO5VQC
4QKMTZSWYJYJ46HW2TXO6KBPJV4NPBXA4T3ZRRRDYZSAA77ULVZQC
C3O4BWRMGGRM6CUQITUHOKYPLE2ZIIW6I7PTNKA4ZTCDJNWH7WOAC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
M2HMYLYYXSP5XGX6MCI77IT6UW5K4YSEUJWHPQPYXVSW5L36BJ2AC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
HODV46TCH5AGI42Z5JKVDX4VCRVQCNREJUL6W3TUJK6S77SXQNLQC
C2PRXJYHDRF2642VDAUY76HJKCPQFGWDI6AM3SMCMYCHGWYDQXQQC
MNYDF64QY6NHYKOAFOGBQJFYU7TZDILXRV23EXJPN4IZOCLSJ2AQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC
K2RYVNW6KNB7HLDF5QUGS363M3LC4NXY46D2YMNPCENSXEJNBN2QC
C55G5JGGSVWMU7XVEJL6YZZLDXQZGRN7JQOAALS6WIKFPX3L2U6QC
A4PH3WRSY3DELMUKZGJQM3RQXDBB6QZKM7VNBGACYHKAYKVEMPXAC
T3V75V2CMAABSOXKSGCC6ZTI2WBKSVSGUEF2QAGM2BWLVRIL6SQQC
QX7GM3YZFUBCXTLQIKF27YOPKYR2655HYRWSNTDXXI6CTH4XEP7AC
MSRJ3N4NX255RVISUOPTTTY2GG4JVVNNM76HWUZ2EKCYESNI6MLQC
ON7HKKWM4CRYWNI5SZKKWI5Q5MVFOPC6QVKHXX3D66G7EOZEMGWAC
WEZLXS4OSKPX6ZFFZZKKEO4NKG2QC4AFANVC34IYNDAEDGWJJHLQC
RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC
if (appear.empty() // nothing found for lookup
// Don't allow "jewelled jewelled helmet".
|| item.base_type == OBJ_ARMOUR
&& item.sub_type == ARM_HELMET
&& appear == "jewelled"
&& get_helmet_desc(item) == THELM_DESC_JEWELLED)
if (appear.empty())
case 0:
qualifier = PDQ_GLUGGY;
break;
case 1:
qualifier = PDQ_LUMPY;
break;
case 2:
qualifier = PDQ_SEDIMENTED;
break;
case 3:
qualifier = PDQ_VISCOUS;
break;
switch (random2(4))
{
case 0:
qualifier = PDQ_GLUGGY;
break;
case 1:
qualifier = PDQ_LUMPY;
break;
case 2:
qualifier = PDQ_SEDIMENTED;
break;
case 3:
qualifier = PDQ_VISCOUS;
break;
}
potion_description_colour_type colour = (coinflip() ? PDC_RED
: PDC_BROWN);
int desc = PDESCQ(qualifier, colour);
if (you.item_description[IDESC_POTIONS][POT_BLOOD] != desc)
return desc;
potion_description_colour_type colour = (coinflip() ? PDC_RED : PDC_BROWN);
return PDESCQ(qualifier, colour);
static int _get_random_blood_desc()
{
return PDESCQ(coinflip() ? PDQ_NONE :
coinflip() ? PDQ_VISCOUS
: PDQ_SEDIMENTED, PDC_RED);
= PDESCQ(PDQ_GLUGGY, PDC_WHITE);
you.item_description[IDESC_POTIONS][POT_WATER] = PDESCS(PDC_CLEAR);
you.item_description[IDESC_POTIONS][POT_BLOOD] = PDESCS(PDC_RED);
= _get_random_porridge_desc();
you.item_description[IDESC_POTIONS][POT_BLOOD]
= _get_random_blood_desc();
// Save and replace grid colours. -1 means unchanged.
orig_colours.init(-1);
orig_item_colours.init(-1);
const coord_def offset(ENV_SHOW_OFFSET, ENV_SHOW_OFFSET);
for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri)
{
if (grid_distance(you.pos(), *ri) > range)
{
const coord_def showpos = *ri - you.pos() + offset;
orig_colours(showpos) = env.grid_colours(*ri);
env.grid_colours(*ri) = DARKGREY;
if (igrd(*ri) != NON_ITEM)
{
orig_item_colours(showpos) = mitm[igrd(*ri)].colour;
mitm[igrd(*ri)].colour = DARKGREY;
}
}
}
// Save and replace monster colours.
for (int i = 0; i < MAX_MONSTERS; ++i)
{
if (menv[i].alive()
&& grid_distance(menv[i].pos(), you.pos()) > range
&& you.can_see(&menv[i]))
{
orig_mon_colours[i] = menv[i].colour;
menv[i].colour = DARKGREY;
}
else
orig_mon_colours[i] = -1;
}
Options.target_range = range;
// Restore grid colours.
coord_def c;
const coord_def offset(ENV_SHOW_OFFSET, ENV_SHOW_OFFSET);
for (c.x = 0; c.x < ENV_SHOW_DIAMETER; ++c.x)
for (c.y = 0; c.y < ENV_SHOW_DIAMETER; ++c.y)
{
const coord_def pos = you.pos() + c - offset;
int old_colour = orig_colours(c);
if (old_colour != -1)
env.grid_colours(pos) = old_colour;
old_colour = orig_item_colours(c);
if (old_colour != -1 && igrd(pos) != NON_ITEM)
mitm[igrd(pos)].colour = old_colour;
}
// Restore monster colours.
for (int i = 0; i < MAX_MONSTERS; ++i)
if (orig_mon_colours[i] != -1)
menv[i].colour = orig_mon_colours[i];
Options.target_range = 0;