Difference between revisions of "TerrainCodesWML"

From The Battle for Wesnoth Wiki
Line 640: Line 640:
<td>normal cave</td>
Line 657: Line 664:
<td>normal cave</td>
<td>illuminated rockbound cave (functionally "underground hill")</td>

Revision as of 06:02, 23 February 2007

[edit]WML Tags


abilities, about, add_ai_behavior, advance, 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, attack_anim, attacks, avoid;


base_unit, berserk, binary_path, break, brush;


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_range, command (action, replay), continue, credits_group, criteria;


damage, 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;


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


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_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, found_item, for, foreach, frame;


game_config, get_global_variable, goal, gold, gold_carryover;


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


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


jamming_costs, join;


kill, killed;


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


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;


not, note;


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


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


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_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resource, return, role, rule;


save, scenario, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, 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, switch, sync_variable;


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


unhide_unit, unit, unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;


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


while, wml_message, wml_schema;



Values of terrain letters

What each letter represents in Wesnoth maps, and the possible values of the letter key.

See TerrainWML for information on how to define a terrain.

  • A human (snow) hill village
  • 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 (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 start with a capital letter and the following letters are lower case
  • terrain strings can only contain letters and the symbols /|\ which are meant for directional items like bridges.
  • the underscore is used for internal terrains
  • the star '*' can be used for wildcards in some parts

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.

Conversion form old to new

There's a conversion perl script for map named map_convert.pl. This script will convert a map with the old letters to the new strings. Some parts still have to be done manually, here 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   _K   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=  Bww/ Bww| Bww\ Xu   _s   _f   Fet  Uf   Uh   Uui

terrains sorted per group

This list shows the string for the terrains, the italic strings are reservations for terrains. The old letter is extra shown for as an extra reference.

Snow terrains

String Old letter Description Theme
Ai i ice snow
Aa S tundra "Arctic" snow


Since bridges are directional all strings here will be appended with either /|\ to show their direction. In this list these signs are replaced with a *.

String Old letter Description Theme
Brx* Bridge of stones over chasm for aboveground bridge
Bxu* Bridge over chasm underground bridge
Bsw* wooden bridge over swamp bridge
Bwr* Stone Bridge over shallow water bridge
Bww* /|\ wooden bridge bridge, over wadeable, wooden bridge, common


String Old letter Description Theme
Ce n encampment (castle) castle, common
Ch C human castle castle, common
Cv Elven castle castle
Chr N ruined castle castle
Chs q human ruin (swamp) castle
Chw Q human sunken ruin castle
Co O will be an Orc Castle one day castle
Cud o dwarven castle "castle underground, dwarf" castle, underground


String Old letter Description Theme
Dd I desert desert
Do P desert oasis desert
Ds d sand, (old desert) desert


String Old letter Description Theme
Fa F forest (snow) "forest arctic" forrest, snow
Fb Sinister Forest "Forest, Bad" forrest
Fet ? great Elven tree forrest
Ff f forrest forrest, common
Ft T forrest tropical forrest


String Old letter Description Theme
Gb dying "Grass brown/bad" grass
Gf Farmer's Fields grass
Gg g grass grass, common
Gs G savanna (grass) grass


String Old letter Description Theme
Ha H hills (snow) "hills arctic" hill, snow
Hd J desert hills (dunes) hill, desert
Hh h hills hill, common


The keep definition is now done with terrain transition WML, since we're no longer out of letters, this will be done manually. the _K is for backwards compability but this will be removed in the near future. The _K uses the special castle transition WML the new ones don't. This would also allow to mix items, eg a Kh keep in a Ce castle.

String Old letter Description Theme
_K K keep (castle) keep, common
Ke encampment (keep) keep, common
Kh keep castle keep, common
Khr ruined keep keep
Khs human ruin keep(swamp) keep
Khw human sunken ruin keep keep
Ko will be an Orc keep one day keep
Kud dwarven keep "keep underground, dwarf" keep, underground


String Old letter Description Theme
Ma snowy mountains mountain, snow
Md M desert mountains mountain, desert
Mm m mountain mountain, common

(mostly) Impassable

String Old letter Description Theme
Qx chasm for above ground misc
Qxu X chasm for underground misc, underground
Qxw aboveground chasm with water pouring over the edge misc
Ql l lava misc
Qr stone wall misc


String Old letter Description Theme
Rc Carpeted Floor road
Rd E desert road road, desert
Re r dirt road "earth" road, common
Rr stone road "rock" road
Rw Wood floor (interior) road


String Old letter Description Theme
Sb fetid swamp "Swamp Bad" swamp
Ss w swamp swamp


String Old letter Description Theme
Uu u normal cave underground
Uf ] mushroom grove "underground forest" underground
Uh [ rockbound cave (functionally "underground hill") underground
Uhi illuminated rockbound cave (functionally "underground hill") underground
Uuc normal cave, carved underground
Uui ' illuminated cave underground


String Old letter Description Theme
Vda B desert village (adobe) village, desert
Vdt U desert village (tent) village, desert
Veg t elven village "village elven grassland" village
Vea e elven (snow) village village, snow
Vha V village, snow snow village (tundra, village) village, snow
Vhg v human village (village) village, common
Vhh a human hill village village, hill, common
Vhha A human (snow) hill village village, snow, hill
Vhm b human mountain village village, mountain
Vht L tropical village (savanna, village) --nothing foresty about this village village
Vu D underground village (cave, village) village, underground
Vud p dwarven village village, underground
Vwm Z mermen village (shallow water) village, water
Vs Y swamp village (swamp, village) village, swamp
Vsm swamp merfolk village (swamp) village, swamp


String Old letter Description Theme
Wo s deep water "water, ocean" water, common
Ww c shallow water, "water, wade-able" water, common
Wwf k river ford "water wadeable, ford" water
Wwu shallow underground water water, underground


String Old letter Description Theme
Xm & impassable moutains impassable, mountain
Xrw Impassable stone "rock" wall (interior) impassable
Xu W cavewall impassable, underground
Xuc cavewall, carved impassable, underground
Xww Impassable wooden wall (interior) impassable


These terrains are hardcoded in the game and translated automatically. The old UMC terrains are here for backwards compability this compability will only be guaranteed till the next major release after 1.2.(That would be 1.4 or 2.0.) As stated before the * will no longer be supported.

String Old letter Description Theme
_f ~ fog misc
_s (space character) void/shroud misc

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 containt the macro STARTING_VILLAGES which contains a list of village strings. This list doesn't support wildcards (yet).

See Also