diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-09-16 02:18:21 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-09-16 02:18:21 +0000 |
commit | c8807ea226cad5613bff9ac8c7a57265a18620a4 (patch) | |
tree | e5f822d7cf0f5e102e57f28dd0eb0957ea853e66 /crawl-ref | |
parent | 3e4fe14ea866eaeacd3cf78fb262a5c64eded5c1 (diff) | |
download | crawl-ref-c8807ea226cad5613bff9ac8c7a57265a18620a4.tar.gz crawl-ref-c8807ea226cad5613bff9ac8c7a57265a18620a4.zip |
Adding health bars for monsters (and allies).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6936 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc.txt | 6 | ||||
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.png | bin | 0 -> 137 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png | bin | 0 -> 144 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png | bin | 0 -> 139 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png | bin | 0 -> 142 bytes | |||
-rw-r--r-- | crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png | bin | 0 -> 144 bytes | |||
-rw-r--r-- | crawl-ref/source/tilepick.cc | 28 | ||||
-rw-r--r-- | crawl-ref/source/tilereg.cc | 15 | ||||
-rw-r--r-- | crawl-ref/source/tiles.h | 7 |
9 files changed, 56 insertions, 0 deletions
diff --git a/crawl-ref/source/rltiles/dc-misc.txt b/crawl-ref/source/rltiles/dc-misc.txt index 1b28fad328..f9cbd192fe 100644 --- a/crawl-ref/source/rltiles/dc-misc.txt +++ b/crawl-ref/source/rltiles/dc-misc.txt @@ -84,3 +84,9 @@ slot_eq ITEM_SLOT_EQUIP slot_cursed ITEM_SLOT_CURSED
slot_eq_cursed ITEM_SLOT_EQUIP_CURSED
ray ITEM_SLOT_SELECTED
+
+mdam_lightly_damaged MDAM_LIGHTLY_DAMAGED
+mdam_moderately_damaged MDAM_MODERATELY_DAMAGED
+mdam_heavily_damaged MDAM_HEAVILY_DAMAGED
+mdam_severely_damaged MDAM_SEVERELY_DAMAGED
+mdam_almost_dead MDAM_ALMOST_DEAD
diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.png b/crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.png Binary files differnew file mode 100644 index 0000000000..17d682d474 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.png diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png Binary files differnew file mode 100644 index 0000000000..ecb7d3591f --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png Binary files differnew file mode 100644 index 0000000000..418b77f725 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png Binary files differnew file mode 100644 index 0000000000..7794d10d27 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png Binary files differnew file mode 100644 index 0000000000..4013bfbe05 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 9d36142b79..ca897b20bb 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -874,6 +874,34 @@ int tileidx_monster(const monsters *mons, bool detected) { ch |= TILE_FLAG_MAY_STAB; } + + std::string damage_desc; + mon_dam_level_type damage_level; + mons_get_damage_level(mons, damage_desc, damage_level); + + switch (damage_level) + { + case MDAM_DEAD: + case MDAM_ALMOST_DEAD: + ch |= TILE_FLAG_MDAM_ADEAD; + break; + case MDAM_SEVERELY_DAMAGED: + ch |= TILE_FLAG_MDAM_SEV; + break; + case MDAM_HEAVILY_DAMAGED: + ch |= TILE_FLAG_MDAM_HEAVY; + break; + case MDAM_MODERATELY_DAMAGED: + ch |= TILE_FLAG_MDAM_MOD; + break; + case MDAM_LIGHTLY_DAMAGED: + ch |= TILE_FLAG_MDAM_LIGHT; + break; + case MDAM_OKAY: + default: + // no flag for okay. + break; + } return ch; } diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc index c628ab2f37..efde8ba154 100644 --- a/crawl-ref/source/tilereg.cc +++ b/crawl-ref/source/tilereg.cc @@ -594,6 +594,21 @@ void DungeonRegion::draw_foreground(unsigned int bg, unsigned int fg, unsigned i add_quad(TEX_DEFAULT, type, x, y); } + + if (fg & TILE_FLAG_MDAM_MASK) + { + unsigned int mdam_flag = fg & TILE_FLAG_MDAM_MASK; + if (mdam_flag == TILE_FLAG_MDAM_LIGHT) + add_quad(TEX_DEFAULT, TILE_MDAM_LIGHTLY_DAMAGED, x, y); + else if (mdam_flag == TILE_FLAG_MDAM_MOD) + add_quad(TEX_DEFAULT, TILE_MDAM_MODERATELY_DAMAGED, x, y); + else if (mdam_flag == TILE_FLAG_MDAM_HEAVY) + add_quad(TEX_DEFAULT, TILE_MDAM_HEAVILY_DAMAGED, x, y); + else if (mdam_flag == TILE_FLAG_MDAM_SEV) + add_quad(TEX_DEFAULT, TILE_MDAM_SEVERELY_DAMAGED, x, y); + else if (mdam_flag == TILE_FLAG_MDAM_ADEAD) + add_quad(TEX_DEFAULT, TILE_MDAM_ALMOST_DEAD, x, y); + } } void DungeonRegion::draw_cursor(cursor_type type, unsigned int tile) diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h index 3c9dd7db37..4652eca83a 100644 --- a/crawl-ref/source/tiles.h +++ b/crawl-ref/source/tiles.h @@ -143,6 +143,13 @@ enum tile_flags TILE_FLAG_NET = 0x00010000, TILE_FLAG_POISON = 0x00020000, TILE_FLAG_ANIM_WEP = 0x00040000, + // MDAM has 5 possibilities, so uses 3 bits. + TILE_FLAG_MDAM_MASK = 0x00380000, + TILE_FLAG_MDAM_LIGHT= 0x00080000, + TILE_FLAG_MDAM_MOD = 0x00100000, + TILE_FLAG_MDAM_HEAVY= 0x00180000, + TILE_FLAG_MDAM_SEV = 0x00200000, + TILE_FLAG_MDAM_ADEAD= 0x00280000, // Background flags TILE_FLAG_RAY = 0x00000800, |