summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tiledoll.cc
diff options
context:
space:
mode:
authorFlorian Diebold <flodiebold@gmail.com>2013-03-19 16:25:46 +0100
committerFlorian Diebold <flodiebold@gmail.com>2013-03-19 16:29:06 +0100
commit5504a089ba5f20c75284c5c4944c83270e97aff5 (patch)
treea9495d6fc017403061b92fb31b6244f2f8580896 /crawl-ref/source/tiledoll.cc
parent7c889ac88c35c57549f5db26e2f8012d01289a32 (diff)
downloadcrawl-ref-5504a089ba5f20c75284c5c4944c83270e97aff5.tar.gz
crawl-ref-5504a089ba5f20c75284c5c4944c83270e97aff5.zip
Handle lich and statue form tiles the same way as tree form.
This removes the _transform_add_weapon hack, and shows all unmelded equipment on statues and shields on liches; armour doesn't fit right on the current lich tile so it is disabled.
Diffstat (limited to 'crawl-ref/source/tiledoll.cc')
-rw-r--r--crawl-ref/source/tiledoll.cc45
1 files changed, 42 insertions, 3 deletions
diff --git a/crawl-ref/source/tiledoll.cc b/crawl-ref/source/tiledoll.cc
index f6da4b610c..a0ae6666cf 100644
--- a/crawl-ref/source/tiledoll.cc
+++ b/crawl-ref/source/tiledoll.cc
@@ -269,10 +269,10 @@ static tileidx_t _random_trousers()
void fill_doll_equipment(dolls_data &result)
{
- // The support for eq-using forms is working too badly for this one, so
- // we use regular player code here instead.
- if (you.form == TRAN_TREE)
+ // Equipment-using forms
+ switch (you.form)
{
+ case TRAN_TREE:
result.parts[TILEP_PART_BASE] = TILEP_TRAN_TREE;
result.parts[TILEP_PART_HELM] = 0; // fixme, should show up
result.parts[TILEP_PART_DRCHEAD] = 0;
@@ -281,6 +281,45 @@ void fill_doll_equipment(dolls_data &result)
result.parts[TILEP_PART_BEARD] = 0;
result.parts[TILEP_PART_LEG] = 0;
result.parts[TILEP_PART_SHADOW] = 0;
+ break;
+ case TRAN_STATUE:
+ tileidx_t ch;
+ switch (you.species)
+ {
+ case SP_CENTAUR: ch = TILEP_TRAN_STATUE_CENTAUR; break;
+ case SP_NAGA: ch = TILEP_TRAN_STATUE_NAGA; break;
+ case SP_FELID: ch = TILEP_TRAN_STATUE_FELID; break;
+ case SP_OCTOPODE:ch = TILEP_TRAN_STATUE_OCTOPODE; break;
+ default: ch = TILEP_TRAN_STATUE_HUMANOID; break;
+ }
+ result.parts[TILEP_PART_BASE] = ch;
+ result.parts[TILEP_PART_DRCHEAD] = 0;
+ result.parts[TILEP_PART_HAIR] = 0;
+ result.parts[TILEP_PART_LEG] = 0;
+ break;
+ case TRAN_LICH:
+ switch (you.species)
+ {
+ case SP_CENTAUR: ch = TILEP_TRAN_LICH_CENTAUR; break;
+ case SP_NAGA: ch = TILEP_TRAN_LICH_NAGA; break;
+ case SP_FELID: ch = TILEP_TRAN_LICH_FELID; break;
+ case SP_OCTOPODE:ch = TILEP_TRAN_LICH_OCTOPODE; break;
+ default: ch = TILEP_TRAN_LICH_HUMANOID; break;
+ }
+ result.parts[TILEP_PART_BASE] = ch;
+ result.parts[TILEP_PART_DRCHEAD] = 0;
+ result.parts[TILEP_PART_HAIR] = 0;
+ result.parts[TILEP_PART_BEARD] = 0;
+ result.parts[TILEP_PART_LEG] = 0;
+
+ // fixme: these should show up, but look ugly with the lich tile
+ result.parts[TILEP_PART_HELM] = 0;
+ result.parts[TILEP_PART_BOOTS] = 0;
+ result.parts[TILEP_PART_BODY] = 0;
+ result.parts[TILEP_PART_ARM] = 0;
+ break;
+ default:
+ break;
}
// Base tile.