summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-26 17:10:09 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-26 17:10:09 +0000
commita54d0315be1fae4bab7b05dbfe092f374ecfd991 (patch)
treefb625f3094bc9cb1c14c6d7bcac89b8e498e3f5a /crawl-ref
parent5c6b5260c78682faae4822494a61ccb173117d85 (diff)
downloadcrawl-ref-a54d0315be1fae4bab7b05dbfe092f374ecfd991.tar.gz
crawl-ref-a54d0315be1fae4bab7b05dbfe092f374ecfd991.zip
Add fountains of blood (as suggested by Lemuel), and tidy up
the existing fountains: change their order and remove all those superfluous dry fountain types. I couldn't find any place for random generation of fountains, so if that is possible it will have to be disabled for blood fountains outside the hells. I've added a shortcut (Y) for vault creation, though. :) Drinking from such a fountain has a 33% chance of leaving it dry. I think that's it... for now. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3886 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/docs/level_design.txt8
-rw-r--r--crawl-ref/source/direct.cc16
-rw-r--r--crawl-ref/source/dungeon.cc10
-rw-r--r--crawl-ref/source/effects.cc31
-rw-r--r--crawl-ref/source/enum.h25
-rw-r--r--crawl-ref/source/item_use.cc44
-rw-r--r--crawl-ref/source/luadgn.cc8
-rw-r--r--crawl-ref/source/misc.cc4
-rw-r--r--crawl-ref/source/mon-util.cc2
-rw-r--r--crawl-ref/source/monplace.cc2
-rw-r--r--crawl-ref/source/monstuff.cc4
-rw-r--r--crawl-ref/source/rltiles/dc-dngn.txt10
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmpbin0 -> 2102 bytes
-rw-r--r--crawl-ref/source/spells2.cc2
-rw-r--r--crawl-ref/source/terrain.cc2
-rw-r--r--crawl-ref/source/tile1.cc21
-rw-r--r--crawl-ref/source/travel.cc16
-rw-r--r--crawl-ref/source/view.cc18
18 files changed, 117 insertions, 106 deletions
diff --git a/crawl-ref/docs/level_design.txt b/crawl-ref/docs/level_design.txt
index e4acab6d6a..de3cc9298b 100644
--- a/crawl-ref/docs/level_design.txt
+++ b/crawl-ref/docs/level_design.txt
@@ -209,6 +209,7 @@ Features
T - Water fountain
U - Magic fountain
V - Permanently dry fountain
+ Y - Blood fountain (use sparingly!)
Note: Due to the level maker having seen incremental improvements over
the years, there are some inconsistencies. For examples, dangerous
@@ -1300,10 +1301,9 @@ return_reserved_3, return_reserved_4, enter_portal_vault,
exit_portal_vault, altar_zin, altar_shining_one, altar_kikubaaqudgha,
altar_yredelemnul, altar_xom, altar_vehumet, altar_okawaru,
altar_makhleb, altar_sif_muna, altar_trog, altar_nemelex_xobeh,
-altar_elyvilon, altar_lugonu, altar_beogh, blue_fountain,
-dry_fountain_i, sparkling_fountain, dry_fountain_ii, dry_fountain_iii,
-dry_fountain_iv, dry_fountain_v, dry_fountain_vi, dry_fountain_vii,
-dry_fountain_viii, permadry_fountain
+altar_elyvilon, altar_lugonu, altar_beogh, fountain_blue,
+fountain_sparkling, fountain_blood, dry_fountain_blue,
+dry_fountain_sparkling, dry_fountain_blood, permadry_fountain
J. Map Statistics
diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc
index 9792b7ae0b..35354cad74 100644
--- a/crawl-ref/source/direct.cc
+++ b/crawl-ref/source/direct.cc
@@ -1769,17 +1769,15 @@ std::string raw_feature_description(dungeon_feature_type grid,
return ("corrupted altar of Lugonu");
case DNGN_ALTAR_BEOGH:
return ("roughly hewn altar of Beogh");
- case DNGN_BLUE_FOUNTAIN:
+ case DNGN_FOUNTAIN_BLUE:
return ("fountain of clear blue water");
- case DNGN_SPARKLING_FOUNTAIN:
+ case DNGN_FOUNTAIN_SPARKLING:
return ("fountain of sparkling water");
- case DNGN_DRY_FOUNTAIN_I:
- case DNGN_DRY_FOUNTAIN_II:
- case DNGN_DRY_FOUNTAIN_III:
- case DNGN_DRY_FOUNTAIN_IV:
- case DNGN_DRY_FOUNTAIN_V:
- case DNGN_DRY_FOUNTAIN_VI:
- case DNGN_DRY_FOUNTAIN_VIII:
+ case DNGN_FOUNTAIN_BLOOD:
+ return ("fountain of blood");
+ case DNGN_DRY_FOUNTAIN_BLUE:
+ case DNGN_DRY_FOUNTAIN_SPARKLING:
+ case DNGN_DRY_FOUNTAIN_BLOOD:
case DNGN_PERMADRY_FOUNTAIN:
return ("dry fountain");
default:
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index cec70d8cce..d1f5949da7 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -4445,9 +4445,10 @@ dungeon_feature_type map_feature(map_def *map, const coord_def &c, int rawfeat)
(rawfeat == 'F') ? DNGN_GRANITE_STATUE :
(rawfeat == 'I') ? DNGN_ORCISH_IDOL :
(rawfeat == 'G') ? DNGN_GRANITE_STATUE :
- (rawfeat == 'T') ? DNGN_BLUE_FOUNTAIN :
- (rawfeat == 'U') ? DNGN_SPARKLING_FOUNTAIN :
+ (rawfeat == 'T') ? DNGN_FOUNTAIN_BLUE :
+ (rawfeat == 'U') ? DNGN_FOUNTAIN_SPARKLING :
(rawfeat == 'V') ? DNGN_PERMADRY_FOUNTAIN :
+ (rawfeat == 'Y') ? DNGN_FOUNTAIN_BLOOD :
(rawfeat == '\0')? DNGN_ROCK_WALL :
DNGN_FLOOR); // includes everything else
}
@@ -4546,9 +4547,10 @@ static int vault_grid( vault_placement &place,
(vgrid == 'F') ? DNGN_GRANITE_STATUE :
(vgrid == 'I') ? DNGN_ORCISH_IDOL :
(vgrid == 'G') ? DNGN_GRANITE_STATUE :
- (vgrid == 'T') ? DNGN_BLUE_FOUNTAIN :
- (vgrid == 'U') ? DNGN_SPARKLING_FOUNTAIN :
+ (vgrid == 'T') ? DNGN_FOUNTAIN_BLUE :
+ (vgrid == 'U') ? DNGN_FOUNTAIN_SPARKLING :
(vgrid == 'V') ? DNGN_PERMADRY_FOUNTAIN :
+ (vgrid == 'Y') ? DNGN_FOUNTAIN_BLOOD :
(vgrid == '\0')? DNGN_ROCK_WALL :
DNGN_FLOOR); // includes everything else
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 03293442c4..1285909186 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -2867,17 +2867,27 @@ void update_level( double elapsedTime )
delete_cloud( i );
}
-static void _maybe_restart_fountain_flow(const int x, const int y, int tries)
+static void _maybe_restart_fountain_flow(const int x, const int y,
+ const int tries)
{
- while (0 < tries--)
+ dungeon_feature_type grid = grd[x][y];
+ if (grid < DNGN_DRY_FOUNTAIN_BLUE || grid > DNGN_DRY_FOUNTAIN_BLOOD)
+ {
+ return;
+ }
+
+ int i = 0;
+ while (tries > i++)
{
if (!one_chance_in(100))
continue;
-
- if (grd[x][y] > DNGN_SPARKLING_FOUNTAIN)
- grd[x][y] = static_cast<dungeon_feature_type>(grd[x][y] - 1);
- else // grid == DNGN_DRY_FOUNTAIN_I
- grd[x][y] = DNGN_BLUE_FOUNTAIN;
+
+ // make it start flowing again
+ grd[x][y] = static_cast<dungeon_feature_type> (grid
+ - (DNGN_DRY_FOUNTAIN_BLUE - DNGN_FOUNTAIN_BLUE));
+
+ if ( is_terrain_seen(coord_def(x,y)) )
+ set_envmap_obj(x, y, grd[x][y]);
// clean bloody floor
if (is_bloodcovered(x,y))
@@ -2893,6 +2903,8 @@ static void _maybe_restart_fountain_flow(const int x, const int y, int tries)
env.map[x+i][y+j].property = FPROP_NONE;
}
}
+
+ return;
}
}
@@ -2973,9 +2985,8 @@ void update_corpses(double elapsedTime)
for (cx = 0; cx < GXM; cx++)
for (cy = 0; cy < GYM; cy++)
{
- if (grd[cx][cy] == DNGN_DRY_FOUNTAIN_I
- || grd[cx][cy] > DNGN_SPARKLING_FOUNTAIN
- && grd[cx][cy] < DNGN_PERMADRY_FOUNTAIN)
+ if (grd[cx][cy] >= DNGN_DRY_FOUNTAIN_BLUE
+ && grd[cx][cy] < DNGN_PERMADRY_FOUNTAIN)
{
_maybe_restart_fountain_flow(cx, cy, fountain_checks);
}
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 74211b4f56..237d1106ee 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -983,24 +983,21 @@ enum dungeon_feature_type
DNGN_ALTAR_BEOGH,
DNGN_ALTAR_LAST_GOD = DNGN_ALTAR_BEOGH,
- DNGN_BLUE_FOUNTAIN = 200, // 200
- DNGN_DRY_FOUNTAIN_I,
- DNGN_SPARKLING_FOUNTAIN, // aka 'Magic Fountain' {dlb}
- DNGN_DRY_FOUNTAIN_II,
- DNGN_DRY_FOUNTAIN_III,
- DNGN_DRY_FOUNTAIN_IV, // 205
- DNGN_DRY_FOUNTAIN_V,
- DNGN_DRY_FOUNTAIN_VI,
- DNGN_DRY_FOUNTAIN_VII,
- DNGN_DRY_FOUNTAIN_VIII,
- DNGN_PERMADRY_FOUNTAIN = 210, // added (from dungeon.cc/maps.cc) 22jan2000 {dlb}
-
- NUM_REAL_FEATURES,
+ DNGN_FOUNTAIN_BLUE = 200, // 200
+ DNGN_FOUNTAIN_SPARKLING, // aka 'Magic Fountain' {dlb}
+ DNGN_FOUNTAIN_BLOOD,
+ // same order as above!
+ DNGN_DRY_FOUNTAIN_BLUE,
+ DNGN_DRY_FOUNTAIN_SPARKLING,
+ DNGN_DRY_FOUNTAIN_BLOOD, // 205
+ DNGN_PERMADRY_FOUNTAIN,
+
+ NUM_REAL_FEATURES, // 207
// Real terrain must all occur before 256 to guarantee it fits
// into the unsigned char used for the grid!
- // There aren't really terrain, but they're passed in and used
+ // These aren't really terrain, but they're passed in and used
// to get their appearance character so I'm putting them here for now.
DNGN_ITEM_ORB = 256,
DNGN_INVIS_EXPOSED = 257,
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index b3895f384a..61003814bd 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -3561,8 +3561,8 @@ void drink( int slot )
if (slot == -1)
{
- if (grd[you.x_pos][you.y_pos] == DNGN_BLUE_FOUNTAIN
- || grd[you.x_pos][you.y_pos] == DNGN_SPARKLING_FOUNTAIN)
+ if (grd[you.x_pos][you.y_pos] >= DNGN_FOUNTAIN_BLUE
+ && grd[you.x_pos][you.y_pos] <= DNGN_FOUNTAIN_BLOOD)
{
if (drink_fountain())
return;
@@ -3644,7 +3644,7 @@ bool drink_fountain()
{
const dungeon_feature_type feat = grd[you.x_pos][you.y_pos];
- if ( feat != DNGN_BLUE_FOUNTAIN && feat != DNGN_SPARKLING_FOUNTAIN )
+ if ( feat < DNGN_FOUNTAIN_BLUE || feat > DNGN_FOUNTAIN_BLOOD )
return false;
if (you.flight_mode() == FL_LEVITATE)
@@ -3654,17 +3654,26 @@ bool drink_fountain()
}
potion_type fountain_effect = POT_WATER;
- if ( feat == DNGN_BLUE_FOUNTAIN )
+ if ( feat == DNGN_FOUNTAIN_BLUE )
{
if (!yesno("Drink from the fountain?"))
return false;
- else
- mpr("You drink the pure, clear water.");
+
+ mpr("You drink the pure, clear water.");
+ }
+ else if ( feat == DNGN_FOUNTAIN_BLOOD )
+ {
+ if (!yesno("Drink from the fountain of blood?"))
+ return false;
+
+ mpr("You drink the blood.");
+ fountain_effect = POT_BLOOD;
}
else // sparkling fountain
{
if (!yesno("Drink from the sparkling fountain?"))
return false;
+
mpr("You drink the sparkling water.");
const potion_type effects[] =
@@ -3692,24 +3701,30 @@ bool drink_fountain()
weights + ARRAYSIZE(weights))];
}
- if (fountain_effect != POT_WATER)
+ if (fountain_effect != POT_WATER && fountain_effect != POT_BLOOD)
xom_is_stimulated(64);
- potion_effect(fountain_effect, 100);
+ // good gods do not punish for bad random effects
+ potion_effect(fountain_effect, 100, feat != DNGN_FOUNTAIN_SPARKLING);
bool gone_dry = false;
- if ( feat == DNGN_BLUE_FOUNTAIN )
+ if ( feat == DNGN_FOUNTAIN_BLUE )
{
if ( one_chance_in(20) )
gone_dry = true;
}
+ else if ( feat == DNGN_FOUNTAIN_BLOOD )
+ {
+ if ( one_chance_in(3) )
+ gone_dry = true;
+ }
else // sparkling fountain
{
if (one_chance_in(10))
gone_dry = true;
else if ( random2(50) > 40 ) // no message!
{
- grd[you.x_pos][you.y_pos] = DNGN_BLUE_FOUNTAIN;
+ grd[you.x_pos][you.y_pos] = DNGN_FOUNTAIN_BLUE;
set_terrain_changed(you.x_pos, you.y_pos);
}
}
@@ -3717,11 +3732,10 @@ bool drink_fountain()
if (gone_dry)
{
mpr("The fountain dries up!");
- if (feat == DNGN_BLUE_FOUNTAIN)
- grd[you.x_pos][you.y_pos] = DNGN_DRY_FOUNTAIN_I;
- else
- grd[you.x_pos][you.y_pos] = DNGN_DRY_FOUNTAIN_II;
-
+
+ grd[you.x_pos][you.y_pos] = static_cast<dungeon_feature_type>(feat
+ + DNGN_DRY_FOUNTAIN_BLUE - DNGN_FOUNTAIN_BLUE);
+
set_terrain_changed(you.x_pos, you.y_pos);
crawl_state.cancel_cmd_repeat();
diff --git a/crawl-ref/source/luadgn.cc b/crawl-ref/source/luadgn.cc
index c1abc08968..7820c3593f 100644
--- a/crawl-ref/source/luadgn.cc
+++ b/crawl-ref/source/luadgn.cc
@@ -1101,11 +1101,9 @@ const char *dngn_feature_names[] =
"altar_yredelemnul", "altar_xom", "altar_vehumet",
"altar_okawaru", "altar_makhleb", "altar_sif_muna", "altar_trog",
"altar_nemelex_xobeh", "altar_elyvilon", "altar_lugonu",
- "altar_beogh", "", "", "", "", "", "", "blue_fountain",
- "dry_fountain_i", "sparkling_fountain", "dry_fountain_ii",
- "dry_fountain_iii", "dry_fountain_iv", "dry_fountain_v",
- "dry_fountain_vi", "dry_fountain_vii", "dry_fountain_viii",
- "permadry_fountain"
+ "altar_beogh", "", "", "", "", "", "", "fountain_blue",
+ "fountain_sparkling", "fountain_blood", "dry_fountain_blue",
+ "dry_fountain_sparkling", "dry_fountain_blood", "permadry_fountain"
};
dungeon_feature_type dungeon_feature_by_name(const std::string &name)
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index 9d7cd96864..80219808a1 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -304,8 +304,8 @@ static bool allow_bleeding_on_square(int x, int y)
if (grd[x][y] >= DNGN_LAVA && grd[x][y] < DNGN_FLOOR)
return (false);
- // no spattering into fountains
- if (grd[x][y] == DNGN_BLUE_FOUNTAIN || grd[x][y] == DNGN_SPARKLING_FOUNTAIN)
+ // no spattering into fountains (other than blood)
+ if (grd[x][y] == DNGN_FOUNTAIN_BLUE || grd[x][y] == DNGN_FOUNTAIN_SPARKLING)
return (false);
// the good gods like to keep their altars pristine
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 3fe4407750..44949915ae 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -5473,7 +5473,7 @@ std::string do_mon_str_replacements(const std::string &in_msg,
msg = replace_all(msg, "@surface@", "lava");
else if (feat == DNGN_DEEP_WATER || feat == DNGN_SHALLOW_WATER)
msg = replace_all(msg, "@surface@", "water");
- else if (feat >= DNGN_ALTAR_ZIN && feat < DNGN_BLUE_FOUNTAIN)
+ else if (feat >= DNGN_ALTAR_FIRST_GOD && feat <= DNGN_ALTAR_LAST_GOD)
msg = replace_all(msg, "@surface@", "altar");
else
msg = replace_all(msg, "@surface@", "ground");
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 2a51fcf882..557cc8ec6b 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -69,7 +69,7 @@ bool grid_compatible(dungeon_feature_type grid_wanted,
return (grid_wanted == actual_grid
|| (grid_wanted == DNGN_DEEP_WATER
&& (actual_grid == DNGN_SHALLOW_WATER
- || actual_grid == DNGN_BLUE_FOUNTAIN)));
+ || actual_grid == DNGN_FOUNTAIN_BLUE)));
}
// Can this monster survive on actual_grid?
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 84c1367556..0751bd2827 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -5615,9 +5615,7 @@ bool _mon_can_move_to_pos(const monsters *monster, const int count_x,
// Fire elementals avoid water and cold
if (monster->type == MONS_FIRE_ELEMENTAL
- && (target_grid == DNGN_DEEP_WATER
- || target_grid == DNGN_SHALLOW_WATER
- || target_grid == DNGN_BLUE_FOUNTAIN
+ && (grid_is_watery(target_grid)
|| targ_cloud_type == CLOUD_COLD))
{
return false;
diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt
index 96e0562c47..ab2e6b96a6 100644
--- a/crawl-ref/source/rltiles/dc-dngn.txt
+++ b/crawl-ref/source/rltiles/dc-dngn.txt
@@ -182,13 +182,7 @@ dngn_altar_elyvilon DNGN_ALTAR_ELYVILON
dngn_altar_lugonu DNGN_ALTAR_LUGONU
dngn_altar_beogh DNGN_ALTAR_BEOGH
dngn_blue_fountain DNGN_BLUE_FOUNTAIN
-dngn_dry_fountain DNGN_DRY_FOUNTAIN
dngn_sparkling_fountain DNGN_SPARKLING_FOUNTAIN
-#858 DNGN_DRY_FOUNTAIN_II
-#858 DNGN_DRY_FOUNTAIN_III
-#858 DNGN_DRY_FOUNTAIN_IV
-#858 DNGN_DRY_FOUNTAIN_V
-#858 DNGN_DRY_FOUNTAIN_VI
-#858 DNGN_DRY_FOUNTAIN_VII
-#858 DNGN_DRY_FOUNTAIN_VIII
+dngn_blood_fountain DNGN_BLOOD_FOUNTAIN
+dngn_dry_fountain DNGN_DRY_FOUNTAIN
#858 DNGN_PERMADRY_FOUNTAIN
diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmp
new file mode 100644
index 0000000000..3a7df2527d
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmp
Binary files differ
diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc
index 56ac3a6df8..010e95f46a 100644
--- a/crawl-ref/source/spells2.cc
+++ b/crawl-ref/source/spells2.cc
@@ -1292,7 +1292,7 @@ int summon_elemental(int pow, int restricted_type,
}
else if ((grd[ targ_x ][ targ_y ] == DNGN_DEEP_WATER
|| grd[ targ_x ][ targ_y ] == DNGN_SHALLOW_WATER
- || grd[ targ_x ][ targ_y ] == DNGN_BLUE_FOUNTAIN)
+ || grd[ targ_x ][ targ_y ] == DNGN_FOUNTAIN_BLUE)
&& (restricted_type == 0 || restricted_type == MONS_WATER_ELEMENTAL))
{
type_summoned = MONS_WATER_ELEMENTAL;
diff --git a/crawl-ref/source/terrain.cc b/crawl-ref/source/terrain.cc
index 6dc4224162..fbd031907a 100644
--- a/crawl-ref/source/terrain.cc
+++ b/crawl-ref/source/terrain.cc
@@ -203,7 +203,7 @@ bool grid_is_water( dungeon_feature_type grid )
bool grid_is_watery( dungeon_feature_type grid )
{
- return (grid_is_water(grid) || grid == DNGN_BLUE_FOUNTAIN);
+ return (grid_is_water(grid) || grid == DNGN_FOUNTAIN_BLUE);
}
bool grid_destroys_items( dungeon_feature_type grid )
diff --git a/crawl-ref/source/tile1.cc b/crawl-ref/source/tile1.cc
index db27bf9663..ca04d07d00 100644
--- a/crawl-ref/source/tile1.cc
+++ b/crawl-ref/source/tile1.cc
@@ -1990,20 +1990,17 @@ int tileidx_feature(int object, int gx, int gy)
return TILE_DNGN_ALTAR_LUGONU;
case DNGN_ALTAR_BEOGH:
return TILE_DNGN_ALTAR_BEOGH;
- case DNGN_BLUE_FOUNTAIN:
+ case DNGN_FOUNTAIN_BLUE:
return TILE_DNGN_BLUE_FOUNTAIN;
- case DNGN_DRY_FOUNTAIN_I:
- case DNGN_DRY_FOUNTAIN_II:
- case DNGN_DRY_FOUNTAIN_III:
- case DNGN_DRY_FOUNTAIN_IV:
- case DNGN_DRY_FOUNTAIN_V:
- case DNGN_DRY_FOUNTAIN_VI:
- case DNGN_DRY_FOUNTAIN_VII:
- case DNGN_DRY_FOUNTAIN_VIII:
- case DNGN_PERMADRY_FOUNTAIN :
- return TILE_DNGN_DRY_FOUNTAIN;
- case DNGN_SPARKLING_FOUNTAIN:
+ case DNGN_FOUNTAIN_SPARKLING:
return TILE_DNGN_SPARKLING_FOUNTAIN;
+ case DNGN_FOUNTAIN_BLOOD:
+ return TILE_DNGN_BLOOD_FOUNTAIN;
+ case DNGN_DRY_FOUNTAIN_BLUE:
+ case DNGN_DRY_FOUNTAIN_SPARKLING:
+ case DNGN_DRY_FOUNTAIN_BLOOD:
+ case DNGN_PERMADRY_FOUNTAIN:
+ return TILE_DNGN_DRY_FOUNTAIN;
}
return TILE_ERROR;
diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc
index 0507ce4c14..b058dcead0 100644
--- a/crawl-ref/source/travel.cc
+++ b/crawl-ref/source/travel.cc
@@ -625,16 +625,12 @@ void initialise_travel()
traversable_terrain[DNGN_ALTAR_ELYVILON] =
traversable_terrain[DNGN_ALTAR_LUGONU] =
traversable_terrain[DNGN_ALTAR_BEOGH] =
- traversable_terrain[DNGN_BLUE_FOUNTAIN] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_I] =
- traversable_terrain[DNGN_SPARKLING_FOUNTAIN] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_II] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_III] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_IV] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_V] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_VI] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_VII] =
- traversable_terrain[DNGN_DRY_FOUNTAIN_VIII] =
+ traversable_terrain[DNGN_FOUNTAIN_BLUE] =
+ traversable_terrain[DNGN_FOUNTAIN_SPARKLING] =
+ traversable_terrain[DNGN_FOUNTAIN_BLOOD] =
+ traversable_terrain[DNGN_DRY_FOUNTAIN_BLUE] =
+ traversable_terrain[DNGN_DRY_FOUNTAIN_SPARKLING] =
+ traversable_terrain[DNGN_DRY_FOUNTAIN_BLOOD] =
traversable_terrain[DNGN_PERMADRY_FOUNTAIN] =
traversable_terrain[DNGN_CLOSED_DOOR] =
traversable_terrain[DNGN_SHALLOW_WATER] =
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 14480e3631..7707818c74 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -4118,18 +4118,24 @@ void init_feature_table( void )
Feature[i].seen_colour = EC_BEOGH;
break;
- case DNGN_BLUE_FOUNTAIN:
+ case DNGN_FOUNTAIN_BLUE:
Feature[i].colour = BLUE;
- Feature[i].dchar = DCHAR_FOUNTAIN;
+ Feature[i].dchar = DCHAR_FOUNTAIN;
break;
- case DNGN_SPARKLING_FOUNTAIN:
+ case DNGN_FOUNTAIN_SPARKLING:
Feature[i].colour = LIGHTBLUE;
- Feature[i].dchar = DCHAR_FOUNTAIN;
+ Feature[i].dchar = DCHAR_FOUNTAIN;
+ break;
+
+ case DNGN_FOUNTAIN_BLOOD:
+ Feature[i].colour = RED;
+ Feature[i].dchar = DCHAR_FOUNTAIN;
break;
- case DNGN_DRY_FOUNTAIN_I:
- case DNGN_DRY_FOUNTAIN_II:
+ case DNGN_DRY_FOUNTAIN_BLUE:
+ case DNGN_DRY_FOUNTAIN_SPARKLING:
+ case DNGN_DRY_FOUNTAIN_BLOOD:
case DNGN_PERMADRY_FOUNTAIN:
Feature[i].colour = LIGHTGREY;
Feature[i].dchar = DCHAR_FOUNTAIN;