summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-01 02:22:31 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-01 02:22:31 +0000
commit2e4aeb705dc8383ddc846ea17613251df8601847 (patch)
treedca212cd8072eccc0fc259a3a677bafc739ecee8
parenta2bd3ea6e687bee89ff41074c713af99e8bd9886 (diff)
downloadcrawl-ref-2e4aeb705dc8383ddc846ea17613251df8601847.tar.gz
crawl-ref-2e4aeb705dc8383ddc846ea17613251df8601847.zip
[2054793] Partial implementation of the request to have COLOUR tags affect tile choice. Vaults can now override the default tileset (walls and floors) for an entire level. This has been pushed to vaults where it makes sense (sewers, ice caves, ziggurats, bazaars, Shoals:5, Zot).
ROCKTILE and FLOORTILE can be used when authoring vaults to set these values, both of which take a single tile name as a string. These values are ignored in console builds. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7700 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/level_design.txt8
-rw-r--r--crawl-ref/source/dat/bazaar.des20
-rw-r--r--crawl-ref/source/dat/clua/ziggurat.lua14
-rw-r--r--crawl-ref/source/dat/icecave.des2
-rw-r--r--crawl-ref/source/dat/lair.des9
-rw-r--r--crawl-ref/source/dat/sewer.des2
-rw-r--r--crawl-ref/source/dat/zot.des10
-rw-r--r--crawl-ref/source/dungeon.cc8
-rw-r--r--crawl-ref/source/externs.h11
-rw-r--r--crawl-ref/source/files.cc6
-rw-r--r--crawl-ref/source/luadgn.cc156
-rw-r--r--crawl-ref/source/mapdef.cc4
-rw-r--r--crawl-ref/source/mapdef.h1
-rw-r--r--crawl-ref/source/prebuilt/levcomp.lex.cc1868
-rw-r--r--crawl-ref/source/prebuilt/levcomp.tab.cc688
-rw-r--r--crawl-ref/source/prebuilt/levcomp.tab.h48
-rw-r--r--crawl-ref/source/rltiles/dc-dngn.txt18
-rw-r--r--crawl-ref/source/rltiles/tool/tile_list_processor.cc56
-rw-r--r--crawl-ref/source/tags.cc25
-rw-r--r--crawl-ref/source/tile2.cc453
-rw-r--r--crawl-ref/source/tilepick.cc458
-rw-r--r--crawl-ref/source/tilereg.cc5
-rw-r--r--crawl-ref/source/tiles.h23
-rw-r--r--crawl-ref/source/util/levcomp.lpp2
-rw-r--r--crawl-ref/source/util/levcomp.ypp22
25 files changed, 2052 insertions, 1865 deletions
diff --git a/crawl-ref/docs/level_design.txt b/crawl-ref/docs/level_design.txt
index d916bfdc00..ddef5dce5c 100644
--- a/crawl-ref/docs/level_design.txt
+++ b/crawl-ref/docs/level_design.txt
@@ -502,6 +502,14 @@ ROCKCOL: yellow
the vault appears in. Should only be used for bazaars and other
portal vaults.
+FLOORTILE: (tile name string, e.g. "floor_tomb")
+ Like FLOORCOL, this overrides the default floor tiles used for
+ this level. If the tile specified has variations, those will be
+ used automatically.
+
+ROCKTILE: (tile name string, e.g. "wall_hive")
+ Same as FLOORTILE, but for rock walls.
+
ITEM: (list of items, separated by comma)
These are used to help place specified items at specific places
within a vault. They create an array with up to 8 positions. What's
diff --git a/crawl-ref/source/dat/bazaar.des b/crawl-ref/source/dat/bazaar.des
index f81df67cce..b63caea014 100644
--- a/crawl-ref/source/dat/bazaar.des
+++ b/crawl-ref/source/dat/bazaar.des
@@ -41,7 +41,6 @@ end
function fixup_bazaar()
dgn.fixup_stairs("stone_arch", "exit_portal_vault")
- dgn.floor_halo("enter_shop", "yellow")
if (dgn.get_floor_colour() == "black") then
dgn.change_floor_colour(random_bazaar_colour())
@@ -50,6 +49,25 @@ function fixup_bazaar()
if (dgn.get_rock_colour() == "black") then
dgn.change_rock_colour("yellow")
end
+
+ local default = {rock="wall_vault", floor="floor_vault", halo="halo_vault"}
+ local tileset = {
+ blue = {rock="wall_brick_gray", floor="floor_grass", halo="halo_grass"},
+ red = {rock="wall_pebble_red", floor="floor_vault", halo="halo_vault"},
+ lightblue = {rock="wall_hive", floor="floor_grass", halo="halo_grass2"},
+ magenta = {rock="wall_stone_gray", floor="floor_dirt", halo="halo_dirt"},
+ green = {rock="wall_stone_gray", floor="floor_grass", halo="halo_grass"},
+ }
+
+ local tile = tileset[dgn.get_floor_colour()]
+ if (tile == nil) then
+ tile = default
+ end
+
+ dgn.change_floor_tile(tile.floor)
+ dgn.change_rock_tile(tile.rock)
+
+ dgn.floor_halo("enter_shop", "yellow", tile.halo)
end
dgn.set_lt_callback("bazaar", "fixup_bazaar")
diff --git a/crawl-ref/source/dat/clua/ziggurat.lua b/crawl-ref/source/dat/clua/ziggurat.lua
index 37d9446b26..63095862a5 100644
--- a/crawl-ref/source/dat/clua/ziggurat.lua
+++ b/crawl-ref/source/dat/clua/ziggurat.lua
@@ -169,6 +169,14 @@ local function clamp_in_bounds(x, y)
return clamp_in(x, 2, dgn.GXM - 3), clamp_in(y, 2, dgn.GYM - 3)
end
+local function set_tiles_for_place(place)
+ local rock = dgn.lev_rocktile(place)
+ dgn.change_rock_tile(rock)
+
+ local floor = dgn.lev_floortile(place)
+ dgn.change_floor_tile(floor)
+end
+
local function set_floor_colour(colour)
if not zig().level.floor_colour then
zig().level.floor_colour = colour
@@ -211,11 +219,15 @@ local function monster_creator_fn(arg)
local atyp = type(arg)
if atyp == "string" then
local _, _, branch = string.find(arg, "^place:(%w+):")
+ local _, _, place = string.find(arg, "^place:(%w+):?")
local mcreator = dgn.monster_fn(arg)
local function mspec(x, y, nth)
if branch then
set_floor_colour(dgn.br_floorcol(branch))
end
+ if place then
+ set_tiles_for_place(place)
+ end
return mcreator(x, y)
end
return { fn = mspec }
@@ -753,4 +765,4 @@ local ziggurat_builders = util.keys(ziggurat_builder_map)
function ziggurat_choose_builder()
return util.random_from(ziggurat_builders)
-end \ No newline at end of file
+end
diff --git a/crawl-ref/source/dat/icecave.des b/crawl-ref/source/dat/icecave.des
index c414ccb64e..a52036b9ee 100644
--- a/crawl-ref/source/dat/icecave.des
+++ b/crawl-ref/source/dat/icecave.des
@@ -46,6 +46,8 @@ function ice_cave_colours(e)
e.colour("< = white")
e.rockcol("white")
e.floorcol("blue")
+ e.rocktile("wall_ice")
+ e.floortile("floor_ice")
end
}}
diff --git a/crawl-ref/source/dat/lair.des b/crawl-ref/source/dat/lair.des
index 06c0e67584..ab6c4d4347 100644
--- a/crawl-ref/source/dat/lair.des
+++ b/crawl-ref/source/dat/lair.des
@@ -764,10 +764,11 @@ ENDMAP
# Shoal hut with rune inside
#
# Shoal:$ is hand-hacked to force lots of minivaults.
-NAME: shoalhut_rune
-TAGS: shoal_rune
-SHUFFLE: ABCD
-SUBST: A:x, B:x, C:x=, D=+
+NAME: shoalhut_rune
+TAGS: shoal_rune
+SHUFFLE: ABCD
+SUBST: A:x, B:x, C:x=, D=+
+ROCKTILE: wall_vines
MAP
.xxCxx.
xx...xx
diff --git a/crawl-ref/source/dat/sewer.des b/crawl-ref/source/dat/sewer.des
index 256520750a..161889e685 100644
--- a/crawl-ref/source/dat/sewer.des
+++ b/crawl-ref/source/dat/sewer.des
@@ -36,6 +36,8 @@ function sewer_colours(e)
e.floorcol("lightgrey")
e.colour("w = green")
e.colour("W = lightgreen")
+ e.rocktile("wall_slime")
+ e.floortile("floor_slime")
end
}}
diff --git a/crawl-ref/source/dat/zot.des b/crawl-ref/source/dat/zot.des
index d8de119f9e..52dd9d559a 100644
--- a/crawl-ref/source/dat/zot.des
+++ b/crawl-ref/source/dat/zot.des
@@ -294,6 +294,8 @@ MARKER: Z = lua:item_pickup_change_flags { \
}
FLOORCOL: magenta
ROCKCOL: lightmagenta
+FLOORTILE:floor_tomb
+ROCKTILE: wall_zot_magenta
#traps
SUBST: C = c:1000 =
@@ -369,6 +371,8 @@ TAGS: transparent
ORIENT: float
FLOORCOL: lightgrey
ROCKCOL: lightgrey
+FLOORTILE:floor_tomb
+ROCKTILE: wall_zot_gray
MAP
.
ENDMAP
@@ -379,6 +383,8 @@ TAGS: transparent
ORIENT: float
FLOORCOL: lightgrey
ROCKCOL: blue
+FLOORTILE:floor_tomb
+ROCKTILE: wall_zot_blue
MAP
.
ENDMAP
@@ -389,6 +395,8 @@ TAGS: transparent
ORIENT: float
FLOORCOL: blue
ROCKCOL: lightblue
+FLOORTILE:floor_tomb
+ROCKTILE: wall_zot_cyan
MAP
.
ENDMAP
@@ -399,6 +407,8 @@ TAGS: transparent
ORIENT: float
FLOORCOL: lightblue
ROCKCOL: magenta
+FLOORTILE:floor_tomb
+ROCKTILE: wall_zot_blue
MAP
.
ENDMAP
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 459853da53..56c37fc72e 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -792,6 +792,14 @@ void dgn_register_place(const vault_placement &place, bool register_vault)
if (place.map.rock_colour != BLACK)
env.rock_colour = place.map.rock_colour;
+
+#ifdef USE_TILE
+ if (place.map.rock_tile != 0)
+ env.tile_default.wall = place.map.rock_tile;
+
+ if (place.map.floor_tile != 0)
+ env.tile_default.floor = place.map.floor_tile;
+#endif
}
static bool _ensure_vault_placed(bool vault_success)
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index 4b61bbc9b8..dd52521d4c 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -31,11 +31,11 @@
struct tile_flavour
{
// The floor tile to use.
- unsigned char floor;
+ unsigned short floor;
// The wall tile to use.
- unsigned char wall;
+ unsigned short wall;
// Used as a random value or for special cases e.g. (bazaars, gates).
- unsigned char special;
+ unsigned short special;
};
// A glorified unsigned int that assists with ref-counting the mcache.
@@ -1621,12 +1621,13 @@ public:
#ifdef USE_TILE
// indexed by grid coords
- FixedArray<tile_fg_store, GXM, GYM> tile_bk_fg; // tile fg
- FixedArray<unsigned int, GXM, GYM> tile_bk_bg; // tile bg
+ FixedArray<tile_fg_store, GXM, GYM> tile_bk_fg;
+ FixedArray<unsigned int, GXM, GYM> tile_bk_bg;
FixedArray<tile_flavour, GXM, GYM> tile_flv;
// indexed by (show-1) coords
FixedArray<unsigned int,ENV_SHOW_DIAMETER-2,ENV_SHOW_DIAMETER-2> tile_fg;
FixedArray<unsigned int,ENV_SHOW_DIAMETER-2,ENV_SHOW_DIAMETER-2> tile_bg;
+ tile_flavour tile_default;
#endif
FixedVector< cloud_struct, MAX_CLOUDS > cloud; // cloud list
diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc
index 47b413b01b..cb3ea53ddf 100644
--- a/crawl-ref/source/files.cc
+++ b/crawl-ref/source/files.cc
@@ -1144,6 +1144,12 @@ bool load( dungeon_feature_type stair_taken, load_mode_type load_mode,
Generated_Levels.insert(level_id::current());
}
+#ifdef USE_TILE
+ tiles.load_dungeon(NULL, you.pos().x, you.pos().y);
+ tile_init_default_flavour();
+ tile_clear_flavour();
+#endif
+
_clear_env_map();
builder(you.your_level, you.level_type);
just_created_level = true;
diff --git a/crawl-ref/source/luadgn.cc b/crawl-ref/source/luadgn.cc
index 3001efbe10..3779029295 100644
--- a/crawl-ref/source/luadgn.cc
+++ b/crawl-ref/source/luadgn.cc
@@ -1559,11 +1559,36 @@ static int dgn_fixup_stairs(lua_State *ls)
return (0);
}
+#ifdef USE_TILE
+static unsigned int _get_tile_idx(lua_State *ls, int arg)
+{
+ if (!lua_isstring(ls, arg))
+ {
+ luaL_argerror(ls, arg, "Expected string for tile name");
+ return 0;
+ }
+
+ const char *tile_name = luaL_checkstring(ls, arg);
+
+ unsigned int idx;
+ if (!tile_dngn_index(tile_name, idx))
+ {
+ std::string error = "Couldn't find tile '";
+ error += tile_name;
+ error += "'";
+ luaL_argerror(ls, arg, error.c_str());
+ return 0;
+ }
+
+ return idx;
+}
+#endif
+
static int dgn_floor_halo(lua_State *ls)
{
std::string error = "";
- const char* s1 = luaL_checkstring(ls, 1);
+ const char *s1 = luaL_checkstring(ls, 1);
const dungeon_feature_type target = dungeon_feature_by_name(s1);
if (target == DNGN_UNSEEN)
@@ -1573,7 +1598,7 @@ static int dgn_floor_halo(lua_State *ls)
error += "'. ";
}
- const char* s2 = luaL_checkstring(ls, 2);
+ const char *s2 = luaL_checkstring(ls, 2);
short colour = str_to_colour(s2);
if (colour == -1)
@@ -1615,6 +1640,24 @@ static int dgn_floor_halo(lua_State *ls)
}
}
+#ifdef USE_TILE
+ unsigned int tile = _get_tile_idx(ls, 3);
+ if (!tile)
+ return (0);
+ if (tile_dngn_count(tile) != 9)
+ {
+ error += "'";
+ error += luaL_checkstring(ls, 3);
+ error += "' is not a valid halo tile. It has ";
+ error += tile_dngn_count(tile);
+ error += " variations, but needs exactly 9.";
+ luaL_argerror(ls, 3, error.c_str());
+ return (0);
+ }
+
+ tile_floor_halo(target, tile);
+#endif
+
return (0);
}
@@ -2314,6 +2357,16 @@ BRANCHFN(parent_branch, string,
br.parent_branch == NUM_BRANCHES ? ""
: branches[br.parent_branch].abbrevname)
+#define LEVEL(lev, br, pos) \
+ const char *level_name = luaL_checkstring(ls, pos); \
+ level_area_type lev = str_to_level_area_type(level_name); \
+ if (lev == NUM_LEVEL_AREA_TYPES) \
+ luaL_error(ls, "Expected level name"); \
+ const char *branch_name = luaL_checkstring(ls, pos); \
+ branch_type br = str_to_branch(branch_name); \
+ if (lev == LEVEL_DUNGEON && br == NUM_BRANCHES) \
+ luaL_error(ls, "Expected branch name");
+
static void push_level_id(lua_State *ls, const level_id &lid)
{
// We're skipping the constructor; naughty, but level_id has no
@@ -2585,7 +2638,97 @@ LUAFN(_dgn_reuse_map)
return (0);
}
-static int dgn_debug_dump_map(lua_State *ls)
+LUAFN(dgn_lev_floortile)
+{
+#ifdef USE_TILE
+ LEVEL(lev, br, 1);
+
+ tile_flavour flv;
+ tile_default_flv(lev, br, flv);
+
+ const char *tile_name = tile_dngn_name(flv.floor);
+ PLUARET(string, tile_name);
+#else
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_lev_rocktile)
+{
+#ifdef USE_TILE
+ LEVEL(lev, br, 1);
+
+ tile_flavour flv;
+ tile_default_flv(lev, br, flv);
+
+ const char *tile_name = tile_dngn_name(flv.wall);
+ PLUARET(string, tile_name);
+#else
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_rocktile)
+{
+ MAP(ls, 1, map);
+
+#ifdef USE_TILE
+ unsigned short tile = _get_tile_idx(ls, 2);
+ map->rock_tile = tile;
+
+ const char *tile_name = tile_dngn_name(tile);
+ PLUARET(string, tile_name);
+#else
+ UNUSED(map);
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_floortile)
+{
+ MAP(ls, 1, map);
+
+#ifdef USE_TILE
+ unsigned short tile = _get_tile_idx(ls, 2);
+ map->floor_tile = tile;
+
+ const char *tile_name = tile_dngn_name(tile);
+ PLUARET(string, tile_name);
+#else
+ UNUSED(map);
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_change_rock_tile)
+{
+#ifdef USE_TILE
+ unsigned short tile = _get_tile_idx(ls, 1);
+ if (tile)
+ env.tile_default.wall = tile;
+
+ const char *tile_name = tile_dngn_name(tile);
+ PLUARET(string, tile_name);
+#else
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_change_floor_tile)
+{
+#ifdef USE_TILE
+ unsigned short tile = _get_tile_idx(ls, 1);
+ if (tile)
+ env.tile_default.floor = tile;
+
+ const char *tile_name = tile_dngn_name(tile);
+ PLUARET(string, tile_name);
+#else
+ PLUARET(string, "invalid");
+#endif
+}
+
+LUAFN(dgn_debug_dump_map)
{
const int pos = lua_isuserdata(ls, 1) ? 2 : 1;
if (lua_isstring(ls, pos))
@@ -2723,6 +2866,13 @@ static const struct luaL_reg dgn_lib[] =
{ "get_special_room_info", dgn_get_special_room_info },
+ { "rocktile", dgn_rocktile },
+ { "floortile", dgn_floortile },
+ { "change_rock_tile", dgn_change_rock_tile },
+ { "change_floor_tile", dgn_change_floor_tile },
+ { "lev_floortile", dgn_lev_floortile },
+ { "lev_rocktile", dgn_lev_rocktile },
+
{ "debug_dump_map", dgn_debug_dump_map },
{ NULL, NULL }
diff --git a/crawl-ref/source/mapdef.cc b/crawl-ref/source/mapdef.cc
index c73fe63413..da1afa86b9 100644
--- a/crawl-ref/source/mapdef.cc
+++ b/crawl-ref/source/mapdef.cc
@@ -1198,7 +1198,8 @@ map_def::map_def()
weight_depth_mult(), weight_depth_div(), welcome_messages(), map(),
mons(), items(), keyspecs(), prelude("dlprelude"), main("dlmain"),
validate("dlvalidate"), veto("dlveto"), rock_colour(BLACK),
- floor_colour(BLACK), index_only(false), cache_offset(0L)
+ floor_colour(BLACK), rock_tile(0), floor_tile(0),
+ index_only(false), cache_offset(0L)
{
init();
}
@@ -1228,6 +1229,7 @@ void map_def::reinit()
welcome_messages.clear();
rock_colour = floor_colour = BLACK;
+ rock_tile = floor_tile = 0;
// Chance of using this level. Nonzero chance should be used
// sparingly. When selecting vaults for a place, first those
diff --git a/crawl-ref/source/mapdef.h b/crawl-ref/source/mapdef.h
index 25c13cffc8..8b2a40260e 100644
--- a/crawl-ref/source/mapdef.h
+++ b/crawl-ref/source/mapdef.h
@@ -649,6 +649,7 @@ public:
map_def *original;
unsigned char rock_colour, floor_colour;
+ int rock_tile, floor_tile;
private:
// This map has been loaded from an index, and not fully realised.
diff --git a/crawl-ref/source/prebuilt/levcomp.lex.cc b/crawl-ref/source/prebuilt/levcomp.lex.cc
index 8dc04ac0c8..3f12981f31 100644
--- a/crawl-ref/source/prebuilt/levcomp.lex.cc
+++ b/crawl-ref/source/prebuilt/levcomp.lex.cc
@@ -9,7 +9,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 34
+#define YY_FLEX_SUBMINOR_VERSION 33
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -31,7 +31,7 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#if __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
@@ -94,12 +94,11 @@ typedef unsigned int flex_uint32_t;
#else /* ! __cplusplus */
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
+#if __STDC__
#define YY_USE_CONST
-#endif /* defined (__STDC__) */
+#endif /* __STDC__ */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@@ -195,13 +194,11 @@ extern FILE *yyin, *yyout;
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
- * Given that the standard has decreed that size_t exists since 1989,
- * I guess we can afford to depend on it. Manoj.
*/
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
+typedef unsigned int yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -380,8 +377,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 75
-#define YY_END_OF_BUFFER 76
+#define YY_NUM_RULES 77
+#define YY_END_OF_BUFFER 78
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -389,38 +386,38 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[974] =
+static yyconst flex_int16_t yy_accept[1012] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 76, 74, 71, 72,
- 73, 69, 74, 67, 70, 68, 74, 74, 74, 74,
- 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 71, 34, 36, 74, 74, 74, 74, 74,
- 74, 75, 6, 75, 75, 4, 2, 3, 75, 2,
- 2, 2, 2, 9, 10, 75, 9, 9, 75, 12,
- 75, 32, 71, 33, 73, 32, 32, 32, 32, 32,
+ 0, 0, 0, 0, 0, 0, 78, 76, 73, 74,
+ 75, 71, 76, 69, 72, 70, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 73, 34, 36, 76, 76, 76, 76, 76,
+ 76, 77, 6, 77, 77, 4, 2, 3, 77, 2,
+ 2, 2, 2, 9, 10, 77, 9, 9, 77, 12,
+ 77, 32, 73, 33, 75, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 71, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 73, 32, 32,
- 32, 32, 32, 32, 32, 32, 74, 28, 23, 28,
- 69, 74, 27, 70, 68, 74, 74, 74, 74, 74,
- 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 28, 34, 36, 74, 74, 74, 74, 74,
- 74, 15, 16, 73, 13, 13, 13, 13, 13, 13,
+ 32, 32, 32, 32, 32, 32, 76, 28, 23, 28,
+ 71, 76, 27, 72, 70, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 28, 34, 36, 76, 76, 76, 76, 76,
+ 76, 15, 16, 75, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 74, 13, 15, 13, 13, 13, 13, 13,
- 75, 21, 22, 75, 20, 75, 71, 72, 70, 0,
+ 13, 13, 76, 13, 15, 13, 13, 13, 13, 13,
+ 77, 21, 22, 77, 20, 77, 73, 74, 72, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 71, 34, 36, 0, 0, 0, 0, 34, 0,
+ 0, 73, 34, 36, 0, 0, 0, 0, 34, 0,
0, 0, 0, 0, 0, 0, 39, 6, 5, 0,
0, 2, 3, 2, 0, 2, 2, 2, 2, 9,
9, 10, 9, 9, 9, 0, 11, 0, 12, 31,
- 0, 31, 71, 33, 0, 0, 33, 31, 31, 31,
+ 0, 31, 73, 33, 0, 0, 33, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 0,
- 30, 31, 71, 31, 34, 31, 31, 31, 31, 31,
+ 30, 31, 73, 31, 34, 31, 31, 31, 31, 31,
31, 31, 31, 31, 26, 0, 26, 28, 23, 28,
0, 23, 26, 26, 26, 26, 26, 26, 26, 26,
@@ -462,42 +459,47 @@ static yyconst flex_int16_t yy_accept[974] =
26, 26, 26, 26, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 0, 0, 0, 0, 0, 0, 60, 0,
- 0, 0, 0, 0, 0, 59, 42, 0, 0, 0,
- 0, 0, 0, 51, 0, 0, 0, 38, 0, 0,
- 0, 0, 2, 31, 31, 31, 31, 31, 31, 31,
+ 13, 13, 0, 0, 0, 0, 0, 0, 62, 0,
+ 0, 0, 0, 0, 0, 61, 42, 0, 0, 0,
+ 0, 0, 0, 0, 51, 0, 0, 0, 38, 0,
+ 0, 0, 0, 2, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 0, 31, 26, 26, 26, 26, 26, 26, 26,
+ 31, 31, 31, 0, 31, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 0, 26, 13, 13, 13, 13, 13, 13, 13,
+ 26, 26, 26, 26, 0, 26, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 0, 0, 0, 44,
- 50, 0, 63, 64, 66, 65, 0, 0, 0, 0,
- 46, 0, 0, 54, 0, 0, 0, 0, 0, 41,
- 1, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 0, 0, 0, 44, 50, 0, 0, 65, 66, 68,
+ 67, 0, 0, 0, 0, 46, 0, 0, 0, 54,
+ 0, 0, 0, 0, 0, 41, 1, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 31, 26, 26, 26, 26, 26,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 53, 48, 56, 0, 52, 61,
- 55, 45, 0, 0, 49, 0, 0, 0, 0, 1,
+ 13, 13, 13, 13, 13, 13, 53, 48, 56, 0,
+ 0, 52, 63, 55, 45, 0, 0, 0, 49, 0,
+ 0, 0, 0, 1, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 31, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 13, 13, 13, 13, 13, 13, 13, 0, 58, 62,
- 47, 0, 0, 0, 0, 31, 31, 31, 31, 31,
- 0, 31, 31, 26, 26, 26, 26, 26, 0, 26,
- 26, 13, 13, 13, 57, 0, 37, 0, 0, 31,
- 31, 31, 0, 31, 26, 26, 26, 0, 26, 13,
- 0, 40, 31, 31, 26, 26, 13, 0, 31, 26,
- 13, 0, 31, 26, 13, 0, 31, 26, 13, 43,
- 31, 26, 0
+ 31, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 0, 0, 58,
+ 0, 64, 47, 0, 0, 0, 0, 31, 31, 31,
+ 31, 31, 31, 31, 0, 31, 31, 26, 26, 26,
+ 26, 26, 26, 26, 0, 26, 26, 13, 13, 13,
+ 13, 13, 57, 0, 60, 0, 37, 0, 0, 31,
+ 31, 31, 31, 31, 0, 31, 26, 26, 26, 26,
+ 26, 0, 26, 13, 13, 59, 0, 40, 31, 31,
+ 31, 26, 26, 26, 13, 0, 31, 26, 13, 0,
+
+ 31, 26, 13, 0, 31, 26, 13, 43, 31, 26,
+ 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -541,231 +543,241 @@ static yyconst flex_int32_t yy_meta[51] =
6, 6, 6, 6, 6, 6, 6, 6, 1, 1
} ;
-static yyconst flex_int16_t yy_base[991] =
+static yyconst flex_int16_t yy_base[1029] =
{ 0,
0, 49, 53, 60, 64, 66, 49, 68, 116, 165,
- 214, 263, 312, 361, 76, 170, 2035, 3243, 71, 3243,
- 2031, 3243, 2007, 3243, 2006, 3243, 1998, 55, 1996, 1985,
- 1967, 66, 1975, 73, 76, 1959, 1960, 1951, 63, 1955,
- 1937, 1915, 409, 0, 3243, 75, 1900, 1900, 68, 64,
- 1894, 3243, 3243, 1935, 177, 3243, 0, 3243, 1934, 181,
- 0, 1906, 151, 1878, 3243, 1924, 58, 1869, 184, 3243,
- 1914, 268, 275, 3243, 366, 373, 378, 383, 388, 392,
+ 214, 263, 312, 361, 76, 170, 2173, 3341, 71, 3341,
+ 2151, 3341, 2131, 3341, 2126, 3341, 2112, 55, 2107, 2096,
+ 2088, 66, 2096, 73, 76, 2084, 2073, 2066, 63, 2076,
+ 2065, 2041, 409, 0, 3341, 75, 2029, 2025, 68, 64,
+ 2010, 3341, 3341, 2051, 177, 3341, 0, 3341, 2039, 181,
+ 0, 2015, 151, 1985, 3341, 2031, 58, 1968, 184, 3341,
+ 2014, 268, 275, 3341, 366, 373, 378, 383, 388, 392,
414, 426, 432, 437, 460, 465, 470, 474, 480, 493,
501, 507, 511, 515, 519, 535, 528, 552, 542, 546,
- 562, 556, 566, 577, 583, 589, 269, 602, 3243, 610,
- 374, 422, 3243, 590, 379, 614, 623, 624, 625, 629,
+ 562, 556, 566, 577, 583, 589, 269, 602, 3341, 610,
+ 374, 422, 3341, 590, 379, 614, 623, 624, 625, 629,
649, 635, 659, 660, 637, 673, 650, 680, 674, 686,
713, 687, 723, 697, 708, 717, 727, 731, 733, 735,
- 743, 750, 3243, 777, 1898, 1896, 0, 1886, 149, 1884,
- 1867, 1859, 173, 1871, 165, 182, 1854, 1857, 1850, 169,
- 1863, 1858, 279, 1834, 783, 180, 1820, 1817, 241, 162,
- 757, 791, 3243, 795, 3243, 799, 102, 3243, 1846, 1824,
- 1833, 1789, 1784, 263, 1794, 1790, 1775, 272, 1781, 1773,
- 1775, 1775, 1766, 1776, 1778, 1751, 1733, 1750, 1738, 91,
-
- 1718, 0, 0, 3243, 1704, 1703, 165, 1696, 0, 263,
- 1707, 1703, 1724, 242, 1694, 1685, 3243, 3243, 3243, 1725,
- 290, 0, 3243, 0, 1724, 293, 1695, 1681, 378, 1647,
- 1646, 3243, 255, 1642, 803, 361, 3243, 1687, 3243, 808,
- 814, 818, 832, 3243, 836, 841, 3243, 845, 853, 858,
+ 743, 750, 3341, 777, 2005, 2002, 0, 1991, 149, 1981,
+ 1969, 1957, 173, 1960, 165, 182, 1939, 1930, 1925, 169,
+ 1934, 1927, 279, 1906, 783, 180, 1891, 1893, 241, 162,
+ 757, 791, 3341, 795, 3341, 799, 102, 3341, 1921, 1904,
+ 1914, 1895, 1889, 263, 1892, 1890, 1873, 272, 1877, 1862,
+ 1864, 1864, 1851, 1860, 1864, 1861, 1843, 1857, 1848, 91,
+
+ 1823, 0, 0, 3341, 1810, 1804, 165, 1797, 0, 263,
+ 1778, 1775, 1798, 242, 1766, 1760, 3341, 3341, 3341, 1802,
+ 290, 0, 3341, 0, 1799, 293, 1785, 1774, 378, 1748,
+ 1747, 3341, 255, 1741, 803, 361, 3341, 1763, 3341, 808,
+ 814, 818, 832, 3341, 836, 841, 3341, 845, 853, 858,
870, 863, 876, 881, 891, 897, 907, 912, 919, 925,
933, 938, 945, 950, 960, 969, 976, 981, 987, 993,
- 3243, 1000, 0, 1012, 1018, 1026, 1035, 1031, 1039, 1043,
- 1049, 1057, 1053, 1066, 825, 871, 1076, 1099, 3243, 1103,
- 1109, 3243, 1084, 1091, 1114, 1115, 1119, 1127, 1121, 1126,
+ 3341, 1000, 0, 1012, 1018, 1026, 1035, 1031, 1039, 1043,
+ 1049, 1057, 1053, 1066, 825, 871, 1076, 1099, 3341, 1103,
+ 1109, 3341, 1084, 1091, 1114, 1115, 1119, 1127, 1121, 1126,
1139, 1154, 1140, 1160, 1161, 1166, 1167, 1175, 1173, 1177,
- 1188, 1200, 1208, 1214, 1221, 3243, 1226, 1213, 0, 1235,
+ 1188, 1200, 1208, 1214, 1221, 3341, 1226, 1213, 0, 1235,
1241, 1254, 1262, 1231, 1247, 1266, 1268, 1275, 1280, 1281,
- 1301, 3243, 1315, 1319, 1293, 3243, 0, 1662, 1636, 1640,
- 1614, 1602, 378, 1606, 1605, 1575, 416, 1578, 1567, 1555,
- 1547, 1539, 1549, 1552, 1549, 1531, 1546, 1526, 286, 1326,
- 3243, 1502, 0, 416, 1496, 1487, 1510, 395, 1473, 1463,
- 1305, 1306, 1339, 1343, 3243, 1348, 1352, 1332, 1356, 3243,
- 1360, 1495, 1476, 1473, 1467, 1477, 1467, 1467, 1470, 1463,
- 1445, 1448, 1449, 1435, 1419, 1429, 1428, 1424, 1419, 1410,
-
- 1405, 1387, 1386, 1394, 1394, 1364, 1365, 524, 1348, 1360,
- 1347, 1334, 1350, 1376, 1381, 1389, 3243, 1393, 1398, 3243,
+ 1301, 3341, 1315, 1319, 1293, 3341, 0, 1754, 1740, 1744,
+ 1732, 1723, 378, 1730, 1728, 1711, 416, 1716, 1708, 1709,
+ 1706, 1696, 1706, 1698, 1692, 1665, 1682, 1673, 286, 1326,
+ 3341, 1652, 0, 416, 1638, 1623, 1640, 395, 1597, 1584,
+ 1305, 1306, 1339, 1343, 3341, 1348, 1352, 1332, 1356, 3341,
+ 1360, 1610, 1596, 1579, 1571, 1577, 1554, 1547, 1558, 1553,
+ 1535, 1538, 1550, 1537, 1515, 1523, 1517, 1507, 1508, 1491,
+
+ 1491, 1478, 1472, 1481, 1483, 1461, 1365, 524, 1453, 1464,
+ 1443, 1438, 1450, 1376, 1381, 1389, 3341, 1393, 1398, 3341,
1402, 1406, 1410, 1416, 1420, 1433, 1443, 1451, 1455, 1461,
1467, 1477, 1486, 1482, 1502, 1508, 1513, 1517, 1524, 1533,
1539, 1544, 1550, 1557, 1564, 1581, 1585, 1590, 1595, 1599,
- 1603, 1607, 1616, 1623, 3243, 1425, 1630, 1608, 1548, 1634,
+ 1603, 1607, 1616, 1623, 3341, 1425, 1630, 1608, 1548, 1634,
1643, 1644, 1649, 1650, 1664, 1665, 1654, 1674, 1670, 1680,
1684, 1459, 1689, 1698, 1707, 1715, 1714, 1720, 1719, 1700,
- 1724, 1758, 1766, 1770, 1750, 1774, 1775, 1776, 1780, 1361,
- 1346, 1344, 1307, 1314, 1305, 1300, 1299, 1284, 1269, 1268,
-
- 1279, 1266, 1257, 1261, 1262, 1257, 1257, 1239, 1243, 1230,
- 1224, 1234, 1226, 1197, 1784, 572, 1180, 1189, 1172, 1166,
- 1791, 3243, 1815, 1187, 1189, 1171, 1178, 1167, 1156, 1172,
- 1152, 1151, 1135, 1127, 1133, 1134, 1138, 1134, 1106, 1109,
- 1117, 1115, 1104, 1078, 1085, 1072, 1063, 1041, 1824, 3243,
- 741, 1036, 1037, 1046, 766, 1062, 1828, 3243, 1832, 1836,
- 3243, 1840, 1845, 1850, 1819, 1854, 1864, 1858, 1868, 1891,
+ 1724, 1758, 1766, 1770, 1750, 1774, 1775, 1776, 1780, 1461,
+ 1436, 1431, 1418, 1427, 1415, 1416, 1421, 1416, 1393, 1391,
+
+ 1403, 1390, 1379, 1382, 1375, 1371, 1372, 1353, 1357, 1344,
+ 1342, 1352, 1323, 1298, 1784, 572, 1291, 1297, 1272, 1259,
+ 1791, 3341, 1815, 1280, 1279, 1260, 1269, 1257, 1249, 1264,
+ 1243, 1247, 1239, 1231, 1241, 1237, 1241, 1229, 1202, 1195,
+ 1200, 420, 1194, 1177, 1194, 1184, 1176, 1151, 1824, 3341,
+ 741, 1148, 1138, 1148, 766, 1170, 1828, 3341, 1832, 1836,
+ 3341, 1840, 1845, 1850, 1819, 1854, 1864, 1858, 1868, 1891,
1895, 1901, 1906, 1911, 1929, 1937, 1946, 1951, 1957, 1962,
1971, 1985, 1990, 1995, 2006, 2010, 2018, 2028, 2023, 2034,
- 2041, 2045, 2051, 2058, 1967, 1880, 2046, 1972, 2062, 2082,
-
- 2068, 2084, 2088, 2093, 2101, 2102, 2103, 2112, 2108, 2123,
- 2124, 2128, 2129, 2143, 2148, 2149, 2154, 2150, 2162, 2166,
- 2168, 2173, 2174, 2184, 1053, 1052, 1018, 1029, 1012, 1003,
- 1014, 994, 999, 996, 988, 994, 995, 997, 995, 976,
- 973, 976, 973, 969, 951, 965, 956, 942, 921, 914,
- 924, 1528, 927, 939, 916, 932, 927, 918, 3243, 920,
- 914, 910, 907, 888, 884, 3243, 3243, 876, 875, 888,
- 863, 864, 872, 3243, 851, 844, 823, 3243, 825, 819,
- 1612, 802, 804, 2189, 2207, 2201, 2224, 2235, 2240, 2244,
- 2248, 2252, 2261, 2275, 2266, 2279, 2257, 2288, 2297, 2301,
-
- 2312, 2316, 2321, 2325, 2334, 2347, 2352, 2356, 2360, 2365,
- 2369, 2378, 2383, 2310, 2374, 2193, 2390, 2404, 2270, 2391,
- 2408, 2409, 2417, 2421, 2426, 2432, 2413, 2434, 2439, 2443,
- 2447, 2448, 2452, 2460, 2462, 2478, 2482, 2483, 2487, 2493,
- 2488, 2497, 2498, 801, 811, 797, 812, 802, 794, 777,
- 771, 764, 761, 736, 735, 732, 729, 744, 723, 725,
- 729, 708, 709, 682, 675, 674, 693, 692, 686, 3243,
- 3243, 669, 3243, 3243, 3243, 3243, 683, 669, 668, 656,
- 3243, 632, 630, 3243, 634, 628, 589, 596, 563, 3243,
- 603, 2506, 2531, 2537, 2546, 2550, 2554, 2558, 2562, 2568,
-
- 2572, 2581, 2585, 2596, 2605, 2609, 2616, 2620, 2624, 2629,
- 2640, 2644, 2651, 2657, 2662, 2663, 2667, 2668, 2523, 2589,
- 2679, 2681, 2687, 2693, 2702, 2706, 2707, 2712, 2718, 2720,
- 2724, 2726, 2730, 2732, 2740, 2745, 2751, 2760, 2765, 587,
- 586, 585, 557, 571, 566, 560, 551, 535, 535, 530,
- 501, 461, 465, 454, 3243, 3243, 3243, 472, 3243, 3243,
- 3243, 3243, 480, 477, 3243, 469, 470, 1734, 440, 468,
- 2767, 2771, 2776, 2785, 2791, 2798, 2809, 2813, 2818, 2822,
- 2831, 2836, 2840, 2849, 2853, 2826, 2844, 2857, 2861, 2859,
- 2866, 2867, 2871, 2877, 2892, 2875, 2894, 2905, 2911, 2912,
-
- 444, 451, 447, 443, 444, 1741, 414, 435, 3243, 3243,
- 3243, 402, 1916, 386, 1921, 2917, 2928, 2932, 2936, 2948,
- 2952, 2959, 2963, 2969, 2942, 2953, 2970, 2975, 2983, 2987,
- 2989, 413, 367, 1955, 3243, 364, 3243, 2185, 349, 2994,
- 3011, 3020, 3025, 3029, 3005, 3035, 3039, 3041, 3045, 337,
- 329, 3243, 3053, 3047, 3059, 3051, 258, 243, 3063, 3078,
- 165, 170, 3084, 3093, 166, 191, 3099, 3103, 84, 3243,
- 3112, 3105, 3243, 3146, 3152, 3158, 3164, 3170, 3176, 3182,
- 3188, 3194, 3200, 3206, 3212, 3218, 3224, 3230, 54, 3236
+ 2041, 2045, 2051, 2058, 1967, 1880, 2046, 2056, 2062, 1972,
+
+ 2068, 2069, 2082, 2093, 2099, 2104, 2105, 2110, 2106, 2123,
+ 2124, 2130, 2129, 2141, 2148, 2146, 2150, 2154, 2165, 2160,
+ 2169, 2174, 2176, 2181, 1157, 1143, 1125, 1132, 1121, 1121,
+ 1134, 1105, 1110, 1111, 1100, 1103, 1092, 1085, 1080, 1060,
+ 1062, 1068, 423, 1066, 1051, 1063, 1052, 1040, 1003, 1002,
+ 1006, 1528, 1002, 1009, 996, 1012, 1007, 432, 3341, 1006,
+ 1001, 1000, 997, 977, 977, 3341, 3341, 968, 962, 976,
+ 960, 961, 953, 964, 3341, 938, 943, 920, 3341, 924,
+ 922, 1612, 907, 917, 2193, 2185, 2202, 2212, 2230, 2224,
+ 2236, 2245, 2249, 2261, 2270, 2276, 2282, 2286, 2292, 2296,
+
+ 2303, 2310, 2319, 2327, 2331, 2337, 2352, 2358, 2362, 2368,
+ 2372, 2376, 2380, 2386, 2393, 2345, 2243, 2191, 2399, 2411,
+ 2403, 2398, 2417, 2419, 2434, 2436, 2442, 2423, 2453, 2454,
+ 2458, 2459, 2469, 2464, 2473, 2475, 2499, 2480, 2481, 2495,
+ 2500, 2508, 2514, 2519, 2521, 2523, 914, 922, 904, 920,
+ 914, 458, 910, 907, 906, 901, 877, 877, 869, 859,
+ 876, 857, 861, 845, 852, 830, 829, 810, 796, 796,
+ 816, 814, 812, 3341, 3341, 787, 788, 3341, 3341, 3341,
+ 3341, 777, 771, 764, 761, 3341, 742, 740, 746, 3341,
+ 748, 739, 704, 712, 695, 3341, 734, 2533, 2547, 2556,
+
+ 2542, 2560, 2569, 2578, 2573, 2582, 2587, 2593, 2606, 2618,
+ 2624, 2629, 2633, 2640, 2644, 2649, 2655, 2667, 2671, 2680,
+ 2688, 2693, 2698, 2675, 2694, 2706, 2583, 2660, 2702, 2710,
+ 2708, 2714, 2715, 2719, 2733, 2745, 2749, 2750, 2732, 2741,
+ 2754, 2768, 2758, 2769, 2784, 2775, 2785, 2789, 2791, 722,
+ 711, 699, 682, 684, 692, 686, 684, 683, 657, 656,
+ 651, 644, 630, 600, 608, 589, 3341, 3341, 3341, 609,
+ 585, 3341, 3341, 3341, 3341, 596, 582, 586, 3341, 585,
+ 574, 1734, 546, 573, 2793, 2802, 2806, 2810, 2824, 2828,
+ 2837, 2841, 2845, 2849, 2855, 2861, 2865, 2872, 2876, 2883,
+
+ 2888, 2889, 2895, 2896, 2900, 2902, 2906, 2907, 2911, 2913,
+ 2926, 2937, 2941, 2946, 2947, 2953, 2959, 2960, 548, 539,
+ 547, 535, 530, 506, 497, 1741, 465, 488, 479, 3341,
+ 480, 3341, 3341, 445, 1916, 431, 1921, 2964, 2968, 2984,
+ 2999, 3005, 3010, 3015, 3019, 3023, 3027, 2972, 3033, 3011,
+ 3035, 3041, 3050, 3054, 3058, 3060, 3068, 465, 451, 447,
+ 419, 1955, 3341, 413, 3341, 366, 3341, 2254, 352, 3076,
+ 3081, 3093, 3099, 3109, 3114, 3118, 3072, 3119, 3094, 3103,
+ 3124, 3130, 3136, 386, 337, 3341, 329, 3341, 3140, 3152,
+ 3157, 3144, 3163, 3164, 258, 243, 3171, 3175, 165, 170,
+
+ 3179, 3185, 166, 191, 3198, 3199, 84, 3341, 3210, 3191,
+ 3341, 3244, 3250, 3256, 3262, 3268, 3274, 3280, 3286, 3292,
+ 3298, 3304, 3310, 3316, 3322, 3328, 54, 3334
} ;
-static yyconst flex_int16_t yy_def[991] =
+static yyconst flex_int16_t yy_def[1029] =
{ 0,
- 973, 1, 974, 975, 976, 976, 977, 977, 973, 9,
- 973, 11, 973, 13, 978, 978, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 979, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 980, 973, 981, 973, 973, 982,
- 981, 981, 981, 983, 973, 973, 983, 983, 984, 973,
- 973, 985, 973, 973, 973, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 43, 986, 985,
-
- 985, 985, 985, 985, 985, 985, 987, 973, 973, 973,
- 987, 987, 973, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 43, 988, 987, 987, 987, 987, 987, 987,
- 987, 973, 973, 973, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 973, 989, 43, 989, 989, 989, 989, 989,
- 990, 973, 973, 973, 973, 990, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
-
- 973, 43, 979, 973, 973, 973, 973, 973, 979, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 981, 973, 981, 973, 981, 981, 981, 981, 983,
- 983, 973, 983, 983, 983, 984, 973, 973, 973, 985,
- 985, 985, 973, 973, 973, 973, 973, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 973, 985, 98, 986, 986, 986, 985, 985, 985, 985,
- 985, 985, 985, 985, 987, 987, 987, 973, 973, 973,
- 973, 973, 987, 987, 987, 987, 987, 987, 987, 987,
-
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 973, 973, 987, 133, 988,
- 988, 988, 987, 987, 987, 987, 987, 987, 987, 987,
- 973, 973, 973, 973, 973, 973, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 973,
- 973, 989, 165, 989, 989, 989, 989, 989, 989, 989,
- 990, 990, 990, 973, 973, 973, 973, 973, 990, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
-
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 981, 983, 983, 983, 973, 973, 985, 973,
- 973, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 986, 985, 985, 985,
- 985, 985, 985, 987, 973, 973, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 988, 979, 987, 987, 987, 987, 987, 987, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
-
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 990, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 981, 983, 973, 973, 983,
- 973, 973, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
-
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 981, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
-
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 981, 985, 985, 985, 985, 985, 985, 985, 985, 985,
-
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
- 989, 989, 989, 989, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 981,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
-
- 989, 989, 989, 989, 989, 989, 989, 973, 973, 973,
- 973, 973, 973, 973, 973, 985, 985, 985, 985, 985,
- 985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
- 987, 989, 989, 989, 973, 973, 973, 973, 973, 985,
- 985, 985, 985, 985, 987, 987, 987, 987, 987, 989,
- 973, 973, 985, 985, 987, 987, 989, 973, 985, 987,
- 989, 973, 985, 987, 989, 973, 985, 987, 989, 973,
- 985, 987, 0, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973
+ 1011, 1, 1012, 1013, 1014, 1014, 1015, 1015, 1011, 9,
+ 1011, 11, 1011, 13, 1016, 1016, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1017, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1018, 1011, 1019, 1011, 1011, 1020,
+ 1019, 1019, 1019, 1021, 1011, 1011, 1021, 1021, 1022, 1011,
+ 1011, 1023, 1011, 1011, 1011, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 43, 1024, 1023,
+
+ 1023, 1023, 1023, 1023, 1023, 1023, 1025, 1011, 1011, 1011,
+ 1025, 1025, 1011, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 43, 1026, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1011, 1011, 1011, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1011, 1027, 43, 1027, 1027, 1027, 1027, 1027,
+ 1028, 1011, 1011, 1011, 1011, 1028, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+
+ 1011, 43, 1017, 1011, 1011, 1011, 1011, 1011, 1017, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1019, 1011, 1019, 1011, 1019, 1019, 1019, 1019, 1021,
+ 1021, 1011, 1021, 1021, 1021, 1022, 1011, 1011, 1011, 1023,
+ 1023, 1023, 1011, 1011, 1011, 1011, 1011, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1011, 1023, 98, 1024, 1024, 1024, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1011, 1011, 1011,
+ 1011, 1011, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1011, 1011, 1025, 133, 1026,
+ 1026, 1026, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1011,
+ 1011, 1027, 165, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1028, 1028, 1028, 1011, 1011, 1011, 1011, 1011, 1028, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1019, 1021, 1021, 1021, 1011, 1011, 1023, 1011,
+ 1011, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1025, 1011, 1011, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1026, 1017, 1025, 1025, 1025, 1025, 1025, 1025, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1028, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1019, 1021, 1011, 1011, 1021,
+ 1011, 1011, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1019, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1019, 1023, 1023, 1023,
+
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1019, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+
+ 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027,
+ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027,
+ 1027, 1027, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1027, 1027, 1011, 1011, 1011, 1023, 1023,
+ 1023, 1025, 1025, 1025, 1027, 1011, 1023, 1025, 1027, 1011,
+
+ 1023, 1025, 1027, 1011, 1023, 1025, 1027, 1011, 1023, 1025,
+ 0, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011
} ;
-static yyconst flex_int16_t yy_nxt[3294] =
+static yyconst flex_int16_t yy_nxt[3392] =
{ 0,
18, 19, 20, 21, 19, 18, 22, 23, 24, 23,
25, 26, 18, 27, 28, 29, 18, 30, 18, 18,
@@ -776,7 +788,7 @@ static yyconst flex_int16_t yy_nxt[3294] =
45, 52, 58, 59, 60, 61, 65, 66, 65, 66,
70, 71, 177, 46, 181, 177, 62, 172, 173, 174,
172, 182, 197, 186, 175, 190, 187, 210, 192, 47,
- 188, 48, 213, 49, 198, 970, 50, 51, 215, 191,
+ 188, 48, 213, 49, 198, 1008, 50, 51, 215, 191,
216, 191, 233, 177, 63, 193, 177, 234, 67, 176,
67, 404, 214, 68, 405, 68, 72, 73, 74, 75,
@@ -789,361 +801,372 @@ static yyconst flex_int16_t yy_nxt[3294] =
220, 221, 219, 223, 225, 226, 237, 238, 356, 101,
345, 350, 364, 346, 351, 229, 369, 347, 370, 215,
- 357, 216, 970, 176, 969, 102, 350, 103, 966, 104,
- 965, 352, 105, 106, 107, 108, 109, 110, 108, 107,
+ 357, 216, 1008, 176, 1007, 102, 350, 103, 1004, 104,
+ 1003, 352, 105, 106, 107, 108, 109, 110, 108, 107,
111, 112, 113, 112, 114, 115, 107, 116, 117, 118,
107, 119, 107, 107, 120, 107, 121, 122, 123, 124,
125, 126, 127, 128, 129, 107, 130, 131, 107, 132,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 133, 367, 213, 133, 134, 241,
286, 241, 241, 286, 135, 386, 243, 244, 245, 243,
- 360, 361, 360, 360, 391, 368, 214, 136, 962, 387,
+ 360, 361, 360, 360, 391, 368, 214, 136, 1000, 387,
407, 394, 218, 220, 221, 223, 225, 226, 392, 233,
- 961, 242, 287, 137, 234, 138, 512, 139, 246, 513,
+ 999, 242, 287, 137, 234, 138, 512, 139, 246, 513,
140, 141, 18, 142, 143, 144, 142, 18, 22, 23,
24, 145, 146, 26, 147, 148, 149, 150, 147, 151,
147, 147, 152, 147, 153, 154, 155, 156, 157, 158,
159, 160, 161, 147, 162, 163, 147, 164, 147, 147,
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
18, 18, 165, 237, 238, 165, 44, 245, 247, 245,
- 245, 958, 45, 957, 241, 286, 241, 241, 286, 241,
+ 245, 996, 45, 995, 241, 286, 241, 241, 286, 241,
286, 241, 241, 286, 241, 166, 241, 241, 248, 241,
- 494, 241, 241, 241, 228, 241, 241, 952, 248, 246,
+ 494, 241, 241, 241, 228, 241, 241, 986, 248, 246,
- 951, 167, 950, 168, 495, 169, 242, 287, 170, 51,
+ 988, 167, 987, 168, 495, 169, 242, 287, 170, 51,
202, 242, 287, 202, 203, 241, 242, 241, 241, 367,
- 204, 242, 229, 286, 935, 242, 286, 241, 499, 241,
- 241, 249, 293, 241, 937, 241, 241, 936, 241, 368,
- 241, 241, 500, 515, 502, 250, 935, 242, 252, 205,
- 934, 206, 251, 933, 911, 287, 207, 208, 910, 242,
- 253, 241, 909, 241, 241, 242, 241, 932, 241, 241,
- 242, 241, 870, 241, 241, 241, 915, 241, 241, 912,
- 911, 241, 255, 241, 241, 256, 259, 258, 910, 257,
- 254, 909, 261, 242, 241, 908, 241, 241, 242, 907,
-
- 260, 906, 241, 242, 241, 241, 905, 242, 241, 262,
- 241, 241, 241, 242, 241, 241, 241, 904, 241, 241,
+ 204, 242, 229, 286, 986, 242, 286, 241, 499, 241,
+ 241, 249, 293, 241, 671, 241, 241, 762, 241, 368,
+ 241, 241, 500, 515, 502, 250, 776, 242, 252, 205,
+ 672, 206, 251, 763, 985, 287, 207, 208, 965, 242,
+ 253, 241, 777, 241, 241, 242, 241, 984, 241, 241,
+ 242, 241, 853, 241, 241, 241, 963, 241, 241, 967,
+ 966, 241, 255, 241, 241, 256, 259, 258, 854, 257,
+ 254, 965, 261, 242, 241, 964, 241, 241, 242, 963,
+
+ 260, 962, 241, 242, 241, 241, 961, 242, 241, 262,
+ 241, 241, 241, 242, 241, 241, 241, 933, 241, 241,
241, 263, 241, 241, 264, 551, 242, 268, 551, 241,
266, 241, 241, 265, 242, 269, 270, 271, 270, 270,
- 242, 865, 267, 275, 242, 275, 275, 241, 242, 241,
- 241, 903, 242, 273, 244, 245, 273, 241, 902, 241,
- 241, 242, 862, 241, 272, 241, 241, 241, 242, 241,
- 241, 861, 552, 551, 277, 276, 551, 860, 241, 242,
- 241, 241, 859, 901, 241, 246, 241, 241, 260, 242,
- 241, 286, 241, 241, 286, 242, 857, 856, 855, 242,
-
- 293, 280, 278, 288, 289, 290, 288, 870, 869, 279,
+ 242, 932, 267, 275, 242, 275, 275, 241, 242, 241,
+ 241, 960, 242, 273, 244, 245, 273, 241, 930, 241,
+ 241, 242, 959, 241, 272, 241, 241, 241, 242, 241,
+ 241, 958, 552, 551, 277, 276, 551, 884, 241, 242,
+ 241, 241, 937, 934, 241, 246, 241, 241, 260, 242,
+ 241, 286, 241, 241, 286, 242, 933, 932, 931, 242,
+
+ 293, 280, 278, 288, 289, 290, 288, 930, 929, 279,
242, 290, 292, 290, 290, 286, 242, 282, 286, 283,
552, 281, 242, 287, 286, 286, 286, 286, 286, 286,
- 286, 294, 868, 286, 867, 291, 286, 284, 286, 286,
- 297, 286, 295, 291, 866, 865, 864, 287, 298, 296,
- 286, 286, 303, 286, 286, 863, 287, 287, 287, 299,
- 286, 286, 287, 286, 286, 308, 300, 862, 287, 301,
- 287, 304, 306, 302, 286, 286, 310, 286, 286, 861,
- 860, 286, 287, 287, 286, 305, 313, 286, 286, 307,
- 286, 286, 287, 287, 859, 858, 309, 857, 321, 311,
-
- 209, 321, 314, 856, 855, 209, 287, 287, 854, 286,
- 853, 312, 286, 287, 315, 316, 317, 315, 286, 287,
- 287, 286, 852, 318, 319, 289, 290, 319, 286, 323,
- 322, 286, 286, 851, 286, 286, 286, 286, 850, 286,
- 784, 287, 551, 305, 286, 551, 287, 286, 849, 848,
- 287, 331, 332, 333, 331, 781, 291, 326, 372, 847,
- 287, 372, 846, 845, 287, 844, 287, 681, 287, 328,
- 681, 329, 776, 324, 325, 775, 287, 327, 335, 336,
- 335, 335, 774, 334, 363, 332, 333, 363, 773, 552,
+ 286, 294, 928, 286, 927, 291, 286, 284, 286, 286,
+ 297, 286, 295, 291, 926, 925, 924, 287, 298, 296,
+ 286, 286, 303, 286, 286, 879, 287, 287, 287, 299,
+ 286, 286, 287, 286, 286, 308, 300, 923, 287, 301,
+ 287, 304, 306, 302, 286, 286, 310, 286, 286, 922,
+ 921, 286, 287, 287, 286, 305, 313, 286, 286, 307,
+ 286, 286, 287, 287, 875, 874, 309, 873, 321, 311,
+
+ 209, 321, 314, 872, 920, 209, 287, 287, 919, 286,
+ 869, 312, 286, 287, 315, 316, 317, 315, 286, 287,
+ 287, 286, 868, 318, 319, 289, 290, 319, 286, 323,
+ 322, 286, 286, 867, 286, 286, 286, 286, 884, 286,
+ 883, 287, 551, 305, 286, 551, 287, 286, 882, 881,
+ 287, 331, 332, 333, 331, 880, 291, 326, 372, 879,
+ 287, 372, 878, 877, 287, 876, 287, 682, 287, 328,
+ 682, 329, 875, 324, 325, 874, 287, 327, 335, 336,
+ 335, 335, 873, 334, 363, 332, 333, 363, 872, 552,
373, 330, 374, 375, 376, 374, 378, 375, 378, 378,
- 379, 380, 381, 379, 416, 417, 418, 416, 843, 241,
- 334, 241, 241, 771, 682, 241, 334, 241, 241, 419,
- 420, 419, 419, 770, 377, 842, 286, 841, 377, 286,
- 840, 791, 373, 243, 244, 245, 243, 245, 244, 245,
+ 379, 380, 381, 379, 416, 417, 418, 416, 871, 241,
+ 334, 241, 241, 870, 683, 241, 334, 241, 241, 419,
+ 420, 419, 419, 869, 377, 868, 286, 867, 377, 286,
+ 866, 865, 373, 243, 244, 245, 243, 245, 244, 245,
245, 242, 421, 271, 421, 421, 241, 242, 241, 241,
- 790, 242, 414, 789, 241, 248, 241, 241, 287, 241,
- 788, 241, 241, 787, 241, 246, 241, 241, 786, 246,
+ 864, 242, 414, 863, 241, 248, 241, 241, 287, 241,
+ 862, 241, 241, 790, 241, 246, 241, 241, 861, 246,
423, 241, 286, 241, 241, 286, 422, 241, 242, 241,
- 241, 785, 241, 784, 241, 241, 242, 783, 426, 782,
- 425, 242, 241, 424, 241, 241, 242, 428, 241, 781,
-
- 241, 241, 427, 242, 287, 780, 779, 429, 241, 242,
- 241, 241, 778, 241, 242, 241, 241, 777, 776, 431,
- 241, 775, 241, 241, 242, 774, 241, 430, 241, 241,
- 242, 773, 772, 432, 241, 433, 241, 241, 771, 241,
- 242, 241, 241, 770, 769, 242, 241, 434, 241, 241,
- 435, 241, 242, 241, 241, 768, 767, 436, 242, 766,
- 765, 241, 439, 241, 241, 438, 242, 764, 763, 437,
- 241, 242, 241, 241, 440, 762, 674, 241, 242, 241,
- 241, 761, 241, 242, 241, 241, 760, 759, 241, 442,
- 241, 241, 758, 242, 270, 271, 270, 270, 757, 443,
-
- 441, 241, 242, 241, 241, 756, 667, 444, 666, 242,
- 445, 755, 754, 275, 242, 275, 275, 753, 752, 275,
- 242, 275, 275, 751, 750, 659, 242, 447, 420, 447,
- 447, 749, 241, 242, 241, 241, 241, 446, 241, 241,
- 241, 748, 241, 241, 241, 276, 241, 241, 747, 746,
+ 241, 860, 241, 859, 241, 241, 242, 786, 426, 858,
+ 425, 242, 241, 424, 241, 241, 242, 428, 241, 857,
+
+ 241, 241, 427, 242, 287, 856, 855, 429, 241, 242,
+ 241, 241, 781, 241, 242, 241, 241, 780, 779, 431,
+ 241, 778, 241, 241, 242, 775, 241, 430, 241, 241,
+ 242, 774, 852, 432, 241, 433, 241, 241, 851, 241,
+ 242, 241, 241, 850, 797, 242, 241, 434, 241, 241,
+ 435, 241, 242, 241, 241, 796, 795, 436, 242, 794,
+ 793, 241, 439, 241, 241, 438, 242, 792, 791, 437,
+ 241, 242, 241, 241, 440, 790, 789, 241, 242, 241,
+ 241, 788, 241, 242, 241, 241, 787, 786, 241, 442,
+ 241, 241, 785, 242, 270, 271, 270, 270, 784, 443,
+
+ 441, 241, 242, 241, 241, 783, 782, 444, 781, 242,
+ 445, 780, 779, 275, 242, 275, 275, 778, 775, 275,
+ 242, 275, 275, 774, 773, 772, 242, 447, 420, 447,
+ 447, 771, 241, 242, 241, 241, 241, 446, 241, 241,
+ 241, 770, 241, 241, 241, 276, 241, 241, 769, 768,
241, 276, 241, 241, 241, 451, 241, 241, 241, 276,
- 241, 241, 448, 434, 242, 449, 745, 241, 242, 241,
- 241, 744, 242, 280, 683, 450, 242, 454, 455, 456,
- 454, 680, 242, 679, 678, 286, 242, 677, 286, 676,
- 242, 675, 286, 281, 293, 286, 674, 452, 453, 242,
+ 241, 241, 448, 434, 242, 449, 767, 241, 242, 241,
+ 241, 766, 242, 280, 675, 450, 242, 454, 455, 456,
+ 454, 765, 242, 764, 761, 286, 242, 760, 286, 759,
+ 242, 667, 286, 281, 293, 286, 666, 452, 453, 242,
- 288, 289, 290, 288, 290, 289, 290, 290, 673, 287,
+ 288, 289, 290, 288, 290, 289, 290, 290, 758, 287,
317, 316, 317, 317, 457, 286, 286, 287, 286, 286,
- 286, 672, 286, 286, 287, 286, 458, 286, 286, 671,
- 286, 286, 291, 670, 669, 668, 291, 463, 459, 461,
- 286, 286, 464, 286, 286, 667, 460, 287, 287, 666,
- 665, 664, 287, 462, 287, 286, 663, 662, 286, 287,
+ 286, 757, 286, 286, 287, 286, 458, 286, 286, 756,
+ 286, 286, 291, 755, 754, 753, 291, 463, 459, 461,
+ 286, 286, 464, 286, 286, 659, 460, 287, 287, 752,
+ 751, 750, 287, 462, 287, 286, 749, 748, 286, 287,
287, 286, 286, 468, 286, 286, 466, 286, 286, 465,
- 286, 286, 287, 287, 286, 661, 286, 286, 286, 286,
- 467, 286, 660, 659, 658, 474, 470, 287, 469, 286,
- 471, 475, 286, 287, 287, 473, 657, 656, 472, 287,
-
- 287, 286, 655, 654, 286, 653, 287, 652, 287, 286,
- 287, 651, 286, 477, 286, 286, 515, 286, 286, 476,
- 650, 287, 315, 316, 317, 315, 478, 317, 316, 317,
- 317, 649, 286, 287, 479, 286, 321, 480, 209, 321,
- 648, 287, 321, 209, 209, 321, 287, 287, 286, 209,
- 481, 286, 647, 646, 287, 482, 455, 483, 482, 645,
- 644, 643, 209, 286, 287, 485, 286, 286, 322, 286,
- 286, 642, 286, 641, 322, 640, 286, 639, 487, 286,
- 287, 286, 286, 486, 286, 286, 638, 322, 637, 484,
- 469, 636, 326, 635, 335, 287, 335, 335, 634, 287,
-
- 633, 287, 331, 332, 333, 331, 372, 372, 287, 372,
- 372, 632, 327, 287, 287, 488, 335, 332, 335, 335,
- 360, 361, 360, 360, 631, 489, 334, 360, 361, 360,
- 360, 630, 629, 378, 334, 378, 378, 628, 373, 373,
+ 286, 286, 287, 287, 286, 747, 286, 286, 286, 286,
+ 467, 286, 684, 681, 680, 474, 470, 287, 469, 286,
+ 471, 475, 286, 287, 287, 473, 679, 678, 472, 287,
+
+ 287, 286, 677, 676, 286, 675, 287, 674, 287, 286,
+ 287, 673, 286, 477, 286, 286, 670, 286, 286, 476,
+ 669, 287, 315, 316, 317, 315, 478, 317, 316, 317,
+ 317, 668, 286, 287, 479, 286, 321, 480, 209, 321,
+ 667, 287, 321, 209, 209, 321, 287, 287, 286, 209,
+ 481, 286, 666, 665, 287, 482, 455, 483, 482, 664,
+ 663, 662, 209, 286, 287, 485, 286, 286, 322, 286,
+ 286, 661, 286, 660, 322, 659, 286, 658, 487, 286,
+ 287, 286, 286, 486, 286, 286, 657, 322, 656, 484,
+ 469, 655, 326, 654, 335, 287, 335, 335, 653, 287,
+
+ 652, 287, 331, 332, 333, 331, 372, 372, 287, 372,
+ 372, 651, 327, 287, 287, 488, 335, 332, 335, 335,
+ 360, 361, 360, 360, 515, 489, 334, 360, 361, 360,
+ 360, 650, 649, 378, 334, 378, 378, 648, 373, 373,
521, 522, 523, 521, 374, 375, 376, 374, 334, 378,
375, 378, 378, 381, 380, 381, 381, 379, 380, 381,
379, 381, 380, 381, 381, 377, 549, 550, 549, 549,
- 627, 626, 373, 625, 556, 555, 377, 557, 558, 559,
- 557, 377, 560, 561, 562, 560, 554, 407, 553, 373,
- 416, 417, 418, 416, 418, 417, 418, 418, 548, 419,
-
- 420, 419, 419, 421, 271, 421, 421, 241, 547, 241,
- 241, 241, 546, 241, 241, 545, 544, 241, 563, 241,
- 241, 241, 543, 241, 241, 414, 456, 455, 456, 456,
- 414, 242, 542, 541, 241, 564, 241, 241, 231, 242,
- 540, 539, 565, 242, 241, 538, 241, 241, 537, 242,
- 566, 567, 241, 242, 241, 241, 241, 536, 241, 241,
- 286, 535, 241, 286, 241, 241, 242, 570, 241, 568,
- 241, 241, 609, 534, 533, 569, 242, 571, 241, 532,
- 241, 241, 531, 241, 242, 241, 241, 241, 242, 241,
- 241, 530, 287, 529, 242, 528, 572, 527, 574, 526,
-
- 242, 525, 573, 241, 575, 241, 241, 524, 520, 241,
- 242, 241, 241, 519, 241, 242, 241, 241, 241, 242,
- 241, 241, 518, 517, 577, 241, 578, 241, 241, 681,
- 516, 576, 681, 579, 241, 242, 241, 241, 580, 514,
- 241, 242, 241, 241, 511, 241, 242, 241, 241, 286,
- 242, 241, 286, 241, 241, 581, 582, 242, 241, 510,
- 241, 241, 509, 508, 507, 241, 242, 241, 241, 506,
- 505, 504, 242, 583, 596, 585, 682, 242, 586, 584,
- 503, 287, 241, 242, 241, 241, 447, 420, 447, 447,
- 242, 588, 550, 588, 588, 502, 589, 242, 241, 589,
-
- 241, 501, 241, 241, 241, 498, 241, 241, 241, 286,
- 241, 241, 286, 681, 242, 587, 681, 241, 276, 241,
- 241, 497, 496, 242, 454, 455, 456, 454, 242, 493,
- 448, 286, 242, 595, 286, 286, 242, 492, 286, 591,
+ 647, 646, 373, 645, 644, 643, 377, 557, 558, 559,
+ 557, 377, 560, 561, 562, 560, 642, 641, 640, 373,
+ 416, 417, 418, 416, 418, 417, 418, 418, 639, 419,
+
+ 420, 419, 419, 421, 271, 421, 421, 241, 638, 241,
+ 241, 241, 637, 241, 241, 636, 635, 241, 563, 241,
+ 241, 241, 634, 241, 241, 414, 456, 455, 456, 456,
+ 414, 242, 633, 632, 241, 564, 241, 241, 231, 242,
+ 631, 630, 565, 242, 241, 629, 241, 241, 628, 242,
+ 566, 567, 241, 242, 241, 241, 241, 627, 241, 241,
+ 286, 626, 241, 286, 241, 241, 242, 570, 241, 568,
+ 241, 241, 609, 625, 556, 569, 242, 571, 241, 555,
+ 241, 241, 554, 241, 242, 241, 241, 241, 242, 241,
+ 241, 407, 287, 553, 242, 548, 572, 547, 574, 546,
+
+ 242, 545, 573, 241, 575, 241, 241, 544, 543, 241,
+ 242, 241, 241, 542, 241, 242, 241, 241, 241, 242,
+ 241, 241, 541, 540, 577, 241, 578, 241, 241, 682,
+ 539, 576, 682, 579, 241, 242, 241, 241, 580, 538,
+ 241, 242, 241, 241, 537, 241, 242, 241, 241, 286,
+ 242, 241, 286, 241, 241, 581, 582, 242, 241, 536,
+ 241, 241, 535, 534, 533, 241, 242, 241, 241, 532,
+ 531, 530, 242, 583, 596, 585, 683, 242, 586, 584,
+ 529, 287, 241, 242, 241, 241, 447, 420, 447, 447,
+ 242, 588, 550, 588, 588, 528, 589, 242, 241, 589,
+
+ 241, 527, 241, 241, 241, 526, 241, 241, 241, 286,
+ 241, 241, 286, 682, 242, 587, 682, 241, 276, 241,
+ 241, 525, 524, 242, 454, 455, 456, 454, 242, 520,
+ 448, 286, 242, 595, 286, 286, 242, 519, 286, 591,
242, 287, 594, 590, 286, 286, 592, 286, 286, 242,
- 286, 286, 491, 286, 286, 286, 287, 593, 286, 490,
- 682, 598, 601, 287, 597, 286, 286, 287, 286, 286,
- 599, 286, 338, 600, 286, 286, 287, 287, 286, 604,
- 602, 286, 287, 287, 286, 286, 605, 287, 286, 237,
- 286, 415, 606, 286, 603, 414, 231, 287, 287, 286,
-
- 608, 286, 286, 287, 286, 610, 227, 287, 286, 607,
- 413, 286, 611, 287, 617, 286, 286, 287, 286, 286,
- 286, 286, 287, 286, 286, 286, 223, 218, 286, 612,
- 412, 287, 613, 287, 411, 913, 410, 616, 913, 409,
- 287, 408, 913, 614, 217, 913, 212, 287, 287, 615,
- 211, 620, 287, 287, 620, 406, 403, 287, 618, 482,
- 455, 483, 482, 402, 401, 400, 209, 483, 455, 483,
+ 286, 286, 518, 286, 286, 286, 287, 593, 286, 517,
+ 683, 598, 601, 287, 597, 286, 286, 287, 286, 286,
+ 599, 286, 516, 600, 286, 286, 287, 287, 286, 604,
+ 602, 286, 287, 287, 286, 286, 605, 287, 286, 514,
+ 286, 511, 606, 286, 603, 510, 509, 287, 287, 286,
+
+ 608, 286, 286, 287, 286, 610, 508, 287, 286, 607,
+ 507, 286, 611, 287, 617, 286, 286, 287, 286, 286,
+ 286, 286, 287, 286, 286, 286, 506, 505, 286, 612,
+ 504, 287, 613, 287, 503, 935, 502, 616, 935, 501,
+ 287, 498, 935, 614, 497, 935, 496, 287, 287, 615,
+ 493, 620, 287, 287, 620, 492, 491, 287, 618, 482,
+ 455, 483, 482, 490, 338, 237, 209, 483, 455, 483,
483, 619, 550, 549, 619, 286, 286, 286, 286, 286,
- 286, 286, 914, 287, 286, 549, 550, 549, 549, 914,
- 399, 322, 521, 522, 523, 521, 398, 397, 621, 396,
+ 286, 286, 936, 287, 286, 549, 550, 549, 549, 936,
+ 415, 322, 521, 522, 523, 521, 414, 231, 621, 227,
- 395, 394, 484, 287, 393, 390, 389, 287, 287, 287,
- 388, 385, 384, 287, 622, 623, 523, 522, 523, 523,
+ 413, 223, 484, 287, 218, 412, 411, 287, 287, 287,
+ 410, 409, 408, 287, 622, 623, 523, 522, 523, 523,
241, 624, 241, 241, 373, 549, 550, 549, 549, 557,
558, 559, 557, 559, 558, 559, 559, 560, 561, 562,
- 560, 562, 561, 562, 562, 383, 241, 382, 241, 241,
- 686, 241, 242, 241, 241, 241, 179, 241, 241, 241,
- 366, 241, 241, 684, 685, 241, 365, 241, 241, 241,
- 362, 241, 241, 687, 359, 358, 355, 231, 242, 690,
- 354, 286, 353, 242, 286, 231, 689, 242, 348, 344,
- 343, 242, 241, 688, 241, 241, 241, 242, 241, 241,
-
- 342, 242, 241, 339, 241, 241, 338, 241, 338, 241,
- 241, 716, 241, 287, 241, 241, 239, 913, 235, 692,
- 913, 691, 938, 693, 242, 938, 232, 231, 242, 695,
- 241, 227, 241, 241, 242, 694, 223, 218, 241, 242,
- 241, 241, 217, 212, 242, 696, 211, 241, 697, 241,
- 241, 201, 241, 200, 241, 241, 938, 698, 241, 938,
- 241, 241, 242, 241, 914, 241, 241, 199, 286, 939,
- 242, 286, 241, 286, 241, 241, 286, 196, 701, 242,
- 699, 715, 700, 195, 242, 702, 241, 194, 241, 241,
- 242, 241, 189, 241, 241, 242, 241, 185, 241, 241,
-
- 287, 718, 703, 939, 242, 287, 705, 241, 184, 241,
- 241, 241, 183, 241, 241, 180, 179, 179, 242, 241,
- 704, 241, 241, 242, 589, 706, 241, 589, 242, 588,
- 550, 588, 588, 178, 973, 241, 707, 241, 241, 242,
- 973, 973, 241, 242, 241, 241, 241, 286, 241, 241,
- 286, 242, 712, 973, 241, 712, 242, 973, 973, 286,
- 973, 242, 286, 286, 708, 717, 286, 242, 973, 286,
- 973, 590, 286, 973, 242, 973, 714, 973, 242, 287,
- 711, 973, 709, 286, 242, 286, 286, 710, 286, 286,
- 719, 287, 286, 720, 286, 287, 973, 286, 721, 713,
-
- 973, 287, 286, 286, 286, 286, 286, 286, 722, 286,
- 723, 973, 286, 286, 727, 287, 286, 287, 726, 725,
- 973, 287, 724, 728, 286, 286, 287, 286, 286, 286,
- 286, 973, 286, 286, 287, 287, 287, 729, 973, 973,
- 731, 287, 732, 973, 286, 287, 733, 286, 730, 286,
- 286, 286, 286, 286, 286, 286, 287, 287, 286, 735,
- 973, 287, 287, 619, 550, 549, 619, 620, 736, 286,
- 620, 973, 286, 734, 286, 286, 287, 286, 286, 973,
- 737, 287, 287, 287, 973, 742, 938, 287, 742, 938,
- 241, 973, 241, 241, 286, 287, 738, 286, 973, 287,
-
- 973, 287, 241, 973, 241, 241, 287, 287, 241, 741,
- 241, 241, 973, 973, 621, 973, 739, 287, 792, 740,
- 973, 818, 242, 793, 973, 241, 287, 241, 241, 794,
- 973, 973, 743, 939, 242, 795, 241, 973, 241, 241,
- 242, 241, 973, 241, 241, 241, 796, 241, 241, 241,
- 973, 241, 241, 241, 797, 241, 241, 242, 241, 798,
- 241, 241, 241, 799, 241, 241, 973, 241, 242, 241,
- 241, 286, 800, 242, 286, 973, 241, 242, 241, 241,
- 241, 242, 241, 241, 821, 242, 801, 973, 973, 241,
- 242, 241, 241, 973, 242, 802, 973, 973, 241, 242,
-
- 241, 241, 241, 287, 241, 241, 973, 803, 242, 973,
- 973, 286, 242, 241, 286, 241, 241, 241, 973, 241,
- 241, 242, 241, 806, 241, 241, 241, 804, 241, 241,
- 242, 805, 973, 973, 242, 241, 809, 241, 241, 816,
- 973, 973, 807, 287, 808, 242, 973, 973, 241, 242,
- 241, 241, 973, 241, 242, 241, 241, 241, 242, 241,
- 241, 241, 973, 241, 241, 973, 241, 242, 241, 241,
- 241, 973, 241, 241, 973, 286, 811, 810, 286, 712,
- 242, 241, 712, 973, 241, 242, 241, 241, 973, 242,
- 817, 286, 286, 242, 286, 286, 812, 973, 242, 973,
-
- 813, 819, 242, 814, 973, 286, 973, 287, 286, 286,
- 286, 242, 286, 286, 286, 820, 242, 286, 286, 822,
- 823, 286, 286, 287, 287, 286, 713, 286, 824, 973,
- 286, 815, 825, 286, 973, 286, 286, 287, 286, 973,
- 286, 287, 287, 286, 286, 973, 287, 286, 286, 286,
- 287, 286, 286, 286, 287, 826, 286, 973, 830, 287,
- 827, 286, 973, 286, 286, 287, 286, 287, 973, 828,
- 973, 833, 287, 829, 831, 832, 287, 973, 973, 286,
- 287, 287, 286, 286, 286, 287, 286, 286, 286, 286,
- 973, 286, 286, 287, 286, 287, 973, 286, 742, 286,
-
- 973, 742, 286, 973, 973, 973, 835, 241, 834, 241,
- 241, 287, 973, 973, 973, 287, 287, 871, 973, 973,
- 287, 287, 838, 836, 286, 973, 287, 286, 837, 973,
- 287, 287, 241, 973, 241, 241, 973, 973, 241, 242,
- 241, 241, 872, 973, 973, 743, 839, 241, 873, 241,
- 241, 241, 973, 241, 241, 241, 287, 241, 241, 241,
- 973, 241, 241, 241, 242, 241, 241, 973, 973, 241,
- 242, 241, 241, 241, 973, 241, 241, 973, 973, 242,
- 874, 973, 241, 242, 241, 241, 241, 242, 241, 241,
- 286, 242, 875, 286, 973, 242, 876, 241, 973, 241,
-
- 241, 242, 973, 973, 973, 242, 241, 877, 241, 241,
- 241, 973, 241, 241, 242, 973, 878, 241, 242, 241,
- 241, 241, 287, 241, 241, 241, 973, 241, 241, 242,
- 241, 973, 241, 241, 973, 973, 880, 973, 242, 879,
- 881, 241, 242, 241, 241, 241, 973, 241, 241, 242,
- 973, 973, 241, 242, 241, 241, 882, 242, 241, 973,
- 241, 241, 242, 241, 286, 241, 241, 286, 286, 286,
- 973, 286, 286, 242, 886, 973, 973, 242, 887, 888,
- 286, 973, 286, 286, 242, 286, 973, 884, 286, 883,
- 242, 286, 973, 973, 286, 242, 287, 286, 973, 973,
-
- 287, 287, 885, 286, 973, 889, 286, 286, 286, 973,
- 286, 286, 287, 286, 287, 973, 286, 890, 891, 286,
- 287, 286, 286, 892, 286, 286, 287, 286, 286, 893,
- 286, 286, 973, 286, 286, 287, 286, 973, 973, 287,
- 287, 286, 895, 896, 286, 287, 286, 894, 973, 286,
- 973, 287, 286, 287, 973, 286, 897, 287, 973, 287,
- 973, 286, 973, 287, 286, 287, 286, 973, 241, 286,
- 241, 241, 241, 287, 241, 241, 973, 241, 287, 241,
- 241, 973, 973, 973, 287, 973, 241, 899, 241, 241,
- 898, 973, 241, 287, 241, 241, 973, 973, 287, 241,
-
- 242, 241, 241, 973, 242, 900, 973, 973, 916, 242,
- 241, 973, 241, 241, 241, 973, 241, 241, 242, 241,
- 973, 241, 241, 241, 242, 241, 241, 286, 973, 917,
- 286, 242, 241, 918, 241, 241, 973, 241, 973, 241,
- 241, 241, 242, 241, 241, 286, 242, 919, 286, 920,
- 921, 242, 241, 921, 241, 242, 241, 241, 286, 287,
- 286, 286, 286, 286, 242, 286, 973, 286, 286, 242,
- 286, 286, 286, 242, 973, 286, 286, 287, 286, 286,
- 973, 286, 242, 973, 924, 973, 242, 973, 925, 923,
- 287, 973, 287, 286, 287, 286, 286, 922, 286, 287,
-
- 287, 973, 973, 926, 287, 927, 286, 973, 287, 286,
- 287, 973, 929, 286, 928, 929, 286, 973, 241, 973,
- 241, 241, 973, 973, 973, 287, 973, 287, 940, 241,
- 973, 241, 241, 241, 973, 241, 241, 241, 287, 241,
- 241, 973, 973, 286, 287, 287, 286, 973, 931, 241,
- 242, 241, 241, 921, 286, 241, 921, 286, 973, 930,
- 241, 242, 241, 241, 943, 242, 241, 943, 973, 242,
- 286, 286, 973, 286, 286, 287, 286, 973, 973, 286,
- 945, 242, 973, 941, 929, 242, 287, 929, 286, 973,
- 948, 286, 242, 948, 973, 241, 242, 241, 241, 973,
-
- 922, 973, 287, 287, 973, 973, 286, 942, 287, 286,
- 946, 944, 241, 973, 241, 241, 287, 973, 973, 973,
- 287, 241, 287, 241, 241, 973, 943, 242, 241, 943,
- 241, 930, 241, 241, 973, 947, 286, 949, 287, 286,
- 286, 973, 948, 286, 242, 948, 286, 953, 241, 286,
- 241, 241, 286, 242, 241, 286, 241, 241, 242, 973,
- 286, 973, 242, 286, 241, 973, 241, 241, 287, 973,
- 973, 955, 287, 944, 287, 973, 973, 954, 287, 286,
- 242, 973, 286, 973, 287, 241, 242, 241, 241, 949,
- 973, 973, 287, 956, 286, 959, 242, 286, 973, 973,
-
- 241, 960, 241, 241, 286, 973, 286, 286, 963, 286,
- 971, 287, 973, 241, 972, 241, 241, 242, 973, 973,
- 973, 973, 967, 964, 973, 973, 287, 973, 973, 973,
- 973, 968, 242, 973, 973, 973, 287, 973, 287, 973,
- 973, 973, 973, 973, 973, 242, 52, 52, 52, 52,
- 52, 52, 57, 57, 57, 57, 57, 57, 64, 64,
- 64, 64, 64, 64, 69, 69, 69, 69, 69, 69,
- 171, 171, 171, 171, 171, 171, 209, 209, 973, 209,
- 209, 209, 219, 219, 219, 219, 219, 219, 222, 973,
- 973, 973, 222, 222, 224, 224, 224, 224, 224, 224,
-
- 230, 230, 973, 973, 230, 230, 236, 236, 236, 236,
- 236, 236, 240, 240, 973, 240, 240, 240, 274, 274,
- 973, 274, 274, 274, 285, 285, 973, 973, 973, 285,
- 320, 320, 973, 320, 320, 320, 371, 371, 973, 973,
- 973, 371, 17, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973
+ 560, 562, 561, 562, 562, 217, 241, 212, 241, 241,
+ 687, 241, 242, 241, 241, 241, 211, 241, 241, 241,
+ 406, 241, 241, 685, 686, 241, 403, 241, 241, 241,
+ 402, 241, 241, 688, 401, 400, 399, 231, 242, 691,
+ 398, 286, 397, 242, 286, 231, 690, 242, 396, 395,
+ 394, 242, 241, 689, 241, 241, 241, 242, 241, 241,
+
+ 393, 242, 241, 390, 241, 241, 389, 241, 388, 241,
+ 241, 718, 241, 287, 241, 241, 385, 935, 384, 693,
+ 935, 692, 968, 694, 242, 968, 383, 382, 242, 696,
+ 241, 179, 241, 241, 242, 695, 366, 365, 241, 242,
+ 241, 241, 362, 359, 242, 697, 358, 241, 698, 241,
+ 241, 355, 241, 354, 241, 241, 968, 699, 241, 968,
+ 241, 241, 242, 241, 936, 241, 241, 353, 286, 969,
+ 242, 286, 241, 286, 241, 241, 286, 348, 702, 242,
+ 700, 717, 701, 722, 242, 703, 241, 344, 241, 241,
+ 242, 241, 343, 241, 241, 242, 241, 342, 241, 241,
+
+ 287, 704, 705, 969, 242, 287, 707, 241, 339, 241,
+ 241, 241, 338, 241, 241, 338, 239, 235, 242, 241,
+ 706, 241, 241, 242, 589, 708, 241, 589, 242, 588,
+ 550, 588, 588, 232, 231, 241, 709, 241, 241, 242,
+ 227, 223, 241, 242, 241, 241, 241, 286, 241, 241,
+ 286, 242, 714, 218, 241, 714, 242, 286, 217, 286,
+ 286, 242, 286, 286, 710, 719, 286, 242, 212, 286,
+ 286, 590, 286, 286, 242, 211, 716, 201, 242, 287,
+ 713, 200, 711, 286, 242, 720, 286, 712, 199, 287,
+ 721, 287, 196, 724, 286, 287, 195, 286, 723, 715,
+
+ 286, 287, 287, 286, 725, 286, 286, 286, 286, 286,
+ 286, 286, 194, 189, 286, 287, 729, 727, 185, 184,
+ 728, 730, 726, 183, 286, 286, 287, 286, 286, 180,
+ 286, 286, 287, 286, 286, 731, 179, 287, 287, 287,
+ 733, 179, 286, 287, 734, 286, 736, 286, 732, 286,
+ 286, 286, 286, 178, 286, 286, 287, 287, 286, 738,
+ 735, 620, 287, 287, 620, 739, 619, 550, 549, 619,
+ 286, 737, 1011, 286, 287, 286, 740, 286, 286, 287,
+ 286, 287, 745, 287, 1011, 745, 241, 287, 241, 241,
+ 1011, 1011, 286, 287, 241, 286, 241, 241, 287, 1011,
+
+ 741, 799, 287, 241, 1011, 241, 241, 287, 621, 287,
+ 1011, 744, 1011, 241, 287, 241, 241, 742, 242, 826,
+ 743, 1011, 798, 801, 287, 241, 242, 241, 241, 746,
+ 800, 241, 1011, 241, 241, 242, 1011, 241, 803, 241,
+ 241, 802, 1011, 1011, 286, 242, 241, 286, 241, 241,
+ 241, 1011, 241, 241, 804, 968, 805, 242, 968, 825,
+ 806, 1011, 241, 242, 241, 241, 1011, 1011, 1011, 242,
+ 1011, 241, 807, 241, 241, 1011, 287, 241, 242, 241,
+ 241, 808, 242, 241, 1011, 241, 241, 241, 1011, 241,
+ 241, 1011, 1011, 241, 242, 241, 241, 241, 1011, 241,
+
+ 241, 1011, 969, 242, 241, 809, 241, 241, 1011, 242,
+ 810, 241, 1011, 241, 241, 242, 1011, 1011, 1011, 242,
+ 241, 813, 241, 241, 1011, 242, 811, 1011, 241, 242,
+ 241, 241, 241, 812, 241, 241, 242, 1011, 241, 1011,
+ 241, 241, 1011, 242, 1011, 814, 286, 815, 817, 286,
+ 1011, 1011, 242, 241, 816, 241, 241, 1011, 1011, 241,
+ 242, 241, 241, 241, 242, 241, 241, 1011, 1011, 241,
+ 242, 241, 241, 241, 824, 241, 241, 241, 287, 241,
+ 241, 241, 1011, 241, 241, 242, 819, 714, 818, 241,
+ 714, 242, 1011, 1011, 241, 242, 241, 241, 1011, 286,
+
+ 286, 242, 286, 286, 286, 242, 1011, 286, 820, 242,
+ 827, 821, 286, 242, 822, 286, 1011, 829, 286, 242,
+ 286, 286, 828, 286, 286, 1011, 242, 286, 831, 1011,
+ 832, 287, 287, 830, 715, 286, 287, 286, 286, 1011,
+ 286, 823, 1011, 286, 287, 833, 286, 834, 1011, 1011,
+ 287, 836, 287, 1011, 286, 286, 287, 286, 286, 286,
+ 286, 1011, 286, 286, 1011, 286, 1011, 287, 286, 287,
+ 286, 835, 1011, 286, 286, 287, 286, 286, 1011, 286,
+ 839, 286, 286, 1011, 286, 286, 287, 287, 837, 838,
+ 840, 287, 287, 841, 1011, 1011, 286, 287, 842, 286,
+
+ 286, 286, 287, 286, 286, 1011, 287, 1011, 287, 286,
+ 843, 844, 286, 287, 287, 286, 1011, 1011, 286, 845,
+ 286, 1011, 745, 286, 286, 745, 1011, 286, 287, 1011,
+ 1011, 1011, 287, 287, 241, 1011, 241, 241, 1011, 1011,
+ 846, 287, 1011, 241, 885, 241, 241, 287, 241, 847,
+ 241, 241, 287, 848, 287, 1011, 287, 241, 886, 241,
+ 241, 241, 1011, 241, 241, 1011, 242, 887, 1011, 746,
+ 241, 849, 241, 241, 241, 242, 241, 241, 1011, 241,
+ 242, 241, 241, 241, 286, 241, 241, 286, 241, 242,
+ 241, 241, 1011, 242, 241, 888, 241, 241, 889, 1011,
+
+ 1011, 1011, 242, 1011, 1011, 1011, 242, 241, 1011, 241,
+ 241, 242, 1011, 1011, 1011, 242, 287, 890, 1011, 241,
+ 242, 241, 241, 1011, 1011, 241, 242, 241, 241, 891,
+ 241, 1011, 241, 241, 241, 892, 241, 241, 1011, 242,
+ 893, 241, 1011, 241, 241, 241, 1011, 241, 241, 1011,
+ 241, 242, 241, 241, 1011, 1011, 241, 242, 241, 241,
+ 1011, 286, 242, 894, 286, 896, 242, 895, 241, 1011,
+ 241, 241, 241, 242, 241, 241, 286, 242, 897, 286,
+ 1011, 241, 242, 241, 241, 1011, 902, 898, 242, 241,
+ 1011, 241, 241, 287, 241, 286, 241, 241, 286, 241,
+
+ 242, 241, 241, 286, 242, 903, 286, 286, 287, 286,
+ 286, 286, 286, 242, 286, 286, 286, 904, 286, 286,
+ 286, 242, 1011, 286, 900, 899, 242, 287, 905, 1011,
+ 906, 242, 1011, 286, 286, 287, 286, 286, 901, 287,
+ 1011, 287, 286, 287, 907, 286, 286, 287, 287, 286,
+ 286, 286, 287, 286, 286, 286, 908, 1011, 286, 286,
+ 909, 910, 286, 1011, 911, 287, 287, 1011, 1011, 286,
+ 286, 1011, 286, 286, 287, 1011, 286, 912, 287, 286,
+ 914, 1011, 287, 287, 913, 286, 286, 287, 286, 286,
+ 286, 287, 286, 286, 241, 286, 241, 241, 1011, 1011,
+
+ 915, 287, 287, 241, 1011, 241, 241, 241, 287, 241,
+ 241, 241, 1011, 241, 241, 1011, 1011, 287, 287, 1011,
+ 916, 917, 287, 1011, 287, 241, 242, 241, 241, 241,
+ 1011, 241, 241, 938, 918, 242, 1011, 1011, 241, 242,
+ 241, 241, 241, 242, 241, 241, 241, 939, 241, 241,
+ 241, 1011, 241, 241, 1011, 1011, 241, 242, 241, 241,
+ 940, 242, 241, 1011, 241, 241, 241, 1011, 241, 241,
+ 242, 941, 942, 241, 242, 241, 241, 241, 242, 241,
+ 241, 1011, 242, 943, 945, 944, 241, 945, 242, 241,
+ 286, 241, 241, 286, 242, 1011, 286, 286, 242, 286,
+
+ 286, 286, 1011, 286, 286, 242, 286, 286, 286, 242,
+ 286, 286, 286, 1011, 286, 286, 242, 286, 1011, 1011,
+ 1011, 242, 287, 948, 947, 949, 1011, 286, 287, 287,
+ 286, 946, 1011, 287, 1011, 287, 1011, 950, 286, 287,
+ 287, 286, 286, 1011, 287, 286, 287, 286, 286, 1011,
+ 286, 286, 952, 951, 286, 1011, 1011, 286, 953, 287,
+ 955, 286, 954, 955, 286, 241, 1011, 241, 241, 241,
+ 287, 241, 241, 286, 287, 970, 286, 1011, 1011, 287,
+ 287, 1011, 1011, 977, 971, 241, 287, 241, 241, 1011,
+ 1011, 1011, 287, 287, 1011, 1011, 957, 242, 1011, 1011,
+
+ 241, 242, 241, 241, 1011, 287, 241, 956, 241, 241,
+ 972, 241, 286, 241, 241, 286, 241, 242, 241, 241,
+ 945, 1011, 241, 945, 241, 1011, 241, 241, 975, 1011,
+ 241, 975, 242, 1011, 286, 1011, 286, 286, 242, 286,
+ 1011, 1011, 286, 242, 287, 286, 979, 1011, 242, 978,
+ 973, 286, 242, 1011, 286, 286, 242, 1011, 286, 955,
+ 242, 286, 955, 1011, 286, 1011, 287, 946, 287, 982,
+ 1011, 974, 982, 286, 287, 976, 286, 241, 1011, 241,
+ 241, 1011, 241, 287, 241, 241, 1011, 287, 1011, 980,
+ 1011, 287, 989, 287, 241, 286, 241, 241, 286, 1011,
+
+ 241, 287, 241, 241, 286, 287, 956, 286, 981, 242,
+ 241, 1011, 241, 241, 242, 975, 983, 241, 975, 241,
+ 286, 241, 241, 286, 1011, 286, 242, 287, 286, 1011,
+ 992, 982, 242, 1011, 982, 990, 287, 286, 1011, 993,
+ 286, 241, 242, 241, 241, 286, 1011, 242, 286, 1011,
+ 1011, 242, 287, 241, 1011, 241, 241, 287, 241, 1011,
+ 241, 241, 976, 287, 286, 286, 991, 286, 286, 287,
+ 1011, 1011, 241, 242, 241, 241, 286, 287, 983, 286,
+ 241, 1011, 241, 241, 994, 242, 286, 1011, 1011, 286,
+ 242, 1011, 286, 1011, 997, 286, 287, 287, 1011, 241,
+
+ 286, 241, 241, 286, 242, 998, 1011, 1011, 287, 1009,
+ 1010, 241, 242, 241, 241, 1011, 1001, 1005, 287, 1011,
+ 1002, 1011, 1011, 1006, 287, 1011, 1011, 1011, 1011, 1011,
+ 1011, 242, 287, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 242, 52, 52, 52, 52, 52, 52,
+ 57, 57, 57, 57, 57, 57, 64, 64, 64, 64,
+ 64, 64, 69, 69, 69, 69, 69, 69, 171, 171,
+ 171, 171, 171, 171, 209, 209, 1011, 209, 209, 209,
+ 219, 219, 219, 219, 219, 219, 222, 1011, 1011, 1011,
+ 222, 222, 224, 224, 224, 224, 224, 224, 230, 230,
+
+ 1011, 1011, 230, 230, 236, 236, 236, 236, 236, 236,
+ 240, 240, 1011, 240, 240, 240, 274, 274, 1011, 274,
+ 274, 274, 285, 285, 1011, 1011, 1011, 285, 320, 320,
+ 1011, 320, 320, 320, 371, 371, 1011, 1011, 1011, 371,
+ 17, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011
} ;
-static yyconst flex_int16_t yy_chk[3294] =
+static yyconst flex_int16_t yy_chk[3392] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 7, 7, 2, 2, 3, 3, 3, 3, 989,
+ 2, 7, 7, 2, 2, 3, 3, 3, 3, 1027,
2, 4, 4, 4, 4, 4, 5, 5, 6, 6,
8, 8, 19, 2, 28, 19, 4, 15, 15, 15,
15, 28, 39, 32, 15, 34, 32, 46, 35, 2,
- 32, 2, 49, 2, 39, 969, 2, 2, 50, 34,
+ 32, 2, 49, 2, 39, 1007, 2, 2, 50, 34,
50, 46, 67, 177, 4, 35, 177, 67, 5, 15,
6, 200, 49, 5, 200, 6, 9, 9, 9, 9,
@@ -1156,356 +1179,367 @@ static yyconst flex_int16_t yy_chk[3294] =
55, 55, 60, 60, 60, 60, 69, 69, 160, 10,
153, 155, 166, 153, 156, 63, 170, 153, 170, 207,
- 160, 207, 966, 16, 965, 10, 166, 10, 962, 10,
- 961, 156, 10, 10, 11, 11, 11, 11, 11, 11,
+ 160, 207, 1004, 16, 1003, 10, 166, 10, 1000, 10,
+ 999, 156, 10, 10, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 12, 169, 214, 12, 12, 72,
107, 72, 72, 107, 12, 184, 73, 73, 73, 73,
- 163, 163, 163, 163, 188, 169, 214, 12, 958, 184,
+ 163, 163, 163, 163, 188, 169, 214, 12, 996, 184,
210, 210, 221, 221, 221, 226, 226, 226, 188, 233,
- 957, 72, 107, 12, 233, 12, 359, 12, 73, 359,
+ 995, 72, 107, 12, 233, 12, 359, 12, 73, 359,
12, 12, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 14, 236, 236, 14, 14, 75, 75, 75,
- 75, 951, 14, 950, 76, 111, 76, 76, 111, 77,
+ 75, 987, 14, 985, 76, 111, 76, 76, 111, 77,
115, 77, 77, 115, 78, 14, 78, 78, 77, 79,
- 343, 79, 79, 80, 229, 80, 80, 939, 79, 75,
+ 343, 79, 79, 80, 229, 80, 80, 984, 79, 75,
- 936, 14, 933, 14, 343, 14, 76, 111, 14, 14,
+ 969, 14, 966, 14, 343, 14, 76, 111, 14, 14,
43, 77, 115, 43, 43, 81, 78, 81, 81, 368,
- 43, 79, 229, 112, 932, 80, 112, 82, 347, 82,
- 82, 81, 112, 83, 914, 83, 83, 912, 84, 368,
- 84, 84, 347, 364, 364, 82, 908, 81, 83, 43,
- 907, 43, 82, 905, 904, 112, 43, 43, 903, 82,
- 84, 85, 902, 85, 85, 83, 86, 901, 86, 86,
- 84, 87, 870, 87, 87, 88, 869, 88, 88, 867,
- 866, 89, 86, 89, 89, 86, 88, 87, 864, 86,
- 85, 863, 89, 85, 90, 858, 90, 90, 86, 854,
-
- 88, 853, 91, 87, 91, 91, 852, 88, 92, 89,
- 92, 92, 93, 89, 93, 93, 94, 851, 94, 94,
+ 43, 79, 229, 112, 964, 80, 112, 82, 347, 82,
+ 82, 81, 112, 83, 542, 83, 83, 643, 84, 368,
+ 84, 84, 347, 364, 364, 82, 658, 81, 83, 43,
+ 542, 43, 82, 643, 961, 112, 43, 43, 960, 82,
+ 84, 85, 658, 85, 85, 83, 86, 959, 86, 86,
+ 84, 87, 752, 87, 87, 88, 958, 88, 88, 936,
+ 934, 89, 86, 89, 89, 86, 88, 87, 752, 86,
+ 85, 931, 89, 85, 90, 929, 90, 90, 86, 928,
+
+ 88, 927, 91, 87, 91, 91, 925, 88, 92, 89,
+ 92, 92, 93, 89, 93, 93, 94, 924, 94, 94,
95, 90, 95, 95, 91, 408, 90, 94, 408, 97,
93, 97, 97, 92, 91, 95, 96, 96, 96, 96,
- 92, 850, 93, 99, 93, 99, 99, 100, 94, 100,
- 100, 849, 95, 98, 98, 98, 98, 102, 848, 102,
- 102, 97, 847, 101, 97, 101, 101, 103, 96, 103,
- 103, 846, 408, 516, 101, 99, 516, 845, 104, 100,
- 104, 104, 844, 843, 105, 98, 105, 105, 101, 102,
- 106, 114, 106, 106, 114, 101, 842, 841, 840, 103,
-
- 114, 104, 102, 108, 108, 108, 108, 791, 789, 103,
+ 92, 923, 93, 99, 93, 99, 99, 100, 94, 100,
+ 100, 922, 95, 98, 98, 98, 98, 102, 921, 102,
+ 102, 97, 920, 101, 97, 101, 101, 103, 96, 103,
+ 103, 919, 408, 516, 101, 99, 516, 884, 104, 100,
+ 104, 104, 883, 881, 105, 98, 105, 105, 101, 102,
+ 106, 114, 106, 106, 114, 101, 880, 878, 877, 103,
+
+ 114, 104, 102, 108, 108, 108, 108, 876, 871, 103,
104, 110, 110, 110, 110, 116, 105, 105, 116, 105,
516, 104, 106, 114, 117, 118, 119, 117, 118, 119,
- 120, 116, 788, 120, 787, 108, 122, 106, 125, 122,
- 118, 125, 117, 110, 786, 785, 783, 116, 119, 117,
- 121, 127, 122, 121, 127, 782, 117, 118, 119, 120,
- 123, 124, 120, 123, 124, 125, 121, 780, 122, 121,
- 125, 123, 124, 121, 126, 129, 127, 126, 129, 779,
- 778, 128, 121, 127, 128, 123, 129, 130, 132, 124,
- 130, 132, 123, 124, 777, 772, 126, 769, 134, 128,
-
- 134, 134, 130, 768, 767, 134, 126, 129, 766, 135,
- 765, 128, 135, 128, 131, 131, 131, 131, 136, 130,
- 132, 136, 764, 132, 133, 133, 133, 133, 137, 136,
- 134, 137, 138, 763, 139, 138, 140, 139, 762, 140,
- 761, 135, 551, 136, 141, 551, 131, 141, 760, 759,
- 136, 142, 142, 142, 142, 758, 133, 139, 171, 757,
- 137, 171, 756, 755, 138, 754, 139, 555, 140, 140,
- 555, 140, 753, 137, 138, 752, 141, 139, 144, 144,
- 144, 144, 751, 142, 165, 165, 165, 165, 750, 551,
+ 120, 116, 870, 120, 866, 108, 122, 106, 125, 122,
+ 118, 125, 117, 110, 865, 864, 863, 116, 119, 117,
+ 121, 127, 122, 121, 127, 862, 117, 118, 119, 120,
+ 123, 124, 120, 123, 124, 125, 121, 861, 122, 121,
+ 125, 123, 124, 121, 126, 129, 127, 126, 129, 860,
+ 859, 128, 121, 127, 128, 123, 129, 130, 132, 124,
+ 130, 132, 123, 124, 858, 857, 126, 856, 134, 128,
+
+ 134, 134, 130, 855, 854, 134, 126, 129, 853, 135,
+ 852, 128, 135, 128, 131, 131, 131, 131, 136, 130,
+ 132, 136, 851, 132, 133, 133, 133, 133, 137, 136,
+ 134, 137, 138, 850, 139, 138, 140, 139, 797, 140,
+ 795, 135, 551, 136, 141, 551, 131, 141, 794, 793,
+ 136, 142, 142, 142, 142, 792, 133, 139, 171, 791,
+ 137, 171, 789, 788, 138, 787, 139, 555, 140, 140,
+ 555, 140, 785, 137, 138, 784, 141, 139, 144, 144,
+ 144, 144, 783, 142, 165, 165, 165, 165, 782, 551,
171, 141, 172, 172, 172, 172, 174, 174, 174, 174,
- 176, 176, 176, 176, 235, 235, 235, 235, 749, 240,
- 144, 240, 240, 748, 555, 241, 165, 241, 241, 242,
- 242, 242, 242, 747, 172, 746, 285, 745, 174, 285,
- 744, 683, 176, 243, 243, 243, 243, 245, 245, 245,
+ 176, 176, 176, 176, 235, 235, 235, 235, 777, 240,
+ 144, 240, 240, 776, 555, 241, 165, 241, 241, 242,
+ 242, 242, 242, 773, 172, 772, 285, 771, 174, 285,
+ 770, 769, 176, 243, 243, 243, 243, 245, 245, 245,
245, 240, 246, 246, 246, 246, 248, 241, 248, 248,
- 682, 242, 235, 680, 249, 248, 249, 249, 285, 250,
- 679, 250, 250, 677, 252, 243, 252, 252, 676, 245,
+ 768, 242, 235, 767, 249, 248, 249, 249, 285, 250,
+ 766, 250, 250, 765, 252, 243, 252, 252, 764, 245,
250, 251, 286, 251, 251, 286, 249, 253, 248, 253,
- 253, 675, 254, 673, 254, 254, 249, 672, 253, 671,
- 252, 250, 255, 251, 255, 255, 252, 254, 256, 670,
-
- 256, 256, 253, 251, 286, 669, 668, 255, 257, 253,
- 257, 257, 665, 258, 254, 258, 258, 664, 663, 257,
- 259, 662, 259, 259, 255, 661, 260, 256, 260, 260,
- 256, 660, 658, 257, 261, 258, 261, 261, 657, 262,
- 257, 262, 262, 656, 655, 258, 263, 259, 263, 263,
- 260, 264, 259, 264, 264, 654, 653, 261, 260, 651,
- 650, 265, 264, 265, 265, 263, 261, 649, 648, 262,
- 266, 262, 266, 266, 265, 647, 646, 267, 263, 267,
- 267, 645, 268, 264, 268, 268, 644, 643, 269, 267,
- 269, 269, 642, 265, 270, 270, 270, 270, 641, 268,
-
- 266, 272, 266, 272, 272, 640, 639, 269, 638, 267,
- 269, 637, 636, 274, 268, 274, 274, 635, 634, 275,
- 269, 275, 275, 633, 632, 631, 270, 276, 276, 276,
- 276, 630, 278, 272, 278, 278, 277, 272, 277, 277,
- 279, 629, 279, 279, 280, 274, 280, 280, 628, 627,
+ 253, 763, 254, 762, 254, 254, 249, 761, 253, 760,
+ 252, 250, 255, 251, 255, 255, 252, 254, 256, 759,
+
+ 256, 256, 253, 251, 286, 758, 757, 255, 257, 253,
+ 257, 257, 756, 258, 254, 258, 258, 755, 754, 257,
+ 259, 753, 259, 259, 255, 751, 260, 256, 260, 260,
+ 256, 750, 749, 257, 261, 258, 261, 261, 748, 262,
+ 257, 262, 262, 747, 684, 258, 263, 259, 263, 263,
+ 260, 264, 259, 264, 264, 683, 681, 261, 260, 680,
+ 678, 265, 264, 265, 265, 263, 261, 677, 676, 262,
+ 266, 262, 266, 266, 265, 674, 673, 267, 263, 267,
+ 267, 672, 268, 264, 268, 268, 671, 670, 269, 267,
+ 269, 269, 669, 265, 270, 270, 270, 270, 668, 268,
+
+ 266, 272, 266, 272, 272, 665, 664, 269, 663, 267,
+ 269, 662, 661, 274, 268, 274, 274, 660, 657, 275,
+ 269, 275, 275, 656, 655, 654, 270, 276, 276, 276,
+ 276, 653, 278, 272, 278, 278, 277, 272, 277, 277,
+ 279, 651, 279, 279, 280, 274, 280, 280, 650, 649,
281, 275, 281, 281, 283, 280, 283, 283, 282, 276,
- 282, 282, 277, 277, 278, 278, 626, 284, 277, 284,
- 284, 625, 279, 281, 556, 279, 280, 287, 287, 287,
- 287, 554, 281, 553, 552, 293, 283, 548, 293, 547,
- 282, 546, 294, 281, 293, 294, 545, 282, 283, 284,
+ 282, 282, 277, 277, 278, 278, 648, 284, 277, 284,
+ 284, 647, 279, 281, 646, 279, 280, 287, 287, 287,
+ 287, 645, 281, 644, 642, 293, 283, 641, 293, 640,
+ 282, 639, 294, 281, 293, 294, 638, 282, 283, 284,
- 288, 288, 288, 288, 290, 290, 290, 290, 544, 287,
+ 288, 288, 288, 288, 290, 290, 290, 290, 637, 287,
291, 291, 291, 291, 294, 295, 296, 293, 295, 296,
- 297, 543, 299, 297, 294, 299, 295, 300, 298, 542,
- 300, 298, 288, 541, 540, 539, 290, 299, 296, 298,
- 301, 303, 300, 301, 303, 538, 297, 295, 296, 537,
- 536, 535, 297, 298, 299, 302, 534, 533, 302, 300,
+ 297, 636, 299, 297, 294, 299, 295, 300, 298, 635,
+ 300, 298, 288, 634, 633, 632, 290, 299, 296, 298,
+ 301, 303, 300, 301, 303, 631, 297, 295, 296, 630,
+ 629, 628, 297, 298, 299, 302, 627, 626, 302, 300,
298, 304, 305, 303, 304, 305, 302, 306, 307, 301,
- 306, 307, 301, 303, 309, 532, 308, 309, 310, 308,
- 302, 310, 531, 530, 529, 309, 305, 302, 304, 311,
- 306, 310, 311, 304, 305, 308, 528, 527, 307, 306,
-
- 307, 312, 526, 525, 312, 524, 309, 520, 308, 313,
- 310, 519, 313, 312, 318, 314, 518, 318, 314, 311,
- 517, 311, 315, 315, 315, 315, 313, 317, 317, 317,
- 317, 514, 324, 312, 314, 324, 320, 314, 320, 320,
- 513, 313, 321, 320, 321, 321, 318, 314, 325, 321,
- 318, 325, 512, 511, 315, 322, 322, 322, 322, 510,
- 509, 508, 322, 323, 324, 324, 323, 326, 320, 327,
- 326, 507, 327, 506, 321, 505, 328, 504, 326, 328,
- 325, 329, 330, 325, 329, 330, 503, 322, 502, 323,
- 323, 501, 327, 500, 335, 323, 335, 335, 499, 326,
-
- 498, 327, 331, 331, 331, 331, 371, 372, 328, 371,
- 372, 497, 327, 329, 330, 328, 333, 333, 333, 333,
- 334, 334, 334, 334, 496, 329, 335, 360, 360, 360,
- 360, 495, 494, 378, 331, 378, 378, 493, 371, 372,
+ 306, 307, 301, 303, 309, 625, 308, 309, 310, 308,
+ 302, 310, 556, 554, 553, 309, 305, 302, 304, 311,
+ 306, 310, 311, 304, 305, 308, 552, 548, 307, 306,
+
+ 307, 312, 547, 546, 312, 545, 309, 544, 308, 313,
+ 310, 543, 313, 312, 318, 314, 541, 318, 314, 311,
+ 540, 311, 315, 315, 315, 315, 313, 317, 317, 317,
+ 317, 539, 324, 312, 314, 324, 320, 314, 320, 320,
+ 538, 313, 321, 320, 321, 321, 318, 314, 325, 321,
+ 318, 325, 537, 536, 315, 322, 322, 322, 322, 535,
+ 534, 533, 322, 323, 324, 324, 323, 326, 320, 327,
+ 326, 532, 327, 531, 321, 530, 328, 529, 326, 328,
+ 325, 329, 330, 325, 329, 330, 528, 322, 527, 323,
+ 323, 526, 327, 525, 335, 323, 335, 335, 524, 326,
+
+ 520, 327, 331, 331, 331, 331, 371, 372, 328, 371,
+ 372, 519, 327, 329, 330, 328, 333, 333, 333, 333,
+ 334, 334, 334, 334, 518, 329, 335, 360, 360, 360,
+ 360, 517, 514, 378, 331, 378, 378, 513, 371, 372,
373, 373, 373, 373, 374, 374, 374, 374, 333, 376,
376, 376, 376, 377, 377, 377, 377, 379, 379, 379,
379, 381, 381, 381, 381, 378, 407, 407, 407, 407,
- 492, 491, 373, 490, 413, 412, 374, 414, 414, 414,
- 414, 376, 415, 415, 415, 415, 411, 410, 409, 379,
- 416, 416, 416, 416, 418, 418, 418, 418, 406, 419,
-
- 419, 419, 419, 421, 421, 421, 421, 422, 405, 422,
- 422, 423, 404, 423, 423, 403, 402, 424, 422, 424,
- 424, 425, 401, 425, 425, 414, 456, 456, 456, 456,
- 415, 419, 400, 399, 426, 423, 426, 426, 416, 422,
- 398, 397, 424, 423, 427, 396, 427, 427, 395, 424,
- 425, 426, 428, 425, 428, 428, 429, 394, 429, 429,
- 472, 393, 430, 472, 430, 430, 426, 429, 431, 427,
- 431, 431, 472, 392, 391, 428, 427, 430, 432, 390,
- 432, 432, 389, 434, 428, 434, 434, 433, 429, 433,
- 433, 388, 472, 387, 430, 386, 431, 385, 433, 384,
-
- 431, 383, 432, 435, 434, 435, 435, 382, 370, 436,
- 432, 436, 436, 369, 437, 434, 437, 437, 438, 433,
- 438, 438, 367, 366, 436, 439, 437, 439, 439, 652,
- 365, 435, 652, 438, 440, 435, 440, 440, 439, 362,
- 441, 436, 441, 441, 358, 442, 437, 442, 442, 459,
- 438, 443, 459, 443, 443, 440, 441, 439, 444, 357,
- 444, 444, 356, 355, 354, 445, 440, 445, 445, 353,
- 352, 351, 441, 442, 459, 444, 652, 442, 445, 443,
- 350, 459, 446, 443, 446, 446, 447, 447, 447, 447,
- 444, 448, 448, 448, 448, 349, 449, 445, 449, 449,
-
- 450, 348, 450, 450, 451, 346, 451, 451, 452, 458,
- 452, 452, 458, 681, 446, 446, 681, 453, 447, 453,
- 453, 345, 344, 448, 454, 454, 454, 454, 449, 342,
- 451, 457, 450, 458, 457, 460, 451, 341, 460, 450,
+ 512, 511, 373, 510, 509, 508, 374, 414, 414, 414,
+ 414, 376, 415, 415, 415, 415, 507, 506, 505, 379,
+ 416, 416, 416, 416, 418, 418, 418, 418, 504, 419,
+
+ 419, 419, 419, 421, 421, 421, 421, 422, 503, 422,
+ 422, 423, 502, 423, 423, 501, 500, 424, 422, 424,
+ 424, 425, 499, 425, 425, 414, 456, 456, 456, 456,
+ 415, 419, 498, 497, 426, 423, 426, 426, 416, 422,
+ 496, 495, 424, 423, 427, 494, 427, 427, 493, 424,
+ 425, 426, 428, 425, 428, 428, 429, 492, 429, 429,
+ 472, 491, 430, 472, 430, 430, 426, 429, 431, 427,
+ 431, 431, 472, 490, 413, 428, 427, 430, 432, 412,
+ 432, 432, 411, 434, 428, 434, 434, 433, 429, 433,
+ 433, 410, 472, 409, 430, 406, 431, 405, 433, 404,
+
+ 431, 403, 432, 435, 434, 435, 435, 402, 401, 436,
+ 432, 436, 436, 400, 437, 434, 437, 437, 438, 433,
+ 438, 438, 399, 398, 436, 439, 437, 439, 439, 652,
+ 397, 435, 652, 438, 440, 435, 440, 440, 439, 396,
+ 441, 436, 441, 441, 395, 442, 437, 442, 442, 459,
+ 438, 443, 459, 443, 443, 440, 441, 439, 444, 394,
+ 444, 444, 393, 392, 391, 445, 440, 445, 445, 390,
+ 389, 388, 441, 442, 459, 444, 652, 442, 445, 443,
+ 387, 459, 446, 443, 446, 446, 447, 447, 447, 447,
+ 444, 448, 448, 448, 448, 386, 449, 445, 449, 449,
+
+ 450, 385, 450, 450, 451, 384, 451, 451, 452, 458,
+ 452, 452, 458, 682, 446, 446, 682, 453, 447, 453,
+ 453, 383, 382, 448, 454, 454, 454, 454, 449, 370,
+ 451, 457, 450, 458, 457, 460, 451, 369, 460, 450,
452, 458, 457, 449, 461, 462, 452, 461, 462, 453,
- 463, 464, 340, 463, 464, 467, 454, 453, 467, 339,
- 681, 461, 464, 457, 460, 465, 466, 460, 465, 466,
- 462, 469, 338, 463, 469, 468, 461, 462, 468, 467,
- 465, 470, 463, 464, 470, 471, 468, 467, 471, 238,
- 473, 234, 469, 473, 466, 231, 230, 465, 466, 474,
-
- 471, 480, 474, 469, 480, 473, 228, 468, 475, 470,
- 227, 475, 474, 470, 480, 477, 476, 471, 477, 476,
- 479, 478, 473, 479, 478, 481, 225, 220, 481, 475,
- 216, 474, 476, 480, 215, 868, 213, 479, 868, 212,
- 475, 211, 906, 477, 208, 906, 206, 477, 476, 478,
- 205, 485, 479, 478, 485, 201, 199, 481, 481, 482,
- 482, 482, 482, 198, 197, 196, 482, 483, 483, 483,
+ 463, 464, 367, 463, 464, 467, 454, 453, 467, 366,
+ 682, 461, 464, 457, 460, 465, 466, 460, 465, 466,
+ 462, 469, 365, 463, 469, 468, 461, 462, 468, 467,
+ 465, 470, 463, 464, 470, 471, 468, 467, 471, 362,
+ 473, 358, 469, 473, 466, 357, 356, 465, 466, 474,
+
+ 471, 480, 474, 469, 480, 473, 355, 468, 475, 470,
+ 354, 475, 474, 470, 480, 477, 476, 471, 477, 476,
+ 479, 478, 473, 479, 478, 481, 353, 352, 481, 475,
+ 351, 474, 476, 480, 350, 882, 349, 479, 882, 348,
+ 475, 346, 926, 477, 345, 926, 344, 477, 476, 478,
+ 342, 485, 479, 478, 485, 341, 340, 481, 481, 482,
+ 482, 482, 482, 339, 338, 238, 482, 483, 483, 483,
483, 484, 484, 484, 484, 486, 487, 488, 486, 487,
- 488, 489, 868, 485, 489, 515, 515, 515, 515, 906,
- 195, 482, 521, 521, 521, 521, 194, 193, 485, 192,
+ 488, 489, 882, 485, 489, 515, 515, 515, 515, 926,
+ 234, 482, 521, 521, 521, 521, 231, 230, 485, 228,
- 191, 190, 487, 484, 189, 187, 186, 486, 487, 488,
- 185, 183, 182, 489, 486, 488, 523, 523, 523, 523,
+ 227, 225, 487, 484, 220, 216, 215, 486, 487, 488,
+ 213, 212, 211, 489, 486, 488, 523, 523, 523, 523,
565, 489, 565, 565, 521, 549, 549, 549, 549, 557,
557, 557, 557, 559, 559, 559, 559, 560, 560, 560,
- 560, 562, 562, 562, 562, 181, 563, 180, 563, 563,
- 565, 564, 565, 564, 564, 566, 179, 566, 566, 568,
- 168, 568, 568, 563, 564, 567, 167, 567, 567, 569,
- 164, 569, 569, 566, 162, 161, 159, 557, 563, 569,
- 158, 596, 157, 564, 596, 560, 568, 566, 154, 152,
- 151, 568, 570, 567, 570, 570, 571, 567, 571, 571,
-
- 150, 569, 572, 148, 572, 572, 146, 573, 145, 573,
- 573, 596, 574, 596, 574, 574, 71, 913, 68, 571,
- 913, 570, 915, 572, 570, 915, 66, 64, 571, 574,
- 575, 62, 575, 575, 572, 573, 59, 54, 576, 573,
- 576, 576, 51, 48, 574, 575, 47, 577, 576, 577,
- 577, 42, 578, 41, 578, 578, 934, 577, 579, 934,
- 579, 579, 575, 580, 913, 580, 580, 40, 595, 915,
- 576, 595, 581, 598, 581, 581, 598, 38, 580, 577,
- 578, 595, 579, 37, 578, 581, 582, 36, 582, 582,
- 579, 583, 33, 583, 583, 580, 584, 31, 584, 584,
-
- 595, 598, 582, 934, 581, 598, 584, 585, 30, 585,
- 585, 586, 29, 586, 586, 27, 25, 23, 582, 587,
+ 560, 562, 562, 562, 562, 208, 563, 206, 563, 563,
+ 565, 564, 565, 564, 564, 566, 205, 566, 566, 568,
+ 201, 568, 568, 563, 564, 567, 199, 567, 567, 569,
+ 198, 569, 569, 566, 197, 196, 195, 557, 563, 569,
+ 194, 596, 193, 564, 596, 560, 568, 566, 192, 191,
+ 190, 568, 570, 567, 570, 570, 571, 567, 571, 571,
+
+ 189, 569, 572, 187, 572, 572, 186, 573, 185, 573,
+ 573, 596, 574, 596, 574, 574, 183, 935, 182, 571,
+ 935, 570, 937, 572, 570, 937, 181, 180, 571, 574,
+ 575, 179, 575, 575, 572, 573, 168, 167, 576, 573,
+ 576, 576, 164, 162, 574, 575, 161, 577, 576, 577,
+ 577, 159, 578, 158, 578, 578, 962, 577, 579, 962,
+ 579, 579, 575, 580, 935, 580, 580, 157, 595, 937,
+ 576, 595, 581, 600, 581, 581, 600, 154, 580, 577,
+ 578, 595, 579, 600, 578, 581, 582, 152, 582, 582,
+ 579, 583, 151, 583, 583, 580, 584, 150, 584, 584,
+
+ 595, 581, 582, 962, 581, 600, 584, 585, 148, 585,
+ 585, 586, 146, 586, 586, 145, 71, 68, 582, 587,
583, 587, 587, 583, 589, 585, 589, 589, 584, 588,
- 588, 588, 588, 21, 17, 590, 586, 590, 590, 585,
- 0, 0, 591, 586, 591, 591, 592, 597, 592, 592,
- 597, 587, 593, 0, 593, 593, 589, 0, 0, 594,
- 0, 588, 594, 599, 587, 597, 599, 590, 0, 601,
- 0, 589, 601, 0, 591, 0, 594, 0, 592, 597,
- 592, 0, 590, 600, 593, 602, 600, 591, 602, 603,
- 599, 594, 603, 600, 604, 599, 0, 604, 601, 593,
-
- 0, 601, 605, 606, 607, 605, 606, 607, 602, 609,
- 603, 0, 609, 608, 607, 600, 608, 602, 606, 605,
- 0, 603, 604, 608, 610, 611, 604, 610, 611, 612,
- 613, 0, 612, 613, 605, 606, 607, 609, 0, 0,
- 611, 609, 612, 0, 614, 608, 613, 614, 610, 615,
- 616, 618, 615, 616, 618, 617, 610, 611, 617, 615,
- 0, 612, 613, 619, 619, 619, 619, 620, 616, 621,
- 620, 0, 621, 614, 622, 623, 614, 622, 623, 0,
- 617, 615, 616, 618, 0, 624, 938, 617, 624, 938,
- 684, 0, 684, 684, 716, 619, 618, 716, 0, 620,
-
- 0, 621, 686, 0, 686, 686, 622, 623, 685, 623,
- 685, 685, 0, 0, 620, 0, 621, 624, 684, 622,
- 0, 716, 684, 685, 0, 687, 716, 687, 687, 686,
- 0, 0, 624, 938, 686, 687, 688, 0, 688, 688,
- 685, 689, 0, 689, 689, 690, 688, 690, 690, 691,
- 0, 691, 691, 692, 689, 692, 692, 687, 697, 691,
- 697, 697, 693, 692, 693, 693, 0, 695, 688, 695,
- 695, 719, 693, 689, 719, 0, 694, 690, 694, 694,
- 696, 691, 696, 696, 719, 692, 694, 0, 0, 698,
- 697, 698, 698, 0, 693, 695, 0, 0, 699, 695,
-
- 699, 699, 700, 719, 700, 700, 0, 696, 694, 0,
- 0, 714, 696, 701, 714, 701, 701, 702, 0, 702,
- 702, 698, 703, 701, 703, 703, 704, 699, 704, 704,
- 699, 700, 0, 0, 700, 705, 704, 705, 705, 714,
- 0, 0, 702, 714, 703, 701, 0, 0, 706, 702,
- 706, 706, 0, 707, 703, 707, 707, 708, 704, 708,
- 708, 709, 0, 709, 709, 0, 710, 705, 710, 710,
- 711, 0, 711, 711, 0, 715, 707, 706, 715, 712,
- 706, 712, 712, 0, 713, 707, 713, 713, 0, 708,
- 715, 717, 720, 709, 717, 720, 708, 0, 710, 0,
-
- 710, 717, 711, 711, 0, 718, 0, 715, 718, 721,
- 722, 712, 721, 722, 727, 718, 713, 727, 723, 721,
- 722, 723, 724, 717, 720, 724, 712, 725, 723, 0,
- 725, 713, 724, 726, 0, 728, 726, 718, 728, 0,
- 729, 721, 722, 729, 730, 0, 727, 730, 731, 732,
- 723, 731, 732, 733, 724, 725, 733, 0, 731, 725,
- 726, 734, 0, 735, 734, 726, 735, 728, 0, 729,
- 0, 734, 729, 730, 732, 733, 730, 0, 0, 736,
- 731, 732, 736, 737, 738, 733, 737, 738, 739, 741,
- 0, 739, 741, 734, 740, 735, 0, 740, 742, 743,
-
- 0, 742, 743, 0, 0, 0, 737, 792, 736, 792,
- 792, 736, 0, 0, 0, 737, 738, 792, 0, 0,
- 739, 741, 741, 738, 819, 0, 740, 819, 740, 0,
- 742, 743, 793, 0, 793, 793, 0, 0, 794, 792,
- 794, 794, 793, 0, 0, 742, 743, 795, 794, 795,
- 795, 796, 0, 796, 796, 797, 819, 797, 797, 798,
- 0, 798, 798, 799, 793, 799, 799, 0, 0, 800,
- 794, 800, 800, 801, 0, 801, 801, 0, 0, 795,
- 797, 0, 802, 796, 802, 802, 803, 797, 803, 803,
- 820, 798, 802, 820, 0, 799, 803, 804, 0, 804,
-
- 804, 800, 0, 0, 0, 801, 805, 804, 805, 805,
- 806, 0, 806, 806, 802, 0, 805, 807, 803, 807,
- 807, 808, 820, 808, 808, 809, 0, 809, 809, 804,
- 810, 0, 810, 810, 0, 0, 808, 0, 805, 807,
- 810, 811, 806, 811, 811, 812, 0, 812, 812, 807,
- 0, 0, 813, 808, 813, 813, 811, 809, 814, 0,
- 814, 814, 810, 815, 816, 815, 815, 816, 817, 818,
- 0, 817, 818, 811, 816, 0, 0, 812, 817, 818,
- 821, 0, 822, 821, 813, 822, 0, 813, 823, 812,
- 814, 823, 0, 0, 824, 815, 816, 824, 0, 0,
-
- 817, 818, 814, 825, 0, 821, 825, 826, 827, 0,
- 826, 827, 821, 828, 822, 0, 828, 826, 827, 829,
- 823, 830, 829, 828, 830, 831, 824, 832, 831, 829,
- 832, 833, 0, 834, 833, 825, 834, 0, 0, 826,
- 827, 835, 832, 834, 835, 828, 836, 831, 0, 836,
- 0, 829, 837, 830, 0, 837, 835, 831, 0, 832,
- 0, 838, 0, 833, 838, 834, 839, 0, 871, 839,
- 871, 871, 872, 835, 872, 872, 0, 873, 836, 873,
- 873, 0, 0, 0, 837, 0, 874, 837, 874, 874,
- 836, 0, 875, 838, 875, 875, 0, 0, 839, 876,
-
- 871, 876, 876, 0, 872, 838, 0, 0, 874, 873,
- 877, 0, 877, 877, 878, 0, 878, 878, 874, 879,
- 0, 879, 879, 880, 875, 880, 880, 886, 0, 879,
- 886, 876, 881, 880, 881, 881, 0, 882, 0, 882,
- 882, 883, 877, 883, 883, 887, 878, 882, 887, 883,
- 884, 879, 884, 884, 885, 880, 885, 885, 888, 886,
- 890, 888, 889, 890, 881, 889, 0, 891, 892, 882,
- 891, 892, 893, 883, 0, 893, 896, 887, 894, 896,
- 0, 894, 884, 0, 889, 0, 885, 0, 894, 885,
- 888, 0, 890, 895, 889, 897, 895, 884, 897, 891,
-
- 892, 0, 0, 895, 893, 897, 898, 0, 896, 898,
- 894, 0, 899, 900, 898, 899, 900, 0, 916, 0,
- 916, 916, 0, 0, 0, 895, 0, 897, 916, 917,
- 0, 917, 917, 918, 0, 918, 918, 919, 898, 919,
- 919, 0, 0, 925, 899, 900, 925, 0, 900, 920,
- 916, 920, 920, 921, 926, 921, 921, 926, 0, 899,
- 922, 917, 922, 922, 923, 918, 923, 923, 0, 919,
- 924, 927, 0, 924, 927, 925, 928, 0, 0, 928,
- 924, 920, 0, 920, 929, 921, 926, 929, 930, 0,
- 931, 930, 922, 931, 0, 940, 923, 940, 940, 0,
-
- 921, 0, 924, 927, 0, 0, 945, 922, 928, 945,
- 928, 923, 941, 0, 941, 941, 929, 0, 0, 0,
- 930, 942, 931, 942, 942, 0, 943, 940, 943, 943,
- 944, 929, 944, 944, 0, 930, 946, 931, 945, 946,
- 947, 0, 948, 947, 941, 948, 949, 941, 954, 949,
- 954, 954, 956, 942, 953, 956, 953, 953, 943, 0,
- 955, 0, 944, 955, 959, 0, 959, 959, 946, 0,
- 0, 946, 947, 943, 948, 0, 0, 944, 949, 960,
- 954, 0, 960, 0, 956, 963, 953, 963, 963, 948,
- 0, 0, 955, 949, 964, 953, 959, 964, 0, 0,
-
- 967, 955, 967, 967, 968, 0, 972, 968, 959, 972,
- 967, 960, 0, 971, 968, 971, 971, 963, 0, 0,
- 0, 0, 963, 960, 0, 0, 964, 0, 0, 0,
- 0, 964, 967, 0, 0, 0, 968, 0, 972, 0,
- 0, 0, 0, 0, 0, 971, 974, 974, 974, 974,
- 974, 974, 975, 975, 975, 975, 975, 975, 976, 976,
- 976, 976, 976, 976, 977, 977, 977, 977, 977, 977,
- 978, 978, 978, 978, 978, 978, 979, 979, 0, 979,
- 979, 979, 980, 980, 980, 980, 980, 980, 981, 0,
- 0, 0, 981, 981, 982, 982, 982, 982, 982, 982,
-
- 983, 983, 0, 0, 983, 983, 984, 984, 984, 984,
- 984, 984, 985, 985, 0, 985, 985, 985, 986, 986,
- 0, 986, 986, 986, 987, 987, 0, 0, 0, 987,
- 988, 988, 0, 988, 988, 988, 990, 990, 0, 0,
- 0, 990, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973
+ 588, 588, 588, 66, 64, 590, 586, 590, 590, 585,
+ 62, 59, 591, 586, 591, 591, 592, 597, 592, 592,
+ 597, 587, 593, 54, 593, 593, 589, 598, 51, 594,
+ 598, 588, 594, 599, 587, 597, 599, 590, 48, 601,
+ 602, 589, 601, 602, 591, 47, 594, 42, 592, 597,
+ 592, 41, 590, 603, 593, 598, 603, 591, 40, 598,
+ 599, 594, 38, 602, 604, 599, 37, 604, 601, 593,
+
+ 605, 601, 602, 605, 603, 606, 607, 609, 606, 607,
+ 609, 608, 36, 33, 608, 603, 607, 605, 31, 30,
+ 606, 608, 604, 29, 610, 611, 604, 610, 611, 27,
+ 613, 612, 605, 613, 612, 609, 25, 606, 607, 609,
+ 611, 23, 614, 608, 612, 614, 613, 616, 610, 615,
+ 616, 617, 615, 21, 617, 618, 610, 611, 618, 615,
+ 612, 620, 613, 612, 620, 616, 619, 619, 619, 619,
+ 621, 614, 17, 621, 614, 622, 617, 623, 622, 616,
+ 623, 615, 624, 617, 0, 624, 686, 618, 686, 686,
+ 0, 0, 718, 620, 685, 718, 685, 685, 619, 0,
+
+ 618, 686, 621, 687, 0, 687, 687, 622, 620, 623,
+ 0, 623, 0, 688, 624, 688, 688, 621, 686, 718,
+ 622, 0, 685, 688, 718, 690, 685, 690, 690, 624,
+ 687, 689, 0, 689, 689, 687, 0, 691, 690, 691,
+ 691, 689, 0, 0, 717, 688, 692, 717, 692, 692,
+ 693, 0, 693, 693, 690, 968, 692, 690, 968, 717,
+ 693, 0, 694, 689, 694, 694, 0, 0, 0, 691,
+ 0, 695, 694, 695, 695, 0, 717, 696, 692, 696,
+ 696, 695, 693, 697, 0, 697, 697, 698, 0, 698,
+ 698, 0, 0, 699, 694, 699, 699, 700, 0, 700,
+
+ 700, 0, 968, 695, 701, 696, 701, 701, 0, 696,
+ 697, 702, 0, 702, 702, 697, 0, 0, 0, 698,
+ 703, 702, 703, 703, 0, 699, 700, 0, 704, 700,
+ 704, 704, 705, 701, 705, 705, 701, 0, 706, 0,
+ 706, 706, 0, 702, 0, 703, 716, 704, 706, 716,
+ 0, 0, 703, 707, 705, 707, 707, 0, 0, 708,
+ 704, 708, 708, 709, 705, 709, 709, 0, 0, 710,
+ 706, 710, 710, 711, 716, 711, 711, 712, 716, 712,
+ 712, 713, 0, 713, 713, 707, 709, 714, 708, 714,
+ 714, 708, 0, 0, 715, 709, 715, 715, 0, 722,
+
+ 719, 710, 722, 719, 721, 711, 0, 721, 710, 712,
+ 719, 712, 720, 713, 713, 720, 0, 721, 723, 714,
+ 724, 723, 720, 724, 728, 0, 715, 728, 723, 0,
+ 724, 722, 719, 721, 714, 725, 721, 726, 725, 0,
+ 726, 715, 0, 727, 720, 725, 727, 726, 0, 0,
+ 723, 728, 724, 0, 729, 730, 728, 729, 730, 731,
+ 732, 0, 731, 732, 0, 734, 0, 725, 734, 726,
+ 733, 727, 0, 733, 735, 727, 736, 735, 0, 736,
+ 733, 738, 739, 0, 738, 739, 729, 730, 731, 732,
+ 734, 731, 732, 735, 0, 0, 740, 734, 736, 740,
+
+ 737, 741, 733, 737, 741, 0, 735, 0, 736, 742,
+ 737, 739, 742, 738, 739, 743, 0, 0, 743, 740,
+ 744, 0, 745, 744, 746, 745, 0, 746, 740, 0,
+ 0, 0, 737, 741, 798, 0, 798, 798, 0, 0,
+ 741, 742, 0, 801, 798, 801, 801, 743, 799, 743,
+ 799, 799, 744, 744, 745, 0, 746, 800, 799, 800,
+ 800, 802, 0, 802, 802, 0, 798, 800, 0, 745,
+ 803, 746, 803, 803, 805, 801, 805, 805, 0, 804,
+ 799, 804, 804, 806, 827, 806, 806, 827, 807, 800,
+ 807, 807, 0, 802, 808, 803, 808, 808, 804, 0,
+
+ 0, 0, 803, 0, 0, 0, 805, 809, 0, 809,
+ 809, 804, 0, 0, 0, 806, 827, 809, 0, 810,
+ 807, 810, 810, 0, 0, 811, 808, 811, 811, 810,
+ 812, 0, 812, 812, 813, 811, 813, 813, 0, 809,
+ 812, 814, 0, 814, 814, 815, 0, 815, 815, 0,
+ 816, 810, 816, 816, 0, 0, 817, 811, 817, 817,
+ 0, 828, 812, 814, 828, 816, 813, 815, 818, 0,
+ 818, 818, 819, 814, 819, 819, 824, 815, 818, 824,
+ 0, 820, 816, 820, 820, 0, 824, 819, 817, 821,
+ 0, 821, 821, 828, 822, 825, 822, 822, 825, 823,
+
+ 818, 823, 823, 829, 819, 825, 829, 826, 824, 831,
+ 826, 830, 831, 820, 830, 832, 833, 826, 832, 833,
+ 834, 821, 0, 834, 821, 820, 822, 825, 829, 0,
+ 830, 823, 0, 839, 835, 829, 839, 835, 822, 826,
+ 0, 831, 840, 830, 835, 840, 836, 832, 833, 836,
+ 837, 838, 834, 837, 838, 841, 836, 0, 841, 843,
+ 837, 838, 843, 0, 840, 839, 835, 0, 0, 842,
+ 844, 0, 842, 844, 840, 0, 846, 841, 836, 846,
+ 844, 0, 837, 838, 842, 845, 847, 841, 845, 847,
+ 848, 843, 849, 848, 885, 849, 885, 885, 0, 0,
+
+ 845, 842, 844, 886, 0, 886, 886, 887, 846, 887,
+ 887, 888, 0, 888, 888, 0, 0, 845, 847, 0,
+ 846, 847, 848, 0, 849, 889, 885, 889, 889, 890,
+ 0, 890, 890, 888, 848, 886, 0, 0, 891, 887,
+ 891, 891, 892, 888, 892, 892, 893, 889, 893, 893,
+ 894, 0, 894, 894, 0, 0, 895, 889, 895, 895,
+ 894, 890, 896, 0, 896, 896, 897, 0, 897, 897,
+ 891, 895, 896, 898, 892, 898, 898, 899, 893, 899,
+ 899, 0, 894, 898, 900, 899, 900, 900, 895, 901,
+ 902, 901, 901, 902, 896, 0, 903, 904, 897, 903,
+
+ 904, 905, 0, 906, 905, 898, 906, 907, 908, 899,
+ 907, 908, 909, 0, 910, 909, 900, 910, 0, 0,
+ 0, 901, 902, 905, 901, 906, 0, 911, 903, 904,
+ 911, 900, 0, 905, 0, 906, 0, 911, 912, 907,
+ 908, 912, 913, 0, 909, 913, 910, 914, 915, 0,
+ 914, 915, 913, 912, 916, 0, 0, 916, 915, 911,
+ 917, 918, 916, 917, 918, 938, 0, 938, 938, 939,
+ 912, 939, 939, 948, 913, 938, 948, 0, 0, 914,
+ 915, 0, 0, 948, 939, 940, 916, 940, 940, 0,
+ 0, 0, 917, 918, 0, 0, 918, 938, 0, 0,
+
+ 941, 939, 941, 941, 0, 948, 942, 917, 942, 942,
+ 941, 943, 950, 943, 943, 950, 944, 940, 944, 944,
+ 945, 0, 945, 945, 946, 0, 946, 946, 947, 0,
+ 947, 947, 941, 0, 949, 0, 951, 949, 942, 951,
+ 0, 0, 952, 943, 950, 952, 951, 0, 944, 949,
+ 944, 953, 945, 0, 953, 954, 946, 0, 954, 955,
+ 947, 956, 955, 0, 956, 0, 949, 945, 951, 957,
+ 0, 946, 957, 977, 952, 947, 977, 970, 0, 970,
+ 970, 0, 971, 953, 971, 971, 0, 954, 0, 954,
+ 0, 955, 971, 956, 972, 979, 972, 972, 979, 0,
+
+ 973, 957, 973, 973, 980, 977, 955, 980, 956, 970,
+ 974, 0, 974, 974, 971, 975, 957, 975, 975, 976,
+ 978, 976, 976, 978, 0, 981, 972, 979, 981, 0,
+ 978, 982, 973, 0, 982, 973, 980, 983, 0, 980,
+ 983, 989, 974, 989, 989, 992, 0, 975, 992, 0,
+ 0, 976, 978, 990, 0, 990, 990, 981, 991, 0,
+ 991, 991, 975, 982, 993, 994, 976, 993, 994, 983,
+ 0, 0, 997, 989, 997, 997, 998, 992, 982, 998,
+ 1001, 0, 1001, 1001, 983, 990, 1002, 0, 0, 1002,
+ 991, 0, 1010, 0, 990, 1010, 993, 994, 0, 1005,
+
+ 1006, 1005, 1005, 1006, 997, 993, 0, 0, 998, 1005,
+ 1006, 1009, 1001, 1009, 1009, 0, 997, 1001, 1002, 0,
+ 998, 0, 0, 1002, 1010, 0, 0, 0, 0, 0,
+ 0, 1005, 1006, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1009, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1013, 1013, 1013, 1013, 1013, 1013, 1014, 1014, 1014, 1014,
+ 1014, 1014, 1015, 1015, 1015, 1015, 1015, 1015, 1016, 1016,
+ 1016, 1016, 1016, 1016, 1017, 1017, 0, 1017, 1017, 1017,
+ 1018, 1018, 1018, 1018, 1018, 1018, 1019, 0, 0, 0,
+ 1019, 1019, 1020, 1020, 1020, 1020, 1020, 1020, 1021, 1021,
+
+ 0, 0, 1021, 1021, 1022, 1022, 1022, 1022, 1022, 1022,
+ 1023, 1023, 0, 1023, 1023, 1023, 1024, 1024, 0, 1024,
+ 1024, 1024, 1025, 1025, 0, 0, 0, 1025, 1026, 1026,
+ 0, 1026, 1026, 1026, 1028, 1028, 0, 0, 0, 1028,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+ 1011
} ;
/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[76] =
+static yyconst flex_int32_t yy_rule_can_match_eol[78] =
{ 0,
0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, };
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, };
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
@@ -1645,7 +1679,7 @@ static void cattext(bool trim_right = false, int strip_trailing = 0)
-#line 1649 "levcomp.lex.cc"
+#line 1683 "levcomp.lex.cc"
#define INITIAL 0
#define MAPDEF 1
@@ -1712,7 +1746,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -1723,7 +1757,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- int n; \
+ size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -1811,7 +1845,7 @@ YY_DECL
#line 133 "levcomp.lpp"
-#line 1815 "levcomp.lex.cc"
+#line 1849 "levcomp.lex.cc"
if ( !(yy_init) )
{
@@ -1865,13 +1899,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 974 )
+ if ( yy_current_state >= 1012 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 973 );
+ while ( yy_current_state != 1011 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -2253,94 +2287,104 @@ YY_RULE_SETUP
case 59:
YY_RULE_SETUP
#line 250 "levcomp.lpp"
-{ CBEGIN(MNAME); return MONS; }
+{ CBEGIN(ARGUMENT); return FLOORTILE; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 251 "levcomp.lpp"
-{ CBEGIN(ITEM_LIST); return ITEM; }
+{ CBEGIN(ARGUMENT); return ROCKTILE; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 252 "levcomp.lpp"
-{ CBEGIN(ARGUMENT); return MARKER; }
+{ CBEGIN(MNAME); return MONS; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 253 "levcomp.lpp"
-{ CBEGIN(ITEM_LIST); return SHUFFLE; }
+{ CBEGIN(ITEM_LIST); return ITEM; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 255 "levcomp.lpp"
-{ CBEGIN(ARGUMENT); return KFEAT; }
+#line 254 "levcomp.lpp"
+{ CBEGIN(ARGUMENT); return MARKER; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 256 "levcomp.lpp"
-{ CBEGIN(ARGUMENT); return KITEM; }
+#line 255 "levcomp.lpp"
+{ CBEGIN(ITEM_LIST); return SHUFFLE; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 257 "levcomp.lpp"
-{ CBEGIN(ARGUMENT); return KMONS; }
+{ CBEGIN(ARGUMENT); return KFEAT; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 258 "levcomp.lpp"
-{ CBEGIN(ARGUMENT); return KMASK; }
+{ CBEGIN(ARGUMENT); return KITEM; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 260 "levcomp.lpp"
-return COMMA;
+#line 259 "levcomp.lpp"
+{ CBEGIN(ARGUMENT); return KMONS; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 262 "levcomp.lpp"
-return COLON;
+#line 260 "levcomp.lpp"
+{ CBEGIN(ARGUMENT); return KMASK; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 264 "levcomp.lpp"
-return PERC;
+#line 262 "levcomp.lpp"
+return COMMA;
YY_BREAK
case 70:
YY_RULE_SETUP
+#line 264 "levcomp.lpp"
+return COLON;
+ YY_BREAK
+case 71:
+YY_RULE_SETUP
#line 266 "levcomp.lpp"
+return PERC;
+ YY_BREAK
+case 72:
+YY_RULE_SETUP
+#line 268 "levcomp.lpp"
{
clean();
yylval.i = atoi(yytext);
return INTEGER;
}
YY_BREAK
-case 71:
+case 73:
YY_RULE_SETUP
-#line 272 "levcomp.lpp"
+#line 274 "levcomp.lpp"
;
YY_BREAK
-case 72:
-/* rule 72 can match eol */
+case 74:
+/* rule 74 can match eol */
YY_RULE_SETUP
-#line 273 "levcomp.lpp"
+#line 275 "levcomp.lpp"
;
YY_BREAK
-case 73:
+case 75:
YY_RULE_SETUP
-#line 274 "levcomp.lpp"
+#line 276 "levcomp.lpp"
;
YY_BREAK
-case 74:
+case 76:
YY_RULE_SETUP
-#line 275 "levcomp.lpp"
+#line 277 "levcomp.lpp"
return CHARACTER;
YY_BREAK
-case 75:
+case 77:
YY_RULE_SETUP
-#line 277 "levcomp.lpp"
+#line 279 "levcomp.lpp"
ECHO;
YY_BREAK
-#line 2344 "levcomp.lex.cc"
+#line 2388 "levcomp.lex.cc"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(MAPDEF):
case YY_STATE_EOF(LUA):
@@ -2579,7 +2623,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), (size_t) num_to_read );
+ (yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -2603,14 +2647,6 @@ static int yy_get_next_buffer (void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
- /* Extend the array by 50%, plus the number we really need. */
- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
- }
-
(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -2641,7 +2677,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 974 )
+ if ( yy_current_state >= 1012 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2669,11 +2705,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 974 )
+ if ( yy_current_state >= 1012 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 973);
+ yy_is_jam = (yy_current_state == 1011);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2767,7 +2803,7 @@ static int yy_get_next_buffer (void)
case EOB_ACT_END_OF_FILE:
{
if ( yywrap( ) )
- return EOF;
+ return 0;
if ( ! (yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
@@ -3033,9 +3069,7 @@ static void yyensure_buffer_stack (void)
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
+
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
@@ -3053,8 +3087,6 @@ static void yyensure_buffer_stack (void)
((yy_buffer_stack),
num_to_alloc * sizeof(struct yy_buffer_state*)
);
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
/* zero only the new slots.*/
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -3099,7 +3131,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
+ * @param str a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
@@ -3356,7 +3388,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 277 "levcomp.lpp"
+#line 279 "levcomp.lpp"
diff --git a/crawl-ref/source/prebuilt/levcomp.tab.cc b/crawl-ref/source/prebuilt/levcomp.tab.cc
index 58c0e179b2..2cd8cb7ea1 100644
--- a/crawl-ref/source/prebuilt/levcomp.tab.cc
+++ b/crawl-ref/source/prebuilt/levcomp.tab.cc
@@ -94,16 +94,18 @@
BFLAGS = 283,
FLOORCOL = 284,
ROCKCOL = 285,
- COMMA = 286,
- COLON = 287,
- PERC = 288,
- INTEGER = 289,
- CHARACTER = 290,
- STRING = 291,
- MAP_LINE = 292,
- MONSTER_NAME = 293,
- ITEM_INFO = 294,
- LUA_LINE = 295
+ FLOORTILE = 286,
+ ROCKTILE = 287,
+ COMMA = 288,
+ COLON = 289,
+ PERC = 290,
+ INTEGER = 291,
+ CHARACTER = 292,
+ STRING = 293,
+ MAP_LINE = 294,
+ MONSTER_NAME = 295,
+ ITEM_INFO = 296,
+ LUA_LINE = 297
};
#endif
/* Tokens. */
@@ -135,16 +137,18 @@
#define BFLAGS 283
#define FLOORCOL 284
#define ROCKCOL 285
-#define COMMA 286
-#define COLON 287
-#define PERC 288
-#define INTEGER 289
-#define CHARACTER 290
-#define STRING 291
-#define MAP_LINE 292
-#define MONSTER_NAME 293
-#define ITEM_INFO 294
-#define LUA_LINE 295
+#define FLOORTILE 286
+#define ROCKTILE 287
+#define COMMA 288
+#define COLON 289
+#define PERC 290
+#define INTEGER 291
+#define CHARACTER 292
+#define STRING 293
+#define MAP_LINE 294
+#define MONSTER_NAME 295
+#define ITEM_INFO 296
+#define LUA_LINE 297
@@ -221,8 +225,8 @@ typedef union YYSTYPE
const char *text;
raw_range range;
}
-/* Line 187 of yacc.c. */
-#line 226 "levcomp.tab.c"
+/* Line 193 of yacc.c. */
+#line 230 "levcomp.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -235,7 +239,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 239 "levcomp.tab.c"
+#line 243 "levcomp.tab.c"
#ifdef short
# undef short
@@ -285,7 +289,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -450,20 +454,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 87
+#define YYLAST 91
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 41
+#define YYNTOKENS 43
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 66
+#define YYNNTS 68
/* YYNRULES -- Number of rules. */
-#define YYNRULES 123
+#define YYNRULES 129
/* YYNRULES -- Number of states. */
-#define YYNSTATES 144
+#define YYNSTATES 150
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 295
+#define YYMAXUTOK 297
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -500,7 +504,7 @@ static const yytype_uint8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40
+ 35, 36, 37, 38, 39, 40, 41, 42
};
#if YYDEBUG
@@ -512,50 +516,52 @@ static const yytype_uint16 yyprhs[] =
19, 22, 25, 26, 29, 31, 33, 36, 38, 40,
42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
- 82, 84, 86, 88, 90, 93, 94, 97, 99, 102,
- 103, 106, 108, 111, 112, 115, 117, 120, 121, 124,
- 126, 129, 130, 133, 135, 137, 140, 142, 145, 147,
- 150, 152, 155, 158, 160, 164, 166, 169, 170, 173,
- 175, 178, 181, 184, 187, 189, 192, 194, 197, 199,
- 203, 205, 208, 210, 214, 216, 219, 221, 225, 227,
- 229, 232, 236, 238, 240, 242, 245, 249, 251, 253,
- 256, 258, 261, 267, 272, 276, 279, 282, 284, 287,
- 290, 292, 295, 297
+ 82, 84, 86, 88, 90, 92, 94, 97, 98, 101,
+ 103, 106, 107, 110, 112, 115, 116, 119, 121, 124,
+ 125, 128, 130, 133, 134, 137, 139, 141, 144, 146,
+ 149, 151, 154, 156, 159, 162, 164, 168, 170, 173,
+ 174, 177, 179, 182, 185, 188, 191, 193, 196, 198,
+ 201, 203, 206, 208, 211, 213, 217, 219, 222, 224,
+ 228, 230, 233, 235, 239, 241, 243, 246, 250, 252,
+ 254, 256, 259, 263, 265, 267, 270, 272, 275, 281,
+ 286, 290, 293, 296, 298, 301, 304, 306, 309, 311
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 42, 0, -1, 43, -1, -1, 43, 44, -1, 46,
- -1, 48, -1, 35, -1, 47, -1, 53, -1, 3,
- 36, -1, 51, 49, -1, -1, 49, 50, -1, 52,
- -1, 104, -1, 11, 36, -1, 98, -1, 99, -1,
- 100, -1, 101, -1, 102, -1, 103, -1, 95, -1,
- 92, -1, 80, -1, 89, -1, 86, -1, 81, -1,
- 82, -1, 83, -1, 72, -1, 75, -1, 78, -1,
- 79, -1, 68, -1, 70, -1, 69, -1, 71, -1,
- 56, -1, 65, -1, 59, -1, 62, -1, 45, -1,
- 22, 54, -1, -1, 54, 55, -1, 40, -1, 22,
- 57, -1, -1, 57, 58, -1, 40, -1, 23, 60,
- -1, -1, 60, 61, -1, 40, -1, 24, 63, -1,
- -1, 63, 64, -1, 40, -1, 21, 66, -1, -1,
- 66, 67, -1, 40, -1, 7, -1, 7, 36, -1,
- 9, -1, 9, 36, -1, 8, -1, 8, 36, -1,
- 10, -1, 10, 36, -1, 4, 73, -1, 74, -1,
- 73, 31, 74, -1, 39, -1, 6, 76, -1, -1,
- 76, 77, -1, 36, -1, 27, 36, -1, 28, 36,
- -1, 19, 36, -1, 20, 84, -1, 29, -1, 29,
- 36, -1, 30, -1, 30, 36, -1, 85, -1, 84,
- 31, 85, -1, 39, -1, 25, 87, -1, 88, -1,
- 87, 31, 88, -1, 39, -1, 5, 90, -1, 91,
- -1, 91, 31, 90, -1, 39, -1, 18, -1, 18,
- 93, -1, 93, 31, 94, -1, 94, -1, 39, -1,
- 17, -1, 17, 96, -1, 97, 31, 96, -1, 97,
- -1, 38, -1, 14, 36, -1, 12, -1, 12, 36,
- -1, 15, 34, 32, 34, 33, -1, 15, 34, 32,
- 34, -1, 15, 34, 33, -1, 15, 34, -1, 16,
- 34, -1, 13, -1, 13, 36, -1, 26, 36, -1,
- 105, -1, 105, 106, -1, 106, -1, 37, -1
+ 44, 0, -1, 45, -1, -1, 45, 46, -1, 48,
+ -1, 50, -1, 37, -1, 49, -1, 55, -1, 3,
+ 38, -1, 53, 51, -1, -1, 51, 52, -1, 54,
+ -1, 108, -1, 11, 38, -1, 102, -1, 103, -1,
+ 104, -1, 105, -1, 106, -1, 107, -1, 99, -1,
+ 96, -1, 82, -1, 93, -1, 90, -1, 83, -1,
+ 84, -1, 85, -1, 86, -1, 87, -1, 74, -1,
+ 77, -1, 80, -1, 81, -1, 70, -1, 72, -1,
+ 71, -1, 73, -1, 58, -1, 67, -1, 61, -1,
+ 64, -1, 47, -1, 22, 56, -1, -1, 56, 57,
+ -1, 42, -1, 22, 59, -1, -1, 59, 60, -1,
+ 42, -1, 23, 62, -1, -1, 62, 63, -1, 42,
+ -1, 24, 65, -1, -1, 65, 66, -1, 42, -1,
+ 21, 68, -1, -1, 68, 69, -1, 42, -1, 7,
+ -1, 7, 38, -1, 9, -1, 9, 38, -1, 8,
+ -1, 8, 38, -1, 10, -1, 10, 38, -1, 4,
+ 75, -1, 76, -1, 75, 33, 76, -1, 41, -1,
+ 6, 78, -1, -1, 78, 79, -1, 38, -1, 27,
+ 38, -1, 28, 38, -1, 19, 38, -1, 20, 88,
+ -1, 29, -1, 29, 38, -1, 30, -1, 30, 38,
+ -1, 31, -1, 31, 38, -1, 32, -1, 32, 38,
+ -1, 89, -1, 88, 33, 89, -1, 41, -1, 25,
+ 91, -1, 92, -1, 91, 33, 92, -1, 41, -1,
+ 5, 94, -1, 95, -1, 95, 33, 94, -1, 41,
+ -1, 18, -1, 18, 97, -1, 97, 33, 98, -1,
+ 98, -1, 41, -1, 17, -1, 17, 100, -1, 101,
+ 33, 100, -1, 101, -1, 40, -1, 14, 38, -1,
+ 12, -1, 12, 38, -1, 15, 36, 34, 36, 35,
+ -1, 15, 36, 34, 36, -1, 15, 36, 35, -1,
+ 15, 36, -1, 16, 36, -1, 13, -1, 13, 38,
+ -1, 26, 38, -1, 109, -1, 109, 110, -1, 110,
+ -1, 39, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -565,15 +571,15 @@ static const yytype_uint16 yyrline[] =
88, 98, 120, 121, 124, 125, 128, 152, 153, 154,
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 181, 183, 184, 187, 192, 194,
- 195, 198, 203, 205, 206, 209, 214, 216, 217, 220,
- 225, 227, 228, 231, 236, 237, 245, 246, 254, 255,
- 263, 264, 272, 275, 276, 279, 287, 290, 291, 294,
- 303, 312, 321, 354, 357, 358, 366, 367, 375, 376,
- 379, 388, 391, 392, 395, 404, 407, 408, 411, 420,
- 421, 424, 425, 428, 436, 437, 440, 441, 444, 453,
- 462, 463, 472, 479, 486, 493, 501, 509, 510, 519,
- 528, 531, 532, 535
+ 175, 176, 177, 178, 179, 180, 183, 185, 186, 189,
+ 194, 196, 197, 200, 205, 207, 208, 211, 216, 218,
+ 219, 222, 227, 229, 230, 233, 238, 239, 247, 248,
+ 256, 257, 265, 266, 274, 277, 278, 281, 289, 292,
+ 293, 296, 305, 314, 323, 356, 359, 360, 368, 369,
+ 377, 378, 386, 387, 395, 396, 399, 408, 411, 412,
+ 415, 424, 427, 428, 431, 440, 441, 444, 445, 448,
+ 456, 457, 460, 461, 464, 473, 482, 483, 492, 499,
+ 506, 513, 521, 529, 530, 539, 548, 551, 552, 555
};
#endif
@@ -586,21 +592,23 @@ static const char *const yytname[] =
"TAGS", "KFEAT", "KITEM", "KMONS", "KMASK", "NAME", "DEPTH", "ORIENT",
"PLACE", "CHANCE", "WEIGHT", "MONS", "ITEM", "MARKER", "COLOUR",
"PRELUDE", "MAIN", "VALIDATE", "VETO", "NSUBST", "WELCOME", "LFLAGS",
- "BFLAGS", "FLOORCOL", "ROCKCOL", "COMMA", "COLON", "PERC", "INTEGER",
- "CHARACTER", "STRING", "MAP_LINE", "MONSTER_NAME", "ITEM_INFO",
- "LUA_LINE", "$accept", "file", "definitions", "definition", "error_seq",
- "def", "defdepth", "level", "map_specs", "map_spec", "name", "metaline",
- "global_lua", "global_lua_lines", "global_lua_line", "main_lua",
- "main_lua_lines", "main_lua_line", "validate_lua", "validate_lua_lines",
+ "BFLAGS", "FLOORCOL", "ROCKCOL", "FLOORTILE", "ROCKTILE", "COMMA",
+ "COLON", "PERC", "INTEGER", "CHARACTER", "STRING", "MAP_LINE",
+ "MONSTER_NAME", "ITEM_INFO", "LUA_LINE", "$accept", "file",
+ "definitions", "definition", "error_seq", "def", "defdepth", "level",
+ "map_specs", "map_spec", "name", "metaline", "global_lua",
+ "global_lua_lines", "global_lua_line", "main_lua", "main_lua_lines",
+ "main_lua_line", "validate_lua", "validate_lua_lines",
"validate_lua_line", "veto_lua", "veto_lua_lines", "veto_lua_line",
"prelude_lua", "prelude_lua_lines", "prelude_lua_line", "kfeat", "kmons",
"kitem", "kmask", "shuffle", "shuffle_specifiers", "shuffle_spec",
"tags", "tagstrings", "tagstring", "lflags", "bflags", "marker",
- "colour", "floorcol", "rockcol", "colour_specifiers", "colour_specifier",
- "nsubst", "nsubst_specifiers", "nsubst_spec", "subst",
- "subst_specifiers", "subst_spec", "items", "item_specifiers",
- "item_specifier", "mons", "mnames", "mname", "place", "depth", "chance",
- "weight", "orientation", "welcome", "map_def", "map_lines", "map_line", 0
+ "colour", "floorcol", "rockcol", "floortile", "rocktile",
+ "colour_specifiers", "colour_specifier", "nsubst", "nsubst_specifiers",
+ "nsubst_spec", "subst", "subst_specifiers", "subst_spec", "items",
+ "item_specifiers", "item_specifier", "mons", "mnames", "mname", "place",
+ "depth", "chance", "weight", "orientation", "welcome", "map_def",
+ "map_lines", "map_line", 0
};
#endif
@@ -613,26 +621,26 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295
+ 295, 296, 297
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 41, 42, 43, 43, 44, 44, 45, 46, 46,
- 47, 48, 49, 49, 50, 50, 51, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 53, 54, 54, 55, 56, 57,
- 57, 58, 59, 60, 60, 61, 62, 63, 63, 64,
- 65, 66, 66, 67, 68, 68, 69, 69, 70, 70,
- 71, 71, 72, 73, 73, 74, 75, 76, 76, 77,
- 78, 79, 80, 81, 82, 82, 83, 83, 84, 84,
- 85, 86, 87, 87, 88, 89, 90, 90, 91, 92,
- 92, 93, 93, 94, 95, 95, 96, 96, 97, 98,
- 99, 99, 100, 100, 100, 100, 101, 102, 102, 103,
- 104, 105, 105, 106
+ 0, 43, 44, 45, 45, 46, 46, 47, 48, 48,
+ 49, 50, 51, 51, 52, 52, 53, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 55, 56, 56, 57,
+ 58, 59, 59, 60, 61, 62, 62, 63, 64, 65,
+ 65, 66, 67, 68, 68, 69, 70, 70, 71, 71,
+ 72, 72, 73, 73, 74, 75, 75, 76, 77, 78,
+ 78, 79, 80, 81, 82, 83, 84, 84, 85, 85,
+ 86, 86, 87, 87, 88, 88, 89, 90, 91, 91,
+ 92, 93, 94, 94, 95, 96, 96, 97, 97, 98,
+ 99, 99, 100, 100, 101, 102, 103, 103, 104, 104,
+ 104, 104, 105, 106, 106, 107, 108, 109, 109, 110
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -642,15 +650,15 @@ static const yytype_uint8 yyr2[] =
2, 2, 0, 2, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 0, 2, 1, 2, 0,
- 2, 1, 2, 0, 2, 1, 2, 0, 2, 1,
- 2, 0, 2, 1, 1, 2, 1, 2, 1, 2,
- 1, 2, 2, 1, 3, 1, 2, 0, 2, 1,
- 2, 2, 2, 2, 1, 2, 1, 2, 1, 3,
- 1, 2, 1, 3, 1, 2, 1, 3, 1, 1,
- 2, 3, 1, 1, 1, 2, 3, 1, 1, 2,
- 1, 2, 5, 4, 3, 2, 2, 1, 2, 2,
- 1, 2, 1, 1
+ 1, 1, 1, 1, 1, 1, 2, 0, 2, 1,
+ 2, 0, 2, 1, 2, 0, 2, 1, 2, 0,
+ 2, 1, 2, 0, 2, 1, 1, 2, 1, 2,
+ 1, 2, 1, 2, 2, 1, 3, 1, 2, 0,
+ 2, 1, 2, 2, 2, 2, 1, 2, 1, 2,
+ 1, 2, 1, 2, 1, 3, 1, 2, 1, 3,
+ 1, 2, 1, 3, 1, 1, 2, 3, 1, 1,
+ 1, 2, 3, 1, 1, 2, 1, 2, 5, 4,
+ 3, 2, 2, 1, 2, 2, 1, 2, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -658,67 +666,67 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 3, 0, 2, 1, 0, 0, 45, 4, 5, 8,
- 6, 12, 9, 10, 16, 44, 11, 47, 46, 0,
- 0, 77, 64, 68, 66, 70, 110, 117, 0, 0,
- 0, 104, 99, 0, 0, 61, 49, 53, 57, 0,
- 0, 0, 0, 84, 86, 7, 123, 43, 13, 14,
- 39, 41, 42, 40, 35, 37, 36, 38, 31, 32,
- 33, 34, 25, 28, 29, 30, 27, 26, 24, 23,
- 17, 18, 19, 20, 21, 22, 15, 120, 122, 75,
- 72, 73, 98, 95, 96, 76, 65, 69, 67, 71,
- 111, 118, 109, 115, 116, 108, 105, 107, 103, 100,
- 102, 82, 90, 83, 88, 60, 48, 52, 56, 94,
- 91, 92, 119, 80, 81, 85, 87, 121, 0, 0,
- 79, 78, 0, 114, 0, 0, 0, 63, 62, 51,
- 50, 55, 54, 59, 58, 0, 74, 97, 113, 106,
- 101, 89, 93, 112
+ 3, 0, 2, 1, 0, 0, 47, 4, 5, 8,
+ 6, 12, 9, 10, 16, 46, 11, 49, 48, 0,
+ 0, 79, 66, 70, 68, 72, 116, 123, 0, 0,
+ 0, 110, 105, 0, 0, 63, 51, 55, 59, 0,
+ 0, 0, 0, 86, 88, 90, 92, 7, 129, 45,
+ 13, 14, 41, 43, 44, 42, 37, 39, 38, 40,
+ 33, 34, 35, 36, 25, 28, 29, 30, 31, 32,
+ 27, 26, 24, 23, 17, 18, 19, 20, 21, 22,
+ 15, 126, 128, 77, 74, 75, 104, 101, 102, 78,
+ 67, 71, 69, 73, 117, 124, 115, 121, 122, 114,
+ 111, 113, 109, 106, 108, 84, 96, 85, 94, 62,
+ 50, 54, 58, 100, 97, 98, 125, 82, 83, 87,
+ 89, 91, 93, 127, 0, 0, 81, 80, 0, 120,
+ 0, 0, 0, 65, 64, 53, 52, 57, 56, 61,
+ 60, 0, 76, 103, 119, 112, 107, 95, 99, 118
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 2, 7, 47, 8, 9, 10, 16, 48,
- 11, 49, 12, 15, 18, 50, 106, 130, 51, 107,
- 132, 52, 108, 134, 53, 105, 128, 54, 55, 56,
- 57, 58, 80, 81, 59, 85, 121, 60, 61, 62,
- 63, 64, 65, 103, 104, 66, 110, 111, 67, 83,
- 84, 68, 99, 100, 69, 96, 97, 70, 71, 72,
- 73, 74, 75, 76, 77, 78
+ -1, 1, 2, 7, 49, 8, 9, 10, 16, 50,
+ 11, 51, 12, 15, 18, 52, 110, 136, 53, 111,
+ 138, 54, 112, 140, 55, 109, 134, 56, 57, 58,
+ 59, 60, 84, 85, 61, 89, 127, 62, 63, 64,
+ 65, 66, 67, 68, 69, 107, 108, 70, 114, 115,
+ 71, 87, 88, 72, 103, 104, 73, 100, 101, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -68
+#define YYPACT_NINF -72
static const yytype_int8 yypact[] =
{
- -68, 7, 24, -68, -8, -2, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -1, -4, -68, -68, -7,
- 1, -68, 0, 2, 5, 6, 8, 9, 11, 3,
- 14, 12, 4, 13, 15, -68, -68, -68, -68, 16,
- 17, 20, 21, 22, 23, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -68, -68, 25, -68, -68,
- 29, -68, -68, -68, 30, 27, -68, -68, -68, -68,
- -68, -68, -68, -3, -68, -68, -68, 33, -68, 34,
- -68, -68, -68, 35, -68, 28, 31, 32, 36, -68,
- 38, -68, -68, -68, -68, -68, -68, -68, -7, 1,
- -68, -68, 18, -68, 12, 4, 15, -68, -68, -68,
- -68, -68, -68, -68, -68, 16, -68, -68, 37, -68,
- -68, -68, -68, -68
+ -72, 7, 26, -72, -8, -2, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -1, -4, -72, -72, -7,
+ 1, -72, 0, 2, 5, 6, 8, 9, 11, 3,
+ 14, 12, 4, 13, 15, -72, -72, -72, -72, 16,
+ 17, 20, 21, 22, 23, 24, 25, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, 27, -72, -72, 31, -72, -72, -72, 32, 29,
+ -72, -72, -72, -72, -72, -72, -72, -3, -72, -72,
+ -72, 35, -72, 36, -72, -72, -72, 37, -72, 30,
+ 33, 34, 38, -72, 40, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -7, 1, -72, -72, 18, -72,
+ 12, 4, 15, -72, -72, -72, -72, -72, -72, -72,
+ -72, 16, -72, -72, 39, -72, -72, -72, -72, -72
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -67, -68, -68, -68, -68, -68, -68,
- -68, -68, -68, -68, -59, -68, -68, -62, -68, -45,
- -68, -68, -68, -50, -68, -47, -68, -68, -68, -68,
- -68, -68, -68, -68, -68, 10
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -71, -72, -72, -72, -72, -72, -72,
+ -72, -72, -72, -72, -72, -72, -61, -72, -72, -64,
+ -72, -47, -72, -72, -72, -52, -72, -49, -72, -72,
+ -72, -72, -72, -72, -72, -72, -72, 10
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -730,47 +738,49 @@ static const yytype_uint8 yytable[] =
{
19, 20, 21, 22, 23, 24, 25, 3, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 4, 13, 122,
- 123, 45, 79, 46, 14, 5, 86, 93, 87, 17,
- 82, 88, 89, 98, 90, 91, 6, 92, 94, 101,
- 95, 136, 138, 112, 102, 109, 113, 114, 115, 116,
- 118, 119, 46, 120, 124, 125, 126, 141, 127, 135,
- 143, 129, 131, 142, 137, 140, 133, 139, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 117
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 4,
+ 13, 128, 129, 47, 83, 48, 14, 5, 90, 97,
+ 91, 17, 86, 92, 93, 102, 94, 95, 6, 96,
+ 98, 105, 99, 142, 144, 116, 106, 113, 117, 118,
+ 119, 120, 121, 122, 124, 125, 48, 126, 130, 131,
+ 132, 147, 133, 141, 149, 135, 137, 148, 143, 146,
+ 139, 145, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 123
};
static const yytype_int16 yycheck[] =
{
4, 5, 6, 7, 8, 9, 10, 0, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 3, 36, 32,
- 33, 35, 39, 37, 36, 11, 36, 34, 36, 40,
- 39, 36, 36, 39, 36, 36, 22, 36, 34, 36,
- 38, 118, 34, 36, 39, 39, 36, 36, 36, 36,
- 31, 31, 37, 36, 31, 31, 31, 126, 40, 31,
- 33, 40, 40, 135, 119, 125, 40, 124, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 77
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 3,
+ 38, 34, 35, 37, 41, 39, 38, 11, 38, 36,
+ 38, 42, 41, 38, 38, 41, 38, 38, 22, 38,
+ 36, 38, 40, 124, 36, 38, 41, 41, 38, 38,
+ 38, 38, 38, 38, 33, 33, 39, 38, 33, 33,
+ 33, 132, 42, 33, 35, 42, 42, 141, 125, 131,
+ 42, 130, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 81
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 42, 43, 0, 3, 11, 22, 44, 46, 47,
- 48, 51, 53, 36, 36, 54, 49, 40, 55, 4,
+ 0, 44, 45, 0, 3, 11, 22, 46, 48, 49,
+ 50, 53, 55, 38, 38, 56, 51, 42, 57, 4,
5, 6, 7, 8, 9, 10, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 35, 37, 45, 50, 52,
- 56, 59, 62, 65, 68, 69, 70, 71, 72, 75,
- 78, 79, 80, 81, 82, 83, 86, 89, 92, 95,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 39,
- 73, 74, 39, 90, 91, 76, 36, 36, 36, 36,
- 36, 36, 36, 34, 34, 38, 96, 97, 39, 93,
- 94, 36, 39, 84, 85, 66, 57, 60, 63, 39,
- 87, 88, 36, 36, 36, 36, 36, 106, 31, 31,
- 36, 77, 32, 33, 31, 31, 31, 40, 67, 40,
- 58, 40, 61, 40, 64, 31, 74, 90, 34, 96,
- 94, 85, 88, 33
+ 26, 27, 28, 29, 30, 31, 32, 37, 39, 47,
+ 52, 54, 58, 61, 64, 67, 70, 71, 72, 73,
+ 74, 77, 80, 81, 82, 83, 84, 85, 86, 87,
+ 90, 93, 96, 99, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 41, 75, 76, 41, 94, 95, 78,
+ 38, 38, 38, 38, 38, 38, 38, 36, 36, 40,
+ 100, 101, 41, 97, 98, 38, 41, 88, 89, 68,
+ 59, 62, 65, 41, 91, 92, 38, 38, 38, 38,
+ 38, 38, 38, 110, 33, 33, 38, 79, 34, 35,
+ 33, 33, 33, 42, 69, 42, 60, 42, 63, 42,
+ 66, 33, 76, 94, 36, 100, 98, 89, 92, 35
};
#define yyerrok (yyerrstatus = 0)
@@ -844,7 +854,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -1705,128 +1715,128 @@ yyreduce:
}
break;
- case 43:
-#line 178 "levcomp.ypp"
+ case 45:
+#line 180 "levcomp.ypp"
{}
break;
- case 44:
-#line 181 "levcomp.ypp"
+ case 46:
+#line 183 "levcomp.ypp"
{ }
break;
- case 45:
-#line 183 "levcomp.ypp"
+ case 47:
+#line 185 "levcomp.ypp"
{ }
break;
- case 46:
-#line 184 "levcomp.ypp"
+ case 48:
+#line 186 "levcomp.ypp"
{ }
break;
- case 47:
-#line 188 "levcomp.ypp"
+ case 49:
+#line 190 "levcomp.ypp"
{
lc_global_prelude.add(yylineno, (yyvsp[(1) - (1)].text));
}
break;
- case 48:
-#line 192 "levcomp.ypp"
+ case 50:
+#line 194 "levcomp.ypp"
{ }
break;
- case 49:
-#line 194 "levcomp.ypp"
+ case 51:
+#line 196 "levcomp.ypp"
{ }
break;
- case 50:
-#line 195 "levcomp.ypp"
+ case 52:
+#line 197 "levcomp.ypp"
{ }
break;
- case 51:
-#line 199 "levcomp.ypp"
+ case 53:
+#line 201 "levcomp.ypp"
{
lc_map.main.add(yylineno, (yyvsp[(1) - (1)].text));
}
break;
- case 52:
-#line 203 "levcomp.ypp"
+ case 54:
+#line 205 "levcomp.ypp"
{ }
break;
- case 53:
-#line 205 "levcomp.ypp"
+ case 55:
+#line 207 "levcomp.ypp"
{ }
break;
- case 54:
-#line 206 "levcomp.ypp"
+ case 56:
+#line 208 "levcomp.ypp"
{ }
break;
- case 55:
-#line 210 "levcomp.ypp"
+ case 57:
+#line 212 "levcomp.ypp"
{
lc_map.validate.add(yylineno, (yyvsp[(1) - (1)].text));
}
break;
- case 56:
-#line 214 "levcomp.ypp"
+ case 58:
+#line 216 "levcomp.ypp"
{ }
break;
- case 57:
-#line 216 "levcomp.ypp"
+ case 59:
+#line 218 "levcomp.ypp"
{ }
break;
- case 58:
-#line 217 "levcomp.ypp"
+ case 60:
+#line 219 "levcomp.ypp"
{ }
break;
- case 59:
-#line 221 "levcomp.ypp"
+ case 61:
+#line 223 "levcomp.ypp"
{
lc_map.veto.add(yylineno, (yyvsp[(1) - (1)].text));
}
break;
- case 60:
-#line 225 "levcomp.ypp"
+ case 62:
+#line 227 "levcomp.ypp"
{ }
break;
- case 61:
-#line 227 "levcomp.ypp"
+ case 63:
+#line 229 "levcomp.ypp"
{ }
break;
- case 62:
-#line 228 "levcomp.ypp"
+ case 64:
+#line 230 "levcomp.ypp"
{ }
break;
- case 63:
-#line 232 "levcomp.ypp"
+ case 65:
+#line 234 "levcomp.ypp"
{
lc_map.prelude.add(yylineno, (yyvsp[(1) - (1)].text));
}
break;
- case 64:
-#line 236 "levcomp.ypp"
+ case 66:
+#line 238 "levcomp.ypp"
{ }
break;
- case 65:
-#line 238 "levcomp.ypp"
+ case 67:
+#line 240 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1835,13 +1845,13 @@ yyreduce:
}
break;
- case 66:
-#line 245 "levcomp.ypp"
+ case 68:
+#line 247 "levcomp.ypp"
{ }
break;
- case 67:
-#line 247 "levcomp.ypp"
+ case 69:
+#line 249 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1850,13 +1860,13 @@ yyreduce:
}
break;
- case 68:
-#line 254 "levcomp.ypp"
+ case 70:
+#line 256 "levcomp.ypp"
{ }
break;
- case 69:
-#line 256 "levcomp.ypp"
+ case 71:
+#line 258 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1865,13 +1875,13 @@ yyreduce:
}
break;
- case 70:
-#line 263 "levcomp.ypp"
+ case 72:
+#line 265 "levcomp.ypp"
{ }
break;
- case 71:
-#line 265 "levcomp.ypp"
+ case 73:
+#line 267 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1880,13 +1890,13 @@ yyreduce:
}
break;
- case 72:
-#line 272 "levcomp.ypp"
+ case 74:
+#line 274 "levcomp.ypp"
{}
break;
- case 75:
-#line 280 "levcomp.ypp"
+ case 77:
+#line 282 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1895,13 +1905,13 @@ yyreduce:
}
break;
- case 76:
-#line 287 "levcomp.ypp"
+ case 78:
+#line 289 "levcomp.ypp"
{}
break;
- case 79:
-#line 295 "levcomp.ypp"
+ case 81:
+#line 297 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1910,8 +1920,8 @@ yyreduce:
}
break;
- case 80:
-#line 304 "levcomp.ypp"
+ case 82:
+#line 306 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1920,8 +1930,8 @@ yyreduce:
}
break;
- case 81:
-#line 313 "levcomp.ypp"
+ case 83:
+#line 315 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1930,8 +1940,8 @@ yyreduce:
}
break;
- case 82:
-#line 322 "levcomp.ypp"
+ case 84:
+#line 324 "levcomp.ypp"
{
std::string key, arg;
int sep(0);
@@ -1964,18 +1974,18 @@ yyreduce:
}
break;
- case 83:
-#line 354 "levcomp.ypp"
+ case 85:
+#line 356 "levcomp.ypp"
{ }
break;
- case 84:
-#line 357 "levcomp.ypp"
+ case 86:
+#line 359 "levcomp.ypp"
{ }
break;
- case 85:
-#line 359 "levcomp.ypp"
+ case 87:
+#line 361 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1984,13 +1994,13 @@ yyreduce:
}
break;
- case 86:
-#line 366 "levcomp.ypp"
+ case 88:
+#line 368 "levcomp.ypp"
{ }
break;
- case 87:
-#line 368 "levcomp.ypp"
+ case 89:
+#line 370 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -1999,18 +2009,48 @@ yyreduce:
}
break;
- case 88:
-#line 375 "levcomp.ypp"
+ case 90:
+#line 377 "levcomp.ypp"
{ }
break;
- case 89:
-#line 376 "levcomp.ypp"
+ case 91:
+#line 379 "levcomp.ypp"
+ {
+ lc_map.main.add(
+ yylineno,
+ make_stringf("floortile(\"%s\")",
+ quote_lua_string((yyvsp[(2) - (2)].text)).c_str()));
+ }
+ break;
+
+ case 92:
+#line 386 "levcomp.ypp"
{ }
break;
- case 90:
-#line 380 "levcomp.ypp"
+ case 93:
+#line 388 "levcomp.ypp"
+ {
+ lc_map.main.add(
+ yylineno,
+ make_stringf("rocktile(\"%s\")",
+ quote_lua_string((yyvsp[(2) - (2)].text)).c_str()));
+ }
+ break;
+
+ case 94:
+#line 395 "levcomp.ypp"
+ { }
+ break;
+
+ case 95:
+#line 396 "levcomp.ypp"
+ { }
+ break;
+
+ case 96:
+#line 400 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2019,23 +2059,23 @@ yyreduce:
}
break;
- case 91:
-#line 388 "levcomp.ypp"
+ case 97:
+#line 408 "levcomp.ypp"
{ }
break;
- case 92:
-#line 391 "levcomp.ypp"
+ case 98:
+#line 411 "levcomp.ypp"
{ }
break;
- case 93:
-#line 392 "levcomp.ypp"
+ case 99:
+#line 412 "levcomp.ypp"
{ }
break;
- case 94:
-#line 396 "levcomp.ypp"
+ case 100:
+#line 416 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2044,13 +2084,13 @@ yyreduce:
}
break;
- case 95:
-#line 404 "levcomp.ypp"
+ case 101:
+#line 424 "levcomp.ypp"
{ }
break;
- case 98:
-#line 412 "levcomp.ypp"
+ case 104:
+#line 432 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2059,18 +2099,18 @@ yyreduce:
}
break;
- case 99:
-#line 420 "levcomp.ypp"
+ case 105:
+#line 440 "levcomp.ypp"
{}
break;
- case 100:
-#line 421 "levcomp.ypp"
+ case 106:
+#line 441 "levcomp.ypp"
{}
break;
- case 103:
-#line 429 "levcomp.ypp"
+ case 109:
+#line 449 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2079,18 +2119,18 @@ yyreduce:
}
break;
- case 104:
-#line 436 "levcomp.ypp"
+ case 110:
+#line 456 "levcomp.ypp"
{}
break;
- case 105:
-#line 437 "levcomp.ypp"
+ case 111:
+#line 457 "levcomp.ypp"
{}
break;
- case 108:
-#line 445 "levcomp.ypp"
+ case 114:
+#line 465 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2099,8 +2139,8 @@ yyreduce:
}
break;
- case 109:
-#line 454 "levcomp.ypp"
+ case 115:
+#line 474 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2109,13 +2149,13 @@ yyreduce:
}
break;
- case 110:
-#line 462 "levcomp.ypp"
+ case 116:
+#line 482 "levcomp.ypp"
{}
break;
- case 111:
-#line 464 "levcomp.ypp"
+ case 117:
+#line 484 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2124,8 +2164,8 @@ yyreduce:
}
break;
- case 112:
-#line 473 "levcomp.ypp"
+ case 118:
+#line 493 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2133,8 +2173,8 @@ yyreduce:
}
break;
- case 113:
-#line 480 "levcomp.ypp"
+ case 119:
+#line 500 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2142,8 +2182,8 @@ yyreduce:
}
break;
- case 114:
-#line 487 "levcomp.ypp"
+ case 120:
+#line 507 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2151,8 +2191,8 @@ yyreduce:
}
break;
- case 115:
-#line 494 "levcomp.ypp"
+ case 121:
+#line 514 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2160,8 +2200,8 @@ yyreduce:
}
break;
- case 116:
-#line 502 "levcomp.ypp"
+ case 122:
+#line 522 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2169,13 +2209,13 @@ yyreduce:
}
break;
- case 117:
-#line 509 "levcomp.ypp"
+ case 123:
+#line 529 "levcomp.ypp"
{}
break;
- case 118:
-#line 511 "levcomp.ypp"
+ case 124:
+#line 531 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2184,8 +2224,8 @@ yyreduce:
}
break;
- case 119:
-#line 520 "levcomp.ypp"
+ case 125:
+#line 540 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2194,8 +2234,8 @@ yyreduce:
}
break;
- case 123:
-#line 536 "levcomp.ypp"
+ case 129:
+#line 556 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
@@ -2206,7 +2246,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2210 "levcomp.tab.c"
+#line 2250 "levcomp.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2420,6 +2460,6 @@ yyreturn:
}
-#line 544 "levcomp.ypp"
+#line 564 "levcomp.ypp"
diff --git a/crawl-ref/source/prebuilt/levcomp.tab.h b/crawl-ref/source/prebuilt/levcomp.tab.h
index 18db2c49e7..b02f4913fc 100644
--- a/crawl-ref/source/prebuilt/levcomp.tab.h
+++ b/crawl-ref/source/prebuilt/levcomp.tab.h
@@ -67,16 +67,18 @@
BFLAGS = 283,
FLOORCOL = 284,
ROCKCOL = 285,
- COMMA = 286,
- COLON = 287,
- PERC = 288,
- INTEGER = 289,
- CHARACTER = 290,
- STRING = 291,
- MAP_LINE = 292,
- MONSTER_NAME = 293,
- ITEM_INFO = 294,
- LUA_LINE = 295
+ FLOORTILE = 286,
+ ROCKTILE = 287,
+ COMMA = 288,
+ COLON = 289,
+ PERC = 290,
+ INTEGER = 291,
+ CHARACTER = 292,
+ STRING = 293,
+ MAP_LINE = 294,
+ MONSTER_NAME = 295,
+ ITEM_INFO = 296,
+ LUA_LINE = 297
};
#endif
/* Tokens. */
@@ -108,16 +110,18 @@
#define BFLAGS 283
#define FLOORCOL 284
#define ROCKCOL 285
-#define COMMA 286
-#define COLON 287
-#define PERC 288
-#define INTEGER 289
-#define CHARACTER 290
-#define STRING 291
-#define MAP_LINE 292
-#define MONSTER_NAME 293
-#define ITEM_INFO 294
-#define LUA_LINE 295
+#define FLOORTILE 286
+#define ROCKTILE 287
+#define COMMA 288
+#define COLON 289
+#define PERC 290
+#define INTEGER 291
+#define CHARACTER 292
+#define STRING 293
+#define MAP_LINE 294
+#define MONSTER_NAME 295
+#define ITEM_INFO 296
+#define LUA_LINE 297
@@ -130,8 +134,8 @@ typedef union YYSTYPE
const char *text;
raw_range range;
}
-/* Line 1489 of yacc.c. */
-#line 135 "levcomp.tab.h"
+/* Line 1529 of yacc.c. */
+#line 139 "levcomp.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt
index d65cd6e1e2..7f4c9b3ad7 100644
--- a/crawl-ref/source/rltiles/dc-dngn.txt
+++ b/crawl-ref/source/rltiles/dc-dngn.txt
@@ -191,21 +191,21 @@ wall/wall_yellow_rock1
wall/wall_yellow_rock2
wall/wall_yellow_rock3
-wall/brick_gray0 WALL_BAZAAR_GRAY
+wall/brick_gray0 WALL_BRICK_GRAY
wall/brick_gray1
wall/brick_gray2
wall/brick_gray3
-wall/stone_gray0 WALL_BAZAAR_STONE
+wall/stone_gray0 WALL_STONE_GRAY
wall/stone_gray1
wall/stone_gray2
wall/stone_gray3
-floor/grass0 FLOOR_BAZAAR_GRASS
+floor/grass0 FLOOR_GRASS
floor/grass1
floor/grass2
-floor/grass_n FLOOR_BAZAAR_GRASS1_SPECIAL
+floor/grass_n HALO_GRASS
floor/grass_ne
floor/grass_e
floor/grass_se
@@ -215,8 +215,6 @@ floor/grass_w
floor/grass_nw
floor/grass_full
-## NOTE: wall_undead and floor_nerves are used for the corruption effect.
-## They need to go last.
wall/undead0 WALL_UNDEAD
wall/undead1
wall/undead2
@@ -233,7 +231,7 @@ floor/floor_nerves6
%start
%compose floor/grass0
%compose floor/pedestal_n
-%finish FLOOR_BAZAAR_GRASS2_SPECIAL
+%finish HALO_GRASS2
%start
%compose floor/grass1
%compose floor/pedestal_ne
@@ -267,7 +265,7 @@ floor/pedestal_full
%start
%compose floor/rect_gray0
%compose floor/pedestal_n
-%finish FLOOR_BAZAAR_VAULT_SPECIAL
+%finish HALO_VAULT
%start
%compose floor/rect_gray1
%compose floor/pedestal_ne
@@ -298,11 +296,11 @@ floor/pedestal_full
%finish
floor/pedestal_full
-floor/dirt0 FLOOR_BAZAAR_DIRT
+floor/dirt0 FLOOR_DIRT
floor/dirt1
floor/dirt2
-floor/dirt_n FLOOR_BAZAAR_DIRT_SPECIAL
+floor/dirt_n HALO_DIRT
floor/dirt_ne
floor/dirt_e
floor/dirt_se
diff --git a/crawl-ref/source/rltiles/tool/tile_list_processor.cc b/crawl-ref/source/rltiles/tool/tile_list_processor.cc
index e0f8628a23..4f43f20793 100644
--- a/crawl-ref/source/rltiles/tool/tile_list_processor.cc
+++ b/crawl-ref/source/rltiles/tool/tile_list_processor.cc
@@ -607,6 +607,8 @@ bool tile_list_processor::write_data()
lcname.c_str());
fprintf(fp, "tile_info &tile_%s_info(unsigned int idx);\n",
lcname.c_str());
+ fprintf(fp, "bool tile_%s_index(const char *str, unsigned int &idx);\n",
+ lcname.c_str());
if (m_categories.size() > 0)
{
@@ -644,6 +646,10 @@ bool tile_list_processor::write_data()
fprintf(fp, "// This file has been automatically generated.\n\n");
fprintf(fp, "#include \"tiledef-%s.h\"\n\n", lcname.c_str());
+ fprintf(fp, "#include <map>\n");
+ fprintf(fp, "#include <string>\n");
+ fprintf(fp, "#include <assert.h>\n");
+ fprintf(fp, "using namespace std;\n");
fprintf(fp, "int _tile_%s_count[%s - %s] =\n{\n",
lcname.c_str(), max.c_str(), m_start_value.c_str());
@@ -720,6 +726,56 @@ bool tile_list_processor::write_data()
fprintf(fp, "};\n\n");
}
+
+ fprintf(fp, "\nclass tile_%s_map : public map<string, int>\n"
+ "{\n"
+ "public:\n"
+ " tile_%s_map();\n"
+ "} %s_name_map;\n\n",
+ lcname.c_str(), lcname.c_str(), lcname.c_str());
+
+ fprintf(fp,
+ "tile_%s_map::tile_%s_map()\n"
+ "{\n"
+ " map<string, int>::iterator itr = begin();\n",
+ lcname.c_str(), lcname.c_str());
+
+ for (unsigned int i = 0; i < m_page.m_tiles.size(); i++)
+ {
+ const std::string &enumname = m_page.m_tiles[i]->enumname();
+ // Filler can't be looked up.
+ if (enumname.empty())
+ continue;
+
+ std::string lcenum = enumname;
+ for (unsigned int c = 0; c < enumname.size(); c++)
+ lcenum[c] = std::tolower(enumname[c]);
+
+ fprintf(fp, " insert(itr, map<string, int>::value_type(\"%s\", %d + %s));\n",
+ lcenum.c_str(), i, m_start_value.c_str());
+ }
+
+ fprintf(fp, "}\n\n");
+
+ fprintf(fp,
+ "bool tile_%s_index(const char *str, unsigned int &idx)\n"
+ "{\n"
+ " assert(str);\n"
+ " if (!str)\n"
+ " return false;\n"
+ "\n"
+ " string lc = str;\n"
+ " for (unsigned int i = 0; i < lc.size(); i++)\n"
+ " lc[i] = tolower(lc[i]);\n"
+ "\n"
+ " map<string, int>::const_iterator itr = %s_name_map.find(lc);\n"
+ " if (itr == %s_name_map.end())\n"
+ " return false;\n"
+ "\n"
+ " idx = itr->second;\n"
+ " return true;\n"
+ "}\n",
+ lcname.c_str(), lcname.c_str(), lcname.c_str());
}
delete[] part_min;
diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc
index e7af317cb2..8cdb33306c 100644
--- a/crawl-ref/source/tags.cc
+++ b/crawl-ref/source/tags.cc
@@ -1975,12 +1975,16 @@ void tag_construct_level_tiles(writer &th)
marshallByte(th, rle_count);
// flavour
+ marshallShort(th, env.tile_default.wall);
+ marshallShort(th, env.tile_default.floor);
+ marshallShort(th, env.tile_default.special);
+
for (int count_x = 0; count_x < GXM; count_x++)
for (int count_y = 0; count_y < GYM; count_y++)
{
- marshallByte(th, env.tile_flv[count_x][count_y].wall);
- marshallByte(th, env.tile_flv[count_x][count_y].floor);
- marshallByte(th, env.tile_flv[count_x][count_y].special);
+ marshallShort(th, env.tile_flv[count_x][count_y].wall);
+ marshallShort(th, env.tile_flv[count_x][count_y].floor);
+ marshallShort(th, env.tile_flv[count_x][count_y].special);
}
mcache.construct(th);
@@ -2305,12 +2309,16 @@ void tag_read_level_tiles(struct reader &th)
}
// flavour
+ env.tile_default.wall = unmarshallShort(th);
+ env.tile_default.floor = unmarshallShort(th);
+ env.tile_default.special = unmarshallShort(th);
+
for (int x = 0; x < gx; x++)
for (int y = 0; y < gy; y++)
{
- env.tile_flv[x][y].wall = unmarshallByte(th);
- env.tile_flv[x][y].floor = unmarshallByte(th);
- env.tile_flv[x][y].special = unmarshallByte(th);
+ env.tile_flv[x][y].wall = unmarshallShort(th);
+ env.tile_flv[x][y].floor = unmarshallShort(th);
+ env.tile_flv[x][y].special = unmarshallShort(th);
}
if (ver > TILETAG_PRE_MCACHE)
@@ -2324,6 +2332,9 @@ void tag_read_level_tiles(struct reader &th)
static void tag_missing_level_tiles()
{
#ifdef USE_TILE
+ tile_init_default_flavour();
+ tile_clear_flavour();
+
for (int i = 0; i < GXM; i++)
for (int j = 0; j < GYM; j++)
{
@@ -2337,8 +2348,6 @@ static void tag_missing_level_tiles()
mcache.clear_all();
TileNewLevel(true);
-
-
#endif
}
diff --git a/crawl-ref/source/tile2.cc b/crawl-ref/source/tile2.cc
index a4404f9e84..b327aa84f6 100644
--- a/crawl-ref/source/tile2.cc
+++ b/crawl-ref/source/tile2.cc
@@ -28,355 +28,164 @@
#include "tiles.h"
#include "transfor.h"
-static int wall_flavours = 0;
-static int floor_flavours = 0;
-static int special_flavours = 0;
-static int wall_tile_idx = 0;
-static int floor_tile_idx = 0;
-static int special_tile_idx = 0;
-
-int get_num_wall_flavours()
+void tile_default_flv(level_area_type lev, branch_type br, tile_flavour &flv)
{
- return wall_flavours;
-}
+ flv.wall = TILE_WALL_NORMAL;
+ flv.floor = TILE_FLOOR_NORMAL;
+ flv.special = 0;
-int get_num_floor_flavours()
-{
- return floor_flavours;
-}
-
-int get_num_floor_special_flavours()
-{
- return special_flavours;
-}
-
-int get_wall_tile_idx()
-{
- return wall_tile_idx;
-}
-
-int get_floor_tile_idx()
-{
- return floor_tile_idx;
-}
-
-int get_floor_special_tile_idx()
-{
- return special_tile_idx;
-}
-
-// TODO: Add this sort of determinism to the lua maps,
-// at least for the portal vaults.
-void WallIdx(int &wall, int &floor, int &special)
-{
- // Note: This function must be deterministic.
-
- special = -1;
-
- if (you.level_type == LEVEL_PANDEMONIUM)
+ if (lev == LEVEL_PANDEMONIUM)
{
- switch (env.rock_colour)
+ flv.floor = TILE_FLOOR_TOMB;
+ switch (random2(7))
{
- case BLUE:
- case LIGHTBLUE:
- wall = TILE_WALL_ZOT_BLUE;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case RED:
- case LIGHTRED:
- wall = TILE_WALL_ZOT_RED;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case MAGENTA:
- case LIGHTMAGENTA:
- wall = TILE_WALL_ZOT_MAGENTA;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case GREEN:
- case LIGHTGREEN:
- wall = TILE_WALL_ZOT_GREEN;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case CYAN:
- case LIGHTCYAN:
- wall = TILE_WALL_ZOT_CYAN;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case BROWN:
- case YELLOW:
- wall = TILE_WALL_ZOT_YELLOW;
- floor = TILE_FLOOR_TOMB;
- break;
-
- case BLACK:
- case WHITE:
default:
- wall = TILE_WALL_ZOT_GRAY;
- floor = TILE_FLOOR_TOMB;
- break;
+ case 0: flv.wall = TILE_WALL_ZOT_BLUE; break;
+ case 1: flv.wall = TILE_WALL_ZOT_RED; break;
+ case 2: flv.wall = TILE_WALL_ZOT_MAGENTA; break;
+ case 3: flv.wall = TILE_WALL_ZOT_GREEN; break;
+ case 4: flv.wall = TILE_WALL_ZOT_CYAN; break;
+ case 5: flv.wall = TILE_WALL_ZOT_YELLOW; break;
+ case 6: flv.wall = TILE_WALL_ZOT_GRAY; break;
}
- unsigned int seen = you.get_place_info(LEVEL_PANDEMONIUM).levels_seen;
-
- if ((seen + env.rock_colour) % 3 == 1)
- wall = TILE_WALL_FLESH;
- if ((seen + env.floor_colour) % 3 == 1)
- floor = TILE_FLOOR_NERVES;
+ if (one_chance_in(3))
+ flv.wall = TILE_WALL_FLESH;
+ if (one_chance_in(3))
+ flv.floor = TILE_FLOOR_NERVES;
return;
}
- else if (you.level_type == LEVEL_ABYSS)
+ else if (lev == LEVEL_ABYSS)
{
- switch (env.rock_colour)
+ flv.floor = TILE_FLOOR_NERVES;
+ switch (random2(6))
{
- case YELLOW:
- case BROWN:
- wall = TILE_WALL_HIVE;
- break;
- case RED:
- case LIGHTRED:
- wall = TILE_WALL_PEBBLE_RED;
- break;
- case GREEN:
- case LIGHTGREEN:
- wall = TILE_WALL_SLIME;
- break;
- case BLUE:
- wall = TILE_WALL_ICE;
- break;
- case LIGHTGREY:
- case WHITE:
- wall = TILE_WALL_HALL;
- break;
default:
- wall = TILE_WALL_UNDEAD;
- break;
+ case 0: flv.wall = TILE_WALL_HIVE; break;
+ case 1: flv.wall = TILE_WALL_PEBBLE_RED; break;
+ case 2: flv.wall = TILE_WALL_SLIME; break;
+ case 3: flv.wall = TILE_WALL_ICE; break;
+ case 4: flv.wall = TILE_WALL_HALL; break;
+ case 5: flv.wall = TILE_WALL_UNDEAD; break;
}
- floor = TILE_FLOOR_NERVES;
return;
}
- else if (you.level_type == LEVEL_LABYRINTH)
+ else if (lev == LEVEL_LABYRINTH)
{
- wall = TILE_WALL_UNDEAD;
- floor = TILE_FLOOR_TOMB;
+ flv.wall = TILE_WALL_UNDEAD;
+ flv.floor = TILE_FLOOR_TOMB;
return;
}
- else if (you.level_type == LEVEL_PORTAL_VAULT)
+ else if (lev == LEVEL_PORTAL_VAULT)
{
- if (you.level_type_name == "bazaar")
- {
- // Bazaar tiles here lean towards grass and dirt to emphasize
- // both the non-hostile and other-wordly aspects of the
- // portal vaults (i.e. they aren't in the dungeon, necessarily.)
- int colour = env.floor_colour;
- switch (colour)
- {
- case BLUE:
- wall = TILE_WALL_BAZAAR_GRAY;
- floor = TILE_FLOOR_BAZAAR_GRASS;
- special = TILE_FLOOR_BAZAAR_GRASS1_SPECIAL;
- return;
-
- case RED:
- // Reds often have lava, which looks ridiculous
- // next to grass or dirt, so we'll use existing
- // floor and wall tiles here.
- wall = TILE_WALL_PEBBLE_RED;
- floor = TILE_FLOOR_VAULT;
- special = TILE_FLOOR_BAZAAR_VAULT_SPECIAL;
- return;
-
- case LIGHTBLUE:
- wall = TILE_WALL_HIVE;
- floor = TILE_FLOOR_BAZAAR_GRASS;
- special = TILE_FLOOR_BAZAAR_GRASS2_SPECIAL;
- return;
-
- case GREEN:
- wall = TILE_WALL_BAZAAR_STONE;
- floor = TILE_FLOOR_BAZAAR_GRASS;
- special = TILE_FLOOR_BAZAAR_GRASS1_SPECIAL;
- return;
-
- case MAGENTA:
- wall = TILE_WALL_BAZAAR_STONE;
- floor = TILE_FLOOR_BAZAAR_DIRT;
- special = TILE_FLOOR_BAZAAR_DIRT_SPECIAL;
- return;
-
- default:
- wall = TILE_WALL_VAULT;
- floor = TILE_FLOOR_VAULT;
- special = TILE_FLOOR_BAZAAR_VAULT_SPECIAL;
- return;
- }
- }
- else if (you.level_type_name == "sewer")
- {
- wall = TILE_WALL_SLIME;
- floor = TILE_FLOOR_SLIME;
- return;
- }
- else if (you.level_type_name == "ice cave")
- {
- wall = TILE_WALL_ICE;
- floor = TILE_FLOOR_ICE;
- return;
- }
+ // These should be handled in the respective lua files.
+ flv.wall = TILE_WALL_NORMAL;
+ flv.floor = TILE_FLOOR_NORMAL;
+ return;
}
- int depth = player_branch_depth();
- int branch_depth = your_branch().depth;
-
- switch (you.where_are_you)
+ switch (br)
{
- case BRANCH_MAIN_DUNGEON:
- wall = TILE_WALL_NORMAL;
- floor = TILE_FLOOR_NORMAL;
- return;
-
- case BRANCH_HIVE:
- wall = TILE_WALL_HIVE;
- floor = TILE_FLOOR_HIVE;
- return;
-
- case BRANCH_VAULTS:
- wall = TILE_WALL_VAULT;
- floor = TILE_FLOOR_VAULT;
- return;
-
- case BRANCH_ECUMENICAL_TEMPLE:
- wall = TILE_WALL_VINES;
- floor = TILE_FLOOR_VINES;
- return;
-
- case BRANCH_ELVEN_HALLS:
- case BRANCH_HALL_OF_BLADES:
- wall = TILE_WALL_HALL;
- floor = TILE_FLOOR_HALL;
- return;
-
- case BRANCH_TARTARUS:
- case BRANCH_CRYPT:
- case BRANCH_VESTIBULE_OF_HELL:
- wall = TILE_WALL_UNDEAD;
- floor = TILE_FLOOR_TOMB;
- return;
-
- case BRANCH_TOMB:
- wall = TILE_WALL_TOMB;
- floor = TILE_FLOOR_TOMB;
- return;
-
- case BRANCH_DIS:
- wall = TILE_WALL_ZOT_CYAN;
- floor = TILE_FLOOR_TOMB;
- return;
-
- case BRANCH_GEHENNA:
- wall = TILE_WALL_ZOT_RED;
- floor = TILE_FLOOR_ROUGH_RED;
- return;
-
- case BRANCH_COCYTUS:
- wall = TILE_WALL_ICE;
- floor = TILE_FLOOR_ICE;
- return;
-
- case BRANCH_ORCISH_MINES:
- wall = TILE_WALL_ORC;
- floor = TILE_FLOOR_ORC;
- return;
-
- case BRANCH_LAIR:
- wall = TILE_WALL_LAIR;
- floor = TILE_FLOOR_LAIR;
- return;
-
- case BRANCH_SLIME_PITS:
- wall = TILE_WALL_SLIME;
- floor = TILE_FLOOR_SLIME;
- return;
-
- case BRANCH_SNAKE_PIT:
- wall = TILE_WALL_SNAKE;
- floor = TILE_FLOOR_SNAKE;
- return;
-
- case BRANCH_SWAMP:
- wall = TILE_WALL_SWAMP;
- floor = TILE_FLOOR_SWAMP;
- return;
-
- case BRANCH_SHOALS:
- if (depth == branch_depth)
- wall = TILE_WALL_VINES;
- else
- wall = TILE_WALL_YELLOW_ROCK;
-
- floor = TILE_FLOOR_SAND_STONE;
- return;
-
- case BRANCH_HALL_OF_ZOT:
- if (you.your_level - you.branch_stairs[7] <= 1)
- {
- wall = TILE_WALL_ZOT_YELLOW;
- floor = TILE_FLOOR_TOMB;
- return;
- }
-
- switch (you.your_level - you.branch_stairs[7])
- {
- case 2:
- wall = TILE_WALL_ZOT_GREEN;
- floor = TILE_FLOOR_TOMB;
- return;
- case 3:
- wall = TILE_WALL_ZOT_CYAN;
- floor = TILE_FLOOR_TOMB;
- return;
- case 4:
- wall = TILE_WALL_ZOT_BLUE;
- floor = TILE_FLOOR_TOMB;
- return;
- case 5:
- default:
- wall = TILE_WALL_ZOT_MAGENTA;
- floor = TILE_FLOOR_TOMB;
- return;
- }
-
- case BRANCH_INFERNO:
- case BRANCH_THE_PIT:
- case BRANCH_CAVERNS:
- case NUM_BRANCHES:
- break;
-
- // NOTE: there is no default case in this switch statement so that
- // the compiler will issue a warning when new branches are created.
- }
+ case BRANCH_MAIN_DUNGEON:
+ flv.wall = TILE_WALL_NORMAL;
+ flv.floor = TILE_FLOOR_NORMAL;
+ return;
- wall = TILE_WALL_NORMAL;
- floor = TILE_FLOOR_NORMAL;
-}
+ case BRANCH_HIVE:
+ flv.wall = TILE_WALL_HIVE;
+ flv.floor = TILE_FLOOR_HIVE;
+ return;
-void TileLoadWall(bool wizard)
-{
- WallIdx(wall_tile_idx, floor_tile_idx, special_tile_idx);
+ case BRANCH_VAULTS:
+ flv.wall = TILE_WALL_VAULT;
+ flv.floor = TILE_FLOOR_VAULT;
+ return;
- // Number of flavours are generated automatically...
- floor_flavours = tile_dngn_count(floor_tile_idx);
- wall_flavours = tile_dngn_count(wall_tile_idx);
+ case BRANCH_ECUMENICAL_TEMPLE:
+ flv.wall = TILE_WALL_VINES;
+ flv.floor = TILE_FLOOR_VINES;
+ return;
- if (special_tile_idx != -1)
- special_flavours = tile_dngn_count(special_tile_idx);
- else
- special_flavours = 0;
+ case BRANCH_ELVEN_HALLS:
+ case BRANCH_HALL_OF_BLADES:
+ flv.wall = TILE_WALL_HALL;
+ flv.floor = TILE_FLOOR_HALL;
+ return;
+
+ case BRANCH_TARTARUS:
+ case BRANCH_CRYPT:
+ case BRANCH_VESTIBULE_OF_HELL:
+ flv.wall = TILE_WALL_UNDEAD;
+ flv.floor = TILE_FLOOR_TOMB;
+ return;
+
+ case BRANCH_TOMB:
+ flv.wall = TILE_WALL_TOMB;
+ flv.floor = TILE_FLOOR_TOMB;
+ return;
+
+ case BRANCH_DIS:
+ flv.wall = TILE_WALL_ZOT_CYAN;
+ flv.floor = TILE_FLOOR_TOMB;
+ return;
+
+ case BRANCH_GEHENNA:
+ flv.wall = TILE_WALL_ZOT_RED;
+ flv.floor = TILE_FLOOR_ROUGH_RED;
+ return;
+
+ case BRANCH_COCYTUS:
+ flv.wall = TILE_WALL_ICE;
+ flv.floor = TILE_FLOOR_ICE;
+ return;
+
+ case BRANCH_ORCISH_MINES:
+ flv.wall = TILE_WALL_ORC;
+ flv.floor = TILE_FLOOR_ORC;
+ return;
+
+ case BRANCH_LAIR:
+ flv.wall = TILE_WALL_LAIR;
+ flv.floor = TILE_FLOOR_LAIR;
+ return;
+
+ case BRANCH_SLIME_PITS:
+ flv.wall = TILE_WALL_SLIME;
+ flv.floor = TILE_FLOOR_SLIME;
+ return;
+
+ case BRANCH_SNAKE_PIT:
+ flv.wall = TILE_WALL_SNAKE;
+ flv.floor = TILE_FLOOR_SNAKE;
+ return;
+
+ case BRANCH_SWAMP:
+ flv.wall = TILE_WALL_SWAMP;
+ flv.floor = TILE_FLOOR_SWAMP;
+ return;
+
+ case BRANCH_SHOALS:
+ flv.wall = TILE_WALL_YELLOW_ROCK;
+ flv.floor = TILE_FLOOR_SAND_STONE;
+ return;
+
+ case BRANCH_HALL_OF_ZOT:
+ flv.wall = TILE_WALL_ZOT_YELLOW;
+ flv.floor = TILE_FLOOR_TOMB;
+ return;
+
+ case BRANCH_INFERNO:
+ case BRANCH_THE_PIT:
+ case BRANCH_CAVERNS:
+ case NUM_BRANCHES:
+ break;
+ }
+}
+
+void tile_init_default_flavour()
+{
+ tile_default_flv(you.level_type, you.where_are_you, env.tile_default);
}
int get_clean_map_idx(int tile_idx)
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 93615fa369..9fcd07668b 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -31,23 +31,12 @@
#include "travel.h"
#include "view.h"
-static inline bool _is_bazaar()
-{
- return (you.level_type == LEVEL_PORTAL_VAULT
- && you.level_type_name == "bazaar");
-}
-
static inline bool _is_sewers()
{
return (you.level_type == LEVEL_PORTAL_VAULT
&& you.level_type_name == "sewer");
}
-static inline unsigned short _get_bazaar_special_colour()
-{
- return YELLOW;
-}
-
void TileNewLevel(bool first_time)
{
tiles.clear_minimap();
@@ -55,7 +44,6 @@ void TileNewLevel(bool first_time)
for (int x = 0; x < GXM; x++)
tiles.update_minimap(x, y);
- TileLoadWall(false);
if (first_time)
tile_init_flavour();
@@ -2636,7 +2624,7 @@ int tileidx_zap(int colour)
}
// Modify wall tile index depending on floor/wall flavour.
-static inline void _finalize_tile(unsigned int *tile, bool is_special,
+static inline void _finalize_tile(unsigned int *tile,
unsigned char wall_flv,
unsigned char floor_flv,
unsigned char special_flv)
@@ -2644,6 +2632,9 @@ static inline void _finalize_tile(unsigned int *tile, bool is_special,
int orig = (*tile) & TILE_FLAG_MASK;
int flag = (*tile) & (~TILE_FLAG_MASK);
+ // TODO enne - expose this as an option, so ziggurat can use it too.
+ // Alternatively, allow the stone type to be set.
+ //
// Hack: Swap rock/stone in crypt and tomb, because there are
// only stone walls.
if ((you.where_are_you == BRANCH_CRYPT || you.where_are_you == BRANCH_TOMB)
@@ -2652,33 +2643,14 @@ static inline void _finalize_tile(unsigned int *tile, bool is_special,
orig = TILE_WALL_NORMAL;
}
- // If there are special tiles for this level, then use them.
- // Otherwise, we'll fall through to the next case and replace
- // special tiles with normal floor.
- if (orig == TILE_FLOOR_NORMAL && is_special
- && get_num_floor_special_flavours() > 0)
- {
- (*tile) = get_floor_special_tile_idx() + special_flv;
- ASSERT(special_flv < get_num_floor_special_flavours());
- }
- else if (orig == TILE_FLOOR_NORMAL)
- {
+ if (orig == TILE_FLOOR_NORMAL)
(*tile) = floor_flv;
- }
else if (orig == TILE_WALL_NORMAL)
- {
(*tile) = wall_flv;
- }
else if (orig == TILE_DNGN_CLOSED_DOOR || orig == TILE_DNGN_OPEN_DOOR)
- {
- if (special_flv > 3)
- special_flv = 3;
- (*tile) = orig + special_flv;
- }
+ (*tile) = orig + std::min((int)special_flv, 3);
else if (orig < TILE_DNGN_MAX)
- {
(*tile) = orig + (special_flv % tile_dngn_count(orig));
- }
(*tile) |= flag;
}
@@ -3937,21 +3909,33 @@ int jitter(SpecialIdx i)
return (i + random_range(-1, 1) + 8) % 8;
}
-void tile_init_flavour()
+void tile_clear_flavour()
{
- const bool bazaar = _is_bazaar();
- const unsigned short baz_col = _get_bazaar_special_colour();
+ for (int y = 0; y < GYM; y++)
+ for (int x = 0; x < GXM; x++)
+ {
+ env.tile_flv[x][y].floor = 0;
+ env.tile_flv[x][y].wall = 0;
+ env.tile_flv[x][y].special = 0;
+ }
+}
- for (int x = 0; x < GXM; x++)
- for (int y = 0; y < GYM; y++)
+// For floors and walls that have not already been set to a particular tile,
+// set them to a random instance of the default floor and wall tileset.
+void tile_init_flavour()
+{
+ for (int y = 0; y < GYM; y++)
+ for (int x = 0; x < GXM; x++)
{
- int max_wall_flavour = get_num_wall_flavours() - 1;
- int max_floor_flavour = get_num_floor_flavours() - 1;
- int wall_flavour = random_range(0, max_wall_flavour);
- int floor_flavour = random_range(0, max_floor_flavour);
+ int max_wall_flavor = tile_dngn_count(env.tile_default.wall) - 1;
+ int max_floor_flavor = tile_dngn_count(env.tile_default.floor) - 1;
+ int wall_rnd = random_range(0, max_wall_flavor);
+ int floor_rnd = random_range(0, max_floor_flavor);
- env.tile_flv[x][y].floor = get_floor_tile_idx() + floor_flavour;
- env.tile_flv[x][y].wall = get_wall_tile_idx() + wall_flavour;
+ if (!env.tile_flv[x][y].floor)
+ env.tile_flv[x][y].floor = env.tile_default.floor + floor_rnd;
+ if (!env.tile_flv[x][y].wall)
+ env.tile_flv[x][y].wall = env.tile_default.wall + wall_rnd;
if (grd[x][y] == DNGN_CLOSED_DOOR || grd[x][y] == DNGN_OPEN_DOOR)
{
@@ -3985,183 +3969,202 @@ void tile_init_flavour()
{
env.tile_flv[x][y].special = 0;
}
- else if (bazaar && env.grid_colours[x][y] == baz_col
- && grd[x][y] == DNGN_FLOOR)
+ else if (!env.tile_flv[x][y].special)
{
- int left_grd = (x > 0) ? grd[x-1][y] : DNGN_ROCK_WALL;
- int right_grd = (x < GXM - 1) ? grd[x+1][y] : DNGN_ROCK_WALL;
- int up_grd = (y > 0) ? grd[x][y-1] : DNGN_ROCK_WALL;
- int down_grd = (y < GYM - 1) ? grd[x][y+1] : DNGN_ROCK_WALL;
- unsigned short left_col = (x > 0) ?
- env.grid_colours[x-1][y] : BLACK;
- unsigned short right_col = (x < GXM - 1) ?
- env.grid_colours[x+1][y] : BLACK;
- unsigned short up_col = (y > 0) ?
- env.grid_colours[x][y-1] : BLACK;
- unsigned short down_col = (y < GYM - 1) ?
- env.grid_colours[x][y+1] : BLACK;
-
- // The special tiles contains part floor and part special, so
- // if there are adjacent floor or special tiles, we should
- // do our best to "connect" them appropriately. If there are
- // are other tiles there (walls, doors, whatever...) then it
- // doesn't matter.
- bool l_nrm = (left_grd == DNGN_FLOOR && left_col != baz_col);
- bool r_nrm = (right_grd == DNGN_FLOOR && right_col != baz_col);
- bool u_nrm = (up_grd == DNGN_FLOOR && up_col != baz_col);
- bool d_nrm = (down_grd == DNGN_FLOOR && down_col != baz_col);
-
- bool l_spc = (left_grd == DNGN_FLOOR && left_col == baz_col);
- bool r_spc = (right_grd == DNGN_FLOOR && right_col == baz_col);
- bool u_spc = (up_grd == DNGN_FLOOR && up_col == baz_col);
- bool d_spc = (down_grd == DNGN_FLOOR && down_col == baz_col);
-
- if (l_nrm && r_nrm || u_nrm && d_nrm)
- {
- // Not much to do here...
- env.tile_flv[x][y].special = SPECIAL_FULL;
- }
- else if (l_nrm)
- {
- if (u_nrm)
- env.tile_flv[x][y].special = SPECIAL_NW;
- else if (d_nrm)
- env.tile_flv[x][y].special = SPECIAL_SW;
- else if (u_spc && d_spc)
- env.tile_flv[x][y].special = SPECIAL_W;
- else if (u_spc && r_spc)
- env.tile_flv[x][y].special = SPECIAL_SW;
- else if (d_spc && r_spc)
- env.tile_flv[x][y].special = SPECIAL_NW;
- else if (u_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_W : SPECIAL_SW;
- }
- else if (d_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_W : SPECIAL_NW;
- }
- else
- env.tile_flv[x][y].special = jitter(SPECIAL_W);
- }
- else if (r_nrm)
- {
- if (u_nrm)
- env.tile_flv[x][y].special = SPECIAL_NE;
- else if (d_nrm)
- env.tile_flv[x][y].special = SPECIAL_SE;
- else if (u_spc && d_spc)
- env.tile_flv[x][y].special = SPECIAL_E;
- else if (u_spc && l_spc)
- env.tile_flv[x][y].special = SPECIAL_SE;
- else if (d_spc && l_spc)
- env.tile_flv[x][y].special = SPECIAL_NE;
- else if (u_spc)
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_E : SPECIAL_SE;
- else if (d_spc)
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_E : SPECIAL_NE;
- else
- env.tile_flv[x][y].special = jitter(SPECIAL_E);
- }
- else if (u_nrm)
- {
- if (r_spc && l_spc)
- env.tile_flv[x][y].special = SPECIAL_N;
- else if (r_spc && d_spc)
- env.tile_flv[x][y].special = SPECIAL_NW;
- else if (l_spc && d_spc)
- env.tile_flv[x][y].special = SPECIAL_NE;
- else if (r_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_N : SPECIAL_NW;
- }
- else if (l_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_N : SPECIAL_NE;
- }
- else
- env.tile_flv[x][y].special = jitter(SPECIAL_N);
- }
+ env.tile_flv[x][y].special = random2(256);
+ }
+ }
+}
+
+static bool _adjacent_target(dungeon_feature_type target, int x, int y)
+{
+ for (int i = -1; i <= 1; i++)
+ for (int j = -1; j <= 1; j++)
+ {
+ if (!map_bounds(x+i, y+j))
+ continue;
+ if (grd[x+i][y+j] == target)
+ return true;
+ }
+
+ return false;
+}
+
+void tile_floor_halo(dungeon_feature_type target, int tile)
+{
+ for (int x = 0; x < GXM; x++)
+ {
+ for (int y = 0; y < GYM; y++)
+ {
+ if (grd[x][y] < DNGN_FLOOR_MIN)
+ continue;
+ if (!_adjacent_target(target, x, y))
+ continue;
+
+ bool l_flr = (x > 0) ? grd[x-1][y] >= DNGN_FLOOR_MIN : false;
+ bool r_flr = (x < GXM - 1) ? grd[x+1][y] >= DNGN_FLOOR_MIN : false;
+ bool u_flr = (y > 0) ? grd[x][y-1] >= DNGN_FLOOR_MIN : false;
+ bool d_flr = (y < GYM - 1) ? grd[x][y+1] >= DNGN_FLOOR_MIN : false;
+
+ bool l_target = _adjacent_target(target, x-1, y);
+ bool r_target = _adjacent_target(target, x+1, y);
+ bool u_target = _adjacent_target(target, x, y-1);
+ bool d_target = _adjacent_target(target, x, y+1);
+
+ // The special tiles contains part floor and part special, so
+ // if there are adjacent floor or special tiles, we should
+ // do our best to "connect" them appropriately. If there are
+ // are other tiles there (walls, doors, whatever...) then it
+ // doesn't matter.
+ bool l_nrm = (l_flr && !l_target);
+ bool r_nrm = (r_flr && !r_target);
+ bool u_nrm = (u_flr && !u_target);
+ bool d_nrm = (d_flr && !d_target);
+
+ bool l_spc = (l_flr && l_target);
+ bool r_spc = (r_flr && r_target);
+ bool u_spc = (u_flr && u_target);
+ bool d_spc = (d_flr && d_target);
+
+ if (l_nrm && r_nrm || u_nrm && d_nrm)
+ {
+ // Not much to do here...
+ env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
+ }
+ else if (l_nrm)
+ {
+ if (u_nrm)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NW;
else if (d_nrm)
- {
- if (r_spc && l_spc)
- env.tile_flv[x][y].special = SPECIAL_S;
- else if (r_spc && u_spc)
- env.tile_flv[x][y].special = SPECIAL_SW;
- else if (l_spc && u_spc)
- env.tile_flv[x][y].special = SPECIAL_SE;
- else if (r_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_S : SPECIAL_SW;
- }
- else if (l_spc)
- {
- env.tile_flv[x][y].special = coinflip() ?
- SPECIAL_S : SPECIAL_SE;
- }
- else
- env.tile_flv[x][y].special = jitter(SPECIAL_S);
- }
+ env.tile_flv[x][y].floor = tile + SPECIAL_SW;
else if (u_spc && d_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_W;
+ else if (u_spc && r_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_SW;
+ else if (d_spc && r_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NW;
+ else if (u_spc)
{
- // We know this value is already initialized and
- // is necessarily in bounds.
- char t = env.tile_flv[x][y-1].special;
- if (t == SPECIAL_NE || t == SPECIAL_E)
- env.tile_flv[x][y].special = SPECIAL_E;
- else if (t == SPECIAL_NW || t == SPECIAL_W)
- env.tile_flv[x][y].special = SPECIAL_W;
- else
- env.tile_flv[x][y].special = SPECIAL_FULL;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_W : SPECIAL_SW);
}
- else if (r_spc && l_spc)
+ else if (d_spc)
{
- // We know this value is already initialized and
- // is necessarily in bounds.
- char t = env.tile_flv[x-1][y].special;
- if (t == SPECIAL_NW || t == SPECIAL_N)
- env.tile_flv[x][y].special = SPECIAL_N;
- else if (t == SPECIAL_SW || t == SPECIAL_S)
- env.tile_flv[x][y].special = SPECIAL_S;
- else
- env.tile_flv[x][y].special = SPECIAL_FULL;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_W : SPECIAL_NW);
}
+ else
+ env.tile_flv[x][y].floor = tile + jitter(SPECIAL_W);
+ }
+ else if (r_nrm)
+ {
+ if (u_nrm)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ else if (d_nrm)
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ else if (u_spc && d_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_E;
else if (u_spc && l_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ else if (d_spc && l_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ else if (u_spc)
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_E : SPECIAL_SE);
+ else if (d_spc)
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_E : SPECIAL_NE);
+ else
+ env.tile_flv[x][y].floor = tile + jitter(SPECIAL_E);
+ }
+ else if (u_nrm)
+ {
+ if (r_spc && l_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_N;
+ else if (r_spc && d_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NW;
+ else if (l_spc && d_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ else if (r_spc)
{
- env.tile_flv[x][y].special = SPECIAL_SE;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_N : SPECIAL_NW);
}
- else if (u_spc && r_spc)
+ else if (l_spc)
{
- env.tile_flv[x][y].special = SPECIAL_SW;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_N : SPECIAL_NE);
}
- else if (d_spc && l_spc)
+ else
+ env.tile_flv[x][y].floor = tile + jitter(SPECIAL_N);
+ }
+ else if (d_nrm)
+ {
+ if (r_spc && l_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_S;
+ else if (r_spc && u_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_SW;
+ else if (l_spc && u_spc)
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ else if (r_spc)
{
- env.tile_flv[x][y].special = SPECIAL_NE;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_S : SPECIAL_SW);
}
- else if (d_spc && r_spc)
+ else if (l_spc)
{
- env.tile_flv[x][y].special = SPECIAL_NW;
+ env.tile_flv[x][y].floor = tile + (coinflip() ?
+ SPECIAL_S : SPECIAL_SE);
}
else
- {
- env.tile_flv[x][y].special = SPECIAL_FULL;
- }
+ env.tile_flv[x][y].floor = tile + jitter(SPECIAL_S);
+ }
+ else if (u_spc && d_spc)
+ {
+ // We know this value is already initialized and
+ // is necessarily in bounds.
+ int t = env.tile_flv[x][y-1].floor - tile;
+ if (t == SPECIAL_NE || t == SPECIAL_E)
+ env.tile_flv[x][y].floor = tile + SPECIAL_E;
+ else if (t == SPECIAL_NW || t == SPECIAL_W)
+ env.tile_flv[x][y].floor = tile + SPECIAL_W;
+ else
+ env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
+ }
+ else if (r_spc && l_spc)
+ {
+ // We know this value is already initialized and
+ // is necessarily in bounds.
+ int t = env.tile_flv[x-1][y].floor - tile;
+ if (t == SPECIAL_NW || t == SPECIAL_N)
+ env.tile_flv[x][y].floor = tile + SPECIAL_N;
+ else if (t == SPECIAL_SW || t == SPECIAL_S)
+ env.tile_flv[x][y].floor = tile + SPECIAL_S;
+ else
+ env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
+ }
+ else if (u_spc && l_spc)
+ {
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ }
+ else if (u_spc && r_spc)
+ {
+ env.tile_flv[x][y].floor = tile + SPECIAL_SW;
+ }
+ else if (d_spc && l_spc)
+ {
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ }
+ else if (d_spc && r_spc)
+ {
+ env.tile_flv[x][y].floor = tile + SPECIAL_NW;
}
else
{
- env.tile_flv[x][y].special = random2(256);
+ env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
}
}
-
- if (!bazaar)
- return;
+ }
// Second pass for clean up. The only bad part about the above
// algorithm is that it could turn a block of floor like this:
@@ -4180,45 +4183,43 @@ void tile_init_flavour()
// 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 x = 0; x < GXM - 1; x++)
- for (int y = 0; y < GYM - 1; y++)
+ for (int y = 0; y < GYM - 1; y++)
+ for (int x = 0; x < GXM - 1; x++)
{
- if (grd[x][y] != DNGN_FLOOR || env.grid_colours[x][y] != baz_col)
+ int this_spc = env.tile_flv[x][y].floor - tile;
+ if (this_spc < 0 || this_spc > 8)
continue;
- if (env.tile_flv[x][y].special != SPECIAL_N
- && env.tile_flv[x][y].special != SPECIAL_S
- && env.tile_flv[x][y].special != SPECIAL_E
- && env.tile_flv[x][y].special != SPECIAL_W)
+ if (this_spc != SPECIAL_N && this_spc != SPECIAL_S
+ && this_spc != SPECIAL_E && this_spc != SPECIAL_W)
{
continue;
}
- int right_flavour = x < GXM - 1 ? env.tile_flv[x+1][y].special
- : SPECIAL_FULL;
- int down_flavour = y < GYM - 1 ? env.tile_flv[x][y+1].special
- : SPECIAL_FULL;
- int this_flavour = env.tile_flv[x][y].special;
+ int right_spc = x < GXM - 1 ? env.tile_flv[x+1][y].floor - tile
+ : SPECIAL_FULL;
+ int down_spc = y < GYM - 1 ? env.tile_flv[x][y+1].floor - tile
+ : SPECIAL_FULL;
- if (this_flavour == SPECIAL_N && right_flavour == SPECIAL_S)
+ if (this_spc == SPECIAL_N && right_spc == SPECIAL_S)
{
- env.tile_flv[x][y].special = SPECIAL_NE;
- env.tile_flv[x+1][y].special = SPECIAL_SW;
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ env.tile_flv[x+1][y].floor = tile + SPECIAL_SW;
}
- else if (this_flavour == SPECIAL_S && right_flavour == SPECIAL_N)
+ else if (this_spc == SPECIAL_S && right_spc == SPECIAL_N)
{
- env.tile_flv[x][y].special = SPECIAL_SE;
- env.tile_flv[x+1][y].special = SPECIAL_NW;
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ env.tile_flv[x+1][y].floor = tile + SPECIAL_NW;
}
- else if (this_flavour == SPECIAL_E && down_flavour == SPECIAL_W)
+ else if (this_spc == SPECIAL_E && down_spc == SPECIAL_W)
{
- env.tile_flv[x][y].special = SPECIAL_SE;
- env.tile_flv[x][y+1].special = SPECIAL_NW;
+ env.tile_flv[x][y].floor = tile + SPECIAL_SE;
+ env.tile_flv[x][y+1].floor = tile + SPECIAL_NW;
}
- else if (this_flavour == SPECIAL_W && down_flavour == SPECIAL_E)
+ else if (this_spc == SPECIAL_W && down_spc == SPECIAL_E)
{
- env.tile_flv[x][y].special = SPECIAL_NE;
- env.tile_flv[x][y+1].special = SPECIAL_SW;
+ env.tile_flv[x][y].floor = tile + SPECIAL_NE;
+ env.tile_flv[x][y+1].floor = tile + SPECIAL_SW;
}
}
}
@@ -4410,9 +4411,6 @@ void tile_finish_dngn(unsigned int *tileb, int cx, int cy)
int x, y;
int count = 0;
- const bool bazaar = _is_bazaar();
- const unsigned short baz_col = _get_bazaar_special_colour();
-
for (y = 0; y < crawl_view.viewsz.y; y++)
for (x = 0; x < crawl_view.viewsz.x; x++)
{
@@ -4423,7 +4421,6 @@ void tile_finish_dngn(unsigned int *tileb, int cx, int cy)
unsigned char wall_flv = 0;
unsigned char floor_flv = 0;
unsigned char special_flv = 0;
- bool is_special = false;
const bool in_bounds = (map_bounds(gx, gy));
if (in_bounds)
@@ -4431,14 +4428,11 @@ void tile_finish_dngn(unsigned int *tileb, int cx, int cy)
wall_flv = env.tile_flv[gx][gy].wall;
floor_flv = env.tile_flv[gx][gy].floor;
special_flv = env.tile_flv[gx][gy].special;
- is_special = (bazaar && env.grid_colours[gx][gy] == baz_col);
}
- _finalize_tile(&tileb[count+1], is_special,
- wall_flv, floor_flv, special_flv);
+ _finalize_tile(&tileb[count+1], wall_flv, floor_flv, special_flv);
const coord_def gc(gx, gy);
-
if (is_excluded(gc))
{
if (is_exclude_root(gc))
diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc
index 9d632c4b8e..27c3948a99 100644
--- a/crawl-ref/source/tilereg.cc
+++ b/crawl-ref/source/tilereg.cc
@@ -1250,8 +1250,9 @@ void InventoryRegion::pack_verts()
if (item.flag & TILEI_FLAG_FLOOR)
{
- add_quad(TEX_DUNGEON, get_floor_tile_idx()
- + m_flavour[i] % get_num_floor_flavours(), x, y);
+ int num_floor = tile_dngn_count(env.tile_default.floor);
+ add_quad(TEX_DUNGEON, env.tile_default.floor
+ + m_flavour[i] % num_floor, x, y);
}
else
add_quad(TEX_DUNGEON, TILE_ITEM_SLOT, x, y);
diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h
index 1d795e6270..eaa6c5c10f 100644
--- a/crawl-ref/source/tiles.h
+++ b/crawl-ref/source/tiles.h
@@ -15,6 +15,7 @@
#include "tiledef-player.h"
#include "beam.h"
+#include "enum.h"
enum tag_version
{
@@ -92,14 +93,17 @@ void tile_draw_inv(int flag = -1);
// Multiple pickup
void tile_pick_menu();
-int get_num_wall_flavours();
-int get_num_floor_flavours();
-int get_num_floor_special_flavours();
-int get_wall_tile_idx();
-int get_floor_tile_idx();
-int get_floor_special_tile_idx();
+// Set the default type of walls and floors.
+void tile_init_default_flavour();
+// Get the default types of walls and floors
+void tile_default_flv(level_area_type lev, branch_type br, tile_flavour &flv);
+// Clear the per-cell wall and floor flavors.
+void tile_clear_flavour();
+// Initialize per-cell types of walls and floors using defaults.
void tile_init_flavour();
+void tile_floor_halo(dungeon_feature_type target, int tile);
+
void tile_set_force_redraw_tiles(bool redraw);
void tile_set_force_redraw_inv(bool redraw);
@@ -113,7 +117,7 @@ void TileResizeScreen(int x, int y);
// display tile cursor, returns old cursor value there
int TileDrawCursor(int x, int y, int flag);
-// display bolts
+
void TileNewLevel(bool first_time);
// edit player tile
@@ -121,14 +125,11 @@ void TilePlayerEdit();
int item_unid_type(const item_def &item);
-// load wall tiles
-void TileLoadWall(bool wizard);
-
void TileDrawTitle();
int get_clean_map_idx(int tile_idx);
-/* Flags for drawing routines */
+// Flags for drawing routines
enum tile_flags
{
// Foreground flags
diff --git a/crawl-ref/source/util/levcomp.lpp b/crawl-ref/source/util/levcomp.lpp
index 41342277b7..6ca7542ce4 100644
--- a/crawl-ref/source/util/levcomp.lpp
+++ b/crawl-ref/source/util/levcomp.lpp
@@ -247,6 +247,8 @@ NSUBST: { CBEGIN(ITEM_LIST); return NSUBST; }
COLOUR: { CBEGIN(ITEM_LIST); return COLOUR; }
FLOORCOL: { CBEGIN(ARGUMENT); return FLOORCOL; }
ROCKCOL: { CBEGIN(ARGUMENT); return ROCKCOL; }
+FLOORTILE: { CBEGIN(ARGUMENT); return FLOORTILE; }
+ROCKTILE: { CBEGIN(ARGUMENT); return ROCKTILE; }
MONS: { CBEGIN(MNAME); return MONS; }
ITEM: { CBEGIN(ITEM_LIST); return ITEM; }
MARKER: { CBEGIN(ARGUMENT); return MARKER; }
diff --git a/crawl-ref/source/util/levcomp.ypp b/crawl-ref/source/util/levcomp.ypp
index 23549491b6..ea059cd991 100644
--- a/crawl-ref/source/util/levcomp.ypp
+++ b/crawl-ref/source/util/levcomp.ypp
@@ -55,7 +55,7 @@ level_range set_range(const char *s, int start, int end)
%token <i> DEFAULT_DEPTH SHUFFLE SUBST TAGS KFEAT KITEM KMONS KMASK
%token <i> NAME DEPTH ORIENT PLACE CHANCE WEIGHT MONS ITEM MARKER COLOUR
%token <i> PRELUDE MAIN VALIDATE VETO NSUBST WELCOME LFLAGS BFLAGS
-%token <i> FLOORCOL ROCKCOL
+%token <i> FLOORCOL ROCKCOL FLOORTILE ROCKTILE
%token <i> COMMA COLON PERC INTEGER CHARACTER
@@ -163,6 +163,8 @@ metaline : place
| colour
| floorcol
| rockcol
+ | floortile
+ | rocktile
| shuffle
| tags
| lflags
@@ -372,6 +374,24 @@ rockcol : ROCKCOL { }
quote_lua_string($2).c_str()));
}
+floortile : FLOORTILE { }
+ | FLOORTILE STRING
+ {
+ lc_map.main.add(
+ yylineno,
+ make_stringf("floortile(\"%s\")",
+ quote_lua_string($2).c_str()));
+ }
+
+rocktile : ROCKTILE { }
+ | ROCKTILE STRING
+ {
+ lc_map.main.add(
+ yylineno,
+ make_stringf("rocktile(\"%s\")",
+ quote_lua_string($2).c_str()));
+ }
+
colour_specifiers : colour_specifier { }
| colour_specifiers COMMA colour_specifier { }
;