wesnoth/data/core/terrain-graphics.cfg
2024-09-01 01:10:18 +02:00

1328 lines
96 KiB
INI

#textdomain wesnoth
# This file needs to be processed *after* all others in this directory
#
# The following flags are defined to have a meaning
#
# * base : the corresponding tile has already graphics for the terrain
# base. No other one should be added.
# * transition-$direction : the corresponding tile already has the transition
# in the given direction (or should not have one). No other one should be
# added.
#
# when adding new probabilities update the commented line
# the proper way to calculate the propabilities is described here
# https://www.wesnoth.org/wiki/TerrainGraphicsTutorial#Cumulative_Probabilities
# NOTE the terrain _off^_usr gets its definition from the code since it's
# themable
# Editor overlays - for overlays that should only be visible in the editor
{EDITOR_OVERLAY *^Xo impassable-editor}
{EDITOR_OVERLAY *^Qov unwalkable-editor}
{EDITOR_OVERLAY *^Vov village/village-overlay-editor}
{EDITOR_OVERLAY *^Cov castle/castle-overlay-editor}
{EDITOR_OVERLAY *^Kov castle/keep-overlay-editor}
{EDITOR_OVERLAY *^_s fake-shroud-editor}
# Deprecated terrains, shown normally in-game but visible in the editor
{EDITOR_DEPRECATED *^Uf*}
{EDITOR_DEPRECATED Xol}
{EDITOR_DEPRECATED Xuce}
{EDITOR_DEPRECATED Irs} # wmllint: noconvert
{EDITOR_DEPRECATED Ias} # wmllint: noconvert
{EDITOR_DEPRECATED Icr} # wmllint: noconvert
{EDITOR_DEPRECATED Ior} # wmllint: noconvert
{EDITOR_DEPRECATED Icn} # wmllint: noconvert
#############################################################
# Macros for where normal terrain code filtering doesn't work
# this may not be needed at some point
# this is needed for D*/Rrd/W* transitions
#define TG_RSTAR_NOT_RRD
Rb,Re,Rd,Rp,Rr,Rrc,Rra#enddef
# wmlindent: start ignoring
# deprecated codes, as of 1.17.9
#define TG_BUILT_STONE
Irs,Icr#enddef # wmllint: noconvert
# deprecated codes, as of 1.17.9
#define TG_BUILT_WOOD
Iwr,Ior,Icn#enddef # wmllint: noconvert
# wmlindent: stop ignoring
#############################################################
{NEW:FLOODFILL *^_mhh *^Qhh* (*^Qhu*,Qx*,Ql*) FLAG=flood_high_alt }
{NEW:FLOODFILL *^_mh *^Qhh* (*^Qhu*,Qx*,Ql*) FLAG=flood_high }
{NEW:FLOODFILL *^_mll *^Qhu* *^Qhh* FLAG=flood_low_alt }
{NEW:FLOODFILL *^_ml *^Qhu* *^Qhh* }
{NEW:FLOODFILL_BORDER_FILL *^Qhh* flood_high_alt }
{NEW:FLOODFILL_BORDER_FILL *^Qhh* flood_high }
{NEW:FLOODFILL_BORDER_FILL *^Qhu* flood_low }
{NEW:FLOODFILL_BORDER_FILL *^Qhu* flood_low_alt }
#ifdef EDITOR
{NEW:FLOODFILL_VISUAL darken IPF="~CS(10,40,140)~O(0.5)"}
{NEW:FLOODFILL_VISUAL darken IPF="~CS(-80,0,220)~O(0.65)" FLAG=flood_low_alt}
{NEW:FLOODFILL_VISUAL darken IPF="~CS(140,190,240)~O(0.55)" FLAG=flood_high}
{NEW:FLOODFILL_VISUAL darken IPF="~CS(180,240,240)~O(0.65)" FLAG=flood_high_alt}
# uncomment this to see where the floodfill has gone, if your graphics aren't behaving as expected
# {NEW:FLOODFILL_VISUAL darken IPF="~CS(250,0,0)" FLAG=elevated}
#endif
# not the same as FLOODFILL, but similarly sets flags for spillover
{NEW:SET_FLAG *^Qhhf smallforest2}
{NEW:SET_FLAG *^Qhuf smallforest2}
# Tracks and bridges
#define BRIDGE_LAYER
0#enddef
# basic stone bridge
{BRIDGE:STRAIGHTS Bsb\ Bsb| Bsb/ * * * stonebridge {BRIDGE_LAYER} bridge/stonebridge}
#{BRIDGE:ENDS Bsb\ Bsb| Bsb/ * (Co*,Cu*,Ko*,Ku*) * stonebridge {BRIDGE_LAYER} bridge/stonebridge-castle}
{BRIDGE:ENDS Bsb\ Bsb| Bsb/ * (C*,K*) * stonebridge {BRIDGE_LAYER} bridge/stonebridge-castle}
{BRIDGE:ENDS Bsb\ Bsb| Bsb/ * (C*,K*,X*) * stonebridge {BRIDGE_LAYER} bridge/stonebridge-short}
{BRIDGE:ENDS Bsb\ Bsb| Bsb/ * (W*,S*,Ql*) * stonebridge {BRIDGE_LAYER} bridge/stonebridge-water}
{BRIDGE:ENDS Bsb\ Bsb| Bsb/ * * * stonebridge {BRIDGE_LAYER} bridge/stonebridge}
# snowy stone bridge
# the N_S bridge images are not split E/W, but W is in shadow, so we let the E adjacent terrain govern the ground vs regular (hard edge vs fading supports)
{BRIDGE:STRAIGHTS Bsa\ Bsa| Bsa/ * * (!,W*,Q*) stonebridge 0 bridge/snow/stonebridge-ground NS_E="!,W*,Q*"}
{BRIDGE:STRAIGHTS Bsa\ Bsa| Bsa/ * * * stonebridge 0 bridge/snow/stonebridge}
#{BRIDGE:ENDS Bsa\ Bsa| Bsa/ * (Co*,Cu*,Ko*,Ku*) * stonebridge {BRIDGE_LAYER} bridge/snow/stonebridge-castle}
#{BRIDGE:ENDS Bsa\ Bsa| Bsa/ * (C*,K*) * stonebridge {BRIDGE_LAYER} bridge/snow/stonebridge-castle}
{BRIDGE:ENDS Bsa\ Bsa| Bsa/ * (C*,K*,X*) * stonebridge {BRIDGE_LAYER} bridge/snow/stonebridge-short}
{BRIDGE:ENDS Bsa\ Bsa| Bsa/ * (W*,S*,Ql*) * stonebridge {BRIDGE_LAYER} bridge/snow/stonebridge-water}
{BRIDGE:ENDS Bsa\ Bsa| Bsa/ * * * stonebridge {BRIDGE_LAYER} bridge/snow/stonebridge}
# hanging bridge
{BRIDGE:STRAIGHTS Bh\ Bh| Bh/ Q* Q* * hanging {BRIDGE_LAYER} bridge/hanging-xx}
{BRIDGE:STRAIGHTS Bh\ Bh| Bh/ Q* * * hanging {BRIDGE_LAYER} bridge/hanging-x}
{BRIDGE:STRAIGHTS Bh\ Bh| Bh/ * * * hanging {BRIDGE_LAYER} bridge/hanging}
{BRIDGE:ENDS Bh\ Bh| Bh/ Q* (W*,S*) * hanging {BRIDGE_LAYER} bridge/hanging-wx}
{BRIDGE:ENDS Bh\ Bh| Bh/ Q* (C*,K*,X*) * hanging {BRIDGE_LAYER} bridge/hanging-cx}
{BRIDGE:ENDS Bh\ Bh| Bh/ Q* * * hanging {BRIDGE_LAYER} bridge/hanging-x}
{BRIDGE:ENDS Bh\ Bh| Bh/ * (W*,S*) * hanging {BRIDGE_LAYER} bridge/hanging-w}
{BRIDGE:ENDS Bh\ Bh| Bh/ * (C*,K*,X*) * hanging {BRIDGE_LAYER} bridge/hanging-c}
{BRIDGE:ENDS Bh\ Bh| Bh/ * * * hanging {BRIDGE_LAYER} bridge/hanging}
# chasm stone bridge
{BRIDGE:STRAIGHTS Bcx\ Bcx| Bcx/ * Ql* Ql* chasm {BRIDGE_LAYER} bridge/chasm-ll}
{BRIDGE:STRAIGHTS Bcx\ Bcx| Bcx/ * Ql* Q* chasm {BRIDGE_LAYER} bridge/chasm-lx}
{BRIDGE:STRAIGHTS Bcx\ Bcx| Bcx/ * Q* Ql* chasm {BRIDGE_LAYER} bridge/chasm-xl}
{BRIDGE:STRAIGHTS Bcx\ Bcx| Bcx/ * Q* Q* chasm {BRIDGE_LAYER} bridge/chasm-xx}
{BRIDGE:STRAIGHTS Bcx\ Bcx| Bcx/ * * * chasm {BRIDGE_LAYER} bridge/chasm}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Ql* Ql* Ql* chasm {BRIDGE_LAYER} bridge/chasm-dock-ll}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Ql* Ql* Q* chasm {BRIDGE_LAYER} bridge/chasm-dock-lx}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Qx* Qx* Ql* chasm {BRIDGE_LAYER} bridge/chasm-dock-xl}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Qx* Qx* Qx* chasm {BRIDGE_LAYER} bridge/chasm-dock-xx}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Ql* Q* Ql* chasm {BRIDGE_LAYER} bridge/chasm-dock-ll}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Ql* Q* Q* chasm {BRIDGE_LAYER} bridge/chasm-dock-lx}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Q* Q* Ql* chasm {BRIDGE_LAYER} bridge/chasm-dock-xl}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ Q* Q* Q* chasm {BRIDGE_LAYER} bridge/chasm-dock-xx}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ * Ql* * chasm {BRIDGE_LAYER} bridge/chasm-dock-l}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ * Q* * chasm {BRIDGE_LAYER} bridge/chasm-dock}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ * * Qx* chasm {BRIDGE_LAYER} bridge/chasm-x}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ * * Ql* chasm {BRIDGE_LAYER} bridge/chasm-l}
{BRIDGE:ENDS Bcx\ Bcx| Bcx/ * * * chasm {BRIDGE_LAYER} bridge/chasm}
# plank bridge
{BRIDGE:JOINTS Bp\ Bp| Bp/ * Q* planks {BRIDGE_LAYER} bridge/planks}
{BRIDGE:JOINTS Bp\ Bp| Bp/ * * planks {BRIDGE_LAYER} bridge/planks-short}
{BRIDGE:CORNERS Bp\ Bp| Bp/ * Q* planks {BRIDGE_LAYER} bridge/planks}
{BRIDGE:CORNERS Bp\ Bp| Bp/ * * planks {BRIDGE_LAYER} bridge/planks-short}
{BRIDGE:STRAIGHTS Bp\ Bp| Bp/ * * Q* planks {BRIDGE_LAYER} bridge/planks}
{BRIDGE:STRAIGHTS Bp\ Bp| Bp/ * * * planks {BRIDGE_LAYER} bridge/planks-short}
{BRIDGE:ENDS Bp\ Bp| Bp/ * Q* Q* planks {BRIDGE_LAYER} bridge/planks-dock}
{BRIDGE:ENDS Bp\ Bp| Bp/ * Q* * planks {BRIDGE_LAYER} bridge/planks-short-dock}
{BRIDGE:ENDS Bp\ Bp| Bp/ * * Q* planks {BRIDGE_LAYER} bridge/planks}
{BRIDGE:ENDS Bp\ Bp| Bp/ * * * planks {BRIDGE_LAYER} bridge/planks-short}
# TRACK LAYOUT MUST STAY ON TOP
# they set flags that will be used by other macros later.
# they don't set any image by themselves.
{LAYOUT_TRACKS_F *^Bw\* *^Bw|* *^Bw/* track_wood}
{LAYOUT_TRACKS_F *^Br\ *^Br| *^Br/ track_rail}
# Mine rail tracks
{NEW:TRACK_COMPLETE *^Br\ *^Br| *^Br/ misc/rails FLAG=track_rail}
# add transition rail<->rail wherever images are missing
{NEW:TRACK_BORDER_RESTRICTED (*^Br/,*^Br\) *^Br| misc/rails-switch-ns FLAG=track_rail}
{NEW:TRACK_BORDER_RESTRICTED (*^Br|,*^Br/) *^Br\ misc/rails-switch-nwse FLAG=track_rail}
{NEW:TRACK_BORDER_RESTRICTED (*^Br|,*^Br\) *^Br/ misc/rails-switch-nesw FLAG=track_rail}
#add transitions at rail end
{NEW:TRACK_BORDER_RESTRICTED (*^Br|,*^Br/,*^Br\) (!,C*,K*) misc/rails-end FLAG=track_rail}
# basic images for the bridge
{NEW:TRACK_COMPLETE *^Bw\ *^Bw| *^Bw/ bridge/wood FLAG=track_wood LAYER={BRIDGE_LAYER}}
{NEW:TRACK_COMPLETE *^Bw\r *^Bw|r *^Bw/r bridge/wood-rotting FLAG=track_wood LAYER={BRIDGE_LAYER}}
# add transition bridges<->bridges wherever images are missing
{NEW:TRACK_BORDER_RESTRICTED (*^Bw|*,*^Bw/*,*^Bw\*) (*^Bw|*,*^Bw/*,*^Bw/*) bridge/wood-end FLAG=track_wood LAYER={BRIDGE_LAYER}}
# add dock-style ends to bridges ending in water
{NEW:TRACK_BORDER_RESTRICTED (*^Bw|*,*^Bw/*,*^Bw\*) (W*,Ss*,Ai*) bridge/wood-dock FLAG=track_wood LAYER={BRIDGE_LAYER}}
# add ramps where straight bridges end on land
{NEW:TRACK_BORDER_RESTRICTED (*^Bw|*,*^Bw/*,*^Bw\*) (!,C*,K*) bridge/wood-end FLAG=track_wood LAYER={BRIDGE_LAYER}}
# Forests
#define SMALL_FOREST_FILTER
C*,K*,X*,Q*,W*,Ai,M*,*^Qh*,*^V*,*^B*,_off^_usr#enddef
{NEW:FOREST H*^Fp,M*^Fp {SMALL_FOREST_FILTER} forest/pine-sparse}
{NEW:FOREST *^Fp {SMALL_FOREST_FILTER} forest/pine ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fpa,M*^Fpa {SMALL_FOREST_FILTER} forest/snow-forest-sparse}
{NEW:FOREST *^Fpa {SMALL_FOREST_FILTER} forest/snow-forest ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Ft,M*^Ft {SMALL_FOREST_FILTER} forest/tropical/jungle-sparse}
{NEW:FOREST *^Ft {SMALL_FOREST_FILTER} forest/tropical/jungle ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Ftd,M*^Ftd {SMALL_FOREST_FILTER} forest/tropical/palm-desert-sparse}
{NEW:FOREST *^Ftd {SMALL_FOREST_FILTER} forest/tropical/palm-desert ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Ftp,M*^Ftp {SMALL_FOREST_FILTER} forest/tropical/palms-sparse}
{NEW:FOREST *^Ftp {SMALL_FOREST_FILTER} forest/tropical/palms ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST *^Ftr {SMALL_FOREST_FILTER} forest/tropical/rainforest ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fts,M*^Fts {SMALL_FOREST_FILTER} forest/tropical/savanna-sparse}
{NEW:FOREST *^Fts {SMALL_FOREST_FILTER} forest/tropical/savanna ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fds,M*^Fds {SMALL_FOREST_FILTER} forest/deciduous-summer-sparse}
{NEW:FOREST *^Fds {SMALL_FOREST_FILTER} forest/deciduous-summer ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fdf,M*^Fdf {SMALL_FOREST_FILTER} forest/deciduous-fall-sparse}
{NEW:FOREST *^Fdf {SMALL_FOREST_FILTER} forest/deciduous-fall ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fdw,M*^Fdw {SMALL_FOREST_FILTER} forest/deciduous-winter-sparse}
{NEW:FOREST *^Fdw {SMALL_FOREST_FILTER} forest/deciduous-winter ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fda,M*^Fda {SMALL_FOREST_FILTER} forest/deciduous-winter-snow-sparse}
{NEW:FOREST *^Fda {SMALL_FOREST_FILTER} forest/deciduous-winter-snow ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fms,M*^Fms {SMALL_FOREST_FILTER} forest/mixed-summer-sparse}
{NEW:FOREST *^Fms {SMALL_FOREST_FILTER} forest/mixed-summer ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fmf,M*^Fmf {SMALL_FOREST_FILTER} forest/mixed-fall-sparse}
{NEW:FOREST *^Fmf {SMALL_FOREST_FILTER} forest/mixed-fall ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fmw,M*^Fmw {SMALL_FOREST_FILTER} forest/mixed-winter-sparse}
{NEW:FOREST *^Fmw {SMALL_FOREST_FILTER} forest/mixed-winter ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST H*^Fma,M*^Fma {SMALL_FOREST_FILTER} forest/mixed-winter-snow-sparse}
{NEW:FOREST *^Fma {SMALL_FOREST_FILTER} forest/mixed-winter-snow ALT_TERRAINLIST="*^Qhhf,*^Qhuf"}
{NEW:FOREST (W*^Tf*) (Wo*) forest/mushrooms-water}
{NEW:FOREST (*^Uf*,*^Tf*) {SMALL_FOREST_FILTER} forest/mushrooms}
{NEW:FOREST (W*^Wkf) (Wwr*,!,W*) water/seaweed/kelp ANIM="-[1~4,3,2]" TIME=":[700*6]"}
{NEW:FOREST (*^Wkf) {SMALL_FOREST_FILTER} water/seaweed/kelp-dead}
# this will only show up if there are no trees already drawn
{NEW:FOREST (A"*^Qhhf,A*^Qhuf") {SMALL_FOREST_FILTER} forest/deciduous-winter-snow}
{NEW:FOREST ("*^Qhhf,*^Qhuf") {SMALL_FOREST_FILTER} forest/deciduous-winter}
#undef SMALL_FOREST_FILTER
# Great-tree
{NEW:OVERLAY *^Fet forest/great-tree}
{NEW:OVERLAY *^Feta forest/great-tree-snowy}
{NEW:OVERLAY *^Fetd forest/great-tree-dead}
{NEW:OVERLAY W*^Feth forest/great-oak-tree-dead-water}
{NEW:OVERLAY *^Feth forest/great-oak-tree-dead}
# Oasis
{NEW:OVERLAY *^Do village/desert-oasis-1 PROB=30}
{NEW:OVERLAY *^Do village/desert-oasis-2 PROB=43}
{NEW:OVERLAY *^Do village/desert-oasis-3}
# Swamp
# To aid those updating terrain macros in 1.17/1.18, this next macro used to be
# {OVERLAY_COMPLETE_LF Ss (!,Xv,Chs,!,C*,H*,M*,X*,Q*,A*,Ke,Kea,Kud*,I*) -85 base2 swamp/reed}
{NEW:OVERLAY Ss swamp/reed LAYER=-85 FLAG=base2 ADJACENT="!,Xv,Chs,!,C*,H*,M*,X*,Q*,A*,Ke,Kea,Kud*,I*" }
{NEW:OVERLAY Chs swamp/reed LAYER=-85 FLAG=base2 ADJACENT="!,C*,K*,Ss" }
# Large volcano
{NEW:VOLCANO_2x2 Mv Mm,Md mountains/volcano6 FLAG=base2}
# Single-hex volcano
{NEW:OVERLAY Mv mountains/volcano BASE=140,140 FLAG=base2 ADJACENT="!,Xv,Mv,!,C*,K*,X*,Q*"}
{NEW:OVERLAY Mv misc/smoke-A CENTER=90,108 ANIM=[01~12] TIME=100}
# Mountains
{NEW:MOUNTAIN_RESTRICTED Mm (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/basic-castle FLAG=base2 }
{NEW:MOUNTAINS_2x4_NW_SE Mm mountains/basic_range3 FLAG=base,base2 PROB=18}
{NEW:MOUNTAINS_2x4_SW_NE Mm mountains/basic_range4 FLAG=base,base2 PROB=26}
{NEW:MOUNTAINS_1x3_NW_SE Mm mountains/basic_range1 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_1x3_SW_NE Mm mountains/basic_range2 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_2x2 Mm mountains/basic5 FLAG=base,base2 PROB=40}
{NEW:MOUNTAINS_2x2 Mm mountains/basic6 FLAG=base,base2 PROB=30}
# there is a transition rule below for where the mountain graphic isn't large enough to cover up the hex edges
{NEW:MOUNTAIN_SMALL Mm (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/basic-castle-n FLAG=base2 }
{NEW:MOUNTAIN_SINGLE Mm mountains/basic FLAG=base,base2 }
# Dry Mountains
{NEW:MOUNTAIN_RESTRICTED Md (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/dry-castle FLAG=base2 }
{NEW:MOUNTAINS_2x4_NW_SE Md mountains/dry_range3 FLAG=base,base2 PROB=18}
{NEW:MOUNTAINS_2x4_SW_NE Md mountains/dry_range4 FLAG=base,base2 PROB=26}
{NEW:MOUNTAINS_1x3_NW_SE Md mountains/dry_range1 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_1x3_SW_NE Md mountains/dry_range2 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_2x2 Md mountains/dry5 FLAG=base,base2 PROB=40}
{NEW:MOUNTAINS_2x2 Md mountains/dry6 FLAG=base,base2 PROB=30}
{NEW:MOUNTAIN_SMALL Md (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/dry-castle-n FLAG=base2 }
{NEW:MOUNTAIN_SINGLE Md mountains/dry FLAG=base,base2 }
# Snow mountains (uncomment rules as the corresponding tiles are added)
#{NEW:MOUNTAIN_RESTRICTED Ms (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/snow-castle FLAG=base2 }
#{NEW:MOUNTAINS_2x4_NW_SE Ms mountains/snow_range3 FLAG=base,base2 PROB=18}
#{NEW:MOUNTAINS_2x4_SW_NE Ms mountains/snow_range4 FLAG=base,base2 PROB=26}
#{NEW:MOUNTAINS_1x3_NW_SE Ms mountains/snow_range1 FLAG=base,base2 PROB=20}
#{NEW:MOUNTAINS_1x3_SW_NE Ms mountains/snow_range2 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_2x2 Ms mountains/snow5 FLAG=base,base2 PROB=15}
{NEW:MOUNTAINS_2x2 Ms mountains/snow6 FLAG=base,base2 PROB=25}
{NEW:MOUNTAIN_SMALL Ms (!,Xv,!,C*,K*,X*,Ql,Qx*) mountains/snow-castle-n FLAG=base2 }
{NEW:MOUNTAIN_SINGLE Ms mountains/snow FLAG=base,base2 }
#This one is to fill any "gaps" there might be when next to castles or walls
{NEW:BASE Mm hills/regular}
{NEW:BASE Md hills/dry}
{NEW:BASE Ms hills/snow}
# Desert Mountains
# To aid those updating terrain macros in 1.17/1.18, this next macro used to be
# {OVERLAY_ROTATION_RESTRICTED2_F Mdd (!,Xv,!,C*,K*,X*,Ql,Qx*) base2 desert_mountains/desert-castle}
# {OVERLAY_ROTATION_RESTRICTED_F Mdd (!,Xv,!,C*,K*,X*,Ql,Qx*) base2 desert_mountains/desert-castle@V}
{NEW:OVERLAY Mdd desert_mountains/desert BASE=72,72 FLAG=base2 ADJACENT="!,Xv,!,C*,K*,X*,Ql,Qx*" }
{NEW:MOUNTAINS_2x4_NW_SE Mdd desert_mountains/desert_range3 FLAG=base,base2 PROB=18}
{NEW:MOUNTAINS_1x3_NW_SE Mdd desert_mountains/desert_range1 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_1x3_SW_NE Mdd desert_mountains/desert_range2 FLAG=base,base2 PROB=20}
{NEW:MOUNTAINS_2x2 Mdd desert_mountains/desert5 FLAG=base,base2 PROB=40}
{NEW:MOUNTAINS_2x2 Mdd desert_mountains/desert6 FLAG=base,base2 PROB=30}
{NEW:MOUNTAIN_SINGLE Mdd desert_mountains/desert FLAG=base,base2 }
#This one is to fill any "gaps" there might be when next to castles or walls
{NEW:BASE Mdd hills/dry }
{NEW:TRANSITION (Mdd,Mdd^Xm) (!,Md*,Mv,S*,X*) -166 desert_mountains/desert}
# Special Desert Mountain to Chasm Blend transition - the default mountain-chasm transition is white, looks terrible.
{NEW:TRANSITION_INTRA (Qx*,Ql*) 0 desert_mountains/blend-from-chasm FLAG=transition3 ADJACENT="Mdd,Mdd^Xm" BASE=90,90}
# {TRANSITION_COMPLETE_LF (Qx*,Ql*) (Mdd,Mdd^Xm) 0 transition3 desert_mountains/blend-from-chasm}
{NEW:TRANSITION_INTRA (Mdd,Mdd^Xm) -165 desert_mountains/desert-to-water FLAG=non_submerged ADJACENT="Ai,W*,S*"}
# {TRANSITION_COMPLETE_LF (Mdd,Mdd^Xm) Ai,W*,S* -165 non_submerged desert_mountains/desert-to-water}
# Impassable peaks
# {NEW:OVERLAY Mdd^Xm mountains/cloud@V LAYER=1 FLAG=clouds}
{NEW:PEAKS_1x2_SW_NE Mdd^Xm desert_mountains/peak_range1 FLAG=peaks PROB=15}
{NEW:PEAKS_LARGE Mdd^Xm desert_mountains/peak_large1 FLAG=peaks PROB=25}
{NEW:PEAKS_LARGE Mdd^Xm desert_mountains/peak_large2 FLAG=peaks PROB=33}
{NEW:OVERLAY Mdd^Xm desert_mountains/peak LAYER=2 FLAG=peaks}
# {OVERLAY_RANDOM_LF Mdd^Xm 2 peaks desert_mountains/peak}
# To aid those updating terrain macros in 1.17/1.18, this next macro used to be
# {OVERLAY_LF *^Xm 1 clouds mountains/cloud@V}
{NEW:OVERLAY *^Xm mountains/cloud@V LAYER=1 FLAG=clouds}
{NEW:PEAKS_1x2_SW_NE *^Xm mountains/peak_range1 FLAG=peaks PROB=15}
{NEW:PEAKS_LARGE *^Xm mountains/peak_large1 FLAG=peaks PROB=25}
{NEW:PEAKS_LARGE *^Xm mountains/peak_large2 FLAG=peaks PROB=33}
{NEW:OVERLAY *^Xm mountains/peak LAYER=2 FLAG=peaks}
#
# > V I L L A G E B U I L D I N G S <
#Human villages
{NEW:VILLAGE_TOD *^Vh village/human}
{NEW:VILLAGE *^Vha village/human-snow}
{NEW:VILLAGE *^Vhr village/human-cottage-ruin}
{NEW:VILLAGE *^Vhh village/human-hills}
{NEW:VILLAGE *^Vhha village/human-snow-hills}
{NEW:VILLAGE *^Vhhr village/human-hills-ruin}
{NEW:VILLAGE_TOD *^Vhc village/human-city}
{NEW:VILLAGE *^Vhca village/human-city-snow}
{NEW:VILLAGE *^Vhcr village/human-city-ruin}
#tropical village
{NEW:VILLAGE *^Vht village/tropical-forest}
#Crude villages (grassland)
{NEW:VILLAGE_TOD *^Vc village/hut}
{NEW:VILLAGE *^Vca village/hut-snow}
{NEW:VILLAGE_TOD *^Vl village/log-cabin}
{NEW:VILLAGE *^Vla village/log-cabin-snow}
{NEW:VILLAGE *^Vct village/camp}
#igloo
{NEW:VILLAGE *^Vaa village/igloo}
#Drake villages
#20% 20% 20% 20% 20%
{NEW:VILLAGE *^Vd village/drake1-A PROB=20 ANIM=[01~03] TIME=200}
{NEW:VILLAGE *^Vd village/drake2-A PROB=25 ANIM=[01~03] TIME=100}
{NEW:VILLAGE *^Vd village/drake3 PROB=33}
{NEW:VILLAGE *^Vd village/drake4 PROB=50}
{NEW:VILLAGE *^Vd village/drake5}
# Snowy Drake villages
# 20% 20% 20% 20% 20%
{NEW:VILLAGE *^Vka village/drake-snow1-A PROB=20 ANIM=[01~03] TIME=200}
{NEW:VILLAGE *^Vka village/drake-snow2-A PROB=25 ANIM=[01~03] TIME=100}
{NEW:VILLAGE *^Vka village/drake-snow3 PROB=33}
{NEW:VILLAGE *^Vka village/drake-snow4 PROB=50}
{NEW:VILLAGE *^Vka village/drake-snow5}
#Orcish villages
{NEW:VILLAGE_TOD *^Vo village/orc}
{NEW:VILLAGE *^Voa village/orc-snow}
#Elven villages
{NEW:VILLAGE_TOD *^Ve village/elven PROB=10 VARIATIONS=""}
{NEW:VILLAGE_TOD *^Ve village/elven3 PROB=28}
{NEW:VILLAGE_TOD *^Ve village/elven4 PROB=38}
{NEW:VILLAGE_TOD *^Ve village/elven2}
#10% 25% 25% 40%
{NEW:VILLAGE *^Vea village/elven-snow}{VILLAGE_PROBABILITY 10}
{NEW:VILLAGE *^Vea village/elven-snow3}{VILLAGE_PROBABILITY 28}
{NEW:VILLAGE *^Vea village/elven-snow4}{VILLAGE_PROBABILITY 38}
{NEW:VILLAGE *^Vea village/elven-snow2}
#Desert villages
{NEW:VILLAGE_TOD *^Vda village/desert}
{NEW:VILLAGE *^Vdr village/desert-ruin}
{NEW:VILLAGE *^Vdt village/desert-camp}
#Cave villages
{NEW:VILLAGE *^Vu village/cave}
{NEW:VILLAGE *^Vud village/dwarven}
#Swamp village
{NEW:VILLAGE_TOD *^Vhs village/swampwater}
#Merfolk village
# {NEW:VILLAGE *^Vm village/coast}{VILLAGE_PROBABILITY 20}
# {NEW:VILLAGE *^Vm village/coast2}{VILLAGE_PROBABILITY 24}
# {NEW:VILLAGE *^Vm village/coast3}{VILLAGE_PROBABILITY 29}
# {NEW:VILLAGE *^Vm village/coast4}{VILLAGE_PROBABILITY 35}
{NEW:VILLAGE_TOD *^Vm village/coast PROB=80}
{NEW:VILLAGE *^Vm village/coast_5-A ANIM=[01~04] TIME=140}
# Windmill Village
{NEW:OVERLAY *^Vwm misc/windmill-A ANIM=[01~18] TIME=70}
#
# > O V E R L A Y S <
#
# Fence
{NEW:FENCE *^Eff embellishments/fence}
# Iron Fence is also a barrier, hence the 'q' - let's reserve the Eq* patterns for similar things
{NEW:FENCE *^Eqf embellishments/fence-iron LAYER=0 BASE=108,144 CENTER=90,168 ALTERNATE=*^Eqp,*^P*,X*}
{NEW:FENCE *^Eqp embellishments/fence-palisade LAYER=0 BASE=108,144 CENTER=90,168 ALTERNATE=*^Eqf,*^P*,X*}
# {NEW:FENCE_POST *^Eqf (Q*) embellishments/fence-iron-chasm LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqf (*^P*) embellishments/fence-iron-portal LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqp (Q*) embellishments/fence-palisade-chasm LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqp (*^P*) embellishments/fence-palisade-portal LAYER=0 BASE=108,144 CENTER=90,168 }
# Illuminated caves
{NEW:OVERLAY (*^Ufi,*^Ii,*^Tfi) cave/beam FLAG=light LAYER=1}
# Wall sconces or torches
{NEW:WALL_FLAMES_OVERLAY (Xot^Efs) walls/stone/flames/candle}
{NEW:WALL_FLAMES_SIMPLE_OVERLAY (Xu*^Efs) walls/flames/sconce}
{NEW:WALL_FLAMES_OVERLAY (Xo*^Efs) walls/stone/flames/sconce}
{NEW:TORCH_FLAMES_OVERLAY (!,X*^Efs,!,*^Efs) walls/stone/flames/torch}
# unwalkable indicator for *^Qhux
{NEW:OVERLAY *^Qhux elevation/mist LAYER=-76}
{NEW:OVERLAY *^Qhux elevation/chasm-overlay LAYER=-80 FLAG=overlay2}
# seashells
{NEW:OVERLAY *^Ewsh embellishments/seashells LAYER=-86}
#Farmland
{NEW:OVERLAY *^Gvs embellishments/farm-veg-spring LAYER=-81}
# Water Lillies
# To aid those updating terrain macros in 1.17/1.18, this next macro used to be
# {OVERLAY_COMPLETE_L *^Ewl (C*,K*,X*,Ql*,Qx*,G*,M*,*^V*,R*,A*,D*,U*,H*) -86 embellishments/water-lilies}
{NEW:OVERLAY *^Ewl embellishments/water-lilies LAYER=-86 ADJACENT="C*,K*,X*,Ql*,Qx*,G*,M*,*^V*,R*,A*,D*,U*,H*"}
{NEW:OVERLAY *^Ewf embellishments/water-lilies-flower LAYER=-86 ADJACENT="C*,K*,X*,Ql*,Qx*,G*,M*,*^V*,R*,A*,D*,U*,H*"}
# Windmill decoration
{NEW:OVERLAY *^Wm misc/decorative/windmill- ANIM=[01~18] TIME=30 PROB=33}
{NEW:OVERLAY *^Wm misc/decorative/windmill- ANIM=[01~18] TIME=50}
# campfire
{NEW:OVERLAY *^Ecf misc/fire-A ANIM=[01~08] TIME=140}
# Braziers
{NEW:OVERLAY *^Eb misc/brazier-embellishment}
{NEW:OVERLAY *^Ebn misc/brazier-A ANIM=[01~08] TIME=140}
# layer -500 is used for the flowers so they don't overlap adjacent trees,
# castles, mountains and such
# need to disable these images for some combinations
{NEW:OVERLAY (!,Xof^Efm,!,*^Efm) embellishments/flowers-mixed LAYER=-500}
#Rubble
{NEW:OVERLAY W*^Dr misc/rubble-water FLAG=rubble LAYER=-1}
{NEW:OVERLAY *^Dr misc/rubble FLAG=rubble LAYER=-1}
{NEW:OVERLAY *^Es embellishments/stones-small}
{NEW:OVERLAY *^Esa embellishments/snowbits-small}
# not broken, but not identical - different random variations chosen, so leaving old macros in as a breadcrumb for now
{NEW:OVERLAY *^Em embellishments/mushroom}
# {OVERLAY_RANDOM *^Em embellishments/mushroom}
{NEW:OVERLAY *^Emf embellishments/mushroom-farm ADJACENT="C*,K*,X*,Ql*,Qx*,W*,M*,*^V*"}
# {OVERLAY_COMPLETE *^Emf (C*,K*,X*,Ql*,Qx*,W*,M*,*^V*) embellishments/mushroom-farm}
# Chasm bridges - for now they don't tile
# these are also on a different layer than the rest of bridges, maybe too low
{NEW:OVERLAY Ql*^Bs\ cave/chasm-lava-stone-bridge-se-nw FLAG=bridge LAYER=-80}
{NEW:OVERLAY Ql*^Bs| cave/chasm-lava-stone-bridge-s-n FLAG=bridge LAYER=-80}
{NEW:OVERLAY Ql*^Bs/ cave/chasm-lava-stone-bridge-sw-ne FLAG=bridge LAYER=-80}
{NEW:OVERLAY W*^Bs\,S*^Bs\ cave/chasm-water-stone-bridge-se-nw FLAG=bridge LAYER=-80}
{NEW:OVERLAY W*^Bs/,S*^Bs/ cave/chasm-water-stone-bridge-sw-ne FLAG=bridge LAYER=-80}
{NEW:OVERLAY *^Bs\ cave/chasm-stone-bridge-se-nw FLAG=bridge LAYER=-80}
{NEW:OVERLAY *^Bs| cave/chasm-stone-bridge-s-n FLAG=bridge LAYER=-80}
{NEW:OVERLAY *^Bs/ cave/chasm-stone-bridge-sw-ne FLAG=bridge LAYER=-80}
# Trash/remains - These should be moved to a new file and a more concise macro put here
# but at least all the rules are self-contained within trash.cfg
{TRASH_DISABLE Xo*^Edb}
{TRASH_A *^Edt 33 misc/detritus/trashA}
{TRASH_A *^Edb 33 misc/detritus/detritusA}
{LITTER_BASE *^Edb,*^Edt misc/detritus/liter}
{TRASH_B *^Edt trash_medium 70 "1;2;3;4;5;6;7;8;9;10" misc/detritus/trashB}
{TRASH_B *^Edb detritus_medium 70 "1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16" misc/detritus/detritusB}
{TRASH_C *^Edt trash_big trash_medium 30 "1;2;3;4" misc/detritus/trashC}
{TRASH_C *^Edb detritus_big detritus_medium 50 "1;2;3;4;5;6;7" misc/detritus/detritusC}
# Gates and doors - 'P' is for portal, next letter is descriptor, third letter is '\,|,/' for direction, just like bridges
# Append an 'o' at fourth letter for the open version
# the fourth argument is for IPFs
#closed (impassable)
{NEW:GATES_VERTICAL_NS (*^Pr|) (X*,*^Eq*) portals/gate-rusty}
{NEW:GATES_DIAGONAL_SW (*^Pr\) (X*,*^Eq*) portals/gate-rusty}
{NEW:GATES_DIAGONAL_SE (*^Pr/) (X*,*^Eq*) portals/gate-rusty}
{NEW:GATES_VERTICAL_NS (*^Pw|) (X*,*^Eq*) portals/door-wooden}
{NEW:GATES_DIAGONAL_SW (*^Pw\) (X*,*^Eq*) portals/door-wooden}
{NEW:GATES_DIAGONAL_SE (*^Pw/) (X*,*^Eq*) portals/door-wooden}
#open/embellishment
{NEW:GATES_VERTICAL_NS (*^Pr|o) (X*,*^Eq*) portals/gate-rusty-open}
{NEW:GATES_DIAGONAL_SW (*^Pr\o) (X*,*^Eq*) portals/gate-rusty-open}
{NEW:GATES_DIAGONAL_SE (*^Pr/o) (X*,*^Eq*) portals/gate-rusty-open}
{NEW:GATES_VERTICAL_NS (*^Pw|o) (X*,*^Eq*) portals/door-wooden-open}
{NEW:GATES_DIAGONAL_SW (*^Pw\o) (X*,*^Eq*) portals/door-wooden-open}
{NEW:GATES_DIAGONAL_SE (*^Pw/o) (X*,*^Eq*) portals/door-wooden-open}
#
# > B A S E T E R R A I N S <
#
# Flat base terrains
{NEW:BASE Tb,*^Uf* forest/mushroom-base LAYER=-319}
# The first grass tile of each kind is the most standard and generic one, thus it appears more frequently to space out the rest
{NEW:BASE_P Gg 20 grass/green}
{NEW:BASE Gg grass/green}
{NEW:BASE_P Gs 25 grass/semi-dry}
{NEW:BASE Gs grass/semi-dry}
{NEW:BASE_P Gd 25 grass/dry}
{NEW:BASE Gd grass/dry}
{NEW:BASE Gll grass/leaf-litter}
{NEW:BASE Re flat/dirt}
{NEW:BASE (Rb,Exos) flat/dirt-dark}
{NEW:BASE Rr flat/road}
{NEW:BASE Rrd flat/sandy-path}
{NEW:BASE Rrc flat/road-clean}
{NEW:BASE Rp flat/stone-path}
{NEW:BASE Rra flat/road-icy}
# Hills base terrain
{NEW:BASE Hh hills/regular}
{NEW:BASE Hhd hills/dry}
# Cave base terrains
{NEW:BASE Uu cave/floor}
{NEW:BASE Uue cave/earthy-floor}
{NEW:BASE Ur,Urc cave/path}
{NEW:BASE Urb cave/flagstones-dark}
{NEW:BASE Uh cave/hills-variation}
{NEW:BASE Uhe cave/earthy-hills-variation}
# to block out things from showing behind the walls, but not block the walls themselves
{NEW:OVERLAY Xu* cave/wall-rough LAYER=0 BASE=144,144}
{NEW:OVERLAY Xo* walls/stone/wall-stone-base LAYER=0 BASE=144,144}
{NEW:BASE Qxua chasm/abyss}
{NEW:BASE Qx* chasm/depths}
{NEW:OVERLAY Wwr,Wwrt,Wwrg water/reef FLAG=reef LAYER=-320}
# Desert base terrains
{NEW:BASE Dd sand/desert}
# only use the smaller plant tiles when adjacent to castles, chasms etc
{NEW:OVERLAY *^Edp embellishments/plants/desert-bones ADJACENT="C*,K*,Q*" PROB=17}
{NEW:OVERLAY *^Edp,*^Edpp embellishments/plants/desert-plant ADJACENT="C*,K*,Q*"}
{NEW:OVERLAY *^Esd embellishments/rocks FLAG=rocks}
{NEW:BASE Ds sand/beach}
{NEW:BASE Rd flat/desert-road}
{NEW:BASE (R*^Dc,G*^Dc) flat/crater FLAG=crater}
{NEW:BASE A*^Dc frozen/crater FLAG=crater LAYER=-999}
{NEW:BASE *^Dc sand/crater FLAG=crater}
{NEW:BASE Hd hills/desert}
# Frozen base terrain
{NEW:BASE Aa frozen/snow}
#10% 10% 10% 10% 25% 35%
{NEW:BASE_P Ai 10 frozen/ice2}
{NEW:BASE_P Ai 11 frozen/ice3}
{NEW:BASE_P Ai 13 frozen/ice5}
{NEW:BASE_P Ai 14 frozen/ice6}
{NEW:BASE_P Ai 42 frozen/ice4}
{NEW:BASE_P Ai 100 frozen/ice}
{NEW:BASE Ha hills/snow}
# Interior floors
{NEW:BASE Isa interior/stone-ancient}
# raised base to get it over the chasm images (LAYER=-284)
{NEW:BASE Iwo interior/wood-ruined LAYER=-284 FLAG=raised_base}
{NEW:BASE Iw* interior/wood-regular LAYER=-284 FLAG=raised_base}
{NEW:BASE (Isr,Isc) interior/stone-regular LAYER=-284 FLAG=raised_base}
# deprecated codes, for compatibility
{NEW:BASE Ias interior/stone-ancient} # wmllint: noconvert
# raised base to get it over the chasm images (LAYER=-284)
{NEW:BASE Iwr,Icn interior/wood-regular LAYER=-284 FLAG=raised_base} # wmllint: noconvert
{NEW:BASE Ior interior/wood-ruined LAYER=-284 FLAG=raised_base} # wmllint: noconvert
{NEW:BASE Irs,Icr interior/stone-regular LAYER=-284 FLAG=raised_base} # wmllint: noconvert
#
# Water base terrains
{NEW:OVERLAY Wwf water/ford FLAG=ford LAYER=-519}
{NEW:BASE Sm swamp/mud}
{NEW:BASE_P Ss 33 swamp/water-plant@V}
{NEW:BASE Ss,Chs swamp/water}
# Animated water (waves)
{NEW:WATER_342_180_TILE_FLAGS}
{NEW:WATER_342_180 Ql,Qlf,Mv unwalkable/lava 16 DURATION=125 RANDOM_START=125}
{NEW:WATER_342_180 Wo,Wog,Wot water/ocean 21 DURATION=125 RANDOM_START=125}
{NEW:WATER_342_180 Ww,Wwr,Wwf,Wwg,Wwrg,Wwt,Wwrt,Chw,Cm*,Km* water/water 17 DURATION=125 RANDOM_START=125}
{NEW:WATER_342_180_OVERLAY Wog,Wwg,Wwrg water/overlay-gray -502}
{NEW:WATER_342_180_OVERLAY Wot,Wwt,Wwrt water/overlay-tropical -504}
#####################
# Castle base terrains
# Most bases get a special -2 layer to get them over the chasm images
#####################
{NEW:BASE Ch,Cha flat/road}
{NEW:BASE Chr flat/stone-path}
{NEW:BASE Kh* castle/cobbles-keep LAYER=-2}
{NEW:BASE Chw castle/aquatic-castle/cobbles LAYER=-520 FLAG=sunken}
# swamp castle defined along with swamp above
{NEW:BASE Cv castle/elven/grounds}
{NEW:BASE Kv castle/elven/keep LAYER=-2}
{NEW:BASE Cvr castle/elven-ruin/grounds}
{NEW:BASE Kvr castle/elven-ruin/keep LAYER=-2}
{NEW:BASE Cva castle/winter-elven/grounds}
{NEW:BASE Kva castle/winter-elven/keep LAYER=-2}
{NEW:BASE Ket interior/wood-tan LAYER=-2}
{NEW:OVERLAY Ket interior/wood-tan-debris}
{NEW:BASE (Cer,Ker) flat/dirt-dark}
{NEW:OVERLAY Ker castle/encampment-ruin/tent}
{NEW:BASE (Ce*,Ke*) flat/dirt}
{NEW:OVERLAY Ke castle/encampment/tent}
{NEW:OVERLAY Kea castle/encampment/tent-snow}
{NEW:BASE Co* flat/dirt-dark}
{NEW:BASE Ko castle/orcish/keep LAYER=-2}
{NEW:BASE Koa castle/winter-orcish/keep LAYER=-2}
{NEW:BASE Cfa castle/winter-dwarven/dwarven-castle-floor LAYER=-80}
{NEW:OVERLAY Cfa castle/winter-dwarven/dwarven-castle-snow PROB=30}
{NEW:BASE Kfa castle/winter-dwarven/dwarven-keep-floor LAYER=-80}
{NEW:OVERLAY Kfa castle/winter-dwarven/dwarven-keep}
{NEW:BASE Cfr castle/ruin-dwarven/dwarven-castle-floor}
{NEW:OVERLAY Cfr castle/ruin-dwarven/debris PROB=30}
{NEW:BASE Kfr castle/ruin-dwarven/dwarven-keep-floor}
{NEW:OVERLAY Kfr castle/ruin-dwarven/dwarven-keep}
{NEW:BASE Cf* castle/outside-dwarven/dwarven-castle-floor}
{NEW:BASE Kf* castle/outside-dwarven/dwarven-keep-floor}
{NEW:OVERLAY Kf* castle/outside-dwarven/dwarven-keep}
{NEW:BASE Cud castle/dwarven-castle-floor LAYER=-2}
{NEW:BASE Kud castle/dwarven-keep-floor LAYER=-2}
{NEW:OVERLAY Kud castle/dwarven-keep}
{NEW:BASE Cd castle/sand/dirt}
{NEW:BASE Kd castle/sand/cobbles LAYER=-2}
{NEW:BASE Cdr castle/sand/ruin-dirt}
{NEW:BASE Kdr castle/sand/cobbles-ruin LAYER=-2}
{NEW:OVERLAY (Cm,Km) castle/aquatic-castle/cobbles FLAG=cobbles LAYER=-350}
{NEW:OVERLAY (Cme) castle/aquatic-camp/reef FLAG=reef LAYER=-320}
{NEW:OVERLAY (Kme) castle/aquatic-camp/floor FLAG=floor LAYER=-310}
{NEW:BASE (Cte) flat/dirt-dark}
{NEW:BASE (Kte) flat/stone-path}
#
# > T R A N S I T I O N S B E T W E E N T E R R A I N S <
#
#####################
# Aquatic camp
{NEW:CASTLEWALL (Kme,Cme) (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/aquatic-camp/castle}
{AQUATIC:CAMPS Kme Cme castle/aquatic-camp}
# Troll camp
{NEW:CASTLEWALL (Kte) (!,C*,K*,Xu*,Xo*) C* castle/troll/keep}
{NEW:CASTLEWALL (Kte,Cte) (!,C*,K*,Xu*,Xo*) C* castle/troll/regular}
{AQUATIC:CAMPS Kte Cme,Cte castle/troll}
# Aquatic castle
{NEW:CASTLEWALL Cm (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/aquatic-castle/castle}
{NEW:CASTLEWALL2 Km !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/aquatic-castle/keep-castle}
{NEW:CASTLEWALL Km (!,Km,Xu*,Xo*) K* castle/aquatic-castle/keep}
{NEW:DISABLE_TRANSITION (Km,Cm) * FLAG=non_submerged}
{AQUATIC:KEEP_CORNER_TRANSITION (Km) (Cm) (W*,Ss,Q*) (Xu*,Xo*) (non_fading) (castle/aquatic-castle)}
{NEW:TRANSITION (Cm) (!,K*,C*,W*,Ss,Q*,Xu*,Xo*) 0 castle/aquatic-castle/castle-to-ground FLAG=non_fading}
{NEW:TRANSITION (Km) (!,K*,C*,W*,Ss,Q*,Xu*,Xo*) 0 castle/aquatic-castle/keep-to-ground FLAG=non_fading}
{NEW:TRANSITION (Km) (W*,Ss) 0 castle/aquatic-castle/keep-to-water FLAG=non_fading}
# Elven castle
{NEW:CASTLEWALL Cv (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/elven/castle}
{NEW:CASTLEWALL2 Kv !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/elven/keep-castle}
{NEW:CASTLEWALL Kv (!,K*,Xu*,Xo*) K* castle/elven/keep}
{NEW:CASTLEWALL Cvr (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/elven-ruin/castle}
{NEW:CASTLEWALL2 Kvr !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/elven-ruin/keep-castle}
{NEW:CASTLEWALL Kvr (!,K*,Xu*,Xo*) K* castle/elven-ruin/keep}
{NEW:CASTLEWALL Cva (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/winter-elven/castle}
{NEW:CASTLEWALL2 Kva !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/winter-elven/keep-castle}
{NEW:CASTLEWALL Kva (!,K*,Xu*,Xo*) K* castle/winter-elven/keep}
# Orcish castles
{NEW:CASTLEWALL Co (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/orcish/fort}
{NEW:CASTLEWALL2 Ko !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/orcish/keep-fort}
{NEW:CASTLEWALL Ko (!,K*,Xu*,Xo*) K* castle/orcish/keep}
{NEW:CASTLEWALL Coa (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/winter-orcish/fort}
{NEW:CASTLEWALL2 Koa !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/winter-orcish/keep-fort}
{NEW:CASTLEWALL Koa (Ke,Kea,!,K*,Xu*,Xo*) K* castle/winter-orcish/keep}
# Desert castles
{NEW:CASTLEWALL Cd (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/sand/castle}
{NEW:CASTLEWALL2 Kd !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/sand/keep-castle}
{NEW:CASTLEWALL Kd (!,K*,Xu*,Xo*) K* castle/sand/keep}
{NEW:CASTLEWALL Cdr (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/sand/ruin-castle}
{NEW:CASTLEWALL2 Kdr !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/sand/ruin-keep-castle}
{NEW:CASTLEWALL Kdr (Ke,Kea,!,K*,Xu*,Xo*) K* castle/sand/ruin-keep}
#
# Human castles
#
{NEW:CASTLEWALL Ch (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/castle}
{NEW:CASTLEWALL2 Kh !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/keep-castle}
{NEW:CASTLEWALL Kh (!,K*,Xu*,Xo*) K* castle/keep}
{NEW:CASTLEWALL Cha (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/snowy/castle}
{NEW:CASTLEWALL2 Kha !,Ket,!,C*,Ke* (!,C*,K*,Xu*,Xo*) castle/snowy/keep-castle}
{NEW:CASTLEWALL Kha (Ke,Kea,!,K*,Xu*,Xo*) K* castle/snowy/keep}
# sunken/swamp ruins (submerged part)
# Show sunken graphics for sunken castle only when next to water terrain
# Show sunken graphics for sunken/swamp keep also when next to swamp
# (!,Chr,Chs,!,Ch*) is used to catch convex transitions between Chw and Ch*
# without lots of additional rules
{NEW:CASTLEWALL (!,Chr,Chs,Ce*,Ke*,!,Ch*) (W*) !,Ket,!,C*,Ke* castle/sunken-ruin}
{NEW:CASTLEWALL2_P Khw,Khs Ch* W*,Ss 75 castle/sunken-ruinkeep1-castle}
{NEW:CASTLEWALL2 Khw,Khs Ch* W*,Ss castle/sunkenkeep-castle}
{NEW:CASTLEWALL (!,Khr,!,Kh*) W*,Ss,Chw,Chs K* castle/sunken-ruinkeep1 PROB=75}
{NEW:CASTLEWALL (!,Khr,!,Kh*) W*,Ss,Chw,Chs K* castle/sunkenkeep}
# ruined castle and non-submerged parts of sunken/swamp ruins
# There are no more human castles left, so we can just use Ch* here, which makes sure
# that all ruin<->non-ruin transitions are drawn
{NEW:CASTLEWALL Ch* (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/ruin}
{NEW:CASTLEWALL2_P (Khr,Khw,Khs) (C*) (!,Ch*,Kh*,Xu*,Xo*) 75 castle/ruinkeep1-castle}
{NEW:CASTLEWALL2 (Khr,Khw,Khs) (C*) (!,Ch*,Kh*,Xu*,Xo*) castle/keep-castle}
{NEW:CASTLEWALL Kh* (Ke,Kea,!,K*,Xu*,Xo*) K* castle/ruinkeep1 PROB=75}
{NEW:CASTLEWALL Kh* (Ke,Kea,!,K*,Xu*,Xo*) K* castle/keep}
# Dwarf outside castles (similar appearance, but different rules and transitions than classic cave version)
{NEW:CASTLEWALL Cfa,Kfa (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/winter-dwarven/dwarven-castle}
{NEW:CASTLEWALL Cfr,Kfr (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/ruin-dwarven/dwarven-castle}
{NEW:CASTLEWALL Cf*,Kf* (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/outside-dwarven/dwarven-castle}
# Encampment
{NEW:CASTLEWALL Ce,Ke (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/encampment/regular}
{NEW:CASTLEWALL Cer,Ker (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/encampment-ruin/regular}
{NEW:CASTLEWALL Cea,Kea (!,C*,K*,Xu*,Xo*) !,Ket,!,C*,Ke* castle/encampment/snow}
{NEW:CASTLEWALL2 Ket (!,Ket,!,C*,Ke*) (!,C*,K*,Xu*,Xo*) castle/encampment/tall-keep-castle}
{NEW:CASTLEWALL Ket (!,Ket,!,Ke*,!,K*,Xu*,Xo*) K* castle/encampment/tall-keep}
# Castle & Encampment Base Transtions
{NEW:TRANSITION !,Kfa,Cfa,!,C*,K* Kfa,Cfa -79 castle/winter-dwarven/dwarven-castle-floor FLAG=inside}
{NEW:TRANSITION Kfa,Cfa !,Kfa,Cfa,!,C*,K* -79 castle/winter-dwarven/dwarven-castle-floor}
{NEW:TRANSITION !,Kf*,Cf*,!,C*,K* Kf*,Cf* -79 castle/outside-dwarven/dwarven-castle-floor FLAG=inside}
{NEW:TRANSITION Kf*,Cf* !,Kf*,Cf*,!,C*,K* -79 castle/outside-dwarven/dwarven-castle-floor}
{NEW:TRANSITION Chs !,S*,W*,H*,M*,A*,Chs,K* -230 swamp/water}
{NEW:TRANSITION Ch,Chr,Cha !,Ch,Chr,Cha,Ket,!,Ke*,C* -300 flat/road}
{NEW:TRANSITION !,Ket,Cd*,!,C*,Ke* Cd* -360 flat/desert-road FLAG=inside}
{NEW:TRANSITION Cd* !,Ket,Cd*,!,C*,Ke* -360 flat/desert-road}
{NEW:TRANSITION Cvr !,Ket,!,Ce*,Ke*,Cv,Cte -369 flat/stone-path FLAG=inside}
{NEW:TRANSITION !,Ce*,Ke*,!,C* !,Ket,!,Ce*,Ke* -370 flat/dirt FLAG=inside}
{NEW:TRANSITION !,Ket,!,Ce*,Ke* !,Ce*,Ke*,!,C* -370 flat/dirt}
{NEW:TRANSITION !,Ket,Co*,Ker,Cer,!,C*,Ke* Co*,Ker,Cer -380 flat/dirt-dark FLAG=inside}
{NEW:TRANSITION Ker,Cer,Co* !,Ket,Co*,Ker,Cer,!,C*,Ke* -380 flat/dirt-dark}
# Base transitions between various water castles
# 33% is an arbitrary magic number with which the transparency looks good
{NEW:GENERIC_CORNER_TRANSITION Cme (Cm,Km,Chw) -330 castle/aquatic-camp/reef masks/long "~O(33%)" FLAG=aquaticbasetrans}
{NEW:GENERIC_CORNER_TRANSITION Cm,Km,Chw (Cme) -321 castle/aquatic-castle/cobbles masks/long "~O(33%)" FLAG=aquaticbasetrans}
# this is to keep sand, snow, etc. from flowing in under the castle walls. It may need to be adjusted for when such behavior is needed.
# There should also be a pattern available for UMC, not sure what it would be though
{NEW:DISABLE_TRANSITION (K*,C*) (!,K*,C*) }
# Keep transitions from bleeding across the high-chasm ledges
{NEW:DISABLE_TRANSITION (*^Qhu*) (*^Qhh*) }
{NEW:DISABLE_TRANSITION (*^Qh*) (!,*^Qh*) FLAG1=elevated}
{NEW:DISABLE_TRANSITION (*^Qh*) (*) FLAG1=flood_high_alt FLAG2=flood_high_alt}
{NEW:DISABLE_TRANSITION (*^Qh*) (*) FLAG1=flood_high FLAG2=flood_high}
{NEW:DISABLE_TRANSITION (*^Qh*) (*) FLAG1=flood_low FLAG2=flood_low}
{NEW:DISABLE_TRANSITION (*^Qh*) (*) FLAG1=flood_low_alt FLAG2=flood_low_alt}
#
# Cave
# (including dwarven castle, chasm, lava)
#
# carpet graphics are defined here, because we want the basic interior terrain graphics to fill in the gaps afterwards.
{NEW:TRANSITION_INVERTED Isc !,Isc -221 interior/royal-rug/rug FLAG=royal_rug}
{NEW:TRANSITION_INVERTED Iwc !,Iwc -223 interior/regular-rug/rug FLAG=regular_rug}
# deprecated terrain codes, for compatibility
{NEW:TRANSITION_INVERTED Icr !,Icr -221 interior/royal-rug/rug FLAG=royal_rug} # wmllint: noconvert
{NEW:TRANSITION_INVERTED Icn !,Icn -223 interior/regular-rug/rug FLAG=regular_rug} # wmllint: noconvert
#
# this one uses the Ur underlayer
{NEW:DISABLE_TRANSITION (Urc) (Uu*) }
{NEW:TRANSITION_INVERTED Urc !,Urc -222 interior/cave-rug/rug FLAG=cave_rug}
# floor transitions - need to be above the following DISABLE line
{NEW:THREE_TERRAIN_TRANSITION Isr,Isc Q* G*,R*,D*,A*,Uu,Ur,Urc -222 interior/stone-chasm/stone-regular}
{NEW:THREE_TERRAIN_TRANSITION Isr,Isc Q* W* -222 interior/stone-chasm/stone-dock-regular}
{NEW:TRANSITION_CROWDED !,*^Qh*,!,Isr,Isc Q* -222 interior/stone-chasm/stone-regular}
{NEW:TRANSITION_CROWDED !,*^Qh*,!,Isr,Isc W*,S*,G*,R*,D*,A*,Uu,Ur,Urc -222 interior/stone-regular}
{NEW:TRANSITION Isr,Isc Q* -282 interior/stone-chasm/stone-regular}
{NEW:TRANSITION (!,*^Qh*,!,Isr,Isc) W*,S* -222 interior/stone-dock-regular LAYER2=-221 ADJACENT2=!,Isr,Isc,W*,S*}
{NEW:TRANSITION Isr,Isc (Isa,Iw*,Q*,W*,G*,R*,D*,A*,Uu,Ur,Urc,S*) -222 interior/stone-regular}
{NEW:TRANSITION Iwo G*,R*,D*,A*,Ur,Urc,Isa -283 interior/wood-ruined}
{NEW:TRANSITION Iw* G*,R*,D*,A*,Ur,Urc,Isa -283 interior/wood-regular}
{NEW:TRANSITION Iwr,Iwc W*,S*,Qx* -283 interior/wood-chasm/wood-clean}
{NEW:TRANSITION Iwo W*,S*,Qx* -283 interior/wood-chasm/wood-regular}
{NEW:TRANSITION Iw* Ql* -283 interior/wood-chasm/wood-burnt}
# compatibility code for deprecated terrain codes
{NEW:THREE_TERRAIN_TRANSITION Irs,Icr Q* G*,R*,D*,A*,Uu,Ur,Urc -222 interior/stone-chasm/stone-regular} # wmllint: noconvert
{NEW:THREE_TERRAIN_TRANSITION Irs,Icr Q* W* -222 interior/stone-chasm/stone-dock-regular} # wmllint: noconvert
{NEW:TRANSITION_CROWDED !,*^Qh*,!,Irs,Icr Q* -222 interior/stone-chasm/stone-regular} # wmllint: noconvert
{NEW:TRANSITION_CROWDED !,*^Qh*,!,Irs,Icr W*,S*,G*,R*,D*,A*,Uu,Ur,Urc -222 interior/stone-regular} # wmllint: noconvert
{NEW:TRANSITION {TG_BUILT_STONE} Q* -282 interior/stone-chasm/stone-regular}
{NEW:TRANSITION !,*^Qh*,!,{TG_BUILT_STONE} W*,S* -222 interior/stone-dock-regular LAYER2=-221 ADJACENT2=!,Irs,Icr,W*,S*} # wmllint: noconvert
{NEW:TRANSITION {TG_BUILT_STONE} !,Irs,Icr,!,I*r,Q*,W*,G*,R*,D*,A*,Uu,Ur,Urc,S* -222 interior/stone-regular} # wmllint: noconvert
{NEW:TRANSITION {TG_BUILT_WOOD} G*,R*,D*,A*,Ur,Urc,Ias -283 interior/wood-regular} # wmllint: noconvert
{NEW:TRANSITION {TG_BUILT_WOOD} W*,S*,Qx* -283 interior/wood-chasm/wood-clean}
{NEW:TRANSITION Ior W*,S*,Qx* -283 interior/wood-chasm/wood-regular} # wmllint: noconvert
{NEW:TRANSITION {TG_BUILT_WOOD} Ql* -283 interior/wood-chasm/wood-burnt}
# end compatibility code
{NEW:DISABLE_TRANSITION (Qx*,Ql*,Xu*,Xo*,Cud*,Kud*) (*,*^*)}
#{DISABLE_BASE_TRANSITIONS Qx*,Ql*,Xu*,Xo*,Cud*,Kud*}
#dwarven castle transitions
{NEW:WALL_TRANSITION3 (Cud*,Kud*) Ql* Qx* unwalkable/dcastle-lava-chasm}
# Custom flag used to allow stone walls to still get drawn over these
{NEW:WALL2 (Cud*,Kud*) X* (!,Cud*,Kud*,X*) castle/dwarven-castle-wall FLAG=castlewall}
{NEW:WALL2 (Cud*,Kud*) Ql* (!,Cud*,Kud*,Ql*) unwalkable/dcastle-lava FLAG=castlewall}
{NEW:WALL2 (Cud*,Kud*) Qx* (!,Cud*,Kud*,Qx*) unwalkable/dcastle-chasm FLAG=castlewall LAYER=-1}
{NEW:WALL (Cud*,Kud*) (!,Cud*,Kud*,X*) castle/dwarven-castle}
{NEW:WALL Xue (Qx*,Ql*) cave/earthy-wall-rough-chasm}
{NEW:WALL Xue (!,Xu*,Xo*) cave/earthy-wall-rough}
{NEW:WALL Xuc,Xuce (Qx*,Ql*) walls/wall-mine-chasm}
{NEW:WALL Xuc,Xuce (!,Xu*,Xo*) walls/wall-mine}
{NEW:WALL2 Xuf (!,Xuf,!,Xu*) (!,Xu*,Xo*) walls/hedge/wall-hedge-edge}
{NEW:WALL2 Xo* (Xuf) (!,Xu*,Xo*) walls/hedge/wall-hedge-mixed}
{NEW:WALL Xuf (Qx*,Ql*) walls/hedge/wall-hedge-chasm}
{NEW:WALL Xuf (!,Xu*,Xo*) walls/hedge/wall-hedge}
{NEW:WALL Xu* (Qx*,Ql*) cave/wall-rough-chasm}
{NEW:WALL Xur (!,Xu*,Xo*) walls/rubble/wall-rough}
#{NEW:WALL Xu* (!,Xu*) cave/wall-rough}
{NEW:WALL2_CORNER (Xom,Xoi) (Xos,Xot,Xoc,Xoa,Xof) (!,Xu*,Xo*) walls/stone/wall-minestone-mixed}
{NEW:WALL2_CORNER (Xos,Xot,Xoc,Xoa,Xof) (Xom,Xoi) (!,Xu*,Xo*) walls/stone/wall-stonemine-mixed}
{NEW:WALL2_CORNER (Xom,Xoi) Xu* (!,Xu*,Xo*) walls/stone/wall-mine-mixed}
{NEW:WALL2 (Xom,Xoi) Xu* (!,Xu*,Xo*) walls/stone/wall-mine-mixed}
{NEW:WALL2_CORNER (Xoc) (Xos,Xot,Xoa,Xof) (!,Xu*,Xo*) walls/stone/wall-cleanstone-mixed}
{NEW:WALL2_CORNER (Xoa) Xu* (!,Xu*,Xo*) walls/stone/ancient/wall-mixed}
{NEW:WALL2 (Xoa) Xu* (!,Xu*,Xo*) walls/stone/ancient/wall-mixed}
{NEW:WALL2_CORNER (Xo*) Xu* (!,Xu*,Xo*) walls/stone/wall-mixed}
{NEW:WALL2 (Xo*) Xu* (!,Xu*,Xo*) walls/stone/wall-mixed}
{NEW:WALL Xu* (!,Xu*,Xo*) cave/wall-rough}
{NEW:WALL2 Exos Xor (!,Exos,Xo*) walls/stone/ruins/wall-stone-dual}
{NEW:WALL_CORNER Xor (!,Xo*,Xu*) walls/stone/damaged/wall-stone ALTERNATIVE=Xo*}
{NEW:WALL Xor (!,Xu*,Xo*) walls/stone/damaged/wall-stone}
{NEW:WALL_CORNER Exos (!,Exos,Xo*) walls/stone/ruins/wall-stone FLAG=ruins}
{NEW:WALL2 Exos Xo* (!,Exos,Xo*) walls/stone/ruins/wall-stone-edge}
{NEW:WALL Exos (!,Exos,Xo*) walls/stone/ruins/wall-stone FLAG=ruins}
{NEW:OVERLAY Exos walls/stone/ruins/rubble LAYER=-100}
# Xoi and Xom both have wooden trim, so "white" wall images are only needed for walls with visible faces.
{NEW:WALL_CORNER Xoi (!,Xo*,Xu*) walls/stone/wall-stone-white}
{NEW:WALL_CORNER Xom,Xoi (!,Xo*,Xu*) walls/stone/wall-stone-mine}
{NEW:WALL_CORNER Xoc (!,Xo*,Xu*) walls/stone/clean/wall-stone}
{NEW:WALL_CORNER Xoa (!,Xo*,Xu*) walls/stone/ancient/wall-stone}
{NEW:WALL_CORNER Xot^Edb (!,Xu*,Xo*) walls/stone/catacombs/wall-bones ALTERNATIVE=Xo*}
{NEW:WALL_CORNER Xot (!,Xo*,Xu*) walls/stone/catacombs/wall-stone ALTERNATIVE=Xo*}
{NEW:WALL_CORNER Xof^Efm (!,Xo*,Xu*) walls/stone/overgrown/wall-flowers ALTERNATIVE=Xof}
{NEW:WALL_CORNER Xof (!,Xo*,Xu*) walls/stone/overgrown/wall-stone}
{NEW:WALL_CORNER Xos (Aa,Ai,Ha) walls/stone/wall-stone-snow}
{NEW:WALL_CORNER Xo* (!,Xo*,Xu*) walls/stone/wall-stone}
{NEW:WALL_A10 Xol (!,Xu*,Xo*) walls/stone/lit/wall-stone-lit}
{NEW:WALL Xoi^Exw (!,Xu*,Xo*) walls/stone/wall-stone-white OVERLAYIMAGE=terrain/walls/windows/dark-wood OVERLAYIMAGE1=terrain/walls/windows/dim-wood OVERLAYIMAGE2=terrain/walls/windows/dim-wood}
{NEW:WALL Xoi (!,Xu*,Xo*) walls/stone/wall-stone-white}
{NEW:WALL_MINOR_VARIANTS Xoi Xom (!,Xu*,Xo*) walls/stone/wall-stone-white}
{NEW:WALL Xom^Exw (!,Xu*,Xo*) walls/stone/wall-stone-mine OVERLAYIMAGE=terrain/walls/windows/dark-wood OVERLAYIMAGE1=terrain/walls/windows/dim-wood OVERLAYIMAGE2=terrain/walls/windows/dim-wood}
{NEW:WALL Xom,Xoi (!,Xu*,Xo*) walls/stone/wall-stone-mine}
{NEW:WALL Xoc^Exw (!,Xu*,Xo*) walls/stone/clean/wall-stone OVERLAYIMAGE=terrain/walls/windows/glass}
{NEW:WALL Xoc (!,Xu*,Xo*) walls/stone/clean/wall-stone}
{NEW:WALL_MINOR_VARIANTS Xoc Xo* (!,Xu*,Xo*) walls/stone/clean/wall-stone}
{NEW:WALL Xoa (!,Xu*,Xo*) walls/stone/ancient/wall-stone}
# causes some bugs that need to be worked out first
# {NEW:WALL_MINOR_VARIANTS Xoa Xo* (!,Xu*,Xo*) walls/stone/ancient/wall-stone}
{NEW:WALL Xot^Edb (!,Xu*,Xo*) walls/stone/catacombs/wall-stone OVERLAYIMAGE=terrain/walls/stone/catacombs/wall-bones}
{NEW:WALL Xot (!,Xu*,Xo*) walls/stone/catacombs/wall-stone}
{NEW:WALL_MINOR_VARIANTS Xot Xo* (!,Xu*,Xo*) walls/stone/catacombs/wall-stone}
{NEW:WALL Xof^Efm (!,Xu*,Xo*) walls/stone/overgrown/wall-stone OVERLAYIMAGE=terrain/walls/stone/overgrown/wall-flowers}
{NEW:WALL Xof (!,Xu*,Xo*) walls/stone/overgrown/wall-stone}
{NEW:WALL Xos (Aa,Ai,Ha) walls/stone/wall-stone-snow ADJACENT2=!,Xu*,Xo*}
{NEW:WALL Xos^Exw (!,Xu*,Xo*) walls/stone/wall-stone OVERLAYIMAGE=terrain/walls/windows/dark-stone OVERLAYIMAGE1=terrain/walls/windows/dim-stone OVERLAYIMAGE2=terrain/walls/windows/bright-stone}
{NEW:WALL Xo* (!,Xu*,Xo*) walls/stone/wall-stone}
# New Generic Castle-to Chasm transition
# To aid those updating terrain macros in 1.17/1.18, these next macros used to be
# {TRANSITION_COMPLETE_LF (Cha,Kha,Coa,Koa,Cea,Kea,Cfa,Kfa) Qx* -89 transition2 chasm/regular-snow-castle}
# {TRANSITION_COMPLETE_LF (!,Cud*,Kud*,!,C*,K*) Qxe -89 transition2 chasm/earthy-castle}
# {TRANSITION_COMPLETE_LF (!,Cud*,Kud*,!,C*,K*) Qx* -89 transition2 chasm/regular-castle}
# {TRANSITION_COMPLETE_LF (!,Cud*,Kud*,!,C*,K*,Xo*) Ql* -89 transition2 unwalkable/castle-lava-chasm}
{NEW:TRANSITION_INTRA (Cha,Kha,Coa,Koa,Cea,Kea,Cfa,Kfa) -89 chasm/regular-snow-castle FLAG=transition2 ADJACENT="Qx*"}
{NEW:TRANSITION_INTRA (!,Cud*,Kud*,!,C*,K*) -89 chasm/earthy-castle FLAG=transition2 ADJACENT="Qxe"}
{NEW:TRANSITION_INTRA (!,Cud*,Kud*,!,C*,K*) -89 chasm/regular-castle FLAG=transition2 ADJACENT="Qx*"}
{NEW:TRANSITION_INTRA (!,Cud*,Kud*,!,C*,K*,Xo*) -89 unwalkable/castle-lava-chasm FLAG=transition2 ADJACENT="Ql*"}
# Special Mountain to Chasm Blend transition
{NEW:TRANSITION_INTRA (Qx*,Ql*) 0 mountains/blend-from-chasm FLAG=transition3 ADJACENT="M*"}
#{NEW:FLOODFILL_DISABLE_WALL (!,Qx*,Xv,_off^_usr) *^Qhh FLAG=ground FLAG1=flood_high_alt NEGATE_FLAG=flood_high}
{NEW:FLOODFILL_DISABLE_WALL (!,Qx*,Xv,_off^_usr) *^Qhh* FLAG=ground FLAG1=flood_high_alt FLAG3=flood_high_alt NEGATE_FLAG=flood_high}
{NEW:FLOODFILL_DISABLE_WALL (!,Qx*,Xv,_off^_usr) *^Qhh* FLAG=ground FLAG1=flood_high FLAG3=flood_high NEGATE_FLAG=flood_high_alt}
# This is a special case
####################################################################
{DISABLE_CORNER_FLAGGED !,*^Qhh* *^Qhh* FLAG=ground FLAG1=flood_high FLAG2=flood_high FLAG3=flood_high_alt}
{DISABLE_CORNER_FLAGGED !,*^Qhh* *^Qhh* FLAG=ground FLAG1=flood_high FLAG2=flood_high_alt FLAG3=flood_high}
{DISABLE_CORNER_FLAGGED !,*^Qhu* *^Qhu* FLAG=ground FLAG1=flood_low FLAG2=flood_low FLAG3=flood_low_alt}
{DISABLE_CORNER_FLAGGED !,*^Qhu* *^Qhu* FLAG=ground FLAG1=flood_low FLAG2=flood_low_alt FLAG3=flood_low}
####################################################################
#{NEW:FLOODFILL_DISABLE_WALL (!,*^Qhh,Qx*,Xv,_off^_usr) *^Qhh FLAG=ground FLAG1=flood_high_alt NEGATE_FLAG=flood_high}
#{NEW:FLOODFILL_DISABLE_WALL (!,*^Qhh,Qx*,Xv,_off^_usr) *^Qhh FLAG=ground FLAG1=flood_high NEGATE_FLAG=flood_high_alt}
{NEW:FLOODFILL_DISABLE_WALL (!,*^Qhh*,!,*^Qh*) (!,*^Qh*,Qx*,Xv,_off^_usr) FLAG=ground FLAG2=flood_low_alt NEGATE_FLAG=flood_low}
{NEW:FLOODFILL_DISABLE_WALL (!,*^Qhh*,!,*^Qh*) (!,*^Qh*,Qx*,Xv,_off^_usr) FLAG=ground FLAG2=flood_low NEGATE_FLAG=flood_low_alt}
#chasm/lava transitions always below castles/walls
# these have been moved lower, layer=-290 from -90
{NEW:WALL_TRANSITION2 Ql Qx*,Xv,_off^_usr (!,Ql,Qx*) unwalkable/lava-chasm LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION2 Qlf Qx*,Xv,_off^_usr (!,Ql*,Qx*) unwalkable/lava-chasm LAYER=-290 FLAG=ground}
# no compatibility code for ^Qh* overlays on Irs,Ias,Icr,Ior,Icn - no stable legacy maps would have such combinations # wmllint: noconvert
{NEW:WALL_TRANSITION2 (!,I*,!,*^Qhu*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,Is*) (!,*^Qh*,!,Isa) elevation/ancient-stone/corner-stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,I*,!,*^Qhu*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,Is*) (!,*^Qh*,!,Is*) elevation/stone/corner-stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,I*,!,*^Qhu*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,Iw*) (!,*^Qh*,!,Iw*) elevation/wood/corner-wood LAYER=-90 FLAG=ground}
# delete this following line once image work is complete
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,*^Qh*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,Iw*) (!,*^Qh*,!,Iw*) elevation/stone/corner-stone IPF="~CS(200,-100,-100)" LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*) (!,Is*,!,*^Qhh*) (Isa^Qhh*) elevation/ancient-stone/corner-stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*) (!,Is*,!,*^Qhh*) (Is*^Qhh*) elevation/stone/corner-stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*) (!,Iw*,!,*^Qhh*) (Iw*^Qhh*) elevation/wood/corner-wood LAYER=-90 FLAG=ground}
# delete this following line once image work is complete
{NEW:WALL_TRANSITION2 (!,*^Qhh*) (!,Iw*,!,*^Qhh*) (Iw*^Qhh*) elevation/wood/corner-wood LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*) (!,Iw*,!,*^Qhh*) (Iw*^Qhh*) elevation/stone/corner-stone IPF="~CS(-100,200,-100)" LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 I*^Qh* Ql,Qx*,Xv,_off^_usr (!,*^Qh*,Ql*,Qx*) elevation/default/corner-chasm LAYER=-290 FLAG=ground-sub}
{NEW:WALL_TRANSITION2 (!,W*^Qh*,*^Qhh,!,*^Qh*) Ql,Qx*,Xv,_off^_usr (!,W*^Qh*,!,W*) elevation/water/corner-chasm-high-water LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,*^Qh*) Ql,Qx*,Xv,_off^_usr (!,*^Qh*,!,A*,Ha*,Ms*,Rra*) elevation/frozen/corner-chasm-high-snow LAYER=-290 FLAG=ground IPF="~CS(-5,10,30)"}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,*^Qh*) Ql,Qx*,Xv,_off^_usr (!,*^Qh*,!,A*,Ha*,Ms*,Rra*) elevation/default/corner-chasm LAYER=-290 FLAG=ground IPF="~CS(-10,15,45)"} # for missing cases
{NEW:WALL_TRANSITION2 (!,*^Qhh*,I*^Qh*,!,*^Qh*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,A*,Ha*,Ms*,Rra*) (!,*^Qh*,!,A*,Ha*,Ms*,Rra*) elevation/frozen/corner-snow LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,W*^Qh*) Ql,Qx*,Xv,_off^_usr (!,*^Qh*,Ql*,Qx*,W*) elevation/water/corner-chasm-low-water LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,W*^Qh*) Ql,Qx*,Xv,_off^_usr (!,W*^Qh*,!,W*) elevation/water/corner-chasm-all-water LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,I*^Qh*,!,*^Qh*) Ql,Qx*,Xv,_off^_usr (!,*^Qh*,Ql*,Qx*) elevation/default/corner-chasm LAYER=-290 FLAG=ground}
# to test if there are mixed corners missing - can eventually be deleted
#{NEW:WALL_TRANSITION2 (!,*^Qhh,!,*^Qh*) (!,Ql,Qx*,Xv,_off^_usr,*^Qh*,I*) (!,*^Qh*,!,I*) elevation/frozen/corner-snow IPF="~CS(100,100,200)" LAYER=-90 FLAG=ground}
#{NEW:WALL_TRANSITION2 (!,*^Qhh,!,*^Qh*) (!,I*,!,*^Qhh) (I*^Qhh) elevation/frozen/corner-snow IPF="~CS(200,100,100)" LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,I*,!,*^Qh*) (!,*^Qh*) (I*^Qhh) elevation/stone/corner-stone-rim LAYER=-91 FLAG=ground-rock}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,Isr,Isc,!,*^Qh*) (!,I*^Qh*,!,Isr,Isc) (!,I*,!,*^Qhh*) elevation/stone/corner-stone-rock LAYER=-89 FLAG=ground-rock}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,Iw*,!,*^Qh*) (!,I*^Qh*,!,Iw*) (!,I*,!,*^Qhh) elevation/wood/corner-wood-rock LAYER=-89 FLAG=ground-rock}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,Isr^Qh*,Isc^Qh*) (!,I*^Qh*) (!,I*,!,*^Qhh*) elevation/stone/corner-stone-highrim LAYER=-89 FLAG=ground-rock}
{NEW:WALL_TRANSITION2 (!,*^Qhh*,!,*^Qh*) (!,*^Qh*) (*^Qhh*) elevation/default/corner-chasm-rock LAYER=-90 FLAG=ground-rock}
{NEW:WALL_TRANSITION Ql (!,Ql,Xv,_off^_usr) unwalkable/lava LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Qlf (!,Qlf,Xv,_off^_usr) unwalkable/lava-high LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Qx* (Ai*,Aa*,Ha*,Ms*,Rra) chasm/regular-snow LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Qx* (Wwf,Wwg,S*) chasm/swamp LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Qx* (W*) chasm/water LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Qxe (!,Qx*,Xv,_off^_usr) chasm/earthy LAYER=-290 FLAG=ground}
{NEW:WALL_TRANSITION Q* (Iw*^Qh*) elevation/wood/wood-chasm LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION Q* Isa^Qh* elevation/ancient-stone/stone-chasm LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION Q* I*^Qh* elevation/stone/stone-chasm LAYER=-90 FLAG=ground}
# special cases, same as the ones needing DISABLE_CORNER_FLAGGED above
####################################################################
{NEW:WALL_TRANSITION (Iw*^Qhh*) (*^Qhh*) elevation/wood/wood LAYER=-90 FLAG=ground2 FLAG1=flood_high}
{NEW:WALL_TRANSITION !,*^Qhh* (Iw*^Qhh*) elevation/wood/wood LAYER=-90 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="*^Qhh*"}
{NEW:WALL_TRANSITION *^Qhh* (Iw*^Qhh*) elevation/wood/wood LAYER=-90 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="!,*^Qhh*"}
{NEW:WALL_TRANSITION (I*^Qhh*) (*^Qhh*) elevation/stone/stone LAYER=-90 FLAG=ground2 FLAG1=flood_high}
{NEW:WALL_TRANSITION !,*^Qhh* (I*^Qhh*) elevation/stone/stone LAYER=-90 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="*^Qhh*"}
{NEW:WALL_TRANSITION *^Qhh* (I*^Qhh*) elevation/stone/stone LAYER=-90 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="!,*^Qhh*"}
{NEW:WALL_TRANSITION *^Qhh* (*^Qhh*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_high}
{NEW:WALL_TRANSITION !,*^Qhh* (*^Qhh*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="*^Qhh*"}
{NEW:WALL_TRANSITION *^Qhh* (*^Qhh*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_high_alt TERRAINLIST2="!,*^Qhh*"}
{NEW:WALL_TRANSITION !,*^Qhu* (*^Qhu*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_low TERRAINLIST2="*^Qhu*"}
{NEW:WALL_TRANSITION *^Qhu* (*^Qhu*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_low_alt }
{NEW:WALL_TRANSITION *^Qhu* (*^Qhu*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_low ADJACENT2="!,*^Qhu*"}
{NEW:WALL_TRANSITION *^Qhu* (!,*^Qhu*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_low_alt ADJACENT2="*^Qhu*"}
{NEW:WALL_TRANSITION *^Qhu* (*^Qhu*) elevation/default/regular LAYER=-190 FLAG=ground2 FLAG1=flood_low_alt ADJACENT2="!,*^Qhu*"}
####################################################################
{NEW:WALL_TRANSITION (!,*^Qhh*) (Iw*^Qhh*) elevation/wood/wood LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qhh*) Isa^Qhh* elevation/ancient-stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qhh*) I*^Qhh* elevation/stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (Iw*^Qhu*) (!,*^Qhu*) elevation/wood/wood LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (Isa^Qhu*) (!,*^Qhu*) elevation/ancient-stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (I*^Qhu*) (!,*^Qhu*) elevation/stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qh*) (Iw*^Qh*) elevation/wood LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qh*) Isa^Qh* elevation/ancient-stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qh*) I*^Qh* elevation/stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qhh*) W*^Qhh* elevation/water/water LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qhh*) A*^Qhh*,Ha*^Qhh*,Ms*^Qhh*,Rra^Qhh* elevation/frozen/snow LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION (!,*^Qhh*,Qx*,Xv,_off^_usr) *^Qhh* elevation/default/regular LAYER=-190 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,!,Iw*^*) elevation/wood/wood LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,!,Isa) elevation/ancient-stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,!,I*) elevation/stone/stone LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,!,W*) elevation/water/water LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,!,A*,Ha*,Ms*,Rra) elevation/frozen/snow LAYER=-90 FLAG=ground}
{NEW:WALL_TRANSITION *^Qh* (!,*^Qh*,Qx*,Xv,_off^_usr) elevation/default/regular LAYER=-190 FLAG=ground}
{NEW:TRANSITION *^Qhux *^Qhu -87 elevation/chasm-overlay FLAG=transition8}
{NEW:WALL_TRANSITION Qx* (!,Qx*,Xv,_off^_usr) chasm/regular LAYER=-290 FLAG=ground}
{NEW:TRANSITION_INTRA (Xo*) -289 chasm/regular-castle FLAG=transition2 ADJACENT="Qx*"}
# Stone wall transitions
# the doubled comma is to improve transitions with the map edge
# {WALL_ADJACENT_TRANSITION Xol (!,,Xo*,Xu*) ANIMATION_10 walls/wall-stone-lit}
# {WALL_ADJACENT_TRANSITION Xo* (!,,Xo*,Xu*) IMAGE_SINGLE walls/wall-stone}
#
# > B A S E T R A N S I T I O N S. <
#
# The order mostly controls which overlap which, some special flags and varying
# layer numbers are used to make some special transitions to layer in more
# complex ways.
# Default layer is -500, so anything layering above should be higher.
{NEW:TRANSITION_INTRA (!,W*^Dr,!,*^Dr) -158 misc/rubble FLAG=intra}
{NEW:TRANSITION_INTRA (*^Esd) -158 embellishments/rocks FLAG=intra}
{NEW:TRANSITION (Md,Mv) (!,Md,Hhd,Mv,W*,S*) -166 mountains/dry}
# Special mountain to dry/desert terrain trans
{NEW:TRANSITION (Hd,Hhd,Rb,Re,Rd,Rrd,D*,Gd,Ha,A*,U*,Ql*,Exos) Mm 0 mountains/blend-from-dry FLAG=inside}
{NEW:TRANSITION (Hd,Hhd,Rb,Re,Rd,Rrd,D*,Gd,U*,Ql*,Exos) Ms 0 mountains/blend-from-dry FLAG=inside}
{NEW:TRANSITION (Mm) (Hd,Hhd,Rb,Re,Rd,D*,Gd,Ha,A*,U*,Ql*,Exos) -166 hills/dry}
{NEW:TRANSITION (Ms) (Hd,Hhd,Rb,Re,Rd,D*,Gd,U*,Ql*,Exos) -166 hills/dry}
{NEW:TRANSITION (Ms) (Mm,Md) -170 hills/snow-to-hills FILTER_FLAG=mountain-small-3}
{NEW:TRANSITION (Ms,Ha) Hh* -170 hills/snow-to-hills}
{NEW:TRANSITION (Ms,Ha) (W*,S*) -171 hills/snow-to-water}
{NEW:TRANSITION (Ms,Ha) (!,Ha,Qx*,Mm,Ms,Md) -172 hills/snow}
{NEW:TRANSITION (Tb,*^Uf*) (!,M*,Tb,*^Uf*) -184 forest/mushroom-base}
{NEW:TRANSITION (Mm,Hh) (!,M*,Hh,Ai,W*,S*) -180 hills/regular}
{NEW:TRANSITION (Md,Hhd) (!,M*,Hhd,Ai,W*,S*) -183 hills/dry}
{NEW:TRANSITION Hd (!,Hd,Qx*,W*) -184 hills/desert}
{NEW:TRANSITION Uh (!,Uh,W*,Ai) -200 cave/hills}
{NEW:TRANSITION Uhe (!,Uhe,W*,Ai) -200 cave/earthy-hills}
{NEW:TRANSITION (Uu,Uh) (!,Uu,Uh,W*,Ai) -220 cave/floor}
{NEW:TRANSITION (Uue,Uhe) (!,Uue,Uhe,W*,Ai) -221 cave/earthy-floor}
{NEW:TRANSITION Ai,W*,S* Ur -223 cave/floor FLAG=inside}
{NEW:TRANSITION Urb (!,Urb) -224 cave/flagstones-dark}
{NEW:TRANSITION Ss (!,I*,Ss,H*,M*,A*,Chs,K*,Q*,Rra) -230 swamp/water}
#{NEW:TRANSITION Iwr G*,R*,W*,S*,D*,A*,Ur -230 interior/wood-regular}
# need to move this up higher to get over chasm walls
{NEW:TRANSITION *^Efm G* -240 embellishments/flowers-mixed FLAG=transition4}
# New Super-cool gradual Grass blending
{NEW:TRANSITION Gs Gg,Gd,Gll,Re,Rb,Rd,Rp,Exos -250 grass/semi-dry-long FLAG=inside}
{NEW:TRANSITION Gg Gs,Gd,Gll,Re,Rb,Rd,Rp,Exos -251 grass/green-long FLAG=inside}
{NEW:TRANSITION Gd Gg,Gs,Gll,Re,Rb,Rd,Rp,Exos -252 grass/dry-long FLAG=inside}
{NEW:TRANSITION Gll Gg,Gs,Gd,Re,Rb,Rd,Rp,Exos -253 grass/leaf-litter-long FLAG=inside}
{NEW:TRANSITION Gll Gg,Gs,Gd -254 grass/leaf-litter-long}
{NEW:TRANSITION Gd Gg,Gs,Gll -255 grass/dry-long}
{NEW:TRANSITION Gg Gs,Gd,Gll -256 grass/green-long}
{NEW:TRANSITION Gs Gg,Gd,Gll -257 grass/semi-dry-long}
{NEW:TRANSITION Gs (R*,D*,Aa,Ur,Urc,Isa) -260 grass/semi-dry-medium}
{NEW:TRANSITION Gg (R*,D*,Aa,Ur,Urc,Isa) -261 grass/green-medium}
{NEW:TRANSITION Gd (R*,D*,Aa,Ur,Urc,Isa) -262 grass/dry-medium}
{NEW:TRANSITION Gll (!,Gll,Q*,W*,Ai,C*,K*) -270 grass/leaf-litter}
{NEW:TRANSITION (Gg*,Qx*) (!,Gg*,Q*,Mm,Ms,Hh,C*,K*) -271 grass/green-abrupt}
{NEW:TRANSITION Gs (!,Gs,Q*,C*,K*) -272 grass/semi-dry-abrupt}
{NEW:TRANSITION Gd (!,Gd,Q*,C*,K*) -273 grass/dry-abrupt}
{NEW:TRANSITION Aa (W*,Ss) -280 frozen/snow-to-water}
{NEW:TRANSITION Aa (!,Aa,Q*,G*) -281 frozen/snow}
# This transitions from bank to flat terrains.
{NEW:TRANSITION (W*,Ai) (!,Rra,Rrd,!,R*,Gll,Isa) -300 flat/bank}
{NEW:TRANSITION (Sm) (!,Rra,!,R*,D*) -310 swamp/mud-to-land}
# To make everything layer properly, these transitions for sand to R* occur higher than most of the desert transitions
# Cannot use R* because we want Rrd to be like D* at the beach
{NEW:TRANSITION Dd {TG_RSTAR_NOT_RRD} -319 sand/desert}
{NEW:TRANSITION Ds {TG_RSTAR_NOT_RRD} -319 sand/beach}
# A rule for corner-based beach waves...
{NEW:WAVES D*,Hd,Rrd W* -499 water/waves}
{NEW:TRANSITION Rr (!,Rr,W*,Ai,Q*) -320 flat/road}
{NEW:TRANSITION Rrc (!,Rrc,W*,Ai,Q*) -321 flat/road-clean}
{NEW:TRANSITION Rrd (!,Rr*,Ai,W*,Q*) -321 flat/sandy-path}
{NEW:TRANSITION Rp (!,Rp,W*,Ai,Q*) -322 flat/stone-path}
{NEW:TRANSITION Rra (!,Rrc,Rra,Q*) -321 flat/road-clean}
{NEW:TRANSITION *^Gvs (!,*^Gvs,C*,K*,*^F*,M*,H*,W*,Q*) -330 embellishments/farm-veg-spring FLAG=transition2}
{NEW:TRANSITION *^Emf (!,*^Emf,C*,K*,*^F*,M*,H*,W*,Q*) -330 embellishments/mushroom-farm FLAG=transition2}
{NEW:TRANSITION Ds (!,Ds,W*,S*,Ai,Q*) -510 sand/beach}
{NEW:TRANSITION Dd (!,R*,Dd,W*,S*,Ai,Q*) -510 sand/desert}
# Dirt transitions are double sided
{NEW:TRANSITION (!,Rd,Rr*,Hh*,M*,Q*,D*,T*) Rd -370 flat/desert-road FLAG=inside}
{NEW:TRANSITION Rd (!,Rd,W*,Ai,Q*,D*,T*) -371 flat/desert-road}
{NEW:TRANSITION (!,Re,Rr*,Hh*,M*,Q*,D*,T*) Re -379 flat/dirt FLAG=inside}
{NEW:TRANSITION Re (!,Re,Rr*,W*,Ai,Q*,D*,T*) -380 flat/dirt}
{NEW:TRANSITION (!,Rb,Exos,Rr*,W*,U*,Ai,Q*,D*,T*,Isa*) Rb,Isa,Exos -384 flat/dirt-dark FLAG=inside}
{NEW:TRANSITION Rb,Isa,Exos (!,Rb,Rr*,W*,U*,Ai,Q*,D*,T*,Isa*,Exos) -388 flat/dirt-dark}
{NEW:TRANSITION Rb,Exos Isa -384 flat/dirt-dark FLAG=inside}
{NEW:TRANSITION Isa Rb,Exos -388 flat/dirt-dark}
# This complicated part keeps the submerged part of ice or a bank from drawing over the above-water parts of banks or ice
{NEW:TRANSITION (!,Chw,Khw,Khs,!,C*,K*) (Ai,W*) -480 castle/castle-to-ice FLAG=non_submerged}
{NEW:TRANSITION (Mm,Hh) Ai,W*,S* -482 hills/regular-to-water FLAG=non_submerged}
{NEW:TRANSITION (Md,Hhd,Mv) Ai,W*,S* -482 hills/dry-to-water FLAG=non_submerged}
{NEW:TRANSITION (!,Rra,Rrd,!,R*,G*,Uue,Isa) Ai,W* -483 flat/bank-to-ice FLAG=non_submerged}
{NEW:TRANSITION (U*,Xu*,Ql*) Ai,W*,S* -486 cave/bank FLAG=non_submerged}
{NEW:TRANSITION Aa,Ai (D*,Rrd) -485 frozen/ice FLAG=non_submerged}
# if there were no elevations, we would use these two
# {NEW:TRANSITION Aa,Ha,Ms,Ai,Rra (W*,S*) -485 frozen/ice FLAG=non_submerged}
# ---
# {NEW:TRANSITION Aa,Ha,Ms,Ai,Rra (W*,S*) -505 frozen/ice-to-water FLAG=submerged}
# But there are ledges, so we need more rules
# This might be made more concise, but the idea is to filter out ledges
# The third/sixth rules have that extra filter to allow ice transitions where there are no ledges because everything is 'elevated'
{NEW:TRANSITION (!,*^Qh*,!,Aa,Ha,Ms,Ai,Rra) (!,*^Qh*,!,W*,S*) -485 frozen/ice FLAG=non_submerged}
{NEW:TRANSITION Aa^Qhh*,Ha^Qhh*,Ms^Qhh*,Ai^Qhh*,Rra^Qhh* (W*^Qhh*,S*^Qhh*) -485 frozen/ice FLAG=non_submerged}
{NEW:TRANSITION (!,*^Qh*,!,Aa,Ha,Ms,Ai,Rra) (W*^Qhu*,S*^Qhu*) -485 frozen/ice FLAG=non_submerged FILTER_PRIMARY_FLAG=has_flag=elevated}
# ---
{NEW:TRANSITION (!,*^Qh*,!,Aa,Ha,Ms,Ai,Rra) (!,*^Qh*,!,W*,S*) -505 frozen/ice-to-water FLAG=submerged}
{NEW:TRANSITION Aa^Qhh*,Ha^Qhh*,Ms^Qhh*,Ai^Qhh*,Rra^Qhh* (W*^Qhh*,S*^Qhh*) -505 frozen/ice-to-water FLAG=submerged}
{NEW:TRANSITION (!,*^Qh*,!,Aa,Ha,Ms,Ai,Rra) (W*^Qhu*,S*^Qhu*) -505 frozen/ice-to-water FLAG=submerged FILTER_PRIMARY_FLAG=has_flag=elevated}
# we just draw this again (invisible below the base layer) to set the transition flags
{NEW:TRANSITION Aa,Ha,Ms,Ai (W*,Ss) -1001 frozen/ice-to-water}
# not needed for most core terrains, but can be useful for some UMC without transitions
{NEW:TRANSITION Ur (!,Ur*) -506 cave/path}
# Beaches
{NEW:GENERIC_CORNER_TRANSITION (!,D*,Hd,Chw,Khw,Khs,W*,S*,Xv,Qx*,A*,Rra,Rrd,_*) W* -500 water/bottom masks/long ""}
# Water Transitions below everything else
{NEW:GENERIC_CORNER_TRANSITION Wwf (!,Wwf,!,W*,Sm) -515 water/ford masks/long "~O(0.48)"}
# Double-sided animated transitions for water-to-water and sand-to-water
{NEW:TRANSITION Sm (!,Sm,!,W*,D*) -556 swamp/mud-long FLAG=transition3}
{NEW:WATER_342_180_TRANSITION Wo* (!,Wo*,!,W*,Sm) -550 "~O(50%)" water/ocean 21 DURATION=125 RANDOM_START=no}
{NEW:WATER_342_180_TRANSITION Ww* (!,Ww*,!,W*,Sm) -551 "~O(50%)" water/water 17 DURATION=125 RANDOM_START=no}
{NEW:WATER_342_180_OVERLAY_TRANSITION Wog,Wwg,Wwrg (!,Wog*,Wwg*,Wwrg,!,W*,Sm) -503 water/overlay-gray 0.20}
{NEW:WATER_342_180_OVERLAY_TRANSITION Wot,Wwt,Wwrt (!,Wot*,Wwt*,Wwrt,!,W*,Sm) -505 water/overlay-tropical 0.16}
# We currently can't afford these extra rules to make the water transition nicely onto void and off-map, so
# instead we make void and off-map transition over water.
#{NEW:WATER_342_180_TRANSITION Wog Xv,_off^_usr -550 "~CS(20,0,-10)" water/ocean 21}
#{NEW:WATER_342_180_TRANSITION Wo Xv,_off^_usr -551 "" water/ocean 21}
#{NEW:WATER_342_180_TRANSITION Wot Xv,_off^_usr -552 "~CS(-5,15,10)" water/ocean 21}
#{NEW:WATER_342_180_TRANSITION Wwg,Wwrg Xv,_off^_usr -553 "~CS(10,-5,-10)" water/water 17}
#{NEW:WATER_342_180_TRANSITION Ww,Wwf,Wwr Xv,_off^_usr -554 "" water/water 17}
#{NEW:WATER_342_180_TRANSITION Wwt,Wwrt Xv,_off^_usr -555 "~CS(5,20,10)" water/water 17}
{NEW:GENERIC_CORNER_TRANSITION Xv W*,Sm -513 void/void masks/long ()}
{NEW:GENERIC_CORNER_TRANSITION _off^_usr W*,Sm -514 off-map/border masks/long "~NO_TOD_SHIFT()"}
# chasm to abyss ecetera transition
{NEW:TRANSITION Qxu,Qxe Qxua,Xv,_off^_usr -600 chasm/depths FLAG=depths}
{NEW:TRANSITION Qxua Xv,_off^_usr -601 chasm/abyss-base FLAG=depths}
# fake shroud
{NEW:OVERLAY *^_s void/void LAYER=1}
{NEW:TRANSITION *^_s (!,*^_s) 1 void/void FLAG=overlay}
# ugly fillups for missing transitions
{NEW:TRANSITION Ai Xv,_off^_usr -800 frozen/ice}
{NEW:TRANSITION Xv _off^_usr -810 void/void}
# Default terrain
{NEW:BASE * void/void}
#############################################################
# undefine patch macros
#undef TG_RSTAR_NOT_RRD
#############################################################