summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/invent.cc15
-rw-r--r--crawl-ref/source/rltiles/dc-item.txt20
-rw-r--r--crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.pngbin0 -> 419 bytes
-rw-r--r--crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.pngbin0 -> 339 bytes
-rw-r--r--crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.pngbin0 -> 282 bytes
-rw-r--r--crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.pngbin0 -> 350 bytes
-rw-r--r--crawl-ref/source/tilepick.cc42
-rw-r--r--crawl-ref/source/tiles.h1
-rw-r--r--crawl-ref/source/tilesdl.cc24
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
new file mode 100644
index 0000000000..10a08f1c71
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-decay.png
Binary files differ
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
new file mode 100644
index 0000000000..68f032ca74
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-forbidden.png
Binary files differ
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
new file mode 100644
index 0000000000..3f81e34c28
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-mutation.png
Binary files differ
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
new file mode 100644
index 0000000000..2c8c7258f2
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/food/chunk_brands/i-poison.png
Binary files differ
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;