summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-07 15:06:00 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-07 15:06:00 +0000
commit8e904ab0620577064f4a818272b152d1f5d2d3db (patch)
treedd9d9542db26e0bb398235e49ffa3c7f2ceeac0b /crawl-ref/source
parent1a6365fbd24ab134842816757600de0264f39362 (diff)
downloadcrawl-ref-8e904ab0620577064f4a818272b152d1f5d2d3db.tar.gz
crawl-ref-8e904ab0620577064f4a818272b152d1f5d2d3db.zip
Turfed out obsolete orange crystal statue and silver statue features.
Moved MINMOVE and MINSEE brain damage into the dungeon_feature_type enumeration where it is clearer what they represent. Fixed ice statues not being appropriately affected by Shatter and Lee's. Moved 'v' examine hint information and feature notability into feature_def flags. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2061 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/beam.cc4
-rw-r--r--crawl-ref/source/defines.h6
-rw-r--r--crawl-ref/source/delay.cc2
-rw-r--r--crawl-ref/source/direct.cc18
-rw-r--r--crawl-ref/source/dungeon.cc13
-rw-r--r--crawl-ref/source/enum.h25
-rw-r--r--crawl-ref/source/externs.h5
-rw-r--r--crawl-ref/source/misc.cc4
-rw-r--r--crawl-ref/source/mon-util.cc2
-rw-r--r--crawl-ref/source/monstuff.cc2
-rw-r--r--crawl-ref/source/spells4.cc37
-rw-r--r--crawl-ref/source/tutorial.cc6
-rw-r--r--crawl-ref/source/view.cc89
-rw-r--r--crawl-ref/source/view.h8
14 files changed, 85 insertions, 136 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index cd1ae2acd2..3bb7f0c4a5 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2655,9 +2655,7 @@ static int affect_wall(bolt &beam, int x, int y)
}
if (targ_grid == DNGN_ORCISH_IDOL
- || targ_grid == DNGN_SILVER_STATUE
- || targ_grid == DNGN_GRANITE_STATUE
- || targ_grid == DNGN_ORANGE_CRYSTAL_STATUE)
+ || targ_grid == DNGN_GRANITE_STATUE)
{
grd[x][y] = DNGN_FLOOR;
diff --git a/crawl-ref/source/defines.h b/crawl-ref/source/defines.h
index c71b24926b..8db899855e 100644
--- a/crawl-ref/source/defines.h
+++ b/crawl-ref/source/defines.h
@@ -126,12 +126,6 @@
// max shops randomly generated in a level.
#define MAX_RANDOM_SHOPS 5
-// lowest grid value which can be passed by walking etc.
-#define MINMOVE 31
-
-// lowest grid value which can be seen through
-#define MINSEE 11
-
// Can be passed to monster_die to indicate that a friendly did the killing.
#define ANON_FRIENDLY_MONSTER -1
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 586fdc1d49..e18e7a8c12 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -528,8 +528,6 @@ static void finish_delay(const delay_queue_item &delay)
case DNGN_METAL_WALL:
case DNGN_GREEN_CRYSTAL_WALL:
case DNGN_WAX_WALL:
- case DNGN_SILVER_STATUE:
- case DNGN_ORANGE_CRYSTAL_STATUE:
ouch(1 + you.hp, 0, KILLED_BY_PETRIFICATION);
break;
diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc
index d4a35a4b97..9c347adaeb 100644
--- a/crawl-ref/source/direct.cc
+++ b/crawl-ref/source/direct.cc
@@ -1352,12 +1352,8 @@ std::string raw_feature_description(dungeon_feature_type grid,
return ("orcish idol");
case DNGN_WAX_WALL:
return ("wall of solid wax");
- case DNGN_SILVER_STATUE:
- return ("silver statue");
case DNGN_GRANITE_STATUE:
return ("granite statue");
- case DNGN_ORANGE_CRYSTAL_STATUE:
- return ("orange crystal statue");
case DNGN_LAVA:
return ("Some lava");
case DNGN_DEEP_WATER:
@@ -1521,22 +1517,16 @@ static std::string marker_feature_description(const coord_def &p)
return ("");
}
+#ifndef DEBUG_DIAGNOSTICS
// Is a feature interesting enough to 'v'iew it, even if a player normally
// doesn't care about descriptions, i.e. does the description hold important
// information? (Yes, this is entirely subjective. JPEG)
+
static bool interesting_feature(dungeon_feature_type feat)
{
- switch (feat)
- {
- case DNGN_ENTER_ORCISH_MINES:
- case DNGN_ENTER_SLIME_PITS:
- case DNGN_ENTER_LABYRINTH:
-// case DNGN_SPARKLING_FOUNTAIN:
- return true;
- default:
- return false;
- }
+ return (get_feature_def(feat).flags & FFT_EXAMINE_HINT);
}
+#endif
std::string feature_description(int mx, int my, description_level_type dtype,
bool add_stop)
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 2c69791907..4f037a7137 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -3952,9 +3952,7 @@ dungeon_feature_type map_feature(map_def *map, const coord_def &c, int rawfeat)
(rawfeat == 'C') ? pick_an_altar() : // f(x) elsewhere {dlb}
(rawfeat == 'F') ? DNGN_GRANITE_STATUE :
(rawfeat == 'I') ? DNGN_ORCISH_IDOL :
- (rawfeat == 'S') ? DNGN_SILVER_STATUE :
(rawfeat == 'G') ? DNGN_GRANITE_STATUE :
- (rawfeat == 'H') ? DNGN_ORANGE_CRYSTAL_STATUE :
(rawfeat == 'T') ? DNGN_BLUE_FOUNTAIN :
(rawfeat == 'U') ? DNGN_SPARKLING_FOUNTAIN :
(rawfeat == 'V') ? DNGN_PERMADRY_FOUNTAIN :
@@ -4024,8 +4022,7 @@ static int vault_grid( vault_placement &place,
}
// first, set base tile for grids {dlb}:
- const dungeon_feature_type grid =
- grd[vx][vy] =
+ grd[vx][vy] =
((vgrid == -1) ? grd[vx][vy] :
(vgrid == 'x') ? DNGN_ROCK_WALL :
(vgrid == 'X') ? DNGN_PERMAROCK_WALL :
@@ -4053,9 +4050,7 @@ static int vault_grid( vault_placement &place,
(vgrid == 'C') ? pick_an_altar() : // f(x) elsewhere {dlb}
(vgrid == 'F') ? DNGN_GRANITE_STATUE :
(vgrid == 'I') ? DNGN_ORCISH_IDOL :
- (vgrid == 'S') ? DNGN_SILVER_STATUE :
(vgrid == 'G') ? DNGN_GRANITE_STATUE :
- (vgrid == 'H') ? DNGN_ORANGE_CRYSTAL_STATUE :
(vgrid == 'T') ? DNGN_BLUE_FOUNTAIN :
(vgrid == 'U') ? DNGN_SPARKLING_FOUNTAIN :
(vgrid == 'V') ? DNGN_PERMADRY_FOUNTAIN :
@@ -4189,12 +4184,10 @@ static int vault_grid( vault_placement &place,
dgn_place_item_explicit(vgrid - 'd', vx, vy, place, level_number);
}
- if (grid == DNGN_ORANGE_CRYSTAL_STATUE
- || grid == DNGN_SILVER_STATUE)
+ if (vgrid == 'S' || vgrid == 'H')
{
const int mtype =
- grid == DNGN_ORANGE_CRYSTAL_STATUE? MONS_ORANGE_STATUE
- : MONS_SILVER_STATUE;
+ vgrid == 'H'? MONS_ORANGE_STATUE : MONS_SILVER_STATUE;
grd[vx][vy] = DNGN_FLOOR;
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index a11550c525..aead4414c7 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -993,12 +993,6 @@ enum drop_mode_type
DM_MULTI
};
-// lowest grid value which can be occupied (walk, swim, fly)
-#define MINMOVE 31
-
-// lowest grid value which can be seen through
-#define MINSEE 11
-
// When adding:
//
// * New stairs/portals: update grid_stair_direction.
@@ -1023,11 +1017,15 @@ enum dungeon_feature_type
DNGN_WAX_WALL, // 8
DNGN_PERMAROCK_WALL, // 9 - for undiggable walls
- DNGN_SILVER_STATUE = 21, // 21
- DNGN_GRANITE_STATUE,
- DNGN_ORANGE_CRYSTAL_STATUE, // 23
+ // XXX: lowest grid value which can be seen through
+ DNGN_MINSEE = 11,
+
+ DNGN_GRANITE_STATUE = 21, // 21
DNGN_STATUE_RESERVED_1,
- DNGN_STATUE_RESERVED_2, // 25
+ DNGN_STATUE_RESERVED_2,
+
+ // XXX: lowest grid value which can be passed by walking etc.
+ DNGN_MINMOVE = 31,
DNGN_LAVA = 61, // 61
DNGN_DEEP_WATER, // 62
@@ -1334,6 +1332,13 @@ enum equipment_type
EQ_ALL_ARMOUR // check all armour types
};
+enum feature_flag_type
+{
+ FFT_NONE = 0,
+ FFT_NOTABLE = 0x1, // should be noted for dungeon overview
+ FFT_EXAMINE_HINT = 0x2 // could get an "examine-this" hint.
+};
+
enum fire_type
{
FIRE_NONE = 0x0000,
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index b4cf983058..287552ed8c 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -1535,8 +1535,9 @@ struct feature_def
unsigned short seen_colour; // map_colour when is_terrain_seen()
unsigned short em_colour; // Emphasised colour when in LoS.
unsigned short seen_em_colour; // Emphasised colour when out of LoS
- bool notable; // gets noted when seen
- bool seen_effect; // requires special handling when seen
+ unsigned flags;
+
+ bool is_notable() const { return (flags & FFT_NOTABLE); }
};
struct feature_override
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index ac8efb3947..cc0bbd550b 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -281,12 +281,12 @@ command_type grid_stair_direction(dungeon_feature_type grid)
bool grid_is_opaque( dungeon_feature_type grid )
{
- return (grid < MINSEE && grid != DNGN_ORCISH_IDOL);
+ return (grid < DNGN_MINSEE && grid != DNGN_ORCISH_IDOL);
}
bool grid_is_solid( dungeon_feature_type grid )
{
- return (grid < MINMOVE);
+ return (grid < DNGN_MINMOVE);
}
bool grid_is_solid( int x, int y )
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 627f80e6e3..ff7ef0d590 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -4684,7 +4684,7 @@ std::string do_mon_str_replacements(const std::string in_msg,
if (see_grid(monster->x, monster->y))
{
dungeon_feature_type feat = grd[monster->x][monster->y];
- if (feat < MINMOVE || feat >= NUM_REAL_FEATURES)
+ if (feat < DNGN_MINMOVE || feat >= NUM_REAL_FEATURES)
msg = replace_all(msg, "@surface@", "buggy surface");
else if (feat == DNGN_LAVA)
msg = replace_all(msg, "@surface@", "lava");
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index d2e574b950..120c4be4da 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -4486,7 +4486,7 @@ static void monster_move(monsters *monster)
|| habitat != DNGN_FLOOR
|| mons_class_flag( monster->type, M_AMPHIBIOUS ))
{
- okmove = MINMOVE;
+ okmove = DNGN_MINMOVE;
}
for (count_x = 0; count_x < 3; count_x++)
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index d4b4656cc8..4ad98dcf7e 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -348,7 +348,6 @@ static int shatter_walls(int x, int y, int pow, int garbage)
break;
case DNGN_METAL_WALL:
- case DNGN_SILVER_STATUE:
stuff = DEBRIS_METAL;
chance = pow / 10;
break;
@@ -369,11 +368,6 @@ static int shatter_walls(int x, int y, int pow, int garbage)
stuff = DEBRIS_ROCK;
break;
- case DNGN_ORANGE_CRYSTAL_STATUE:
- chance = pow / 6;
- stuff = DEBRIS_CRYSTAL;
- break;
-
case DNGN_GREEN_CRYSTAL_WALL:
chance = 50;
stuff = DEBRIS_CRYSTAL;
@@ -2389,6 +2383,7 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike
switch (menv[mon].type)
{
+ case MONS_ICE_STATUE:
case MONS_ICE_BEAST: // blast of ice fragments
case MONS_SIMULACRUM_SMALL:
case MONS_SIMULACRUM_LARGE:
@@ -2477,8 +2472,14 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike
blast.damage.num = 6;
}
- if (player_hurt_monster(mon, roll_dice( blast.damage )))
- blast.damage.num += 2;
+ {
+ int statue_damage = roll_dice(blast.damage) * 2;
+ if (pow >= 50 && one_chance_in(10))
+ statue_damage = menv[mon].hit_points;
+
+ if (player_hurt_monster(mon, statue_damage))
+ blast.damage.num += 2;
+ }
break;
case MONS_CRYSTAL_GOLEM:
@@ -2558,14 +2559,6 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike
case DNGN_METAL_WALL:
what = "metal wall";
blast.colour = CYAN;
- // fallthru
- case DNGN_SILVER_STATUE:
- if (what == NULL)
- {
- what = "silver statue";
- blast.colour = WHITE;
- }
-
explode = true;
blast.name = "blast of metal fragments";
blast.damage.num = 4;
@@ -2585,23 +2578,13 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike
case DNGN_GREEN_CRYSTAL_WALL: // crystal -- large & nasty explosion
what = "crystal wall";
blast.colour = GREEN;
- // fallthru
- case DNGN_ORANGE_CRYSTAL_STATUE:
- if (what == NULL)
- {
- what = "crystal statue";
- blast.colour = LIGHTRED; //jmf: == orange, right?
- }
-
explode = true;
blast.ex_size = 2;
blast.name = "blast of crystal shards";
blast.damage.num = 5;
if (okay_to_dest
- && ((grid == DNGN_GREEN_CRYSTAL_WALL && coinflip())
- || (grid == DNGN_ORANGE_CRYSTAL_STATUE
- && pow >= 50 && one_chance_in(10))))
+ && grid == DNGN_GREEN_CRYSTAL_WALL && coinflip())
{
blast.ex_size = coinflip() ? 3 : 2;
grd[beam.tx][beam.ty] = DNGN_FLOOR;
diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc
index 8416b6eade..d5acaff881 100644
--- a/crawl-ref/source/tutorial.cc
+++ b/crawl-ref/source/tutorial.cc
@@ -1933,8 +1933,6 @@ bool tutorial_feat_interesting(dungeon_feature_type feat)
{
case DNGN_ORCISH_IDOL:
case DNGN_GRANITE_STATUE:
- case DNGN_SILVER_STATUE:
- case DNGN_ORANGE_CRYSTAL_STATUE:
case DNGN_TRAP_MAGICAL:
case DNGN_TRAP_MECHANICAL:
case DNGN_STONE_STAIRS_DOWN_I:
@@ -1960,10 +1958,6 @@ void tutorial_describe_feature(dungeon_feature_type feat)
{
case DNGN_ORCISH_IDOL:
case DNGN_GRANITE_STATUE:
- case DNGN_SILVER_STATUE:
- case DNGN_ORANGE_CRYSTAL_STATUE:
- ostr << "Beware! Sometimes such a statue actually has a mind of its own.";
- break;
case DNGN_TRAP_MAGICAL:
case DNGN_TRAP_MECHANICAL:
ostr << "These nasty constructions can do physical damage (with "
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 53cd62555d..896eb12874 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -105,6 +105,11 @@ static int get_item_dngn_code(const item_def &item);
static void set_show_backup( int ex, int ey );
static int get_viewobj_flags(int viewobj);
+const feature_def &get_feature_def(dungeon_feature_type feat)
+{
+ return (Feature[feat]);
+}
+
unsigned map_cell::glyph() const
{
if (!object)
@@ -235,7 +240,7 @@ void clear_envmap_grid( int x, int y )
bool is_notable_terrain(dungeon_feature_type ftype)
{
- return Feature[ftype].notable;
+ return (Feature[ftype].is_notable());
}
#if defined(WIN32CONSOLE) || defined(DOS)
@@ -359,7 +364,7 @@ static void get_symbol( int x, int y,
}
// Note anything we see that's notable
- if ((x || y) && fdef.notable)
+ if ((x || y) && fdef.is_notable())
seen_notable_thing( static_cast<dungeon_feature_type>(object),
x, y );
}
@@ -3372,8 +3377,7 @@ void init_feature_table( void )
{
Feature[i].symbol = 0;
Feature[i].colour = BLACK; // means must be set some other way
- Feature[i].notable = false;
- Feature[i].seen_effect = false;
+ Feature[i].flags = FFT_NONE;
Feature[i].magic_symbol = 0; // made equal to symbol if untouched
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = BLACK; // marks no special seen map handling
@@ -3439,23 +3443,11 @@ void init_feature_table( void )
Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
break; // wax wall
- case DNGN_SILVER_STATUE:
- Feature[i].symbol = Options.char_table[ DCHAR_STATUE ];
- Feature[i].colour = WHITE;
- Feature[i].seen_effect = true;
- break;
-
case DNGN_GRANITE_STATUE:
Feature[i].symbol = Options.char_table[ DCHAR_STATUE ];
Feature[i].colour = LIGHTGREY;
break;
- case DNGN_ORANGE_CRYSTAL_STATUE:
- Feature[i].symbol = Options.char_table[ DCHAR_STATUE ];
- Feature[i].colour = LIGHTRED;
- Feature[i].seen_effect = true;
- break;
-
case DNGN_LAVA:
Feature[i].symbol = Options.char_table[ DCHAR_WAVY ];
Feature[i].colour = RED;
@@ -3480,7 +3472,6 @@ void init_feature_table( void )
case DNGN_EXIT_HELL:
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
Feature[i].colour = LIGHTRED;
- Feature[i].notable = false;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = LIGHTRED;
break;
@@ -3488,7 +3479,7 @@ void init_feature_table( void )
case DNGN_ENTER_HELL:
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
Feature[i].colour = RED;
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = RED;
break;
@@ -3520,7 +3511,7 @@ void init_feature_table( void )
case DNGN_ENTER_SHOP:
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
Feature[i].colour = YELLOW;
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = YELLOW;
break;
@@ -3528,17 +3519,19 @@ void init_feature_table( void )
case DNGN_ENTER_LABYRINTH:
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
Feature[i].colour = CYAN;
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = CYAN;
break;
case DNGN_ENTER_PORTAL_VAULT:
+ Feature[i].flags |= FFT_NOTABLE;
+ // fall through
+
case DNGN_EXIT_PORTAL_VAULT:
- Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].colour = EC_SHIMMER_BLUE;
- Feature[i].notable = true;
- Feature[i].map_colour = LIGHTGREY;
+ Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
+ Feature[i].colour = EC_SHIMMER_BLUE;
+ Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = EC_SHIMMER_BLUE;
break;
@@ -3577,7 +3570,7 @@ void init_feature_table( void )
case DNGN_ENTER_DIS:
Feature[i].colour = CYAN;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = CYAN;
break;
@@ -3585,7 +3578,7 @@ void init_feature_table( void )
case DNGN_ENTER_GEHENNA:
Feature[i].colour = RED;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = RED;
break;
@@ -3593,7 +3586,7 @@ void init_feature_table( void )
case DNGN_ENTER_COCYTUS:
Feature[i].colour = LIGHTCYAN;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = LIGHTCYAN;
break;
@@ -3601,7 +3594,7 @@ void init_feature_table( void )
case DNGN_ENTER_TARTARUS:
Feature[i].colour = DARKGREY;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = DARKGREY;
break;
@@ -3609,7 +3602,7 @@ void init_feature_table( void )
case DNGN_ENTER_ABYSS:
Feature[i].colour = EC_RANDOM;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = EC_RANDOM;
break;
@@ -3629,7 +3622,7 @@ void init_feature_table( void )
case DNGN_ENTER_PANDEMONIUM:
Feature[i].colour = LIGHTBLUE;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = LIGHTBLUE;
break;
@@ -3667,7 +3660,7 @@ void init_feature_table( void )
case DNGN_ENTER_RESERVED_4:
Feature[i].colour = YELLOW;
Feature[i].symbol = Options.char_table[ DCHAR_STAIRS_DOWN ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = RED;
Feature[i].seen_colour = YELLOW;
break;
@@ -3675,7 +3668,7 @@ void init_feature_table( void )
case DNGN_ENTER_ZOT:
Feature[i].colour = MAGENTA;
Feature[i].symbol = Options.char_table[ DCHAR_ARCH ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = LIGHTGREY;
Feature[i].seen_colour = MAGENTA;
break;
@@ -3712,7 +3705,7 @@ void init_feature_table( void )
case DNGN_ALTAR_ZIN:
Feature[i].colour = WHITE;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = WHITE;
break;
@@ -3720,7 +3713,7 @@ void init_feature_table( void )
case DNGN_ALTAR_SHINING_ONE:
Feature[i].colour = YELLOW;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = YELLOW;
break;
@@ -3728,7 +3721,7 @@ void init_feature_table( void )
case DNGN_ALTAR_KIKUBAAQUDGHA:
Feature[i].colour = DARKGREY;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = DARKGREY;
break;
@@ -3736,7 +3729,7 @@ void init_feature_table( void )
case DNGN_ALTAR_YREDELEMNUL:
Feature[i].colour = EC_UNHOLY;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = EC_UNHOLY;
break;
@@ -3744,7 +3737,7 @@ void init_feature_table( void )
case DNGN_ALTAR_XOM:
Feature[i].colour = EC_RANDOM;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = EC_RANDOM;
break;
@@ -3752,7 +3745,7 @@ void init_feature_table( void )
case DNGN_ALTAR_VEHUMET:
Feature[i].colour = EC_VEHUMET;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = EC_VEHUMET;
break;
@@ -3760,7 +3753,7 @@ void init_feature_table( void )
case DNGN_ALTAR_OKAWARU:
Feature[i].colour = CYAN;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = CYAN;
break;
@@ -3768,7 +3761,7 @@ void init_feature_table( void )
case DNGN_ALTAR_MAKHLEB:
Feature[i].colour = EC_FIRE;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = EC_FIRE;
break;
@@ -3776,7 +3769,7 @@ void init_feature_table( void )
case DNGN_ALTAR_SIF_MUNA:
Feature[i].colour = BLUE;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = BLUE;
break;
@@ -3784,7 +3777,7 @@ void init_feature_table( void )
case DNGN_ALTAR_TROG:
Feature[i].colour = RED;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = RED;
break;
@@ -3792,7 +3785,7 @@ void init_feature_table( void )
case DNGN_ALTAR_NEMELEX_XOBEH:
Feature[i].colour = LIGHTMAGENTA;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = LIGHTMAGENTA;
break;
@@ -3800,7 +3793,7 @@ void init_feature_table( void )
case DNGN_ALTAR_ELYVILON:
Feature[i].colour = LIGHTGREY;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = LIGHTGREY;
break;
@@ -3808,7 +3801,7 @@ void init_feature_table( void )
case DNGN_ALTAR_LUGONU:
Feature[i].colour = GREEN;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = GREEN;
break;
@@ -3816,7 +3809,7 @@ void init_feature_table( void )
case DNGN_ALTAR_BEOGH:
Feature[i].colour = EC_BEOGH;
Feature[i].symbol = Options.char_table[ DCHAR_ALTAR ];
- Feature[i].notable = true;
+ Feature[i].flags |= FFT_NOTABLE;
Feature[i].map_colour = DARKGREY;
Feature[i].seen_colour = EC_BEOGH;
break;
@@ -3910,6 +3903,10 @@ void init_feature_table( void )
Feature[i].symbol = Options.char_table[ DCHAR_CLOUD ];
break;
}
+
+ if (i == DNGN_ENTER_ORCISH_MINES || i == DNGN_ENTER_SLIME_PITS
+ || i == DNGN_ENTER_LABYRINTH)
+ Feature[i].flags |= FFT_EXAMINE_HINT;
}
apply_feature_overrides();
diff --git a/crawl-ref/source/view.h b/crawl-ref/source/view.h
index 1cb1553d56..ad1d962911 100644
--- a/crawl-ref/source/view.h
+++ b/crawl-ref/source/view.h
@@ -23,12 +23,6 @@
void init_char_table(char_set_type set);
void init_feature_table();
-/* ***********************************************************************
- * called from: dump_screenshot - chardump
- * *********************************************************************** */
-void get_non_ibm_symbol(unsigned int object, unsigned short *ch,
- unsigned short *color);
-
// last updated 29may2000 {dlb}
/* ***********************************************************************
* called from: bang - beam - direct - effects - fight - monstuff -
@@ -109,6 +103,8 @@ void get_item_symbol(unsigned int object, unsigned *ch,
unsigned real_colour(unsigned raw_colour);
int get_mons_colour(const monsters *mons);
+const feature_def &get_feature_def(dungeon_feature_type feat);
+
void set_envmap_obj( int x, int y, int object );
unsigned get_envmap_char(int x, int y);
int get_envmap_obj(int x, int y);