when false makes equipped items be ignored when figuring reistance. Used by is_useless_item() to avoid (for example) rings of poison reistance being marked useless if the player equips one. Also mark rings of teleport control as useless if the player has inate teleport control, and never mark artifact jewellery as useless.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5725 c06c8d41-db1a-0410-9941-cceddc491573
6ARBZEUSCIPVJUQJST5HG6TKQYQZPOHWYIIJO4OD2SUECPYMLVIQC
UUVZKRU4HPJQ4DOMCD4AGIZDR4RMHOW3TFZR2WJP73X5ZEK4VEUQC
GSJA56E3ORVIBCBA6T6WU2HE4DCLJ6NZPW76O7L54N4CYPKLJOWQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
CAGCTYIUYWDHQAJOLVLKOEV5HG6K5ZG7IDHONLIG6BDNCWZJAK4AC
J7KCPTGASQNRAKVKQ5FCXZ75E75PK7I2BB6MFSI3COWU6HRKTWSAC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
YDDLIMYVR5YEORQ6YXEG3M4O26M3XIZ6OCXQTHEVLKTAAJP3FI5AC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
4GYZYBY7FFORRNPIEFTV4ZM2C7Z6D2KTQOM537ZCC2YBXT2TNSHAC
DH3YTI6VVI727SQXO4CXSDCSBG2UN3UAWLFULBGRLBVH22ACRXIAC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
M55DKMLPTAPYGJCNR45A25G6SMNZHDMLUV5AUKRCF2MZ4XQZ3SRQC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
QHAYBZTRPVJMK55WXT3F63CNRSAEVN3CQAAG42GCJTONLXQLNNNQC
57E4T664CXRFPVW2BZBYI33UIHFS4PSEZURZYPSYSZK5DRLJJ5CQC
NGW2XPEX2XRK3CYC37DNUZSSB5IQLECMKRB6NX257I2X3G35LMPAC
Q5YUZONIIPGRWOIQNL6DHRGLKF4V3K5XSZCBH2SL7DP4WPLDNOSQC
int player_res_cold(bool calc_unid = true);
int player_res_acid(bool consider_unidentified_gear = true);
int player_res_cold(bool calc_unid = true, bool temp = true,
bool items = true);
int player_res_acid(bool calc_unid = true, bool items = true);
int player_res_fire(bool calc_unid = true, bool temp = true);
int player_res_steam(bool calc_unid = true, bool temp = true);
int player_res_fire(bool calc_unid = true, bool temp = true,
bool items = true);
int player_res_steam(bool calc_unid = true, bool temp = true,
bool items = true);
/* rings of fire resistance/fire */
rf += player_equip( EQ_RINGS, RING_PROTECTION_FROM_FIRE, calc_unid );
rf += player_equip( EQ_RINGS, RING_FIRE, calc_unid );
if (items)
{
/* rings of fire resistance/fire */
rf += player_equip( EQ_RINGS, RING_PROTECTION_FROM_FIRE, calc_unid );
rf += player_equip( EQ_RINGS, RING_FIRE, calc_unid );
// body armour:
rf += 2 * player_equip( EQ_BODY_ARMOUR, ARM_DRAGON_ARMOUR );
rf += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rf -= player_equip( EQ_BODY_ARMOUR, ARM_ICE_DRAGON_ARMOUR );
// body armour:
rf += 2 * player_equip( EQ_BODY_ARMOUR, ARM_DRAGON_ARMOUR );
rf += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rf -= player_equip( EQ_BODY_ARMOUR, ARM_ICE_DRAGON_ARMOUR );
// ego armours
rf += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_FIRE_RESISTANCE );
rf += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_RESISTANCE );
// ego armours
rf += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_FIRE_RESISTANCE );
rf += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_RESISTANCE );
if (you.hunger_state <= HS_NEAR_STARVING)
rc += 2;
else if (you.hunger_state < HS_SATIATED)
// spells:
if (you.duration[DUR_RESIST_COLD] > 0)
rc++;
if (you.duration[DUR_FIRE_SHIELD])
rc -= 2;
// transformations:
switch (you.attribute[ATTR_TRANSFORMATION])
{
case TRAN_ICE_BEAST:
rc += 3;
break;
case TRAN_DRAGON:
rc--;
break;
case TRAN_LICH:
// rings of fire resistance/fire
rc += player_equip( EQ_RINGS, RING_PROTECTION_FROM_COLD, calc_unid );
rc += player_equip( EQ_RINGS, RING_ICE, calc_unid );
if (items)
{
// rings of fire resistance/fire
rc += player_equip( EQ_RINGS, RING_PROTECTION_FROM_COLD, calc_unid );
rc += player_equip( EQ_RINGS, RING_ICE, calc_unid );
// body armour:
rc += 2 * player_equip( EQ_BODY_ARMOUR, ARM_ICE_DRAGON_ARMOUR );
rc += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rc -= player_equip( EQ_BODY_ARMOUR, ARM_DRAGON_ARMOUR );
// body armour:
rc += 2 * player_equip( EQ_BODY_ARMOUR, ARM_ICE_DRAGON_ARMOUR );
rc += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rc -= player_equip( EQ_BODY_ARMOUR, ARM_DRAGON_ARMOUR );
// ego armours
rc += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_COLD_RESISTANCE );
rc += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_RESISTANCE );
// ego armours
rc += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_COLD_RESISTANCE );
rc += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_RESISTANCE );
// randart weapons:
rc += scan_randarts(RAP_COLD, calc_unid);
// spells:
if (you.duration[DUR_RESIST_COLD] > 0)
rc++;
// randart weapons:
rc += scan_randarts(RAP_COLD, calc_unid);
}
if (you.duration[DUR_FIRE_SHIELD])
rc -= 2;
// transformations:
switch (you.attribute[ATTR_TRANSFORMATION])
{
case TRAN_ICE_BEAST:
rc += 3;
break;
case TRAN_DRAGON:
rc--;
break;
case TRAN_LICH:
rc++;
break;
case TRAN_AIR:
rc -= 2;
break;
}
// transformations:
if (you.attribute[ATTR_TRANSFORMATION] == TRAN_STATUE)
re += 1;
if (you.attribute[ATTR_TRANSFORMATION] == TRAN_AIR)
re += 2; // multiple levels currently meaningless
if (you.attribute[ATTR_DIVINE_LIGHTNING_PROTECTION])
re = 3;
else if (re > 1)
re = 1;
// Only thirsty vampires are naturally poison resistant.
if (you.species == SP_VAMPIRE && you.hunger_state < HS_SATIATED)
rp++;
if (items)
{
// rings of poison resistance
rp += player_equip( EQ_RINGS, RING_POISON_RESISTANCE, calc_unid );
// Staves
rp += player_equip( EQ_STAFF, STAFF_POISON, calc_unid );
// the staff of Olgreb:
if (you.equip[EQ_WEAPON] != -1
&& you.inv[you.equip[EQ_WEAPON]].base_type == OBJ_WEAPONS
&& you.inv[you.equip[EQ_WEAPON]].special == SPWPN_STAFF_OF_OLGREB)
{
rp++;
}
// the staff of Olgreb:
if (you.equip[EQ_WEAPON] != -1
&& you.inv[you.equip[EQ_WEAPON]].base_type == OBJ_WEAPONS
&& you.inv[you.equip[EQ_WEAPON]].special == SPWPN_STAFF_OF_OLGREB)
{
rp++;
}
// ego armour:
rp += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_POISON_RESISTANCE );
// ego armour:
rp += player_equip_ego_type( EQ_ALL_ARMOUR, SPARM_POISON_RESISTANCE );
// body armour:
rp += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rp += player_equip( EQ_BODY_ARMOUR, ARM_SWAMP_DRAGON_ARMOUR );
// body armour:
rp += player_equip( EQ_BODY_ARMOUR, ARM_GOLD_DRAGON_ARMOUR );
rp += player_equip( EQ_BODY_ARMOUR, ARM_SWAMP_DRAGON_ARMOUR );
// randart weapons:
rp += scan_randarts(RAP_POISON, calc_unid);
// randart weapons:
rp += scan_randarts(RAP_POISON, calc_unid);
}