Difference between revisions of "TerrainCodesWML"

From The Battle for Wesnoth Wiki
m (Terrain Table)
(Remove the 1.2 terrain letters description)
Line 1: Line 1:
 
{{WML Tags}}
 
{{WML Tags}}
== Values of terrain letters ==
 
  
What each letter represents in Wesnoth maps,
+
Note: the old (1.2) terrain system is no longer documented here. If you have 1.2 maps you will need to convert them using [[Maintenance_tools|wmllint]].
and the possible values of the ''letter'' key.
 
  
See [[TerrainWML]] for information on how to define a terrain.
+
== Terrain strings ==
  
* '''A''' human (snow) hill village
+
The following rules hold for terrain strings. Note most of these rules are not validated since it would slow down Wesnoth; not following these rules might break Wesnoth.
* '''a''' human hill village
 
* '''B''' desert village (adobe)
 
* '''b''' human mountain village
 
* '''C''' castle
 
* '''c''' shallow water, "coast"
 
* '''D''' underground village (cave, village), "dungeon village"
 
* '''d''' sand, (old desert)
 
* '''E''' desert road
 
* '''e''' elven (snow) village
 
* '''F''' forest (snow)
 
* '''f''' forest
 
* '''G''' savanna (grass)
 
* '''g''' grass
 
* '''H''' hills (snow)
 
* '''h''' hills
 
* '''I''' desert
 
* '''i''' ice (tundra)
 
* '''J''' desert hills
 
* '''j''' -nothing- (will be snowy mountains)
 
* '''K''' keep (castle)
 
* '''k''' river ford (grass, shallow water)
 
* '''L''' tropical forest village (savanna, village)
 
* '''l''' lava (canyon)
 
* '''M''' desert mountains
 
* '''m''' mountain
 
* '''N''' ruined castle
 
* '''n''' encampment (castle)
 
* '''O''' -nothing- (will probably be an Orc Castle one day)
 
* '''o''' dwarven castle (castle)
 
* '''P''' desert oasis
 
* '''p''' dwarven village
 
* '''Q''' sunken ruin
 
* '''q''' ruin (swamp)
 
* '''R''' road (grass)
 
* '''r''' dirt (grass)
 
* '''S''' tundra
 
* '''s''' deep water
 
* '''T''' forest (tropical)
 
* '''t''' village
 
* '''U''' desert village (tent)
 
* '''u''' cave
 
* '''V''' snow village (tundra, village)
 
* '''v''' human village (village)
 
* '''W''' cavewall
 
* '''w''' swamp
 
* '''X''' canyon (replaced by chasm in trunk)
 
* '''x''' reserved for UMCs
 
* '''Y''' swamp village (swamp, village)
 
* '''y''' reserved for UMCs
 
* '''Z''' mermen village (shallow water)
 
* '''z''' reserved for UMCs
 
* '''/''','''|''','''\''' bridge (grass, shallow water)
 
* '''~''' fog
 
* ' ' void/shroud (it uses the "space" character)
 
* '''*''' reserved for UMCs
 
* '''^''' reserved for UMCs
 
* '''%''' reserved for UMCs
 
* '''@''' reserved for UMCs
 
* '''[''' rockbound cave
 
* ''']''' mushroom grove
 
* ''' ' ''' illuminated cave
 
* ''' ? ''' great Elven tree
 
* ''' & ''' impassable mountains
 
* ''' " ''' ???
 
* ''' $ ''' ???
 
* ''' . ''' ???
 
* ''' ; ''' ???
 
* ''' : ''' ???
 
* ''' < ''' ???
 
* ''' > ''' ???
 
* ''' _ ''' ???
 
* ''' ` ''' ???
 
  
==Reserved letters and non-letter Characters==
 
Reserved letters are for custom terrains in user-made campaigns. In addition to these it is currently also possible to use other characters not on the above list to represent custom terrain, such as ½ § @ % etc., but new "official" terrain may be assigned for these characters in the future. So when creating custom terrain, the letters marked as reserved on the above list should be used first.
 
Use campaign definitions (see [[CampaignWML]]) to prevent your custom terrains from interfering with other campaigns.
 
 
== Terrain strings '''''[[User:SkeletonCrew#Branch_terrain|(SVN terrain only)]]''''' ==
 
The terrains will be changed from a single letter to a multi letter system. There will be a compability layer for a short while. This layer doesn't work for campaigns with custom terrains, these campaigns have to be changed to use the new system.
 
 
The following rules are stated for the new terrain letters, note most of these rules are not validated since it would slow down Wesnoth; not following these rules might break Wesnoth.
 
 
* terrain strings are between 2 and 4 characters
 
* terrain strings are between 2 and 4 characters
 
* terrain strings start with a capital letter and the following letters are lower case
 
* terrain strings start with a capital letter and the following letters are lower case
Line 99: Line 17:
  
 
The letters Y,y,Z,z are reserved for UMC so any string containing any of these letters is a custom terrain. Other undefined terrain strings are reserved for future expansion within Wesnoth.
 
The letters Y,y,Z,z are reserved for UMC so any string containing any of these letters is a custom terrain. Other undefined terrain strings are reserved for future expansion within Wesnoth.
 
=== Conversion form old to new ===
 
Map conversion logic is included in the [[Maintenance_tools|upconvert]] tool (in newer versions, [[Maintenance_tools|wmllint]]). This script will, among other things, convert a map with the old letters to the new strings. Here is a lookup table with the letters.
 
 
char= a    b    c    d    e    f    g    h    i    j    k    l    m     
 
str=  Vhh  Vhm  Ww  Ds  Vea  Ff  Gg  Hh  Ai        Wwf  Ql  Mm 
 
 
char= n    o    p    q    r    s    t    u    v    w    x    y    z
 
str=  Ce  Cud  Vud  Chs  Re  Wo  Veg  Uu  Vhg  Ss
 
 
char= A    B    C    D    E    F    G    H    I    J    K    L    M     
 
str=  Vhha Vda  Ch  Vu  Rd  Fa  Gs  Ha  Dd  Hd  Kh  Vht  Md
 
 
char= N    O    P    Q    R    S    T    U    V    W    X    Y    Z
 
str=  Chr      Do  Chw  Rr  Aa  Ft  Vdt  Vha  Xu  Qxu  Vs  Vwm
 
 
char=    /    |      \    &    _    ~    ?    ]    [    '
 
str=  Ww^Bw/ Ww^Bw| Ww^Bw\ Xm  _s  _f  Fet  Uf  Uh  Uui
 
  
 
=== Terrain Table ===
 
=== Terrain Table ===
 
This is a list of the terrains, the strings used for them in the new map format, the letters used for them in the old map format, their id and the terrains they take their stats from. Generated from terrain.cfg using terrain2wiki.
 
This is a list of the terrains, the strings used for them in the new map format, the letters used for them in the old map format, their id and the terrains they take their stats from. Generated from terrain.cfg using terrain2wiki.
 
 
  
 
<table border="1"><tr>
 
<table border="1"><tr>
 
<th>String</th>
 
<th>String</th>
<th>Old letter</th>
 
 
<th>Name</th>
 
<th>Name</th>
 
<th>Stats from</th>
 
<th>Stats from</th>
Line 131: Line 28:
 
<tr>
 
<tr>
 
<td>_off^_usr</td>
 
<td>_off^_usr</td>
<td></td>
 
 
<td>None</td>
 
<td>None</td>
 
<td></td>
 
<td></td>
Line 137: Line 33:
 
<tr>
 
<tr>
 
<td>_s</td>
 
<td>_s</td>
<td></td>
 
 
<td>Shroud (use in mask only)</td>
 
<td>Shroud (use in mask only)</td>
 
<td></td>
 
<td></td>
Line 143: Line 38:
 
<tr>
 
<tr>
 
<td>_f</td>
 
<td>_f</td>
<td>~</td>
 
 
<td>Fog (use in mask only)</td>
 
<td>Fog (use in mask only)</td>
 
<td></td>
 
<td></td>
Line 149: Line 43:
 
<tr>
 
<tr>
 
<td>Ai</td>
 
<td>Ai</td>
<td>i</td>
 
 
<td>Ice</td>
 
<td>Ice</td>
 
<td>Snow</td>
 
<td>Snow</td>
Line 155: Line 48:
 
<tr>
 
<tr>
 
<td>Aa</td>
 
<td>Aa</td>
<td>S</td>
 
 
<td>Snow</td>
 
<td>Snow</td>
 
<td></td>
 
<td></td>
Line 161: Line 53:
 
<tr>
 
<tr>
 
<td>Ww^Bw|</td>
 
<td>Ww^Bw|</td>
<td>|</td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
<td>Grassland,Shallow Water</td>
Line 167: Line 58:
 
<tr>
 
<tr>
 
<td>Ww^Bw/</td>
 
<td>Ww^Bw/</td>
<td>/</td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
<td>Grassland,Shallow Water</td>
Line 173: Line 63:
 
<tr>
 
<tr>
 
<td>Ww^Bw\</td>
 
<td>Ww^Bw\</td>
<td>\</td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
<td>Grassland,Shallow Water</td>
Line 179: Line 68:
 
<tr>
 
<tr>
 
<td>Wo^Bw|</td>
 
<td>Wo^Bw|</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
<td>Grassland,Deep Water</td>
Line 185: Line 73:
 
<tr>
 
<tr>
 
<td>Wo^Bw/</td>
 
<td>Wo^Bw/</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
<td>Grassland,Deep Water</td>
Line 191: Line 78:
 
<tr>
 
<tr>
 
<td>Wo^Bw\</td>
 
<td>Wo^Bw\</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
<td>Grassland,Deep Water</td>
Line 197: Line 83:
 
<tr>
 
<tr>
 
<td>Ss^Bw|</td>
 
<td>Ss^Bw|</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
<td>Grassland,Swamp</td>
Line 203: Line 88:
 
<tr>
 
<tr>
 
<td>Ss^Bw/</td>
 
<td>Ss^Bw/</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
<td>Grassland,Swamp</td>
Line 209: Line 93:
 
<tr>
 
<tr>
 
<td>Ss^Bw\</td>
 
<td>Ss^Bw\</td>
<td></td>
 
 
<td>Bridge</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
<td>Grassland,Swamp</td>
Line 215: Line 98:
 
<tr>
 
<tr>
 
<td>Ce</td>
 
<td>Ce</td>
<td>n</td>
 
 
<td>Encampment</td>
 
<td>Encampment</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 221: Line 103:
 
<tr>
 
<tr>
 
<td>Ch</td>
 
<td>Ch</td>
<td>y</td>
 
 
<td>Castle</td>
 
<td>Castle</td>
 
<td></td>
 
<td></td>
Line 227: Line 108:
 
<tr>
 
<tr>
 
<td>Cv</td>
 
<td>Cv</td>
<td>y</td>
 
 
<td>Elven Castle</td>
 
<td>Elven Castle</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 233: Line 113:
 
<tr>
 
<tr>
 
<td>Cud</td>
 
<td>Cud</td>
<td>o</td>
 
 
<td>Dwarven Castle</td>
 
<td>Dwarven Castle</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 239: Line 118:
 
<tr>
 
<tr>
 
<td>Chr</td>
 
<td>Chr</td>
<td>N</td>
 
 
<td>Ruin</td>
 
<td>Ruin</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 245: Line 123:
 
<tr>
 
<tr>
 
<td>Chw</td>
 
<td>Chw</td>
<td>Q</td>
 
 
<td>Sunken Ruin</td>
 
<td>Sunken Ruin</td>
 
<td>Castle,Shallow Water</td>
 
<td>Castle,Shallow Water</td>
Line 251: Line 128:
 
<tr>
 
<tr>
 
<td>Chs</td>
 
<td>Chs</td>
<td>q</td>
 
 
<td>Swamp Ruin</td>
 
<td>Swamp Ruin</td>
 
<td>Castle,Swamp</td>
 
<td>Castle,Swamp</td>
Line 257: Line 133:
 
<tr>
 
<tr>
 
<td>Ke</td>
 
<td>Ke</td>
<td></td>
 
 
<td>Encampment keep</td>
 
<td>Encampment keep</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 263: Line 138:
 
<tr>
 
<tr>
 
<td>Kh</td>
 
<td>Kh</td>
<td></td>
 
 
<td>Keep</td>
 
<td>Keep</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 269: Line 143:
 
<tr>
 
<tr>
 
<td>Kv</td>
 
<td>Kv</td>
<td></td>
 
 
<td>Elven Keep</td>
 
<td>Elven Keep</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 275: Line 148:
 
<tr>
 
<tr>
 
<td>Kud</td>
 
<td>Kud</td>
<td></td>
 
 
<td>Dwarven keep</td>
 
<td>Dwarven keep</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 281: Line 153:
 
<tr>
 
<tr>
 
<td>Khr</td>
 
<td>Khr</td>
<td></td>
 
 
<td>Ruined keep</td>
 
<td>Ruined keep</td>
 
<td>Castle</td>
 
<td>Castle</td>
Line 287: Line 158:
 
<tr>
 
<tr>
 
<td>Khw</td>
 
<td>Khw</td>
<td></td>
 
 
<td>Sunken keep</td>
 
<td>Sunken keep</td>
 
<td>Castle,Shallow Water</td>
 
<td>Castle,Shallow Water</td>
Line 293: Line 163:
 
<tr>
 
<tr>
 
<td>Khs</td>
 
<td>Khs</td>
<td></td>
 
 
<td>Swamp keep</td>
 
<td>Swamp keep</td>
 
<td>Castle,Swamp</td>
 
<td>Castle,Swamp</td>
Line 299: Line 168:
 
<tr>
 
<tr>
 
<td>Dd^Dc</td>
 
<td>Dd^Dc</td>
<td></td>
 
 
<td>Crater</td>
 
<td>Crater</td>
 
<td>Sand</td>
 
<td>Sand</td>
Line 305: Line 173:
 
<tr>
 
<tr>
 
<td>Dd</td>
 
<td>Dd</td>
<td>I</td>
 
 
<td>Desert</td>
 
<td>Desert</td>
 
<td>Sand</td>
 
<td>Sand</td>
Line 311: Line 178:
 
<tr>
 
<tr>
 
<td>Dd^Dr</td>
 
<td>Dd^Dr</td>
<td></td>
 
 
<td>Rubble</td>
 
<td>Rubble</td>
 
<td>Hills</td>
 
<td>Hills</td>
Line 317: Line 183:
 
<tr>
 
<tr>
 
<td>Ds</td>
 
<td>Ds</td>
<td>d</td>
 
 
<td>Sand</td>
 
<td>Sand</td>
 
<td></td>
 
<td></td>
Line 323: Line 188:
 
<tr>
 
<tr>
 
<td>Dd^Do</td>
 
<td>Dd^Do</td>
<td>P</td>
 
 
<td>Oasis</td>
 
<td>Oasis</td>
 
<td>Sand</td>
 
<td>Sand</td>
Line 329: Line 193:
 
<tr>
 
<tr>
 
<td>Aa^Fpa</td>
 
<td>Aa^Fpa</td>
<td>F</td>
 
 
<td>Snow Forest</td>
 
<td>Snow Forest</td>
 
<td>Snow,Forest</td>
 
<td>Snow,Forest</td>
Line 335: Line 198:
 
<tr>
 
<tr>
 
<td>Gg^Fet</td>
 
<td>Gg^Fet</td>
<td>?</td>
 
 
<td>Great Tree</td>
 
<td>Great Tree</td>
 
<td>Forest</td>
 
<td>Forest</td>
Line 341: Line 203:
 
<tr>
 
<tr>
 
<td>Gs^Fp</td>
 
<td>Gs^Fp</td>
<td>f</td>
 
 
<td>Forest</td>
 
<td>Forest</td>
 
<td></td>
 
<td></td>
Line 347: Line 208:
 
<tr>
 
<tr>
 
<td>Gs^Ft</td>
 
<td>Gs^Ft</td>
<td>T</td>
 
 
<td>Tropical Forest</td>
 
<td>Tropical Forest</td>
 
<td>Forest</td>
 
<td>Forest</td>
Line 353: Line 213:
 
<tr>
 
<tr>
 
<td>Gg</td>
 
<td>Gg</td>
<td>g</td>
 
 
<td>Grassland</td>
 
<td>Grassland</td>
 
<td></td>
 
<td></td>
Line 359: Line 218:
 
<tr>
 
<tr>
 
<td>Ggf</td>
 
<td>Ggf</td>
<td></td>
 
 
<td>Grassland</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 365: Line 223:
 
<tr>
 
<tr>
 
<td>Gs</td>
 
<td>Gs</td>
<td>G</td>
 
 
<td>Savanna</td>
 
<td>Savanna</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 371: Line 228:
 
<tr>
 
<tr>
 
<td>Ha</td>
 
<td>Ha</td>
<td>H</td>
 
 
<td>Snow Hills</td>
 
<td>Snow Hills</td>
 
<td>Snow,Hills</td>
 
<td>Snow,Hills</td>
Line 377: Line 233:
 
<tr>
 
<tr>
 
<td>Hd</td>
 
<td>Hd</td>
<td>J</td>
 
 
<td>Dunes</td>
 
<td>Dunes</td>
 
<td>Sand,Hills</td>
 
<td>Sand,Hills</td>
Line 383: Line 238:
 
<tr>
 
<tr>
 
<td>Hh</td>
 
<td>Hh</td>
<td>h</td>
 
 
<td>Hills</td>
 
<td>Hills</td>
 
<td></td>
 
<td></td>
Line 389: Line 243:
 
<tr>
 
<tr>
 
<td>Md</td>
 
<td>Md</td>
<td>M</td>
 
 
<td>Mountains</td>
 
<td>Mountains</td>
 
<td>Mountains</td>
 
<td>Mountains</td>
Line 395: Line 248:
 
<tr>
 
<tr>
 
<td>Mm</td>
 
<td>Mm</td>
<td>m</td>
 
 
<td>Mountains</td>
 
<td>Mountains</td>
 
<td></td>
 
<td></td>
Line 401: Line 253:
 
<tr>
 
<tr>
 
<td>Qxu</td>
 
<td>Qxu</td>
<td>X</td>
 
 
<td>Chasm</td>
 
<td>Chasm</td>
 
<td></td>
 
<td></td>
Line 407: Line 258:
 
<tr>
 
<tr>
 
<td>Ql</td>
 
<td>Ql</td>
<td>l</td>
 
 
<td>Lava</td>
 
<td>Lava</td>
 
<td>Chasm</td>
 
<td>Chasm</td>
Line 413: Line 263:
 
<tr>
 
<tr>
 
<td>Rd</td>
 
<td>Rd</td>
<td>E</td>
 
 
<td>Desert road</td>
 
<td>Desert road</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 419: Line 268:
 
<tr>
 
<tr>
 
<td>Re</td>
 
<td>Re</td>
<td>r</td>
 
 
<td>Dirt</td>
 
<td>Dirt</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 425: Line 273:
 
<tr>
 
<tr>
 
<td>Rr</td>
 
<td>Rr</td>
<td>E</td>
 
 
<td>Road</td>
 
<td>Road</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 431: Line 278:
 
<tr>
 
<tr>
 
<td>Re^Gvs</td>
 
<td>Re^Gvs</td>
<td></td>
 
 
<td>Farmland</td>
 
<td>Farmland</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
Line 437: Line 283:
 
<tr>
 
<tr>
 
<td>Ss</td>
 
<td>Ss</td>
<td>w</td>
 
 
<td>Swamp</td>
 
<td>Swamp</td>
 
<td></td>
 
<td></td>
Line 443: Line 288:
 
<tr>
 
<tr>
 
<td>Uu</td>
 
<td>Uu</td>
<td>u</td>
 
 
<td>Cave</td>
 
<td>Cave</td>
 
<td></td>
 
<td></td>
Line 449: Line 293:
 
<tr>
 
<tr>
 
<td>Uu^Ii</td>
 
<td>Uu^Ii</td>
<td>'</td>
 
 
<td>Cave Lit</td>
 
<td>Cave Lit</td>
 
<td>Cave</td>
 
<td>Cave</td>
Line 455: Line 298:
 
<tr>
 
<tr>
 
<td>Uu^Uf</td>
 
<td>Uu^Uf</td>
<td>]</td>
 
 
<td>Mushroom Grove</td>
 
<td>Mushroom Grove</td>
 
<td></td>
 
<td></td>
Line 461: Line 303:
 
<tr>
 
<tr>
 
<td>Re^Uf</td>
 
<td>Re^Uf</td>
<td></td>
 
 
<td>Mushroom Grove</td>
 
<td>Mushroom Grove</td>
 
<td>Mushroom Grove</td>
 
<td>Mushroom Grove</td>
Line 467: Line 308:
 
<tr>
 
<tr>
 
<td>Uh</td>
 
<td>Uh</td>
<td>[</td>
 
 
<td>Rockbound Cave</td>
 
<td>Rockbound Cave</td>
 
<td>Cave,Hills</td>
 
<td>Cave,Hills</td>
Line 473: Line 313:
 
<tr>
 
<tr>
 
<td>Uh^Ii</td>
 
<td>Uh^Ii</td>
<td></td>
 
 
<td>Rockbound Cave Lit</td>
 
<td>Rockbound Cave Lit</td>
 
<td>Cave,Hills</td>
 
<td>Cave,Hills</td>
Line 479: Line 318:
 
<tr>
 
<tr>
 
<td>Dd^Vda</td>
 
<td>Dd^Vda</td>
<td>U</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Sand</td>
 
<td>Village,Sand</td>
Line 485: Line 323:
 
<tr>
 
<tr>
 
<td>Dd^Vdt</td>
 
<td>Dd^Vdt</td>
<td>U</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Sand</td>
 
<td>Village,Sand</td>
Line 491: Line 328:
 
<tr>
 
<tr>
 
<td>Aa^Vea</td>
 
<td>Aa^Vea</td>
<td>e</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
Line 497: Line 333:
 
<tr>
 
<tr>
 
<td>Gg^Ve</td>
 
<td>Gg^Ve</td>
<td>t</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
Line 503: Line 338:
 
<tr>
 
<tr>
 
<td>Aa^Vha</td>
 
<td>Aa^Vha</td>
<td>V</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
Line 509: Line 343:
 
<tr>
 
<tr>
 
<td>Gg^Vh</td>
 
<td>Gg^Vh</td>
<td>t</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td></td>
 
<td></td>
Line 515: Line 348:
 
<tr>
 
<tr>
 
<td>Hh^Vhh</td>
 
<td>Hh^Vhh</td>
<td>a</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Hills</td>
 
<td>Village,Hills</td>
Line 521: Line 353:
 
<tr>
 
<tr>
 
<td>Ha^Vhha</td>
 
<td>Ha^Vhha</td>
<td>A</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Hills</td>
 
<td>Village,Hills</td>
Line 527: Line 358:
 
<tr>
 
<tr>
 
<td>Mm^Vhh</td>
 
<td>Mm^Vhh</td>
<td>b</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Mountains</td>
 
<td>Village,Mountains</td>
Line 533: Line 363:
 
<tr>
 
<tr>
 
<td>Gs^Vht</td>
 
<td>Gs^Vht</td>
<td>L</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village</td>
Line 539: Line 368:
 
<tr>
 
<tr>
 
<td>Uu^Vu</td>
 
<td>Uu^Vu</td>
<td>D</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Cave</td>
 
<td>Village,Cave</td>
Line 545: Line 373:
 
<tr>
 
<tr>
 
<td>Uu^Vud</td>
 
<td>Uu^Vud</td>
<td>p</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Cave</td>
 
<td>Village,Cave</td>
Line 551: Line 378:
 
<tr>
 
<tr>
 
<td>Ww^Vm</td>
 
<td>Ww^Vm</td>
<td>Z</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Shallow Water</td>
 
<td>Shallow Water</td>
Line 557: Line 383:
 
<tr>
 
<tr>
 
<td>Ss^Vhs</td>
 
<td>Ss^Vhs</td>
<td>Y</td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Village,Swamp</td>
 
<td>Village,Swamp</td>
Line 563: Line 388:
 
<tr>
 
<tr>
 
<td>Ss^Vm</td>
 
<td>Ss^Vm</td>
<td></td>
 
 
<td>Village</td>
 
<td>Village</td>
 
<td>Swamp</td>
 
<td>Swamp</td>
Line 569: Line 393:
 
<tr>
 
<tr>
 
<td>Wo</td>
 
<td>Wo</td>
<td>s</td>
 
 
<td>Deep Water</td>
 
<td>Deep Water</td>
 
<td></td>
 
<td></td>
Line 575: Line 398:
 
<tr>
 
<tr>
 
<td>Ww</td>
 
<td>Ww</td>
<td>c</td>
 
 
<td>Shallow Water</td>
 
<td>Shallow Water</td>
 
<td></td>
 
<td></td>
Line 581: Line 403:
 
<tr>
 
<tr>
 
<td>Wwf</td>
 
<td>Wwf</td>
<td>k</td>
 
 
<td>River Ford</td>
 
<td>River Ford</td>
 
<td>Grassland,Shallow Water</td>
 
<td>Grassland,Shallow Water</td>
Line 587: Line 408:
 
<tr>
 
<tr>
 
<td>Mm^Xm</td>
 
<td>Mm^Xm</td>
<td>&</td>
 
 
<td>Impassable Mountains</td>
 
<td>Impassable Mountains</td>
 
<td>Cave Wall</td>
 
<td>Cave Wall</td>
Line 593: Line 413:
 
<tr>
 
<tr>
 
<td>Md^Xm</td>
 
<td>Md^Xm</td>
<td></td>
 
 
<td>Impassable Desert Mountains</td>
 
<td>Impassable Desert Mountains</td>
 
<td>Cave Wall</td>
 
<td>Cave Wall</td>
Line 599: Line 418:
 
<tr>
 
<tr>
 
<td>Xu</td>
 
<td>Xu</td>
<td>W</td>
 
 
<td>Cave Wall</td>
 
<td>Cave Wall</td>
 
<td></td>
 
<td></td>
Line 605: Line 423:
 
<tr>
 
<tr>
 
<td>Xv</td>
 
<td>Xv</td>
<td></td>
 
 
<td>Void</td>
 
<td>Void</td>
 
<td>Cave Wall</td>
 
<td>Cave Wall</td>

Revision as of 18:01, 13 January 2008

[edit]WML Tags

A:

abilities, about, achievement, achievement_group, add_ai_behavior, advanced_preference, advancefrom, advancement, advances, affect_adjacent, ai, allied_with, allow_end_turn, allow_extra_recruit, allow_recruit, allow_undo, and, animate, animate_unit, animation, aspect, attack (replay, weapon), attack_anim, attacks (special, stats), avoid;

B:

base_unit, background_layer, berserk, binary_path, break, brush;

C:

campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, checkbox, choice, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_palette, color_range, command (action, replay), continue, core, credits_group, criteria;

D:

damage, damage_type, death, deaths, default, defend, defends, defense, delay, deprecated_message, destination, difficulty, disable, disallow_end_turn, disallow_extra_recruit, disallow_recruit, do, do_command, drains, draw_weapon_anim;

E:

editor_group, editor_music, editor_times, effect, else (action, animation), elseif, endlevel, end_turn (action, replay), enemy_of, engine, entry (credits, options), era, event, experimental_filter_ability, experimental_filter_ability_active, experimental_filter_specials, extra_anim;

F:

facet, facing, fake_unit, false, feedback, female, filter (concept, event), filter_adjacent, filter_adjacent_location, filter_attack, filter_attacker, filter_base_value, filter_condition, filter_defender, filter_enemy, filter_location, filter_opponent, filter_own, filter_owner, filter_radius, filter_recall, filter_second, filter_second_attack, filter_self, filter_side, filter_student, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, fonts, for, foreach, found_item, frame;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

harm_unit, has_ally, has_attack, has_unit, has_achievement, have_location, have_unit, heal_on_hit, heal_unit, healed_anim, healing_anim, heals, hide_help, hide_unit, hides;

I:

idle_anim, if (action, animation, intro), illuminates, image (intro, terrain), init_side, insert_tag, inspect, item, item_group;

J:

jamming_costs, join;

K:

kill, killed;

L:

label, language, leader, leader_goal, leadership, leading_anim, levelin_anim, levelout_anim, lift_fog, limit, literal, load_resource, locale, lock_view, lua;

M:

male, menu_item, message, micro_ai, missile_frame, modification, modifications, modify_ai, modify_side, modify_turns, modify_unit, modify_unit_type, move, move_unit, move_unit_fake, move_units_fake, movement_anim, movement costs, movetype, multiplayer, multiplayer_side, music;

N:

not, note;

O:

object, objective, objectives, on_undo, open_help, option, options, or;

P:

part, petrifies, petrify, place_shroud, plague, poison, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, progress_achievement, put_to_recall_list;

R:

race, random_placement, recall (action, replay), recalls, recruit, recruit_anim, recruiting_anim, recruits, redraw, regenerate, remove_event, remove_item, remove_object, remove_shroud, remove_sound_source, remove_time_area, remove_trait, remove_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resolution, resource, return, role, rule;

S:

save, scenario, screen_fade, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_achievement, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, objective, set_menu_item), show_objectives, side, skirmisher, slider, slow, snapshot, sound, sound_source, source (replay, teleport), special_note, specials, split, stage, standing_anim, statistics, status, store_gold, store_items, store_locations, store_map_dimensions, store_reachable_locations, store_relative_direction, store_side, store_starting_location, store_time_of_day, store_turns, store_unit, store_unit_defense, store_unit_defense_on, store_unit_type, store_unit_type_ids, store_villages, story, swarm, sub_achievement, switch, sync_variable;

T:

target, team, teleport (ability, action), teleport_anim, terrain, terrain_defaults, terrain_graphics, terrain_mask, terrain_type, test, test_condition, test_do_attack_by_id, text_input, textdomain, theme, then, tile, time, time_area, topic, toplevel, trait, transform_unit, traveler, true, tunnel;

U:

unhide_unit, unit (action, scenario), unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;

V:

value, variable, variables, variant, variation, victory_anim, village, vision_costs, volume;

W:

while, wml_message, wml_schema;

Z:

zoom;

Note: the old (1.2) terrain system is no longer documented here. If you have 1.2 maps you will need to convert them using wmllint.

Terrain strings

The following rules hold for terrain strings. Note most of these rules are not validated since it would slow down Wesnoth; not following these rules might break Wesnoth.

  • terrain strings are between 2 and 4 characters
  • terrain strings start with a capital letter and the following letters are lower case
  • terrain strings can only contain letters, the symbols /|\ which are meant for directional items like bridges and the symbol ^
  • the underscore is used for internal terrains
  • the star '*' can be used for wildcards in some parts
  • the symbol ^ usually points out that a terrain is created with layers, for example Gs^Fp means Forest(Fp) overlayer on Savanna(Gs).

Starting positions are defined by a number followed by 1 space and then the terrain string; this means that a starting position is no longer automatically a keep.

The letters Y,y,Z,z are reserved for UMC so any string containing any of these letters is a custom terrain. Other undefined terrain strings are reserved for future expansion within Wesnoth.

Terrain Table

This is a list of the terrains, the strings used for them in the new map format, the letters used for them in the old map format, their id and the terrains they take their stats from. Generated from terrain.cfg using terrain2wiki.

String Name Stats from
_off^_usr None
_s Shroud (use in mask only)
_f Fog (use in mask only)
Ai Ice Snow
Aa Snow
Ww^Bw| Bridge Grassland,Shallow Water
Ww^Bw/ Bridge Grassland,Shallow Water
Ww^Bw\ Bridge Grassland,Shallow Water
Wo^Bw| Bridge Grassland,Deep Water
Wo^Bw/ Bridge Grassland,Deep Water
Wo^Bw\ Bridge Grassland,Deep Water
Ss^Bw| Bridge Grassland,Swamp
Ss^Bw/ Bridge Grassland,Swamp
Ss^Bw\ Bridge Grassland,Swamp
Ce Encampment Castle
Ch Castle
Cv Elven Castle Castle
Cud Dwarven Castle Castle
Chr Ruin Castle
Chw Sunken Ruin Castle,Shallow Water
Chs Swamp Ruin Castle,Swamp
Ke Encampment keep Castle
Kh Keep Castle
Kv Elven Keep Castle
Kud Dwarven keep Castle
Khr Ruined keep Castle
Khw Sunken keep Castle,Shallow Water
Khs Swamp keep Castle,Swamp
Dd^Dc Crater Sand
Dd Desert Sand
Dd^Dr Rubble Hills
Ds Sand
Dd^Do Oasis Sand
Aa^Fpa Snow Forest Snow,Forest
Gg^Fet Great Tree Forest
Gs^Fp Forest
Gs^Ft Tropical Forest Forest
Gg Grassland
Ggf Grassland Grassland
Gs Savanna Grassland
Ha Snow Hills Snow,Hills
Hd Dunes Sand,Hills
Hh Hills
Md Mountains Mountains
Mm Mountains
Qxu Chasm
Ql Lava Chasm
Rd Desert road Grassland
Re Dirt Grassland
Rr Road Grassland
Re^Gvs Farmland Grassland
Ss Swamp
Uu Cave
Uu^Ii Cave Lit Cave
Uu^Uf Mushroom Grove
Re^Uf Mushroom Grove Mushroom Grove
Uh Rockbound Cave Cave,Hills
Uh^Ii Rockbound Cave Lit Cave,Hills
Dd^Vda Village Village,Sand
Dd^Vdt Village Village,Sand
Aa^Vea Village Village
Gg^Ve Village Village
Aa^Vha Village Village
Gg^Vh Village
Hh^Vhh Village Village,Hills
Ha^Vhha Village Village,Hills
Mm^Vhh Village Village,Mountains
Gs^Vht Village Village
Uu^Vu Village Village,Cave
Uu^Vud Village Village,Cave
Ww^Vm Village Shallow Water
Ss^Vhs Village Village,Swamp
Ss^Vm Village Swamp
Wo Deep Water
Ww Shallow Water
Wwf River Ford Grassland,Shallow Water
Mm^Xm Impassable Mountains Cave Wall
Md^Xm Impassable Desert Mountains Cave Wall
Xu Cave Wall
Xv Void Cave Wall

Adding terrains

When adding terrains make sure the following files are also checked:

data/faction/* contains favorite positions for the different factions, this is only used for the random map generator at the moment so it is not very important.

data/abilities.cfg contains the definition of submerge and ambush so depending on the change these need to be updated.

data/utils/utils.cfg contains the macro STARTING_VILLAGES which contains a list of village strings. This list doesn't support wildcards (yet).

See Also