All glyph assignment declarations in maps (e.g. COLOUR, KPROP, FTILE) can now assign multiple glyphs simultaneously. This should make some vault definitions less cumbersome. See the doc for more details.
ZQJ5LK6RG5WEBZ5LUEAB2N7TF7QSCSKA7S4EMPY3R4BIGTAQIS4AC
CWMUMF2QBR2LKQMHMHHMQSAS6ZFKNY4Y3WTGSPTARTZGHAKA6URQC
NKCSON6P6JR4UKW23LKLGNRB4EFPOI2C3JX5RHNDFLJB3AIJW2NQC
IRZBVORKDWJ2H4SJZUS4K5HZL25PA7DLM7P34ZFLLP3AD47SXJPAC
XP3H2HRV7VTJ6G723BCW4U6WWZHK5Y5OUORRUVP7F4UCKURT3YWQC
CLO5METZJ4WBV3KWGW3WJ4WY5NYWCOHCGEIMJU4NYWKECWQ536QAC
BMV6BYGSF3WD3JCA3W5BWYK3GXUSIMSDJ246ULCXTADEMOZH63GQC
JQFQX7IWSJ4TYWVUVXAFMCPSAN67PRMNECDQI5WMON2JFMQVVUEQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
2ZZD6EYMSPVCXZTICL4VGYGGQRRWDLZ24KBCDBVIYC54OZ4C6GGAC
3UKFCWWS5BLFQWZRB5FUA46CE2XGX5VRCEWC3K3XH5RCGQK64N2AC
W52PCSHX72WAMWKG6L4BPUBVMO6E72KYYBNKAA7554KNOTY6V7WQC
JT672SIJK4BOIUAGL2WQ6NR2NF4PSWP3BT6Q4HMNRF25UN6JQ2MAC
JUCA26S3JSQFMZTBL7566ITHCOXXEFTFT7KDOWSUXA5JLZK5QJWAC
77MES6I23O3FEVX45F5L7LGABFIDYZA2CLESQBXALSVIHS5E2G6AC
IVVTHLTTLOP5TSULXJWUSSXHOKYWVU3OWKYVK45A7RIB6V34MYQAC
DKRSOHZXL6EPSLKOKHF7GJXSZEJVY7CXGACSHWLM5B5FTRETWWCAC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
JDM27QE4HR52AYFSQE763BFF57ANOTF5MXKMO377PP5EXMN7SAOAC
YFJLINBBEHE7RBETTARSYNWSO6QJ6MSPXFMSPSH2742QFC3L55SQC
KFJEFN377VIZ7OH2XCYOGCELNEGO4CIOOP7DNXEMX3LFKIKWXVTAC
442VGKMARB6LTQUEBIB5P447EI34BRJL6JALZKXLWPDHWCM6KKCQC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC
ITUTGFJ56GR7FWMC5Y7XKUJJ4Z35I6BMOHCPCW3W5MKDQGVOGM4AC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
JYNLSDNQDNOBCHDPQLJP6TNOJQ2IB4V7JHBYLL6UAUCTZ7DUZAWQC
KFM2ARORBIJ6BGX456VFW7EAVRIYBVFUV53JH63GSKNOKVPJWQ2QC
LTE57LI3YCTXDRCYLQDUXIETU4E5AEQJ3J75KJ4XEVJXL7IW52ZQC
X2SXILGEVQERETVZAHSFJXUOP3ZHXOE3JSU37SFYYS2UYFZNWKRAC
BDXBM356LZKCLL7BSVY646QNZCIXOYNPRVJHZLGHNGPOMU4QJTAQC
TBXIAHQZ3KQVBPVEP5CMXJLLCQY46S52BEMJRR2EFIVTXALHM4WAC
6BGEFSWH4L63JGWICMNFWRLQQP6PNWQBLPWNTYTLWX4OKAV222EQC
R6XS2HO5QX2FJUGL5UQQRNETKCMYWTUFPHPPS5SYWK3OQA4UDUQQC
RZHJQU3Y6KKMNJKGL6P4IXBJTKWFO4YARAQSWYCETXXNSZG4BN7QC
ZTDYCQQQQSLWGFJOUB3HKGHMJLNY6UHF4OOC2XVVHXSZTTZK5A5AC
WE3JT43OR4L6675GINGU4B3YDBMURJZHDDYY3VLHUJEBAKH2HYEAC
subst_spec(int torepl, bool fix, const glyph_replacements_t &repls);
subst_spec() : foo(0), fix(false), frozen_value(0), repl() { }
subst_spec(std::string torepl, bool fix, const glyph_replacements_t &repls);
subst_spec(int count, bool fix, const glyph_replacements_t &repls);
subst_spec() : key(""), count(-1), fix(false), frozen_value(0), repl() { }
std::vector<coord_def> map_lines::find_glyph(const std::string &glyphs) const
{
std::vector<coord_def> points;
for (int y = height() - 1; y >= 0; --y)
{
for (int x = width() - 1; x >= 0; --x)
{
const coord_def c(x, y);
if (glyphs.find((*this)(c)) != std::string::npos)
points.push_back(c);
}
}
return (points);
}
keyed_mapspec &km = keyspecs[key[0]];
km.key_glyph = key[0];
return ((km.*set_field)(arg, separator == ':'));
keyed_mapspec &kmbase = keyspecs[key[0]];
kmbase.key_glyph = key[0];
err = ((kmbase.*set_field)(arg, separator == ':'));
if (!err.empty())
return (err);
size_t len = key.length();
for (size_t i = 1; i < len; i++)
{
keyed_mapspec &km = keyspecs[key[i]];
km.key_glyph = key[i];
((km.*copy_field)(kmbase));
}
return (err);
subst_spec::subst_spec(int torepl, bool dofix, const glyph_replacements_t &g)
: foo(torepl), fix(dofix), frozen_value(0), repl(g)
subst_spec::subst_spec(int _count, bool dofix, const glyph_replacements_t &g)
: key(""), count(_count), fix(dofix), frozen_value(0), repl(g)
FTILE: .[{( = floor_orc
This case is identical to the longer syntax:
FTILE: . = floor_orc
FTILE: [ = floor_orc
FTILE: { = floor_orc
FTILE: ( = floor_orc
Using : instead of = while assigning glyphs will assign the same value to all
glyphs. In the following example, the glyphs A, B, and C will either all
contain gold or all contain nothing:
KITEM: ABC : gold / nothing
Note: The number of items assigned in an NSUBST expression applies to the
entire group of glyphs being assigned. For example:
# Among all A, B, and C glyphs, make one a floor and the rest walls.
NSUBST: ABC = 1:. / *:x
# Make one A glyph floor, one B glyph floor, and one C glyph floor.
# Make the rest of the A, B, and C glyphs walls.
NSUBST: A = 1:. / *:x
NSUBST: B = 1:. / *:x
NSUBST: C = 1:. / *:x