Schema: Add a macro for links (and make use of it)

This commit is contained in:
Celtic Minstrel 2018-04-07 17:14:23 -04:00
parent e3b17d3e9f
commit 4674e97eb6
14 changed files with 110 additions and 312 deletions

View file

@ -23,9 +23,7 @@
[tag]
name="default_config"
min=1
[link]
name="$ai/aspect"
[/link]
{LINK_TAG "$ai/aspect"}
[/tag]
[/tag]

View file

@ -46,12 +46,8 @@
max=0
{INSERT_TAG}
{ACTION_TAG "command" max=infinite}
[link]
name="event"
[/link]
[link]
name="lua"
[/link]
{LINK_TAG "event"}
{LINK_TAG "lua"}
# Flow control (ConditionalActionsWML)
[tag]
name="if"
@ -343,18 +339,10 @@
{INSERT_TAG}
{FILTER_TAG "filter" unit {INSERT_TAG}}
{SIMPLE_KEY mode string} # TODO: This is undocumented and it's unclear what's allowed here; probably should be an enum though?
[link]
name="units/$modifications/trait"
[/link]
[link]
name="units/$modifications/advancement"
[/link]
[link]
name="units/$modifications/object"
[/link]
[link]
name="units/$modifications/base/effect"
[/link]
{LINK_TAG "units/$modifications/trait"}
{LINK_TAG "units/$modifications/advancement"}
{LINK_TAG "units/$modifications/object"}
{LINK_TAG "units/$modifications/base/effect"}
[/tag]
[tag]
name="transform_unit"
@ -486,9 +474,7 @@
name="replace_schedule"
max=infinite
{INSERT_TAG}
[link]
name="scenario/time"
[/link]
{LINK_TAG "scenario/time"}
{SIMPLE_KEY current_time s_unsigned}
[/tag]
[tag]
@ -821,17 +807,13 @@
{REQUIRED_KEY name string_list}
{DEFAULT_KEY repeat s_unsigned 0}
[/tag]
[link]
name="scenario/sound_source"
[/link]
{LINK_TAG "scenario/sound_source"}
[tag]
name="story"
max=infinite
super="scenario/story"
[/tag]
[link]
name="titlescreen_music/music"
[/link]
{LINK_TAG "titlescreen_music/music"}
[tag]
name="volume"
max=infinite

View file

@ -149,15 +149,9 @@
max=infinite
{REQUIRED_KEY id string}
[/tag]
[link]
name="event"
[/link]
[link]
name="lua"
[/link]
[link]
name="ais/ai"
[/link]
{LINK_TAG "event"}
{LINK_TAG "lua"}
{LINK_TAG "ais/ai"}
[/tag]
[tag]
name="campaign"
@ -182,12 +176,8 @@
{SIMPLE_KEY start_year irdya_date}
{SIMPLE_KEY end_year irdya_date}
{SIMPLE_KEY year irdya_date}
[link]
name="era/options"
[/link]
[link]
name="about"
[/link]
{LINK_TAG "era/options"}
{LINK_TAG "about"}
[tag]
name="difficulty"
max=infinite
@ -221,9 +211,7 @@
{SIMPLE_KEY require_era bool}
{DEFAULT_KEY hide_help bool no}
{DEFAULT_KEY type addon_type sp}
[link]
name="multiplayer_side"
[/link]
{LINK_TAG "multiplayer_side"}
[tag]
name="options"
[tag]
@ -284,9 +272,7 @@
{BASE_COMPATIBILITY_KEYS}
{SIMPLE_KEY ignore_incompatible_scenario string_list}
{DEFAULT_KEY require_modification bool no}
[link]
name="era/options"
[/link]
{LINK_TAG "era/options"}
[/tag]
[tag]
name="resource"
@ -403,15 +389,9 @@
super="scenario/story/part"
[/tag]
[/tag]
[link]
name="scenario/story/image"
[/link]
[link]
name="$action_wml/deprecated_message"
[/link]
[link]
name="$action_wml/wml_message"
[/link]
{LINK_TAG "scenario/story/image"}
{LINK_TAG "$action_wml/deprecated_message"}
{LINK_TAG "$action_wml/wml_message"}
[/tag]
[tag]
name="if"
@ -442,12 +422,8 @@
super="scenario/story"
[/tag]
[/tag]
[link]
name="$action_wml/deprecated_message"
[/link]
[link]
name="$action_wml/wml_message"
[/link]
{LINK_TAG "$action_wml/deprecated_message"}
{LINK_TAG "$action_wml/wml_message"}
[/tag]
[tag]
name="label"
@ -490,9 +466,7 @@
max=infinite
{SIMPLE_KEY x range_list}
{SIMPLE_KEY y range_list}
[link]
name="scenario/time"
[/link]
{LINK_TAG "scenario/time"}
[/tag]
[tag]
name="side"
@ -537,18 +511,10 @@
{DEFAULT_KEY full_range s_unsigned 14}
{SIMPLE_KEY loop s_int}
[/tag]
[link]
name="titlescreen_music/music"
[/link]
[link]
name="terrain_graphics"
[/link]
[link]
name="game_config/color_palette"
[/link]
[link]
name="game_config/color_range"
[/link]
{LINK_TAG "titlescreen_music/music"}
{LINK_TAG "terrain_graphics"}
{LINK_TAG "game_config/color_palette"}
{LINK_TAG "game_config/color_range"}
# TODO: Document [menu_item] and [undo_stack]
[if]
map_generation=default
@ -594,9 +560,7 @@
{SIMPLE_KEY require_scenario bool}
{SIMPLE_KEY mp_village_gold int}
{SIMPLE_KEY define string}
[link]
name="era/options"
[/link]
{LINK_TAG "era/options"}
[/tag]
[tag]
name="generic_multiplayer"

View file

@ -44,9 +44,7 @@
{REQUIRED_KEY id string}
[/tag]
{EMPTY_TAG "proceed_to_next_scenario" 0 infinite}
[link]
name="lua"
[/link]
{LINK_TAG "lua"}
[tag]
name="and,or,not"
super="$condition_wml"

View file

@ -140,15 +140,11 @@
[/tag]
[tag]
name="lobby_music"
[link]
name="titlescreen_music/music"
[/link]
{LINK_TAG "titlescreen_music/music"}
[/tag]
[tag]
name="editor_music"
[link]
name="titlescreen_music/music"
[/link]
{LINK_TAG "titlescreen_music/music"}
[/tag]
[tag]
name="advanced_preference"
@ -223,9 +219,7 @@
name="credits_group"
max=infinite
{SIMPLE_KEY sort bool}
[link]
name="about"
[/link]
{LINK_TAG "about"}
[/tag]
[tag]

View file

@ -56,13 +56,7 @@
{REQUIRED_KEY valid_terrain terrain_list}
{REQUIRED_KEY min_distance unsigned}
[/tag]
[link]
name="naming"
[/link]
[link]
name="village_naming"
[/link]
[link]
name="scenario"
[/link]
{LINK_TAG "naming"}
{LINK_TAG "village_naming"}
{LINK_TAG "scenario"}
[/tag]

View file

@ -4,7 +4,5 @@
max=infinite
{REQUIRED_KEY id string}
{SIMPLE_KEY name t_string}
[link]
name="scenario/time"
[/link]
{LINK_TAG "scenario/time"}
[/tag]

View file

@ -68,12 +68,8 @@
min="0"
max="infinite"
super="gui/window/resolution/grid/row/column"
[link]
name="gui/window/resolution/grid/row/column/toggle_button"
[/link]
[link]
name="gui/window/resolution/grid/row/column/toggle_panel"
[/link]
{LINK_TAG "gui/window/resolution/grid/row/column/toggle_button"}
{LINK_TAG "gui/window/resolution/grid/row/column/toggle_panel"}
{DEFAULT_KEY "icon" t_string ""}
{DEFAULT_KEY "label" t_string ""}
{DEFAULT_KEY "tooltip" t_string ""}
@ -270,9 +266,7 @@
min="0"
max="infinite"
super="generic/widget_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -459,9 +453,7 @@
max="1"
super="generic/state"
[/tag]
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -522,9 +514,7 @@
min="0"
max="infinite"
super="gui/panel_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -537,9 +527,7 @@
min="0"
max="infinite"
super="generic/widget_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -556,17 +544,13 @@
name="background"
min="0"
max="1"
[link]
name="generic/state/draw"
[/link]
{LINK_TAG "generic/state/draw"}
[/tag]
[tag]
name="foreground"
min="0"
max="1"
[link]
name="generic/state/draw"
[/link]
{LINK_TAG "generic/state/draw"}
[/tag]
{DEFAULT_KEY "bottom_border" unsigned 0}
{DEFAULT_KEY "left_border" unsigned 0}
@ -662,9 +646,7 @@
max="1"
super="generic/state"
[/tag]
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -704,9 +686,7 @@
min="0"
max="infinite"
super="generic/widget_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -765,9 +745,7 @@
min="0"
max="infinite"
super="generic/widget_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -905,9 +883,7 @@
max="1"
super="generic/state"
[/tag]
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -920,9 +896,7 @@
min="0"
max="infinite"
super="gui/panel_definition/resolution"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
[tag]
@ -1045,9 +1019,7 @@
min="0"
max="infinite"
super="generic/widget_instance"
[link]
name="generic/state/draw"
[/link]
{LINK_TAG "generic/state/draw"}
{DEFAULT_KEY "height" f_unsigned 0}
{DEFAULT_KEY "width" f_unsigned 0}
[/tag]
@ -1290,9 +1262,7 @@
min="0"
max="infinite"
super="generic/widget_instance"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[tag]
name="password_box"
@ -1409,9 +1379,7 @@
min="0"
max="infinite"
super="generic/widget_instance"
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
{DEFAULT_KEY "return_value" int 0}
{DEFAULT_KEY "return_value_id" string ""}
[/tag]
@ -1469,9 +1437,7 @@
super="gui/window/resolution/grid/row/column"
[/tag]
[/tag]
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/window/resolution/grid"}
{DEFAULT_KEY "border" border ""}
{DEFAULT_KEY "border_size" unsigned 0}
{DEFAULT_KEY "grow_factor" unsigned 0}
@ -1534,15 +1500,9 @@
min="0"
max="infinite"
super="gui/panel_definition/resolution"
[link]
name="gui/panel_definition/resolution/background"
[/link]
[link]
name="gui/panel_definition/resolution/foreground"
[/link]
[link]
name="gui/window/resolution/grid"
[/link]
{LINK_TAG "gui/panel_definition/resolution/background"}
{LINK_TAG "gui/panel_definition/resolution/foreground"}
{LINK_TAG "gui/window/resolution/grid"}
[/tag]
[/tag]
{REQUIRED_KEY "description" t_string}

View file

@ -58,6 +58,12 @@
[/tag]
#enddef
#define LINK_TAG PATH
[link]
name="{PATH}"
[/link]
#enddef
# These are "magic" keys allowed whenever two WML tags are merged.
#define WML_MERGE_KEYS
{SIMPLE_KEY __remove bool}

View file

@ -7,9 +7,7 @@
max=0
{./modifications.cfg}
[/tag]
[link]
name="units/$modifications/trait"
[/link]
{LINK_TAG "units/$modifications/trait"}
{./movetypes.cfg}
{./races.cfg}
@ -29,9 +27,7 @@
{SIMPLE_KEY type string_list}
{SIMPLE_KEY race string_list}
{SIMPLE_KEY type_adv_tree string_list}
[link]
name="units/hide_help/not"
[/link]
{LINK_TAG "units/hide_help/not"}
[/tag]
[/tag]
[/tag]

View file

@ -83,37 +83,27 @@
[case]
value=movement_costs
{SIMPLE_KEY replace s_bool}
[link]
name="units/movetype/movement_costs"
[/link]
{LINK_TAG "units/movetype/movement_costs"}
[/case]
[case]
value=vision_costs
{SIMPLE_KEY replace s_bool}
[link]
name="units/movetype/vision_costs"
[/link]
{LINK_TAG "units/movetype/vision_costs"}
[/case]
[case]
value=jamming_costs
{SIMPLE_KEY replace s_bool}
[link]
name="units/movetype/jamming_costs"
[/link]
{LINK_TAG "units/movetype/jamming_costs"}
[/case]
[case]
value=defense
{SIMPLE_KEY replace s_bool}
[link]
name="units/movetype/defense"
[/link]
{LINK_TAG "units/movetype/defense"}
[/case]
[case]
value=resistance
{SIMPLE_KEY replace s_bool}
[link]
name="units/movetype/resistance"
[/link]
{LINK_TAG "units/movetype/resistance"}
[/case]
[case]
value=variation
@ -141,75 +131,35 @@
[/case]
[case]
value=new_ability,remove_ability
[link]
name="units/unit_type/abilities"
[/link]
{LINK_TAG "units/unit_type/abilities"}
[/case]
[case]
value=new_animation
{SIMPLE_KEY id string}
[link]
name="units/unit_type/animation"
[/link]
[link]
name="units/unit_type/defend"
[/link]
[link]
name="units/unit_type/death"
[/link]
[link]
name="units/unit_type/standing_anim"
[/link]
[link]
name="units/unit_type/movement_anim"
[/link]
[link]
name="units/unit_type/idle_anim"
[/link]
[link]
name="units/unit_type/attack_anim"
[/link]
[link]
name="units/unit_type/victory_anim"
[/link]
[link]
name="units/unit_type/pre_movement_anim"
[/link]
[link]
name="units/unit_type/post_movement_anim"
[/link]
[link]
name="units/unit_type/draw_weapon_anim"
[/link]
[link]
name="units/unit_type/sheath_weapon_anim"
[/link]
[link]
name="units/unit_type/leading_anim"
[/link]
[link]
name="units/unit_type/recruit_anim"
[/link]
[link]
name="units/unit_type/recruiting_anim"
[/link]
[link]
name="units/unit_type/healing_anim"
[/link]
[link]
name="units/unit_type/extra_anim"
[/link]
{LINK_TAG "units/unit_type/animation"}
{LINK_TAG "units/unit_type/defend"}
{LINK_TAG "units/unit_type/death"}
{LINK_TAG "units/unit_type/standing_anim"}
{LINK_TAG "units/unit_type/movement_anim"}
{LINK_TAG "units/unit_type/idle_anim"}
{LINK_TAG "units/unit_type/attack_anim"}
{LINK_TAG "units/unit_type/victory_anim"}
{LINK_TAG "units/unit_type/pre_movement_anim"}
{LINK_TAG "units/unit_type/post_movement_anim"}
{LINK_TAG "units/unit_type/draw_weapon_anim"}
{LINK_TAG "units/unit_type/sheath_weapon_anim"}
{LINK_TAG "units/unit_type/leading_anim"}
{LINK_TAG "units/unit_type/recruit_anim"}
{LINK_TAG "units/unit_type/recruiting_anim"}
{LINK_TAG "units/unit_type/healing_anim"}
{LINK_TAG "units/unit_type/extra_anim"}
[/case]
[case]
value=image_mod,overlay
{SIMPLE_KEY replace string}
{SIMPLE_KEY add string}
[link]
name="game_config/color_range"
[/link]
[link]
name="game_config/color_palette"
[/link]
{LINK_TAG "game_config/color_range"}
{LINK_TAG "game_config/color_palette"}
[/case]
[case]
value=ellipse
@ -227,9 +177,7 @@
value=new_advancement
{SIMPLE_KEY replace s_bool}
{SIMPLE_KEY types string_list}
[link]
name="units/$modifications/advancement"
[/link]
{LINK_TAG "units/$modifications/advancement"}
[/case]
[case]
value=remove_advancement

View file

@ -18,7 +18,5 @@
{SIMPLE_KEY male_name_generator t_string}
{SIMPLE_KEY female_name_generator t_string}
{SIMPLE_KEY markov_chain_size int}
[link]
name="units/$modifications/trait"
[/link]
{LINK_TAG "units/$modifications/trait"}
[/tag]

View file

@ -42,15 +42,9 @@
[tag]
name="modifications"
{INSERT_TAG}
[link]
name="units/$modifications/trait"
[/link]
[link]
name="units/$modifications/advancement"
[/link]
[link]
name="units/$modifications/object"
[/link]
{LINK_TAG "units/$modifications/trait"}
{LINK_TAG "units/$modifications/advancement"}
{LINK_TAG "units/$modifications/object"}
[/tag]
[tag]
name="ai"
@ -59,30 +53,14 @@
{SIMPLE_KEY loop_formula formula}
{DATA_TAG vars 0 1}
[/tag]
[link]
name="event"
[/link]
[link]
name="units/movetype/movement_costs"
[/link]
[link]
name="units/movetype/vision_costs"
[/link]
[link]
name="units/movetype/jamming_costs"
[/link]
[link]
name="units/movetype/defense"
[/link]
[link]
name="units/movetype/resistance"
[/link]
[link]
name="units/unit_type/attack"
[/link]
[link]
name="units/unit_type/abilities"
[/link]
{LINK_TAG "event"}
{LINK_TAG "units/movetype/movement_costs"}
{LINK_TAG "units/movetype/vision_costs"}
{LINK_TAG "units/movetype/jamming_costs"}
{LINK_TAG "units/movetype/defense"}
{LINK_TAG "units/movetype/resistance"}
{LINK_TAG "units/unit_type/attack"}
{LINK_TAG "units/unit_type/abilities"}
{SIMPLE_KEY x s_coordinate}
{SIMPLE_KEY y s_coordinate}

View file

@ -39,12 +39,8 @@
{SIMPLE_KEY xp_bar_scaling real}
{SIMPLE_KEY zoc bool}
{SIMPLE_KEY flying bool}
[link]
name="units/$modifications/trait"
[/link]
[link]
name="units/$modifications/advancement"
[/link]
{LINK_TAG "units/$modifications/trait"}
{LINK_TAG "units/$modifications/advancement"}
[tag]
name="attack"
max=infinite
@ -67,24 +63,12 @@
name="abilities"
{./abilities.cfg}
[/tag]
[link]
name="units/movetype/resistance"
[/link]
[link]
name="units/movetype/defense"
[/link]
[link]
name="units/movetype/movement_costs"
[/link]
[link]
name="units/movetype/vision_costs"
[/link]
[link]
name="units/movetype/jamming_costs"
[/link]
[link]
name="event"
[/link]
{LINK_TAG "units/movetype/resistance"}
{LINK_TAG "units/movetype/defense"}
{LINK_TAG "units/movetype/movement_costs"}
{LINK_TAG "units/movetype/vision_costs"}
{LINK_TAG "units/movetype/jamming_costs"}
{LINK_TAG "event"}
{./animations.cfg}
[/tag]