From a54d0315be1fae4bab7b05dbfe092f374ecfd991 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Wed, 26 Mar 2008 17:10:09 +0000 Subject: 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 --- crawl-ref/source/direct.cc | 16 ++++---- crawl-ref/source/dungeon.cc | 10 +++-- crawl-ref/source/effects.cc | 31 ++++++++++----- crawl-ref/source/enum.h | 25 ++++++------ crawl-ref/source/item_use.cc | 44 ++++++++++++++------- crawl-ref/source/luadgn.cc | 8 ++-- crawl-ref/source/misc.cc | 4 +- crawl-ref/source/mon-util.cc | 2 +- crawl-ref/source/monplace.cc | 2 +- crawl-ref/source/monstuff.cc | 4 +- crawl-ref/source/rltiles/dc-dngn.txt | 10 +---- .../source/rltiles/dc-dngn/dngn_blood_fountain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/spells2.cc | 2 +- crawl-ref/source/terrain.cc | 2 +- crawl-ref/source/tile1.cc | 21 +++++----- crawl-ref/source/travel.cc | 16 +++----- crawl-ref/source/view.cc | 18 ++++++--- 17 files changed, 113 insertions(+), 102 deletions(-) create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmp (limited to 'crawl-ref/source') 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(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 (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(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 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_blood_fountain.bmp 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; -- cgit v1.2.3-54-g00ecf