TerrainCodesWML

From The Battle for Wesnoth Wiki
Revision as of 12:46, 31 August 2007 by CIB (talk | contribs) (Terrain strings '''''(SVN terrain only)''''')

[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;

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

Map conversion logic is included in the upconvert tool (in newer versions, 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   _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\ Xm   _s   _f   Fet  Uf   Uh   Uui

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.

ID String Old letter Name Stats from
off_map _off^_usr None
shroud _s Shroud
fog _f ~ Fog
ice Ai i Ice Snow
tundra Aa S Snow
bridge Ww^Bw| | Bridge Grassland,Shallow Water
bridgediag1 Ww^Bw/ / Bridge Grassland,Shallow Water
bridgediag2 Ww^Bw\ \ Bridge Grassland,Shallow Water
bridgedeep Wo^Bw| Bridge Grassland,Deep Water
bridgedeepdiag1 Wo^Bw/ Bridge Grassland,Deep Water
bridgedeepdiag2 Wo^Bw\ Bridge Grassland,Deep Water
bridgeswamp Ss^Bw| Bridge Grassland,Swamp
bridgeswampdiag1 Ss^Bw/ Bridge Grassland,Swamp
bridgeswampdiag2 Ss^Bw\ Bridge Grassland,Swamp
encampment Ce n Encampment Castle
castle Ch y Castle
castle Cv y Elven Castle Castle
dwarven_castle Cud o Dwarven Castle Castle
ruin Chr N Ruin Castle
sunkenruin Chw Q Sunken Ruin Castle,Shallow Water
swampruin Chs q Swamp Ruin Castle,Swamp
encampment_keep Ke Encampment keep Castle
human_keep Kh Keep Castle
elven_keep Kv Elven Keep Castle
dwarven_keep Kud Dwarven keep Castle
ruined_keep Khr Ruined keep Castle
sunken_keep Khw Sunken keep Castle,Shallow Water
swamp_keep Khs Swamp keep Castle,Swamp
crater Dd^Dc Crater Sand
desert Dd I Desert Sand
sand_rubble Dd^Dr Rubble Hills
sand Ds d Sand
oasis Dd^Do P Oasis Sand
snow_forest Aa^Fpa F Snow Forest Snow,Forest
great_tree Gg^Fet ? Great Tree Forest
forest Gs^Fp f Forest
tropical_forest Gs^Ft T Tropical Forest Forest
grassland Gg g Grassland
grassland_flowers Ggf Grassland Grassland
savanna Gs G Savanna Grassland
snow_hills Ha H Snow Hills Snow,Hills
desert_hills Hd J Dunes Sand,Hills
hills Hh h Hills
desert_mountains Md M Mountains Mountains
mountains Mm m Mountains
canyon Qxu X Chasm
lava Ql l Lava Chasm
road Rd E Desert road Grassland
dirt Re r Dirt Grassland
road Rr E Road Grassland
farm Re^Gvs Farmland Grassland
swamp_water Ss w Swamp
cave Uu u Cave
cave_beam Uu^Ii ' Cave Lit Cave
fungus Uu^Uf ] Mushroom Grove
fungusabove Re^Uf Mushroom Grove Mushroom Grove
rocky_cave Uh [ Rockbound Cave Cave,Hills
rocky_cave_beam Uh^Ii Rockbound Cave Lit Cave,Hills
desert_village Dd^Vda U Village Village,Sand
desert_village Dd^Vdt U Village Village,Sand
elven_snow_village Aa^Vea e Village Village
village Gg^Ve t Village Village
snow_village Aa^Vha V Village Village
village Gg^Vh t Village
hill_village Hh^Vhh a Village Village,Hills
snow-hill_village Ha^Vhha A Village Village,Hills
mountain_village Mm^Vhh b Village Village,Mountains
tropical_forest_village Gs^Vht L Village Village
underground_village Uu^Vu D Village Village,Cave
dwarven_village Uu^Vud p Village Village,Cave
mermen_village Ww^Vm Z Village Shallow Water
swamp_village Ss^Vhs Y Village Village,Swamp
swamp_merfolk-village Ss^Vm Village Swamp
deep_water Wo s Deep Water
shallow_water Ww c Shallow Water
ford Wwf k River Ford Grassland,Shallow Water
cloud Mm^Xm & Impassable Mountains Cave Wall
clouddese

Specials

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

See Also