Difference between revisions of "TerrainCodesWML"

From The Battle for Wesnoth Wiki
(Decoding the Terrain Codes)
(Terrain Table: Removed the table and refer to the new page)
Line 19: Line 19:
  
 
=== 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.
 
  
This list is out of date, as most overlays can be combined at will with any base, also it doesn't seem to include recent additions.
+
The list of terrains can be found at [[TerrainCodeTableWML]]. Since most overlays can be combined with most bases the list is not complete.
 
 
<table border="1"><tr>
 
<th>String</th>
 
<th>Name</th>
 
<th>Stats from</th>
 
</tr>
 
<tr>
 
<td>_off^_usr</td>
 
<td>None (used in map borders)</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>_s</td>
 
<td>Shroud (use in mask only)</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>_f</td>
 
<td>Fog (use in mask only)</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Ai</td>
 
<td>Ice</td>
 
<td>Snow</td>
 
</tr>
 
<tr>
 
<td>Aa</td>
 
<td>Snow</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Ww^Bw|</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Ww^Bw/</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Ww^Bw\</td>
 
<td>Bridge</td>
 
<td>Grassland,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Wo^Bw|</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
</tr>
 
<tr>
 
<td>Wo^Bw/</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
</tr>
 
<tr>
 
<td>Wo^Bw\</td>
 
<td>Bridge</td>
 
<td>Grassland,Deep Water</td>
 
</tr>
 
<tr>
 
<td>Ss^Bw|</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
</tr>
 
<tr>
 
<td>Ss^Bw/</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
</tr>
 
<tr>
 
<td>Ss^Bw\</td>
 
<td>Bridge</td>
 
<td>Grassland,Swamp</td>
 
</tr>
 
<tr>
 
<td>Ce</td>
 
<td>Encampment</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Ch</td>
 
<td>Castle</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Cv</td>
 
<td>Elven Castle</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Cud</td>
 
<td>Dwarven Castle</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Chr</td>
 
<td>Ruin</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Chw</td>
 
<td>Sunken Ruin</td>
 
<td>Castle,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Chs</td>
 
<td>Swamp Ruin</td>
 
<td>Castle,Swamp</td>
 
</tr>
 
<tr>
 
<td>Ke</td>
 
<td>Encampment keep</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Kh</td>
 
<td>Keep</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Kv</td>
 
<td>Elven Keep</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Kud</td>
 
<td>Dwarven keep</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Khr</td>
 
<td>Ruined keep</td>
 
<td>Castle</td>
 
</tr>
 
<tr>
 
<td>Khw</td>
 
<td>Sunken keep</td>
 
<td>Castle,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Khs</td>
 
<td>Swamp keep</td>
 
<td>Castle,Swamp</td>
 
</tr>
 
<tr>
 
<td>Dd^Dc</td>
 
<td>Crater</td>
 
<td>Sand</td>
 
</tr>
 
<tr>
 
<td>Dd</td>
 
<td>Desert</td>
 
<td>Sand</td>
 
</tr>
 
<tr>
 
<td>Dd^Dr</td>
 
<td>Rubble</td>
 
<td>Hills</td>
 
</tr>
 
<tr>
 
<td>Ds</td>
 
<td>Sand</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Dd^Do</td>
 
<td>Oasis</td>
 
<td>Sand</td>
 
</tr>
 
<tr>
 
<td>Aa^Fpa</td>
 
<td>Snow Forest</td>
 
<td>Snow,Forest</td>
 
</tr>
 
<tr>
 
<td>Gg^Fet</td>
 
<td>Great Tree</td>
 
<td>Forest</td>
 
</tr>
 
<tr>
 
<td>Gs^Fp</td>
 
<td>Forest</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Gs^Ft</td>
 
<td>Tropical Forest</td>
 
<td>Forest</td>
 
</tr>
 
<tr>
 
<td>Gg</td>
 
<td>Grassland</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Ggf</td>
 
<td>Grassland</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Gs</td>
 
<td>Savanna</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Ha</td>
 
<td>Snow Hills</td>
 
<td>Snow,Hills</td>
 
</tr>
 
<tr>
 
<td>Hd</td>
 
<td>Dunes</td>
 
<td>Sand,Hills</td>
 
</tr>
 
<tr>
 
<td>Hh</td>
 
<td>Hills</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Md</td>
 
<td>Mountains</td>
 
<td>Mountains</td>
 
</tr>
 
<tr>
 
<td>Mm</td>
 
<td>Mountains</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Qxu</td>
 
<td>Chasm</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Ql</td>
 
<td>Lava Chasm</td>
 
<td>Chasm</td>
 
</tr>
 
<tr>
 
<td>Qlf</td>
 
<td>Lava (flat)</td>
 
<td>Chasm</td>
 
</tr>
 
<tr>
 
<td>Rd</td>
 
<td>Desert road</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Re</td>
 
<td>Dirt</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Rr</td>
 
<td>Road</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Rp</td>
 
<td>Road (Elven Path)</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Re^Gvs</td>
 
<td>Farmland</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Gg^Wm</td>
 
<td>Windmill</td>
 
<td>Grassland</td>
 
</tr>
 
<tr>
 
<td>Ss</td>
 
<td>Swamp</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Uu</td>
 
<td>Cave</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Uu^Ii</td>
 
<td>Cave Lit</td>
 
<td>Cave</td>
 
</tr>
 
<tr>
 
<td>Uu^Uf</td>
 
<td>Mushroom Grove</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Re^Uf</td>
 
<td>Mushroom Grove</td>
 
<td>Mushroom Grove</td>
 
</tr>
 
<tr>
 
<td>Uh</td>
 
<td>Rockbound Cave</td>
 
<td>Cave,Hills</td>
 
</tr>
 
<tr>
 
<td>Uh^Ii</td>
 
<td>Rockbound Cave Lit</td>
 
<td>Cave,Hills</td>
 
</tr>
 
<tr>
 
<td>Dd^Vda</td>
 
<td>Village</td>
 
<td>Village,Sand</td>
 
</tr>
 
<tr>
 
<td>Dd^Vdt</td>
 
<td>Village</td>
 
<td>Village,Sand</td>
 
</tr>
 
<tr>
 
<td>Aa^Vea</td>
 
<td>Village</td>
 
<td>Village</td>
 
</tr>
 
<tr>
 
<td>Gg^Ve</td>
 
<td>Village</td>
 
<td>Village</td>
 
</tr>
 
<tr>
 
<td>Aa^Vha</td>
 
<td>Village</td>
 
<td>Village</td>
 
</tr>
 
<tr>
 
<td>Gg^Vh</td>
 
<td>Village</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Hh^Vhh</td>
 
<td>Village</td>
 
<td>Village,Hills</td>
 
</tr>
 
<tr>
 
<td>Ha^Vhha</td>
 
<td>Village</td>
 
<td>Village,Hills</td>
 
</tr>
 
<tr>
 
<td>Mm^Vhh</td>
 
<td>Village</td>
 
<td>Village,Mountains</td>
 
</tr>
 
<tr>
 
<td>Gs^Vht</td>
 
<td>Village</td>
 
<td>Village</td>
 
</tr>
 
<tr>
 
<td>Uu^Vu</td>
 
<td>Village</td>
 
<td>Village,Cave</td>
 
</tr>
 
<tr>
 
<td>Uu^Vud</td>
 
<td>Village</td>
 
<td>Village,Cave</td>
 
</tr>
 
<tr>
 
<td>Ww^Vm</td>
 
<td>Village</td>
 
<td>Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Ss^Vhs</td>
 
<td>Village</td>
 
<td>Village,Swamp</td>
 
</tr>
 
<tr>
 
<td>Ss^Vm</td>
 
<td>Village</td>
 
<td>Swamp</td>
 
</tr>
 
<tr>
 
<td>Wo</td>
 
<td>Deep Water</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Ww</td>
 
<td>Shallow Water</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Wwf</td>
 
<td>River Ford</td>
 
<td>Grassland,Shallow Water</td>
 
</tr>
 
<tr>
 
<td>Wwr</td>
 
<td>Coastal Reef</td>
 
<td>Shallow Water</td>
 
</tr><tr>
 
<td>Mm^Xm</td>
 
<td>Impassable Mountains</td>
 
<td>Cave Wall</td>
 
</tr>
 
<tr>
 
<td>Md^Xm</td>
 
<td>Impassable Desert Mountains</td>
 
<td>Cave Wall</td>
 
</tr>
 
<tr>
 
<td>Xu</td>
 
<td>Cave Wall</td>
 
<td></td>
 
</tr>
 
<tr>
 
<td>Xv</td>
 
<td>Void</td>
 
<td>Cave Wall</td>
 
</tr>
 
</table>
 
  
 
== Adding terrains ==
 
== Adding terrains ==

Revision as of 18:48, 13 March 2011

[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, credits_group, criteria;

D:

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;

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, found_item, for, foreach, 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, 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, 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 composed from one or more terrain codes of 2 to 4 characters each, separated by ^.
  • terrain codes 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 as a leader for internal terrain codes
  • the star '*' can be used for wildcards in some places where a terrain code is required
  • the symbol ^ indicates 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

The list of terrains can be found at TerrainCodeTableWML. Since most overlays can be combined with most bases the list is not complete.

Adding terrains

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

data/multiplayer/factions/* 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/core/macros/abilities.cfg contains the definition of submerge and ambush so depending on the change these need to be updated.

Decoding the Terrain Codes

The initial letters of each terrain code have a standard meaning, though some are not obvious.

  • A = “Arctic” i.e. frozen
  • B = “Bridge”
  • C = “Castle”
  • D = “Desert”
  • E = "Embellishment"
  • F = “Forest”
  • G = “Grass”
  • H = “Hills”
  • I = "Interior" (possible future use)
  • J = testing
  • K = “Keep”
  • L
  • M = “Mountains”
  • N
  • O
  • P
  • Q = "Un-walkable"
  • R = “Road”
  • S = “Swamp”
  • T
  • U = “Underground”
  • V = “Village”
  • W = “Water”
  • X = "Impassable"
  • Y = Reserved for UMC
  • Z = Reserved for UMC
  • _ = "special system stuff"

Additional letters are not always follow the same meaning, but are as consistent as possible.

  • \, |, / = for indicating the direction of bridges
  • a =
  • b =
  • c = "city"
  • d = "dry or desert, deciduous"
  • e = "encampment"
  • f = "flowers, fall"
  • g
  • h = "human"
  • i = "ice"
  • j
  • k
  • l = "lava"
  • m = "mixed"
  • n
  • o = "orc"
  • p = "pine"
  • q
  • r
  • s = "simple"
  • t
  • u = "underground"
  • v = "elvish"
  • w
  • x = "chasm"
  • y = Reserved for UMC
  • z = Reserved for UMC

See Also