summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/util
diff options
context:
space:
mode:
authorEnne Walker <ennewalker@users.sourceforge.net>2009-11-28 18:06:49 -0500
committerEnne Walker <ennewalker@users.sourceforge.net>2009-11-28 20:53:42 -0500
commit4fe67e14cab6affd2a69a864dda356440d50e0ca (patch)
tree47da4f5b30a1534a818aedfd7ea92ea0995268ca /crawl-ref/source/util
parent13d037ff0e1c6394157ab5ccf5593458a167447a (diff)
downloadcrawl-ref-4fe67e14cab6affd2a69a864dda356440d50e0ca.tar.gz
crawl-ref-4fe67e14cab6affd2a69a864dda356440d50e0ca.zip
Subvaults.
Vaults can now include other vaults as a part of their definition. These subvaults are currently included by tag only and replace glyphs in their parent vault. See documentation for more details. Vault:8 has been modified to use subvaults.
Diffstat (limited to 'crawl-ref/source/util')
-rw-r--r--crawl-ref/source/util/levcomp.lpp1
-rw-r--r--crawl-ref/source/util/levcomp.ypp19
2 files changed, 19 insertions, 1 deletions
diff --git a/crawl-ref/source/util/levcomp.lpp b/crawl-ref/source/util/levcomp.lpp
index dc2ea7ca6f..151ef1418e 100644
--- a/crawl-ref/source/util/levcomp.lpp
+++ b/crawl-ref/source/util/levcomp.lpp
@@ -261,6 +261,7 @@ KITEM: { CBEGIN(ARGUMENT); return KITEM; }
KMONS: { CBEGIN(ARGUMENT); return KMONS; }
KMASK: { CBEGIN(ARGUMENT); return KMASK; }
KPROP: { CBEGIN(ARGUMENT); return KPROP; }
+SUBVAULT: { CBEGIN(ARGUMENT); return SUBVAULT; }
, return COMMA;
diff --git a/crawl-ref/source/util/levcomp.ypp b/crawl-ref/source/util/levcomp.ypp
index 500006b2fd..f13f102da0 100644
--- a/crawl-ref/source/util/levcomp.ypp
+++ b/crawl-ref/source/util/levcomp.ypp
@@ -54,7 +54,7 @@ level_range set_range(const char *s, int start, int end)
%token <i> DEFAULT_DEPTH SHUFFLE SUBST TAGS KFEAT KITEM KMONS KMASK KPROP
%token <i> NAME DEPTH ORIENT PLACE CHANCE WEIGHT MONS ITEM MARKER COLOUR
%token <i> PRELUDE MAIN VALIDATE VETO NSUBST WELCOME LFLAGS BFLAGS
-%token <i> LFLOORCOL LROCKCOL LFLOORTILE LROCKTILE FTILE RTILE
+%token <i> LFLOORCOL LROCKCOL LFLOORTILE LROCKTILE FTILE RTILE SUBVAULT
%token <i> COMMA COLON PERC INTEGER CHARACTER
@@ -175,6 +175,7 @@ metaline : place
| kmons
| kmask
| kprop
+ | subvault
| main_lua
| prelude_lua
| validate_lua
@@ -605,4 +606,20 @@ map_line : MAP_LINE
}
;
+subvault : SUBVAULT subvault_specifiers
+ ;
+
+subvault_specifiers: subvault_specifier
+ | subvault_specifiers COMMA subvault_specifier
+ ;
+
+subvault_specifier : STRING
+ {
+ lc_map.main.add(
+ yylineno,
+ make_stringf("subvault(\"%s\")",
+ quote_lua_string($1).c_str()));
+ }
+ ;
+
%%