summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/view.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-04 08:36:40 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-04 08:45:44 +0100
commit182fb011ad05dafabadf1e3cee27a68f56fa82dc (patch)
tree23668bd598e9c17ab64e6a0fe44a94133e4bc147 /crawl-ref/source/view.cc
parent89ff79ab008f440bc9126103fc21ed71aac0526f (diff)
downloadcrawl-ref-182fb011ad05dafabadf1e3cee27a68f56fa82dc.tar.gz
crawl-ref-182fb011ad05dafabadf1e3cee27a68f56fa82dc.zip
Move feature_def and Feature array into feature.cc from view.cc.
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r--crawl-ref/source/view.cc770
1 files changed, 15 insertions, 755 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 358db488bb..057591bbba 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -35,6 +35,7 @@
#include "directn.h"
#include "dungeon.h"
#include "exclude.h"
+#include "feature.h"
#include "files.h"
#include "format.h"
#include "ghost.h"
@@ -86,8 +87,6 @@
#define MC_ITEM 0x01
#define MC_MONS 0x02
-static FixedVector<feature_def, NUM_FEATURES> Feature;
-
crawl_view_geometry crawl_view;
FixedArray < unsigned int, ENV_SHOW_DIAMETER, ENV_SHOW_DIAMETER > Show_Backup;
@@ -110,11 +109,6 @@ 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)
@@ -349,7 +343,7 @@ void clear_envmap_grid( int x, int y )
bool is_notable_terrain(dungeon_feature_type ftype)
{
- return (Feature[ftype].is_notable());
+ return (get_feature_def(ftype).is_notable());
}
#if defined(TARGET_OS_WINDOWS) || defined(TARGET_OS_DOS) || defined(USE_TILE)
@@ -466,7 +460,7 @@ static void _get_symbol( const coord_def& where,
{
const dungeon_feature_type feat =
static_cast<dungeon_feature_type>(object);
- const feature_def &fdef = Feature[object];
+ const feature_def &fdef = get_feature_def(feat);
*ch = magic_mapped? fdef.magic_symbol
: fdef.symbol;
@@ -586,11 +580,12 @@ void get_item_symbol(unsigned int object, unsigned *ch,
{
if (object < NUM_FEATURES)
{
- *ch = Feature[object].symbol;
+ dungeon_feature_type feat = static_cast<dungeon_feature_type>(object);
+ *ch = get_feature_def(feat).symbol;
// Don't clobber with BLACK, because the colour should be already set.
- if (Feature[object].colour != BLACK)
- *colour = Feature[object].colour;
+ if (get_feature_def(feat).colour != BLACK)
+ *colour = get_feature_def(feat).colour;
}
*colour = real_colour(*colour);
@@ -598,21 +593,21 @@ void get_item_symbol(unsigned int object, unsigned *ch,
dungeon_char_type get_feature_dchar( dungeon_feature_type feat )
{
- return (Feature[feat].dchar);
+ return (get_feature_def(feat).dchar);
}
-unsigned get_sightmap_char( int feature )
+unsigned get_sightmap_char(dungeon_feature_type feature)
{
if (feature < NUM_FEATURES)
- return (Feature[feature].symbol);
+ return (get_feature_def(feature).symbol);
return (0);
}
-unsigned get_magicmap_char( int feature )
+unsigned get_magicmap_char(dungeon_feature_type feature)
{
if (feature < NUM_FEATURES)
- return (Feature[feature].magic_symbol);
+ return (get_feature_def(feature).magic_symbol);
return (0);
}
@@ -752,7 +747,7 @@ screen_buffer_t colour_code_map(const coord_def& p, bool item_colour,
int feature_colour = DARKGREY;
const bool terrain_seen = is_terrain_seen(p);
- const feature_def &fdef = Feature[feat_value];
+ const feature_def &fdef = get_feature_def(feat_value);
feature_colour = terrain_seen ? fdef.seen_colour : fdef.map_colour;
if (terrain_seen && fdef.seen_em_colour && _emphasise(p, feat_value))
@@ -3391,741 +3386,6 @@ unsigned dchar_glyph(dungeon_char_type dchar)
return (Options.char_table[dchar]);
}
-void apply_feature_overrides()
-{
- for (int i = 0, size = Options.feature_overrides.size(); i < size; ++i)
- {
- const feature_override &fov = Options.feature_overrides[i];
- const feature_def &ofeat = fov.override;
- feature_def &feat = Feature[fov.feat];
-
- if (ofeat.symbol)
- feat.symbol = ofeat.symbol;
- if (ofeat.magic_symbol)
- feat.magic_symbol = ofeat.magic_symbol;
- if (ofeat.colour)
- feat.colour = ofeat.colour;
- if (ofeat.map_colour)
- feat.map_colour = ofeat.map_colour;
- if (ofeat.seen_colour)
- feat.seen_colour = ofeat.seen_colour;
- if (ofeat.seen_em_colour)
- feat.seen_em_colour = ofeat.seen_em_colour;
- if (ofeat.em_colour)
- feat.em_colour = ofeat.em_colour;
- }
-}
-
-void init_feature_table( void )
-{
- for (int i = 0; i < NUM_FEATURES; i++)
- {
- Feature[i].dchar = NUM_DCHAR_TYPES;
- Feature[i].symbol = 0;
- Feature[i].colour = BLACK; // means must be set some other way
- Feature[i].flags = FFT_NONE;
- Feature[i].magic_symbol = 0; // set to symbol if unchanged
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = BLACK; // -> no special seen map handling
- Feature[i].seen_em_colour = BLACK;
- Feature[i].em_colour = BLACK;
- Feature[i].minimap = MF_UNSEEN;
-
- switch (i)
- {
- case DNGN_UNSEEN:
- default:
- break;
-
- case DNGN_ROCK_WALL:
- case DNGN_PERMAROCK_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = ETC_ROCK;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_STONE_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = ETC_STONE;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_CLEAR_ROCK_WALL:
- case DNGN_CLEAR_STONE_WALL:
- case DNGN_CLEAR_PERMAROCK_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].colour = LIGHTCYAN;
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_TREES:
- Feature[i].dchar = DCHAR_TREES;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].colour = BLACK; // overridden later
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_OPEN_SEA:
-#ifdef USE_TILE
- Feature[i].dchar = DCHAR_WAVY;
-#else
- Feature[i].dchar = DCHAR_WALL;
-#endif
- Feature[i].colour = BLUE;
- Feature[i].minimap = MF_WATER;
- break;
-
- case DNGN_OPEN_DOOR:
- Feature[i].dchar = DCHAR_DOOR_OPEN;
- Feature[i].colour = LIGHTGREY;
- Feature[i].minimap = MF_DOOR;
- break;
-
- case DNGN_CLOSED_DOOR:
- case DNGN_DETECTED_SECRET_DOOR:
- Feature[i].dchar = DCHAR_DOOR_CLOSED;
- Feature[i].colour = LIGHTGREY;
- Feature[i].minimap = MF_DOOR;
- break;
-
- case DNGN_METAL_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = CYAN;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_SECRET_DOOR:
- // Note: get_secret_door_appearance means this probably isn't used.
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = ETC_ROCK;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_GREEN_CRYSTAL_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = GREEN;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_ORCISH_IDOL:
- Feature[i].dchar = DCHAR_STATUE;
- Feature[i].colour = BROWN; // same as clay golem, I hope that's okay
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_WAX_WALL:
- Feature[i].dchar = DCHAR_WALL;
- Feature[i].colour = YELLOW;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_GRANITE_STATUE:
- Feature[i].dchar = DCHAR_STATUE;
- Feature[i].colour = DARKGREY;
- Feature[i].minimap = MF_WALL;
- break;
-
- case DNGN_LAVA:
- Feature[i].dchar = DCHAR_WAVY;
- Feature[i].colour = RED;
- Feature[i].minimap = MF_LAVA;
- break;
-
- case DNGN_DEEP_WATER:
- Feature[i].dchar = DCHAR_WAVY;
- Feature[i].colour = BLUE;
- Feature[i].minimap = MF_WATER;
- break;
-
- case DNGN_SHALLOW_WATER:
- Feature[i].dchar = DCHAR_WAVY;
- Feature[i].colour = CYAN;
- Feature[i].minimap = MF_WATER;
- break;
-
- case DNGN_FLOOR:
- Feature[i].dchar = DCHAR_FLOOR;
- Feature[i].colour = ETC_FLOOR;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- Feature[i].minimap = MF_FLOOR;
- break;
-
- case DNGN_FLOOR_SPECIAL:
- Feature[i].dchar = DCHAR_FLOOR;
- Feature[i].colour = YELLOW;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- Feature[i].minimap = MF_FLOOR;
- break;
-
- case DNGN_EXIT_HELL:
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].colour = LIGHTRED;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = LIGHTRED;
- Feature[i].minimap = MF_STAIR_UP;
- break;
-
- case DNGN_ENTER_HELL:
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].colour = RED;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = RED;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_TRAP_MECHANICAL:
- Feature[i].colour = LIGHTCYAN;
- Feature[i].dchar = DCHAR_TRAP;
- Feature[i].map_colour = LIGHTCYAN;
- Feature[i].minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_MAGICAL:
- Feature[i].colour = MAGENTA;
- Feature[i].dchar = DCHAR_TRAP;
- Feature[i].map_colour = MAGENTA;
- Feature[i].minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_NATURAL:
- Feature[i].colour = BROWN;
- Feature[i].dchar = DCHAR_TRAP;
- Feature[i].map_colour = BROWN;
- Feature[i].minimap = MF_TRAP;
- break;
-
- case DNGN_UNDISCOVERED_TRAP:
- Feature[i].dchar = DCHAR_FLOOR;
- Feature[i].colour = ETC_FLOOR;
- Feature[i].magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- Feature[i].minimap = MF_FLOOR;
- break;
-
- case DNGN_ENTER_SHOP:
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].colour = YELLOW;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = YELLOW;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ABANDONED_SHOP:
- Feature[i].colour = LIGHTGREY;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].minimap = MF_FLOOR;
- break;
-
- case DNGN_ENTER_LABYRINTH:
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].colour = CYAN;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = CYAN;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_PORTAL_VAULT:
- Feature[i].flags |= FFT_NOTABLE;
- // fall through
-
- case DNGN_EXIT_PORTAL_VAULT:
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].colour = ETC_SHIMMER_BLUE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = ETC_SHIMMER_BLUE;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ESCAPE_HATCH_DOWN:
- Feature[i].dchar = DCHAR_STAIRS_DOWN;
- Feature[i].colour = BROWN;
- Feature[i].map_colour = BROWN;
- Feature[i].minimap = MF_STAIR_DOWN;
- break;
-
- case DNGN_STONE_STAIRS_DOWN_I:
- case DNGN_STONE_STAIRS_DOWN_II:
- case DNGN_STONE_STAIRS_DOWN_III:
- Feature[i].dchar = DCHAR_STAIRS_DOWN;
- Feature[i].colour = LIGHTGREY;
- Feature[i].em_colour = WHITE;
- Feature[i].map_colour = RED;
- Feature[i].seen_em_colour = WHITE;
- Feature[i].minimap = MF_STAIR_DOWN;
- break;
-
- case DNGN_ESCAPE_HATCH_UP:
- Feature[i].dchar = DCHAR_STAIRS_UP;
- Feature[i].colour = BROWN;
- Feature[i].map_colour = BROWN;
- Feature[i].minimap = MF_STAIR_UP;
- break;
-
- case DNGN_STONE_STAIRS_UP_I:
- case DNGN_STONE_STAIRS_UP_II:
- case DNGN_STONE_STAIRS_UP_III:
- Feature[i].dchar = DCHAR_STAIRS_UP;
- Feature[i].colour = LIGHTGREY;
- Feature[i].map_colour = GREEN;
- Feature[i].em_colour = WHITE;
- Feature[i].seen_em_colour = WHITE;
- Feature[i].minimap = MF_STAIR_UP;
- break;
-
- case DNGN_ENTER_DIS:
- Feature[i].colour = CYAN;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = CYAN;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_GEHENNA:
- Feature[i].colour = RED;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = RED;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_COCYTUS:
- Feature[i].colour = LIGHTCYAN;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = LIGHTCYAN;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_TARTARUS:
- Feature[i].colour = DARKGREY;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = DARKGREY;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_ABYSS:
- Feature[i].colour = ETC_RANDOM;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = ETC_RANDOM;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_EXIT_ABYSS:
- Feature[i].colour = ETC_RANDOM;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = ETC_RANDOM;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_STONE_ARCH:
- Feature[i].colour = LIGHTGREY;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].minimap = MF_FLOOR;
- break;
-
- case DNGN_ENTER_PANDEMONIUM:
- Feature[i].colour = LIGHTBLUE;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = LIGHTBLUE;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_EXIT_PANDEMONIUM:
- // Note: Has special handling for colouring with mutation.
- Feature[i].colour = LIGHTBLUE;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = LIGHTBLUE;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_TRANSIT_PANDEMONIUM:
- Feature[i].colour = LIGHTGREEN;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = LIGHTGREEN;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_ORCISH_MINES:
- case DNGN_ENTER_HIVE:
- case DNGN_ENTER_LAIR:
- case DNGN_ENTER_SLIME_PITS:
- case DNGN_ENTER_VAULTS:
- case DNGN_ENTER_CRYPT:
- case DNGN_ENTER_HALL_OF_BLADES:
- case DNGN_ENTER_TEMPLE:
- case DNGN_ENTER_SNAKE_PIT:
- case DNGN_ENTER_ELVEN_HALLS:
- case DNGN_ENTER_TOMB:
- case DNGN_ENTER_SWAMP:
- case DNGN_ENTER_SHOALS:
- Feature[i].colour = YELLOW;
- Feature[i].dchar = DCHAR_STAIRS_DOWN;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = RED;
- Feature[i].seen_colour = YELLOW;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ENTER_ZOT:
- Feature[i].colour = MAGENTA;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = MAGENTA;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_RETURN_FROM_ORCISH_MINES:
- case DNGN_RETURN_FROM_HIVE:
- case DNGN_RETURN_FROM_LAIR:
- case DNGN_RETURN_FROM_SLIME_PITS:
- case DNGN_RETURN_FROM_VAULTS:
- case DNGN_RETURN_FROM_CRYPT:
- case DNGN_RETURN_FROM_HALL_OF_BLADES:
- case DNGN_RETURN_FROM_TEMPLE:
- case DNGN_RETURN_FROM_SNAKE_PIT:
- case DNGN_RETURN_FROM_ELVEN_HALLS:
- case DNGN_RETURN_FROM_TOMB:
- case DNGN_RETURN_FROM_SWAMP:
- case DNGN_RETURN_FROM_SHOALS:
- Feature[i].colour = YELLOW;
- Feature[i].dchar = DCHAR_STAIRS_UP;
- Feature[i].map_colour = GREEN;
- Feature[i].seen_colour = YELLOW;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_RETURN_FROM_ZOT:
- Feature[i].colour = MAGENTA;
- Feature[i].dchar = DCHAR_ARCH;
- Feature[i].map_colour = LIGHTGREY;
- Feature[i].seen_colour = MAGENTA;
- Feature[i].minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_ALTAR_ZIN:
- Feature[i].colour = WHITE;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = WHITE;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_SHINING_ONE:
- Feature[i].colour = YELLOW;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = YELLOW;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_KIKUBAAQUDGHA:
- Feature[i].colour = DARKGREY;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = DARKGREY;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_YREDELEMNUL:
- Feature[i].colour = ETC_UNHOLY;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_UNHOLY;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_XOM:
- Feature[i].colour = ETC_RANDOM;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_RANDOM;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_VEHUMET:
- Feature[i].colour = ETC_VEHUMET;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_VEHUMET;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_OKAWARU:
- Feature[i].colour = CYAN;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = CYAN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_MAKHLEB:
- Feature[i].colour = ETC_FIRE;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_FIRE;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_SIF_MUNA:
- Feature[i].colour = BLUE;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = BLUE;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_TROG:
- Feature[i].colour = RED;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = RED;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_NEMELEX_XOBEH:
- Feature[i].colour = LIGHTMAGENTA;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = LIGHTMAGENTA;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_ELYVILON:
- Feature[i].colour = LIGHTGREY;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = LIGHTGREY;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_LUGONU:
- Feature[i].colour = MAGENTA;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = MAGENTA;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_BEOGH:
- Feature[i].colour = ETC_BEOGH;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_BEOGH;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_JIYVA:
- Feature[i].colour = ETC_SLIME;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = ETC_SLIME;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_FEAWN:
- Feature[i].colour = GREEN;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = GREEN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_ALTAR_CHEIBRIADOS:
- Feature[i].colour = LIGHTCYAN;
- Feature[i].dchar = DCHAR_ALTAR;
- Feature[i].flags |= FFT_NOTABLE;
- Feature[i].map_colour = DARKGREY;
- Feature[i].seen_colour = LIGHTCYAN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_FOUNTAIN_BLUE:
- Feature[i].colour = BLUE;
- Feature[i].dchar = DCHAR_FOUNTAIN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_FOUNTAIN_SPARKLING:
- Feature[i].colour = LIGHTBLUE;
- Feature[i].dchar = DCHAR_FOUNTAIN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_FOUNTAIN_BLOOD:
- Feature[i].colour = RED;
- Feature[i].dchar = DCHAR_FOUNTAIN;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- 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;
- Feature[i].minimap = MF_FEATURE;
- break;
-
- case DNGN_INVIS_EXPOSED:
- Feature[i].dchar = DCHAR_INVIS_EXPOSED;
- Feature[i].minimap = MF_MONS_HOSTILE;
- break;
-
- case DNGN_ITEM_DETECTED:
- Feature[i].dchar = DCHAR_ITEM_DETECTED;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_ORB:
- Feature[i].dchar = DCHAR_ITEM_ORB;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_WEAPON:
- Feature[i].dchar = DCHAR_ITEM_WEAPON;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_ARMOUR:
- Feature[i].dchar = DCHAR_ITEM_ARMOUR;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_WAND:
- Feature[i].dchar = DCHAR_ITEM_WAND;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_FOOD:
- Feature[i].dchar = DCHAR_ITEM_FOOD;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_SCROLL:
- Feature[i].dchar = DCHAR_ITEM_SCROLL;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_RING:
- Feature[i].dchar = DCHAR_ITEM_RING;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_POTION:
- Feature[i].dchar = DCHAR_ITEM_POTION;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_MISSILE:
- Feature[i].dchar = DCHAR_ITEM_MISSILE;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_BOOK:
- Feature[i].dchar = DCHAR_ITEM_BOOK;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_STAVE:
- Feature[i].dchar = DCHAR_ITEM_STAVE;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_MISCELLANY:
- Feature[i].dchar = DCHAR_ITEM_MISCELLANY;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_CORPSE:
- Feature[i].dchar = DCHAR_ITEM_CORPSE;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_GOLD:
- Feature[i].dchar = DCHAR_ITEM_GOLD;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_ITEM_AMULET:
- Feature[i].dchar = DCHAR_ITEM_AMULET;
- Feature[i].minimap = MF_ITEM;
- break;
-
- case DNGN_CLOUD:
- Feature[i].dchar = DCHAR_CLOUD;
- Feature[i].minimap = MF_SKIP;
- break;
- }
-
- if (i == DNGN_ENTER_ORCISH_MINES || i == DNGN_ENTER_SLIME_PITS
- || i == DNGN_ENTER_LABYRINTH)
- {
- Feature[i].flags |= FFT_EXAMINE_HINT;
- }
-
- if (Feature[i].dchar != NUM_DCHAR_TYPES)
- Feature[i].symbol = Options.char_table[ Feature[i].dchar ];
- }
-
- apply_feature_overrides();
-
- for (int i = 0; i < NUM_FEATURES; ++i)
- {
- feature_def &f(Feature[i]);
-
- if (!f.magic_symbol)
- f.magic_symbol = f.symbol;
-
- if (f.seen_colour == BLACK)
- f.seen_colour = f.map_colour;
-
- if (f.seen_em_colour == BLACK)
- f.seen_em_colour = f.seen_colour;
-
- if (f.em_colour == BLACK)
- f.em_colour = f.colour;
- }
-}
-
unsigned get_screen_glyph( int x, int y )
{
return get_screen_glyph(coord_def(x,y));
@@ -4166,9 +3426,9 @@ int multibyte_strlen(const std::string &s)
// is set to false, only the viewable area is returned. Leading and trailing
// spaces are trimmed from each line. Leading and trailing empty lines are also
// snipped.
-std::string screenshot( bool fullscreen )
+std::string screenshot(bool fullscreen)
{
- UNUSED( fullscreen );
+ UNUSED(fullscreen);
// [ds] Screenshots need to be straight ASCII. We will now proceed to force
// the char and feature tables back to ASCII.