flavoured floor, and weapon brands.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9477 c06c8d41-db1a-0410-9941-cceddc491573
NMRKYZUPI6EOC4KONJKB2RHSCC6ONYJUOXQJ7PYJ7V4OBWPRO7AQC
4WF6HXUDMBJJMBSYMXJ6BHAG77HT4BRXLCJ4SQZ4INL5PPM2HGCQC
VAUD7NQFQDOCA226733ATTML6LN4TSWA4UGSPSPBGHUKVOV2YFPQC
RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
GTGF2KDUQSER5GBEDC3E2MWMPFT72BI2Q2UG6JSJLWCOEGMYABXQC
WFG3MHLJUHQEHV65SPAIOI74NIZTGM447T4WKWKF7CMUIUNRUQOAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
3SQQ4MM6YO4I37CQ6GIBIX6BXAEVHNVNHPVMR3PPBBNO454D6XWQC
PHZTAI6CW7JHKFW77MKDK75UCNWBXFK7VDD3D5ORVXUFWV3C3EVQC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
WNQLH6VJ5DIPNQJUSUQBEKGNOZYCVWU5BYP4W6WQZBRMSR7GLUUQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
OXYBE6MSPVRZVYOUIXR7K7ZBE2D7DIBTVGMRSFCOEGTE74XDCFBAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
IP4A3VRYFYIVLRUAU4DF4KDNP6E4UISWJX3LI2F4EGSSMIJYRJXAC
FEKRY3DYIDLWVBLAZN7W2WFNEKZPCAHABXOSM6K5RLTH5WY2NODQC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
4GYZYBY7FFORRNPIEFTV4ZM2C7Z6D2KTQOM537ZCC2YBXT2TNSHAC
if (item.base_type == OBJ_WEAPONS)
{
if (!is_fixed_artefact(item)
&& get_weapon_brand(item) != SPWPN_NORMAL)
{
return (TILE_BRAND_FLAMING + get_weapon_brand(item) - 1);
}
}
else if (item.base_type == OBJ_MISSILES)
{
switch (get_ammo_brand(item))
{
case SPMSL_FLAME:
return TILE_BRAND_FLAME;
case SPMSL_FROST:
return TILE_BRAND_FROST;
case SPMSL_POISONED:
return TILE_BRAND_POISONED;
case SPMSL_CURARE:
return TILE_BRAND_CURARE;
case SPMSL_RETURNING:
return TILE_BRAND_RETURNING;
case SPMSL_CHAOS:
return TILE_BRAND_CHAOS;
default:
break;
}
}
return 0;
}
if (item_type_known(item))
{
if (item.base_type == OBJ_WEAPONS)
{
if (!is_fixed_artefact(item)
&& get_weapon_brand(item) != SPWPN_NORMAL)
{
desc.special = TILE_BRAND_FLAMING + get_weapon_brand(item) - 1;
}
}
else if (item.base_type == OBJ_MISSILES)
{
switch (get_ammo_brand(item))
{
case SPMSL_FLAME:
desc.special = TILE_BRAND_FLAME;
break;
case SPMSL_FROST:
desc.special = TILE_BRAND_FROST;
break;
case SPMSL_POISONED:
desc.special = TILE_BRAND_POISONED;
break;
case SPMSL_CURARE:
desc.special = TILE_BRAND_CURARE;
break;
case SPMSL_RETURNING:
desc.special = TILE_BRAND_RETURNING;
break;
case SPMSL_CHAOS:
desc.special = TILE_BRAND_CHAOS;
break;
default:
break;
}
}
}
desc.special = tile_known_weapon_brand(item);
const dungeon_feature_type feat = grd(c);
tileset.push_back(tile_def(tileidx_feature(feat, c.x, c.y), TEX_DUNGEON));
int ch = tileidx_feature(grd(c), c.x, c.y);
if (ch == TILE_FLOOR_NORMAL)
ch = env.tile_flv(c).floor;
else if (ch == TILE_WALL_NORMAL)
ch = env.tile_flv(c).wall;
tileset.push_back(tile_def(ch, TEX_DUNGEON));
if (!mons_flies(m))
{
if (ch == TILE_DNGN_LAVA)
tileset.push_back(tile_def(TILE_MASK_LAVA, TEX_DEFAULT));
else if (ch == TILE_DNGN_SHALLOW_WATER)
tileset.push_back(tile_def(TILE_MASK_SHALLOW_WATER, TEX_DEFAULT));
else if (ch == TILE_DNGN_DEEP_WATER)
tileset.push_back(tile_def(TILE_MASK_DEEP_WATER, TEX_DEFAULT));
else if (ch == TILE_DNGN_SHALLOW_WATER_MURKY)
tileset.push_back(tile_def(TILE_MASK_SHALLOW_WATER_MURKY, TEX_DEFAULT));
else if (ch == TILE_DNGN_DEEP_WATER_MURKY)
tileset.push_back(tile_def(TILE_MASK_DEEP_WATER_MURKY, TEX_DEFAULT));
}
tileset.push_back(tile_def(TILE_ITEM_SLOT, TEX_DUNGEON));
tileset.push_back(tile_def(idx, TEX_DEFAULT));
if (in_inventory(*item))
{
const bool equipped = item_is_equipped(*item);
if (equipped)
{
if (item_cursed(*item))
tileset.push_back(tile_def(TILE_ITEM_SLOT_EQUIP_CURSED, TEX_DEFAULT));
else
tileset.push_back(tile_def(TILE_ITEM_SLOT_EQUIP, TEX_DEFAULT));
}
else if (item_cursed(*item))
tileset.push_back(tile_def(TILE_ITEM_SLOT_CURSED, TEX_DEFAULT));
tileset.push_back(tile_def(TILE_ITEM_SLOT, TEX_DUNGEON));
tileset.push_back(tile_def(idx, TEX_DEFAULT));
// Is item melded?
if (equipped && !you_tran_can_wear(*item))
tileset.push_back(tile_def(TILE_MESH, TEX_DEFAULT));
}
else
{
// Do we want to display the floor type or is that too distracting?
const coord_def c = item->pos;
int ch = tileidx_feature(grd(c), c.x, c.y);
if (ch == TILE_FLOOR_NORMAL)
ch = env.tile_flv(c).floor;
else if (ch == TILE_WALL_NORMAL)
ch = env.tile_flv(c).wall;