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.