summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-27 14:00:53 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-27 14:00:53 +0000
commit826f76090eeb25a0ea8dbc0ff52968ce14732015 (patch)
tree8659c41c2db87f12605aff2817b42752bc8b343b
parent12c403b697ccdab148c55ab2d634f3ee424c0cc0 (diff)
downloadcrawl-ref-826f76090eeb25a0ea8dbc0ff52968ce14732015.tar.gz
crawl-ref-826f76090eeb25a0ea8dbc0ff52968ce14732015.zip
* Add special tiles for the special runes (hells, demon lords).
* Really use Cocytus tiles for the Ice Cave. * Add a small lab vault containing the trapdoor spider because it just fits. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7655 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/lab.des10
-rw-r--r--crawl-ref/source/dungeon.cc3
-rw-r--r--crawl-ref/source/effects.cc8
-rw-r--r--crawl-ref/source/rltiles/dc-item.txt10
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/misc_rune_shoals.pngbin0 -> 1345 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/misc_rune_snake.pngbin0 -> 1179 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/misc_rune_tomb.pngbin0 -> 1169 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_cerebov.pngbin0 -> 653 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_cocytus.pngbin0 -> 914 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_dis.pngbin0 -> 904 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_gehenna.pngbin0 -> 934 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_gloorx_vloq.pngbin0 -> 768 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_lom_lobon.pngbin0 -> 661 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_mnoleg.pngbin0 -> 835 bytes
-rw-r--r--crawl-ref/source/rltiles/item/misc/runes/rune_tartarus.pngbin0 -> 1058 bytes
-rw-r--r--crawl-ref/source/tile2.cc2
-rw-r--r--crawl-ref/source/tilepick.cc33
17 files changed, 60 insertions, 6 deletions
diff --git a/crawl-ref/source/dat/lab.des b/crawl-ref/source/dat/lab.des
index 47a699d5ae..6d6a3ce8b0 100644
--- a/crawl-ref/source/dat/lab.des
+++ b/crawl-ref/source/dat/lab.des
@@ -352,3 +352,13 @@ MAP
........
ENDMAP
# Disheartened?
+
+############################################################################
+# A few monsters: Nothing is as it seems.
+NAME: labyrinth_single_monster
+TAGS: lab allow_dup generate_awake
+KFEAT: x = .
+KMONS: x = trapdoor spider / w:3 wandering mushroom
+MAP
+x
+ENDMAP
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 75a22a57c2..b91d4c3c4e 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -6682,6 +6682,7 @@ static void _vitrify_wall_neighbours(const coord_def pos)
}
}
+// Turns some connected rock or stone walls into the transparent versions.
static void _labyrinth_add_glass_walls(const dgn_region &region)
{
int glass_num = random2(3) + random2(4);
@@ -8269,7 +8270,7 @@ void vault_placement::apply_grid()
{
// NOTE: assumes *no* previous item (I think) or monster (definitely)
// placement.
- for ( rectangle_iterator ri(pos, pos + size - 1); ri; ++ri )
+ for (rectangle_iterator ri(pos, pos + size - 1); ri; ++ri)
{
const coord_def &rp(*ri);
const coord_def dp = rp - pos;
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 7d35debce6..10087e2ddb 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -2508,6 +2508,7 @@ void change_labyrinth(bool msg)
}
#ifdef WIZARD
+ // Remove old highlighted areas to make place for the new ones.
for (rectangle_iterator ri(1); ri; ++ri)
env.map(*ri).property &= ~(FPROP_HIGHLIGHT);
#endif
@@ -2609,6 +2610,9 @@ void change_labyrinth(bool msg)
// Rather than use old_grid directly, replace with an adjacent
// wall type, preferably stone, rock, or metal.
+ // TODO: Blood is currently left on the grid even though it turned
+ // into a wall or floor. Rather, it should be nudged aside to
+ // a grid of similar type.
old_grid = grd[p.x-1][p.y];
if (!grid_is_wall(old_grid))
{
@@ -2623,13 +2627,13 @@ void change_labyrinth(bool msg)
old_grid = DNGN_STONE_WALL;
}
else if (old_grid != DNGN_ROCK_WALL && old_grid != DNGN_STONE_WALL
- && old_grid != DNGN_METAL_WALL)
+ && old_grid != DNGN_METAL_WALL && !one_chance_in(3))
{
old_grid = grd[p.x][p.y+1];
}
}
else if (old_grid != DNGN_ROCK_WALL && old_grid != DNGN_STONE_WALL
- && old_grid != DNGN_METAL_WALL)
+ && old_grid != DNGN_METAL_WALL && !one_chance_in(3))
{
old_grid = grd[p.x+1][p.y];
}
diff --git a/crawl-ref/source/rltiles/dc-item.txt b/crawl-ref/source/rltiles/dc-item.txt
index 4721c8c0b3..2d99f06d9b 100644
--- a/crawl-ref/source/rltiles/dc-item.txt
+++ b/crawl-ref/source/rltiles/dc-item.txt
@@ -821,8 +821,16 @@ misc_crystal MISC_CRYSTAL_BALL_OF_ENERGY
misc_box MISC_EMPTY_EBONY_CASKET
misc_crystal MISC_CRYSTAL_BALL_OF_FIXATION
misc_disc MISC_DISC_OF_STORMS
-misc_rune MISC_RUNE_OF_ZOT
misc_altar MISC_PORTABLE_ALTAR_OF_NEMELEX
+misc_rune MISC_RUNE_OF_ZOT
+runes/rune_tartarus MISC_RUNE_TARTARUS
+runes/rune_cocytus MISC_RUNE_COCYTUS
+runes/rune_dis MISC_RUNE_DIS
+runes/rune_gehenna MISC_RUNE_GEHENNA
+runes/rune_cerebov MISC_RUNE_CEREBOV
+runes/rune_gloorx_vloq MISC_RUNE_GLOORX_VLOQ
+runes/rune_mnoleg MISC_RUNE_MNOLEG
+runes/rune_lom_lobon MISC_RUNE_LOM_LOBON
#OBJ_CORPSES
diff --git a/crawl-ref/source/rltiles/item/misc/runes/misc_rune_shoals.png b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_shoals.png
new file mode 100644
index 0000000000..98b2037300
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_shoals.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/misc_rune_snake.png b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_snake.png
new file mode 100644
index 0000000000..bb84335cba
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_snake.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/misc_rune_tomb.png b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_tomb.png
new file mode 100644
index 0000000000..c77144e24c
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/misc_rune_tomb.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_cerebov.png b/crawl-ref/source/rltiles/item/misc/runes/rune_cerebov.png
new file mode 100644
index 0000000000..822474d27f
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_cerebov.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_cocytus.png b/crawl-ref/source/rltiles/item/misc/runes/rune_cocytus.png
new file mode 100644
index 0000000000..dc0b43d93d
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_cocytus.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_dis.png b/crawl-ref/source/rltiles/item/misc/runes/rune_dis.png
new file mode 100644
index 0000000000..87e6cf6056
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_dis.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_gehenna.png b/crawl-ref/source/rltiles/item/misc/runes/rune_gehenna.png
new file mode 100644
index 0000000000..55457dcdb7
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_gehenna.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_gloorx_vloq.png b/crawl-ref/source/rltiles/item/misc/runes/rune_gloorx_vloq.png
new file mode 100644
index 0000000000..fcc7f739eb
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_gloorx_vloq.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_lom_lobon.png b/crawl-ref/source/rltiles/item/misc/runes/rune_lom_lobon.png
new file mode 100644
index 0000000000..6b3fcb95da
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_lom_lobon.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_mnoleg.png b/crawl-ref/source/rltiles/item/misc/runes/rune_mnoleg.png
new file mode 100644
index 0000000000..280c4172c0
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_mnoleg.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/item/misc/runes/rune_tartarus.png b/crawl-ref/source/rltiles/item/misc/runes/rune_tartarus.png
new file mode 100644
index 0000000000..27cd60a965
--- /dev/null
+++ b/crawl-ref/source/rltiles/item/misc/runes/rune_tartarus.png
Binary files differ
diff --git a/crawl-ref/source/tile2.cc b/crawl-ref/source/tile2.cc
index 70943d6c5d..8edbbc7311 100644
--- a/crawl-ref/source/tile2.cc
+++ b/crawl-ref/source/tile2.cc
@@ -222,7 +222,7 @@ void WallIdx(int &wall, int &floor, int &special)
floor = TILE_FLOOR_SLIME;
return;
}
- else if (you.level_type_name == "ice_cave")
+ else if (you.level_type_name == "ice cave")
{
wall = TILE_WALL_ICE;
floor = TILE_FLOOR_ICE;
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 65e58998f0..0d2abc90ee 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -1745,6 +1745,37 @@ static int _tileidx_corpse(int mon)
return TILE_ERROR;
}
+static int _tileidx_rune(const item_def &item)
+{
+ switch (item.plus)
+ {
+ case RUNE_DIS: return TILE_MISC_RUNE_DIS;
+ case RUNE_GEHENNA: return TILE_MISC_RUNE_GEHENNA;
+ case RUNE_COCYTUS: return TILE_MISC_RUNE_COCYTUS;
+ case RUNE_TARTARUS: return TILE_MISC_RUNE_TARTARUS;
+
+ // special pandemonium runes:
+ case RUNE_MNOLEG: return TILE_MISC_RUNE_MNOLEG;
+ case RUNE_LOM_LOBON: return TILE_MISC_RUNE_LOM_LOBON;
+ case RUNE_CEREBOV: return TILE_MISC_RUNE_CEREBOV;
+ case RUNE_GLOORX_VLOQ: return TILE_MISC_RUNE_GLOORX_VLOQ;
+
+ // All others use the default rune for now.
+ case RUNE_SLIME_PITS:
+ case RUNE_VAULTS:
+ case RUNE_SNAKE_PIT:
+ case RUNE_ELVEN_HALLS:
+ case RUNE_TOMB:
+ case RUNE_SWAMP:
+ case RUNE_SHOALS:
+
+ // pandemonium and abyss runes:
+ case RUNE_DEMONIC:
+ case RUNE_ABYSSAL:
+ default: return TILE_MISC_RUNE_OF_ZOT;
+ }
+}
+
static int _tileidx_misc(const item_def &item)
{
switch(item.sub_type)
@@ -1818,7 +1849,7 @@ static int _tileidx_misc(const item_def &item)
return ch;
}
case MISC_RUNE_OF_ZOT:
- return TILE_MISC_RUNE_OF_ZOT;
+ return _tileidx_rune(item);
}
return TILE_ERROR;