mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-06 14:32:27 +00:00
578 lines
13 KiB
INI
578 lines
13 KiB
INI
|
|
#define ADDON_DESCRIPTION
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
#enddef
|
|
|
|
#define BASE_COMPATIBILITY_KEYS
|
|
{DEFAULT_KEY allow_new_game bool yes}
|
|
{SIMPLE_KEY allow_era string_list}
|
|
{SIMPLE_KEY disallow_era string_list}
|
|
{SIMPLE_KEY ignore_incompatible_era string_list}
|
|
{SIMPLE_KEY allow_modification string_list}
|
|
{SIMPLE_KEY disallow_modification string_list}
|
|
{SIMPLE_KEY ignore_incompatible_modification string_list}
|
|
#enddef
|
|
|
|
[tag]
|
|
name="$side"
|
|
max=0
|
|
[if]
|
|
[not]
|
|
no_leader=yes
|
|
[/not]
|
|
[then]
|
|
super="units/$unit"
|
|
[/then]
|
|
[/if]
|
|
{DEFAULT_KEY no_leader bool no}
|
|
{SIMPLE_KEY recruit string}
|
|
{DEFAULT_KEY gold int 100}
|
|
{DEFAULT_KEY income int 0}
|
|
{DEFAULT_KEY hidden bool no}
|
|
{SIMPLE_KEY fog bool}
|
|
{SIMPLE_KEY shroud bool}
|
|
{SIMPLE_KEY fog_data shroud_data}
|
|
{SIMPLE_KEY shroud_data shroud_data}
|
|
{SIMPLE_KEY persistent bool}
|
|
{SIMPLE_KEY save_id string}
|
|
{SIMPLE_KEY previous_save_id string}
|
|
{SIMPLE_KEY team_name string}
|
|
{SIMPLE_KEY user_team_name t_string}
|
|
{SIMPLE_KEY current_player string}
|
|
{SIMPLE_KEY side_name t_string}
|
|
{SIMPLE_KEY color string}
|
|
{SIMPLE_KEY flag string}
|
|
{SIMPLE_KEY flag_icon string}
|
|
{SIMPLE_KEY village_gold int}
|
|
{SIMPLE_KEY village_support int}
|
|
{SIMPLE_KEY recall_cost int}
|
|
{DEPRECATED_KEY share_maps string}
|
|
{DEPRECATED_KEY share_view string}
|
|
{SIMPLE_KEY share_vision share_vision}
|
|
{DEFAULT_KEY scroll_to_leader bool yes}
|
|
{DEFAULT_KEY suppress_end_turn_confirmation bool no}
|
|
{DEFAULT_KEY defeat_condition defeat_condition no_leader_left}
|
|
[tag]
|
|
name="unit"
|
|
max=infinite
|
|
super="units/$unit"
|
|
[/tag]
|
|
[tag]
|
|
name="leader"
|
|
max=infinite
|
|
super="units/$unit"
|
|
[/tag]
|
|
[tag]
|
|
name="village"
|
|
max=infinite
|
|
{SIMPLE_KEY x int}
|
|
{SIMPLE_KEY y int}
|
|
[/tag]
|
|
[tag]
|
|
name="fog_override"
|
|
max=infinite
|
|
{SIMPLE_KEY x range_list}
|
|
{SIMPLE_KEY y range_list}
|
|
[/tag]
|
|
[tag]
|
|
name="ai"
|
|
max=infinite
|
|
super="$ai"
|
|
[/tag]
|
|
|
|
{DEFAULT_KEY allow_player bool yes}
|
|
{DEFAULT_KEY disallow_observers bool no}
|
|
{DEFAULT_KEY disallow_shuffle bool no}
|
|
{SIMPLE_KEY chose_random bool}
|
|
{DEFAULT_KEY controller_lock bool no}
|
|
{DEFAULT_KEY team_lock bool no}
|
|
{DEFAULT_KEY color_lock bool no}
|
|
{DEFAULT_KEY gold_lock bool no}
|
|
{DEFAULT_KEY income_lock bool no}
|
|
{DEFAULT_KEY faction_lock bool no}
|
|
{DEFAULT_KEY leader_lock bool no}
|
|
{SIMPLE_KEY faction string}
|
|
{SIMPLE_KEY faction_from_recruit bool}
|
|
[/tag]
|
|
|
|
[tag]
|
|
name="multiplayer_side"
|
|
max=infinite
|
|
super="$side"
|
|
{REQUIRED_KEY id string}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
{SIMPLE_KEY image string}
|
|
{SIMPLE_KEY leader string}
|
|
{SIMPLE_KEY random_leader string}
|
|
{DEFAULT_KEY random_faction bool no}
|
|
[if]
|
|
random_faction=no
|
|
[then]
|
|
{SIMPLE_KEY choices string_list}
|
|
{SIMPLE_KEY except string_list}
|
|
[/then]
|
|
[/if]
|
|
{SIMPLE_KEY terrain_liked terrain_list}
|
|
[/tag]
|
|
|
|
[tag]
|
|
name="event"
|
|
max=infinite
|
|
super="$action_wml"
|
|
{SIMPLE_KEY name string}
|
|
{SIMPLE_KEY id string}
|
|
{DEFAULT_KEY first_time_only bool yes}
|
|
{DEFAULT_KEY delayed_variable_substitution bool no}
|
|
|
|
{FILTER_TAG "filter" unit ()}
|
|
{FILTER_TAG "filter_second" unit ()}
|
|
{FILTER_TAG "filter_attack" weapon ()}
|
|
{FILTER_TAG "filter_second_attack" weapon ()}
|
|
{FILTER_TAG "filter_side" side ()}
|
|
[tag]
|
|
name="filter_condition"
|
|
super="$conditional_wml"
|
|
[/tag]
|
|
[/tag]
|
|
|
|
[tag]
|
|
name="$addon"
|
|
max=0
|
|
{REQUIRED_KEY id string}
|
|
# Not sure if this key is allowed in all addons, but it should be...
|
|
{SIMPLE_KEY addon_min_version version}
|
|
[tag]
|
|
name="load_resource"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
[/tag]
|
|
{LINK_TAG "event"}
|
|
{LINK_TAG "lua"}
|
|
{LINK_TAG "ais/ai"}
|
|
[/tag]
|
|
[tag]
|
|
name="campaign"
|
|
max=infinite
|
|
super="$addon"
|
|
{ADDON_DESCRIPTION}
|
|
{SIMPLE_KEY icon string}
|
|
{SIMPLE_KEY abbrev t_string}
|
|
{SIMPLE_KEY image string}
|
|
{DEFAULT_KEY description_alignment text_alignment left}
|
|
{DEFAULT_KEY type addon_type sp}
|
|
{SIMPLE_KEY define string}
|
|
{SIMPLE_KEY extra_defines string_list}
|
|
{DEPRECATED_KEY difficulties string_list}
|
|
{DEPRECATED_KEY difficulty_descriptions string}
|
|
{DEFAULT_KEY allow_difficulty_change bool yes}
|
|
{REQUIRED_KEY first_scenario string}
|
|
{SIMPLE_KEY rank int}
|
|
{DEFAULT_KEY end_credits bool yes}
|
|
{SIMPLE_KEY end_text t_string}
|
|
{DEFAULT_KEY end_text_duration int 3500}
|
|
{SIMPLE_KEY start_year irdya_date}
|
|
{SIMPLE_KEY end_year irdya_date}
|
|
{SIMPLE_KEY year irdya_date}
|
|
{LINK_TAG "era/options"}
|
|
{LINK_TAG "about"}
|
|
[tag]
|
|
name="difficulty"
|
|
max=infinite
|
|
{REQUIRED_KEY define string}
|
|
{SIMPLE_KEY image string}
|
|
{SIMPLE_KEY label t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
{SIMPLE_KEY default bool}
|
|
[/tag]
|
|
# Multiplayer specific
|
|
# TODO: These are probably only allowed if type is mp or hybrid?
|
|
[if]
|
|
[not]
|
|
type=sp
|
|
[/not]
|
|
[then]
|
|
{DEFAULT_KEY min_players int 2}
|
|
{SIMPLE_KEY max_players int}
|
|
{DEFAULT_KEY allow_era_choice bool yes}
|
|
{DEFAULT_KEY require_campaign bool yes}
|
|
[/then]
|
|
[/if]
|
|
[/tag]
|
|
[tag]
|
|
name="era"
|
|
max=infinite
|
|
super="$addon"
|
|
{ADDON_DESCRIPTION}
|
|
{BASE_COMPATIBILITY_KEYS}
|
|
{SIMPLE_KEY force_modification string_list}
|
|
{SIMPLE_KEY require_era bool}
|
|
{DEFAULT_KEY hide_help bool no}
|
|
{DEFAULT_KEY type addon_type sp}
|
|
{LINK_TAG "multiplayer_side"}
|
|
[tag]
|
|
name="options"
|
|
[tag]
|
|
name="checkbox"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
{DEFAULT_KEY default bool no}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
[/tag]
|
|
[tag]
|
|
name="choice"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
{SIMPLE_KEY default string}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
[tag]
|
|
name="item"
|
|
max=infinite
|
|
{REQUIRED_KEY value string}
|
|
{SIMPLE_KEY name t_string}
|
|
[/tag]
|
|
[/tag]
|
|
[tag]
|
|
name="entry"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
{SIMPLE_KEY default string}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
[/tag]
|
|
[tag]
|
|
name="slider"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
{SIMPLE_KEY default int}
|
|
{SIMPLE_KEY min int}
|
|
{SIMPLE_KEY max int}
|
|
{SIMPLE_KEY step int}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY description t_string}
|
|
[/tag]
|
|
[tag]
|
|
name="combo"
|
|
max=infinite
|
|
super="era/options/choice"
|
|
deprecated=yes
|
|
[/tag]
|
|
[/tag]
|
|
[/tag]
|
|
[tag]
|
|
name="modification"
|
|
max=infinite
|
|
super="$addon"
|
|
{ADDON_DESCRIPTION}
|
|
{SIMPLE_KEY type addon_type}
|
|
{BASE_COMPATIBILITY_KEYS}
|
|
{SIMPLE_KEY ignore_incompatible_scenario string_list}
|
|
{DEFAULT_KEY require_modification bool no}
|
|
{LINK_TAG "era/options"}
|
|
[/tag]
|
|
[tag]
|
|
name="resource"
|
|
max=infinite
|
|
super="$addon"
|
|
[/tag]
|
|
[tag]
|
|
name="scenario"
|
|
max=infinite
|
|
super="$addon"
|
|
{ADDON_DESCRIPTION}
|
|
{SIMPLE_KEY next_scenario string}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY map_data map_data}
|
|
{SIMPLE_KEY map_file string}
|
|
{DEFAULT_KEY turns turns unlimited}
|
|
{DEFAULT_KEY turn_at int 1}
|
|
{DEFAULT_KEY random_start_time bool,int_list no}
|
|
{DEPRECATED_KEY music string}
|
|
{SIMPLE_KEY defeat_music string}
|
|
{SIMPLE_KEY victory_music string}
|
|
{SIMPLE_KEY theme string_list}
|
|
{DEFAULT_KEY victory_when_enemies_defeated bool yes}
|
|
[if]
|
|
[not]
|
|
victory_when_enemies_defeated=no
|
|
[/not]
|
|
[then]
|
|
{SIMPLE_KEY carryover_percentage int}
|
|
{SIMPLE_KEY carryover_add bool}
|
|
[/then]
|
|
[else]
|
|
{DEFAULT_KEY carryover_percentage int 80}
|
|
{DEFAULT_KEY carryover_add bool no}
|
|
[/else]
|
|
[/if]
|
|
{DEFAULT_KEY remove_from_carryover_on_defeat bool yes}
|
|
{DEFAULT_KEY disallow_recall bool no}
|
|
{DEFAULT_KEY experience_modifier int_percent 100}
|
|
{DEFAULT_KEY current_time int 0}
|
|
{SIMPLE_KEY map_generation string}
|
|
{SIMPLE_KEY scenario_generation string}
|
|
{SIMPLE_KEY force_lock_settings bool}
|
|
[tag]
|
|
name="story"
|
|
max=infinite
|
|
{SIMPLE_KEY title string}
|
|
{INSERT_TAG}
|
|
# TODO: Is this really recognized at story toplevel? Wiki claims it is.
|
|
[tag]
|
|
name="image"
|
|
max=infinite
|
|
{INSERT_TAG}
|
|
{SIMPLE_KEY x int}
|
|
{SIMPLE_KEY y int}
|
|
{SIMPLE_KEY centered bool}
|
|
{SIMPLE_KEY file string}
|
|
{SIMPLE_KEY delay int}
|
|
# These keys possibly not documented?
|
|
{SIMPLE_KEY scale_vertically bool}
|
|
{SIMPLE_KEY scale_horizontally bool}
|
|
{SIMPLE_KEY scale bool}
|
|
{SIMPLE_KEY tile_vertically bool}
|
|
{SIMPLE_KEY tile_horizontally bool}
|
|
{SIMPLE_KEY tile bool}
|
|
[/tag]
|
|
[tag]
|
|
name="part"
|
|
max=infinite
|
|
{INSERT_TAG}
|
|
{SIMPLE_KEY background string}
|
|
{DEFAULT_KEY scale_background bool yes}
|
|
{SIMPLE_KEY story t_string}
|
|
{SIMPLE_KEY show_title bool}
|
|
{SIMPLE_KEY title t_string}
|
|
{SIMPLE_KEY music string}
|
|
{SIMPLE_KEY sound string_list}
|
|
{DEFAULT_KEY text_layout string bottom}
|
|
{DEFAULT_KEY title_alignment text_alignment left}
|
|
{SIMPLE_KEY delay int} # Not documented?
|
|
[tag]
|
|
name="background_layer"
|
|
max=infinite
|
|
{INSERT_TAG}
|
|
{SIMPLE_KEY image string}
|
|
{SIMPLE_KEY scale_vertically bool}
|
|
{SIMPLE_KEY scale_horizontally bool}
|
|
{SIMPLE_KEY scale bool}
|
|
{SIMPLE_KEY keep_aspect_ratio bool}
|
|
{SIMPLE_KEY tile_vertically bool}
|
|
{SIMPLE_KEY tile_horizontally bool}
|
|
{SIMPLE_KEY tile bool}
|
|
{SIMPLE_KEY base_layer bool}
|
|
[/tag]
|
|
[tag]
|
|
name="if"
|
|
max=infinite
|
|
super="$conditional_wml"
|
|
[tag]
|
|
name="then"
|
|
super="scenario/story/part"
|
|
[/tag]
|
|
[tag]
|
|
name="else"
|
|
super="scenario/story/part"
|
|
[/tag]
|
|
[/tag]
|
|
[tag]
|
|
name="switch"
|
|
max=infinite
|
|
{REQUIRED_KEY variable string}
|
|
{INSERT_TAG}
|
|
[tag]
|
|
name="case"
|
|
max=infinite
|
|
super="scenario/story/part"
|
|
{REQUIRED_KEY value string}
|
|
[/tag]
|
|
[tag]
|
|
name="else"
|
|
super="scenario/story/part"
|
|
[/tag]
|
|
[/tag]
|
|
{LINK_TAG "scenario/story/image"}
|
|
{LINK_TAG "$action_wml/deprecated_message"}
|
|
{LINK_TAG "$action_wml/wml_message"}
|
|
[/tag]
|
|
[tag]
|
|
name="if"
|
|
max=infinite
|
|
super="$conditional_wml"
|
|
[tag]
|
|
name="then"
|
|
super="scenario/story"
|
|
[/tag]
|
|
[tag]
|
|
name="else"
|
|
super="scenario/story"
|
|
[/tag]
|
|
[/tag]
|
|
[tag]
|
|
name="switch"
|
|
max=infinite
|
|
{REQUIRED_KEY variable string}
|
|
{INSERT_TAG}
|
|
[tag]
|
|
name="case"
|
|
max=infinite
|
|
super="scenario/story"
|
|
{REQUIRED_KEY value string}
|
|
[/tag]
|
|
[tag]
|
|
name="else"
|
|
super="scenario/story"
|
|
[/tag]
|
|
[/tag]
|
|
{LINK_TAG "$action_wml/deprecated_message"}
|
|
{LINK_TAG "$action_wml/wml_message"}
|
|
[/tag]
|
|
[tag]
|
|
name="label"
|
|
max=infinite
|
|
{SIMPLE_KEY x s_range_list}
|
|
{SIMPLE_KEY y s_range_list}
|
|
{SIMPLE_KEY text t_string}
|
|
{SIMPLE_KEY tooltip t_string} # Is this documented?
|
|
{SIMPLE_KEY immutable s_bool}
|
|
{SIMPLE_KEY visible_in_fog s_bool}
|
|
{SIMPLE_KEY visible_in_shroud s_bool}
|
|
{SIMPLE_KEY team_name string}
|
|
{SIMPLE_KEY color s_color}
|
|
[/tag]
|
|
[tag]
|
|
name="item"
|
|
max="infinite"
|
|
{SIMPLE_KEY x range_list}
|
|
{SIMPLE_KEY y range_list}
|
|
{SIMPLE_KEY image string}
|
|
{SIMPLE_KEY halo string}
|
|
{SIMPLE_KEY team_name string}
|
|
{DEFAULT_KEY visible_in_fog bool yes}
|
|
[/tag]
|
|
[tag]
|
|
name="time"
|
|
max=infinite
|
|
{REQUIRED_KEY id string}
|
|
{SIMPLE_KEY name t_string}
|
|
{SIMPLE_KEY image string}
|
|
{SIMPLE_KEY mask string}
|
|
{SIMPLE_KEY lawful_bonus int}
|
|
{SIMPLE_KEY liminal_bonus int}
|
|
{SIMPLE_KEY red int}
|
|
{SIMPLE_KEY green int}
|
|
{SIMPLE_KEY blue int}
|
|
{SIMPLE_KEY sound string}
|
|
[/tag]
|
|
[tag]
|
|
name="time_area"
|
|
max=infinite
|
|
{SIMPLE_KEY x range_list}
|
|
{SIMPLE_KEY y range_list}
|
|
{DEFAULT_KEY current_time int 0}
|
|
{LINK_TAG "scenario/time"}
|
|
[/tag]
|
|
[tag]
|
|
name="side"
|
|
max=infinite
|
|
super="$side"
|
|
{REQUIRED_KEY side int}
|
|
{SIMPLE_KEY controller controller}
|
|
{SIMPLE_KEY allow_player bool}
|
|
{SIMPLE_KEY disallow_observers bool}
|
|
{SIMPLE_KEY faction_lock bool}
|
|
{SIMPLE_KEY leader_lock bool}
|
|
{SIMPLE_KEY team_lock bool}
|
|
{SIMPLE_KEY gold_lock bool}
|
|
{SIMPLE_KEY income_lock bool}
|
|
{SIMPLE_KEY controller_lock bool}
|
|
{SIMPLE_KEY color_lock bool}
|
|
[/tag]
|
|
[tag]
|
|
name="display"
|
|
{SIMPLE_KEY view_locked bool}
|
|
{SIMPLE_KEY color_adjust_red unsigned}
|
|
{SIMPLE_KEY color_adjust_green unsigned}
|
|
{SIMPLE_KEY color_adjust_blue unsigned}
|
|
[tag]
|
|
name="location"
|
|
{REQUIRED_KEY x unsigned}
|
|
{REQUIRED_KEY y unsigned}
|
|
[/tag]
|
|
[/tag]
|
|
[tag]
|
|
name="sound_source"
|
|
max=infinite
|
|
{SIMPLE_KEY id string}
|
|
{SIMPLE_KEY sounds string_list}
|
|
{SIMPLE_KEY delay s_unsigned}
|
|
{SIMPLE_KEY chance s_unsigned}
|
|
{SIMPLE_KEY check_fogged s_bool}
|
|
{SIMPLE_KEY check_shrouded s_bool}
|
|
{SIMPLE_KEY x s_range_list}
|
|
{SIMPLE_KEY y s_range_list}
|
|
{DEFAULT_KEY fade_range s_unsigned 3}
|
|
{DEFAULT_KEY full_range s_unsigned 14}
|
|
{SIMPLE_KEY loop s_int}
|
|
[/tag]
|
|
{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
|
|
[or]
|
|
scenario_generation=default
|
|
[/or]
|
|
[then]
|
|
{./mapgen/default.cfg}
|
|
[/then]
|
|
[elseif]
|
|
map_generation=lua
|
|
[or]
|
|
scenario_generation=lua
|
|
[/or]
|
|
[then]
|
|
{./mapgen/lua.cfg}
|
|
[/then]
|
|
[/elseif]
|
|
[/if]
|
|
{DATA_TAG variables 0 1}
|
|
# TODO: These are needed here for MP campaigns... can we work around that somehow?
|
|
{SIMPLE_KEY new_game_title t_string}
|
|
{BASE_COMPATIBILITY_KEYS}
|
|
[/tag]
|
|
[tag]
|
|
name="test"
|
|
max=infinite
|
|
super="scenario"
|
|
{SIMPLE_KEY is_unit_test bool}
|
|
[/tag]
|
|
[tag]
|
|
name="tutorial"
|
|
max=infinite
|
|
super="scenario"
|
|
[/tag]
|
|
[tag]
|
|
name="multiplayer"
|
|
max=infinite
|
|
super="scenario"
|
|
#{SIMPLE_KEY new_game_title t_string}
|
|
#{BASE_COMPATIBILITY_KEYS}
|
|
{SIMPLE_KEY force_modification string_list}
|
|
{SIMPLE_KEY require_scenario bool}
|
|
{SIMPLE_KEY mp_village_gold int}
|
|
{SIMPLE_KEY define string}
|
|
{LINK_TAG "era/options"}
|
|
[/tag]
|
|
[tag]
|
|
name="generic_multiplayer"
|
|
max=infinite
|
|
super="multiplayer"
|
|
[/tag]
|