summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/directn.cc20
-rw-r--r--crawl-ref/source/religion.cc35
-rw-r--r--crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png (renamed from crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png)bin495 -> 495 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-corpse.txt22
-rw-r--r--crawl-ref/source/rltiles/dc-dngn.txt29
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.pngbin0 -> 1022 bytes
-rw-r--r--crawl-ref/source/tilepick.cc33
-rw-r--r--crawl-ref/source/tilereg.cc56
-rw-r--r--crawl-ref/source/tiles.h13
9 files changed, 129 insertions, 79 deletions
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/dc-dngn/dngn_branch_stairs.png b/crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png
index de52fcbae5..de52fcbae5 100644
--- a/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.png
+++ b/crawl-ref/source/rltiles/UNUSED/other/dngn_branch_stairs.png
Binary files 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_detected_secret_door.png b/crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png
new file mode 100644
index 0000000000..c3d0c9ec21
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/dngn_detected_secret_door.png
Binary files 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