The Battle for Wesnoth v1.11.0 Release Notes

  • ### Add-ons client

    • The Update Add-ons dialog has been replaced with an alternate view mode for the main Add-ons Manager
    • The Add-ons Manager now allows filtering add-ons by installation status (all, installed, not installed, upgradable)
    • Add-ons in the Add-ons Manager are initially sorted by title instead of the order they were originally uploaded to the server
    • Add-ons with broken/unavailable dependencies are reported to the user
    • The add-on dependencies prompt reports all recursively-resolved dependencies, not just the direct dependencies
    • Add-on installation, upgradability, and publish status is reported as a footnote for every list entry, plus a field in the Description dialog
    • The Add-ons Manager filter textbox is preserved during the same connection (i.e. while installing multiple add-ons) ### Add-ons server
    • Reject add-ons with names or titles that begin with a WML text format markup character (any of *, `, ~, {, , }, |, @, #, <, &)
    • Switched to port 15006 for 1.11.x and adjusted all tools to this port ### AI
    • In akihara_recruitment, analyzing battle field - we take village as important spot. The aim of it is to list terrain couple according to these important spot so we can evaluate battle simulation on them.
    • In akihara_recruitment, the struct situation became a class.
    • New AI formula 'aki_eval' for testing a battle evaluation
    • AI now properly considers the expected damage from poison when attacking using poisoners.
    • Adding a new scenario for the ai-arena-small in order to test the new AI.
    • Adding new files for the new AI (ai/akihara/recruitment.?pp) ### Campaigns
    • Added a note to all final scenarios, stating which one is the last scenario
    • A Tale of Two Brothers:
      • Fix bug #19949: Turns left counter initially incorrect when objectives change and turn limit is extended
      • The Chase: fixed some missing messages if no unit with role=speaker is present
    • Dead Water:
      • Updated the Stun weapon special code to use [object] duration=turn
    • Delfadors Memoirs:
      • Showdown in the Northern Swamp: added to conditional notes in objectives about who should kill Iliah-Malal
    • Dead Water:
      • Changed uses of "ai turn" to "side # turn" ("[event]name=ai turn" breaks replays)
    • Descent into Darkness:
      • Fix most possible cases for Darken Volk becoming "stuck" in 09_A_Small_Favor3.
    • Eastern Invasion:
      • Revisions to dialogue and part of the story.
    • Heir to the Throne:
      • Implemented FR #19418: the Orcs destroy the villages near Konrad's castle when capturing them in The Elves Besieged
      • Fixed bug #19531: scroll to reinforcement units in Blackwater Port
      • Fixed bug #19517: The injured sergeant in HttT: Cliffs of Thoria will now always become visible when he is discovered.
    • Legend of Wesmere:
      • Fix bug #19577 - some terrain was not snow covered
      • Fix bug #19565 - yetis remaining under fog when they appear in scenario 10
    • Liberty:
      • Fixed unknown unit type errors in 04_Unlawful_Orders
    • Sceptre of Fire:
      • Searching for the Runecrafter: updated the "sighted location" code to make use of [filter_vision], plus a SSF
      • Keep recall list at end of scenario 7
    • Son of the Black Eye:
      • Removed Al'Brock and Flar'Tar death as defeat condition in objectives in Civil War
      • Fixed bug #19684: Kapou'e says a different message if he kills the first Elf in Silent Forest
      • Silent Forest: the messages that appear upon killing the first Elf can be translated differently depending on the Elf's gender
      • Fixed bug #19686: fixed two variable checks that prevented some strings from being displayed in Back Home
    • The Hammer of Thursagan:
      • Fixed bug #19743: in Mages and Drakes, Perrin has two different messages about apprentices, depending on the difficult level
      • Karrag now gets enough gold to actually recruit when met
    • The South Guard:
      • Fixed bug #19758: Urza Afalas' sighted event is fired also when the Lich is seen, and if the player allies with the Elves, then both Urza Afalas and Mal M'Brin must be defeated
    • Tutorial:
      • Applied patch #3203: Allow to end the scenario via the right-click menu.
      • Fixed bug #19316: Narrator messages are now translated.
      • Replaced $unit.type by $unit.language_name to make a string completely translatable
      • Fixed bug #19367: Incomplete i18n in wesnoth-tutorial
    • Under the Burning Suns:
      • Made it so that Kaleh gets the default AMLA after he's been fully upgraded
      • Fixed flood appearance over wooden boards
      • Update scenario code to take advantage of modern WML features
      • Fix bug #19630
      • Fix some minor unreported bugs
      • Minor spelling and grammar corrections
      • Made it so that all units are rehydrated quietly upon victory in scenario two
      • Updated the Stun weapon special code to use [object] duration=turn
      • The Human Commander unit now uses the smallfoot movetype instead of woodland
      • Display dehydration status in the sidebar
      • Ensure player always has positive gold leaving the cave in Out of the Frying Pan
      • New AI for human messenger in "Out of the Frying Pan"
      • Taking all items is now optional
      • Finding the map in scenario 3 is now useful
      • Healers now prevent dehydration instead of removing it, so they no longer heal dehydrated units
      • New art for Dark Assassin ### Editor
    • New gui theme, fixes the editor being broken on low resolutions.
      • Smaller font for displaying the terrain information.
      • Less space between the map coordinates and the terrain information (no need to display defense value)
      • More width sidebar
        • Features one more editing tool per row.
        • Additional brush
        • Button for default zoom switching.
      • Space for a second row of editing tools.
    • Terrain group selection from a menu, saving a lot of space.
    • Terrain palette
      • is scaled to fit at all resolutions.
      • Removed the scrolling feature which is no longer needed.
    • Improved performance of the Editor Settings ToD lighting controls ### Engine
    • Refactored scenario transition code
    • Fixed bug #19599: Engine keeps redundant unit.ai_special_ information. ### Graphics
    • New graphics for the Spectre. ### Help menu
    • Added a new Add-ons section explaining add-on usage basics
    • Added more elaborate descriptions for the Units, Abilities and Weapon Specials sections, with the intent of reducing confusion when they are initially empty (feature request #13914) ### Language and i18n
    • Fixed two untranslatable strings in the "new" MP lobby
    • Fixed an untranslatable string in the Multiplayer Commands help topic
    • Fixed untranslatable Cancel button label in the add-ons server network status dialog (bug #19659)
    • New translations: Ukrainian
    • Updated translations: British English, Chinese (Simplified), Chinese (Traditional), Dutch, Estonian, Finnish, French, Galician, German, Greek, Hungarian, Indonesian, Irish, Italian, Japanese, Korean, Latin, Lithuanian, Norwegian, Old English, Polish, Portuguese (Brazil), Russian, Slovak, Spanish ### Lua API
    • Upgraded Lua from 5.1.4 to 5.2.0
    • new: field wesnoth.game_config.mp_debug
    • new: setter for wesnoth.sides[i].color
    • Deprecated the following functions from the wesnoth table, all of which have better replacements: get_side, get_side_count, get_unit_type_ids, get_unit_type, register_wml_action
    • Changed: Extended support for toggle_button.
    • Fixed: wesnoth.find_reach does no longer replace a passed private lua proxy unit with the on-map unit at the same location
    • new: helper.round function
    • wesnoth.scroll_to_tile() now takes a fourth optional argument (boolean) specifying whether to ignore the scroll speed setting in Preferences and instantly warp to the given location
    • Added wesnoth.lock_view(), taking a boolean argument specifying whether to lock gamemap view scrolling (so the user cannot scroll, while WML/Lua actions still can, i.e. for cutscenes), or unlock it
    • Added wesnoth.view_locked(), returning a boolean true value if gamemap view scrolling has been locked, and false otherwise
    • Added == operator for (private, on-map, recall) lua proxy units, checking for unit identity
    • Added wesnoth.get_villages() function ### Multiplayer
    • A New Land:
      • Made it so that the "Elvish Shaman" option in the elvish unit selection menu gets translated. Fixes bug #19677.
    • Fix an accidental terrain type change in Isar's Cross
    • Fix attacker side being human in 6p_Team_Survival (bug #19400)
    • Ignore Pango markup in map descriptions (bug #19210)
    • Canceling the sides setup screen when hosting a MP game now brings the host back to the game configuration screen first instead of returning immediately to the lobby or (for hotseat) titlescreen (bug #7130)
    • The Set Password action is no longer shown for local hotseat games (bug #10784)
    • Changes to the time of day schedules of Fallenstar Lake and Silverhead Crossing
    • Random leader is default selection when picking faction ### Music and sound effects
    • Replaced some of the wolf hit sounds with lower-pitched ones ### Terrain
    • New Syntax for terrain maps
    • New tropical forest images
    • New palm forest terrain
    • Deprecated flowers (Ggf) and Volcano (Qv) removed - use GgEfm and Mv respectively
    • Fix bridge/rail transitions to each other
    • Add new rail terrain type; no existing unit can move on it, so their move/defense values are unchanged
    • New stone, hanging, and wooden chasm bridges
    • Fix bug #19753, missing hex transition ### Unit changes and balancing
    • New extra_define ENABLE_WOLF_ADVANCEMENT to optionally enable Wolves advancement to Great Wolves and Direwolves
    • New extra_define ENABLE_TROLL_SHAMAN to optionally enable Troll Whelps advancement to Troll Shamans (not in multiplayer)
    • Lowered General's experience to 150 when extra_define DISABLE_GRAND_MARSHAL is used ### User interface
    • Restored leader unit image in Load Game dialog (bug #18683)
    • Added a "Back to Start" option to the game menu to load the current scenario's start save if it is available (feature/bug #18027)
    • Added tooltips to Load Game dialog (feature/bug #18249)
    • Added a Reset All button to Hotkey Settings dialog in preferences (feature/bug #3797)
    • Fixed excessive idle CPU usage in story screens without story text
    • Map editor now displays invisible overlay terrains on main map
    • Made add-ons with markup characters at the start of their titles display normally in the add-ons management dialogs (e.g. without colors)
    • Re-fogging does not occur in the middle of the player's turn.
    • Fixed provided saved game filenames being ignored when requesting to save a MP game due to a network or OOS error (bug #19562)
    • Fixed bug #19538: Filters matching 0 saved games cause crash
    • Clicking a unit does not reveal adjacent hidden units (bug #19381).
    • Simultaneous ambush, sighted and teleport failed messages will no longer cover each other up
    • Added: A character limit width constrain for a text
    • Stop showing a unit's potential moves before moving in a move & attack, rather than after (more consistent with regular movement)
    • Changed: Made the id for a tooltip and helptip mandatory.
    • Added: Helper code to assist in widget placement.
    • Added: New widget pane.
    • Added: New widget viewport.
    • Added: New dummy widget instance.
    • Added: New control matrix.
    • Trying to initiate movement (or an attack) before previous movement is finished no longer unselects the current unit (bug #19734). (The new movement command is still deliberately ignored.)
    • The recruit and recall commands no longer appear in the context menu for shrouded or (visibly) occupied hexes.
    • Fixed bug #19844: Block recruiting into shrouded hexes.
    • Fixed bug #19783: Disable commands while WML menu items are executing.
    • Fixed bug #19533: Both damage tooltips now take into account local factors. ### Whiteboard
    • Fixed bug #19626: segfaults on window resize
    • Fixed bug #19369: Using planning mode can cause losing ability to move my units
    • Fixed bug #19408: Crash shortly after executing invalid multi-turn move
    • Fixed bug #19581: Leader can still move after a planned recall
    • Shortened all context menu items
    • Fixed bug #19619: In local games, units keep ghosted appearance during opponent's turn
    • Fixed bug #19613: Multiple attacks after planning attacks in whiteboard
    • Fixed bug #19618: Problems with ending turn with impossible moves
    • Fixed bug #19615: Can see part of opponents' planned moves in local multiplayer game
    • Refactored wb::side_actions
    • Refactored the highlighter and the visitor ### WML engine
    • new key: [unit]/[unit_type] vision=, decouples movement and sight range.
    • new tag: [movement_type] [vision_costs], used for calculating sight range if present.
    • new action tag: [clear_menu_item] id=...
    • new key: [set_menu_item][command]delayed_variable_substitution=yes|no
    • Removed support for the deprecated "colour=", "debug_border_colour=", and [colour_adjust]
    • Fixed bug #18996: Increase random number generation range.
    • Made it possible to disable the credits screen at the end of a campaign by specifying end_credits=no in the final [endlevel] action, or in the [campaign] definition (defaults to yes)
    • Added [modify_side] color= attribute, which changes a side's team color range (feature/bug #18772)
    • Removed support for the deprecated [removeitem]
    • Implemented ~BLEND(r,g,b,o) image path function, which blends the image with a specified RGB color according to certain opacity (factor or percentage) (feature/bug #11590)
    • [find_path] now returns a "hexes" key instead of a "length" key inside the output array
    • Introduce inline SSF support in action tags [allow_recruit], [disallow_recruit], [set_recruit], [gold] and [modify_ai]
    • [gold][filter_side] and [modify_ai][filter_side] are deprecated, use inline SSF instead
    • Action tags [modify_side], [place_shroud] and [remove_shroud] now default to "all sides" instead of side=1 if left empty.
    • Introduce support for [filter_owner] in SLFs. For villages. Keeps backwards compatibility for inline owner_side= at the cost of confusing syntax (due to (possible) duplicate side information). This also adds SSF support in [store_villages].
    • Added support for resistance_multiplier= key in [harm_unit]
    • Fixed bug #19498: [modify_unit] duplicating units if x,y changed
    • Added inline SLF support in [scroll_to], by using the first matching location
    • Introduce inline SSF support in [objectives] and [show_objectives]
    • The [drain] weapon special now supports value=, multiply=, divide=, add= and sub=
    • Added [heal_on_hit] for healing/harming the user by a fixed amount
    • Drained HP amounts can now be negative. Trigger this by setting a negative value in the [drain] or [heal_on_hit] weapon special
    • Negative drain amounts will not take a unit below 1 health
    • Added [show_if] support to [objectives] [note]
    • New tags: [lift_fog] and [reset_fog]
    • New keys: reset_maps= and reset_view= added to [modify_side].
    • Using more than 4 multiply effects no longer wraps to negative integers
    • Added: support for ranges of sides in SSF
    • The [filter_vision] tag of the SUF now uses a SSF (viewing_side= still works, but is deprecated and should be renamed to side=) Semantics for empty side information changes from "all enemy sides" to "all sides"
    • [filter_vision] now works in location filters as well as unit filters, and has an additional key (respect_fog) for locations
    • Support for [effect]unit_type= and [effect]unit_gender= has been removed, use [effect][filter]type= respectively [effect][filter]gender= instead
    • Border hexes are included when using radius= in the SLF of [remove_shroud] and [place_shroud] (they were already included for directly matched hexes).
    • Retrofitted CLEAR_FOG and UNCLEAR_FOG macros to make use of [lift_fog] and [reset_fog]
    • Replaced variable i by TRANSFORM_UNIT_i in macro TRANSFORM_UNIT
    • Fix $owner_side in capture events fired due to unit movement
    • Introduce [item]redraw=yes|no (def yes) parameter
    • Added [object]duration=turn
    • Pushed LOOT macro from LoW, THoT and TRoW in core
    • Adds new WML attribute for configurable village support (upkeep)
    • Change [object]duration=level to [object]duration=scenario
    • The race attribute in SUFs can now take a comma-separated list
    • New image path function: ~ROTATE()
    • Fixed some cases where [find_path] did not restore $this_unit
    • Added: Allow better error messages for missing WML children.
    • [scroll_to] and [scroll_to_unit] now accept an optional boolean immediate= attribute (defaults to false) specifying whether to ignore the scroll speed setting in Preferences and instantly warp to the selected location
    • Added [lock_view] and [unlock_view] WML actions, for locking and unlocking gamemap view scrolling (so the user cannot scroll, while WML/Lua actions still can, i.e. for cutscenes)
    • Fixed CALL_FUNCTION macro (bug #19805)
    • Added [effect] apply_to=halo
    • Converted [store_villages] from C++ to Lua
    • Introduced [unstore_unit]animate=yes|no (def. yes) parameter
    • Made the display of ability and weapon special descriptions smarter, so those descriptions no longer require (and should no longer have) the name of the ability/special as the first line of the description. ### Miscellaneous and bug fixes
    • Fix wrong preferences path suffix (1.1 instead of 1.10) on Linux and other platforms using XDG layout (no compiled-in preferences path override, bug #19318)
    • Fixed unit sound animation timings wherever {SOUND:SLOW}, {SOUND:POISON}, and several macros from animation-utils2.cfg are used (see bug #19274)
    • Restart is no longer required to toggle desktop notifications
    • Display the savegame version when warning the user about unsupported or mismatched versions (bug #7243)
    • Implemented feature request for difficulty changing during campaigns. (see bug #10978)
    • The saved games cache file is now save_index instead of save_index.gz, and it is compressed when the Compressed Saves option is enabled in Advanced Preferences (patch #3115)
    • Show base terrain description if none for overlay (bug #19411)
    • Added wesmage tool to test SDL image manipulation functions.
    • Fixed: A possible NULL-pointer deference in get_unit_type_function.
    • Changed: Default man installation directory now confirms to FHS.
    • Added: New floating point emulation code.
    • Make Wolf Rider and Wolf raise their heads if and only if unit is submerged: forums.wesnoth.org/viewtopic.php?f=4&t=36212
    • Changed: Add a small cache for reading files, giving a minor improvement.
    • Added: Helper tool to create images for unit tests.
    • Added: Image manipulation unit tests.
    • Changed: Rewrote the surface blending algorithm, and improving its speed using NEON intrinsics on processors supporting NEON (the Pandora).
    • Fixed bug #19503: "maximum auto saves" setting now works correctly.
    • Fixed: A preprocessor bug looking beyond the end of a buffer.
    • Fixed: Binding a temporary in the network code, possibly causing crashing.
    • Fixed bug #19658: In replays, units sometimes refresh movement when it is not their turn
    • Added: Enabled BREAKPOINT and WES_HALT macros on the Pandora.
    • Fixed bug #19678: Escape the pipe-symbol in the wiki: TerrainCodeTableWML.
    • Fixed bug #19469: Missing scenario hash results in Remote scenario always added to game description
    • Fixed bug #19322: Empty sides not being listed at the status table
    • Fixed bug #19681: Use the created cache instead of rebuilding it all the time
    • Fixed bug #16544: Fail to read `empty' cache files.
    • Fix bug #19681: Cache is never valid
    • Added shroud_data to the inspection window (FR #19623).
    • Fixed: grids now recursively search for widgets by pointer.
    • Fixed: Wrong current side number after side turns (bug #19735) It also affected the lua field wesnoth.current.side
    • Added: Fail macros FAIL and FAIL_WITH_DEV_MESSAGE.
    • Added: Helper code to make it easier to write enumerate stream operators.
    • Added: UNREACHABLE_CODE macro.
    • Added: TELEPORT animation macros usable by any units
    • Added: CMake option ENABLE_SHARED_LIBRARIES.
    • Fixed: Allow strict compilation with CMake using the upcoming gcc-4.8.
    • Fixed bug #19795: OOS when [message][option] is used in a (single-player) start event when side 1's controller is null.
    • Changed: Enabled strict compilation for Clang in CMake.
    • Added: ENABLE_PEDANTIC_COMPILATION option for CMake.