diff options
author | Shmuale Mark <shm.mark@gmail.com> | 2014-07-10 08:15:39 -0400 |
---|---|---|
committer | Shmuale Mark <shm.mark@gmail.com> | 2014-07-14 08:47:43 -0400 |
commit | fff14fb3beb1d2e70d702f1cda6a7de6355c2507 (patch) | |
tree | b18cefd32601dc87d815b1573a903537660375d5 /crawl-ref/source/feature-data.h | |
parent | dc4f2bac322bd5c5cb7073bd8a568aca169ceaf0 (diff) | |
download | crawl-ref-fff14fb3beb1d2e70d702f1cda6a7de6355c2507.tar.gz crawl-ref-fff14fb3beb1d2e70d702f1cda6a7de6355c2507.zip |
Separate feature data into feature-data.h.
Diffstat (limited to 'crawl-ref/source/feature-data.h')
-rw-r--r-- | crawl-ref/source/feature-data.h | 541 |
1 files changed, 541 insertions, 0 deletions
diff --git a/crawl-ref/source/feature-data.h b/crawl-ref/source/feature-data.h new file mode 100644 index 0000000000..09ca4908cd --- /dev/null +++ b/crawl-ref/source/feature-data.h @@ -0,0 +1,541 @@ +// symbol and magic_symbol are generally constructed from dchar in +// _create_symbols(). They're necessary in feature_def mostly to make +// the `feature` option work better. + +// In the default case, these translations hold: +// map_colour -> seen_colour +// seen_colour -> seen_em_colour +// colour -> em_colour +// So use a macro: +#define COLOURS(colour, map) colour, map, map, colour, map +// And with the default (darkgrey) map colour: +#define COLOUR_IS(colour) COLOURS(colour, DARKGREY) +// And for when colour and map_colour are equal: +#define COLOUR_AND_MAP(colour) COLOURS(colour, colour) +static feature_def feat_defs[] = +{ + +{ + // feat + DNGN_UNSEEN, + // dchar, symbol, magic_symbol + NUM_DCHAR_TYPES, 0, 0, + // colour, map_colour, seen_colour, em_colour, seen_em_colour + BLACK, DARKGREY, DARKGREY, BLACK, DARKGREY, + // flags, minimap + FFT_NONE, MF_UNSEEN, +}, + +{ + DNGN_EXPLORE_HORIZON, + NUM_DCHAR_TYPES, 0, 0, + COLOUR_IS(BLACK), + FFT_NONE, MF_UNSEEN, +}, + +{ + DNGN_CLOSED_DOOR, + DCHAR_DOOR_CLOSED, 0, 0, + COLOUR_IS(LIGHTGREY), + FFT_NONE, MF_DOOR, +}, + +{ + DNGN_RUNED_DOOR, + DCHAR_DOOR_CLOSED, 0, 0, + COLOUR_AND_MAP(LIGHTBLUE), + FFT_NONE, MF_DOOR, +}, + +{ + DNGN_SEALED_DOOR, + DCHAR_DOOR_CLOSED, 0, 0, + COLOUR_AND_MAP(LIGHTGREEN), + FFT_NONE, MF_DOOR, +}, + +{ + DNGN_TREE, + DCHAR_TREE, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(ETC_TREE), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_METAL_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(CYAN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_GREEN_CRYSTAL_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(GREEN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_ROCK_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(ETC_ROCK), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_SLIMY_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTGREEN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_STONE_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTGREY), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_PERMAROCK_WALL, + DCHAR_PERMAWALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(ETC_ROCK), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_CLEAR_ROCK_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTCYAN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_CLEAR_STONE_WALL, + DCHAR_WALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTCYAN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_CLEAR_PERMAROCK_WALL, + DCHAR_PERMAWALL, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTCYAN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_GRATE, + DCHAR_GRATE, 0, Options.char_table[ DCHAR_WALL_MAGIC ], + COLOUR_IS(LIGHTBLUE), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_OPEN_SEA, + DCHAR_WALL, 0, 0, + COLOUR_IS(BLUE), + FFT_NONE, MF_DEEP_WATER, +}, + +{ + DNGN_LAVA_SEA, + DCHAR_WALL, 0, 0, + COLOUR_IS(RED), + FFT_NONE, MF_LAVA, +}, + +{ + DNGN_ORCISH_IDOL, + DCHAR_STATUE, 0, 0, + COLOUR_IS(BROWN), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_GRANITE_STATUE, + DCHAR_STATUE, 0, 0, + COLOUR_IS(DARKGREY), + FFT_NONE, MF_WALL, +}, + +{ + DNGN_MALIGN_GATEWAY, + DCHAR_ARCH, 0, 0, + COLOURS(ETC_SHIMMER_BLUE, LIGHTGREY), + FFT_NONE, MF_STAIR_UP, +}, + +{ + DNGN_LAVA, + DCHAR_WAVY, 0, 0, + COLOUR_IS(RED), + FFT_NONE, MF_LAVA, +}, + +{ + DNGN_DEEP_WATER, + DCHAR_WAVY, 0, 0, + COLOUR_IS(BLUE), + FFT_NONE, MF_DEEP_WATER, +}, + +{ + DNGN_SHALLOW_WATER, + DCHAR_WAVY, 0, 0, + COLOUR_IS(CYAN), + FFT_NONE, MF_WATER, +}, + +{ + DNGN_FLOOR, + DCHAR_FLOOR, 0, Options.char_table[ DCHAR_FLOOR_MAGIC ], + COLOUR_IS(ETC_FLOOR), + FFT_NONE, MF_FLOOR, +}, + +#if TAG_MAJOR_VERSION == 34 +{ + DNGN_BADLY_SEALED_DOOR, + DCHAR_FLOOR, 0, Options.char_table[ DCHAR_FLOOR_MAGIC ], + COLOUR_IS(ETC_FLOOR), + FFT_NONE, MF_FLOOR, +}, +#endif + +{ + DNGN_EXPIRED_PORTAL, + DCHAR_FLOOR, 0, Options.char_table[ DCHAR_FLOOR_MAGIC ], + COLOUR_IS(BROWN), + FFT_NONE, MF_FLOOR, +}, + +{ + DNGN_OPEN_DOOR, + DCHAR_DOOR_OPEN, 0, 0, + COLOUR_IS(LIGHTGREY), + FFT_NONE, MF_DOOR, +}, + +#define TRAP(enum, colour)\ +{\ + enum,\ + DCHAR_TRAP, 0, 0,\ + COLOUR_AND_MAP(colour),\ + FFT_NONE, MF_TRAP,\ +} + +TRAP(DNGN_TRAP_MECHANICAL, LIGHTCYAN), +TRAP(DNGN_TRAP_TELEPORT, LIGHTBLUE), +TRAP(DNGN_TRAP_ALARM, LIGHTRED), +TRAP(DNGN_TRAP_ZOT, LIGHTMAGENTA), +TRAP(DNGN_PASSAGE_OF_GOLUBRIA, GREEN), +TRAP(DNGN_TRAP_SHAFT, BROWN), +TRAP(DNGN_TRAP_WEB, LIGHTGREY), + +{ + DNGN_UNDISCOVERED_TRAP, + DCHAR_FLOOR, 0, Options.char_table[ DCHAR_FLOOR_MAGIC ], + COLOUR_IS(ETC_FLOOR), + FFT_NONE, MF_FLOOR, +}, + +{ + DNGN_ENTER_SHOP, + DCHAR_ARCH, 0, 0, + YELLOW, LIGHTGREY, YELLOW, YELLOW, LIGHTGREY, + FFT_NOTABLE, MF_FEATURE, +}, + +{ + DNGN_ABANDONED_SHOP, + DCHAR_ARCH, 0, 0, + COLOUR_AND_MAP(LIGHTGREY), + FFT_NONE, MF_FLOOR, +}, + +{ + DNGN_STONE_ARCH, + DCHAR_ARCH, 0, 0, + COLOUR_AND_MAP(LIGHTGREY), + FFT_NONE, MF_FLOOR, +}, + +{ + DNGN_UNKNOWN_PORTAL, + DCHAR_ARCH, 0, 0, + COLOURS(BLACK, LIGHTGREY), + FFT_NONE, MF_PORTAL, +}, + +#define STONE_STAIRS_DOWN(num)\ +{\ + DNGN_STONE_STAIRS_DOWN_##num,\ + DCHAR_STAIRS_DOWN, 0, 0,\ + RED, RED, RED, WHITE, WHITE,\ + FFT_NONE, MF_STAIR_DOWN,\ +} + +STONE_STAIRS_DOWN(I), +STONE_STAIRS_DOWN(II), +STONE_STAIRS_DOWN(III), + +#define STONE_STAIRS_UP(num)\ +{\ + DNGN_STONE_STAIRS_UP_##num,\ + DCHAR_STAIRS_UP, 0, 0,\ + GREEN, GREEN, GREEN, WHITE, WHITE,\ + FFT_NONE, MF_STAIR_UP,\ +} + +STONE_STAIRS_UP(I), +STONE_STAIRS_UP(II), +STONE_STAIRS_UP(III), + +{ + DNGN_ESCAPE_HATCH_DOWN, + DCHAR_STAIRS_DOWN, 0, 0, + COLOUR_AND_MAP(BROWN), + FFT_NONE, MF_STAIR_DOWN, +}, + +{ + DNGN_ESCAPE_HATCH_UP, + DCHAR_STAIRS_UP, 0, 0, + COLOUR_AND_MAP(BROWN), + FFT_NONE, MF_STAIR_UP, +}, + +{ + DNGN_EXIT_LABYRINTH, + DCHAR_STAIRS_UP, 0, 0, + COLOUR_AND_MAP(BROWN), + FFT_NONE, MF_STAIR_UP, +}, + +{ + DNGN_ENTER_LABYRINTH, + DCHAR_ARCH, 0, 0, + ETC_SHIMMER_BLUE, LIGHTGREY, ETC_SHIMMER_BLUE, ETC_SHIMMER_BLUE, ETC_SHIMMER_BLUE, + (FFT_NOTABLE | FFT_EXAMINE_HINT), MF_PORTAL, +}, + +#define PORTAL_ENTRANCE(enum, colour)\ +{\ + enum,\ + DCHAR_ARCH, 0, 0,\ + colour, LIGHTGREY, colour, colour, colour,\ + FFT_NOTABLE, MF_PORTAL,\ +} + +#define PORTAL_EXIT(enum, colour)\ +{\ + enum,\ + DCHAR_ARCH, 0, 0,\ + colour, LIGHTGREY, colour, colour, colour,\ + FFT_NONE, MF_PORTAL,\ +} + +PORTAL_ENTRANCE(DNGN_ENTER_DIS, CYAN), +PORTAL_ENTRANCE(DNGN_ENTER_GEHENNA, RED), +PORTAL_ENTRANCE(DNGN_ENTER_COCYTUS, LIGHTCYAN), +PORTAL_ENTRANCE(DNGN_ENTER_TARTARUS, MAGENTA), +PORTAL_ENTRANCE(DNGN_ENTER_HELL, RED), +PORTAL_EXIT(DNGN_EXIT_HELL, LIGHTRED), + +PORTAL_ENTRANCE(DNGN_ENTER_ABYSS, ETC_WARP), +PORTAL_ENTRANCE(DNGN_EXIT_THROUGH_ABYSS, ETC_WARP), +PORTAL_EXIT(DNGN_EXIT_ABYSS, ETC_WARP), + +PORTAL_ENTRANCE(DNGN_ENTER_PANDEMONIUM, LIGHTBLUE), +PORTAL_EXIT(DNGN_TRANSIT_PANDEMONIUM, LIGHTGREEN), +PORTAL_EXIT(DNGN_EXIT_PANDEMONIUM, LIGHTBLUE), + +PORTAL_ENTRANCE(DNGN_ENTER_VAULTS, LIGHTGREEN), +PORTAL_EXIT(DNGN_RETURN_FROM_VAULTS, ETC_SHIMMER_BLUE), + +PORTAL_ENTRANCE(DNGN_ENTER_ZOT, MAGENTA), +PORTAL_EXIT(DNGN_RETURN_FROM_ZOT, MAGENTA), + +#if TAG_MAJOR_VERSION == 34 +PORTAL_ENTRANCE(DNGN_ENTER_PORTAL_VAULT, ETC_SHIMMER_BLUE), +#endif +PORTAL_ENTRANCE(DNGN_ENTER_ZIGGURAT, ETC_SHIMMER_BLUE), +PORTAL_ENTRANCE(DNGN_ENTER_BAZAAR, ETC_SHIMMER_BLUE), +PORTAL_ENTRANCE(DNGN_ENTER_TROVE, BLUE), +PORTAL_ENTRANCE(DNGN_ENTER_SEWER, LIGHTGREEN), +PORTAL_ENTRANCE(DNGN_ENTER_OSSUARY, BROWN), +PORTAL_ENTRANCE(DNGN_ENTER_BAILEY, LIGHTRED), +PORTAL_ENTRANCE(DNGN_ENTER_ICE_CAVE, WHITE), +PORTAL_ENTRANCE(DNGN_ENTER_VOLCANO, RED), +PORTAL_ENTRANCE(DNGN_ENTER_WIZLAB, ETC_SHIMMER_BLUE), +PORTAL_ENTRANCE(DNGN_UNUSED_ENTER_PORTAL_1, ETC_SHIMMER_BLUE), +#if TAG_MAJOR_VERSION == 34 +PORTAL_EXIT(DNGN_EXIT_PORTAL_VAULT, ETC_SHIMMER_BLUE), +#endif +PORTAL_EXIT(DNGN_EXIT_ZIGGURAT, ETC_SHIMMER_BLUE), +PORTAL_EXIT(DNGN_EXIT_BAZAAR, ETC_SHIMMER_BLUE), +PORTAL_EXIT(DNGN_EXIT_TROVE, BLUE), +PORTAL_EXIT(DNGN_EXIT_SEWER, BROWN), +PORTAL_EXIT(DNGN_EXIT_OSSUARY, BROWN), +PORTAL_EXIT(DNGN_EXIT_BAILEY, ETC_SHIMMER_BLUE), +PORTAL_EXIT(DNGN_EXIT_ICE_CAVE, WHITE), +PORTAL_EXIT(DNGN_EXIT_VOLCANO, RED), +PORTAL_EXIT(DNGN_EXIT_WIZLAB, ETC_SHIMMER_BLUE), +PORTAL_EXIT(DNGN_UNUSED_EXIT_PORTAL_1, ETC_SHIMMER_BLUE), + +#define BRANCH_ENTRANCE(enum)\ +{\ + enum,\ + DCHAR_STAIRS_DOWN, 0, 0,\ + YELLOW, RED, YELLOW, YELLOW, YELLOW,\ + FFT_NOTABLE, MF_STAIR_BRANCH,\ +} + +#define BRANCH_EXIT(enum)\ +{\ + enum,\ + DCHAR_STAIRS_UP, 0, 0,\ + YELLOW, GREEN, YELLOW, YELLOW, YELLOW,\ + FFT_NONE, MF_STAIR_UP,\ +} + +{ + DNGN_EXIT_DUNGEON, + DCHAR_STAIRS_UP, 0, 0, + LIGHTBLUE, GREEN, LIGHTBLUE, LIGHTBLUE, LIGHTBLUE, + FFT_NONE, MF_STAIR_UP, +}, + +{ + DNGN_ENTER_SLIME, + DCHAR_STAIRS_DOWN, 0, 0, + YELLOW, RED, YELLOW, YELLOW, YELLOW, + (FFT_NOTABLE | FFT_EXAMINE_HINT), MF_STAIR_BRANCH, +}, +BRANCH_EXIT(DNGN_RETURN_FROM_SLIME), + +{ + DNGN_ENTER_ORC, + DCHAR_STAIRS_DOWN, 0, 0, + YELLOW, RED, YELLOW, YELLOW, YELLOW, + (FFT_NOTABLE | FFT_EXAMINE_HINT), MF_STAIR_BRANCH, +}, +BRANCH_EXIT(DNGN_RETURN_FROM_ORC), + +#if TAG_MAJOR_VERSION == 34 +BRANCH_ENTRANCE(DNGN_ENTER_DWARF), +BRANCH_ENTRANCE(DNGN_ENTER_FOREST), +BRANCH_ENTRANCE(DNGN_ENTER_BLADE), +BRANCH_EXIT(DNGN_RETURN_FROM_DWARF), +BRANCH_EXIT(DNGN_RETURN_FROM_FOREST), +BRANCH_EXIT(DNGN_RETURN_FROM_BLADE), +#endif + +BRANCH_ENTRANCE(DNGN_ENTER_LAIR), +BRANCH_EXIT(DNGN_RETURN_FROM_LAIR), + +BRANCH_ENTRANCE(DNGN_ENTER_CRYPT), +BRANCH_EXIT(DNGN_RETURN_FROM_CRYPT), + +BRANCH_ENTRANCE(DNGN_ENTER_TEMPLE), +BRANCH_EXIT(DNGN_RETURN_FROM_TEMPLE), + +BRANCH_ENTRANCE(DNGN_ENTER_SNAKE), +BRANCH_EXIT(DNGN_RETURN_FROM_SNAKE), + +BRANCH_ENTRANCE(DNGN_ENTER_ELF), +BRANCH_EXIT(DNGN_RETURN_FROM_ELF), + +BRANCH_ENTRANCE(DNGN_ENTER_TOMB), +BRANCH_EXIT(DNGN_RETURN_FROM_TOMB), + +BRANCH_ENTRANCE(DNGN_ENTER_SWAMP), +BRANCH_EXIT(DNGN_RETURN_FROM_SWAMP), + +BRANCH_ENTRANCE(DNGN_ENTER_SHOALS), +BRANCH_EXIT(DNGN_RETURN_FROM_SHOALS), + +BRANCH_ENTRANCE(DNGN_ENTER_SPIDER), +BRANCH_EXIT(DNGN_RETURN_FROM_SPIDER), + +BRANCH_ENTRANCE(DNGN_ENTER_DEPTHS), +BRANCH_EXIT(DNGN_RETURN_FROM_DEPTHS), + +#define ALTAR(enum, colour)\ +{\ + enum,\ + DCHAR_ALTAR, 0, 0,\ + colour, DARKGREY, colour, colour, colour,\ + FFT_NOTABLE, MF_FEATURE,\ +} + +ALTAR(DNGN_UNKNOWN_ALTAR, BLACK), +ALTAR(DNGN_ALTAR_ZIN, LIGHTGREY), +ALTAR(DNGN_ALTAR_SHINING_ONE, YELLOW), +ALTAR(DNGN_ALTAR_KIKUBAAQUDGHA, DARKGREY), +ALTAR(DNGN_ALTAR_YREDELEMNUL, ETC_UNHOLY), +ALTAR(DNGN_ALTAR_XOM, ETC_RANDOM), +ALTAR(DNGN_ALTAR_VEHUMET, ETC_VEHUMET), +ALTAR(DNGN_ALTAR_OKAWARU, CYAN), +ALTAR(DNGN_ALTAR_MAKHLEB, ETC_FIRE), +ALTAR(DNGN_ALTAR_SIF_MUNA, BLUE), +ALTAR(DNGN_ALTAR_TROG, RED), +ALTAR(DNGN_ALTAR_NEMELEX_XOBEH, LIGHTMAGENTA), +ALTAR(DNGN_ALTAR_ELYVILON, WHITE), +ALTAR(DNGN_ALTAR_LUGONU, MAGENTA), +ALTAR(DNGN_ALTAR_BEOGH, ETC_BEOGH), +ALTAR(DNGN_ALTAR_JIYVA, ETC_SLIME), +ALTAR(DNGN_ALTAR_FEDHAS, GREEN), +ALTAR(DNGN_ALTAR_CHEIBRIADOS, LIGHTCYAN), +ALTAR(DNGN_ALTAR_ASHENZARI, LIGHTRED), +ALTAR(DNGN_ALTAR_DITHMENOS, ETC_DITHMENOS), +ALTAR(DNGN_ALTAR_GOZAG, ETC_GOLD), // for the Gold God! +ALTAR(DNGN_ALTAR_QAZLAL, ETC_ELEMENTAL), + +#define FOUNTAIN(enum, colour)\ +{\ + enum,\ + DCHAR_FOUNTAIN, 0, 0,\ + COLOUR_IS(colour),\ + FFT_NONE, MF_FEATURE,\ +} +FOUNTAIN(DNGN_FOUNTAIN_BLUE, BLUE), +FOUNTAIN(DNGN_FOUNTAIN_SPARKLING, LIGHTBLUE), +FOUNTAIN(DNGN_FOUNTAIN_BLOOD, RED), +FOUNTAIN(DNGN_DRY_FOUNTAIN, LIGHTGREY), +#if TAG_MAJOR_VERSION == 34 +FOUNTAIN(DNGN_DRY_FOUNTAIN_BLUE, LIGHTGREY), +FOUNTAIN(DNGN_DRY_FOUNTAIN_SPARKLING, LIGHTGREY), +FOUNTAIN(DNGN_DRY_FOUNTAIN_BLOOD, LIGHTGREY), +#endif + +{ + DNGN_TELEPORTER, + DCHAR_TELEPORTER, 0, 0, + COLOUR_AND_MAP(YELLOW), + FFT_NONE, MF_FEATURE, +}, + +{ + DNGN_SEALED_STAIRS_UP, + DCHAR_STAIRS_UP, 0, 0, + COLOUR_AND_MAP(LIGHTGREEN), + FFT_NONE, MF_STAIR_UP, +}, + +{ + DNGN_SEALED_STAIRS_DOWN, + DCHAR_STAIRS_DOWN, 0, 0, + COLOUR_AND_MAP(LIGHTGREEN), + FFT_NONE, MF_STAIR_DOWN, +}, + +{ + DNGN_ABYSSAL_STAIR, + DCHAR_STAIRS_DOWN, 0, 0, + COLOUR_AND_MAP(LIGHTCYAN), + FFT_NONE, MF_STAIR_BRANCH, +}, + +}; |