summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/feature.cc
diff options
context:
space:
mode:
authorShmuale Mark <shm.mark@gmail.com>2014-07-10 08:15:39 -0400
committerShmuale Mark <shm.mark@gmail.com>2014-07-14 08:47:43 -0400
commitfff14fb3beb1d2e70d702f1cda6a7de6355c2507 (patch)
treeb18cefd32601dc87d815b1573a903537660375d5 /crawl-ref/source/feature.cc
parentdc4f2bac322bd5c5cb7073bd8a568aca169ceaf0 (diff)
downloadcrawl-ref-fff14fb3beb1d2e70d702f1cda6a7de6355c2507.tar.gz
crawl-ref-fff14fb3beb1d2e70d702f1cda6a7de6355c2507.zip
Separate feature data into feature-data.h.
Diffstat (limited to 'crawl-ref/source/feature.cc')
-rw-r--r--crawl-ref/source/feature.cc540
1 files changed, 57 insertions, 483 deletions
diff --git a/crawl-ref/source/feature.cc b/crawl-ref/source/feature.cc
index d7fe4594e5..2f03837522 100644
--- a/crawl-ref/source/feature.cc
+++ b/crawl-ref/source/feature.cc
@@ -7,10 +7,30 @@
#include "show.h"
#include "terrain.h"
-static FixedVector<feature_def, NUM_FEATURES> feat_defs;
+#include "feature-data.h"
static FixedVector<feature_def, NUM_SHOW_ITEMS> item_defs;
+static int feat_index[NUM_FEATURES];
static feature_def invis_fd, cloud_fd;
+/** Give a feature_def some reasonable defaults.
+ *
+ * XXX: This is kind of what a default constructor is for, but until
+ * we add C++11 support we can't have aggregate initialisation (in feature-data.h)
+ * and a constructor.
+ *
+ * @param[out] The new feature_def to be given values.
+ */
+void init_fd(feature_def &fd)
+{
+ fd.feat = DNGN_UNSEEN;
+ fd.dchar = NUM_DCHAR_TYPES;
+ fd.symbol = fd.magic_symbol = 0;
+ fd.colour = fd.seen_colour = fd.em_colour = fd.seen_em_colour = BLACK;
+ fd.map_colour = DARKGREY;
+ fd.flags = FFT_NONE;
+ fd.minimap = MF_UNSEEN;
+}
+
const feature_def &get_feature_def(show_type object)
{
switch (object.cls)
@@ -27,7 +47,7 @@ const feature_def &get_feature_def(show_type object)
if (object.item != SHOW_ITEM_NONE)
return item_defs[object.item];
case SH_FEATURE:
- return feat_defs[object.feat];
+ return get_feature_def(object.feat);
default:
die("invalid show object: class %d", object.cls);
}
@@ -35,17 +55,13 @@ const feature_def &get_feature_def(show_type object)
const feature_def &get_feature_def(dungeon_feature_type feat)
{
- return feat_defs[feat];
+ ASSERT_RANGE(feat, 0, NUM_FEATURES);
+ ASSERT(feat_index[feat] != -1);
+ return feat_defs[feat_index[feat]];
}
-static void _fd_symbols(feature_def &f)
+static void _create_colours(feature_def &f)
{
- if (!f.symbol && f.dchar != NUM_DCHAR_TYPES)
- f.symbol = Options.char_table[f.dchar];
-
- if (!f.magic_symbol)
- f.magic_symbol = f.symbol;
-
if (f.seen_colour == BLACK)
f.seen_colour = f.map_colour;
@@ -56,6 +72,15 @@ static void _fd_symbols(feature_def &f)
f.em_colour = f.colour;
}
+static void _create_symbols(feature_def &f)
+{
+ if (!f.symbol && f.dchar != NUM_DCHAR_TYPES)
+ f.symbol = Options.char_table[f.dchar];
+
+ if (!f.magic_symbol)
+ f.magic_symbol = f.symbol;
+}
+
static void _apply_feature_overrides()
{
for (map<dungeon_feature_type, feature_def>::const_iterator fo
@@ -64,7 +89,8 @@ static void _apply_feature_overrides()
++fo)
{
const feature_def &ofeat = fo->second;
- feature_def &feat = feat_defs[fo->first];
+ // Replicating get_feature_def since we need not-const.
+ feature_def &feat = feat_defs[feat_index[fo->first]];
ucs_t c;
if (ofeat.symbol && (c = get_glyph_override(ofeat.symbol)))
@@ -84,503 +110,51 @@ static void _apply_feature_overrides()
}
}
-static colour_t _feat_colour(dungeon_feature_type feat)
+static void _init_feature_index()
{
- switch (feat)
- {
- case DNGN_ENTER_VAULTS: return LIGHTGREEN;
- case DNGN_ENTER_ZOT: return MAGENTA;
- case DNGN_ENTER_HELL: return RED;
- case DNGN_ENTER_DIS: return CYAN;
- case DNGN_ENTER_GEHENNA: return RED;
- case DNGN_ENTER_COCYTUS: return LIGHTCYAN;
- case DNGN_ENTER_TARTARUS: return MAGENTA;
- case DNGN_ENTER_ABYSS: return ETC_WARP;
- case DNGN_EXIT_THROUGH_ABYSS: return ETC_WARP;
- case DNGN_ENTER_PANDEMONIUM: return LIGHTBLUE;
- case DNGN_ENTER_TROVE: return BLUE;
- case DNGN_ENTER_SEWER: return LIGHTGREEN;
- case DNGN_ENTER_OSSUARY: return BROWN;
- case DNGN_ENTER_BAILEY: return LIGHTRED;
- case DNGN_ENTER_ICE_CAVE: return WHITE;
- case DNGN_ENTER_VOLCANO: return RED;
- case DNGN_EXIT_DUNGEON: return LIGHTBLUE;
- case DNGN_RETURN_FROM_ZOT: return MAGENTA;
- case DNGN_EXIT_HELL: return LIGHTRED;
- case DNGN_EXIT_ABYSS: return ETC_WARP;
- case DNGN_EXIT_PANDEMONIUM: return LIGHTBLUE;
- case DNGN_TRANSIT_PANDEMONIUM: return LIGHTGREEN;
- case DNGN_EXIT_TROVE: return BLUE;
- case DNGN_EXIT_SEWER: return BROWN;
- case DNGN_EXIT_OSSUARY: return BROWN;
- case DNGN_EXIT_ICE_CAVE: return WHITE;
- case DNGN_EXIT_VOLCANO: return RED;
+ for (int i = 0; i < NUM_FEATURES; ++i)
+ feat_index[i] = -1;
- case DNGN_ALTAR_ZIN: return LIGHTGREY;
- case DNGN_ALTAR_SHINING_ONE: return YELLOW;
- case DNGN_ALTAR_KIKUBAAQUDGHA: return DARKGREY;
- case DNGN_ALTAR_YREDELEMNUL: return ETC_UNHOLY;
- case DNGN_ALTAR_XOM: return ETC_RANDOM;
- case DNGN_ALTAR_VEHUMET: return ETC_VEHUMET;
- case DNGN_ALTAR_OKAWARU: return CYAN;
- case DNGN_ALTAR_MAKHLEB: return ETC_FIRE;
- case DNGN_ALTAR_SIF_MUNA: return BLUE;
- case DNGN_ALTAR_TROG: return RED;
- case DNGN_ALTAR_NEMELEX_XOBEH: return LIGHTMAGENTA;
- case DNGN_ALTAR_ELYVILON: return WHITE;
- case DNGN_ALTAR_LUGONU: return MAGENTA;
- case DNGN_ALTAR_BEOGH: return ETC_BEOGH;
- case DNGN_ALTAR_JIYVA: return ETC_SLIME;
- case DNGN_ALTAR_FEDHAS: return GREEN;
- case DNGN_ALTAR_CHEIBRIADOS: return LIGHTCYAN;
- case DNGN_ALTAR_ASHENZARI: return LIGHTRED;
- case DNGN_ALTAR_DITHMENOS: return ETC_DITHMENOS;
- case DNGN_ALTAR_GOZAG: return ETC_GOLD; // for the Gold God!
- case DNGN_ALTAR_QAZLAL: return ETC_ELEMENTAL;
- default: return 0;
- }
-}
-
-static void _init_feat(feature_def &f, dungeon_feature_type feat)
-{
- f.colour = f.seen_colour = _feat_colour(feat);
-
- switch (feat)
+ for (int i = 0; i < (int) ARRAYSZ(feat_defs); ++i)
{
- default:
- if (feat >= DNGN_ENTER_FIRST_PORTAL && feat <= DNGN_ENTER_LAST_PORTAL
-#if TAG_MAJOR_VERSION == 34
- || feat == DNGN_ENTER_PORTAL_VAULT
-#endif
- || feat == DNGN_ENTER_LABYRINTH
- || feat == DNGN_ENTER_HELL
- || feat >= DNGN_ENTER_DIS && feat <= DNGN_ENTER_ABYSS
- || feat == DNGN_ENTER_PANDEMONIUM
- || feat == DNGN_EXIT_THROUGH_ABYSS
- || feat == DNGN_ENTER_VAULTS
- || feat == DNGN_ENTER_ZOT)
- {
- if (!f.colour)
- f.colour = f.seen_colour = ETC_SHIMMER_BLUE;
- f.dchar = DCHAR_ARCH;
- f.map_colour = LIGHTGREY;
- f.minimap = MF_PORTAL;
- f.flags |= FFT_NOTABLE;
- if (feat == DNGN_ENTER_LABYRINTH)
- f.flags |= FFT_EXAMINE_HINT;
- break;
- }
- else if (feat >= DNGN_EXIT_FIRST_PORTAL && feat <= DNGN_EXIT_LAST_PORTAL
-#if TAG_MAJOR_VERSION == 34
- || feat == DNGN_EXIT_PORTAL_VAULT
-#endif
- || feat == DNGN_EXIT_HELL
- || feat == DNGN_EXIT_ABYSS
- || feat == DNGN_EXIT_PANDEMONIUM
- || feat == DNGN_TRANSIT_PANDEMONIUM
- || feat == DNGN_RETURN_FROM_VAULTS
- || feat == DNGN_RETURN_FROM_ZOT)
- {
- if (!f.colour)
- f.colour = f.seen_colour = ETC_SHIMMER_BLUE;
- f.dchar = DCHAR_ARCH;
- f.map_colour = LIGHTGREY;
- f.minimap = MF_PORTAL;
- break;
- }
- else if (feat >= DNGN_ENTER_FIRST_BRANCH && feat <= DNGN_ENTER_LAST_BRANCH)
- {
- if (!f.colour)
- f.colour = f.seen_colour = YELLOW;
- f.dchar = DCHAR_STAIRS_DOWN;
- f.flags |= FFT_NOTABLE;
- f.map_colour = RED;
- f.minimap = MF_STAIR_BRANCH;
- if (feat == DNGN_ENTER_ORC || feat == DNGN_ENTER_SLIME)
- f.flags |= FFT_EXAMINE_HINT;
- break;
- }
- else if (feat >= DNGN_RETURN_FROM_FIRST_BRANCH && feat <= DNGN_RETURN_FROM_LAST_BRANCH
- || feat == DNGN_EXIT_DUNGEON)
- {
- if (!f.colour)
- f.colour = f.seen_colour = YELLOW;
- f.dchar = DCHAR_STAIRS_UP;
- f.map_colour = GREEN;
- f.minimap = MF_STAIR_UP;
- break;
- }
- else if (feat_is_altar(feat) || feat == DNGN_UNKNOWN_ALTAR)
- {
- f.dchar = DCHAR_ALTAR;
- f.flags |= FFT_NOTABLE;
- f.map_colour = DARKGREY;
- f.minimap = MF_FEATURE;
- break;
-
- }
- break;
- case DNGN_UNSEEN:
- case DNGN_EXPLORE_HORIZON:
- break;
-
- case DNGN_ROCK_WALL:
- f.dchar = DCHAR_WALL;
- f.colour = ETC_ROCK;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_STONE_WALL:
- f.dchar = DCHAR_WALL;
- f.colour = LIGHTGRAY;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_SLIMY_WALL:
- f.dchar = DCHAR_WALL;
- f.colour = LIGHTGREEN;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_PERMAROCK_WALL:
- f.dchar = DCHAR_PERMAWALL;
- f.colour = ETC_ROCK;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_CLEAR_ROCK_WALL:
- case DNGN_CLEAR_STONE_WALL:
- f.dchar = DCHAR_WALL;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.colour = LIGHTCYAN;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_CLEAR_PERMAROCK_WALL:
- f.dchar = DCHAR_PERMAWALL;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.colour = LIGHTCYAN;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_GRATE:
- f.dchar = DCHAR_GRATE;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.colour = LIGHTBLUE;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_TREE:
- f.dchar = DCHAR_TREE;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.colour = ETC_TREE;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_OPEN_SEA:
- f.dchar = DCHAR_WALL;
- f.colour = BLUE;
- f.minimap = MF_DEEP_WATER;
- break;
-
- case DNGN_LAVA_SEA:
- f.dchar = DCHAR_WAVY;
- f.colour = RED;
- f.minimap = MF_LAVA;
- break;
-
- case DNGN_OPEN_DOOR:
- f.dchar = DCHAR_DOOR_OPEN;
- f.colour = LIGHTGREY;
- f.minimap = MF_DOOR;
- break;
-
- case DNGN_CLOSED_DOOR:
- f.dchar = DCHAR_DOOR_CLOSED;
- f.colour = LIGHTGREY;
- f.minimap = MF_DOOR;
- break;
-
- case DNGN_RUNED_DOOR:
- f.dchar = DCHAR_DOOR_CLOSED;
- f.colour = LIGHTBLUE;
- f.minimap = MF_DOOR;
- f.map_colour = LIGHTBLUE;
- break;
-
- case DNGN_SEALED_DOOR:
- f.dchar = DCHAR_DOOR_CLOSED;
- f.colour = LIGHTGREEN;
- f.minimap = MF_DOOR;
- f.map_colour = LIGHTGREEN;
- break;
-
- case DNGN_METAL_WALL:
- f.dchar = DCHAR_WALL;
- f.colour = CYAN;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_GREEN_CRYSTAL_WALL:
- f.dchar = DCHAR_WALL;
- f.colour = GREEN;
- f.magic_symbol = Options.char_table[ DCHAR_WALL_MAGIC ];
- f.minimap = MF_WALL;
- break;
-
- case DNGN_ORCISH_IDOL:
- f.dchar = DCHAR_STATUE;
- f.colour = BROWN;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_GRANITE_STATUE:
- f.dchar = DCHAR_STATUE;
- f.colour = DARKGREY;
- f.minimap = MF_WALL;
- break;
-
- case DNGN_LAVA:
- f.dchar = DCHAR_WAVY;
- f.colour = RED;
- f.minimap = MF_LAVA;
- break;
-
- case DNGN_DEEP_WATER:
- f.dchar = DCHAR_WAVY;
- f.colour = BLUE;
- f.minimap = MF_DEEP_WATER;
- break;
-
- case DNGN_SHALLOW_WATER:
- f.dchar = DCHAR_WAVY;
- f.colour = CYAN;
- f.minimap = MF_WATER;
- break;
-
- case DNGN_FLOOR:
- f.dchar = DCHAR_FLOOR;
- f.colour = ETC_FLOOR;
- f.magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- f.minimap = MF_FLOOR;
- break;
-
- case DNGN_TELEPORTER:
- f.dchar = DCHAR_TELEPORTER;
- f.colour = YELLOW;
- f.map_colour = YELLOW;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_TRAP_MECHANICAL:
- f.colour = LIGHTCYAN;
- f.dchar = DCHAR_TRAP;
- f.map_colour = LIGHTCYAN;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_TELEPORT:
- f.colour = f.map_colour = LIGHTBLUE;
- f.dchar = DCHAR_TRAP;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_ALARM:
- f.colour = f.map_colour = LIGHTRED;
- f.dchar = DCHAR_TRAP;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_ZOT:
- f.colour = f.map_colour = LIGHTMAGENTA;
- f.dchar = DCHAR_TRAP;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_PASSAGE_OF_GOLUBRIA:
- f.colour = f.map_colour = GREEN;
- f.dchar = DCHAR_TRAP;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_SHAFT:
- f.colour = BROWN;
- f.dchar = DCHAR_TRAP;
- f.map_colour = BROWN;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_TRAP_WEB:
- f.colour = LIGHTGREY;
- f.dchar = DCHAR_TRAP;
- f.map_colour = LIGHTGREY;
- f.minimap = MF_TRAP;
- break;
-
- case DNGN_UNDISCOVERED_TRAP:
- f.dchar = DCHAR_FLOOR;
- f.colour = ETC_FLOOR;
- f.magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- f.minimap = MF_FLOOR;
- break;
-
- case DNGN_ENTER_SHOP:
- f.dchar = DCHAR_ARCH;
- f.colour = YELLOW;
- f.flags |= FFT_NOTABLE;
- f.map_colour = LIGHTGREY;
- f.seen_colour = YELLOW;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_MALIGN_GATEWAY:
- f.dchar = DCHAR_ARCH;
- f.colour = ETC_SHIMMER_BLUE;
- f.map_colour = LIGHTGREY;
- f.colour = ETC_SHIMMER_BLUE;
- f.minimap = MF_STAIR_UP;
- break;
-
- case DNGN_EXPIRED_PORTAL:
- f.dchar = DCHAR_FLOOR;
- f.colour = BROWN;
- f.magic_symbol = Options.char_table[ DCHAR_FLOOR_MAGIC ];
- f.minimap = MF_FLOOR;
- break;
-
- case DNGN_ESCAPE_HATCH_DOWN:
- f.dchar = DCHAR_STAIRS_DOWN;
- f.colour = BROWN;
- f.map_colour = BROWN;
- f.minimap = MF_STAIR_DOWN;
- break;
-
- case DNGN_STONE_STAIRS_DOWN_I:
- case DNGN_STONE_STAIRS_DOWN_II:
- case DNGN_STONE_STAIRS_DOWN_III:
- f.dchar = DCHAR_STAIRS_DOWN;
- f.colour = RED;
- f.em_colour = WHITE;
- f.map_colour = RED;
- f.seen_em_colour = WHITE;
- f.minimap = MF_STAIR_DOWN;
- break;
-
- case DNGN_SEALED_STAIRS_DOWN:
- f.dchar = DCHAR_STAIRS_DOWN;
- f.colour = LIGHTGREEN;
- f.map_colour = LIGHTGREEN;
- f.minimap = MF_STAIR_DOWN;
- break;
-
- case DNGN_ESCAPE_HATCH_UP:
- case DNGN_EXIT_LABYRINTH:
- f.dchar = DCHAR_STAIRS_UP;
- f.colour = BROWN;
- f.map_colour = BROWN;
- f.minimap = MF_STAIR_UP;
- break;
-
- case DNGN_STONE_STAIRS_UP_I:
- case DNGN_STONE_STAIRS_UP_II:
- case DNGN_STONE_STAIRS_UP_III:
- f.dchar = DCHAR_STAIRS_UP;
- f.colour = GREEN;
- f.map_colour = GREEN;
- f.em_colour = WHITE;
- f.seen_em_colour = WHITE;
- f.minimap = MF_STAIR_UP;
- break;
-
- case DNGN_SEALED_STAIRS_UP:
- f.dchar = DCHAR_STAIRS_UP;
- f.colour = LIGHTGREEN;
- f.map_colour = LIGHTGREEN;
- f.minimap = MF_STAIR_UP;
- break;
-
- case DNGN_ABYSSAL_STAIR:
- f.colour = LIGHTCYAN;
- f.dchar = DCHAR_STAIRS_DOWN;
- f.map_colour = LIGHTCYAN;
- f.minimap = MF_STAIR_BRANCH;
- break;
-
- case DNGN_STONE_ARCH:
- case DNGN_ABANDONED_SHOP:
- f.colour = LIGHTGREY;
- f.dchar = DCHAR_ARCH;
- f.map_colour = LIGHTGREY;
- f.minimap = MF_FLOOR;
- break;
-
- case DNGN_FOUNTAIN_BLUE:
- f.colour = BLUE;
- f.dchar = DCHAR_FOUNTAIN;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_FOUNTAIN_SPARKLING:
- f.colour = LIGHTBLUE;
- f.dchar = DCHAR_FOUNTAIN;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_FOUNTAIN_BLOOD:
- f.colour = RED;
- f.dchar = DCHAR_FOUNTAIN;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_DRY_FOUNTAIN:
- f.colour = LIGHTGREY;
- f.dchar = DCHAR_FOUNTAIN;
- f.minimap = MF_FEATURE;
- break;
-
- case DNGN_UNKNOWN_PORTAL:
- f.colour = LIGHTGREY;
- f.dchar = DCHAR_ARCH;
- f.minimap = MF_PORTAL;
- break;
+ const dungeon_feature_type feat = feat_defs[i].feat;
+ ASSERT_RANGE(feat, 0, NUM_FEATURES);
+ ASSERT(feat_index[feat] == -1);
+ feat_index[feat] = i;
}
}
void init_show_table()
{
- show_type obj;
- for (int i = 0; i < NUM_FEATURES; i++)
- {
- dungeon_feature_type feat = static_cast<dungeon_feature_type>(i);
- _init_feat(feat_defs[feat], feat);
- }
+ _init_feature_index();
_apply_feature_overrides();
- for (int i = 0; i < NUM_FEATURES; i++)
- _fd_symbols(feat_defs[i]);
+ for (int i = 0; i < (int) ARRAYSZ(feat_defs); i++)
+ _create_symbols(feat_defs[i]);
for (int i = 0; i < NUM_SHOW_ITEMS; i++)
{
show_item_type si = static_cast<show_item_type>(i);
// SHOW_ITEM_NONE is bogus, but "invis exposed" is an ok placeholder
COMPILE_CHECK(DCHAR_ITEM_AMULET - DCHAR_ITEM_DETECTED + 2 == NUM_SHOW_ITEMS);
+ init_fd(item_defs[si]);
item_defs[si].minimap = MF_ITEM;
item_defs[si].dchar = static_cast<dungeon_char_type>(i
+ DCHAR_ITEM_DETECTED - SHOW_ITEM_DETECTED);
- _fd_symbols(item_defs[si]);
+ _create_symbols(item_defs[si]);
+ _create_colours(item_defs[si]);
}
+ init_fd(invis_fd);
invis_fd.dchar = DCHAR_INVIS_EXPOSED;
invis_fd.minimap = MF_MONS_HOSTILE;
- _fd_symbols(invis_fd);
+ _create_symbols(invis_fd);
+ _create_colours(invis_fd);
+ init_fd(invis_fd);
cloud_fd.dchar = DCHAR_CLOUD;
cloud_fd.minimap = MF_SKIP;
- _fd_symbols(cloud_fd);
+ _create_symbols(cloud_fd);
+ _create_colours(cloud_fd);
}
dungeon_feature_type magic_map_base_feat(dungeon_feature_type feat)