diff options
-rw-r--r-- | crawl-ref/source/invent.cc | 15 | ||||
-rw-r--r-- | crawl-ref/source/rltiles/dc-item.txt | 20 | ||||
-rw-r--r-- | crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.png | bin | 0 -> 419 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.png | bin | 0 -> 339 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.png | bin | 0 -> 282 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.png | bin | 0 -> 350 bytes | |||
-rw-r--r-- | crawl-ref/source/tilepick.cc | 42 | ||||
-rw-r--r-- | crawl-ref/source/tiles.h | 1 | ||||
-rw-r--r-- | crawl-ref/source/tilesdl.cc | 24 |
9 files changed, 92 insertions, 10 deletions
diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc index 887fbd436c..26b882755c 100644 --- a/crawl-ref/source/invent.cc +++ b/crawl-ref/source/invent.cc @@ -553,9 +553,18 @@ bool InvEntry::get_tiles(std::vector<tile_def>& tileset) const } } } - int brand = tile_known_weapon_brand(*item); - if (brand) - tileset.push_back(tile_def(brand, TEX_DEFAULT)); + if (item->base_type == OBJ_WEAPONS || item->base_type == OBJ_MISSILES) + { + int brand = tile_known_weapon_brand(*item); + if (brand) + tileset.push_back(tile_def(brand, TEX_DEFAULT)); + } + else if (item->base_type == OBJ_CORPSES) + { + int brand = tile_corpse_brand(*item); + if (brand) + tileset.push_back(tile_def(brand, TEX_DEFAULT)); + } return (true); } diff --git a/crawl-ref/source/rltiles/dc-item.txt b/crawl-ref/source/rltiles/dc-item.txt index 0b08cb9cf5..313c8145ef 100644 --- a/crawl-ref/source/rltiles/dc-item.txt +++ b/crawl-ref/source/rltiles/dc-item.txt @@ -416,9 +416,27 @@ lychee FOOD_LYCHEE beef_jerky FOOD_BEEF_JERKY cheese FOOD_CHEESE sausage FOOD_SAUSAGE +bone FOOD_BONE corpse FOOD_CHUNK corpse_rotten FOOD_CHUNK_ROTTEN -bone FOOD_BONE +%back corpse +chunk_brands/i-poison FOOD_CHUNK_POISONED +chunk_brands/i-mutation FOOD_CHUNK_MUTAGENIC +chunk_brands/i-decay FOOD_CHUNK_ROTTING +chunk_brands/i-forbidden FOOD_CHUNK_FORBIDDEN +%back corpse_rotten +chunk_brands/i-poison FOOD_CHUNK_ROTTEN_POISONED +chunk_brands/i-mutation FOOD_CHUNK_ROTTEN_MUTAGENIC +chunk_brands/i-decay FOOD_CHUNK_ROTTEN_ROTTING +chunk_brands/i-forbidden FOOD_CHUNK_ROTTEN_FORBIDDEN +%back none +%shrink 0 +chunk_brands/i-poison FOOD_POISONED +chunk_brands/i-mutation FOOD_MUTAGENIC +chunk_brands/i-decay FOOD_ROTTING +chunk_brands/i-forbidden FOOD_FORBIDDEN +%shrink 1 + #################OBJ_UNKNOWN_I ##################OBJ_SCROLLS %sdir item/scroll diff --git a/crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.png b/crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.png Binary files differnew file mode 100644 index 0000000000..10a08f1c71 --- /dev/null +++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.png diff --git a/crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.png b/crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.png Binary files differnew file mode 100644 index 0000000000..68f032ca74 --- /dev/null +++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.png diff --git a/crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.png b/crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.png Binary files differnew file mode 100644 index 0000000000..3f81e34c28 --- /dev/null +++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.png diff --git a/crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.png b/crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.png Binary files differnew file mode 100644 index 0000000000..2c8c7258f2 --- /dev/null +++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.png diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index afa403ad2f..818655ef98 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -1594,6 +1594,42 @@ static int _tileidx_armour(const item_def &item) return _apply_variations(item, tile); } +static int _tileidx_chunk(const item_def &item) +{ + if (food_is_rotten(item)) + { + if (!is_inedible(item)) + { + if (is_poisonous(item)) + return TILE_FOOD_CHUNK_ROTTEN_POISONED; + + if (is_mutagenic(item)) + return TILE_FOOD_CHUNK_ROTTEN_MUTAGENIC; + + if (causes_rot(item)) + return TILE_FOOD_CHUNK_ROTTEN_ROTTING; + + if (is_forbidden_food(item)) + return TILE_FOOD_CHUNK_ROTTEN_FORBIDDEN; + } + return TILE_FOOD_CHUNK_ROTTEN; + } + + if (is_poisonous(item)) + return TILE_FOOD_CHUNK_POISONED; + + if (is_mutagenic(item)) + return TILE_FOOD_CHUNK_MUTAGENIC; + + if (causes_rot(item)) + return TILE_FOOD_CHUNK_ROTTING; + + if (is_forbidden_food(item)) + return TILE_FOOD_CHUNK_FORBIDDEN; + + return TILE_FOOD_CHUNK; +} + static int _tileidx_food(const item_def &item) { switch (item.sub_type) @@ -1619,11 +1655,7 @@ static int _tileidx_food(const item_def &item) case FOOD_BEEF_JERKY: return TILE_FOOD_BEEF_JERKY; case FOOD_CHEESE: return TILE_FOOD_CHEESE; case FOOD_SAUSAGE: return TILE_FOOD_SAUSAGE; - - case FOOD_CHUNK: - if (food_is_rotten(item)) - return TILE_FOOD_CHUNK_ROTTEN; - return TILE_FOOD_CHUNK; + case FOOD_CHUNK: return _tileidx_chunk(item); } return TILE_ERROR; diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h index ba41232e43..d50482a673 100644 --- a/crawl-ref/source/tiles.h +++ b/crawl-ref/source/tiles.h @@ -123,6 +123,7 @@ void save_doll_file(FILE *dollf); int item_unid_type(const item_def &item); int tile_known_weapon_brand(const item_def item); +int tile_corpse_brand(const item_def item); int get_clean_map_idx(int tile_idx); diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc index 45bd2d161d..c25fcdd92a 100644 --- a/crawl-ref/source/tilesdl.cc +++ b/crawl-ref/source/tilesdl.cc @@ -7,6 +7,7 @@ #include "coord.h" #include "directn.h" #include "env.h" +#include "food.h" #include "itemname.h" #include "itemprop.h" #include "files.h" @@ -1436,6 +1437,23 @@ int tile_known_weapon_brand(const item_def item) return 0; } +int tile_corpse_brand(const item_def item) +{ + if (is_poisonous(item)) + return TILE_FOOD_POISONED; + + if (is_mutagenic(item)) + return TILE_FOOD_MUTAGENIC; + + if (causes_rot(item)) + return TILE_FOOD_ROTTING; + + if (is_forbidden_food(item)) + return TILE_FOOD_FORBIDDEN; + + return 0; +} + static void _fill_item_info(InventoryTile &desc, const item_def &item) { desc.tile = tileidx_item(item); @@ -1458,7 +1476,11 @@ static void _fill_item_info(InventoryTile &desc, const item_def &item) else desc.quantity = -1; - desc.special = tile_known_weapon_brand(item); + if (type == OBJ_WEAPONS || type == OBJ_MISSILES) + desc.special = tile_known_weapon_brand(item); + else if (type == OBJ_CORPSES) + desc.special = tile_corpse_brand(item); + desc.flag = 0; if (item.cursed() && item_ident(item, ISFLAG_KNOW_CURSE)) desc.flag |= TILEI_FLAG_CURSE; |