summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-16 02:18:21 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-16 02:18:21 +0000
commitc8807ea226cad5613bff9ac8c7a57265a18620a4 (patch)
treee5f822d7cf0f5e102e57f28dd0eb0957ea853e66 /crawl-ref/source
parent3e4fe14ea866eaeacd3cf78fb262a5c64eded5c1 (diff)
downloadcrawl-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/source')
-rw-r--r--crawl-ref/source/rltiles/dc-misc.txt6
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.pngbin0 -> 137 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.pngbin0 -> 144 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.pngbin0 -> 139 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.pngbin0 -> 142 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.pngbin0 -> 144 bytes
-rw-r--r--crawl-ref/source/tilepick.cc28
-rw-r--r--crawl-ref/source/tilereg.cc15
-rw-r--r--crawl-ref/source/tiles.h7
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
new file mode 100644
index 0000000000..17d682d474
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/mdam_almost_dead.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png
new file mode 100644
index 0000000000..ecb7d3591f
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/mdam_heavily_damaged.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png
new file mode 100644
index 0000000000..418b77f725
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/mdam_lightly_damaged.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png
new file mode 100644
index 0000000000..7794d10d27
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/mdam_moderately_damaged.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png b/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png
new file mode 100644
index 0000000000..4013bfbe05
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/mdam_severely_damaged.png
Binary files differ
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,