Difference between revisions of "DescriptionWML"

From The Battle for Wesnoth Wiki
(Description texts: A clearer implementation)
Line 3: Line 3:
  
 
A description is a part of the value of a menu attribute.
 
A description is a part of the value of a menu attribute.
It is used to represent a single option in the menu which consists of an image(called the ''icon'') followed by text. When appropriate, the icon should use [[ImagePathFunctionWML]] to replace any magenta with a team color.
+
It represents a single option in the difficulty selection menu for a campaign, which consists of an image (called the ''icon'') followed by text. When appropriate, the icon should use [[ImagePathFunctionWML]] to replace any magenta with a team color.
  
A description has the format
+
The description tag uses a special format:
  
 
* ''';''' if another description precedes it
 
* ''';''' if another description precedes it
Line 11: Line 11:
 
* '''*''' if it should be the default selection
 
* '''*''' if it should be the default selection
  
* '''&''image''=''text''''' image with text description
+
* '''&''image''=''text''''' image with one text description
  
 
* '''&''image''=''text''=''text2''''' image with two text descriptions
 
* '''&''image''=''text''=''text2''''' image with two text descriptions
  
Single text items are always enclosed in '''"''', and concatenated with '''+'''. This is useful so the text can contain translateable items (the '''_''' before a text), and so it can span multiple lines.
+
Single text items are always enclosed in '''"''', and can be joined together (concatenated) with '''+'''. This allows the text to contain translatable items and span multiple lines. (Marking text with '''_''' indicates that it is translatable.)
  
for example:
+
A sample difficulty description tag might look like this:
  
 
  difficulty_descriptions="&" + "units/elves-wood/elvish-fighter.png~TC(1,magenta)" + "=" + _"Fighter" + "=" + _"(easiest)" +
 
  difficulty_descriptions="&" + "units/elves-wood/elvish-fighter.png~TC(1,magenta)" + "=" + _"Fighter" + "=" + _"(easiest)" +
Line 30: Line 30:
 
  ";*" + {MENU_IMG_TXT "units/elves-wood/elvish-hero.png~TC(1,magenta)" _"Hero"} + ";" +
 
  ";*" + {MENU_IMG_TXT "units/elves-wood/elvish-hero.png~TC(1,magenta)" _"Hero"} + ";" +
 
  {MENU_IMG_TXT2 "units/elves-wood/elvish-champion.png~TC(1,magenta)" _"Champion" _"(hardest)"}
 
  {MENU_IMG_TXT2 "units/elves-wood/elvish-champion.png~TC(1,magenta)" _"Champion" _"(hardest)"}
 +
----
 +
For still greater clarity, I have the following suggestion:
 +
Before the start of the [campaign] tag, create a set of #define commands as follows:
 +
# Image definitions
 +
# NB Don't forget the trailing + symbols for all but the last entry
 +
#define EASY_IMAGE
 +
"&units/elves-wood/elvish-fighter.png~TC(1,magenta)"+
 +
#enddef
 +
 +
#define NORMAL_IMAGE
 +
";*&units/elves-wood/elvish-hero.png~TC(1,magenta)"+
 +
#enddef
 +
 +
#define HARD_IMAGE
 +
";&units/elves-wood/elvish-champion.png~TC(1,magenta)"+
 +
#enddef
 +
 +
# Difficulty ratings
 +
#po: NB be sure to retain the = signs in the translated text
 +
#define EASY_TEXT
 +
_"=Fighter=(easiest)"+
 +
#enddef
 +
 +
#define NORMAL_TEXT
 +
_"=Hero"+
 +
#enddef
 +
 +
#define HARD_TEXT
 +
_"=Champion=(hardest)"
 +
#enddef
 +
 +
You can then use a standard difficulty_descriptions tag that you will rarely need to alter:
 +
 +
difficulty_descriptions={EASY_IMAGE}{EASY_TEXT}{NORMAL_IMAGE}{NORMAL_TEXT}{HARD_IMAGE}{HARD_TEXT}
 +
 +
[[User:Simons Mith|Simons Mith]] 04:08, 7 November 2011 (UTC)
  
 
== See Also ==
 
== See Also ==

Revision as of 04:08, 7 November 2011

[edit]WML Tags

A:

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;

B:

base_unit, berserk, binary_path, break, brush;

C:

campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_range, command (action, replay), continue, 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, era, event, 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_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, for, foreach, frame, full_heal;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

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;

I:

idle_anim, if (action, animation), illuminates, image, 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, portrait, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, 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_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resource, return, role, rule;

S:

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, 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_type, store_unit_type_ids, store_villages, story, swarm, switch, sync_variable;

T:

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;

U:

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

V:

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

W:

while, wml_message, wml_schema;

Z:

zoom;

Description texts

A description is a part of the value of a menu attribute. It represents a single option in the difficulty selection menu for a campaign, which consists of an image (called the icon) followed by text. When appropriate, the icon should use ImagePathFunctionWML to replace any magenta with a team color.

The description tag uses a special format:

  • ; if another description precedes it
  • * if it should be the default selection
  • &image=text image with one text description
  • &image=text=text2 image with two text descriptions

Single text items are always enclosed in ", and can be joined together (concatenated) with +. This allows the text to contain translatable items and span multiple lines. (Marking text with _ indicates that it is translatable.)

A sample difficulty description tag might look like this:

difficulty_descriptions="&" + "units/elves-wood/elvish-fighter.png~TC(1,magenta)" + "=" + _"Fighter" + "=" + _"(easiest)" +
	";*" + "&" + "units/elves-wood/elvish-hero.png~TC(1,magenta)" + "=" + _"Hero" +
	";" + "&" + "units/elves-wood/elvish-champion.png~TC(1,magenta)" + "=" + _"Champion" + "=" + _"(hardest)"

The utility macros (see UtilWML) {MENU_IMG_TXT icon text} and {MENU_IMG_TXT2 icon text text-2} can be used to create descriptions more easily. The above example would become:

difficulty_descriptions={MENU_IMG_TXT2 "units/elves-wood/elvish-fighter.png~TC(1,magenta)" _"Fighter" _"(easiest)"} +
	";*" + {MENU_IMG_TXT "units/elves-wood/elvish-hero.png~TC(1,magenta)" _"Hero"} + ";" +
	{MENU_IMG_TXT2 "units/elves-wood/elvish-champion.png~TC(1,magenta)" _"Champion" _"(hardest)"}

For still greater clarity, I have the following suggestion: Before the start of the [campaign] tag, create a set of #define commands as follows:

# Image definitions
# NB Don't forget the trailing + symbols for all but the last entry
#define EASY_IMAGE
"&units/elves-wood/elvish-fighter.png~TC(1,magenta)"+
#enddef

#define NORMAL_IMAGE
";*&units/elves-wood/elvish-hero.png~TC(1,magenta)"+
#enddef

#define HARD_IMAGE
";&units/elves-wood/elvish-champion.png~TC(1,magenta)"+
#enddef

# Difficulty ratings
#po: NB be sure to retain the = signs in the translated text
#define EASY_TEXT
_"=Fighter=(easiest)"+
#enddef

#define NORMAL_TEXT
_"=Hero"+
#enddef

#define HARD_TEXT
_"=Champion=(hardest)"
#enddef

You can then use a standard difficulty_descriptions tag that you will rarely need to alter:

difficulty_descriptions={EASY_IMAGE}{EASY_TEXT}{NORMAL_IMAGE}{NORMAL_TEXT}{HARD_IMAGE}{HARD_TEXT}

Simons Mith 04:08, 7 November 2011 (UTC)

See Also