More consistency in type-ID vs. artefacts: knowing the type-ID of a specific ring won't property-ID or type-ID an artefact ring of the same type, and vice versa.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1781 c06c8d41-db1a-0410-9941-cceddc491573
OQ4KB7QCJSK7GSW3DYBARH4DCB75HFKLUSOSOZZZ4IUFKNGFRUDQC
CFMZHVC5HEHL2GCHYFUMAEZUUQBM5UB4VOZOTDGUOWFV3NWAU3HAC
U4TYV7RSO64WBA2J5AEMJRHJBIPMVFTWRCVJMP5XVSII3V465P4AC
LBIXGRQC64MEHG7L74PCGU3EXD3WVUCDR7DHEHCI5OCOJAXSA7PQC
KTXVWUS3MNY7WCPUYZDDU3RVLFKKFLSWRCWKSDNYNMPYZQCVJ24AC
V32K3LIICYQ2JEQ7BW62IEPVG2NSUAURMKTAVNSXLYCZ66CLDUUQC
4RFKVDJKTCRBZU6WPJ2E5OVI5IRPY3UTRPOBLC5QHY4CQJJTLZKQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
M7UBBA4B6VWC4UDEJWOYB3VW7QCLRKJHOKVRJE6JFZW3JSMQCYTAC
CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
HDLNRHAMFVDM4QCZMY6COBYZ35ODPR5PONT4UE77UAZ7GEE2FLHQC
2KTJHQUX2LTU2BCLS5YXVRRKMOYKKIZAPF2LBKORFGSHEN5IO3IAC
4GGNXCX2CLKWQZIZT543LXFFKFRD4PY5XPJFLGWKW4ACKYZNLVPQC
VNHFP63ZLLZU3A3PLXP4BITX57DUIYDHFOHQYK3BOBHV3S64G26QC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC
IHIJSWVOONSTA2WCHKW3YKBLETUQECFVBVLMET5SGQZ4C6U3GCUQC
QVVC7AYGVA6U64PTNA7L27422NLMO327P22BQKXEVIMPZHIHO7MQC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
describe_item( mitm[shop_items[ft]] );
// A hack to make the description more useful.
// In theory, the user could kill the process at this
// point and end up with valid ID for the item.
// That's not very useful, though, because it doesn't set
// type-ID and once you can access the item (by buying it)
// you have its full ID anyway. Worst case, it won't get
// noted when you buy it.
item_def& item = mitm[shop_items[ft]];
const unsigned long old_flags = item.flags;
if ( id_stock )
item.flags |= ISFLAG_IDENT_MASK;
describe_item(item);
if ( id_stock )
item.flags = old_flags;
switch ( basetype )
{
case OBJ_SCROLLS:
return type_ids[IDTYPE_SCROLLS][subtype] == ID_TRIED_TYPE;
case OBJ_POTIONS:
return type_ids[IDTYPE_POTIONS][subtype] == ID_TRIED_TYPE;
case OBJ_WANDS:
return type_ids[IDTYPE_WANDS][subtype] == ID_TRIED_TYPE;
default:
return false;
}
}
// Well, if we ever put in scroll or potion artefacts, this
// might be necessary...
if ( is_artefact(item) )
return false;
const item_type_id_type idt = objtype_to_idtype(item.base_type);
if (idt != NUM_IDTYPE && item.sub_type < 50)
return ( type_ids[idt][item.sub_type] == ID_TRIED_TYPE );
else
return false;
}
if (you.inv[item_slot].sub_type == WAND_HASTING
|| you.inv[item_slot].sub_type == WAND_HEALING
|| you.inv[item_slot].sub_type == WAND_INVISIBILITY)
if (wand.sub_type == WAND_HASTING
|| wand.sub_type == WAND_HEALING
|| wand.sub_type == WAND_INVISIBILITY)
if (get_ident_type( you.inv[item_slot].base_type,
you.inv[item_slot].sub_type ) != ID_KNOWN_TYPE)
{
set_ident_type( you.inv[item_slot].base_type,
you.inv[item_slot].sub_type, ID_KNOWN_TYPE );
mpr(you.inv[item_slot].name(DESC_INVENTORY_EQUIP).c_str());
// update if wielding
if (you.equip[EQ_WEAPON] == item_slot)
you.wield_change = true;
}
set_ident_type( wand.base_type, wand.sub_type, ID_KNOWN_TYPE );
mpr(wand.name(DESC_INVENTORY_EQUIP).c_str());
you.inv[item_slot].plus,
(you.inv[item_slot].plus == 1) ? "" : "s" );
set_ident_flags( you.inv[item_slot], ISFLAG_KNOW_PLUSES );
wand.plus, (wand.plus == 1) ? "" : "s" );
set_ident_flags( wand, ISFLAG_KNOW_PLUSES );