From 429cc16cb83f54b3f983e151ce1f080b2a3e8ec0 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Mon, 13 Jul 2009 17:14:35 +0000 Subject: * Add a tile for detected secret doors as suggested by zebez, then turned the idea on its head. * Fix corpses getting the wrong blood stain background tile (also a patch by zebez), and change around the colours a bit: a red blood stain now shows that Vampires can drain the corpse, undrainable corpses get the green background instead * Apply a small patch by Josh Triplett to give more appropriate messages when glowing weapons are sacrificed and disappear "without a glow" git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10209 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/directn.cc | 20 ++++---- crawl-ref/source/religion.cc | 35 ++++++++++--- .../rltiles/UNUSED/other/dngn_branch_stairs.png | Bin 0 -> 495 bytes crawl-ref/source/rltiles/dc-corpse.txt | 22 ++++---- crawl-ref/source/rltiles/dc-dngn.txt | 29 +++++++---- .../source/rltiles/dc-dngn/dngn_branch_stairs.png | Bin 495 -> 0 bytes .../rltiles/dc-dngn/dngn_detected_secret_door.png | Bin 0 -> 1022 bytes crawl-ref/source/tilepick.cc | 33 +++++++----- crawl-ref/source/tilereg.cc | 56 ++++++++++++--------- crawl-ref/source/tiles.h | 13 ++--- 10 files changed, 129 insertions(+), 79 deletions(-) create mode 100644 crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png delete mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png (limited to 'crawl-ref') diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc index 86ef9b0ee1..666b59ae96 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -2558,26 +2558,26 @@ static std::string _base_feature_desc(dungeon_feature_type grid, return ("dart trap"); case TRAP_ARROW: return ("arrow trap"); + case TRAP_NEEDLE: + return ("needle trap"); + case TRAP_BOLT: + return ("bolt trap"); case TRAP_SPEAR: return ("spear trap"); case TRAP_AXE: return ("axe trap"); - case TRAP_TELEPORT: - return ("teleportation trap"); - case TRAP_ALARM: - return ("alarm trap"); case TRAP_BLADE: return ("blade trap"); - case TRAP_BOLT: - return ("bolt trap"); case TRAP_NET: return ("net trap"); - case TRAP_ZOT: - return ("Zot trap"); - case TRAP_NEEDLE: - return ("needle trap"); + case TRAP_ALARM: + return ("alarm trap"); case TRAP_SHAFT: return ("shaft"); + case TRAP_TELEPORT: + return ("teleportation trap"); + case TRAP_ZOT: + return ("Zot trap"); default: error_message_to_player(); return ("undefined trap"); diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 5fca7f4e09..33642707a1 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -90,6 +90,7 @@ REVISION("$Rev$"); // Item offering messages for the gods: // & is replaced by "is" or "are" as appropriate for the item. // % is replaced by "s" or "" as appropriate. +// Text between [] only appears if the item already glows. // <> and are replaced with colors. // First message is if there's no piety gain; second is if piety gain is // one; third is if piety gain is more than one. @@ -115,7 +116,7 @@ static const char *_Sacrifice_Messages[NUM_GODS][NUM_PIETY_GAIN] = }, // TSO { - " faintly glow% and disappear%.", + " glow% a dingy golden colour and disappear%.", " glow% a golden colour and disappear%.", " glow% a brilliant golden colour and disappear%.", }, @@ -157,9 +158,9 @@ static const char *_Sacrifice_Messages[NUM_GODS][NUM_PIETY_GAIN] = }, // Sif Muna { - " & gone without a glow.", - " glow% faintly for a moment, and & gone.", - " glow% for a moment, and & gone.", + " & gone without a[dditional] glow.", + " glow% slightly [brighter ]for a moment, and & gone.", + " glow% [brighter ]for a moment, and & gone.", }, // Trog { @@ -169,8 +170,8 @@ static const char *_Sacrifice_Messages[NUM_GODS][NUM_PIETY_GAIN] = }, // Nemelex { - " disappear% without a glow.", - " glow% slightly and disappear%.", + " disappear% without a[dditional] glow.", + " glow% slightly [brighter ]and disappear%.", " glow% with a rainbow of weird colours and disappear%.", }, // Elyvilon (no sacrifices, but used for weapon destruction) @@ -6191,10 +6192,30 @@ static void _replace(std::string& s, } } +static void _erase_between(std::string& s, + const std::string &left, + const std::string &right) +{ + std::string::size_type left_pos; + std::string::size_type right_pos; + + while ((left_pos = s.find(left)) != std::string::npos + && (right_pos = s.find(right, left_pos + left.size())) != std::string::npos) + s.erase(s.begin() + left_pos, s.begin() + right_pos + right.size()); +} + static void _print_sacrifice_message(god_type god, const item_def &item, piety_gain_t piety_gain, bool your) { std::string msg(_Sacrifice_Messages[god][piety_gain]); + std::string itname = item.name(your ? DESC_CAP_YOUR : DESC_CAP_THE); + if (itname.find("glowing") != std::string::npos) + { + _replace(msg, "[", ""); + _replace(msg, "]", ""); + } + else + _erase_between(msg, "[", "]"); _replace(msg, "%", (item.quantity == 1? "s" : "")); _replace(msg, "&", (item.quantity == 1? "is" : "are")); const char *tag_start, *tag_end; @@ -6214,7 +6235,7 @@ static void _print_sacrifice_message(god_type god, const item_def &item, break; } - msg.insert(0, item.name(your ? DESC_CAP_YOUR : DESC_CAP_THE)); + msg.insert(0, itname); msg = tag_start + msg + tag_end; formatted_message_history(msg, MSGCH_GOD); diff --git a/crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png b/crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png new file mode 100644 index 0000000000..de52fcbae5 Binary files /dev/null and b/crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png differ diff --git a/crawl-ref/source/rltiles/dc-corpse.txt b/crawl-ref/source/rltiles/dc-corpse.txt index 18c51333c6..41a653547a 100644 --- a/crawl-ref/source/rltiles/dc-corpse.txt +++ b/crawl-ref/source/rltiles/dc-corpse.txt @@ -1,7 +1,10 @@ ### Dungeon Crawl monster corpses ### (only lists monsters that actually leave a corpse) -%sdir dc-mon +### All corpses get a background blood stain, either red or green. +### - red, if the monster might leave red spatters elsewhere +### (meaning it has blood a vampire can drink, even if poisonous) +### - green, otherwise. %corpse 1 @@ -48,6 +51,7 @@ giant_slug CORPSE_GIANT_SLUG giant_snail CORPSE_GIANT_SNAIL ## Rodents ('r') +%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 rat CORPSE_RAT quokka CORPSE_QUOKKA grey_rat CORPSE_GREY_RAT @@ -79,12 +83,12 @@ yellow_wasp CORPSE_YELLOW_WASP red_wasp CORPSE_RED_WASP ## Beetles ('B') -%back dc-misc/blood_green giant_beetle CORPSE_GIANT_BEETLE boring_beetle CORPSE_BORING_BEETLE boulder_beetle CORPSE_BOULDER_BEETLE ## Frogs ('F') +%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 giant_frog CORPSE_GIANT_FROG giant_brown_frog CORPSE_GIANT_BROWN_FROG blink_frog CORPSE_BLINK_FROG @@ -132,7 +136,6 @@ hobgoblin CORPSE_HOBGOBLIN gnoll CORPSE_GNOLL ## Merfolk ('m') -%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 merfolk_fighter_water CORPSE_MERFOLK_FIGHTER mermaid_water CORPSE_MERMAID siren_water CORPSE_SIREN @@ -147,7 +150,6 @@ ghoul CORPSE_GHOUL orc CORPSE_ORC ## Minotaur ('t') -%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 minotaur CORPSE_MINOTAUR ## Ugly things ('u') @@ -157,7 +159,6 @@ very_ugly_thing CORPSE_VERY_UGLY_THING ## Giants ('C') %sdir dc-mon -%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 hill_giant CORPSE_HILL_GIANT ettin CORPSE_ETTIN cyclops CORPSE_CYCLOPS @@ -187,10 +188,12 @@ golden_dragon CORPSE_GOLDEN_DRAGON shadow_dragon CORPSE_SHADOW_DRAGON ## Eyes ('G') +%back dc-misc/blood_green giant_eyeball CORPSE_GIANT_EYEBALL eye_of_draining CORPSE_EYE_OF_DRAINING -giant_orange_brain CORPSE_GIANT_ORANGE_BRAIN great_orb_of_eyes CORPSE_GREAT_ORB_OF_EYES +%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 +giant_orange_brain CORPSE_GIANT_ORANGE_BRAIN ## Hybrids ('H') hippogriff CORPSE_HIPPOGRIFF @@ -199,15 +202,15 @@ manticore CORPSE_MANTICORE harpy CORPSE_HARPY ## Jellies ('J') +%back dc-misc/blood_green giant_amoeba CORPSE_GIANT_AMOEBA ## Kobolds ('K') -%back dc-misc/blood_green +%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 kobold CORPSE_KOBOLD big_kobold CORPSE_BIG_KOBOLD ## Nagas ('N') -%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 naga CORPSE_NAGA guardian_naga CORPSE_GUARDIAN_NAGA @@ -222,13 +225,14 @@ iron_troll CORPSE_IRON_TROLL deep_troll CORPSE_DEEP_TROLL ## Human shaped ('@') -%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 human CORPSE_HUMAN +%back dc-misc/blood_green shapeshifter CORPSE_SHAPESHIFTER glowing_shapeshifter CORPSE_GLOWING_SHAPESHIFTER ## Draconians ('d') %sdir player +%back dc-misc/blood_red dc-misc/blood_red1 dc-misc/blood_red2 dc-misc/blood_red3 dc-misc/blood_red4 %start %compose drcwing/drcwing_black %compose base/draconian_black_m diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt index abd2f7153a..47a3d7994c 100644 --- a/crawl-ref/source/rltiles/dc-dngn.txt +++ b/crawl-ref/source/rltiles/dc-dngn.txt @@ -322,6 +322,8 @@ wall/dngn_green_crystal_wall DNGN_GREEN_CRYSTAL_WALL wall/dngn_wax_wall DNGN_WAX_WALL wall/dngn_transparent_wall DNGN_TRANSPARENT_WALL +## doors +dngn_detected_secret_door DNGN_DETECTED_SECRET_DOOR dngn_closed_door DNGN_CLOSED_DOOR gate_closed_left DNGN_GATE_CLOSED_LEFT gate_closed_middle DNGN_GATE_CLOSED_MIDDLE @@ -330,26 +332,33 @@ dngn_open_door DNGN_OPEN_DOOR gate_open_left DNGN_GATE_OPEN_LEFT gate_open_middle DNGN_GATE_OPEN_MIDDLE gate_open_right DNGN_GATE_OPEN_RIGHT + dngn_orcish_idol DNGN_ORCISH_IDOL dngn_granite_statue DNGN_GRANITE_STATUE -dngn_branch_stairs DNGN_BRANCH_STAIRS +## traps dngn_trap_dart DNGN_TRAP_DART dngn_trap_arrow DNGN_TRAP_ARROW +dngn_trap_needle DNGN_TRAP_NEEDLE +dngn_trap_bolt DNGN_TRAP_BOLT dngn_trap_spear DNGN_TRAP_SPEAR dngn_trap_axe DNGN_TRAP_AXE -dngn_trap_teleport DNGN_TRAP_TELEPORT -dngn_trap_alarm DNGN_TRAP_ALARM dngn_trap_blade DNGN_TRAP_BLADE -dngn_trap_bolt DNGN_TRAP_BOLT dngn_trap_net DNGN_TRAP_NET -dngn_trap_zot DNGN_TRAP_ZOT -dngn_trap_needle DNGN_TRAP_NEEDLE +dngn_trap_alarm DNGN_TRAP_ALARM dngn_trap_shaft DNGN_TRAP_SHAFT +dngn_trap_teleport DNGN_TRAP_TELEPORT +dngn_trap_zot DNGN_TRAP_ZOT + +## stairs stone_stairs_down DNGN_STONE_STAIRS_DOWN -escape_hatch_down DNGN_ESCAPE_HATCH_DOWN stone_stairs_up DNGN_STONE_STAIRS_UP +escape_hatch_down DNGN_ESCAPE_HATCH_DOWN escape_hatch_up DNGN_ESCAPE_HATCH_UP +dngn_enter DNGN_ENTER +%rim 1 +dngn_return DNGN_RETURN +%rim 0 %sdir dc-dngn/shops ##dngn_enter_shop DNGN_ENTER_SHOP @@ -375,6 +384,8 @@ floor/lava0 DNGN_LAVA floor/lava1 floor/lava2 floor/lava3 + +## water dngn_deep_water DNGN_DEEP_WATER dngn_shallow_water DNGN_SHALLOW_WATER dngn_shallow_water_disturbance DNGN_SHALLOW_WATER_DISTURBANCE @@ -404,10 +415,6 @@ dngn_exit_flickering %rim 1 dngn_transit_pandemonium DNGN_TRANSIT_PANDEMONIUM %rim 0 -dngn_enter DNGN_ENTER -%rim 1 -dngn_return DNGN_RETURN -%rim 0 %sdir dc-dngn/altars dngn_altar_zin DNGN_ALTAR_ZIN diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png b/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png deleted file mode 100644 index de52fcbae5..0000000000 Binary files a/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png and /dev/null differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png b/crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png new file mode 100644 index 0000000000..c3d0c9ec21 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png differ diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 2477c3cab9..7b81e5b64c 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -2339,7 +2339,13 @@ int tileidx_feature(int object, int gx, int gy) case DNGN_PERMAROCK_WALL: return TILE_WALL_NORMAL; case DNGN_SECRET_DOOR: - return (unsigned int) grid_secret_door_appearance(coord_def(gx, gy)); + case DNGN_DETECTED_SECRET_DOOR: + { + const dungeon_feature_type appear + = grid_secret_door_appearance(coord_def(gx, gy)); + ASSERT(!grid_is_secret_door(appear)); + return tileidx_feature((int) appear, gx, gy); + } case DNGN_CLEAR_ROCK_WALL: case DNGN_CLEAR_STONE_WALL: case DNGN_CLEAR_PERMAROCK_WALL: @@ -2347,7 +2353,6 @@ int tileidx_feature(int object, int gx, int gy) case DNGN_STONE_WALL: return TILE_DNGN_STONE_WALL; case DNGN_CLOSED_DOOR: - case DNGN_DETECTED_SECRET_DOOR: // same tile return TILE_DNGN_CLOSED_DOOR; case DNGN_METAL_WALL: return TILE_DNGN_METAL_WALL; @@ -3924,8 +3929,8 @@ void tile_clear_flavour() { for (rectangle_iterator ri(1); ri; ++ri) { - env.tile_flv(*ri).floor = 0; - env.tile_flv(*ri).wall = 0; + env.tile_flv(*ri).floor = 0; + env.tile_flv(*ri).wall = 0; env.tile_flv(*ri).special = 0; } } @@ -3983,7 +3988,7 @@ void tile_init_flavour(const coord_def &gc) else env.tile_flv(gc).special = 0; } - else if (grd(gc) == DNGN_SECRET_DOOR) + else if (grid_is_secret_door(grd(gc))) env.tile_flv(gc).special = 0; else if (!env.tile_flv(gc).special) env.tile_flv(gc).special = random2(256); @@ -4196,8 +4201,8 @@ void tile_floor_halo(dungeon_feature_type target, int tile) // Generally the tiles don't fit with a north to the right or left // of a south tile. What we really want to do is to separate the // two regions, by making 1 a SPECIAL_SE and 2 a SPECIAL_NW tile. - for (int y = 0; y < GYM - 1; y++) - for (int x = 0; x < GXM - 1; x++) + for (int y = 0; y < GYM - 1; ++y) + for (int x = 0; x < GXM - 1; ++x) { int this_spc = env.tile_flv[x][y].floor - tile; if (this_spc < 0 || this_spc > 8) @@ -4244,7 +4249,7 @@ void tile_draw_floor() for (int cx = 0; cx < env.tile_fg.width(); cx++) { const coord_def ep(cx+1, cy+1); - const coord_def gc = view2grid(show2view(ep)); + const coord_def gc = show2grid(ep); int bg = TILE_DNGN_UNSEEN | tile_unseen_flag(gc); int object = show_appearance(ep); @@ -4252,11 +4257,15 @@ void tile_draw_floor() { bg = tileidx_feature(object, gc.x, gc.y); - if (in_bounds(gc) - && is_travelable_stair((dungeon_feature_type)object) - && !travel_cache.know_stair(gc)) + if (in_bounds(gc)) { - bg |= TILE_FLAG_NEW_STAIR; + if (object == DNGN_DETECTED_SECRET_DOOR) + bg |= TILE_FLAG_WAS_SECRET; + else if (is_travelable_stair((dungeon_feature_type)object) + && !travel_cache.know_stair(gc)) + { + bg |= TILE_FLAG_NEW_STAIR; + } } } diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc index cc015ab602..af00afb78b 100644 --- a/crawl-ref/source/tilereg.cc +++ b/crawl-ref/source/tilereg.cc @@ -259,38 +259,46 @@ void DungeonRegion::load_dungeon(unsigned int* tileb, int cx_to_gx, int cy_to_gy void DungeonRegion::pack_background(unsigned int bg, int x, int y) { unsigned int bg_idx = bg & TILE_FLAG_MASK; + if (bg_idx >= TILE_DNGN_WAX_WALL) { tile_flavour &flv = env.tile_flv[x + m_cx_to_gx][y + m_cy_to_gy]; m_buf_dngn.add(flv.floor, x, y); } - m_buf_dngn.add(bg_idx, x, y); - if (bg & TILE_FLAG_BLOOD && bg_idx > TILE_DNGN_UNSEEN) - { - tile_flavour &flv = env.tile_flv[x + m_cx_to_gx][y + m_cy_to_gy]; - int offset = flv.special % tile_dngn_count(TILE_BLOOD); - m_buf_dngn.add(TILE_BLOOD + offset, x, y); - } - - if (bg & TILE_FLAG_HALO) - m_buf_dngn.add(TILE_HALO, x, y); + if (bg & TILE_FLAG_WAS_SECRET) + m_buf_dngn.add(TILE_DNGN_DETECTED_SECRET_DOOR, x, y); - if (bg & TILE_FLAG_SANCTUARY && !(bg & TILE_FLAG_UNSEEN)) - m_buf_dngn.add(TILE_SANCTUARY, x, y); + if (bg_idx > TILE_DNGN_UNSEEN) + { + if (bg & TILE_FLAG_BLOOD) + { + tile_flavour &flv = env.tile_flv[x + m_cx_to_gx][y + m_cy_to_gy]; + int offset = flv.special % tile_dngn_count(TILE_BLOOD); + m_buf_dngn.add(TILE_BLOOD + offset, x, y); + } - // Apply the travel exclusion under the foreground if the cell is - // visible. It will be applied later if the cell is unseen. - if (bg & TILE_FLAG_EXCL_CTR && !(bg & TILE_FLAG_UNSEEN)) - m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_CENTRE_BG, x, y); - else if (bg & TILE_FLAG_TRAV_EXCL && !(bg & TILE_FLAG_UNSEEN)) - m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_BG, x, y); + if (bg & TILE_FLAG_HALO) + m_buf_dngn.add(TILE_HALO, x, y); - if (bg & TILE_FLAG_RAY) - m_buf_dngn.add(TILE_RAY, x, y); - else if (bg & TILE_FLAG_RAY_OOR) - m_buf_dngn.add(TILE_RAY_OUT_OF_RANGE, x, y); + if (!(bg & TILE_FLAG_UNSEEN)) + { + if (bg & TILE_FLAG_SANCTUARY) + m_buf_dngn.add(TILE_SANCTUARY, x, y); + + // Apply the travel exclusion under the foreground if the cell is + // visible. It will be applied later if the cell is unseen. + if (bg & TILE_FLAG_EXCL_CTR) + m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_CENTRE_BG, x, y); + else if (bg & TILE_FLAG_TRAV_EXCL) + m_buf_dngn.add(TILE_TRAVEL_EXCLUSION_BG, x, y); + } + if (bg & TILE_FLAG_RAY) + m_buf_dngn.add(TILE_RAY, x, y); + else if (bg & TILE_FLAG_RAY_OOR) + m_buf_dngn.add(TILE_RAY_OUT_OF_RANGE, x, y); + } } #define NUM_MAX_DOLLS 10 @@ -975,8 +983,8 @@ void DungeonRegion::pack_buffers() return; int tile = 0; - for (int y = 0; y < crawl_view.viewsz.y; y++) - for (int x = 0; x < crawl_view.viewsz.x; x++) + for (int y = 0; y < crawl_view.viewsz.y; ++y) + for (int x = 0; x < crawl_view.viewsz.x; ++x) { unsigned int bg = m_tileb[tile + 1]; unsigned int fg = m_tileb[tile]; diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h index 49833897b9..4898ea16d2 100644 --- a/crawl-ref/source/tiles.h +++ b/crawl-ref/source/tiles.h @@ -166,12 +166,13 @@ enum tile_flags TILE_FLAG_BLOOD = 0x00010000, TILE_FLAG_HALO = 0x00020000, TILE_FLAG_NEW_STAIR = 0x00040000, - TILE_FLAG_TRAV_EXCL = 0x00080000, - TILE_FLAG_EXCL_CTR = 0x00100000, - TILE_FLAG_SANCTUARY = 0x00200000, - TILE_FLAG_TUT_CURSOR = 0x00400000, - TILE_FLAG_RAY_OOR = 0x00800000, - TILE_FLAG_OOR = 0x01000000, + TILE_FLAG_WAS_SECRET = 0x00080000, + TILE_FLAG_TRAV_EXCL = 0x00100000, + TILE_FLAG_EXCL_CTR = 0x00200000, + TILE_FLAG_SANCTUARY = 0x00400000, + TILE_FLAG_TUT_CURSOR = 0x00800000, + TILE_FLAG_RAY_OOR = 0x01000000, + TILE_FLAG_OOR = 0x02000000, // General TILE_FLAG_MASK = 0x000007FF -- cgit v1.2.3-54-g00ecf