All pastes #1805599 Raw Edit

Something

public text v1 · immutable
#1805599 ·published 2010-02-22 10:53 UTC
rendered paste body
From d5fdd587187ff1b53bcc9cedf2ae867107243d5c Mon Sep 17 00:00:00 2001
From: Eino Keskitalo <evktalo@users.sourceforge.net>
Date: Mon, 22 Feb 2010 09:22:29 +0200
Subject: [PATCH 1/2] Use epilogues for portal vault milestones and welcome messages.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
---
 crawl-ref/source/dat/des/portals/bailey.des  |   35 +++++++++++-
 crawl-ref/source/dat/des/portals/bazaar.des  |   78 +++++++++++++++++++++++++-
 crawl-ref/source/dat/des/portals/icecave.des |   18 ++++++
 crawl-ref/source/dat/des/portals/ossuary.des |   28 +++++++++
 crawl-ref/source/dat/des/portals/sewer.des   |   31 ++++++++++
 crawl-ref/source/dat/des/portals/trove.des   |   36 ++++++++++++
 crawl-ref/source/dat/des/portals/volcano.des |   30 ++++++++++
 crawl-ref/source/dat/des/portals/wizlab.des  |   66 +++++++++++++++++++++-
 8 files changed, 318 insertions(+), 4 deletions(-)

diff --git a/crawl-ref/source/dat/des/portals/bailey.des b/crawl-ref/source/dat/des/portals/bailey.des
index a9ddf2e..814c07c 100644
--- a/crawl-ref/source/dat/des/portals/bailey.des
+++ b/crawl-ref/source/dat/des/portals/bailey.des
@@ -60,12 +60,15 @@ function bailey_portal_polearm(e)
   bailey_portal(e, 'polearm')
 end
 
--- colours and milestone
+-- colours
 function bailey_setup(e)
   e.kfeat("< = exit_portal_vault")
   e.colour("< = darkgrey")
   e.lrockcol("lightgrey")
   e.lfloorcol("white")
+end
+
+function bailey_milestoone(e)
   crawl.mark_milestone("br.enter", "entered a Bailey.")
 end
 
@@ -392,6 +395,9 @@ NSUBST: s = 1:T / *:.
 NSUBST: t = 1:T / *:.
 KFEAT:  T = teleport trap
 : bailey_setup(_G)
+epilogue{{
+  : bailey_milestone(_G)
+}}
 MAP
   ccccccccc
   ccccZcccc
@@ -450,6 +456,9 @@ ITEM:   potion of experience q:2 w:30 / potion of cure mutation q:3 w:30 /\
         potion of gain intelligence q:8 / potion of gain strength q:8 /\
         potion of gain dexterity q:8
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 ccc ccc ccccc ccc ccc
 cAccc1ccc2+2ccc1ccc1c
@@ -497,6 +506,9 @@ KFEAT:  T = teleport trap
 : hard_axe_fighter(_G)
 #
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxx.....xxxxxxxxxxx
@@ -575,6 +587,9 @@ SUBST:   N = nc
 SUBST:   2 = 223
 #
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 ccccccccccccccccccccccccccccccccccccccccccccccccccc
 cccccccccccccccccccccccccc..??.d.??d<cccccccccccccc
@@ -632,6 +647,9 @@ ITEM:   potion of gain strength / potion of gain intelligence / \
 : hard_axe_fighter(_G)
 MONS:   orc warlord
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 SUBST:  I = t.
 MAP
 ttttttttttttttttttttttttttttttttttttt
@@ -718,6 +736,9 @@ ITEM:   good_item cloak race:orcish / good_item pair of gloves race:orcish /\
         good_item helmet race:orcish / good_item pair of boots race:orcish /\
         good_item large shield race:orcish / good_item shield race:orcish
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xAxxxxxxxxxxx.........xxxxxxxxxxxxx
@@ -775,6 +796,9 @@ ITEM:   potion of experience q:2 / scroll of acquirement q:2 /\
 #      can help?
 SUBST:  d = de|
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xA........................................x
@@ -839,6 +863,9 @@ MONS:    deep elf soldier / deep elf fighter
 MONS:    deep elf summoner / deep elf priest / nothing
 MONS:    deep elf knight
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
          ccccc
     cccccc...cccccc
@@ -882,6 +909,9 @@ MONS:   orc warrior ; crossbow . bolt | halberd ego:reaching
 : orc_knight_with_reaching(_G)
 SUBST:  1=112, 2=23, 3=34
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 ccccccccccccccccccccccccccccccc
 ccxxxcccccccccxxxcccccccccxxxcc
@@ -929,6 +959,9 @@ MONS:   orc warrior ; spear w:5 | trident w:5 | halberd | hand axe | war axe /\
 : orc_warrior_with_reaching(_G)
 : orc_knight_with_reaching(_G)
 : bailey_setup(_G)
+epilogue{{
+: bailey_milestone(_G)
+}}
 MAP
 cccccccccccccccccccccccccccccccccccccccccccccccccccccc
 cc...<.....1cccccccc....1ccccccccc....1ccc..........cc
diff --git a/crawl-ref/source/dat/des/portals/bazaar.des b/crawl-ref/source/dat/des/portals/bazaar.des
index 4cf563b..5b3457c 100644
--- a/crawl-ref/source/dat/des/portals/bazaar.des
+++ b/crawl-ref/source/dat/des/portals/bazaar.des
@@ -323,7 +323,9 @@ KFEAT:   C = wand shop / jewellery shop
 KFEAT:   D = antique weapon shop
 KFEAT:   E = antique armour shop
 KFEAT:   F = scroll shop / distillery shop
+epilogue{{
 : bazaar_message(_G)
+}}
 # special cases for blue floor
 : local colour = random_bazaar_colour()
 : lfloorcol(colour)
@@ -403,7 +405,9 @@ SUBST: w = l
 : end
 #
 SUBST:   w:wWx, l:lx
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxAxxxxxxxxxxxCxxxxxxxxxxxExxxxxxxxxxxxxxxx
@@ -446,7 +450,9 @@ SUBST: w = l
 : end
 #
 SUBST:   w:wWx, l:lx
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxAxxxxxxxxxxxCxxxxxxxxxxxExxxxxxxxxxxGxxxxxxxxxxxxxxxx
@@ -467,7 +473,9 @@ KFEAT:   A = any shop / antique armour shop
 KFEAT:   B = any shop / antique weapon shop
 KFEAT:   C = any shop / jewellery shop
 KFEAT:   D = any shop / book shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -519,7 +527,9 @@ SUBST:   G : G.
 SUBST:   ' = x
 SUBST:   G = .
 :end
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxx...xxxxxxxxxxxxxx
@@ -553,7 +563,9 @@ SUBST:     ab = !, AB = ., cd = !, CD = ., EeFf = $
 KFEAT:     ! = any shop
 KFEAT:     ? = any shop / T
 LFLOORCOL: blue
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxx
@@ -612,7 +624,9 @@ SUBST:   A = !, B = T
 KFEAT:   ! = any shop
 KFEAT:   ? = any shop / T
 SUBST:   T : Tc
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
        xxxxx
        x...x
@@ -641,7 +655,9 @@ ORIENT: encompass
 WEIGHT: 20
 KFEAT:  ! = any shop
 SUBST:  T = TU
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
         xxxxx
         x...x
@@ -668,7 +684,9 @@ TAGS:   bazaar no_rotate
 WEIGHT: 5
 ORIENT: encompass
 KFEAT:  A = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxx
 xxxxxxx>xxxxxxx
@@ -699,7 +717,9 @@ KFEAT:   B = antique weapon shop / weapon shop
 KFEAT:   C = antique armour shop / armour shop
 ITEM:    any weapon / w:2 good_item any weapon
 ITEM:    any armour / w:2 good_item any armour
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxx
 xxxx>xxxx
@@ -719,7 +739,9 @@ WEIGHT:  5
 ORIENT:  encompass
 SUBST:   A = TVBG
 KFEAT:   B = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxx
 xxxB.....Bxxx
@@ -753,7 +775,9 @@ SUBST: w = l
 : end
 : end
 #
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxwwwwwxxxxxx
@@ -786,7 +810,9 @@ SUBST: w = l
 : end
 : end
 #
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxx......>......xxxxxxxxxx
@@ -819,7 +845,9 @@ ORIENT:  encompass
 SHUFFLE: ABCD, EFGH
 SUBST:   H=>, A=T, B=T
 KFEAT:   CDEFG = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xx...xxxxxxxxxxxxxxxxxxxxxxxxx...xx
@@ -855,7 +883,9 @@ ORIENT:  encompass
 SHUFFLE: EFGH
 SUBST:   H=>, D=T, C=T
 KFEAT:   ABEFG = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xx...xxxxxxxxxxxxxxxxxxxxxxxxx...xx
@@ -891,7 +921,9 @@ ORIENT:  encompass
 SHUFFLE: EFGH
 SUBST:   A=>, D=T, C=T
 KFEAT:   BHEFG = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xx...xxxxxxxxxxxxxxxxxxxxxxxxx...xx
@@ -927,7 +959,9 @@ ORIENT:  encompass
 SHUFFLE: ABCDEF
 KFEAT:   ABCDE = any shop
 SUBST:   F = T
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xx...xxxxxxxxxxxxxxxxxxxxxxxxx...xx
@@ -961,7 +995,9 @@ WEIGHT:  1
 TAGS:    bazaar no_rotate
 ORIENT:  encompass
 KFEAT:   CDEFG = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xx...xxxxxxxxxxxxxxxxxxxxxxxxx...xx
@@ -1003,7 +1039,9 @@ KFEAT:   C = any shop / distillery shop
 KFEAT:   D = any shop / wand shop / food shop
 KFEAT:   E = any shop / weapon shop / armour shop
 KFEAT:   F = any shop / book shop / scroll shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -1051,7 +1089,9 @@ SUBST:   X = <, A = >
 SUBST:   B : T G
 KFEAT:   C = any shop
 KFEAT:   D = weapon shop / book shop / jewellery shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 x.xxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx.x
@@ -1081,7 +1121,9 @@ SUBST:   k : . x
 NSUBST:  A = 2=T:30 V / *:C
 NSUBST:  B = 1:< / >
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xk.......kxxxxxxxxxk.......kxxxxxxxxxk.......kx
@@ -1118,7 +1160,9 @@ SUBST:   k : . x
 NSUBST:  A = 2=T:30 V / *:C
 NSUBST:  B = 1:< / >
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xk.......kxxxxxxxxxk.......kxxxxxxxxxk.......kx
@@ -1156,7 +1200,9 @@ SUBST:   k : . x
 NSUBST:  A = 1:< / 1=<TC / 2=T:30 V / *:C
 NSUBST:  B = 1:> / 1=C>
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xk.......kxxxxxxxxxk.......kxxxxxxxxxk.......kx
@@ -1194,7 +1240,9 @@ SUBST:   k : . x
 NSUBST:  A = 1:< / 1=<TC / 2=T:30 V / *:C
 NSUBST:  B = 1:> / 1=C>
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xk.......kxxxxxxxxxk.......kxxxxxxxxxk.......kx
@@ -1231,7 +1279,9 @@ SUBST:   k : . x
 NSUBST:  A = 1:< / 1:> / 1:T C / 3=T:30 V / *:C
 SUBST:   B = > C:20
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xk.......kxxxxxxxxxk.......kxxxxxxxxxk.......kx
@@ -1266,7 +1316,9 @@ WEIGHT: 5
 ORIENT: encompass
 KFEAT:  ! = any shop
 KFEAT:  ? = any shop / T
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxx
 x.......x
@@ -1294,7 +1346,9 @@ SUBST:     "=l , '=. , A=l , B=!
 SUBST:     "=. , '=l , A=! , B=l
 : end
 KFEAT:     ! = jewellery shop / jewellery shop / wand shop / scroll shop / book shop
+epilogue{{
 : bazaar_message(_G)
+}}
 : set_border_fill_type("lava")
 MAP
 lllllllllllllllllllllllllllllllllllll
@@ -1374,7 +1428,9 @@ MONS:      bush
 KFEAT:     ! = any shop
 KFEAT:     ? = any shop / .
 LFLOORCOL: green
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 ttttttttttttttt
 ttttttttttttttt
@@ -1399,7 +1455,9 @@ WEIGHT: 5
 ORIENT: encompass
 KFEAT:  A = antique weapon shop
 KFEAT:  B = antique armour shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
       xxxxx
      xx...xx
@@ -1438,7 +1496,9 @@ WEIGHT: 5
 ORIENT: encompass
 KFEAT:  ! = food shop
 KFEAT:  ? = any shop / T
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
  xxxxx         xxxxx         xxxxx
 xx...xxxxxxxxxxx...xxxxxxxxxxx...xx
@@ -1485,7 +1545,9 @@ MONS:      plant / bush w:5
 KFEAT:     ! = any shop
 LFLOORCOL: green
 SUBST:     " = ....111t
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 """""""""""""""""""""""""""""""""<
 """"""""""""""""""""""""""""""""""
@@ -1537,7 +1599,9 @@ SUBST:   A = <
 KFEAT:   B = any shop / antique armour shop / jewellery shop
 SUBST:   C = >
 SUBST:   D = T
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxAxxxC............+...xxxxxxxxx
@@ -1587,7 +1651,9 @@ WEIGHT:  1
 SHUFFLE: ABC
 SUBST:   A = <, B = >
 KFEAT:   C = any shop
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxCxxxxxxxxxxxxxx
@@ -1618,7 +1684,9 @@ KFEAT:    B = general shop / food shop
 KFEAT:    C = scroll shop / book shop / distillery shop
 SHUFFLE:  '"
 SUBST:    '=+, "==
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xE..xxxxxxx...xx.......xx...xxxxxxx..Ex
@@ -1662,7 +1730,9 @@ SUBST:   T = V T U:1
 SHUFFLE: XY
 SUBST:   X = T
 NSUBST:  Y = 1:< / *:>
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxx'''...'''xxxxxxxx
@@ -1700,7 +1770,9 @@ SUBST:  . = 2 .:200
 SUBST:  ' = .
 SUBST:  3 = 2.
 MONS:   oklob plant, plant
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxx.........xxxxxxxxx
@@ -1736,7 +1808,9 @@ MARKER: d = lua:fog_machine { cloud_type = "mutagenic fog", \
              size = 16, walk_dist = 0, spread_rate= 0 }
 ITEM:   nothing
 NSUBST: < = 1:< / *:.
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxxxxxx     xxxxxxxxx
 x.......x     x.......x
@@ -1770,7 +1844,9 @@ ORIENT: encompass
 WEIGHT: 1
 KFEAT:  ! = distillery shop / scroll shop / general shop
 KFEAT:  ~ = teleport trap
+epilogue{{
 : bazaar_message(_G)
+}}
 MAP
 xxxxx
 x...xxx
@@ -1790,4 +1866,4 @@ xxxxx       xx.xx
   xx.xx   x...xxx
    x~x    xxxxx
    xxx
-ENDMAP
\ No newline at end of file
+ENDMAP
diff --git a/crawl-ref/source/dat/des/portals/icecave.des b/crawl-ref/source/dat/des/portals/icecave.des
index dfcf047..22c2246 100644
--- a/crawl-ref/source/dat/des/portals/icecave.des
+++ b/crawl-ref/source/dat/des/portals/icecave.des
@@ -306,7 +306,9 @@ SHUFFLE: "'
 SUBST:   "=. , ':x .:1
 : ice_cave_colours(_G)
 : ice_cave_random_monster_list_natural_giant(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MONS:    yak / wolf / polar bear w:4
 MONS:    polar bear
 MONS:    frost giant
@@ -387,7 +389,9 @@ SHUFFLE: "'
 SUBST:   "=. , ':x .:1
 : ice_cave_colours(_G)
 : dgn.set_random_mon_list("ice beast w:90 / ice dragon / nothing")
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MONS:    ice beast
 MONS:    ice dragon
 MONS:    ice beast generate_awake
@@ -448,7 +452,9 @@ SUBST:   - = ........-
 KFEAT:   - = alarm trap
 : ice_cave_colours(_G)
 : ice_cave_random_monster_list_undead_necromancer(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MONS:    ice beast
 MONS:    white imp
 MONS:    freezing wraith
@@ -624,7 +630,9 @@ MONS:   ice fiend w:2 / necromancer
 ITEM:   any potion / any scroll / any weapon good_item / any armour good_item
 KFEAT:  ' = alarm trap / net trap / arrow trap / bolt trap w:5 / floor w:5
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 : ice_cave_random_monster_list_undead_demon(_G)
 MAP
       xxxxx
@@ -698,7 +706,9 @@ SUBST: - = x
 SUBST: _ = w
 : end
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 # Two different populations: undead/demon and natural/giant.
 : if crawl.coinflip() then
 : ice_cave_random_monster_list_undead_demon(_G)
@@ -805,7 +815,9 @@ SUBST: '=x , -=.
 SUBST: '=. , -=x
 : end
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MAP
  xxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxx    xxxxxxxx    xxxxxxxx
  x::xxwwwwxxx.x.'x-;x5;;5xxwwwwwxxx1;;;x;Wxxxxxx15415;xx  xx......xx
@@ -887,7 +899,9 @@ SUBST: '=x , -=.
 SUBST: '=. , -=x
 : end
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MAP
                                  xxxxx
                                 xx.x.xx      xxxxxxxxxx
@@ -970,7 +984,9 @@ SUBST:  M = .
 SUBST:  m = .
 : dgn.set_random_mon_list("ice beast w:90 / nothing")
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccc
 xxx.........xxxxxxxxxxxccccccccccccc.........ccc
@@ -996,7 +1012,9 @@ ORIENT: encompass
 MONS:   ice beast, ice statue
 : dgn.set_random_mon_list("ice beast w:90 / nothing")
 : ice_cave_colours(_G)
+epilogue{{
 : ice_cave_milestone(_G)
+}}
 MAP
 ccccccccccc
 c|*.....*|c
diff --git a/crawl-ref/source/dat/des/portals/ossuary.des b/crawl-ref/source/dat/des/portals/ossuary.des
index 6e89035..29b1a9b 100644
--- a/crawl-ref/source/dat/des/portals/ossuary.des
+++ b/crawl-ref/source/dat/des/portals/ossuary.des
@@ -191,7 +191,9 @@ MONS:    rat zombie / jackal zombie / snake zombie / goblin zombie / \
          human zombie / elf zombie / centaur zombie
 MONS:    kobold zombie / orc zombie / hobgoblin zombie
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxx
 x.........<A.........x
@@ -251,7 +253,9 @@ MONS:    snake zombie / hobgoblin zombie / orc zombie / kobold zombie / nothing
 MONS:    big kobold zombie / water moccasin zombie / gnoll zombie / nothing
 MONS:    mummy
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 cccccccccccccccccccccc
 c<11H~~~G1111F~~~E111c
@@ -289,7 +293,9 @@ MONS:    orc zombie / kobold zombie / big kobold zombie / hobgoblin zombie
 ITEM:    nothing / any scroll w:5 / any potion
 KFEAT:   ^ = alarm trap
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 cccccccccccccccccccccc
 cccc.....2222.....cccc
@@ -351,7 +357,9 @@ KFEAT:   ^ = alarm trap / floor w:20
 SUBST:   = : =+
 SUBST:   = = =+
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
           vvv
         vvv1vvv
@@ -391,7 +399,9 @@ KFEAT:  ~ = needle trap / arrow trap / spear trap w:5 / dart trap w:2 / floor w:
 SUBST:  1 = 1.
 SUBST:  3 = 3.
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 ccccccccccccccccccccccccc
 c...c..3c..1c~~~ndddc131c
@@ -439,7 +449,9 @@ KFEAT:   ~ = needle trap / arrow trap / spear trap / bolt trap / axe trap
 SUBST:   ~ = ~.
 NSUBST:  X = 1:< / *:.
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 ccccccccccccccccccccccccccccccc
 c$$B~..........<..........~Cddc
@@ -509,7 +521,9 @@ KFEAT:   ^ = net trap w:15 / needle trap w:4 / axe trap w:1 / floor w:20
 COLOUR:  ^ = red
 KFEAT:   W = dart trap / floor w:20
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
            cccccccccccccccccccc
    ccccccccc3c3c3c3c3c3c3cddddccc
@@ -541,7 +555,9 @@ KMONS:   x = guardian mummy
 : local x = {}
 : lua_marker("=", restrict_door(x))
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 : crawl.mpr("You feel the presence of a powerful and evil guardian...", "warning")
 MAP
 ccccccccccccccccccccccccccccc
@@ -610,7 +626,9 @@ KFEAT:   ^ = dart trap / arrow trap
 KITEM:   y = any scroll w:5 / any potion w:5 / nothing w:10
 KMONS:   y = rat skeleton
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
            ccc
          cccxccccc
@@ -655,7 +673,9 @@ SUBST:   X : XYc
 NSUBST:  X = 6:= / *:c
 NSUBST:  Y = 3:= / *:c
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
                             cc
                            cccc
@@ -714,7 +734,9 @@ KFEAT:  ' = arrow trap w:3 / dart trap w:5 / alarm trap w:7 / floor w:85
 KFEAT:  " = bolt trap w:1 / net trap w:3 / arrow trap w:5 / dart trap w:10
 #
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 ccccccccccccccccccccccccccc
 c2c2c2cc...........cc2c2c2c
@@ -785,7 +807,9 @@ MARKER:  L = lua:message_at_spot ( \
                  "warning" \
              )
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
   ccccccccc
  cc.......cc
@@ -830,7 +854,9 @@ MONS:   human zombie / elf zombie / centaur zombie
 MONS:   mummy
 ITEM:   any scroll / any potion / any scroll q:2 w:2 / any potion q:2 w:2
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
             ccc
           cccdccc
@@ -874,7 +900,9 @@ MONS:   generate_awake mummy
 ITEM:   any scroll / any potion / gold w:4
 KFEAT:  ~ = arrow trap / needle trap / floor w:40
 : ossuary_setup_features(_G)
+epilogue{{
 : ossuary_milestone(_G)
+}}
 MAP
 ccccc     ccc ccc ccc
 cdddccccccc1ccc1ccc1ccccccc
diff --git a/crawl-ref/source/dat/des/portals/sewer.des b/crawl-ref/source/dat/des/portals/sewer.des
index 66a99c9..05b3168 100644
--- a/crawl-ref/source/dat/des/portals/sewer.des
+++ b/crawl-ref/source/dat/des/portals/sewer.des
@@ -69,6 +69,9 @@ function sewer_setup(e)
 -- Random monster list and milestone.
   e.set_random_mon_list("giant bat w:20 / giant newt w:20 / small snake / \
                          ooze / worm / snake / giant mosquito")
+end
+
+function sewer_milestone(e)
   crawl.mark_milestone("br.enter", "entered a Sewer.")
 end
 }}
@@ -186,6 +189,9 @@ KITEM:    f = potion of levitation q:2, \
           potion of gain dexterity
 KFEAT:    f = shallow_water
 MONS:     rat / grey rat / green rat w:2 / nothing w:3
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
         cccCCCCCCCCCCCC
         cwXvvvvvvvvvvvCCC         CCC
@@ -246,6 +252,10 @@ KFEAT:    ! = w
 COLOUR:   ! = green
 KMONS:    ! = giant frog / nothing w:2
 : sewer_setup(_G)
+epilogue{{
+: sewer_milestone(_G)
+}}
+
 MAP
 ccccccccccccccccccccccccccccccccccc
 c.11---------.................1111c
@@ -298,6 +308,9 @@ ITEM:     scroll of teleportation w:2 / scroll of blinking / \
 ITEM:     nothing, nothing
 KITEM:    de = |
 : sewer_setup(_G)
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
            ccccccccccccc
         cccc-----------cccc
@@ -341,6 +354,9 @@ KMONS:    2 = crocodile
 KMONS:    3 = Purgy, crocodile
 ITEM:     potion of berserk rage / potion of speed w:5
 MONS:     giant bat / giant mosquito w:2
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
  ccccccc
 cc$*|*$cc
@@ -387,6 +403,9 @@ ITEM:   potion of levitation / potion of agility / potion of heal wounds / \
         scroll of paper / scroll of random uselessness / meat ration / \
         royal jelly / potion of blood / nothing w:140
 : sewer_setup(_G)
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
    ccccccccc
    c%*c3c*%c
@@ -475,6 +494,9 @@ KITEM:    ' = scroll of paper w:50 / scroll of random uselessness w:30 / \
               potion of confusion w:50 / potion of paralysis w:50 / \
               potion of mutation / potion of levitation / \
               wizard hat / buckler / pair of gloves w:5 / pair of boots w:5
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xwwwwwwwwwwwWWW-WW-W--WWWWW-WWW--W--WW-WW-WW-W-WWwwwwwwwwwwwx
@@ -529,6 +551,9 @@ MARKER: G = lua:MonPropsMarker:new { description="A young woman with a fish tail
                        "in place of legs. She looks quite sick, but still capable" .. \
                        " of bespelling her audience.\n"}
 : sewer_setup(_G)
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
@@ -590,6 +615,9 @@ SUBST:   y : yyyyyyW., Y : YYYYYYWw
 SUBST:   y = W., Y = Ww
 SUBST:   c = c x:1
 : sewer_setup(_G)
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxccccccxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxcccc2..2ccccxxxxxxxxxxxxxxxxxxx
@@ -647,6 +675,9 @@ ITEM:   any potion / any scroll / any armour w:2 / any weapon w:2
 : "A window embedded in the side of an enormous metal pipe, allowing "..
 : "observation of the water flowing inside.")
 KFEAT:  C = deep_water
+epilogue{{
+: sewer_milestone(_G)
+}}
 MAP
 vvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvv
 vwwvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvCCv
diff --git a/crawl-ref/source/dat/des/portals/trove.des b/crawl-ref/source/dat/des/portals/trove.des
index 02bed2b..6316faa 100644
--- a/crawl-ref/source/dat/des/portals/trove.des
+++ b/crawl-ref/source/dat/des/portals/trove.des
@@ -233,6 +233,9 @@ function trove.setup_features(e)
     e.lfloorcol("darkgrey")
     e.lrocktile("wall_vault")
     e.lfloortile("floor_vault")
+end
+
+function trove.milestone(_G)
     crawl.mark_milestone("br.enter", "entered a treasure trove.")
 end
 
@@ -409,6 +412,9 @@ ITEM:   any good_item
 ITEM:   acquire jewellery / any good_item
 ITEM:   acquire weapon / acquire armour / any good_item
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxx
 xddddx
@@ -467,6 +473,9 @@ KFEAT:   w = W
 : trove.setup_features(_G)
 : trove.place_fog(_G, "blue smoke", 30)
 KFEAT:  m = .
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 '"WwwW'"'1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.<
 "'"wwW"'".1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
@@ -520,6 +529,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 : trove.good_scroll(_G)
 ITEM:   acquire book
 ITEM:   acquire:sif_muna book
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxx
 xd..e...d..dx
@@ -548,6 +560,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 ITEM:   acquire jewellery / any jewellery good_item / any jewellery
 COLOUR: o = blue
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxx
 x......x
@@ -574,6 +589,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 ITEM:   acquire jewellery / any jewellery good_item / any jewellery w:2
 COLOUR: x = blue
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxx
 xddd+<Ax
@@ -627,6 +645,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 COLOUR: x = blue
 ITEM:   acquire weapon / any weapon good_item / any weapon w:2
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxx
 xddd+<Ax
@@ -646,6 +667,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 COLOUR: o = blue
 ITEM:   acquire armour / any armour good_item / any armour w:2
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxx
 x......x
@@ -672,6 +696,9 @@ TAGS:   trove no_item_gen no_monster_gen allow_dup
 COLOUR: x = blue
 ITEM:   acquire armour / any armour good_item / any armour w:2
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxx
 xddd+<Ax
@@ -700,6 +727,9 @@ ITEM:    bow good_item / crossbow good_item / any weapon good_item
 SHUFFLE: 123
 SHUFFLE: defg
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxx
 x1x2x3x
@@ -729,6 +759,9 @@ ITEM:   any good_item w:10 / any
 ITEM:   any jewellery good_item / any good_item
 ITEM:   acquire weapon / acquire armour / any good_item
 : trove.setup_features(_G)
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 xxxxxxxxxxxxxxxxxxxxxxxxxx
 x........................x
@@ -758,6 +791,9 @@ ITEM:   acquire weapon / acquire armour / any good_item
 ITEM:   potion of cure mutation
 : trove.setup_features(_G)
 : set_border_fill_type("deep_water")
+epilogue{{
+: trove.milestone(_G)
+}}
 MAP
 wwwwwwwwwwwwwwwwwwwwwwwwwwwww
 wwwwwwwwwwwwwwwwwwwwwwwwwwwww
diff --git a/crawl-ref/source/dat/des/portals/volcano.des b/crawl-ref/source/dat/des/portals/volcano.des
index 2b4b0fa..db791d1 100644
--- a/crawl-ref/source/dat/des/portals/volcano.des
+++ b/crawl-ref/source/dat/des/portals/volcano.des
@@ -142,6 +142,9 @@ function volcano_setup (e, metal)
                             manticore / hell hound / hell hog / ghoul /
                             flayed ghost / pulsating lump / toenail golem /
                             efreet / vampire]])
+end
+
+function volcano_milestone(e)
     crawl.mark_milestone("br.enter", "entered a Volcano.")
 end
 
@@ -533,6 +536,9 @@ MONS:       clay golem w:50 / molten gargoyle w:2
 #           Loot: 9 items, 8 gold.
 :           volcano_setup(_G)
 :           place_large_volcano(_G)
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                          xxxx
                     xxxxxxyyxxxx
@@ -589,6 +595,9 @@ MONS:       clay golem w:50 / molten gargoyle w:2
 #           Loot: 10 items, 6 gold.
 :           volcano_setup(_G)
 :           place_lake_volcanoes(_G, {"M", "E", "V", "Q", "T", "S"})
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                       xxxx     xxxxx xxxxx xxxxxx
                     xxxyyxxx  xxyyxxxxyyyxxxyyyyxx
@@ -665,6 +674,9 @@ NSUBST:     < = 4:.
 KFEAT:      J = l
 MARKER:     J = lua:fog_machine { size = 3, pow_min = 7, pow_max = 7, delay = 80, \
                                   start_clouds = 1, cloud_type = "flame"}
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
           xxx
          xxyxx
@@ -731,6 +743,9 @@ MARKER:     J = lua:fog_machine { size = 3, pow_min = 7, pow_max = 7, delay = 80
                                   start_clouds = 1, cloud_type = "flame"}
 MARKER:     K = lua:fog_machine { size = 3, pow_min = 7, pow_max = 7, delay = 80, \
                                   start_clouds = 1, cloud_type = "flame"}
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                  xxxx
             xxxxxxyyxxxxx
@@ -784,6 +799,9 @@ KFEAT:      K = l
 MARKER:     K = lua:fog_machine { size = 3, pow_min = 7, pow_max = 7, delay = 80, \
                                   start_clouds = 1, cloud_type = "flame"}
 # Sides:    Lindwurm # Vortex/elemental
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                  xxxxxxxxx
                 xxKlllllKxx
@@ -854,6 +872,9 @@ MONS:       toenail golem
 KFEAT:      K = .
 MARKER:     K = lua:fog_machine ( { cloud_type = "rain", walk_dist=3, pow_max=2, \
                                     delay=300, size=3 } )
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
       xxxx                  vvvvvvvvvvvvv
    xxxxllxxx xxx            v...........v
@@ -947,6 +968,9 @@ SUBST:      R = defg$
 #           There are eight oportunities for loot! Seven single threat (1) plus two items,
 #           and one triple threat (121), plus six items. items can be any of: 1 armour,
 #           1 weapon, 1 potion, 1 any, 1 gold)
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                cccc ccc
              ccc<XcccZcccccc
@@ -994,6 +1018,9 @@ KFEAT:      ' = alarm trap
 :           fiery_humans(_G)
 :           volcano_setup(_G)
 :           place_chained_volcano(_G)
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
 ###########################################
 #wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww#
@@ -1119,6 +1146,9 @@ lua_marker("M", sink_marker)
 SUBST:      M = c
 NSUBST:     123 = 8:d / 8:e / 8:f / 8:g / 8:h / *:.
 :           volcano_setup(_G)
+epilogue{{
+: volcano_milestone(_G)
+}}
 MAP
                 xxxx         xxx xxx                   xxx
         xxxxx  xx33xxx     xxx3xxx3xxxx xxxxx xxx     xx3xx
diff --git a/crawl-ref/source/dat/des/portals/wizlab.des b/crawl-ref/source/dat/des/portals/wizlab.des
index 449d968..e225e21 100644
--- a/crawl-ref/source/dat/des/portals/wizlab.des
+++ b/crawl-ref/source/dat/des/portals/wizlab.des
@@ -135,7 +135,6 @@ function wizlab_setup (e, wizlab_desc)
     e.tile("< = no_random dngn_portal_wizard_lab")
     -- This is so that the note shows up properly.
     dgn.set_level_type_origin("in " .. wizlab_desc)
-    crawl.mark_milestone("br.enter", "entered " .. wizlab_desc .. ".")
     dgn.set_feature_desc_short("gate leading back to the Dungeon",
                                "portal leading out of here")
     if wizlab_desc ~= "Eringya's Formal Garden" then
@@ -143,6 +142,10 @@ function wizlab_setup (e, wizlab_desc)
                                "empty arch of stone")
     end
 end
+
+function wizlab_milestone (e, wizlab_desc)
+    crawl.mark_milestone("br.enter", "entered " .. wizlab_desc .. ".")
+end
 }}
 
 default-depth: Vault:2-7, Crypt, D:22-27, Elf:5-7
@@ -431,6 +434,9 @@ MARKER:     9 = lua:MonPropsMarker:new {description="A glistening silver machine
 :                                     "a white and silver, with shades of pink here and there.\n")
 :           dgn.set_feature_quote("A granite statue", mquote)
 :           wizlab_setup(_G, "Tukima's Studio")
+epilogue{{
+:           wizlab_milestone(_G, "Tukima's Studio")
+}}
 MAP
                 ccccccc
                 ccmmmcc
@@ -554,6 +560,9 @@ lua_marker("_", grow_marker)
 :           dgn.set_feature_desc_short("Floor", "grass-covered ground")
 :           dgn.set_feature_desc_long("Floor", "Strewn with leaves and twigs that" ..
 :                       "crunch loudly underfoot, the grass is crisp and fresh.\n")
+epilogue{{
+:           wizlab_milestone(_G, "Eringya's Formal Garden")
+}}
 MAP
 ccccccccccccccccccccccccccccccccccccccccccccc
 ctttttttttttttttttttttttttttttttttttttttttttc
@@ -808,6 +817,9 @@ lua_marker("A", box_marker)
 :           dgn.set_feature_desc_short("Floor", "rough-hewn floor")
 :           dgn.set_feature_desc_long("Floor", "It is rough and uneven in places.\n")
 :           wizlab_setup(_G, "Doroklohe's Tomb")
+epilogue{{
+:           wizlab_milestone(_G, "Doroklohe's Tomb")
+}}
 MAP
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ^________________...........________________^
@@ -901,6 +913,9 @@ MARKER:     + = lua:restrict_door()
 :                       .. " of many thousands of feet. There's also a strange tinge of red"
 :                       .. " to it, like the colour of old blood...\n")
 :           wizlab_setup(_G, "Borgnjor's Mortuary")
+epilogue{{
+:           wizlab_milestone(_G, "Borgnjor's Mortuary")
+}}
 MAP
 cccccccccccccccccccccccccccccccccccccccccccccc
 ccc....LccccccccccccucM.cucccccccccccccccccccc
@@ -1073,6 +1088,9 @@ KITEM:      | = staff of death
 KITEM:      l = scroll of summoning
 NSUBST:     L = 1:| / *:l
 :           wizlab_setup(_G, "Cigotuvi's Fleshworks")
+epilogue{{
+:           wizlab_milestone(_G, "Cigotuvi's Fleshworks")
+}}
 MAP
 ccccccccccccccccccccccccccccccccccccccccccccc
 ccLLLcccc.cccccccccccAccccccccccccWWWW.U:cccc
@@ -1149,6 +1167,9 @@ SUBST:      R = .
 KFEAT:      - = altar_sif_muna
 KFEAT:      _ = altar_vehumet
 SHUFFLE:    DEF
+epilogue{{
+:           wizlab_milestone(_G, "Iskenderun's Mystic Tower")
+}}
 MAP
 ccccccccccccccccccccccccccccccccccccccccccc
 cAc..c.c.c.c.c.c.c.ccRcc.c.c.c.c.c.c.cc.cRc
@@ -1322,6 +1343,9 @@ SUBST:      L = .
 LFLOORTILE: floor_tomb
 LROCKTILE:  wall_hall_darkgray
 TILE:       c = wall_stone_gray
+epilogue{{
+:           wizlab_milestone(_G, "Zonguldrok's Shrine")
+}}
 MAP
 M   xxxxxxxxxxxxxxxxxxx
    xx?????????????????xx
@@ -1528,7 +1552,9 @@ MARKER:     t = lua:props_marker {veto_fragmentation="veto", veto_disintegrate="
 :           dgn.set_feature_desc_short("Floor", "timeless floor")
 :           dgn.set_feature_desc_long("Floor", "Though a thousand feet may have trod these floors, "
 :               .. "they appear timeless and indestructible.\n")
-
+epilogue{{
+:           wizlab_milestone(_G, "Wucad Mu's Monastery")
+}}
 MAP
 tttttttttttttttttttttttttttttttttttttttt
 tttttttttttttttttttttttttttttttttttttttt
@@ -1616,6 +1642,9 @@ TILE:       b = dngn_crystal_white
 COLOUR:     wW# = silver
 :           set_border_fill_type('open_sea')
 :           wizlab_setup(_G, "The Chambers of " .. wizname .. " the Cloud Mage")
+epilogue{{
+:           wizlab_milestone(_G, "The Chambers of " .. wizname .. " the Cloud Mage")
+}}
 #           Map is ugly because border_fill_type doesn't allow for (yet)
 #           recolouring.
 MAP
@@ -1724,6 +1753,9 @@ NSUBST:     | = 1:B / *:|
 :           set_random_mon_list([[imp / shadow imp / lemure / manes / quasit / white imp / ]]
 :                        .. [[ufetubus / midge / red devil / rotting devil / hairy devil / ]])
 :           wizlab_setup(_G, "The Hall of " .. wizname .. " the Hellbinder")
+epilogue{{
+:           wizlab_milestone(_G, "The Hall of " .. wizname .. " the Hellbinder")
+}}
 MAP
 cccccccccccccccccccccccccccccccccccccccccccccc
 ccccccc.cccccc...................cccccc.cccccc
@@ -1833,6 +1865,9 @@ NAME:       wizlab_alistair
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Alistair's Brewery")
+epilogue{{
+:           wizlab_milestone(_G, "Alistair's Brewery")
+}}
 MAP
 ENDMAP
 
@@ -1844,6 +1879,9 @@ NAME:       wizlab_lee
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Lee's Rapid Deconstructor")
+epilogue{{
+:           wizlab_milestone(_G, "Lee's Rapid Deconstructor")
+}}
 MAP
 ENDMAP
 
@@ -1855,6 +1893,9 @@ NAME:       wizlab_lehudib
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Lehudib's Crystal Spire")
+epilogue{{
+:           wizlab_milestone(_G, "Lehudib's Crystal Spire")
+}}
 MAP
 ENDMAP
 
@@ -1866,6 +1907,9 @@ NAME:       wizlab_maxwell
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Maxwell's Forge")
+epilogue{{
+:           wizlab_milestone(_G, "Maxwell's Forge")
+}}
 MAP
 ENDMAP
 
@@ -1877,6 +1921,9 @@ NAME:       wizlab_olgreb
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Olgreb's Toxic Laboratory")
+epilogue{{
+:           wizlab_milestone(_G, "Olgreb's Toxic Laboratory")
+}}
 MAP
 ENDMAP
 
@@ -1888,6 +1935,9 @@ NAME:       wizlab_ozocubu
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Ozocubu's Refrigerator")
+epilogue{{
+:           wizlab_milestone(_G, "Ozocubu's Refrigerator")
+}}
 MAP
 ENDMAP
 
@@ -1899,6 +1949,9 @@ NAME:       wizlab_cekugob
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Cekugob's Oubliette")
+epilogue{{
+:           wizlab_milestone(_G, "Cekugob's Oubliette")
+}}
 MAP
 ENDMAP
 
@@ -1910,6 +1963,9 @@ NAME:       wizlab_botono
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Botono's Bayou")
+epilogue{{
+:           wizlab_milestone(_G, "Botono's Bayou")
+}}
 MAP
 ENDMAP
 
@@ -1921,6 +1977,9 @@ NAME:       wizlab_ukta
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "Ukta's Hut")
+epilogue{{
+:           wizlab_milestone(_G, "Ukta's Hut")
+}}
 MAP
 ENDMAP
 
@@ -1932,5 +1991,8 @@ NAME:       wizlab_alchemist
 ORIENT:     encompass
 #TAGS:       wizlab no_item_gen no_monster_gen no_rotate allow_dup
 :           wizlab_setup(_G, "The Alchemist's Tower")
+epilogue{{
+:           wizlab_milestone(_G, "The Alchemist's Tower")
+}}
 MAP
 ENDMAP
-- 
1.6.4