summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/rltiles/dc-co.txt4
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt5
-rw-r--r--crawl-ref/source/rltiles/dc-mon/merfolk_fighter.bmpbin0 -> 2102 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/merfolk_fighter_water.bmpbin0 -> 2102 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/mermaid.bmp (renamed from crawl-ref/source/rltiles/player/base/merfolk_fs.bmp)bin2102 -> 2102 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/mermaid_water.bmpbin0 -> 2102 bytes
-rw-r--r--crawl-ref/source/rltiles/player/base/merfolk_f.bmpbin2102 -> 2102 bytes
-rw-r--r--crawl-ref/source/rltiles/player/base/merfolk_ms.bmpbin2102 -> 0 bytes
-rw-r--r--crawl-ref/source/rltiles/player/base/merfolk_water_f.bmpbin2102 -> 2102 bytes
-rw-r--r--crawl-ref/source/tile1.cc36
10 files changed, 27 insertions, 18 deletions
diff --git a/crawl-ref/source/rltiles/dc-co.txt b/crawl-ref/source/rltiles/dc-co.txt
index ab1fbe20ff..c367256a31 100644
--- a/crawl-ref/source/rltiles/dc-co.txt
+++ b/crawl-ref/source/rltiles/dc-co.txt
@@ -254,3 +254,7 @@ yellow_wasp CORPSE_YELLOW_WASP /* y */
%compose drchead/drchead_yellow
%finish CORPSE_DRACONIAN_YELLOW
+%sdir dc-mon
+%back dc-misc/blood_red
+mermaid_water CORPSE_MERMAID
+merfolk_fighter_water CORPSE_MERFOLK_FIGHTER
diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt
index e5d8a41e25..53814cc490 100644
--- a/crawl-ref/source/rltiles/dc-mon.txt
+++ b/crawl-ref/source/rltiles/dc-mon.txt
@@ -492,3 +492,8 @@ murray MONS_MURRAY
water_elemental MONS_WATER_ELEMENTAL /*'{'*/
####nh-mon0/m/large_mimic MONS_MOLLUSC_LORD
+
+merfolk_fighter MONS_MERFOLK_FIGHTER
+merfolk_fighter_water MONS_MERFOLK_FIGHTER_WATER
+mermaid MONS_MERMAID
+mermaid_water MONS_MERMAID_WATER
diff --git a/crawl-ref/source/rltiles/dc-mon/merfolk_fighter.bmp b/crawl-ref/source/rltiles/dc-mon/merfolk_fighter.bmp
new file mode 100644
index 0000000000..a8b8168fe9
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/merfolk_fighter.bmp
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-mon/merfolk_fighter_water.bmp b/crawl-ref/source/rltiles/dc-mon/merfolk_fighter_water.bmp
new file mode 100644
index 0000000000..65d11fa2ab
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/merfolk_fighter_water.bmp
Binary files differ
diff --git a/crawl-ref/source/rltiles/player/base/merfolk_fs.bmp b/crawl-ref/source/rltiles/dc-mon/mermaid.bmp
index ceb382faa9..8475a2a897 100644
--- a/crawl-ref/source/rltiles/player/base/merfolk_fs.bmp
+++ b/crawl-ref/source/rltiles/dc-mon/mermaid.bmp
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-mon/mermaid_water.bmp b/crawl-ref/source/rltiles/dc-mon/mermaid_water.bmp
new file mode 100644
index 0000000000..83f5c48533
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/mermaid_water.bmp
Binary files differ
diff --git a/crawl-ref/source/rltiles/player/base/merfolk_f.bmp b/crawl-ref/source/rltiles/player/base/merfolk_f.bmp
index 365375dfd3..2ea19fb6b7 100644
--- a/crawl-ref/source/rltiles/player/base/merfolk_f.bmp
+++ b/crawl-ref/source/rltiles/player/base/merfolk_f.bmp
Binary files differ
diff --git a/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp b/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp
deleted file mode 100644
index ddf196aeef..0000000000
--- a/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp
+++ /dev/null
Binary files differ
diff --git a/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp b/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp
index 5785b9ddf8..52f41c81d6 100644
--- a/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp
+++ b/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp
Binary files differ
diff --git a/crawl-ref/source/tile1.cc b/crawl-ref/source/tile1.cc
index 98d4d7e2f8..e6cbed30a2 100644
--- a/crawl-ref/source/tile1.cc
+++ b/crawl-ref/source/tile1.cc
@@ -55,9 +55,11 @@ int tile_unseen_flag(const coord_def& gc)
int tileidx_monster_base(int mon_idx)
{
- int mons = menv[mon_idx].type;
+ const monsters* mon = &menv[mon_idx];
+ int grid = grd[mon->x][mon->y];
+ bool in_water = (grid == DNGN_SHALLOW_WATER || grid == DNGN_DEEP_WATER);
- switch(mons)
+ switch (mon->type)
{
case MONS_GIANT_ANT:
return TILE_MONS_GIANT_ANT;
@@ -155,14 +157,8 @@ int tileidx_monster_base(int mon_idx)
return TILE_MONS_VAMPIRE;
case MONS_WRAITH:
return TILE_MONS_WRAITH;
-
case MONS_ABOMINATION_LARGE:
- {
- // 7 different colours
- struct monsters *mon = &menv[mon_idx];
return TILE_MONS_ABOMINATION_LARGE + ((mon->colour)%7);
- }
-
case MONS_YAK:
return TILE_MONS_YAK;
case MONS_ZOMBIE_LARGE:
@@ -193,14 +189,8 @@ int tileidx_monster_base(int mon_idx)
return TILE_MONS_HUNGRY_GHOST;
case MONS_EYE_OF_DRAINING:
return TILE_MONS_EYE_OF_DRAINING;
-
case MONS_BUTTERFLY:
- {
- // 7 different colours
- struct monsters *mon = &menv[mon_idx];
return TILE_MONS_BUTTERFLY + ((mon->colour)%7);
- }
-
case MONS_WANDERING_MUSHROOM:
return TILE_MONS_WANDERING_MUSHROOM;
case MONS_EFREET:
@@ -267,7 +257,6 @@ int tileidx_monster_base(int mon_idx)
case MONS_HYDRA:
{
// Number of heads
- struct monsters *mon = &menv[mon_idx];
int heads = mon->number;
if (heads > 7) heads = 7;
return TILE_MONS_HYDRA + heads - 1;
@@ -713,7 +702,6 @@ int tileidx_monster_base(int mon_idx)
{
// Use item tile
item_def item;
- struct monsters *mon = &menv[mon_idx];
get_mimic_item( mon, item );
return tileidx_item(item);
}
@@ -775,9 +763,15 @@ int tileidx_monster_base(int mon_idx)
case MONS_DEATH_DRAKE:
return TILE_MONS_DEATH_DRAKE;
case MONS_MERFOLK:
- return TILE_TODO;
+ if (in_water)
+ return TILE_MONS_MERFOLK_FIGHTER_WATER;
+ else
+ return TILE_MONS_MERFOLK_FIGHTER;
case MONS_MERMAID:
- return TILE_TODO;
+ if (in_water)
+ return TILE_MONS_MERMAID_WATER;
+ else
+ return TILE_MONS_MERMAID;
}
return TILE_ERROR;
@@ -1416,6 +1410,8 @@ int tileidx_corpse(int mon)
case MONS_WHITE_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_WHITE; break;
case MONS_DEATH_DRAKE: ch=TILE_CORPSE_DEATH_DRAKE; break;
+ case MONS_MERMAID: ch=TILE_CORPSE_MERMAID; break;
+ case MONS_MERFOLK: ch=TILE_CORPSE_MERFOLK_FIGHTER; break;
}
return ch;
}
@@ -3686,6 +3682,10 @@ void tile_place_monster(int gx, int gy, int idx, bool foreground)
case TILE_MONS_VAMPIRE_KNIGHT:
case TILE_MONS_SKELETAL_WARRIOR:
+ case TILE_MONS_MERMAID:
+ case TILE_MONS_MERMAID_WATER:
+ case TILE_MONS_MERFOLK_FIGHTER:
+ case TILE_MONS_MERFOLK_FIGHTER_WATER:
if (eq != 0 )
t = flag | TileMcacheFind(t0, eq);