]> granicus.if.org Git - nethack/commitdiff
Walls of lava
authorPasi Kallinen <paxed@alt.org>
Mon, 6 Feb 2023 17:23:39 +0000 (19:23 +0200)
committerPasi Kallinen <paxed@alt.org>
Mon, 6 Feb 2023 17:23:42 +0000 (19:23 +0200)
Add "walls of lava", basically lava which blocks vision and
require a bit more than just levitation or flight to move through.

No levels use this yet, as testing isn't thorough enough.

17 files changed:
dat/symbols
doc/lua.adoc
include/defsym.h
include/patchlevel.h
include/rm.h
src/dbridge.c
src/display.c
src/dungeon.c
src/hack.c
src/mkroom.c
src/mon.c
src/nhlua.c
src/objnam.c
src/pager.c
src/vision.c
src/zap.c
win/share/other.txt

index 3d85685a70aa15c1be758a949a54ee07450f8c09..c131d6bdc7947469e9a7a7893253b7867e821357 100644 (file)
@@ -133,6 +133,7 @@ start: Blank
         S_kop: \032
         S_land_mine: \032
         S_lava: \032
+        S_lavawall: \032
         S_leprechaun: \032
         S_level_teleporter: \032
         S_lich: \032
@@ -260,6 +261,7 @@ start: IBMgraphics
        S_pool: \xf7                    # meta-w, approx. equals
        S_ice: \xfa                     # meta-z, centered dot
        S_lava: \xf7                    # meta-w, approx. equals
+       S_lavawall: \xf7                # meta-w, approx. equals
        S_vodbridge: \xfa               # meta-z, centered dot
        S_hodbridge: \xfa               # meta-z, centered dot
        S_water: \xf7                   # meta-w, approx. equals
@@ -519,6 +521,7 @@ start: DECgraphics
        S_pool: \xe0                    # meta-\, diamond
        S_ice: \xfe                     # meta-~, centered dot
        S_lava: \xe0                    # meta-\, diamond
+       S_lavawall: \xe0                # meta-\, diamond
        S_vodbridge: \xfe               # meta-~, centered dot
        S_hodbridge: \xfe               # meta-~, centered dot
        S_water: \xe0                   # meta-\, diamond
@@ -591,6 +594,7 @@ start: Enhanced1
        S_pool: U+224b                      # TRIPLE TILDE
        S_ice: U+00b7                       # MIDDLE DOT
        S_lava: U+224b                      # TRIPLE TILDE
+       S_lavawall: U+2248                  # ALMOST EQUAL TO
        S_vodbridge: U+00b7                 # MIDDLE DOT
        S_hodbridge: U+00b7                 # MIDDLE DOT
        S_water: U+2248                     # ALMOST EQUAL TO
index 7fc5ea4677ccbaa9338b76c44d05cb24617c319b..cd08d5ebdb12de0c1081f3b934c14c132692b782 100644 (file)
@@ -1407,6 +1407,7 @@ Example:
 | `"}"`     | moat
 | `"P"`     | pool of water
 | `"L"`     | lava pool
+| `"Z"`     | wall of lava
 | `"I"`     | ice
 | `"W"`     | water
 | `"T"`     | tree
index aa63c72bc359a1fc24babb0a9bbe5a7a53c3943f..e18884f55c2d96d28811f015900609b8dd973cfb 100644 (file)
     PCHAR2(36, '}',  S_pool,   "pool", "water", CLR(CLR_BLUE))
     PCHAR( 37, '.',  S_ice,    "ice", CLR(CLR_CYAN))
     PCHAR( 38, '}',  S_lava,   "molten lava", CLR(CLR_RED))
-    PCHAR2(39, '.',  S_vodbridge, "vertical open drawbridge",
+    PCHAR( 39, '}',  S_lavawall,  "wall of lava", CLR(CLR_ORANGE))
+    PCHAR2(40, '.',  S_vodbridge, "vertical open drawbridge",
                                   "lowered drawbridge", CLR(CLR_BROWN))
-    PCHAR2(40, '.',  S_hodbridge, "horizontal open drawbridge",
+    PCHAR2(41, '.',  S_hodbridge, "horizontal open drawbridge",
                                   "lowered drawbridge", CLR(CLR_BROWN))
-    PCHAR2(41, '#',  S_vcdbridge, "vertical closed drawbridge",
+    PCHAR2(42, '#',  S_vcdbridge, "vertical closed drawbridge",
                                   "raised drawbridge", CLR(CLR_BROWN))
-    PCHAR2(42, '#',  S_hcdbridge, "horizontal closed drawbridge",
+    PCHAR2(43, '#',  S_hcdbridge, "horizontal closed drawbridge",
                                   "raised drawbridge", CLR(CLR_BROWN))
-    PCHAR( 43, ' ',  S_air,    "air", CLR(CLR_CYAN))
-    PCHAR( 44, '#',  S_cloud,  "cloud", CLR(CLR_GRAY))
-    PCHAR( 45, '}',  S_water,  "water", CLR(CLR_BLUE))
+    PCHAR( 44, ' ',  S_air,    "air", CLR(CLR_CYAN))
+    PCHAR( 45, '#',  S_cloud,  "cloud", CLR(CLR_GRAY))
+    PCHAR( 46, '}',  S_water,  "water", CLR(CLR_BLUE))
     /* end dungeon characters                                          */
     /*                                                                 */
     /* begin traps                                                     */
     /*                                                                 */
-    PCHAR( 46, '^',  S_arrow_trap, "arrow trap", CLR(HI_METAL))
-    PCHAR( 47, '^',  S_dart_trap, "dart trap", CLR(HI_METAL))
-    PCHAR( 48, '^',  S_falling_rock_trap, "falling rock trap", CLR(CLR_GRAY))
-    PCHAR( 49, '^',  S_squeaky_board, "squeaky board", CLR(CLR_BROWN))
-    PCHAR( 50, '^',  S_bear_trap, "bear trap", CLR(HI_METAL))
-    PCHAR( 51, '^',  S_land_mine, "land mine", CLR(CLR_RED))
-    PCHAR( 52, '^',  S_rolling_boulder_trap, "rolling boulder trap",
+    PCHAR( 47, '^',  S_arrow_trap, "arrow trap", CLR(HI_METAL))
+    PCHAR( 48, '^',  S_dart_trap, "dart trap", CLR(HI_METAL))
+    PCHAR( 49, '^',  S_falling_rock_trap, "falling rock trap", CLR(CLR_GRAY))
+    PCHAR( 50, '^',  S_squeaky_board, "squeaky board", CLR(CLR_BROWN))
+    PCHAR( 51, '^',  S_bear_trap, "bear trap", CLR(HI_METAL))
+    PCHAR( 52, '^',  S_land_mine, "land mine", CLR(CLR_RED))
+    PCHAR( 53, '^',  S_rolling_boulder_trap, "rolling boulder trap",
                                              CLR(CLR_GRAY))
-    PCHAR( 53, '^',  S_sleeping_gas_trap, "sleeping gas trap", CLR(HI_ZAP))
-    PCHAR( 54, '^',  S_rust_trap, "rust trap", CLR(CLR_BLUE))
-    PCHAR( 55, '^',  S_fire_trap, "fire trap", CLR(CLR_ORANGE))
-    PCHAR( 56, '^',  S_pit, "pit", CLR(CLR_BLACK))
-    PCHAR( 57, '^',  S_spiked_pit, "spiked pit", CLR(CLR_BLACK))
-    PCHAR( 58, '^',  S_hole, "hole", CLR(CLR_BROWN))
-    PCHAR( 59, '^',  S_trap_door, "trap door", CLR(CLR_BROWN))
-    PCHAR( 60, '^',  S_teleportation_trap, "teleportation trap",
+    PCHAR( 54, '^',  S_sleeping_gas_trap, "sleeping gas trap", CLR(HI_ZAP))
+    PCHAR( 55, '^',  S_rust_trap, "rust trap", CLR(CLR_BLUE))
+    PCHAR( 56, '^',  S_fire_trap, "fire trap", CLR(CLR_ORANGE))
+    PCHAR( 57, '^',  S_pit, "pit", CLR(CLR_BLACK))
+    PCHAR( 58, '^',  S_spiked_pit, "spiked pit", CLR(CLR_BLACK))
+    PCHAR( 59, '^',  S_hole, "hole", CLR(CLR_BROWN))
+    PCHAR( 60, '^',  S_trap_door, "trap door", CLR(CLR_BROWN))
+    PCHAR( 61, '^',  S_teleportation_trap, "teleportation trap",
                                            CLR(CLR_MAGENTA))
-    PCHAR( 61, '^',  S_level_teleporter, "level teleporter", CLR(CLR_MAGENTA))
-    PCHAR( 62, '^',  S_magic_portal, "magic portal", CLR(CLR_BRIGHT_MAGENTA))
-    PCHAR( 63, '"',  S_web, "web", CLR(CLR_GRAY))
-    PCHAR( 64, '^',  S_statue_trap, "statue trap", CLR(CLR_GRAY))
-    PCHAR( 65, '^',  S_magic_trap, "magic trap", CLR(HI_ZAP))
-    PCHAR2(66, '^',  S_anti_magic_trap, "anti magic trap", "anti-magic field",
+    PCHAR( 62, '^',  S_level_teleporter, "level teleporter", CLR(CLR_MAGENTA))
+    PCHAR( 63, '^',  S_magic_portal, "magic portal", CLR(CLR_BRIGHT_MAGENTA))
+    PCHAR( 64, '"',  S_web, "web", CLR(CLR_GRAY))
+    PCHAR( 65, '^',  S_statue_trap, "statue trap", CLR(CLR_GRAY))
+    PCHAR( 66, '^',  S_magic_trap, "magic trap", CLR(HI_ZAP))
+    PCHAR2(67, '^',  S_anti_magic_trap, "anti magic trap", "anti-magic field",
                                         CLR(HI_ZAP))
-    PCHAR( 67, '^',  S_polymorph_trap, "polymorph trap", CLR(CLR_BRIGHT_GREEN))
-    PCHAR( 68, '~',  S_vibrating_square, "vibrating square", CLR(CLR_MAGENTA))
-    PCHAR( 69, '^',  S_trapped_door, "trapped door", CLR(CLR_ORANGE))
-    PCHAR( 70, '^',  S_trapped_chest, "trapped chest", CLR(CLR_ORANGE))
+    PCHAR( 68, '^',  S_polymorph_trap, "polymorph trap", CLR(CLR_BRIGHT_GREEN))
+    PCHAR( 69, '~',  S_vibrating_square, "vibrating square", CLR(CLR_MAGENTA))
+    PCHAR( 70, '^',  S_trapped_door, "trapped door", CLR(CLR_ORANGE))
+    PCHAR( 71, '^',  S_trapped_chest, "trapped chest", CLR(CLR_ORANGE))
     /* end traps                                                       */
     /* end cmap B */
     /*                                                                   */
     /*                                                                   */
     /* zap colors are changed by reset_glyphmap() to match type of beam */
     /*                                                                   */
-    PCHAR2(71, '|',  S_vbeam, "vertical beam", "", CLR(CLR_GRAY))
-    PCHAR2(72, '-',  S_hbeam, "horizontal beam", "", CLR(CLR_GRAY))
-    PCHAR2(73, '\\', S_lslant, "left slant beam", "", CLR(CLR_GRAY))
-    PCHAR2(74, '/',  S_rslant, "right slant beam", "", CLR(CLR_GRAY))
+    PCHAR2(72, '|',  S_vbeam, "vertical beam", "", CLR(CLR_GRAY))
+    PCHAR2(73, '-',  S_hbeam, "horizontal beam", "", CLR(CLR_GRAY))
+    PCHAR2(74, '\\', S_lslant, "left slant beam", "", CLR(CLR_GRAY))
+    PCHAR2(75, '/',  S_rslant, "right slant beam", "", CLR(CLR_GRAY))
     /* start cmap C */
-    PCHAR2(75, '*',  S_digbeam, "dig beam", "", CLR(CLR_WHITE))
-    PCHAR2(76, '!',  S_flashbeam, "flash beam", "", CLR(CLR_WHITE))
-    PCHAR2(77, ')',  S_boomleft, "boom left", "", CLR(HI_WOOD))
-    PCHAR2(78, '(',  S_boomright, "boom right", "", CLR(HI_WOOD))
+    PCHAR2(76, '*',  S_digbeam, "dig beam", "", CLR(CLR_WHITE))
+    PCHAR2(77, '!',  S_flashbeam, "flash beam", "", CLR(CLR_WHITE))
+    PCHAR2(78, ')',  S_boomleft, "boom left", "", CLR(HI_WOOD))
+    PCHAR2(79, '(',  S_boomright, "boom right", "", CLR(HI_WOOD))
     /* 4 magic shield symbols                                          */
-    PCHAR2(79, '0',  S_ss1, "shield1", "", CLR(HI_ZAP))
-    PCHAR2(80, '#',  S_ss2, "shield2", "", CLR(HI_ZAP))
-    PCHAR2(81, '@',  S_ss3, "shield3", "", CLR(HI_ZAP))
-    PCHAR2(82, '*',  S_ss4, "shield4", "", CLR(HI_ZAP))
-    PCHAR( 83, '#',  S_poisoncloud, "poison cloud", CLR(CLR_BRIGHT_GREEN))
-    PCHAR( 84, '?',  S_goodpos, "valid position", CLR(CLR_BRIGHT_GREEN))
+    PCHAR2(80, '0',  S_ss1, "shield1", "", CLR(HI_ZAP))
+    PCHAR2(81, '#',  S_ss2, "shield2", "", CLR(HI_ZAP))
+    PCHAR2(82, '@',  S_ss3, "shield3", "", CLR(HI_ZAP))
+    PCHAR2(83, '*',  S_ss4, "shield4", "", CLR(HI_ZAP))
+    PCHAR( 84, '#',  S_poisoncloud, "poison cloud", CLR(CLR_BRIGHT_GREEN))
+    PCHAR( 85, '?',  S_goodpos, "valid position", CLR(CLR_BRIGHT_GREEN))
     /* end cmap C */
     /*                                                             */
     /* The 8 swallow symbols.  Do NOT separate.                    */
     /*      4 5 6                                                  */
     /*      7 8 9                                                  */
     /*                                                             */
-    PCHAR2(85, '/',  S_sw_tl, "swallow top left", "", CLR(CLR_GREEN))    /*1*/
-    PCHAR2(86, '-',  S_sw_tc, "swallow top center", "", CLR(CLR_GREEN))  /*2*/
-    PCHAR2(87, '\\', S_sw_tr, "swallow top right", "", CLR(CLR_GREEN))   /*3*/
-    PCHAR2(88, '|',  S_sw_ml, "swallow middle left", "", CLR(CLR_GREEN)) /*4*/
-    PCHAR2(89, '|',  S_sw_mr, "swallow middle right", "", CLR(CLR_GREEN)) /*6*/
-    PCHAR2(90, '\\', S_sw_bl, "swallow bottom left", "", CLR(CLR_GREEN))  /*7*/
-    PCHAR2(91, '-',  S_sw_bc, "swallow bottom center", "", CLR(CLR_GREEN))/*8*/
-    PCHAR2(92, '/',  S_sw_br, "swallow bottom right", "", CLR(CLR_GREEN)) /*9*/
+    PCHAR2(86, '/',  S_sw_tl, "swallow top left", "", CLR(CLR_GREEN))    /*1*/
+    PCHAR2(87, '-',  S_sw_tc, "swallow top center", "", CLR(CLR_GREEN))  /*2*/
+    PCHAR2(88, '\\', S_sw_tr, "swallow top right", "", CLR(CLR_GREEN))   /*3*/
+    PCHAR2(89, '|',  S_sw_ml, "swallow middle left", "", CLR(CLR_GREEN)) /*4*/
+    PCHAR2(90, '|',  S_sw_mr, "swallow middle right", "", CLR(CLR_GREEN)) /*6*/
+    PCHAR2(91, '\\', S_sw_bl, "swallow bottom left", "", CLR(CLR_GREEN))  /*7*/
+    PCHAR2(92, '-',  S_sw_bc, "swallow bottom center", "", CLR(CLR_GREEN))/*8*/
+    PCHAR2(93, '/',  S_sw_br, "swallow bottom right", "", CLR(CLR_GREEN)) /*9*/
     /*                                                             */
     /* explosion colors are changed by reset_glyphmap() to match   */
     /* the type of expl.                                           */
     /*      |@|                                                    */
     /*      \-/                                                    */
     /*                                                             */
-    PCHAR2(93, '/',  S_expl_tl, "explosion top left", "", CLR(CLR_ORANGE))
-    PCHAR2(94, '-',  S_expl_tc, "explosion top center", "", CLR(CLR_ORANGE))
-    PCHAR2(95, '\\', S_expl_tr, "explosion top right", "", CLR(CLR_ORANGE))
-    PCHAR2(96, '|',  S_expl_ml, "explosion middle left", "", CLR(CLR_ORANGE))
-    PCHAR2(97, ' ',  S_expl_mc, "explosion middle center", "", CLR(CLR_ORANGE))
-    PCHAR2(98, '|',  S_expl_mr, "explosion middle right", "", CLR(CLR_ORANGE))
-    PCHAR2(99, '\\', S_expl_bl, "explosion bottom left", "", CLR(CLR_ORANGE))
-    PCHAR2(100, '-', S_expl_bc, "explosion bottom center", "", CLR(CLR_ORANGE))
-    PCHAR2(101, '/', S_expl_br, "explosion bottom right", "", CLR(CLR_ORANGE))
+    PCHAR2(94, '/',  S_expl_tl, "explosion top left", "", CLR(CLR_ORANGE))
+    PCHAR2(95, '-',  S_expl_tc, "explosion top center", "", CLR(CLR_ORANGE))
+    PCHAR2(96, '\\', S_expl_tr, "explosion top right", "", CLR(CLR_ORANGE))
+    PCHAR2(97, '|',  S_expl_ml, "explosion middle left", "", CLR(CLR_ORANGE))
+    PCHAR2(98, ' ',  S_expl_mc, "explosion middle center", "", CLR(CLR_ORANGE))
+    PCHAR2(99, '|',  S_expl_mr, "explosion middle right", "", CLR(CLR_ORANGE))
+    PCHAR2(100, '\\', S_expl_bl, "explosion bottom left", "", CLR(CLR_ORANGE))
+    PCHAR2(101, '-', S_expl_bc, "explosion bottom center", "", CLR(CLR_ORANGE))
+    PCHAR2(102, '/', S_expl_br, "explosion bottom right", "", CLR(CLR_ORANGE))
 #undef PCHAR
 #undef PCHAR2
 #endif /* PCHAR_S_ENUM || PCHAR_PARSE || PCHAR_DRAWING || PCHAR_TILES */
index 83269bd64275c76e6663225650b8ad66a0973e3e..e6cc97786c831e79cbd3d3f4dcfa4386c2dff1df 100644 (file)
@@ -17,7 +17,7 @@
  * Incrementing EDITLEVEL can be used to force invalidation of old bones
  * and save files.
  */
-#define EDITLEVEL 72
+#define EDITLEVEL 73
 
 /*
  * Development status possibilities.
index f3945149f8f49b011183962f2e47499b53448051..86ba94c05ba57415bf4d9c368f6e88612b8b0bff 100644 (file)
@@ -57,24 +57,25 @@ enum levl_typ_types {
     WATER     = 18,
     DRAWBRIDGE_UP = 19,
     LAVAPOOL  = 20,
-    IRONBARS  = 21, /* KMH */
-    DOOR      = 22,
-    CORR      = 23,
-    ROOM      = 24,
-    STAIRS    = 25,
-    LADDER    = 26,
-    FOUNTAIN  = 27,
-    THRONE    = 28,
-    SINK      = 29,
-    GRAVE     = 30,
-    ALTAR     = 31,
-    ICE       = 32,
-    DRAWBRIDGE_DOWN = 33,
-    AIR       = 34,
-    CLOUD     = 35,
-
-    MAX_TYPE  = 36,
-    MATCH_WALL = 37,
+    LAVAWALL  = 21,
+    IRONBARS  = 22, /* KMH */
+    DOOR      = 23,
+    CORR      = 24,
+    ROOM      = 25,
+    STAIRS    = 26,
+    LADDER    = 27,
+    FOUNTAIN  = 28,
+    THRONE    = 29,
+    SINK      = 30,
+    GRAVE     = 31,
+    ALTAR     = 32,
+    ICE       = 33,
+    DRAWBRIDGE_DOWN = 34,
+    AIR       = 35,
+    CLOUD     = 36,
+
+    MAX_TYPE  = 37,
+    MATCH_WALL = 38,
     INVALID_TYPE = 127
 };
 
index 05062fdcf456abe5850e5d948239ef71a3ba153d..bf39ec9b9af28839ffbfca53303eb783e49b8573 100644 (file)
@@ -65,7 +65,7 @@ is_lava(coordxy x, coordxy y)
     if (!isok(x, y))
         return FALSE;
     ltyp = levl[x][y].typ;
-    if (ltyp == LAVAPOOL
+    if (ltyp == LAVAPOOL || ltyp == LAVAWALL
         || (ltyp == DRAWBRIDGE_UP
             && (levl[x][y].drawbridgemask & DB_UNDER) == DB_LAVA))
         return TRUE;
index e67417793b24ef057ad1d8cda8ad2c7325f94bc4..041aaab37d515d732098fc0392b11c2a196d485b 100644 (file)
@@ -2153,6 +2153,9 @@ back_to_glyph(coordxy x, coordxy y)
     case LAVAPOOL:
         idx = S_lava;
         break;
+    case LAVAWALL:
+        idx = S_lavawall;
+        break;
     case ICE:
         idx = S_ice;
         break;
@@ -2316,6 +2319,9 @@ get_bkglyph_and_framecolor(coordxy x, coordxy y, int *bkglyph, uint32 *framecolo
         case LAVAPOOL:
            idx = S_lava;
            break;
+        case LAVAWALL:
+            idx = S_lavawall;
+            break;
         default:
            idx = S_room;
            break;
@@ -2889,6 +2895,7 @@ static const char *const type_names[MAX_TYPE] = {
     "STONE", "VWALL", "HWALL", "TLCORNER", "TRCORNER", "BLCORNER", "BRCORNER",
     "CROSSWALL", "TUWALL", "TDWALL", "TLWALL", "TRWALL", "DBWALL", "TREE",
     "SDOOR", "SCORR", "POOL", "MOAT", "WATER", "DRAWBRIDGE_UP", "LAVAPOOL",
+    "LAVAWALL",
     "IRON_BARS", "DOOR", "CORR", "ROOM", "STAIRS", "LADDER", "FOUNTAIN",
     "THRONE", "SINK", "GRAVE", "ALTAR", "ICE", "DRAWBRIDGE_DOWN", "AIR",
     "CLOUD"
index 7c3f10f4a073ebc10d90bef10bf51530d09226af..0ef3aa6be47be89f6fe0b79753c1ff989dbee862 100644 (file)
@@ -2931,6 +2931,7 @@ recalc_mapseen(void)
                     mptr->feat.water = count;
                 break;
             case LAVAPOOL:
+            case LAVAWALL:
                 count = mptr->feat.lava + 1;
                 if (count <= 3)
                     mptr->feat.lava = count;
index bdf85aea1ac3308b534ebae6e2f326eaf31b7773..47f213fade25d1359d4c8193bdcfafb3cb1b742d 100644 (file)
@@ -1078,7 +1078,7 @@ test_move(
         /* FIXME: should be using lastseentyp[x][y] rather than seen vector
          */
         if ((levl[x][y].seenv && is_pool_or_lava(x, y)) /* known pool/lava */
-            && (IS_WATERWALL(levl[x][y].typ) /* never enter wall of water */
+            && ((IS_WATERWALL(levl[x][y].typ) || levl[x][y].typ == LAVAWALL) /* never enter wall of liquid */
                 /* don't enter pool or lava (must be one of the two to
                    get here) unless flying or levitating or have known
                    water-walking for pool or known lava-walking and
@@ -1630,6 +1630,8 @@ u_simple_floortyp(coordxy x, coordxy y)
 
     if (is_waterwall(x, y))
         return WATER; /* wall of water, fly/lev does not matter */
+    if (levl[x][y].typ == LAVAWALL)
+        return LAVAWALL; /* wall of lava, fly/lev does not matter */
     if (!u_in_air) {
         if (is_pool(x, y))
             return POOL;
@@ -1644,7 +1646,8 @@ static boolean
 swim_move_danger(coordxy x, coordxy y)
 {
     schar newtyp = u_simple_floortyp(x, y);
-    boolean liquid_wall = IS_WATERWALL(newtyp);
+    boolean liquid_wall = IS_WATERWALL(newtyp)
+        || newtyp == LAVAWALL;
 
     if ((newtyp != u_simple_floortyp(u.ux, u.uy))
         && !Stunned && !Confusion && levl[x][y].seenv
@@ -2164,7 +2167,7 @@ avoid_moving_on_liquid(
          || gc.context.travel)
         /* and you know you won't fall in */
         && (in_air || Known_lwalking || (is_pool(x, y) && Known_wwalking))
-        && !IS_WATERWALL(levl[x][y].typ)) {
+        && !(IS_WATERWALL(levl[x][y].typ) || levl[x][y].typ == LAVAWALL)) {
         /* XXX: should send 'is_clinger(gy.youmonst.data)' here once clinging
            polyforms are allowed to move over water */
         return FALSE; /* liquid is safe to traverse */
@@ -2679,7 +2682,8 @@ switch_terrain(void)
 {
     struct rm *lev = &levl[u.ux][u.uy];
     boolean blocklev = (IS_ROCK(lev->typ) || closed_door(u.ux, u.uy)
-                        || IS_WATERWALL(lev->typ)),
+                        || IS_WATERWALL(lev->typ)
+                        || lev->typ == LAVAWALL),
             was_levitating = !!Levitation, was_flying = !!Flying;
 
     if (blocklev) {
index f59284bdac9caded6318396902f4ceca15817e34..229ff97a2cbab5f2e9d28ad8abe74de14944be4e 100644 (file)
@@ -1012,6 +1012,9 @@ cmap_to_type(int sym)
     case S_water:
         typ = WATER;
         break;
+    case S_lavawall:
+        typ = LAVAWALL;
+        break;
     default:
         break; /* not a cmap symbol? */
     }
index 6f29aa651d508be3dae38a02ce7110657245d89e..7871587d8d00f563b2af6d79c37e569c9fd418ca 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -1989,6 +1989,8 @@ mfndpos(
                     || (m_at(x, ny) && m_at(nx, y) && worm_cross(x, y, nx, ny)
                         && !m_at(nx, ny) && (nx != u.ux || ny != u.uy))))
                 continue;
+            if ((!lavaok || !(flag & ALLOW_WALL)) && ntyp == LAVAWALL)
+                continue;
             if ((poolok || is_pool(nx, ny) == wantpool)
                 && (lavaok || !is_lava(nx, ny))) {
                 int dispx, dispy;
index 0c192ac38587e62a734714db492f927ce16e792d..8f14238b290a7d7e6e3989ce9ea96635a0fd6560 100644 (file)
@@ -338,6 +338,7 @@ const struct {
                 { '}', MOAT },
                 { 'P', POOL },
                 { 'L', LAVAPOOL },
+                { 'Z', LAVAWALL },
                 { 'I', ICE },
                 { 'W', WATER },
                 { 'T', TREE },
index 185314c4f851b6e0148f57d2a11fd1fc95bc8db8..3199f87db7591b2f9a2798dc0e43ef9d92ebc8d2 100644 (file)
@@ -3291,12 +3291,13 @@ wizterrainwish(struct _readobjnam_data *d)
         madeterrain = TRUE;
 
     /* also matches "molten lava" */
-    } else if (!BSTRCMPI(bp, p - 4, "lava")) {
-        lev->typ = LAVAPOOL;
+    } else if (!BSTRCMPI(bp, p - 4, "lava")
+               || !BSTRCMPI(bp, p - 12, "wall of lava")) {
+        lev->typ = !BSTRCMPI(bp, p - 12, "wall of lava") ? LAVAWALL : LAVAPOOL;
         lev->flags = 0;
         del_engr_at(x, y);
         pline("A pool of molten lava.");
-        if (!(Levitation || Flying))
+        if (!(Levitation || Flying) || lev->typ == LAVAWALL)
             pooleffects(FALSE);
         madeterrain = TRUE;
     } else if (!BSTRCMPI(bp, p - 3, "ice")) {
index 3da66038e688287df355e4d6b995a324de6b98ef..784f4d442633151c9d6d49e845e627de62260e67 100644 (file)
@@ -519,6 +519,9 @@ waterbody_name(coordxy x, coordxy y)
             return "limitless water"; /* even if hallucinating */
         Snprintf(pooltype, sizeof pooltype, "wall of %s", hliquid("water"));
         return pooltype;
+    } else if (ltyp == LAVAWALL) {
+        Snprintf(pooltype, sizeof pooltype, "wall of %s", hliquid("lava"));
+        return pooltype;
     }
     /* default; should be unreachable */
     return "water"; /* don't hallucinate this as some other liquid */
index f48461f9d55b0af85f6f6a002e67df67deaf86c3..341ef9c57a43f69f386e2ffba4e3e0a0409d15aa 100644 (file)
@@ -161,6 +161,7 @@ does_block(int x, int y, struct rm *lev)
     if (gs.seethru != 1) {
 #endif
     if (lev->typ == CLOUD || IS_WATERWALL(lev->typ)
+        || lev->typ == LAVAWALL
         || (Underwater && is_moat(x, y)))
         return 1;
 #ifdef DEBUG
index 58b0bef757b2dc09de5dbc359a8138fda94e93a0..8bc5bcaaca34222021aa2ed847b1fb038d302072 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -3524,7 +3524,7 @@ bhit(coordxy ddx, coordxy ddy, int range,  /* direction and range */
         typ = levl[gb.bhitpos.x][gb.bhitpos.y].typ;
 
         /* WATER aka "wall of water" stops items */
-        if (IS_WATERWALL(typ)) {
+        if (IS_WATERWALL(typ) || typ == LAVAWALL) {
             if (weapon == THROWN_WEAPON || weapon == KICKED_WEAPON)
                 break;
         }
@@ -4780,8 +4780,8 @@ zap_over_floor(
         break; /* ZT_FIRE */
 
     case ZT_COLD:
-        if (is_pool(x, y) || is_lava(x, y)) {
-            boolean lava = is_lava(x, y),
+        if (is_pool(x, y) || is_lava(x, y) || levl[x][y].typ == LAVAWALL) {
+            boolean lava = (is_lava(x, y) || levl[x][y].typ == LAVAWALL),
                     moat = is_moat(x, y);
 
             if (IS_WATERWALL(lev->typ)) {
index 550795899cb9c14c93d984c1d8da4965aace200c..4f04ed718fbf4c6a3754005ac82d1d70901a2b1d 100644 (file)
@@ -847,7 +847,26 @@ Z = (195, 195, 195)
   DDDDKKDDDDCDDDDD
   DDDDDDDDDDDKDDDD
 }
-# tile 43 (vertical open drawbridge)
+# tile 43 (wall of lava)
+{
+  DDDDDDCDDDDDDDDD
+  DDDDDCHKDDCDDDDD
+  DDCCDAKDHADCHCDD
+  DCHJADAADJAAJHKD
+  DCJAAJAAJAJAADKD
+  DDKKAAAAAAAJKHKD
+  DDAAAAAAAAAAJKDD
+  DHDJAAAAAAAJKADD
+  DCJAJAAAAAAAAKHD
+  DDKAAAAAAAAAKCDD
+  DHDJAAAAAAKAKHDC
+  DDAAKAKAKAAJADDD
+  DCDCAAJAAJKAKCDD
+  CDHAJAKJKAJADJDD
+  DDDDHKDHCDCDHDDD
+  DDDDDDDDDDDKDDDD
+}
+# tile 44 (vertical open drawbridge)
 {
   EKKAKKKKKKKAKKAE
   EJKKKKKKKKKKKJAA
@@ -866,7 +885,7 @@ Z = (195, 195, 195)
   EEJJJJJJJJJJJAAA
   EJKKKKKKKKKKKJAA
 }
-# tile 44 (horizontal open drawbridge)
+# tile 45 (horizontal open drawbridge)
 {
   EEEEEEEEEEEEEEEE
   JEJKJEJKJEJKJEJK
@@ -885,7 +904,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAAAAAA
   AAAEAAAEAAAEAAAE
 }
-# tile 45 (vertical closed drawbridge)
+# tile 46 (vertical closed drawbridge)
 {
   ................
   ..JKJ.JKJ.JKJ...
@@ -904,7 +923,7 @@ Z = (195, 195, 195)
   ...AAA.AAA.AAA..
   ................
 }
-# tile 46 (horizontal closed drawbridge)
+# tile 47 (horizontal closed drawbridge)
 {
   ................
   ..JJJJJJJJJJJ...
@@ -923,7 +942,7 @@ Z = (195, 195, 195)
   ...AAAAAAAAAAA..
   ................
 }
-# tile 47 (air)
+# tile 48 (air)
 {
   BBBBBBBBBBBBBBBB
   BBBBBBBBBBBBBBBB
@@ -942,7 +961,7 @@ Z = (195, 195, 195)
   BBBBBBBBBBBBBBBB
   BBBBBBBBBBBBBBBB
 }
-# tile 48 (cloud)
+# tile 49 (cloud)
 {
   BBBBBBBBBBBBBBBB
   BBBBBNNNNNNNBBBB
@@ -961,7 +980,7 @@ Z = (195, 195, 195)
   BBBBBBOOOOBBBBBB
   BBBBBBBBBBBBBBBB
 }
-# tile 49 (water)
+# tile 50 (water)
 {
   EEEEEEEEEEEEEEEE
   EEEEEEEEEEEEEEEE
@@ -980,7 +999,7 @@ Z = (195, 195, 195)
   EEEEEEEEEEEEEEEE
   EEEEEEEEEEEEEEEE
 }
-# tile 50 (arrow trap)
+# tile 51 (arrow trap)
 {
   ................
   .....DDDDD......
@@ -999,7 +1018,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 51 (dart trap)
+# tile 52 (dart trap)
 {
   ................
   .....DDDDD......
@@ -1018,7 +1037,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 52 (falling rock trap)
+# tile 53 (falling rock trap)
 {
   ................
   .....DDDDD......
@@ -1037,7 +1056,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 53 (squeaky board)
+# tile 54 (squeaky board)
 {
   ................
   .....DDDDD......
@@ -1056,7 +1075,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 54 (bear trap)
+# tile 55 (bear trap)
 {
   ................
   .....DDDDD......
@@ -1075,7 +1094,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 55 (land mine)
+# tile 56 (land mine)
 {
   ................
   .....DDDDD......
@@ -1094,7 +1113,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 56 (rolling boulder trap)
+# tile 57 (rolling boulder trap)
 {
   ................
   .....DDDDD......
@@ -1113,7 +1132,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 57 (sleeping gas trap)
+# tile 58 (sleeping gas trap)
 {
   ................
   .....DDDDD......
@@ -1132,7 +1151,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 58 (rust trap)
+# tile 59 (rust trap)
 {
   ................
   .....DDDDD......
@@ -1151,7 +1170,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 59 (fire trap)
+# tile 60 (fire trap)
 {
   ................
   .....DDDDD......
@@ -1170,7 +1189,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 60 (pit)
+# tile 61 (pit)
 {
   AAAAAAAAAAAAAAAA
   A.AAAAAAAAAAAABA
@@ -1189,7 +1208,7 @@ Z = (195, 195, 195)
   A.PPPPPPPPPPPPPA
   AAAAAAAAAAAAAAAA
 }
-# tile 61 (spiked pit)
+# tile 62 (spiked pit)
 {
   AAAAAAAAAAAAAAAA
   A.AAAAAAAAAAAABA
@@ -1208,7 +1227,7 @@ Z = (195, 195, 195)
   A.PPPPPPPPPPPPPA
   AAAAAAAAAAAAAAAA
 }
-# tile 62 (hole)
+# tile 63 (hole)
 {
   ................
   ......AAAA......
@@ -1227,7 +1246,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 63 (trap door)
+# tile 64 (trap door)
 {
   AAAAAAAAAAAAAAAA
   A.AAAAAAAAAAAABA
@@ -1246,7 +1265,7 @@ Z = (195, 195, 195)
   A.PPPPPPPPPPPPPA
   AAAAAAAAAAAAAAAA
 }
-# tile 64 (teleportation trap)
+# tile 65 (teleportation trap)
 {
   ................
   .....DDDDD......
@@ -1265,7 +1284,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 65 (level teleporter)
+# tile 66 (level teleporter)
 {
   ................
   .....DDADD......
@@ -1284,7 +1303,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 66 (magic portal)
+# tile 67 (magic portal)
 {
   ................
   .....DDDDD......
@@ -1303,7 +1322,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 67 (web)
+# tile 68 (web)
 {
   OAOA.OA...O....O
   .O.NNNN.NOA..OOA
@@ -1322,7 +1341,7 @@ Z = (195, 195, 195)
   .OA.............
   OA..............
 }
-# tile 68 (statue trap)
+# tile 69 (statue trap)
 {
   ................
   .....DDDDD......
@@ -1341,7 +1360,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 69 (magic trap)
+# tile 70 (magic trap)
 {
   ................
   .....DDDDD......
@@ -1360,7 +1379,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 70 (anti-magic field)
+# tile 71 (anti-magic field)
 {
   ................
   ......DDDDD.....
@@ -1379,7 +1398,7 @@ Z = (195, 195, 195)
   .....AAAAA......
   ................
 }
-# tile 71 (polymorph trap)
+# tile 72 (polymorph trap)
 {
   ................
   .....DDDDD......
@@ -1398,7 +1417,7 @@ Z = (195, 195, 195)
   ......AAAAA.....
   ................
 }
-# tile 72 (vibrating square)
+# tile 73 (vibrating square)
 {
   ................
   ................
@@ -1417,7 +1436,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 73 (trapped door)
+# tile 74 (trapped door)
 {
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
@@ -1436,7 +1455,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
 }
-# tile 74 (trapped chest)
+# tile 75 (trapped chest)
 {
   ................
   ................
@@ -1455,7 +1474,7 @@ Z = (195, 195, 195)
   CKKKKKKKKKKJAA..
   .NAAAAAAAAAAA...
 }
-# tile 75 (missile zap 1 0)
+# tile 76 (missile zap 1 0)
 {
   .......II.......
   ......IIII......
@@ -1474,7 +1493,7 @@ Z = (195, 195, 195)
   ......IIII......
   .......II.......
 }
-# tile 76 (missile zap 1 1)
+# tile 77 (missile zap 1 1)
 {
   ................
   ................
@@ -1493,7 +1512,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 77 (missile zap 1 2)
+# tile 78 (missile zap 1 2)
 {
   III.............
   IIII............
@@ -1512,7 +1531,7 @@ Z = (195, 195, 195)
   ............IIII
   .............III
 }
-# tile 78 (missile zap 1 3)
+# tile 79 (missile zap 1 3)
 {
   .............III
   ............IIII
@@ -1531,7 +1550,7 @@ Z = (195, 195, 195)
   IIII............
   III.............
 }
-# tile 79 (fire zap 2 0)
+# tile 80 (fire zap 2 0)
 {
   .......CC.......
   ......CCCC......
@@ -1550,7 +1569,7 @@ Z = (195, 195, 195)
   ......CCCC......
   .......CC.......
 }
-# tile 80 (fire zap 2 1)
+# tile 81 (fire zap 2 1)
 {
   ................
   ................
@@ -1569,7 +1588,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 81 (fire zap 2 2)
+# tile 82 (fire zap 2 2)
 {
   CCC.............
   CCCC............
@@ -1588,7 +1607,7 @@ Z = (195, 195, 195)
   ............CCCC
   .............CCC
 }
-# tile 82 (fire zap 2 3)
+# tile 83 (fire zap 2 3)
 {
   .............CCC
   ............CCCC
@@ -1607,7 +1626,7 @@ Z = (195, 195, 195)
   CCCC............
   CCC.............
 }
-# tile 83 (frost zap 3 0)
+# tile 84 (frost zap 3 0)
 {
   .......NN.......
   ......NNNN......
@@ -1626,7 +1645,7 @@ Z = (195, 195, 195)
   ......NNNN......
   .......NN.......
 }
-# tile 84 (frost zap 3 1)
+# tile 85 (frost zap 3 1)
 {
   ................
   ................
@@ -1645,7 +1664,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 85 (frost zap 3 2)
+# tile 86 (frost zap 3 2)
 {
   NNN.............
   NNNN............
@@ -1664,7 +1683,7 @@ Z = (195, 195, 195)
   ............NNNN
   .............NNN
 }
-# tile 86 (frost zap 3 3)
+# tile 87 (frost zap 3 3)
 {
   .............NNN
   ............NNNN
@@ -1683,7 +1702,7 @@ Z = (195, 195, 195)
   NNNN............
   NNN.............
 }
-# tile 87 (sleep zap 4 0)
+# tile 88 (sleep zap 4 0)
 {
   .......BB.......
   ......BBBB......
@@ -1702,7 +1721,7 @@ Z = (195, 195, 195)
   ......BBBB......
   .......BB.......
 }
-# tile 88 (sleep zap 4 1)
+# tile 89 (sleep zap 4 1)
 {
   ................
   ................
@@ -1721,7 +1740,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 89 (sleep zap 4 2)
+# tile 90 (sleep zap 4 2)
 {
   BBB.............
   BBBB............
@@ -1740,7 +1759,7 @@ Z = (195, 195, 195)
   ............BBBB
   .............BBB
 }
-# tile 90 (sleep zap 4 3)
+# tile 91 (sleep zap 4 3)
 {
   .............BBB
   ............BBBB
@@ -1759,7 +1778,7 @@ Z = (195, 195, 195)
   BBBB............
   BBB.............
 }
-# tile 91 (death zap 5 0)
+# tile 92 (death zap 5 0)
 {
   .......AA.......
   ......AAAA......
@@ -1778,7 +1797,7 @@ Z = (195, 195, 195)
   ......AAAA......
   .......AA.......
 }
-# tile 92 (death zap 5 1)
+# tile 93 (death zap 5 1)
 {
   ................
   ................
@@ -1797,7 +1816,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 93 (death zap 5 2)
+# tile 94 (death zap 5 2)
 {
   AAA.............
   AAAA............
@@ -1816,7 +1835,7 @@ Z = (195, 195, 195)
   ............AAAA
   .............AAA
 }
-# tile 94 (death zap 5 3)
+# tile 95 (death zap 5 3)
 {
   .............AAA
   ............AAAA
@@ -1835,7 +1854,7 @@ Z = (195, 195, 195)
   AAAA............
   AAA.............
 }
-# tile 95 (lightning zap 6 0)
+# tile 96 (lightning zap 6 0)
 {
   .......NN.......
   ......NNNN......
@@ -1854,7 +1873,7 @@ Z = (195, 195, 195)
   ......NNNN......
   .......NN.......
 }
-# tile 96 (lightning zap 6 1)
+# tile 97 (lightning zap 6 1)
 {
   ................
   ................
@@ -1873,7 +1892,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 97 (lightning zap 6 2)
+# tile 98 (lightning zap 6 2)
 {
   NNN.............
   NNNN............
@@ -1892,7 +1911,7 @@ Z = (195, 195, 195)
   ............NNNN
   .............NNN
 }
-# tile 98 (lightning zap 6 3)
+# tile 99 (lightning zap 6 3)
 {
   .............NNN
   ............NNNN
@@ -1911,7 +1930,7 @@ Z = (195, 195, 195)
   NNNN............
   NNN.............
 }
-# tile 99 (poison gas zap 7 0)
+# tile 100 (poison gas zap 7 0)
 {
   .......FF.......
   ......FFFF......
@@ -1930,7 +1949,7 @@ Z = (195, 195, 195)
   ......FFFF......
   .......FF.......
 }
-# tile 100 (poison gas zap 7 1)
+# tile 101 (poison gas zap 7 1)
 {
   ................
   ................
@@ -1949,7 +1968,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 101 (poison gas zap 7 2)
+# tile 102 (poison gas zap 7 2)
 {
   FFF.............
   FFFF............
@@ -1968,7 +1987,7 @@ Z = (195, 195, 195)
   ............FFFF
   .............FFF
 }
-# tile 102 (poison gas zap 7 3)
+# tile 103 (poison gas zap 7 3)
 {
   .............FFF
   ............FFFF
@@ -1987,7 +2006,7 @@ Z = (195, 195, 195)
   FFFF............
   FFF.............
 }
-# tile 103 (acid zap 8 0)
+# tile 104 (acid zap 8 0)
 {
   .......GG.......
   ......GGGG......
@@ -2006,7 +2025,7 @@ Z = (195, 195, 195)
   ......GGGG......
   .......GG.......
 }
-# tile 104 (acid zap 8 1)
+# tile 105 (acid zap 8 1)
 {
   ................
   ................
@@ -2025,7 +2044,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 105 (acid zap 8 2)
+# tile 106 (acid zap 8 2)
 {
   GGG.............
   GGGG............
@@ -2044,7 +2063,7 @@ Z = (195, 195, 195)
   ............GGGG
   .............GGG
 }
-# tile 106 (acid zap 8 3)
+# tile 107 (acid zap 8 3)
 {
   .............GGG
   ............GGGG
@@ -2063,7 +2082,7 @@ Z = (195, 195, 195)
   GGGG............
   GGG.............
 }
-# tile 107 (dig beam)
+# tile 108 (dig beam)
 {
   ....AAAA........
   ..A....AA..AA...
@@ -2082,7 +2101,7 @@ Z = (195, 195, 195)
   ....AA....AAA...
   ................
 }
-# tile 108 (flash beam)
+# tile 109 (flash beam)
 {
   ................
   .....NNNNNN.....
@@ -2101,7 +2120,7 @@ Z = (195, 195, 195)
   .....NNNNNN.....
   ................
 }
-# tile 109 (boom left)
+# tile 110 (boom left)
 {
   ................
   ................
@@ -2120,7 +2139,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 110 (boom right)
+# tile 111 (boom right)
 {
   ................
   ................
@@ -2139,7 +2158,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 111 (shield1)
+# tile 112 (shield1)
 {
   ................
   .....I....I.....
@@ -2158,7 +2177,7 @@ Z = (195, 195, 195)
   .....I....I.....
   ................
 }
-# tile 112 (shield2)
+# tile 113 (shield2)
 {
   ................
   .CCCCCCCCCCCCCCC
@@ -2177,7 +2196,7 @@ Z = (195, 195, 195)
   .CCCCCCCCCCCCCC.
   ................
 }
-# tile 113 (shield3)
+# tile 114 (shield3)
 {
   .......HH.......
   .......HH.......
@@ -2196,7 +2215,7 @@ Z = (195, 195, 195)
   .......HH.......
   .......HH.......
 }
-# tile 114 (shield4)
+# tile 115 (shield4)
 {
   ................
   ......NNNNN.....
@@ -2215,7 +2234,7 @@ Z = (195, 195, 195)
   .....NNNNN......
   ................
 }
-# tile 115 (poison cloud)
+# tile 116 (poison cloud)
 {
   BBBBBBBBBBBBBBBB
   BBBBBFFFFFFFBBBB
@@ -2234,7 +2253,7 @@ Z = (195, 195, 195)
   BBBBBBGGGGBBBBBB
   BBBBBBBBBBBBBBBB
 }
-# tile 116 (valid position)
+# tile 117 (valid position)
 {
   ................
   ................
@@ -2253,7 +2272,7 @@ Z = (195, 195, 195)
   .......FF.......
   ................
 }
-# tile 117 (swallow top left)
+# tile 118 (swallow top left)
 {
   AAAAAAADDDDDDAAA
   AAAAADDDDDDDDDDD
@@ -2272,7 +2291,7 @@ Z = (195, 195, 195)
   AAAADDDDDD......
   AAAADDDDDD......
 }
-# tile 118 (swallow top center)
+# tile 119 (swallow top center)
 {
   AAAAAAAAAAAAAAAA
   DDAAAAAAAAAAAAAA
@@ -2291,7 +2310,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 119 (swallow top right)
+# tile 120 (swallow top right)
 {
   AAAAAAAAAAAAAAAA
   AAADDDDDAAAAAAAA
@@ -2310,7 +2329,7 @@ Z = (195, 195, 195)
   ....DDDDDDDDDDDD
   ....DDDDDDDDDDDA
 }
-# tile 120 (swallow middle left)
+# tile 121 (swallow middle left)
 {
   AAAADDDDDD......
   AAAADDDDDDD.....
@@ -2329,7 +2348,7 @@ Z = (195, 195, 195)
   DDDDDDD.........
   DDCCDDD.........
 }
-# tile 121 (swallow middle right)
+# tile 122 (swallow middle right)
 {
   ....DDDDDDDDDDDA
   ....DDDDDDDDDDDA
@@ -2348,7 +2367,7 @@ Z = (195, 195, 195)
   ......DDDDDDDDAA
   .......DDDDDDDAA
 }
-# tile 122 (swallow bottom left)
+# tile 123 (swallow bottom left)
 {
   DDDCDDD.........
   DDDCDDD.........
@@ -2367,7 +2386,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAADDDD
   AAAAAAAAAAAAAADD
 }
-# tile 123 (swallow bottom center)
+# tile 124 (swallow bottom center)
 {
   ................
   ................
@@ -2386,7 +2405,7 @@ Z = (195, 195, 195)
   DDDDDDDDDDDDDDDD
   DDDDDDDDDDDDDDAA
 }
-# tile 124 (swallow bottom right)
+# tile 125 (swallow bottom right)
 {
   ......DDDDDDDDAA
   ......DDDDDDDDDA
@@ -2405,7 +2424,7 @@ Z = (195, 195, 195)
   DDAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
 }
-# tile 125 (explosion dark top left)
+# tile 126 (explosion dark top left)
 {
   ................
   ................
@@ -2424,7 +2443,7 @@ Z = (195, 195, 195)
   ..AAAA..AAAA....
   ..AAA..AAAAA....
 }
-# tile 126 (explosion dark top center)
+# tile 127 (explosion dark top center)
 {
   ................
   ................
@@ -2443,7 +2462,7 @@ Z = (195, 195, 195)
   ........A.A.APAA
   .PA...APAAAAAAAA
 }
-# tile 127 (explosion dark top right)
+# tile 128 (explosion dark top right)
 {
   ................
   ................
@@ -2462,7 +2481,7 @@ Z = (195, 195, 195)
   AA.A..A.AAAA....
   A.AA..A.AAAAA...
 }
-# tile 128 (explosion dark middle left)
+# tile 129 (explosion dark middle left)
 {
   ..AAA.A.AAA.....
   ..AAA.AAAAA.AP..
@@ -2481,7 +2500,7 @@ Z = (195, 195, 195)
   ..A.A...AAP...PA
   ....A.........PA
 }
-# tile 129 (explosion dark middle center)
+# tile 130 (explosion dark middle center)
 {
   APAAA..PPAPAAAAA
   .APA..A.AAAPAAA.
@@ -2500,7 +2519,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAAA.AA
   AAAAAAAAAAA.HH..
 }
-# tile 130 (explosion dark middle right)
+# tile 131 (explosion dark middle right)
 {
   ..AAA.A.A.AAAA..
   ..AAAAA.A.AAAA..
@@ -2519,7 +2538,7 @@ Z = (195, 195, 195)
   AAA...AAAAAAA...
   ....PPAAAAAAAA..
 }
-# tile 131 (explosion dark bottom left)
+# tile 132 (explosion dark bottom left)
 {
   ....A.......A..P
   ....A.......AA..
@@ -2538,7 +2557,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 132 (explosion dark bottom center)
+# tile 133 (explosion dark bottom center)
 {
   PPPAAAAAPAAA.A..
   AAPPAAPPPPA.A...
@@ -2557,7 +2576,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 133 (explosion dark bottom right)
+# tile 134 (explosion dark bottom right)
 {
   ....P..AAAAAAA..
   ..A..A.AA.A.AA..
@@ -2576,7 +2595,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 134 (explosion noxious top left)
+# tile 135 (explosion noxious top left)
 {
   ................
   ................
@@ -2595,7 +2614,7 @@ Z = (195, 195, 195)
   ..FFFF..FFFF....
   ..FFF..FFFFF....
 }
-# tile 135 (explosion noxious top center)
+# tile 136 (explosion noxious top center)
 {
   ................
   ................
@@ -2614,7 +2633,7 @@ Z = (195, 195, 195)
   ........F.F.FGFF
   .GH...HGHHFFFFFF
 }
-# tile 136 (explosion noxious top right)
+# tile 137 (explosion noxious top right)
 {
   ................
   ................
@@ -2633,7 +2652,7 @@ Z = (195, 195, 195)
   FF.F..F.FFFF....
   F.FF..F.FFFFF...
 }
-# tile 137 (explosion noxious middle left)
+# tile 138 (explosion noxious middle left)
 {
   ..FFF.F.FFF.....
   ..FFF.FFFFF.FG..
@@ -2652,7 +2671,7 @@ Z = (195, 195, 195)
   ..F.F...FHG...GH
   ....F.........GH
 }
-# tile 138 (explosion noxious middle center)
+# tile 139 (explosion noxious middle center)
 {
   FGHFF..GGFGHFFFF
   .HGH..F.FFHGFHF.
@@ -2671,7 +2690,7 @@ Z = (195, 195, 195)
   HHHHNHNHN.GGG.GF
   GGGGNHHHGGG.HH..
 }
-# tile 139 (explosion noxious middle right)
+# tile 140 (explosion noxious middle right)
 {
   ..FFF.F.F.FFFF..
   ..FFFFF.F.FFFF..
@@ -2690,7 +2709,7 @@ Z = (195, 195, 195)
   HFH...FFFFFFF...
   ....GGFFFFFFFF..
 }
-# tile 140 (explosion noxious bottom left)
+# tile 141 (explosion noxious bottom left)
 {
   ....F.......H..G
   ....F.......FH..
@@ -2709,7 +2728,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 141 (explosion noxious bottom center)
+# tile 142 (explosion noxious bottom center)
 {
   GGGHHHHHGHHH.H..
   HHGGHHGGGGH.F...
@@ -2728,7 +2747,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 142 (explosion noxious bottom right)
+# tile 143 (explosion noxious bottom right)
 {
   ....G..FFFFFFF..
   ..F..F.FF.F.FF..
@@ -2747,7 +2766,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 143 (explosion muddy top left)
+# tile 144 (explosion muddy top left)
 {
   ................
   ................
@@ -2766,7 +2785,7 @@ Z = (195, 195, 195)
   ..JJJJKKJJJJKKKK
   ..JJJKKJJJJJKKKK
 }
-# tile 144 (explosion muddy top center)
+# tile 145 (explosion muddy top center)
 {
   ................
   ................
@@ -2785,7 +2804,7 @@ Z = (195, 195, 195)
   KKKKKKKKJKJKJCJJ
   KCLKKKLCLLJJJJJJ
 }
-# tile 145 (explosion muddy top right)
+# tile 146 (explosion muddy top right)
 {
   ................
   ................
@@ -2804,7 +2823,7 @@ Z = (195, 195, 195)
   JJKJKKJKJJJJ....
   JKJJKKJKJJJJJ...
 }
-# tile 146 (explosion muddy middle left)
+# tile 147 (explosion muddy middle left)
 {
   ..JJJKJKJJJKKKKK
   ..JJJKJJJJJKJCKK
@@ -2823,7 +2842,7 @@ Z = (195, 195, 195)
   ..J.JKKKJLCKKKCL
   ....JKKKKKKKKKCL
 }
-# tile 147 (explosion muddy middle center)
+# tile 148 (explosion muddy middle center)
 {
   JCLJJKKCCJCLJJJJ
   KLCLKKJKJJLCJLJK
@@ -2842,7 +2861,7 @@ Z = (195, 195, 195)
   LLLLCLCLCKCCCKCJ
   CCCCCLLLCCCKLLKK
 }
-# tile 148 (explosion muddy middle right)
+# tile 149 (explosion muddy middle right)
 {
   KKJJJKJKJKJJJJ..
   KKJJJJJKJKJJJJ..
@@ -2861,7 +2880,7 @@ Z = (195, 195, 195)
   LJLKKKJJJJJJJ...
   KKKKCCJJJJJJJJ..
 }
-# tile 149 (explosion muddy bottom left)
+# tile 150 (explosion muddy bottom left)
 {
   ....JKKKKKKKLKKC
   ....JKKKKKKKJLKK
@@ -2880,7 +2899,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 150 (explosion muddy bottom center)
+# tile 151 (explosion muddy bottom center)
 {
   CCCLLLLLCLLLKLKK
   LLCCLLCCCCLKJKKK
@@ -2899,7 +2918,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 151 (explosion muddy bottom right)
+# tile 152 (explosion muddy bottom right)
 {
   KKKKCKKJJJJJJJ..
   KKJKKJKJJKJKJJ..
@@ -2918,7 +2937,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 152 (explosion wet top left)
+# tile 153 (explosion wet top left)
 {
   ................
   ................
@@ -2937,7 +2956,7 @@ Z = (195, 195, 195)
   ..EEEEPPEEEEPPPP
   ..EEEPPEEEEEPPPP
 }
-# tile 153 (explosion wet top center)
+# tile 154 (explosion wet top center)
 {
   ................
   ................
@@ -2956,7 +2975,7 @@ Z = (195, 195, 195)
   PPPPPPPPEPEPEBEE
   PBNPPPNBEEEEEEEE
 }
-# tile 154 (explosion wet top right)
+# tile 155 (explosion wet top right)
 {
   ................
   ................
@@ -2975,7 +2994,7 @@ Z = (195, 195, 195)
   EEPEPPEPEEEE....
   EPEEPPEPEEEEE...
 }
-# tile 155 (explosion wet middle left)
+# tile 156 (explosion wet middle left)
 {
   ..EEEPEPEEEPPPPP
   ..EEEPEEEEEPEBPP
@@ -2994,7 +3013,7 @@ Z = (195, 195, 195)
   ..E.EPPPENBPPPBE
   ....EPPPPPPPPPBE
 }
-# tile 156 (explosion wet middle center)
+# tile 157 (explosion wet middle center)
 {
   EBNEEPPBBEBNEEEE
   PNBNPPEPEEEBENEP
@@ -3013,7 +3032,7 @@ Z = (195, 195, 195)
   EEEEEEEEEPBBBPBE
   BBBBEEEEBBBPNNPP
 }
-# tile 157 (explosion wet middle right)
+# tile 158 (explosion wet middle right)
 {
   PPEEEPEPEPEEEE..
   PPEEEEEPEPEEEE..
@@ -3032,7 +3051,7 @@ Z = (195, 195, 195)
   NENPPPEEEEEEE...
   PPPPBBEEEEEEEE..
 }
-# tile 158 (explosion wet bottom left)
+# tile 159 (explosion wet bottom left)
 {
   ....EPPPPPPPNPPB
   ....EPPPPPPPENPP
@@ -3051,7 +3070,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 159 (explosion wet bottom center)
+# tile 160 (explosion wet bottom center)
 {
   BBBEEEEEBEEEPEPP
   EEBBEEBBBBEPEPPP
@@ -3070,7 +3089,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 160 (explosion wet bottom right)
+# tile 161 (explosion wet bottom right)
 {
   PPPPBPPEEEEEEE..
   PPEPPEPEEPEPEE..
@@ -3089,7 +3108,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 161 (explosion magical top left)
+# tile 162 (explosion magical top left)
 {
   ................
   ................
@@ -3108,7 +3127,7 @@ Z = (195, 195, 195)
   ..EEEEIIEEEEIIII
   ..EEEIIEEEEEIIII
 }
-# tile 162 (explosion magical top center)
+# tile 163 (explosion magical top center)
 {
   ................
   ................
@@ -3127,7 +3146,7 @@ Z = (195, 195, 195)
   IIIIIIIIEIEIELEE
   ILHIIIHLHHEEEEEE
 }
-# tile 163 (explosion magical top right)
+# tile 164 (explosion magical top right)
 {
   ................
   ................
@@ -3146,7 +3165,7 @@ Z = (195, 195, 195)
   EEIEIIEIEEEE....
   EIEEIIEIEEEEE...
 }
-# tile 164 (explosion magical middle left)
+# tile 165 (explosion magical middle left)
 {
   ..EEEIEIEEEIIIII
   ..EEEIEEEEEIEIII
@@ -3165,7 +3184,7 @@ Z = (195, 195, 195)
   ..E.EIIIENIIIIIN
   ....EIIIIIIIIIIN
 }
-# tile 165 (explosion magical middle center)
+# tile 166 (explosion magical middle center)
 {
   EINEEIIIIEINEEEE
   ININIIEIEENIENEI
@@ -3184,7 +3203,7 @@ Z = (195, 195, 195)
   NNNNNNNNNIIIIIIE
   IIIINNNNIIIINNII
 }
-# tile 166 (explosion magical middle right)
+# tile 167 (explosion magical middle right)
 {
   IIEEEIEIEIEEEE..
   IIEEEEEIEIEEEE..
@@ -3203,7 +3222,7 @@ Z = (195, 195, 195)
   NENIIIEEEEEEE...
   IIIIIIEEEEEEEE..
 }
-# tile 167 (explosion magical bottom left)
+# tile 168 (explosion magical bottom left)
 {
   ....EIIIIIIIHIII
   ....EIIIIIIIEHII
@@ -3222,7 +3241,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 168 (explosion magical bottom center)
+# tile 169 (explosion magical bottom center)
 {
   IIINNNNNINNNINII
   NNIINNIIIINIEIII
@@ -3241,7 +3260,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 169 (explosion magical bottom right)
+# tile 170 (explosion magical bottom right)
 {
   IIIIIIIEEEEEEE..
   IIEIIEIEEIEIEE..
@@ -3260,7 +3279,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 170 (explosion fiery top left)
+# tile 171 (explosion fiery top left)
 {
   ................
   ................
@@ -3279,7 +3298,7 @@ Z = (195, 195, 195)
   ..DDDDCCDDDDCCCC
   ..DDDCCDDDDDCCCC
 }
-# tile 171 (explosion fiery top center)
+# tile 172 (explosion fiery top center)
 {
   ................
   ................
@@ -3298,7 +3317,7 @@ Z = (195, 195, 195)
   CCCCCCCCDCDCDLDD
   CLHCCCHLHHDDDDDD
 }
-# tile 172 (explosion fiery top right)
+# tile 173 (explosion fiery top right)
 {
   ................
   ................
@@ -3317,7 +3336,7 @@ Z = (195, 195, 195)
   DDCDCCDCDDDD....
   DCDDCCDCDDDDD...
 }
-# tile 173 (explosion fiery middle left)
+# tile 174 (explosion fiery middle left)
 {
   ..DDDCDCDDDCCCCC
   ..DDDCDDDDDCDLCC
@@ -3336,7 +3355,7 @@ Z = (195, 195, 195)
   ..D.DCCCDHLCCCLH
   ....DCCCCCCCCCLH
 }
-# tile 174 (explosion fiery middle center)
+# tile 175 (explosion fiery middle center)
 {
   DLHDDCCLLDLHDDDD
   CHLHCCDCDDHLDHDC
@@ -3355,7 +3374,7 @@ Z = (195, 195, 195)
   HHHHNHNHNCLLLCLD
   LLLLNHHHLLLCHHCC
 }
-# tile 175 (explosion fiery middle right)
+# tile 176 (explosion fiery middle right)
 {
   CCDDDCDCDCDDDD..
   CCDDDDDCDCDDDD..
@@ -3374,7 +3393,7 @@ Z = (195, 195, 195)
   HDHCCCDDDDDDD...
   CCCCLLDDDDDDDD..
 }
-# tile 176 (explosion fiery bottom left)
+# tile 177 (explosion fiery bottom left)
 {
   ....DCCCCCCCHCCL
   ....DCCCCCCCDHCC
@@ -3393,7 +3412,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 177 (explosion fiery bottom center)
+# tile 178 (explosion fiery bottom center)
 {
   LLLHHHHHLHHHCHCC
   HHLLHHLLLLHCDCCC
@@ -3412,7 +3431,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 178 (explosion fiery bottom right)
+# tile 179 (explosion fiery bottom right)
 {
   CCCCLCCDDDDDDD..
   CCDCCDCDDCDCDD..
@@ -3431,7 +3450,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 179 (explosion frosty top left)
+# tile 180 (explosion frosty top left)
 {
   ................
   ................
@@ -3450,7 +3469,7 @@ Z = (195, 195, 195)
   ..EEEEPPNBEEPPPP
   ..EEEPPEEEEEPPPP
 }
-# tile 180 (explosion frosty top center)
+# tile 181 (explosion frosty top center)
 {
   ................
   ................
@@ -3469,7 +3488,7 @@ Z = (195, 195, 195)
   PPPPPPPPEPEPEBEE
   PBNPPPNBNNEEEEEE
 }
-# tile 181 (explosion frosty top right)
+# tile 182 (explosion frosty top right)
 {
   ................
   ................
@@ -3488,7 +3507,7 @@ Z = (195, 195, 195)
   EEPEPPEPEEEE....
   EPEEPPEPEEEEE...
 }
-# tile 182 (explosion frosty middle left)
+# tile 183 (explosion frosty middle left)
 {
   ..EEEPEPEEEPPPPP
   ..EEEPEEEEEPEBPP
@@ -3507,7 +3526,7 @@ Z = (195, 195, 195)
   ..E.EPPPENBPPPBN
   ....EPPPPPPPPPBN
 }
-# tile 183 (explosion frosty middle center)
+# tile 184 (explosion frosty middle center)
 {
   EBNEEPPBBEBNEEEE
   PNBNPPEPEENBENEP
@@ -3526,7 +3545,7 @@ Z = (195, 195, 195)
   NNNNNNNNNPBBBPBE
   BBBBNNNNBBBPNNPP
 }
-# tile 184 (explosion frosty middle right)
+# tile 185 (explosion frosty middle right)
 {
   PPEEEPEPEPEEEE..
   PPEEEEEPEPEEEE..
@@ -3545,7 +3564,7 @@ Z = (195, 195, 195)
   NENPPPEEEEEEE...
   PPPPBBEEEEEEEE..
 }
-# tile 185 (explosion frosty bottom left)
+# tile 186 (explosion frosty bottom left)
 {
   ....EPPPPPPPNPPB
   ....EPPPPPPPENPP
@@ -3564,7 +3583,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 186 (explosion frosty bottom center)
+# tile 187 (explosion frosty bottom center)
 {
   BBBNNNNNBNNNPNPP
   NNBBNNBBBBNPEPPP
@@ -3583,7 +3602,7 @@ Z = (195, 195, 195)
   ................
   ................
 }
-# tile 187 (explosion frosty bottom right)
+# tile 188 (explosion frosty bottom right)
 {
   PPPPBPPEEEEEEE..
   PPEPPEPEEPEPEE..
@@ -3602,7 +3621,7 @@ Z = (195, 195, 195)
   ...........N....
   ................
 }
-# tile 188 (warning 0)
+# tile 189 (warning 0)
 {
   ................
   ................
@@ -3621,7 +3640,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 189 (warning 1)
+# tile 190 (warning 1)
 {
   ................
   ................
@@ -3640,7 +3659,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 190 (warning 2)
+# tile 191 (warning 2)
 {
   ................
   ................
@@ -3659,7 +3678,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 191 (warning 3)
+# tile 192 (warning 3)
 {
   ................
   ................
@@ -3678,7 +3697,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 192 (warning 4)
+# tile 193 (warning 4)
 {
   ................
   ................
@@ -3697,7 +3716,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 193 (warning 5)
+# tile 194 (warning 5)
 {
   ................
   ................
@@ -3716,7 +3735,7 @@ Z = (195, 195, 195)
   .......AA.......
   ................
 }
-# tile 194 (unexplored)
+# tile 195 (unexplored)
 {
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
@@ -3735,7 +3754,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
 }
-# tile 195 (nothing)
+# tile 196 (nothing)
 {
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
@@ -3754,7 +3773,7 @@ Z = (195, 195, 195)
   AAAAAAAAAAAAAAAA
   AAAAAAAAAAAAAAAA
 }
-# tile 196 (mines walls vertical)
+# tile 197 (mines walls vertical)
 {
   AJJKKKACJAAJJJAA
   AJKKKACLJJAJJJJA
@@ -3773,7 +3792,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 197 (mines walls horizontal)
+# tile 198 (mines walls horizontal)
 {
   AJAAAAAAJJAAAJAA
   JJJAAAJJJJJAAAAJ
@@ -3792,7 +3811,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 198 (mines walls tlcorn)
+# tile 199 (mines walls tlcorn)
 {
   AAAAAAKCCKKJAAAA
   AAAAKKCLCJKJJAAA
@@ -3811,7 +3830,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 199 (mines walls trcorn)
+# tile 200 (mines walls trcorn)
 {
   AAAAAAKCCKKJAAAA
   AAAAKKCLCJKJJAAA
@@ -3830,7 +3849,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 200 (mines walls blcorn)
+# tile 201 (mines walls blcorn)
 {
   AKKKAAKKKKAAJJJA
   AKKAAKCCCJJJAAJA
@@ -3849,7 +3868,7 @@ Z = (195, 195, 195)
   AJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 201 (mines walls brcorn)
+# tile 202 (mines walls brcorn)
 {
   AKKAAAKKAAAAJJJA
   AKAAKKLCKAAAAAJA
@@ -3868,7 +3887,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJA
   AAAAAAAAAAAAAAAA
 }
-# tile 202 (mines walls cross wall)
+# tile 203 (mines walls cross wall)
 {
   AAAAAAKCCKKJAAAA
   AAAAKCCLCJKJJAAA
@@ -3887,7 +3906,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 203 (mines walls tuwall)
+# tile 204 (mines walls tuwall)
 {
   AKKAAAKKKKAAJJJA
   AKAAKKLCCJJJAAJA
@@ -3906,7 +3925,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 204 (mines walls tdwall)
+# tile 205 (mines walls tdwall)
 {
   AAAAAAKCCKKJAAAA
   AAAAKCCLCJKJJAAA
@@ -3925,7 +3944,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 205 (mines walls tlwall)
+# tile 206 (mines walls tlwall)
 {
   AKKAACKCCKKJAJJA
   AKACKKKLLJKJJAJA
@@ -3944,7 +3963,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 206 (mines walls trwall)
+# tile 207 (mines walls trwall)
 {
   AKKAACKCCKKJAJJA
   AKACKKCLCJKJJAJA
@@ -3963,7 +3982,7 @@ Z = (195, 195, 195)
   AAJACKCKKJJJAJAA
   AAJCKKJAAAJJJJJA
 }
-# tile 207 (gehennom walls vertical)
+# tile 208 (gehennom walls vertical)
 {
   ALLDAJ11111JLLDA
   ADDDAJ1J11JJDDDA
@@ -3982,7 +4001,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 208 (gehennom walls horizontal)
+# tile 209 (gehennom walls horizontal)
 {
   AAALDDAAAAALDDAA
   DDDLDDAJDDDLDDAJ
@@ -4001,7 +4020,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 209 (gehennom walls tlcorn)
+# tile 210 (gehennom walls tlcorn)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4020,7 +4039,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 210 (gehennom walls trcorn)
+# tile 211 (gehennom walls trcorn)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4039,7 +4058,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 211 (gehennom walls blcorn)
+# tile 212 (gehennom walls blcorn)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4058,7 +4077,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 212 (gehennom walls brcorn)
+# tile 213 (gehennom walls brcorn)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4077,7 +4096,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 213 (gehennom walls cross wall)
+# tile 214 (gehennom walls cross wall)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4096,7 +4115,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 214 (gehennom walls tuwall)
+# tile 215 (gehennom walls tuwall)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4115,7 +4134,7 @@ Z = (195, 195, 195)
   JJJJJJJJJJJJJJJJ
   AAAAAAAAAAAAAAAA
 }
-# tile 215 (gehennom walls tdwall)
+# tile 216 (gehennom walls tdwall)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4134,7 +4153,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 216 (gehennom walls tlwall)
+# tile 217 (gehennom walls tlwall)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4153,7 +4172,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 217 (gehennom walls trwall)
+# tile 218 (gehennom walls trwall)
 {
   AAALLLLDDDDDDAAA
   LLLLAAJJ1111DJJJ
@@ -4172,7 +4191,7 @@ Z = (195, 195, 195)
   AJJJAJJ1111JJJJA
   AD11AJJ1111JD1JA
 }
-# tile 218 (knox walls vertical)
+# tile 219 (knox walls vertical)
 {
   AJJJAAACJAAAJJJA
   AJJJAACLJJAAJJJA
@@ -4191,7 +4210,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 219 (knox walls horizontal)
+# tile 220 (knox walls horizontal)
 {
   AJAAAJAAAJAAAJAA
   JJJAAAJAJJJAAAJA
@@ -4210,7 +4229,7 @@ Z = (195, 195, 195)
   KJJACJJAKJJACJJA
   AAAAAAAAAAAAAAAA
 }
-# tile 220 (knox walls tlcorn)
+# tile 221 (knox walls tlcorn)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4229,7 +4248,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 221 (knox walls trcorn)
+# tile 222 (knox walls trcorn)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4248,7 +4267,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 222 (knox walls blcorn)
+# tile 223 (knox walls blcorn)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4267,7 +4286,7 @@ Z = (195, 195, 195)
   KJJACJJAKJJACJJA
   AAAAAAAAAAAAAAAA
 }
-# tile 223 (knox walls brcorn)
+# tile 224 (knox walls brcorn)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4286,7 +4305,7 @@ Z = (195, 195, 195)
   KJJACJJAKJJACJJA
   AAAAAAAAAAAAAAAA
 }
-# tile 224 (knox walls cross wall)
+# tile 225 (knox walls cross wall)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4305,7 +4324,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 225 (knox walls tuwall)
+# tile 226 (knox walls tuwall)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4324,7 +4343,7 @@ Z = (195, 195, 195)
   KJJACJJAKJJACJJA
   AAAAAAAAAAAAAAAA
 }
-# tile 226 (knox walls tdwall)
+# tile 227 (knox walls tdwall)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4343,7 +4362,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 227 (knox walls tlwall)
+# tile 228 (knox walls tlwall)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4362,7 +4381,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 228 (knox walls trwall)
+# tile 229 (knox walls trwall)
 {
   AAAAAAKCJKAAAAAA
   AAAAKKCLKJKKAAAA
@@ -4381,7 +4400,7 @@ Z = (195, 195, 195)
   AAJAAACKKJAAAJAA
   ACJJAAAAAAAACJJA
 }
-# tile 229 (sokoban walls vertical)
+# tile 230 (sokoban walls vertical)
 {
   ANNBA1EEEEE1NNBA
   ABBBA1E1EE11BBBA
@@ -4400,7 +4419,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 230 (sokoban walls horizontal)
+# tile 231 (sokoban walls horizontal)
 {
   AAANBBAAAAANBBAA
   BBBNBBA1BBBNBBA1
@@ -4419,7 +4438,7 @@ Z = (195, 195, 195)
   1111111111111111
   AAAAAAAAAAAAAAAA
 }
-# tile 231 (sokoban walls tlcorn)
+# tile 232 (sokoban walls tlcorn)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4438,7 +4457,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 232 (sokoban walls trcorn)
+# tile 233 (sokoban walls trcorn)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4457,7 +4476,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 233 (sokoban walls blcorn)
+# tile 234 (sokoban walls blcorn)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4476,7 +4495,7 @@ Z = (195, 195, 195)
   1111111111111111
   AAAAAAAAAAAAAAAA
 }
-# tile 234 (sokoban walls brcorn)
+# tile 235 (sokoban walls brcorn)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4495,7 +4514,7 @@ Z = (195, 195, 195)
   1111111111111111
   AAAAAAAAAAAAAAAA
 }
-# tile 235 (sokoban walls cross wall)
+# tile 236 (sokoban walls cross wall)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4514,7 +4533,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 236 (sokoban walls tuwall)
+# tile 237 (sokoban walls tuwall)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4533,7 +4552,7 @@ Z = (195, 195, 195)
   1111111111111111
   AAAAAAAAAAAAAAAA
 }
-# tile 237 (sokoban walls tdwall)
+# tile 238 (sokoban walls tdwall)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4552,7 +4571,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 238 (sokoban walls tlwall)
+# tile 239 (sokoban walls tlwall)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111
@@ -4571,7 +4590,7 @@ Z = (195, 195, 195)
   A111A11EEEE1111A
   ABEEA11EEEE1BE1A
 }
-# tile 239 (sokoban walls trwall)
+# tile 240 (sokoban walls trwall)
 {
   AAANNNNBBBBBBAAA
   NNNNAA11EEEEB111