Z3E3EG25UDOX2TT2OLEGHF76PA3WVNU72I5SL43BXMFYOZ25Y7OQC
2QKFGSX5E2BBAAAQXGT2XXJVHHNEREROJUMNSH2CPCQEB4QSE3TQC
QZVQOERFNTC7N3YQXERX7VXK5SJGTIASJSQEZW3FFZFEJK2PLLUQC
7X6BEFHZQG2F2CGENA3NBPWZ3PJFGYILE6DLDNCXVI7IKVRU7SOAC
JROZ5XCAQKPXFV242IO3OACFTD6KC4SNSWIXPI5WO4FQ5APRLC4QC
ASXBSZVXJCWVX5VQSRWXL5BWQ4NA7JLYXP6LWQTRGYW6DC2DZZPQC
RCPQNIRPR3NQXEMVLBAQW6657UJFIP43N54UJVEZHJH22OH4UQIQC
NRHBB2THNHO6AHMOUWR7BZ3WZTW37R2WGEQ3RXKBVAMCWNZTVA5QC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
UYWCKXZ4FYTWLE73ACGXN632B2VT3OWDYGB5NR3EIF2DIQ7XIKWAC
J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
4QRLZDW4KBFG34B3MCG4375NHFR3WKWSLWQKRMQ3OE5R26WCZBBQC
6LC767RHUL6JL33G73U7JC464C7WAYQJVSU73TWXX2PMWAGYQLBAC
ZR6IG6JO2HEUWDJX5C3BHN3Z4Z2V6HFRGGS2NIW3PCODCWL7PRYAC
ACSERNMWRXP4VUEUVKDBSDGTBZRI34P2PUVUDTKSAHNTCEDDCCVAC
GSS3OCYMI4MYKACCGNLFA267VDH2U7G4QVVDLMOVAUHZTYQ3QJDAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
XSXDKKFQKXP5V7N3QJRH2KMFJ7E6NRDMWAPK2TGUWRJUXSCZ4YKQC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
FAVME2A2U4OUKN2BTISAG5PCI5Y4BN6YVFKCSQQHHZLEVVVF4LKAC
FLAGBNUNSIQNFDN53CDWABJRTTFWDL4PG34AI474ZKPXDEPYHOAQC
MGTFQEBJ32KN7DEQJRRSZUDTQQB7HOFIARDG5HPV5CSFUVJHFAOQC
RY62FYAU7PCMJPBD3CRQJDE2W7KU3QUZMHS4XWAGA3W6DEOFFBYAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
HH3HFWVXABJ4IRMN22PPJCREMULZSN6DA7VYKOGECGMNUQTZ5QNQC
3GSAVTNKEG45AT2U734R5STSRP22WJZL3H6KUFRUWCIA6A4CZE5QC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
7GCM5WFIKX5N2PQ5UCVNMFJEKTZTBCUVZH5RZ7CPDL3Z6GB26KAQC
3RNRFLMD2X4RUFTDVITLXAP377YB6F6YMQLL3DAXSUZDZBTWSLRQC
KBNY5FWKTEAKABFCLPC3QFKFSVZKAGXINPCIFV6WDSWFO4VCKNTAC
HMC247EGUJ3Q25DQ3VKUCIGLIO4SZORFQQWAPAF6S2WLQY3WU5TQC
ZUSQN4OYHQPW7YSX4W2LK3YS7TAVRRNAP2SCENZX2CQY2A5U4L6AC
ARNDCQD3NXQRD5CZFTBQOMID5RPPRRIK647T36FLGHMUN62MF7WAC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
TJKJLYEOG4MESLITZIVFVJ3QXS4SSAXJK5A2FYVYP3YRAVPKBZ4AC
Q6WLX2VTRJ3LGDPWBH5WKQM7CIIJ5H6AEIKMXPF2PJA5JX5ZLUZQC
RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC
SG76BPJKTQGDFNP5QFMAVR6H72FMMAYCECVGSWWSCLMAVQX7E3FQC
7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC
4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC
MWA35QHODXDNH2OYJ3URQQOXSEONHFXY4OG4VMGHYBBTAC777NLQC
QEX3OFNT4IDUY3FNCPNKXB2RWHXRGEXTQQXB63GMVOTGQQ3IO5TAC
LKLHWERPXMDTRNYPEXVDVB6PE7CT5PZ6WMNJJDTBBE5FBHOCEK5AC
}
int player_see_invis(bool calc_unid)
{
int si = 0;
si += player_equip( EQ_RINGS, RING_SEE_INVISIBLE, calc_unid );
// armour: (checks head armour only)
si += player_equip_ego_type( EQ_HELMET, SPARM_SEE_INVISIBLE );
if (player_mutation_level(MUT_ACUTE_VISION) > 0)
si += player_mutation_level(MUT_ACUTE_VISION);
//jmf: added see_invisible spell
if (you.duration[DUR_SEE_INVISIBLE] > 0)
si++;
// randart wpns
int artefacts = scan_artefacts(ARTP_EYESIGHT, calc_unid);
if (artefacts > 0)
si += artefacts;
if (si > 1)
si = 1;
return (si);
}
bool player::can_see_invisible(bool calc_unid) const
{
int si = 0;
si += player_equip( EQ_RINGS, RING_SEE_INVISIBLE, calc_unid );
// armour: (checks head armour only)
si += player_equip_ego_type( EQ_HELMET, SPARM_SEE_INVISIBLE );
if (player_mutation_level(MUT_ACUTE_VISION) > 0)
si += player_mutation_level(MUT_ACUTE_VISION);
//jmf: added see_invisible spell
if (you.duration[DUR_SEE_INVISIBLE] > 0)
si++;
// randart wpns
int artefacts = scan_artefacts(ARTP_EYESIGHT, calc_unid);
if (artefacts > 0)
si += artefacts;
if (si > 1)
si = 1;
return (si);