* Delfador's Memoirs
* Adjust campaign difficulty
* Sceptre of Fire
* Adjust campaign difficulty
* Secrets of the Ancients
* Adjust campaign difficulty
* Son of the Black Eye
* Adjust campaign difficulty
Editor
Multiplayer
Packaging
Terrain
Translations
Updated translations: British English, Italian
Units
Beast-rider Walking Corpse variation (for UtBS Quenoth Tauroch line, but generally available)
User interface
Improved the Load dialog when there are no saved games for the current version, and also when there are corrupted files.
Re-added the pop-up when there are no saved games at all (issue #5517).
WML Engine
Standard Location Filters now support gives_income=yes|no to make it simpler to match villages regardless of owner
Miscellaneous and Bug Fixes
Added support for 1.14’s tag names in [terrain_defaults] (issue #5308).
Version 1.15.10
Add-ons server
Fixed undefined behavior when servicing requests to downgrade add-ons.
Campaigns
Added custom campaign menu backgrounds for several mainline campaigns.
The Rise of Wesnoth
Adjust campaign difficulty
Multiplayer
The Delay Advancements modification has been removed in favor of adding the Plan Unit Advance modification to mainline. Enabling this modification allows each player to choose what their units will level up into in case the advancement happens on an enemy player's turn in an online multiplayer game.
Unit advancement that happens on an enemy's turn in online multiplayer games are no longer randomized. Instead, the first advancement listed for the unit is always used.
Disabled World Conquest due to an increasing number of reported bugs and it currently lacking a maintainer. It may be removed entirely in a future release.
Lua API
Upgrade to Lua 5.4.2.
Added the wesnoth.as_text(...) function as a way to more easily view the contents of a lua table. This is intended as a debugging aid and nothing more.
Deprecation warnings can now be viewed in the in-game Lua console, together with a stack trace to the first location that triggered them.
There is now a --strict-lua command-line option that disables most deprecated Lua functions; this makes the use of deprecated APIs an error instead of a warning.
Translations
Updated translations: British English, Catalan, Czech, French, Portuguese (Brazil),
Turkish
Units
update footpad sprite
north-facing frames for dunefolk skirmisher, loyalist bowman, and troll whelp
User interface
Added a "disengaged" orb, shown instead of the partially-moved orb for units that can move but can't attack.
Added information about the build's (not runtime) target CPU architecture to the game version info dialog and --report.
Added terminal-style command history browsing with up-down keys for in-game consoles used by debug mode, ai and search floating textboxes.
Made the preferences dialog larger on HDPI screens; this fixes a usability issue with HDPI font sizes (issue #5185).
WML Engine
Extent 'special_id_active' and 'special_type_active' to abilities used like weapon and to [leadership] abilities.
abilities used like weapon can call [leading_anim] now.
Miscellaneous and Bug Fixes
Fixed display zoom not being taken into account when using the x, y, directional_x and directional_y attributes in unit animations (issue #5508).
Fixed a warning message and the AI leader potentially not moving when it cannot reach a keep because it's occupied by an allied unit
Version 1.15.9
Add-ons server
Fixed a regression from 1.15.8 that caused add-on downloads to never bump download counts (issue #5411).
Campaigns
Dead Water
Reduce campaign difficulty
Editor
Added help topics for the scenario editor's tools
Added documentation about the files written by the editor
Multiplayer
Isar’s Cross got map background graphics, mainlined from the Visual Map Pack on 1.14
Packaging
Boost 1.65 is now required (was 1.59).
Translations
Updated translations: Catalan, Chinese (Traditional), French, Portuguese (Brazil),
Spanish
Units
New Fauna/monster unit: Horned Scarab
Some standing/bobbing animations now filtered for low HP (depicting exhaustion) (PR #5388)
User interface
Major campaign menu overhaul including more accessible RNG options (including the experimental PRNG option previously found in Advanced Preferences), a difficulty dropdown replacing the difficulty dialog, and custom backgrounds set using [campaign] background= (issue #4543, PR #5358).
The OS version displayed in the game version dialog and --report now includes the runtime CPU architecture.
Improved sidebar area in the MP Lobby.
Improved filter options in the MP Lobby. Labels are clearer and games with blocked players are excluded from the list by default (with an option to unhide said games).
WML Engine
New [set_variable] options: reverse=yes, min=list, max=list
Miscellaneous and Bug Fixes
Fixed [terrain_defaults] and [resistance_defaults] (issue #5308).
Fixed being prompted multiple times to select campaign difficulty when loading a game (issue #5392)
Version 1.15.8
Add-ons client
Fix potential crashes when working with installed add-ons that have a corrupted _info.cfg file.
Improved license information prompt for uploads.
Add-ons server
Fixed inability to write files (including the server configuration file) on Windows.
Dropped plain text passphrase migration, unused in production since version 1.12.7 and 1.13.0 (issue #5080).
Uploading add-ons with versions not greater than the latest uploaded version is no longer allowed (issue #5079).
Implemented optional server information query used by connecting clients.
Campaigns
Dead Water
Reduce campaign difficulty
Eastern Invasion:
Tweak campaign difficulty
S03: fix the initial keep being blocked at the start
Heir to the Throne
Tweak campaign difficulty
The Hammer of Thursagan
Reduce campaign difficulty
The South Guard
Reduce campaign difficulty
Multiplayer
Added /roll N command to multiplayer games and game lobbies which produces a publicly visible random integer number ranged from 1 to N inclusively (issue #5221, PR #5326).
Packaging
SDL_Image 2.0.2 or later is now required (was 2.0.0).
Undead variations for Falcon, Giant Rat, serpents, and Gorer/Tusklet
User interface
Minor streamlining on the Game Version and Add-ons Manager dialogs.
Text labels now use the hyperlink mouse cursor while hovering links.
Link awareness is now configured on a per-instance basis for labels/scroll labels instead of globally in their definition.
WML Engine
Add a overwrite_specials option for weapon special abilities to allow the effect of the ability to take precedence over the effect of any identical weapon special.
Miscellaneous and Bug Fixes
Fixed several possible crashes in wmllint
Screenshots now default to JPG instead of PNG
Fixed screenshot popup sometimes using the wrong path when trying to open the screenshot after saving
Version 1.15.7
Add-ons server
Added basic command line options.
Add-on validation status responses can now be translated by the client.
Fixed an issue where incremental downloads would always transmit a delta for updating from the very earliest available version of an add-on to the very latest, instead of using the current and target versions specified by the client.
Incremental downloads are no longer allowed to cheat the download counts.
Add-ons client
It is now possible to install previous versions of an add-on if present and not expired on the server.
Campaigns
A Tale of Two Brothers:
S02: Changed the antagonists' motive and dialogue to sound more believable
Secrets of the Ancients:
Revisions to Bone Captain
Scenario 2 uses new Iron Fence terrain, in preparation for potential map revisions.
While the two leaders are separated, only the currently active one learns new zombie types.
Sceptre of Fire:
Scenario 2p5: increased the turn limit by 1 and enhanced victory filter conditions
Scenario 4: fixed a bug that prevented resources from spawning and added some small flavor adjustments
Some revisions/bugfixes to Scenario 9 "Caverns of Flame"
Multiplayer
During allies' turns, use orb colors to show which ones can still move (issue #1424). Also enabled for allied AI sides in singleplayer.
Terrain
New barrier terrain: Iron Fence (^Eqf) - similar layout to the existing wooden fence
Translations
Updated translations: British English, Catalan, Polish, Portuguese (Brazil)
Units
Decreased Icemonax's advancement XP requirement from 26 to 25 to match other dead-end L0 units.
Portrait and animation graphics for some of the new Wesnoth Fauna
Balancing:
Dune Rider xp changed from 42 to 47.
Sunderer line defense on hills changed from 60% to 50%.
Scorcher gold cost changed from 23 to 25.
Dragoon gold cost changed from 27 to 28.
Elvish Rider gold cost changed from 32 to 28.
User interface
Added the installable/upgradable version selection to the add-ons manager via a dropdown list
Fixed formatting of hyperlinks when the same URL appears more than once in a block of text
Miscellaneous and Bug Fixes
Fixed a rare issue on Windows that could result in wesnoth.exe sticking around waiting for console input after encountering an error despite not being launched with the --wconsole option.
Fixed a potential crash when drawing many images on the story screens.
Fixed the schema's list of attributes supported by IntroWML.
Fixed and renamed IntroWML's [image]resize_with_background=yes to keep images proportional to the background.
Fixed precise log timestamps missing a space between the timestamp and the log severity label.
Improve the in-game help's topic about orbs, add crowns and ellipses.
Removed documentation for network proxy-related command line options previously removed in version 1.13.1 along with libana.
Version 1.15.6
Add-ons client
Implemented support for incremental add-on downloads and uploads (issue #5046, PR #5038).
Add-ons server
The server configuration no longer contains the add-ons list/metadata (PR #5038):
Metadata is now stored in individual data/<addon_name>/addon.cfg files (PR #5038).
Full add-on packs are now stored as data/<addon_name>/full_pack_<version_md5>.gz files instead of data/<addon_name>.
Hash indexes of full add-on packs are stored as data/<addon_name>/full_pack_<version_md5>.hash.gz.
Implemented support for incremental add-on downloads and uploads (issue #5046, PR #5038):
Incremental update packs are stored as data/<addon_name>/<version_from_to_md5>.gzfiles.
Incremental update packs are allowed to be sent by clients in [upload] and may be asked from the server in [request_campaign].
The server can generate an incremental update pack while servicing [upload] if the client doesn't send one (e.g. old clients).
Previous versions of add-ons are stored on the server for a limited amount of time alongside update packs for older versions (30 days by default) (PR #5038).
Language and i18n
Updated translations: British English, Czech, French, Japanese, Polish,
Portuguese (Brazil)
The font-handling now checks which glyphs are in each font, instead of using a list hardcoded in WML.
A bug in the removed code treated the first font containing U+4E00 as having the whole CJK Unified Ideographs block.
Fixes a bug where many Chinese characters were invisible if DroidSansJapanese was loaded before DroidSansFallbackFull (issue #5194).
Changing the language immediately updates the order of the fonts, instead of waiting for the next restart (issue #5194).
Lua API
Implement new GUI2 widget userdata for working with custom dialogs.
Renamed wesnoth.show_dialog to gui.show_dialog. The preshow and postshow now take a single parameter - a widget userdata.
All other dialog functions (such as wesnoth.get_dialog_value and wesnoth.set_dialog_value) are now deprecated.
Multiplayer
Delay Advancements modification:
The Delay Advancements modification allows changing how advancements are handled. With this enabled, units that previously would have advanced on another player's turn will instead not advance until it is again their side's turn. The benefit of this is that units will also not pick an advancement at random if they have multiple.
Packaging
When building wesnothd with database support enabled, Boost 1.66 is now the minimum required version.
Terrain
New wall variation: Overgrown stone walls ('Xof')
Units
Added Tusker line - Gorer and Tusklet (by TSI 2009)
Revised Falcon and Elder Falcon sprites
New units:
Swamp Lizard (crocodile)
Cave Bear
Icemonax
Giant Stoat
Fire Ant
Balancing:
Cost of Giant Rat changed from 6 to 5.
Cost of Giant Scorpling changed from 13 to 12.
Cost of Fire Guardian changed from 19 to 11.
Cost of Giant Mudcrawler changed from 16 to 11.
Cost of Giant Scorpion changed from 22 to 16.
Cost of Wolf changed from 17 to 15.
Cost of Chocobone changed from 38 to 28.
Cost of Cuttle Fish changed from 40 to 36.
Cost of Great Wolf changed from 30 to 21.
Cost of Gryphon changed from 40 to 29.
Cost of Water Serpent changed from 26 to 23.
Cost of Direwolf changed from 36 to 33.
Cost of Sea Serpent changed from 40 to 55.
Cost of Wild Wyvern changed from 54 to 75.
Cost of Wyvern Rider changed from 80 to 102.
WML Engine
Fix a bug with [set_variables][join] failing on boolean (yes/no) values
[harm_unit] now calculates liminal damage by using the 1.15 algorithm
Version 1.15.5
Add-ons client
Fix: when using the "system default language", add-ons' titles and descriptions were always shown in English (PR #5109)
Campaigns
Northern Rebirth:
Removed the campaign's evil branch. Not a player-visible change, as there was no way to access this branch.
Secrets of the Ancients:
Use new gui2 widgets API in the custom zombie-recruitment dialog
Under the Burning Suns:
Quenoth Elves now appear as a separate group in the help pages
Fixed ghost spawning code in S02 (this means more ghosts will spawn)
World Conquest:
Clean-up of spelling, grammar and other issues in translatable strings.
use new lua gui2 api in WC mapgen settings
Mass convert of *^Uf terrain for SP.
Updates DW, DM, DiD, HttT, LoW, SotA, THoT and TSG
Language and i18n
Updated translations: British English, Catalan, Chinese (Simplified), Esperanto,
French, Hungarian, Polish, Portuguese (Brazil), Russian, Spanish, Turkish
Multiplayer
A New Land:
Peasants can harvest mushrooms (a bug introduced in 1.15.4 was noticed and fixed in PR #5137)
Terrain
Made single-hex mushrooms smaller (PR #5136)
User interface
Help browser: fix inconsistent behavior for single-clicks opening and closing sections (PR #5110)
Added [race]help_taxonomy=, creating links between the per-race topic pages.
Miscellaneous and bug fixes
Minimum required version of OS X is now OS X 10.11 .
The "loyal" trait is now displayed in the help browser, even though no normal unit has it.
The player can recruit even if their recruit list includes an unknown unit type. This will now show an error dialog and then the recruitment dialog with the known units.
Fix [micro_ai] when called from lua (issue #5134)
Fix [load_resource] not marking an add-on as used for the "ignore global tags set by add-ons that are not used" feature.
Packaging
macOS package distributed through SourceForge is now a UDIF lzfse-compressed image. The image size may be slightly larger but opening and copying from this image is much faster.
Another fix if the credits (including all add-ons) are extremely long. There are still known issues with this.
Version 1.15.4
Add-ons client
Ensure the client doesn't re-download dependencies that have just been updated during an Update All
run by re-reading add-on versions after each update batch (issue #3273).
Added new syntax and UI support for providing localized add-on titles and descriptions (PR #4984).
Campaigns
Delfador's Memoirs:
S12: Fix a few case where dialog and events sound odd or fire out of order (issue #4614).
Liberty:
Revised dialogue and added miscellaneous new events to all scenarios.
Northern Rebirth:
S5a: Fixed a bug where enemies could trigger a hidden door.
Sceptre of Fire:
Fixed a bug where the new rune shop was not working as intended; added an event to tell players of the existance of the runeshop (S3).
Tweaks to dialogue and victory conditions (S2p5, S3, S4, S5, epilogue).
S8: Fixed a case where the dragon would suicide into pursuers offscreen.
Under the Burning Suns:
Rebalanced all Quenoth units and all scenarios
Embellished all remaining maps (S1, S2, S6b, S8, S11).
Finished Tauroch Rider line sprites, added riderless Tauroch standalone unit.
World Conquest:
Added to mainline (formerly World Conquest II).
Language and i18n
Updated translations: British English, Chinese (Simplified), Chinese (Traditional),
Czech, Esperanto, French, Hungarian, Italian, Japanese, Polish, Portuguese (Brazil),
Russian, Spanish, Swedish, Turkish.
Removed the l10n-track file, which was a mechanism for marking translated images as out-of-date.
Lua API
New wesnoth.get_max_liminal_bonus function.
New wesnoth.colors table to get information about colors.
Support lua_function in side filters.
add wesnoth.get_resource() function.
Terrain
New ancient/weathered stone floor tile (code Ias).
New ancient stone stone walls variation (code Xoa).
New earthy rockbound cave variation (code Uhe).
Units
New Dunefolk skirmisher branch (Falconer).
Dune Spearmaster shield damage changed from 14 to 13.
Burner line and Armageddon Drake cold resistance changed from -50% to -40%.
Dragonguard HP increased from 59 to 63.
Steelclad HP changed from 55 to 57.
Poacher HP changed from 32 to 33.
Heavy Infantryman cold resistance changed from -10% to 0.
Troll Rocklobber HP changed from 49 to 51.
Merman Hunter HP changed from 30 to 33.
Wose cold resistance changed from 10% to 0.
Shaman ranged damage changed from 3 to 4.
Bone Shooter HP increased from 40 to 42.
Banebow HP increased from 50 to 55.
Ghost cost changed from 20 to 19.
User interface
Improve appearance of the Logging Options dialog and add a search box.
WML engine
[advancefrom] is now deprecated, use [modify_unit_type] instead.
The .cfg files generated by the scenario editor can now be loaded with
[scenario]map_file=, previously they had to be loaded via preprocessor include.
The student, attacker and defender variables can now be used in
formulas in abilities.
Units no longer get healed when recalled (they still get healed
at the end of the scenario).
The engine now ignores global tags set by add-ons that are not used in
the current game.
Miscellaneous and bug fixes
Added missing side controllers to two Micro AI scenarios (fixes #4890).
Fix broken callbacks for treeviews in wesnoth.show_dialog
Fix floating label duration being measured in 'frames', it is now
measured in milliseconds.
Added unit type variation selection to the debug mode Create Unit dialog (PR #4986).
Removed the Python2 versions of tools with Python3 versions.
Removed the rmtrans plugin for Gimp, as it was Python2 and seems to be unused.
{HEAL_UNIT} does no longer set the variable heal_amount. If needed, [heal_unit] can be used instead.
Added new modify_unit tags to schema validation.
Fix rare oos errors caused by move_unit_fake
Fix crash on invalid music files.
Fix crash when reading .mo files with non-ascii characters on windows.
Fix crash in the MP Create Game dialog when a map has an unknown tile.
Improve the in-game help's topic about dealing with losses.
Add a comment at the start of any .cfg file created by the scenario editor,
warning against manually editing such files.
Version 1.15.3
AI
Merge Experimental AI candidate actions (CAs) into default AI
CAs merged: retreat injured, spread poison, place healers, move to any enemy
CAs not merged: grab villages and village hunt, as the respective default AI CAs
are better as general purpose CAs. Also not merged was castle switch, which can
cause undesired behavior in singleplayer scenarios, and recruit rushers, which is too different
from default recruiting (would change balance too much) and because it can currently not deal
with multiple leaders and all the recruitment aspects. An option to use this alternative
recruiting will be provided in the future.
Previous default AI CA removed: retreat phase
The previous default CA is still available by using [ai]ai_algorithm=ai_default_rca_1_14 or
by selecting "1.14 Default AI" in the multiplayer computer player selection menu
The Experimental AI is now only available in debug mode (in MP) as it is mostly identical to the new default AI
Many improvement were made to the new default CAs, to make them work correctly and consistently
in general settings, such a taken AI aspects (aggression, attacks, [avoid], caution, ...) and unit guardian
status into account, improved attack ratings and multi-leader functionality, and bug fixes
Bottleneck Defense Micro AI:
New optional parameter [filter]
Fix bug of units not participating if too far in front of the bottleneck
Healer Support Micro AI: take unit guardian status and passive_leader aspect into account
Forest Animals Micro AI: rabbit holes on the map border are now automatically excluded
New ai_helper functionality: path finding, next_hop and get_attackable_enemies taking avoid into
account; next_hop with pre-calculated path and fanning out; new options to get_cheapest_recruit_cost
Add [filter_own] optional tag to all default and Experimental AI candidate actions
Allow comma-separated list of ids in addition to 'yes/no' for AI aspects leader_ignores_keep,
passive_leader and passive_leader_shares_keep
Fix [leader_goal] for sides with multiple leaders
Change E_NOT_REACHED_DESTINATION from error to warning
The advancement aspect can now also use amlas.
Campaigns
An Orcish Incursion:
Moved to addons server
Descent into Darkness:
Add new portrait for Dela Keshar
Remove dark adepts from recruit list
Add special units and AMLA paths
Revised dialogue
Increased map interactability
S3: reworked scenario
S5: adjust enemy recruits and gold
Legend of Wesmere:
S3: fix scenario-breaking bug introduced in 1.15.2
Liberty
Revise gameplay in all scenarios and redraw all maps
Merge S6 and S7 into a new scenario
Sceptre of Fire:
General prose/dialogue revision
New scenario (now the third)
Various map and scenario updates
Make use of rails terrain
Dwarves can purchase runes (temporary status boosts)
Secrets of the Ancients:
Prevent hero death from triggering new corpse recruitable dialog (issue #4503)
Fix last breath dialog for bats firing multiple times in the campaign
Fix bug of regular WC appearing in recruit list in S05 Blackwater
Fix special plague attack making rats when spiders are called for
Fix missing portraits for Shynal
Tutorial:
Redraw S2 and reduce difficulty
Wings of Victory has been removed.
Editor
Language and i18n
Updated translations: Ancient Greek, Chinese (Traditional), Czech, Dutch,
Esperanto, Finnish, French, Italian, Korean, Portuguese,
Portuguese (Brazil), Russian, Spanish, Turkish
Fix Rename Unit dialog having untranslated text (issue #4569).
Use /translations instead of /translations to find core
translation catalogues on Windows.
Terrains
Add Stone Walls variation Catacombs (Xot) including some overlays
New dwarf castle variations: Non-cave (Cf), ruined (Cfr) and snow (Cfa)
New elf castle variation: snow (Cva)
Fixes and touchups to mushroom terrains Tb and Tf
Units
Add a ranged attack and the cures ability to Elvish Lady
Add mushroom defense cap to mounted and some flying units
Decreased hitpoints of Dwarvish Lord from 79 to 74
Decreased hitpoints of Dwarvish Steelclad from 59 to 55
Increased hitpoints of Dwarvish Thunderguard from 44 to 47
Increased hitpoints of Dwarvish Pathfinder from 42 to 45
Increased melee damage of Dwarvish Stalwart from 7-3 to 8-3
Increased melee damage of Dwarvish Sentinel from 9-3 to 10-3
Dunefolk: rebalancing and renaming of various units
Dunefolk: some graphics additions and updates
Orcs: revise some unit descriptions
Elves: revise all unit descriptions
Cost of Drake Warrior changed from 30 to 32
Cost of Drake Arbiter changed from 31 to 32
Cost of Drake Trasher changed from 31 to 32
Cost of Drake Flare changed from 35 to 33
Cost of Sky Drake changed from 30 to 28
Cost of Saurian Ambusher changed from 30 to 24
Cost of Saurian Oracle changed from 27 to 28
Cost of Saurian Soothsayer changed from 27 to 25
Cost of Dwarvish Steelclad changed from 32 to 36
Cost of Dwarvish Thunderguard changed from 30 to 27
Cost of Dwarvish Stalwart changed from 32 to 30
Cost of Dwarvish Berserker changed from 33 to 30
Cost of Outlaw changed from 28 to 26
Cost of Trapper changed from 27 to 21
Cost of Gryphon Master changed from 37 to 38
Cost of Swordsman changed from 25 to 29
Cost of Knight changed from 40 to 38
Cost of Lancer changed from 40 to 44
Cost of Dragoon changed from 34 to 27
Cost of Duelist changed from 32 to 29
Cost of Lieutenant changed from 35 to 34
Cost of Merman Warrior changed from 28 to 26
Cost of Ogre changed from 33 to 30
Cost of Goblin Knight changed from 32 to 28
Cost of Goblin Pillager changed from 32 to 28
Cost of Troll changed from 29 to 27
Cost of Troll Rocklobber changed from 29 to 25
Cost of Naga Warrior changed from 27 to 24
Cost of Orcish Crossbowman changed from 26 to 21
Cost of Orcish Slayer changed from 33 to 26
Cost of Elvish Hero changed from 30 to 26
Cost of Elvish Captain changed from 32 to 28
Cost of Elvish Marksman changed from 37 to 31
Cost of Elvish Ranger changed from 38 to 31
Cost of Elvish Rider changed from 31 to 32
Cost of Elvish Druid changed from 34 to 27
Cost of Elvish Sorceress changed from 34 to 32
Cost of Elder Wose changed from 31 to 27
Cost of Revenant changed from 28 to 31
Cost of Deathblade changed from 28 to 34
Cost of Dark Sorcerer changed from 32 to 33
Cost of Blood Bat changed from 21 to 22
Cost of Red Mage changed from 40 to 38
Cost of White Mage changed from 40 to 38
MP of Merman Spearman changed from 6 to 7
HP of Merman Spearman changed from 40 to 43
MP of Merman Javelineer increased from 6 to 7
HP of Merman Javelineer changed from 55 to 58
User interface
Moved tutorial to campaigns menu
Moved language button to icon
"Core" type add-ons are now only accessible via hotkey.
Removed "Classic" in-game theme.
Textboxes now have a hover effect as well as an I-beam cursor.
Added the Private Replay checkbox to the Multiplayer Create Game screen. This separates
whether observers are allowed from whether the replay will be publicly available.
Reworked styling of progress bars and the network transfer progress dialog.
Moved the MP server list from a separate dialog to the Connect to Server dialog proper
and added functionality for managing player-defined servers (issue #4564).
The load-game dialog can now see the directories used by Wesnoth 1.14, 1.12, etc.
The search box in the Campaigns menu now takes campaign abbreviations and descriptions
into account.
The recruit and recall dialogs have a tooltip over the level number to show what the unit can advance to (issue #4135)
Lua API
unit:transform() now takes an optional variation parameter
Support side.variables for access to side variables, similar to unit.variables
New read-write keys in unit userdata: ellipse, halo, description, renamable
New functions for working with WML: wml.merge, wml.diff, wml.patch, wml.find_child, wml.attribute_count, wml.equal, wml.valid, wml.interpolate
wesnoth.wml_matches_filter renamed to wml.matches_filter (the old name still works)
Moved to units module: wesnoth.create_unit, wesnoth.get_unit, wesnoth.get_units, wesnoth.get_recall_units
The wesnoth.units module now acts like a metatable for unit userdata.
New wesnoth.units.find gets units on either the map or any side's recall list.
Moved to interface module: wesnoth.scroll, wesnoth.zoom, wesnoth.get_mouseover_tile
wesnoth.interface.get_displayed_unit aliased to wesnoth.unit.get_hovered
unit portrait and recall_filter are now writable
Moved to new sides module: wesnoth.get_sides, wesnoth.is_enemy, wesnoth.match_side, wesnoth.get_starting_location, wesnoth.set_side_id, all AI-related functions
Functions that previously only took a side index as the first parameter now also accept the side proxy userdata.
The wesnoth.sides module acts like a metatable for the side userdata.
Added __tostring functions to a number of Wesnoth userdata types.
Unit movetype functions renamed (defense_on, movement_on, vision_on, jamming_on, resistance_against).
The defense_on and resistance_against functions return the actual values, rather than the raw WML values.
New function wesnoth.units.chance_to_be_hit is equivalent to deprecated wesonth.units.defense but conveys the meaning better.
Unit movetype functions (excluding resistance) can take a location instead of a terrain code, for convenience
Side proxy now has starting_location member
Fix ai.aspects.grouping not returning the aspect's value
New stringx module exposes various split/join functions used by the engine, as well as trim
Wesnoth's format functions moved to stringx (format_conjunct_list, format_disjunct_list, vformat)
location_set module extended to support set operators (& | ~ -) as well as a few additional functions
new function wesnoth.create_side
WFL engine
New functions resistance_on(), vision_cost(), jamming_cost() that work in gameplay contexts (eg filters)
Unit object now has resistance, defense, movement_cost, vision_cost, jamming_cost, flying
For FormulaAI, the game map object has an alternate access mode - map.gamemap[loc(x,y)]
WML engine
Support upkeep in StandardUnitFilter
[effect]apply_to=variation now supports heal_full
Support [set/clear_variable] inside [modify_unit/side]
Support [variables] in [modify_side], as in [modify_unit]
[filter_weapon] implemented in abilities used as weapons specials to be the same as true weapons specials (implement filter_weapon in [filter_student] instead of [filter_self])
All special weapons can be used in [abilities] now (this was not the case yet for [heal_on_hit], [plague] and [swarm])
[time_area] can now be used without specifying a custom time schedule, this can in particular be used in the scenario editor if one just wants to mark an area to use in as [event]
Packaging
The Wesnoth client now looks for the data/dist file when logging into the multiplayer server.
This file should contain one of the following values based on where the package is for:
Default, Steam, SourceForge, Flatpak, macOS App Store, Linux repository, iOS, Android, BSD repository
Miscellaneous and bug fixes
New build-dependency: Python3 is required to run the WML unit tests (on non-Windows)
80% of WML unit tests now run in a batch using a single instance of Wesnoth (non-Windows only)
Fix --userdata-dir deprecation warning being printed when starting wesnoth without arguments
when -DPREFERENCES_DIR="..." was defined at compile time.
Make wmllint recognize [load_resource] (issue #4538).
Removed map scaling algorithm customization. Nearest-neighbor scaling will now
always be used.
Make wmllint ignore race= keys if they are part of filters inside [unit_type] (issue #4105)
Removed a few asserts from wmllint and postponed a few unit sanity checks to the closing of a [unit_type] tag (issue #4102)
Added tool tmx_trackplacer, a file converter for editing map tracks with Tiled (PR #4464)
Added tool trackviewer, which has the animation-preview functions of trackplacer (PR #4574)
Removed the python2 trackplacer tool (issue #4365)
Made wmlscope recognize and analyze optional macro arguments
Made map_file=Example.map support looking in the [binary_path]'s "maps/" directory (issue #4633)
Make wesnoth_addon_manager not generate packet.dump files any more (issue #4651)
Improved handling of defense cap and {NOTE_DEFENSE_CAP} in wmllint (issue #4379)
Removed the leftover Khalifate multiplayer faction files. (PR #4714)
Version 1.15.2
AI:
Experimental AI:
Fix guardians being used for village actions
Fix poisoners ignoring [avoid] tag
Recruitment: add optional parameter high_level_fraction to make the ExpAI
recruit units of level 2 or higher
Recruitment: adopt optional randomness parameter from the Rush Recruitment Micro AI
Campaigns
Delfador's Memoirs:
S20: Improve leveling of units and give player a note about it (issue #4219)
S21: Better indication that the book has gone missing (issue #4220)
Descent into Darkness:
Use set colors for each faction throughout the campaign
Eastern Invasion:
Updated to use the new mushroom terrains (PR #4335)
Heir to the Throne:
S04: Sea Orc uses now a portrait
Northern Rebirth:
Updated to use the new mushroom terrains
The Rise of Wesnoth:
Updated to use the new mushroom terrains
Under the Burning Suns:
Updated to use the new mushroom terrains (PR #4336)
Wings of Victory:
S01: Make easier on easy and improve flow of enemies
Slight dialog improvements
Editor
Added an editor-only overlay for deprecated terrains (PR #4347)
Re-enabled and updated the editor topics in the help browser (PR #4414)
Language and i18n
New translations: Ancient Greek
Updated translations: British English, Czech, Chinese (Simplified), French,
Italian, Japanese, Korean, Portuguese (Brazil), Russian, Spanish
Set up for translating the Wings of Victory campaign (PR #4265)
Changed the :help command's output to split over multiple lines
Added translatable explanations of :droid, :help and :idle's arguments
Allow carets in translatable strings - 'hint^Tb^Tf' will show 'Tb^Tf' to the user
Removed translations: Old English (ang), Friulian (fur_IT) and Asturian (ast)
Terrains
Added new ^Tf mushroom terrain whose statistics are fungus+base terrain, as suggested by the existing graphics (PR #4299)
Added Tb mushroom base terrain, which can be used alone or as Tb^Tf when a terrain with the fungus-only stats is wanted
User interface
Draw ellipses during draw/sheath animations (issue #1527).
In the combat dialog and elsewhere, clicking the "Profile" button opens
the help on the correct unit variation (e.g., Walking Corpse (Swimmer)) (issue #4142).
The attack dialog now shows the correct name of an inactive weapon special (issue #4352).
Tooltips of sidebar, top bar, and status table now show a side's color's name in words,
for the colorblind (issue #1217).
In the recruit dialog and recall dialog, units that are too expensive to recruit/recall
are grayed out (PR #4362, PR #4444, part of issue #1282).
Hide the "Suppose Dead" key from the hotkeys list (it does nothing since 1.9.12)
Sidebar: In replays with "View: Full Map", show all enemy units in "Damage versus:" tooltip
Multiplayer Create Game screen now shows map previews for scenarios that use map_file= (PR #4407).
Remember zoom level between play sessions (issue #1518) and add zoom options to context menu (issue #1213)
Sidebar shows number of attacks left, for units that can attack multiple times per turn (issue #2667)
Lua API
Accessing wesnoth.theme_items.unit_status no longer prevents the unit
status (poisoned/slowed/etc) from being shown in the sidebar (issue #4079).
side.flag is now writable. wesnoth.set_side_id remains supported (issue #4396).
Units now have a __tostring method that shows their id and location.
WML engine
Ranges can now have upper limit "infinity" instead of using a big number like "99" or "99999"
Print a deprecation warning for [terrain_type]'s partly-implemented vision_alias
Special notes for units now use a new system, with a [special_note]note= tag:
This tag is supported both in [unit] and in [unit_type]. If used in [unit], it will override the type's notes.
Standard special notes should now be added with {NOTE_*} instead of {SPECIAL_NOTES_*}.
In [effect]apply_to=profile, [special_note] is now supported to add/remove special notes.
Support for the deprecated "&image.png=text" syntax has been removed in all contexts - use the DescriptionWML attributes instead.
Fix infinite recursion in SUF with [hides] and [filter_vision] (issue #1389).
The {TRAIT_LOYAL} trait now adds the loyal overlay.
The ellipse, overlay & image_mods attributes of units are now reset when a unit advances. This means those
attributes should now by default changed via [effect].
New tag [modify_unit_type] that goes into [campaign]/[era]/[modification] and can change some
unit type properties like advancement and recruit costs.
New debug command :terrain for changing the terrain of the selected hex (PR #4405).
New predefined macros {LEFT_BRACE} and {RIGHT_BRACE} (PR #4432).
Weapon filtering special=* deprecated, replaced by new special_id=* and special_type=* (issue #3915).
Miscellaneous and bug fixes
Fixed :droid's arguments not all being optional (issue #4308).
Ported the expand-terrain-macros, wmlflip, wmlparser, umc-dev/build/update_version,
wiki_grabber, ai_test and unused_functions tools to Python 3
It's now possible to chat with oneself in SP campaigns. Chat is shown in replays (issue #1111).
Removed unused scoutDefault, journeylifter, wescamp_import and wmlvalidator Python tools
Fixed wmlscope not correctly performing expansion of square braces in filenames in some conditions
New help topic outlining common (and less common) reasons for losing a scenario (PR #4217).
Add help text for some debug commands (part of issue #2500).
Improve the terrain code's encapsulation and documentation (PR #4411).
Fix duration=scenario objects expiry for units on the recall list at scenario end.
Fix maps with scenario_generation= being unavailable in the editor.
Passing relative paths to --user-data-dir is deprecated (part of PR #4449). However, on Windows relative paths
that start with .\ are not deprecated.
Removed incomplete joystick support.
Removed option to disable unit and item halos.
Added support to wmlxgettext for double-quote characters in translatable raw strings
Version 1.15.1
Editor
Fix buttons in the editor being inactive
Language and i18n
Updated translations: German, Portuguese (Brazil)
Multiplayer server
Add support for storing game information in wesnoth's mysql database (PR #4204)
When the forum user handler is enabled, the Multiplayer Moderators group is now also used when determining if someone is a moderator (PR #4136)
Units
Fix typo in the Dune Ranger's advancements
Additional animations for the Wose Shaman (PR #4229)
Move Wose Shaman from DM and WoV to core (PR #4226)
Move Wose Sapling from TRoW to core (PR #4226)
WML engine
Support for the deprecated "&image.png=text" syntax for [option]message= has been removed - use the DescriptionWML attributes instead.
Miscellaneous and bug fixes
use the 1.15 add-ons server
Fix a crash if the credits (including all add-ons) are very long (PR #4207)
Version 1.15.0
AI
Micro AIs
Add [avoid] tag functionality to Multipack Wolves, Wolves, Swarm and Goto Micro AIs
Support named locations for [micro_ai] tag location keys
Goto and Assassin: fix MAIs not working with tunnels when using custom path finding cost functions
Experimental AI
Deprecate EXPERIMENTAL_AI macro: use ai_algorithm=experimental_ai in the [ai] tag instead
Convert to using external candidate actions
Significantly speed up recruiting evaluation
Recruiting: add optional 'enemy_types' parameter
Adjustments to candidate action scores
Variety of internal evaluation improvements
All Lua AIs
Fix bug crashing some AIs when units with chance-to-hit specials without id are on map
(same as what had already been done for the Fast Micro AI)
Do not use hard-coded values for modifiable parameters in wesnoth.game_config
Fix experience for killing level 0 units
Distinguish between healing locations and villages
Significant amount of internal cleanup, including some efficiency improvements
ai_helper library
New functions get_healing_locations(), get_reachmap(), get_avoid_map() and get_locations_no_borders()
The Dunefolk faction was overhauled to improve balance against the six Default factions
WML engine
Support formula= key in [variable] ConditionalWML
Support to_location in [move_unit], taking a special location ID
Support dir in [move_unit] to perform relative movements
Support location_id in [teleport], [recall], [unstore_unit] for the target location
Support a comma-separated list for location_id key in SLF
Support [filter_weapon] in leadership and resistance abilities,
which activates the ability only when the affected unit is using
a matching weapon.
Support [filter_second_weapon] in leadership and resistance abilities,
which activates the ability only when the affected unit's opponent
is using a matching weapon.
Support ['specials'] in abilities except plagues, heal_on_hit and swarm , which emulate the weapon
specials with [affect_adjacent] in option and the possibility to affect all weapons filtered(used with
'Initiative' in httt or 'Formation' in utbs). (don't put filter_weapon in 'filter_self/opponent' like
in true weapons specials).
Support WFL and percentages in [random_placement]num_items=
Support [or] in [filter_wml] and similar places
Support globbing in [filter_wml] via glob_on_* keys
Add trunc as a valid value for [set_variable]round=
Remove support for speaker=id in SUF (but retain in [message])
Support saner units for some formatting options in [message]
Support underline=yes|no in [message]
Support [set_variable]root=cube and root=integer
Support force_scroll in [move_units_fake] (default no)
Support facing= in [role][auto_recall]
Support lists for special and special_active in SWF
Support usage and alignment in SUF
Deprecate [replace_map]map= in favor of map_data=
Add u and v variables in ~ADJUST_ALPHA() and ~CHAN()
Add clear_shroud in [move_unit] to clear shroud as the unit moves
Support male_voice and female_voice in [message]
Support [break], [continue], and [return] in [random_placement]
[remove_sound_source] now accepts a comma-separated ID list
Support [filter_team] in [item] in addition to team_name=
Support an optional EXTRA_WML argument to {REMOVE_LABEL}.
Support [disallow_end_turn]reason=
The {SPECIAL_NOTES_*} macros now start with a newline and a bullet point.
Support [unit]jamming=
Support [movetype]flying= and deprecate [movetype]flies=, for consistency with [unit]flying=
Add [set_menu_item] persistent=yes/no.
[modify_unit] now has a faster lua implementaion for the most common cases.
[unit] moves=-1 no longer removes attacks.
[item] supports a z_order attribute that describes in which order the items are drawn.
New terrain_mask implementation, adds alignment= attibute to terrain_mask.
Miscellaneous and bug fixes
Rest healing now happens on turn 2. (issue #3562)
Normal healing now happens on turn 1 for all sides except the first. (issue #3562)
[change_theme] no longer requires running a separate action to update the
UI afterwards (e.g. [redraw]) and the status panels are updated immediately.
as well.
Re-added the Font Scaling preference.
Enabled wesnothd and campaignd to accept IPv6 connections too
Added support for directly supplying IPv6 address of the server to multiplayer client and addon client. It must be done like this: [ipv6_address] or [ipv6_address]:port
Show ability of a selected unit as active/inactive with respect to mouseover hex. (issue #3912)
macOS: Wesnoth now uses the app sandboxing feature, which means there is a new location for saves. All saves will be migrated during first launch automatically. For info about backwards compatibility see: https://gist.github.com/hrubymar10/eb5afd896f933a46fac344ced940e020
The sidebar, recall dialog, etc now show attack's range (melee/ranged) and
damage type (arcane/blade/cold/...) using icons. (PR #3732, #3740)
Add hit count statistics to the statistics dialog. (PR #4070)
Added FULL option for :droid command. (PR#4147)
Observers must now also enter the password before observing a game that is password protected. (PR#4140)
A message is now displayed when observers share IP addresses. (PR#4138)
Game bans are now also enforced by username. (PR#4139)
Usernames on the host's ignore list are automatically banned. (PR#4143)
Version 1.14.15
Add-ons client
Fix potential crashes when working with installed add-ons that have a corrupted _info.cfg file.
Campaigns
Descent into Darkness:
S11: fix low probability case of enemy being unreachable
S11: recall ghosts if available and ensure the player gets one level 2 ghost.
Eastern Invasion:
S03: fix the initial keep being blocked at the start
Fixed formatting of hyperlinks when the same URL appears more than once in a block of text
Miscellaneous and Bug Fixes
Fixed a rare issue on Windows that could result in wesnoth.exe sticking around waiting for console input after encountering an error despite not being launched with the --wconsole option.
Removed documentation for network proxy-related command line options previously removed in version 1.13.1 along with libana.
Version 1.14.14
Add-ons client
Add-on titles and descriptions translated to the current language are used when available.
The original English title is displayed in the UI and considered for search purposes in addition
to translations.
Add-ons server
Made it possible to provide translations for add-on titles and descriptions at upload
time in the .pbl (PR #4993). Only clients running 1.14.14/1.15.4 or later can read the
translated values.
Language and i18n
Updated translations: British English, Catalan, Chinese (Simplified),
Chinese (Traditional), Czech, Esperanto, French, Hungarian, Italian, Polish,
Portuguese (Brazil), Russian, Spanish, Turkish
Multiplayer
5p - The Wilderlands:
Player 5’s units are sorted when cycling through them with the »n« key.
Map tweaks (changes to some castles & villages, the northern river and embellishments)
User interface
Do not list nameless abilities in the Abilities and Ability Upgrades lists in unit
descriptions in Help (issue #3060).
Fixed disabled buttons using the pressed highlight color.
Miscellaneous and bug fixes
Made wmllint recognize [remove_time_area] in order to avoid spurious warnings about
unit ids.
Files created by the scenario editor include a boilerplate warning about hand-editing them.
Version 1.14.13
Campaigns
The South Guard:
S6b: Fixed enemy units triggering their own ambush events.
Language and i18n
Updated translations: Chinese (Traditional), French, Portuguese (Brazil), Russian
WML engine
Fixed OOS issues caused by select events triggered during events (issue #4946).
Miscellaneous and bug fixes
Fixed a major memory leak in the display code affecting all graphics operations, dating back to
version 1.13.13.
Include graphics settings and the list of installed add-ons in the Game Version dialog's clipboard
report and the command line --report output.
Version 1.14.12
Add-ons client
Ensure the client doesn't re-download dependencies that have just been updated during an Update All
run by re-reading add-on versions after each update batch (issue #3273).
Add-ons server
Don't send restricted attributes at all, rather than sending them as an empty string (issue #4800).
Campaigns
General:
Fixed instances of multiple [avoid] tags being used (PR #4776).
Used more appropriate castle/encampment terrains.
Descent into Darkness:
S7: Correctly call Taylor a general.
S9: Spelling fix.
S11: Reduced boss difficulty and fixed ghost units not being correctly recalled.
Heir to the Throne:
S23: Clarify Bayar's dialogue.
Northern Rebirth:
Fixed enemy naga's triggering an event they shouldn't be triggering (issue #4853).
Son of the Black Eye:
S15: Fix the scenario not ending despite objectives being met in some circumstances (issue #4841).
Under the Burning Suns:
Fixed Sun Shydes dehydrating themselves at night.
Dehydration only affects the player's side.
Language and i18n
Updated translations: British English, Czech, Chinese (Traditional), Dutch, Esperanto,
Finnish, French, Hungarian, Italian, Japanese, Polish, Portuguese, Portuguese (Brazil),
Spanish, Swedish.
Use /translations instead of /translations to find core
translation catalogues on Windows.
Packaging
Fixed an issue when building using scons and --config=force.
Fixed creating the lockfile in scons when using python 3.
Significantly improved the macOS packaging instructions (PR #4781).
Units
Fixed the team color of the berserker idle animation.
Fixed typo in Troll race description.
Fixed the Red Mage using the Mage's idle animation.
User interface
Fixed a crash on certain screen resolutions due to UI element padding not being able to fit.
Fixed a crash when trying to preview an unplayable map (PR #4810; issues #3149, #4395, #4545).
Miscellaneous and bug fixes
Fixed building with the 64-bit Visual Studio projectfiles.
Added missing side controllers to two Micro AI scenarios (fixes #4890)
Experimental AI retreat CA: bug fix for cure-only abilities
Forest Animals Micro AI: excluded rabbit holes on map border
Version 1.14.11
Language and i18n
Updated translations: Czech, German.
Packaging
Fixed data/dist information not being found on many platforms other than Windows (only
with the installer-created shortcut), as well as only the very first word being read instead
of the whole line.
Added support for systemctl reload.
Miscellaneous and bug fixes
Silenced spurious warning about conflicting l10n-track files (issue #4716).
Version 1.14.10
AI
Experimental AI:
Spread poison: bug fix for units ignoring [avoid] tag
Castle switch: bug fix for units-on-keep check
Remove village hunt CA
Add ids for candidate actions
Fix bug crashing some AIs when units with chance-to-hit specials without id are on map
Fast Micro AI: fix re-adding default CAs when deleting the MAI
Bottleneck Defense Micro AI: fix bug of units not participating if too far in front of the bottleneck
Lua AIs: several other minor behind-the-scenes bug fixes
Campaigns
Descent into Darkness:
S1: reduced difficulty
Heir to the Throne:
Modify campaign starting date
Legend of Wesmere:
Fix various date inconsistencies in historical references
Sceptre of Fire:
S1: Fix reference to LoW events
The South Guard:
Change Halidel to be Deoran's great-grandfather
S7b/S8b: reduce enemy gold values and modify dialogue upon allied unit death
Tutorial:
S2: Make the first grunt cross the bridge, otherwise the scenario is too hard
Under the Burning Suns:
Sun Singer and Sun Sylph: modify faerie fire colors
Language and i18n
Updated translations: British English, Chinese (Simplified),
Chinese (Traditional), Czech, Dutch, Esperanto, French, German, Italian,
Korean, Portuguese (Brazil), Russian, Spanish, Turkish
Fix Rename Unit dialog having untranslated text (issue #4569).
Lua API
wesnoth.deprecate_api was fixed to correctly wrap tables with metatables (issue #4079).
Music and sound effects
Removed accidental silence of two seconds after the first track of each scenario
(issue #4459).
Units
Add various new death, standing, and idle animations
User interface
Fixed some severe game rendering issues with SDL 2.0.10 (issue #4237, issue #4245,
issue #4510).
Draw ellipses during draw/sheath animations (issue #1527).
In the combat dialog and elsewhere, clicking the "Profile" button opens
the help on the correct unit variation (e.g., Walking Corpse (Swimmer))
(issue #4142).
Ensure enough space to display turn numbers in the hundreds.
The search box in the Campaigns menu now takes campaign abbreviations and descriptions
into account.
Added the Private Replay checkbox to the Multiplayer Create Game screen. This separates
whether observers are allowed from whether the replay will be publicly available.
In the recruit dialog and recall dialog, units that are too expensive to recruit/recall
are grayed out (PR #4362, PR #4444, part of issue #1282).
Reworked styling of progress bars and the network transfer progress dialog.
Removed "Classic" in-game theme.
Textboxes now have a hover effect as well as an I-beam cursor.
Packaging
The Wesnoth client now looks for the data/dist file when logging into the multiplayer server.
This file should contain one of the following values based on what distribution channel the package is for:
Default, Steam, SourceForge, Flatpak, macOS App Store, Linux repository, iOS, Android, BSD repository
Miscellaneous and bug fixes
New build-dependency: Python3 is required to run the WML unit tests (on non-Windows)
80% of WML unit tests now run in a batch using a single instance of Wesnoth (non-Windows only)
New help topic outlining common (and less common) reasons for losing a scenario (PR #4217).
Add help text for some debug commands (part of issue #2500).
Make wmllint recognize [load_resource] (issue #4538).
Make wesnoth_addon_manager not generate packet.dump files any more (issue #4651)
Version 1.14.9
AI:
Fixed a rare crash in attack prediction (issue #4068)
Experimental AI: fixed guardians being used for village actions
Campaigns
A Tale of Two Brothers:
S3: modify castle illumination tip on easy mode
Dead Water:
S3: modify starting dialogue
Descent into Darkness:
Update campaign description
Update maps for S1 and S6
S4: reduce difficulty on easy and normal modes
S11: reduce difficulty just after Malin turns into lich
Eastern Invasion:
S9: add dialogue on victory
Heir to the Throne:
Remove 'Princess' as a direct address
S15, S23: Add explicit hints on EASY. (PR #4329)
S15: Improve one branch of the victory dialog. (PR #4334)
Legend of Wesmere:
S23: Landar's normal death dialogue now (properly) not used
Northern Rebirth:
Remove 'Princess' as a direct address
Sceptre of Fire:
S5: tell player that gryphon riders can now be recruited
S9: objectives changed to be more accurate upon moving to the volcano
Secrets of the Ancients:
Fixed number of scenarios in campaign listing
Son of the Black Eye:
S10: add dialogue on victory
The Rise of Wesnoth:
Tweaked dialogue in various scenarios
Fixed number of scenarios in campaign listing
S17a: prevent time over defeat if player chooses to defeat remaining saurians
The South Guard:
Update campaign description
Highlight narrator and gameplay explanations with colors
S1: create Sir Gerrick if player skips scenario with debug
S4: revise end of scenario dialogue
S5: add narrator warning when siding with bandits and reduce difficulty
S6b: create Urza Afalas if player skips S5 with debug
S6b: kill elves on side 1 if player got to this scenario with debug
S8b: fixed bug with shifted ToD schedules near campfires
Under the Burning Suns:
Various bugfixes (objectives, allied vision, unit spawns, event firing)
Updated various maps
Add additional animations to cutscenes and events
S2: add dehydration explanation to objectives
Graphics
Own portraits for higher level bats
New Water Serpent and Cuttlefish portraits
New Wolf, Great Wolf and Direwolf portraits
Additional wolf/dog portrait for custom units
Separate Mudcrawler portrait
New Walking Corpse portrait for mounted variation
Language and i18n
Updated translations: British English, Chinese (Traditional), Czech, Dutch,
French, German, Italian, Japanese, Portuguese (Brazil), Russian, Spanish,
Turkish, Ukrainian
Changed the :help command's output to split over multiple lines
Added translatable explanations of :droid, :help and :idle's arguments
Multiplayer
A New Land:
Help menu can be accessed in any turn and doesn't pause the game
Bottleneck in the spider's caves removed
Swapped positions of Gryphon and Drake
Guards can't be tricked off position, leaders won't destroy buildings
Guards and Spiders are loyal – AI income has been adjusted accordingly
AI income increases gradually in lategame (very slowly)
The Wilderlands:
Fixed default village_gold being too high, disadvantaging player 5
Packaging
Added HighContrast icon variant
WML engine
Fixed [music] ms_after= affecting the previous track instead of the intended one
Miscellaneous and bug fixes
Update various references of mermen to merfolk or mer
Adjust several maps to use different castle graphics
OpenMP support has been removed
Clarify descriptions of income and upkeep in the help and in tooltips. (PR #4337)
Version 1.14.8
Skipped due to need to reupload a broken 1.14.7 macOS App Store package as 1.14.8
Version 1.14.7
Campaigns
A Tale of Two Brothers:
S3: Changed castle to permanent chaotic ToD and rebalanced scenario accordingly
S4: Added dialogue between Baran and Tairach when they engage in combat
Dead Water:
S3: Added event to make Storm Trident more obvious
Descent into Darkness:
Complete revision of all dialogue and story text
Revised and rebalanced gameplay in all scenarios
S3 and S11: New scenarios completely rewritten from scratch
Eastern Invasion:
S1: Removed early finish bonus for fleeing
S2: Modified Dacyn's dialogue upon undead arrival
S7a: Require Dacyn to cross the river
S9: add snow to map
S10: show objectives after defeating enemy leaders
S11: show objectives after finding gold and releasing prisoners
Legend of Wesmere:
Disabled side shuffling in MP (checking the box does nothing)
Fixed missing persistent data at the end of chapter 3
Rebalanced gold values in all scenarios
S3: remove shroud from enemy sides upon Kalenz's arrival
S4: (MP only) free Cleodil at scenario start
Northern Rebirth:
Eryssa now must survive if she joins the player
Father Morvin and Sister Thera will now respawn at Tallin's location if they die to prevent illogical gameplay
Gold in S10-13 is adjusted if Krash is dead
S1: Spawn 2 Troll Whelps instead of 4 and a normal Troll
S4: Have Hamel describe Ghouls if Camerin is dead
S5: Add gates to map instead of images and overlays
S8: add text and updated objectives when rescuing Eryssa
S12a: Update objectives to make it clear that gold is not received if Sisal dies
The Rise of Wesnoth:
Fixed various typos
S17c: Modified Burin's description of trolls
The South Guard:
Fixed various typos
Tutorial:
Remove swamp from map for part 2
Warn player about water when stepping on any shallow water hex
Change quintain to level 0
Allow Konrad and Li'sar to level up and add corresponding dialogue for part 2
Under the Burning Suns:
Added embellishments to various maps
Language and i18n
Updated translations: British English, Chinese (Traditional), Dutch,
French, Italian, Japanese, Lithuanian, Spanish.
Multiplayer
Dark Forecast: AI units are "discovered" (added to the help if not already known)
Dark Forecast: fixed bug where additional boss spawns would not occur after the initial wave
Multiplayer server
Forum user handler ban durations are now reported back to banned players.
Units
Updated descriptions for Goblin Knight and Wolf Rider
Add new descriptions for Quenoth faction
User interface
Add jamming to the vision tooltip in the sidebar. (PR #3327)
Fix undoing a recall not un-drawing parts of the sprite that go beyond the unit's hex (issue #3325)
Fix crash when the recruit filter matched nothing. (PR #3969)
"Show Enemy Moves" now highlights enemy units that can reach the highlighted hex. (PR #3961)
The time of day graphics for midday and midnight have been updated to match the rest of the
summer/winter time of day schedules. (issue #2677)
Miscellaneous and bug fixes
Fix auxiliary attack end event handlers defined by FORCE_CHANCE_TO_HIT breaking if one or more of the
affected units are removed by another attack end event handler (issue #3982).
The statistics dialog no longer forgets to reset stats when using "Reset Replay" ("Stop") in replay
mode or "Back to turn" in networked MP games (issue #2852).
Version 1.14.6
AI
Fixed crash when the AI simulates a fight between two units which can slow but aren't yet slowed, then
simulates another fight for one of them in Monte Carlo mode (issue #3650).
Experimental AI recruiting: fixed AI crash for unit type with unknown race
Support for modifying the available AIs using cores:
New parameter default_ai_algorithm for setting the default AI
New parameter mp_rank for setting the order in which AIs appear in the MP computer player selection menu
New option "Keep saved AI" when reloading games from the MP Create Game screen. Choosing this option
prevents overwriting of the saved AI by the default AI. (issue #3791)
Forest Animals Micro AI: fix AI crash when using custom rabbit hole image
Fix Lua AIs using the ai.stopunit_*() functions potentially creating infinite candidate action loops
Campaigns
Dead Water:
S12: Slightly rebalanced enemy reinforcements and ai gold
Descent Into Darkness:
Allow converting L3 necromancers to liches from S12 onwards (issue #3165).
Added an alternative method of completing the campaign (issue #3167).
S8, S9 (A Small Favor II & III): Clarify objectives. (PR #3711)
S8 (A Small Favor II): Fixed units created via the plague ability not available in S9. (PR #3711)
Sceptre of Fire:
S1&2: increased difficulty
S6: additional guards for the elves
Secrets of the Ancients:
S01 Slipping Away: It is now obvious that the wild animals cannot cross the fences.
S02 Dark Business: Simplify scenario by removing the temporary invisible starting keep.
S05 Blackwater: Additional dialog from Ardonna at the start.
S11 Battleground: Ghosts are now able to be recruited after the scenario is complete.
S15 Mountain Pass: Bird bones moves so bird is easier to keep alive when discovered.
S21 Against the World: Leader of the elves is now same elf from S12.
S21 Against the World: Adjustment so player doesn't have to chase down some leaders at the end.
Proper animation for finding the bird bones.
Newly made liches will now receive a move point upon transformation if they weren't recalled.
this turn and haven't moved yet.
The Hammer of Thursagan
S12 'The Underlevels': redesigned with completely new map and scenario
Northern Rebirth:
Fix loyal units obtained in S7 costing upkeep (introduced in 1.14.5)
S13: Improvement to the AIs
The Rise of Wesnoth:
S15: victory text is not used upon hero death
S17d: enemy units are killed upon victory except for bats
S22: cuttlefish now have the loyal icon
The South Guard:
Revised scenario and story dialogue.
Reworked and rebalanced all scenario and map designs.
Removed S6a 'Tidings Good and Ill'.
Tutorial:
S2: Wolf riders are not initially recruited, to not hinder the player
from reaching the island in time
Language and i18n
Updated translations: British English, Chinese (Simplified),
Chinese (Traditional), Czech, French, German, Italian, Japanese,
Lithuanian, Russian, Scottish Gaelic, Slovak, Spanish, Ukrainian.
Lua API
Fix wesnoth.set_dialog_callback calling the function immediately when used in the previous callback. (issue #3794)
Fix wesnoth.set_dialog_value not triggering re-layout. (issue #3572)
wml.tostring() now outputs a string that can be parsed back to WML without loss of data.
Miscellaneous and bug fixes
Fix crash with custom themes on desktop PCs. (issue #3599)
Add --campaign-skip-story command line switch for skipping directly to turn 1. (issue #3472)
Remove --data option, --data-path has the same functionality.
Fix documentation of --render-image command line switch. (issue #3568)
Update manpage with options previously only documented by wesnoth --help.
Fix wrong ordering for BW / BF years, for example in Play a Campaign when sorted by date. (issue #3187)
GUI.pyw can now terminate a running maintenance script
Fix SDL_DestroyRenderer assertion failure under XMonad. (part of issue #3716)
Fix map item names not being translated in the scenario editor.
Usernames specified in the MP UI and command line are now stripped of leading and trailing whitespace, including newlines.
Show ability of a selected unit as active/inactive with respect to mouseover hex. (issue #3912)
macOS: Wesnoth now uses the app sandboxing feature, which means there is a new location for saves. All saves will be migrated during first launch automatically. For info about backwards compatibility see: https://gist.github.com/hrubymar10/eb5afd896f933a46fac344ced940e020
Many units lacking animations now have at least a defense animations
Multiplayer server
Fix stale temporary bans continuing to have an effect on players until cleared by
phpBB on the next ban/unban operation.
Packaging
new scons option, intended to be used when building releases inside a git repo: autorevision=False
Fix build with Boost 1.69. (issue #3646)
Fix build with Pango 1.43. (issue #3840)
User interface
Fix regression: Game Load screen would not select 1.12 savegames. (issue #3561)
Fix regression: the in-game "Observers" icon (an eye) was covered by the minimap. (issue #3543)
Increase step size when clicking sliders in the MP Create Game dialog. (issue #3552)
Fix overlapping top bar elements with small screen resolutions. (issue #3714)
Don't scroll to an invisible unit that recruits another invisible unit. (issue #3559)
When a recruited unit is fogged, scroll to the recruiting unit and play recruit
animation. (issue #3577)
Fix line breaks in first statistics line in unit type pages in the help. (issue #3256)
Don't scroll to an enemy unit that teleports to or from an invisible hex. (PR #3578)
Don't show in the sidebar the time of day schedule of a shrouded hex. (PR #3638)
Game Load screen gracefully handles savefiles that can't be parsed. (issue #3652)
The sidebar now shows alignment and damages as they would be on the hex under
the mouse, rather than at the unit's current location. (PR #3642)
When a unit has multiple statuses (slowed/poisoned/invisible/etc), the
sidebar shows all of them, not just the first. (issue #3197)
Fixed being able to dismiss a game lobby by pressing Esc.
Fixed multiple severe issues in the classic theme.
The "Attack Enemy" dialog now shows inactive weapon specials in gray. (PR #3686)
Taking screenshots in title screen is possible again (issue #3235)
The "Recruit Unit" dialog is searchable by unit type name. (PR #3787)
Add text filter to hotkeys preferences. (PR #3759)
Hide leader in status table if it's unfogged but invisible. (PR #3854)
macOS: Dark GUI on macOS Mojave and later when dark appearance is enabled.
Version 1.14.5
AI
Fixed crash in AI code when a side has multiple leaders.
Fix AI ignoring teleport locations when moving leader to leader goals.
Fast Micro AI: Fix bug crashing the AI when units with chance-to-hit
specials without id are on map.
Campaigns
Heir to the Throne:
S6: Allow canceling an attack when a move+attack spawns enemy units (issue #3459).
S6: Change the trigger for spawning undead reinforcements (issue #3459).
S17: Add dialog explaining the lava game mechanic and an easter egg (issue #3473).
Liberty:
S3: Add story and war drums music.
Northern Rebirth:
S12: empty sides are hidden.
S13: allied leaders whose death causes defeat won't leave their keep and
the lich brothers and Krash got more gold.
Sceptre of Fire:
S4: a cave entrance has been added.
S5: Gryphon Riders are now available starting form S5 (formerly S3).
S7: it's now impossible to kill all pursuers.
Secrets of the Ancients:
Fix dialog said by wrong unit & revert previous fix (issue #3294).
The Hammer of Thursagan:
S10: Fix objectives requiring too much of the player.
The South Guard:
S2: the case where Deoran is not sent to the Citadel is handled better.
S2: enemy units will no longer neutralize villages instead of capturing or burning them.
This also means certain units will no longer be hidden in the Game Stats list.
S4: bodyguards are never spawned next to other units, and always in forest.
S5: zombies have now one castle with two leaders.
S6a: mermen leave after this scenario and will no longer be available.
S7a & S8a: a certain hero may now die.
Tutorial:
Show an undo reminder if one is out of moves, but can't end the turn yet.
Added more information to the Status Table prompt about how to access it (issue #2883).
Under the Burning Suns:
New graphics for Eloh.
Multiplayer
A New Land: Fixed village gold being 1 instead of 2.
Fixed Random Start Time not working (issue #3515).
Fixed a possible crash when leaving a game as an observer (issue #3017).
Fixed Start Game locked when other players abort the faction/leader selection
dialog (issue #3452).
Fixed Skip Replay when joining MP campaigns.
Fixed OOS errors when undoing after ally chat.
Fixed game freezing upon droiding with Delayed Shroud Updates (issue #3453).
Fixed require_scenario and require_era attributes.
Language and i18n
Updated translations: British English, Chinese (Traditional), Czech, French,
German, Hungarian, Italian, Japanese, Scottish Gaelic, Ukrainian.
User Interface
On laptop computers we now show how much battery you have left.
MacOS: Fixed moving the mouse with a touchpad also scrolling GUI dialogs.
MacOS: Add build number to OS version report.
Fix layout of Preferences window with some localizations (such as Czech).
Load Game now shows the chosen difficulty with the same name that you originally selected.
Load Game now shows the modifications enabled in the selected savegame (issue #3495).
Force leader sprites larger than 72x72 to be downscaled in Load Game (issue #3474).
Add left padding to dialog messages shown with a portrait on the right (issue #1938).
Addon Manager uses clearer terms for sort order.
Fix reversed sort order by unit level in Unit List and Recall Unit.
Fixed crash in Recall Unit when no units match the filter (issue #3475).
WML engine
Fixed [animate_unit] and [heal_unit] preventing unit halo from disappearing if the unit
dies later (issue #3509).
Miscellaneous and bug fixes
Fix some minor problems with the macOS package.
Fixed crash when trying to attack with a unit without usable weapons (issue #3424).
Fixed the debug mode Create Unit dialog crashing when changing the gender
of the previous selection after causing the list to come up empty using
the filter box.
Allow searching by race and internal unit type id with the Create Unit
filter box as well.
wmlxgettext is now included in release packages, so a separate download is no longer required to use it with GUI.pyw.
Fixed crash when pressing Reset replay (issue #3439).
Fixed editor cannot add starting location for > 9 players.
Fixed crash in Lua tstring comparision (issue #3541).
Fixed objectives at scenario start using old/cached values of conditions/variables (issue #3544).
Show an error message when trying to open the Lua console while not in debug mode.
On enemy side's turn, don't scroll to that side's leader if it's invisible.
Fixed :droid ignoring its second argument.
Fixed :droid giving no feedback when successful.
Version 1.14.4
Security Fixes
Fixed Lua being able to escape sandboxing via load/loadstring (CVE-2018-1999023).
Add-ons server
Made it so plain-text .po catalogues in add-ons are detected and added to
the list of translations for them.
Campaigns
Dead Water:
In 'Tirigaz', take the situation into account of orcs being killed either
first or by undead.
Delfador's Memoirs:
Fix hero units costing upkeep (issue #3277)
Eastern Invasion:
Fixed missing prisoners and loss of recallable units in 'Captured'.
Northern Rebirth:
Level 0 units are not available anymore after scenario 5
Secrets of the Ancients:
Adjust gender of enemies to better match story in S11 & 21 (issue #3294)
Simplify dialog to fix possible confusion in S16 (issue #3291)
Have nagas be able to recruit in S21 (issue #3293)
The South Guard:
S4: undead leader won't leave the castle anymore
S5: the untypical situation that one can defeat the lich before finding
Urza Afalas is now handled
Under the Burning Suns:
S11: added custom graphics for the citadel.
S12: clarified the alien bodies' weaknesses.
Various visual improvements.
Editor
Fixed saving a map as a scenario not enabling scenario editor tools.
Graphics
New attack animation for the Peasant.
Tweaked the Ruffian's attack animation timing.
Language and i18n
Updated translations: British English, Bulgarian, Chinese (Simplified),
Chinese (Traditional), Czech, French, German, Hungarian, Japanese,
Scottish Gaelic, Slovak, Spanish
Lua API
Upgrade to Lua 5.3.5.
Multiplayer
Non hosts can now change their faction in the mp wait dialog.
Multiplayer server
Fixed lobby and whisper messages not having a maximum length.
Partly fixed the mp server breaking translatable strings.
User interface
Improved the layout of the Statistics dialog.
Allow changing dropdown menu selections with the scrollwheel (FR #3251).
Fixed lobby chat box scrolling to top on a new message if it isn't at the
bottom (issue #2789).
Fixed the unit preview pane not showing the default race icon when detailing
a single unit's stats.
Sort units secondarily by XP in the unit list dialog.
Whiteboard related bugfixes
WML engine
Fixed errors about WESNOTH_VERSION not being defined when trying to load
add-ons that have preprocessor errors (issues #1924, #1634).
Miscellaneous and bug fixes
Added an advanced preference to enable experimental PRNG combat.
Campfires use illumination instead of a different ToD.
Linux builds now enable security hardening by default.
Fixed MP admins being unable to observe private games.
Fixed MP faction, leader, and leader gender changes persisting even if the
selection dialog is dismissed.
Fixed an issue with positioned sound sources ignoring the volume set in
Preferences after going off the audible radius and back (issue #3280).
Fixed wmllint choking on gzipped binary files (e.g. gzipped tarballs).
Fixed wmllint crashing on nonexistent paths provided in the command line
(issue #3286).
Slight changes to the objectives dialogue (pr #3309)
Greatly improved touch control support.
Fixed wmlindent crashing on nonexistent paths provided in the command line
(issue #3346).
[do_command][attack] can no longer invoke disabled attacks.
[delay] is now skipped during preload events.
Fixed wrong simulated movement points when planning to capture a village.
Fixed attacks wrongly being disabled in the UI.
Version 1.14.3
AI
Fixed crash in presence of units with negative hitpoints (issue #3042).
Efficiency improvements to filter evaluations in the Goto Micro AI and some
AI helper functions
Campaigns
Dead Water:
Fix possibility of villagers blocking pickup of sword in S10 The Flaming
Sword (issue #3207).
Descent Into Darkness:
New Parthyn map in S1 and S6.
Northern Rebirth:
Reduced starting gold and income in scenarios 10 to 13
Secrets of the Ancients:
Fix S09 Training Session not ending when all dark adepts die (issue #3192)
Tutorial:
S2: made enemy starting gold equal to that of the player.
Under the Burning Suns:
Added portrait and updated sprite for Giant Ant.
Language and i18n
Updated translations: British English, Chinese (Traditional), Czech, French,
Italian, Japanese, Scottish Gaelic, Spanish
Multiplayer server
Fixed lan_server option not causing the server to exit once vacated, e.g.
when using the Host Networked Game option from the Multiplayer menu in the
game (issue #3206).
It is now possible to query the client version of other players.
Music and sound effects
The music now changes immediately when you load a save file (issue #2602).
Fixed Lua errors when setting a music track that cannot be found when the
playlist is already empty, e.g. if there's no music installed for the
game (issue #3194).
WML engine
Removed validation to ensure units cannot have negative hitpoints. We
learned that the ability to create such units is documented, and thus
disallowing it was an API change. Since API changes aren't allowed in
the stable branch, we have reverted it.
Miscellaneous and bug fixes
Fixed an occasional crash at the loading screen related to multi-thread
access of the image cache.
[kill] animate=yes no longer scrolls to units through fog or shroud, thus
matching 1.12's behavior again.
[message] displays the unit type name when a nameless unit speaks and no
custom caption= is specified (issue #3211).
do_not_list=yes units are no longer excluded from the debug mode-only
Create Unit dialog.
Fixed a rare issue where disabled attacks could cause the wrong attack to
be initially selected in the Unit Attack dialog. This bug also had the
potential to cause units to the wrong attack when engaging or viewing
damage calculations.
Fixed [scenario] map_file= being unusable in most circumstances.
Version 1.14.2
Campaigns
Northern Rebirth:
S02.1 Infested Caves: keep side 8 AI leader from wandering off too far
and ending up on a keep with only one hex for recruiting.
S02.1 Infested Caves: AIs are less likely to kill each other in early
game, which would make it harder for the player otherwise.
S02.1 Infested Caves: Dwarvish allies are also less likely to die.
S02.1 Infested Caves: minor map tweaks and improvements.
S05 The Pursuit: removed a bottleneck and tweaked Rod of Justice.
Sceptre of Fire:
In 'Caverns of Flame', fixed various issues with the volcano eruption.
Under the Burning Suns:
Various Quenoth unit graphics updates.
Descent into Darkness:
In 'A small Favor', disabled a not intended way to win the scenario.
Secrets of the Ancients:
Bats are transformed to normal ones already after S5
Graphics
Fixed a minor team coloring mistake in the north-facing Revenant standing
animation.
Language and i18n
Updated translations: British English, Chinese (Simplified), Czech, French,
Galician, German, Italian, Japanese, Scottish Gaelic, Spanish, Ukrainian
User interface
List boxes (MP lobby game list in particular) now keep the scroll position
when they change, instead of keeping the selected item visible (issue #3016).
Fixed MP lobby player list scrolling to top when it changes
Fixed the first unit sometimes not being selected when opening the Recall
dialog.
Fixed a crash when using very large portraits in [message] (issue #2912)
Added a button to access the version info dialog to Preferences.
Removed player list sorting options in the MP lobby. The list is now
automatically sorted alphabetically, friends first.
Rearranged campaign difficulty menu layout
Terrains
Removed hidden terrains that were not supposed to make it to 1.14: ^Prg,
^Prgo, ^Pwd, ^Pwdo
Miscellaneous and bug fixes
Fixed memory leak in terrain filter code. In a huge map with Silver Mages,
it could leak several gigabytes of memory in a long session.
Fixed: unit halo remained after undoing a recall (issue #3065)
Fixed: unit halo intensity doubled during AMLA animation
[change_theme] no longer causes a Lua error when theme= is not specified
instead of explicitly set to an empty string.
[change_theme] no longer requires running a separate action to update the
UI afterwards (e.g. [redraw]) and the status panels are updated immediately.
as well.
Lua random map generator: fixed error when flipping map; specifically this
also fixes an assert at the start of HttT S7 (Sceptre of Fire) that had a
50% chance of being triggered
Experimental AI: fixed recruiting not working on maps without enemies, such
as the first two turns of Dark Forecast
Experimental AI: fixed recruiting evaluations sometimes not being updated
Replaced deprecated Lua code and all remaining uses of FOREACH and MESSAGE
macros
Fixed [color_adjust] interacting poorly with time of day color shifts and
values outside the [-255, 255] range (issue #3144).
Fixed a regression from 1.13.10 where modification option values couldn't
be properly saved in arrays.
Added stricter validation to ensure units cannot have negative hitpoints,
except during specific attack-related events.
Added deprecation notices for several macros that had them missing before.
[message] no longer scrolls to units through fog or shroud so it matches
1.12's behavior.
Fixed animation-wide text_color and blend_color keys being overwritten. This
fixes level-in and level-out animations sometimes fading to black instead of
white.
Fixed [animate_unit] freezing the game when observing MP games (#2970).
Fixed carryover behaving differently when loading a start-of-scenario save
(issue #3152).
Fixed turn replay function in MP.
Fixed savegames being created even when not needed (issue #3150).
Fixed handling of extra_recruit in planning mode (issue #3100).
Fixed handling of skirmisher in planning mode.
Fixed handling of filter_recall in planning mode.
Fixed possible segfault at game end.
Fixed require_resource in [resource].
Fixed require_scenario=yes not working with map_generation (issue #3105).
Version 1.14.1
Campaigns
Eastern Invasion:
In 'Captured', fixed units incorrectly costing upkeep after leveling up.
Secrets of the Ancients
Fixed minor unit naming inconsistencies (issues #2844 and #2846).
Under the Burning Suns
Added custom graphics for the broken tree in S1.
Various sprite and image updates.
Fixed a bug in the formation ability causing defense bonuses not being
received in some cases.
Language and i18n
Updated translations: British English, Chinese (Simplified), Czech, French,
Galician, German, Italian, Japanese, Scottish Gaelic, Slovak, Spanish
Fixed Logging Options tooltips not being translatable (issue #2837).
Add command-line argument to disable the filtering of incomplete translations
in the language selection list.
Multiplayer server
Added support for matching user, IP, and email bans from a forums board
when the forum_user_handler is enabled and active. (IP and email bans with
wildcards are not supported yet.)
Fixed various instances of the server crashing under certain conditions.
Performance
Added an option to disable the FPS limiter for a slight performance boost.
Units
Changed the plural name for the merfolk race from Mermen to Merfolk (issue #2940)
and replaced a few instances in core unit or terrain descriptions accordingly.
User interface
Removed individual Join/Observe buttons for each game in the MP Lobby.
Highlight the titles of MP games with vacant slots.
Improved MP Lobby layout on low resolutions.
Improved reporting of network errors in the MP lobby (issue #3005).
Ensure the chat widget remains the correct size even after a window resize.
Custom MP game names are now capped at 50 characters.
Restored Era info to main MP game display.
Improved the resolution selection criteria for the MP Lobby.
Fixed inactive weapon specials being displayed in the Unit Attack dialog
unlike in 1.12 (issue #3033).
Miscellaneous and bug fixes
Removed misleading tooltip text stating registered nicknames are optional for
the official MP server.
Attempting to save a screenshot with an unsupported format now shows an error
message, instead of saving the screenshot as BMP with the requested extension.
It is now possible to disable logdomains in the Logging Options dialog.
Fixed the wesnoth(6) manpage claiming the default log level is 'error' when it
has been 'warning' since version 1.9.0.
Document --log-none in the wesnoth(6) manpage.
Avoid trying to load invalid base64-encoded data URIs.
wesnoth_addon_manager and the addons.wesnoth.org web index can now use data URIs.
Fixed a crash when using certain invalid color= values.
Implemented a workaround for an unhandled std::bad_cast from string comparison
functions that caused a crash-to-desktop when opening Preferences among others
(issue #3050).
Fixed many crashes and out-of-sync errors when using the planning mode.
Version 1.14.0
Campaigns
Under the Burning Suns
New set of Quenoth faction and character portraits by LordBob.
Updated sprites for several Quenoth units.
Fixed "Invalid WML found" error that can be caused by the Quenoth Youth
support ability.
Help browser
Temporarily hidden Editor section as it is mostly incomplete and of little
use right now (issue #2963).
Language and i18n
Fixed Version label on the title screen not being translatable (issue #2914).
Fixed regression causing a crash-to-desktop when trying to log into the
server using a registered and active account without specifying a
password.
Fixed an infinite loading screen if the server shut down or restarted
mid-login.
Fixed an infinite loading screen when attempting to login with an
unregistered nickname followed by a registered one.
Dark Forecast: Fixed possible Lua error when the weather changes.
User Interface
Implemented MP chat message history saving (issue #1194, issue #2802).
Fixed context menus not dismissing on right click.
Miscellaneous and bug fixes
Fixed an AI assertion when a unit with one disabled attack attacked a unit
with no attacks or a single disabled attack.
Version 1.13.14
Security fixes
Fixed an issue allowing MP lobby and whisper message origins to be spoofed
by clients.
Campaigns
The Hammer of Thursagan
S12 Fixed enemies from ai6 (south-east lich) going to the book (spider)
room
S12 Fixed north treasure chest disappearing
The Rise of Wesnoth
New set of story art.
Help browser
Unit descriptions use the new multiplication sign format for attack lists
now (issue #2873).
Language and i18n
Updated translations: Chinese (Simplified), Czech, French, Galician,
Italian, Polish
Lua API
Fix wesnoth.show_popup_dialog and wesnoth.show_message_box not accepting
translatable strings
Multiplayer
Added team color to a few background units missing in Aethermaw.
User Interface
Swapped the position and formatting of game names and titles in the MP
lobby.
Made Faction Select button's purpose more clear in MP Staging.
Added a convenient button in Load Game to open your saves folder.
Miscellaneous and bug fixes
Removed the Font Scaling preference. It was too buggy (issues #2792 and
#1624).
Fixed some hotkeys triggering multiple commands on GNU/Linux (bug #1736).
Fixed [modify_side] share_vision=yes not doing anything (bug #2850).
Fixed regression where unit filters in [disable] weapon specials would not
match the attacking unit.
Fixed images with no alpha channel rendering incorrectly.
Fixed unit selection not persisting between uses of Create Unit.
Fixed assertion when undoing actions in a synced context.
[filter_wml] no longer accepts [and] and [or] in addition to [not] since
the implementation was non-functional.
Fixed some MP passwords being saved incorrectly (issue #2745)
Fixed AI not recruiting in some circumstances when there are only cheap
units on the recall list.
Fixed sometimes being unable to join MP games with non-required eras.
Fixed locations not being added to the palette when loading a map (#1023)
Version 1.13.13
Campaigns
Eastern Invasion
Fixed some Lua errors in S05.
The Hammer of Thursagan
Fixed a misplaced door image in S12.
Under the Burning Suns
Changed Sun Singer movetype from float to foot.
Added some Quenoth elf unit animations.
Hide technical terrains in the Help browser (Human Ship, Lava overlay).
Language and i18n
Fixed many cases of interpolated strings in the engine possibly having
their translations retrieved from the wrong textdomain and falling back
to the English original if that failed (PR #2711, bug #2709, bug #2732).
Fixed parts of the MP game setup UI having their translations ignored by
the game (bug #2709).
Fixed certain parts of the UI displaying unit stats and trait effects
having incomplete translations (bug #2732).
Fixed "Level" label in unit descriptions in the help being untranslatable
(bug #2732)
Fixed "Search" placeholder text in dialog item filters not being
translatable (bug #2709, bug #2732).
Fixed "Time of Day Schedule" heading for the index for the ToD Schedule
top-level help section, "Lawful Bonus", "Schedule" (back link to index)
and an error message not being translatable.
Updated translations: British English, Chinese (Simplified), Czech, French,
Scottish Gaelic, Spanish, Ukrainian
Multiplayer
A New Land: Fixed the scenario being broken.
Dark Forecast: Fixed possible Lua error when attempting to spawn units.
Miscellaneous and bug fixes
Fixed minimap buttons not doing anything (bug #2681)
Fixed events with an id but no name being rejected
Fixed assertion when using [inspect]
Fixed inability to deselect modifications in single-player
Fixed infinite loading screen when logging in with an invalid name
Improved UX in multiplayer when synced debug commands are used during a
game.
Updated bundled Oldania font to version 1.007 (from 1.006).
Added bold and italic Oldania font variants.
Updated bundled DejaVu Sans fonts to version 2.37 (from 2.35).
Fixed [chat] not working during [delay] or animations.
Removed the Password Reminder option from the Login screen.
Removed (optional) requirement of libpng from SCons and CMake and the
associated options as Wesnoth now uses SDL_image to write PNG files.
Fixed assertion when saving game events mid-event.
Version 1.13.12
Security fixes
Disallowed access to blacklisted file paths such as hidden files and
directories.
Add-ons client
Addon upload progress bar now also works on Windows (bug #1439).
Fixed inability to cancel addon upload (bug #2591).
Add-ons server
Added support for adding free-form comma-separated tags to add-ons in
their publishing info (bug #2565).
Added support for overriding existing add-on attributes using the control
FIFO.
S04a, 05a, & S13a Make enemy units loyal so gold & events work properly
Graphics
Updated default Time of Day schedule images.
New Heavy Infantryman attack animation by Zoomo.
New Elvish Sylph baseframe by Jetrel.
Language and i18n
Updated translations: British English, Czech, Spanish
Lua API
Add side_name to side proxy
Added wesnoth.custom_synced_commands table where you can register
custom synced commands.
Add wesnoth.invoke_synced_command
Removed ai.synced_command() - replaced with the above two
wesnoth.end_turn() now allows to specify the next side
The new wml module is now considered mostly final.
It has new remove_child and remove_children functions.
New wesnoth.persistent_tags table for more convenient custom
save data (intended to replace game_events.on_load/save)
User Interface
Improved outro screen.
Fixed a few cases of data not displaying in the MP Join Game screen.
Fixed required addon names not displaying properly when joining an
MP game.
The Toggle Fullscreen hotkey now works everywhere.
WML engine
Fixed units shown with [move_units_fake] disappearing between steps
(bug #1516).
[modify_side] now supports side_name
[set_menu_item] no longer fires repeatedly if the player holds the
hotkey (bug #1711). If you were relying on repeated firing, add
repeat_on_hold=yes to [default_hotkey].
[set_variable] now supports prefix and suffix operations for
string concatenation.
[effect] apply_to=attack now supports set_range
[cancel_action] now works in attack-related events.
[unit_type] upkeep= now works again. It was inadvertently broken during
the 1.13 development cycle.
[filter_wml] now accepts [and] and [or] in addition to [not].
Added bar_offset_x/y in [unit_type].
The MP setup code no longer generates [side]s if the scenario has at
least one side defined.
Unit changes and balancing
Decreased cold resistance of Dune Burner line from 0% to -20%
Decreased cold resistance of Dune Soldier line from 0% to -10%
Add possibility for 'fearless' trait in Dune Soldier line
Increased pierce resistance of Dune Rover line from 0% to 10%
Increased impact resistance of Dune Piercer from 0% to 10%
Decreased Dune Piercer's XP to next level from 48 to 42
Increased Dune Riders's XP to next level from 39 to 42
Change mountain stats of Dune Marauder from impassable to 4 MP, 60% def
Increased cold resistance of Dune Marauder from -20% to 0%
Increased blade resistance of Dune Raider from 10% to 20%
Decreased hills defense of Dune Raider from 60% to 50%
Miscellaneous and bug fixes
Fixed standing animation toggle not taking immediate effect (bug
#1653).
Fixed error when de-assigning village with [capture_village].
Enabled the use of Open Type Font (.otf) fonts.
Fresh installs of the game will now open in fullscreen by default.
New game theme music by Mattias Westlund.
The unit advancement prompt is no longer shown for droided sides.
Fixed custom game titles being lost when reloading MP games.
The copy-to-clipboard function on the Lua console now produces plain text
without Pango markup or entities for special characters (<, > and &)
(bug #2434).
'Turn Changed' desktop notifications in MP will now only display when
human-controlled sides take control.
Fixed regression in 1.13.11 where completed events could fire again when
reloading a save.
Fixed PNG images with an embedded palette displaying incorrectly.
It's now possible to save screenshots as JPEG (by changing the file
extension before saving).
Fixed no_leader having no effect
Fixed units randomly being unable to move over merged terrains.
Music and sound effects
Updated a few UI sounds.
Version 1.13.11
Add-ons client
Added an order dropdown that allows you to sort add-ons by the time of
latest update or original upload (issue #1747)
Players will now be prompted to update outdated dependencies alongside
downloading missing ones when installing an add-on.
Add-ons server
Empty passphrases from malfunctioning clients that do not provide or
generate a passphrase otherwise are now rejected instead of treated as
valid.
Campaigns
The Cutscene_Minimal theme is now used in all dialog-only scenarios that
have linger=no in [end_level].
An Orcish Incursion:
New story art.
A Tale of Two Brothers:
Added a full set of hints on easy difficulty.
Delfador's Memoirs:
Iliah-Malal can now be killed by either undead or Delfador in S19
S19 has been rebalanced to increase difficulty and allow player & enemy
to field more units.
Descent into Darkness:
'Endless Night' now has accurate & improved scenario objectives. It also
has received improvements in dialog, map appearance, and difficulty.
S08/S09 A Small Favor 2/3 - Fixed bug preventing door operation/usage.
Fixed and improved appearance and handling of the wose.
Other minor fixes and improvements.
Packaging
Renamed the target and binary for the Boost unit tests from test to
boost_unit_tests. This quells warnings from CMake about reserved target
names, and reduces confusion about which test is intended: the wesnoth
executable or the standard shell command.
The CMake build system now uses standard Kitware-supported variables
from the GNUInstallDirs module. Distributions might have to change
the defaults to suit their FHS needs.
The previous addition of GNUInstallDirs necessitates a bumping of the
CMake minimum requirements, which is now at 2.8.5. Most distributions
already use a CMake version above 3.0, so this would only affect users
of vintage CMake versions.
higher resolutions of the application icon have been added and are now
stored in the hicolor icon theme's directory
Language and i18n
Updated translations: British English, Chinese (Simplified), Czech,
Italian, Spanish
Lua API
New wesnoth.unit_types[] getters:
advances_to
advances_from
profile
small_profile
The wml module now offers another new way of accessing WML variables:
wml.variables is a simple wrapper around wml.get|set_variable.
unit.id is now a modifiable field for off-map (Lua-only) units.
Allow moving on-map units by setting unit.x and unit.y fields, or with
unit.loc = {x, y} or unit.loc = {x = x, y = y}
Added side.chose_random getter.
Lua GUI2 API: added support for slider callbacks via
wesnoth.set_dialog_callback.
Multiplayer
Dark Forecast: Fixed broken faction and leader selection.
Rename the Khalifate to Dunefolk. This includes renaming all the faction's
units.
Performance
GUI2 windows no longer redraw everything 50 times per second. This reduces
CPU usage in fullscreen windows such as MP lobby by about 85 %.
Miscellaneous low-level optimizations in game rendering code, improving
performance ingame by up to 50 %.
Units
Changed resistances and hitpoints for Tentacle of the Deep.
User Interface
Removed broken Unit Box and Widescreen themes.
Fixed a bug that partially prevented movement feedback announce messages
to be displayed (UI regression bug #2130, affecting 1.13.8 and 1.13.10).
New, greatly simplified display of games in the MP Lobby.
Fixed individual Join/Observe buttons acting on the wrong game in the MP
Lobby.
Greatly improved behavior of sliders.
Fixed crash when modifying an existing friend entry in Preferences.
Fixed players being unable to start campaigns in MP mode.
Added confirmation prompt when clearing map labels.
Added show_border= key to the [main_map_border] to control whether map
borders draw. Right now this is utilized in the cutscene themes.
If [main_map_border] background_image= is empty, the game map background
will be plain black.
New really nice HD main menu/storyscreen background.
WFL Engine
A new string insert() function has been added, similar to replace().
WML Engine
Added a major_amla option in AMLAs to keep the XP bar teal-white rather
than purple for AMLAs that behave similar to regular advancements.
(for example, Quenoth Youth in UtBS or similar unit lines)
File paths with backslashes are no longer allowed. This ensures that a UMC
author can't accidentally use them and make an add-on that breaks on
GNU/Linux and macOS.
File paths are now case sensitive even on Windows.
[show_if] is now usable in the [objectives] subtag [gold_carryover].
Macro SCEPTRE_OF_FIRE_EFFECT damage increased to 15x4 so Sceptre is an
improvement over the uncut ruby of fire (14x4) in TRoW.
Added [lua] as a conditional tag, with identical syntax.
The code in such a tag must return a true or false value.
Lua errors now cause as a condition to fail instead of pass.
New formula= key in [set_variable] allows evaluating a WFL formula with
the variable, which may be either a scalar or a container.
A missing [event] name= key will now raise a WML error instead of being
silently ignored.
Units hidden with [hide_unit] will remain hidden after reloading saves.
Fixed regression where most SUF keys would match all units if given "" as
a value.
Miscellaneous and bug fixes
Suggested save file names now use spaces instead of underscores.
Fixed crash after canceling add-on download (bug #2203)
Fixed ingame help showing units you haven't encountered (bug #2135)
Fixed the opacity IPF resetting to 0 if the value given was 100% or
greater (bug #2185).
Fix recalls updating shroud immediately when "Delay Shroud Updates" is set
(bug #2196)
Fixed not being able to undo previous moves after entering planning mode
(bug #2303)
Fixed image cache being shared between campaigns.
Version 1.13.10
Add-ons client
A list of illegal filenames is displayed if any are found by the server
when uploading.
Add-ons server
A list of illegal filenames is sent to the client if any are found during
the upload validation process. Only clients supporting this new
functionality can display the list.
Fix an issue where the implementation of the hashing function used for
add-on passphrases was changed since 1.13.8, breaking existing hashes
(bug #2068).
Campaigns
Delfador's Memoirs:
Clarified and fixed objectives in many places.
Improved appearance and flow of dialog in several places.
Some minor gameplay changes to improve the story.
Delfador now progresses properly from Mage Journeyman to Elder Mage.
Fixed some other bugs.
S07, A Night in the Swamp has been rebalanced on easy & hard.
S09, Houses of the Dead, has been rebalanced.
S18, The Portal of Doom, has been rebalanced.
Iliah-Malal is now an Ancient Lich in S18 & 19.
Language and i18n
Updated translations: British English
Lua API
Upgrade to Lua 5.3.4.
Multiplayer
Fixed a bug where the client would return to titlescreen on receiving a
redirect message from the server, which made connecting to the official
server via the "connect to official server" button impossible.
Miscellaneous and Bug Fixes
Updated our included Spirit Po version from 1.0.1 to 1.1.2.
Fix idle AI being replaced by default AI under certain circumstances on
loading of mid-scenario saves (bug #1955)
Fix rare AI crashes in the move-to-any-target candidate action and the
Fast Micro AI
Fix poisoner FAI to prevent flood of error messages in Legend of Wesmere
(bug #1999)
Version 1.13.9
Add-ons client
Fix HTML injection exploit in the wesnoth_addon_manager web index
generation functionality.
Campaigns
Reordered beginner campaigns to be friendlier to new players.
Delfador's Memoirs:
Replaced incorrect 'Defeat all enemies' objectives with more specific
'Defeat all enemy leaders'.
New unit sprites: Quenoth Mystic line, Quenoth Flanker line, Flesh Golem.
Fixed Ethereal Shadow and Ethereal Nightgaunt having nightstalk even when
they shouldn't.
Balance changes to the Quenoth elves:
Formation ability now has looser adjacency requirements.
Quenoth Scouts have a non-slowing sling at lvl 1 instead of bolas.
Adjusted stats of some units.
Graphics
Added portrait for Giant Rat.
Fixed transparency artifacts in scaled portraits and other message images
(issue #1570).
Fixed issue with jumpy animations on faster speeds (issue #1565).
Added some new item and scenery images
Language and i18n
Updated translations: British English, Chinese (Simplified), Italian,
Polish, Scottish Gaelic, Slovak, Spanish
Lua API
Add wesnoth.format function to substitute variables into a string.
Add wesnoth.format_conjunct_list and wesnoth.format_disjunct_list.
New global "wml" table groups together all the functions for working
with WML tables, and its subtable "wml.variable" groups functions
for working with WML variables. Most of these are functions previously
found only in helper.lua; they no longer need a require to use.
Warnings for using deprecated Lua functions now only appear in debug mode.
wesnoth.game_config is now accessible in application and mapgen kernels,
though some of its contents are missing.
New extra argument to wesnoth.match_location and wesnoth.get_locations
allows specifying the teleport_unit.
Support the extra wesnoth.match_unit arguments also in wesnoth.get_units
Fix wesnoth.put_unit not correctly deciding whether to fire the unit placed
event in some situations
wesnoth.debug() can now be called from map generators or plugins. It is
also deprecated, however; you should use wml.tostring() instead.
Multiplayer
When set to remember your password, Wesnoth now encrypts it. It is still
possible to obtain the password from preferences, but it's no longer as
trivial as before.
Fixed crash when loading a replay stored on the server (Bug #1762)
Fixed delay or clients getting stuck when starting a mp game (Bug #1674)
Fix bug where leader can become unable to be killed (issue #1666)
Performance
Rewrote the FPS cap implementation. This greatly improves
smoothness ingame.
Each invalidated hex is now only redrawn once, not twice. This almost
halves CPU usage ingame.
Implemented GUI canvas caching. It speeds up multiple areas, but especially
the story screen.
Terrains
* Added ruined version of encampment terrain.
* New stone floor terrain.
* Gates now have new terrain codes to grant more control for map makers.
The old codes are now deprecated (issue #1839)
Units
Added new lvl 0 Giant Scorpling, leveling into the Giant Scorpion.
Tweak some costs for lvl 3 units.
User Interface
Fixed loyal and aged traits missing from help (issue #1935).
Unit recall dialog now sorts the units by both level and required XP for
their next level-up (issue #1738).
Enable the use of tab to switch between text fields in most dialogs.
Color-code modifiers in trait tooltips
Translation teams in credits are now listed in alphabetical order of the
localized language name (rather than the English language name).
Allow deleting saves with the Delete key in the Load dialog.
Fixed team selection screen often ignoring attempts to scroll (bug #1632).
Input Method Editor support in most textboxes (except in-game chat)
Campaign dialog now uses different-coloured victory wreaths depending on
the difficulty you beat the campaign on
Campaign dialog can now be sorted in alphabetical or chronological order
Fixed a number of issues with hotkeys
Fixed the viewport being moved when changing the zoom level
Fixed an occasional interface hang where only the menus work
Trait description tooltips now color-code modifiers
Fix about window not showing Mac notifications as available
Add descriptive tooltips for all text elements in the top status bar
The current screen position is now saved in savefiles
Removed emacs keybindings in text fields (Ctrl+A, Ctrl+U, Ctrl+E)
Ctrl+A now selects all text in the field.
Fix addon manager closing when canceling an operation
Addons can now be filtered to show only publishable addons
WFL Engine
Add owner key to terrain space callable, for villages
Location formulas in [tunnel] now have a teleport_unit variable
Fix a crash when attempting to call a non-existent function
The following previously FormulaAI-exclusive functions are now also
available in filter formulas (SUF, SLF, SSF, SWF):
adjacent_locs, location_in_radius, get_unit_type, unit_at, defense_on,
chance_to_hit, movement_cost
New builtin functions for manipulating locations
(available to all formulas):
adjacent_locs, are_adjacent, relative_dir, direction_from,
rotate_loc_around
New enemy_of function checks if its second argument is
an enemy of the first
Arguments can be side or unit objects, or integer side indices (1..n)
WML Engine
If ai_algorithm is used in [modify_side][ai], it now replaces the whole AI
with the contents of [modify_side][ai], instead of appending these
parameters.
New [credits_group] tag can be used by non-campaign addons to group several
[about] tags under a single header. This is a toplevel tag, not a subtag
of [era] or [modification].
An empty id key in SUF no longer matches all units;
instead, it matches none.
Fix [primary_attack] and [secondary_attack] in [kill]
Fix [kill] not affecting recall list units
Fix [scroll] with omitted x or y
Fix [story] not showing if all parts are conditional
Fix some hotkeys not working (issues #1737 and #1769)
New vision_cost and jamming_cost keys in SUF
Integer SUF keys (eg level) now accept a list of ranges
Fix $other_unit SUF variable being unavailable in nested [and] [or] [not]
Unit ability values can now be specified with WFL
The {ABILITY_TELEPORT} macro no longer uses internal variable substitution,
meaning that it can be used in an event without specifying
delayed_variable_substitution=yes.
(This also applies to {ABILITY_BACKSTAB} and {ABILITY_LEADERSHIP}.)
Add fire_event key to [unit] which determines whether to fire a unit
placed event.
[resolution] window_width/height now specifies the minimum window size
for that resolution to be chosen
formula code is now supported in abilities and weapon specials (fr #1436)
The allow_new_game= in [scenario] now defaults to false (it still
defaults to true in [multiplayer])
Add [cancel_action] (bug #1427)
Allowed TerrainGraphicsWML random_start= to optionally take a positive
integer to limit the range of the random shift of the animation start time
new attributes mp_village_gold, mp_village_support, mp_shroud, mp_fog in
[multiplayer] that are used as default values for the corresponding
attributes in [side]
Miscellaneous and Bug Fixes
Add --report/-R command line switch for printing the same report from the
Game Version dialog's clipboard function to stdout.
Fixed programmatically killed unit flashing after its death animation
On GNU/Linux the game no longer minimizes when it loses focus in
fullscreen mode (bug #1606)
Fixed whiteboard crash on delete action with multiple moves (bug #1842)
Fix units being unable to step on hexes with too high movecosts
(bug #1473)
Improved and more detailed FPS display
Fix minimap being sometimes black in mp create (bug #1484)
Optimized unit filters
Fixed bug #1837 empty tags missing in [store_unit]
Fixed preferences not being saved if they weren't in the currently
selected tab when the settings dialog was closed.
Version 1.13.8
Campaigns
Son of the Black-Eye:
Balancing changes for 'Silent Forest'.
Under the Burning Suns:
New sprites for Quenoth Youth (Kaleh and Nym) and Human Commander.
Applied a color shift to the human units in S8 and S9 to give them a more
unique look.
Editor
Fixed a crash when placing units.
Restored the ability to preview different ToDs. Note this still does not
work when invoked form the Custom ToD window.
Fixed editor sides not having the correct side number.
Redesigned Windows, Areas, and Sides menus.
The Windows menu will now display maps starting from 1 rather than 0.
This is likewise reflected in the default map filename.
Scenario names are now displayed in more places if available.
Formula Engine
Fixed garbage data showing up in stack traces in the event of an error.
Object types can now be used in contexts where previously only a list or
map was accepted - for example in the filter() function. They will be
treated as a map in such cases.
Graphics
Fixed items not receiving ToD lighting.
Portraits for many Walking Corpse and Soulless race variants.
New animations: Dwarvish Fighter idle.
Language and i18n
Updated translations: British English, Chinese (Simplified), Lithuanian,
Slovak, Spanish
Lua Engine
Add wesnoth.log_replay which exposes a little-used functionality of
injecting arbitrary logging data into a saved game.
Small change to animator API - facing parameter replaced with target and
required to be a space adjacent to the unit.
New modifiable theme attribute in wesnoth.game_config
New wesnoth.zoom() function allows changing the zoom level
The wesnoth.scroll function scrolls the screen by an offset, similar to
[scroll]. For example, wesnoth.scroll(5, -2)
New is_local attribute in side proxy table allows you to detect whether
or not the side is controlled by a network player. Note that use of this
has the potential for OOS errors.
New wesnoth.music_list table which allows controlling the music playlist:
wesnoth.music_list[1] etc returns mutable information about a specific
track on the playlist
#wesnoth.music_list counts the number of tracks on the playlist
wesnoth.music_list.current returns mutable information about the
currently-playing track
wesnoth.music_list.current_i returns the index of the current track on
the list. It is writable, allowing you to switch to any track on the
list. This respects fade values.
wesnoth.music_list.all returns a copy of the playlist that can be
stored in a variable.
wesnoth.music_list.play plays a specific track (as [music]play_once=yes)
wesnoth.music_list.add appends a track to the playlist (as
[music]append=yes)
wesnoth.music_list.clear clears the current playlist
wesnoth.music_list.next fades out the current track and moves to a new
track on the playlist
wesnoth.music_list.force_refresh forces any pending playlist changes
to be immediately applied
wesnoth.music_list.volume attribute gets/sets the current music
volume, as [volume]music=
Each track has modifiable shuffle, once, ms_before, ms_after
attributes and read-only append, immediate, name, title attributes.
They are also comparable with == or ~=
wesnoth.set_music is now deprecated, in favour of the above new API
New wesnoth.sound_volume function gets/sets the current sound volume, as
[volume]sound=
New wesnoth.show_story function launches the storyscreen viewer
wesnoth.dofile now forwards any excess arguments to the file in the
"..." argument
wesnoth.require can now load all modules in a directory and accepts some
shortened paths, for example omitting the ".lua" file extension and
searching in the current directory.
When you require a package that has no return value, you now get a table
that errors on any access to it, rather than nil.
New wesnoth.create_weapon function to make a weapon that's not attached
to a unit (which could be useful for animations)
New wesnoth.show_message function shows a simple alert dialog, possibly
with a choice
New wesnoth.alert and wesnoth.confirm functions - simple shortcuts for
the above.
Functions for working with hex locations have been added under wesnoth.map
In particular, helper.distance_between is deprecated in favour of
wesnoth.map.distance_between
The following existing functions now also work in plugins and map
generators: wesnoth.log, wesnoth.get_time_stamp, wesnoth.get_image_size
Several error messages now point more accurately to the actual location
of the error.
wesnoth.simulate_combat output has additional keys:
untouched (in first two return values) indicates whether the unit took
any damage
number (in second two return values) contains the Lua index of the
attack, as opposed to attack_num which contains the WML index.
weapon (in second two return values) contains the actual weapon userdata
New methods in location_set: of_triples, to_triples, random
New animations key in Lua unit proxy returns a list of defined flags for
animation
New functional.lua file implements a number of higher-order functions
from WFL
The length operator now works on translatable strings, returning the
length of the translation.
wesnoth.set_side_variable and unit.variables can now clear variables
helper.get_variable_array and helper.set_variable_array now work on
units and sides (pass a unit, side, or side number as an extra parameter)
Note: helper.get_variable_proxy_array does not work on units and sides
helper.rand now has a second parameter that defaults to wesnoth.random
Add wesnoth.game_config.victory_music and wesnoth.game_config.defeat_music
setters
Add wesnoth.game_config.scenario_id getter
wesnoth.set_next_scenario() was replaced with
wesnoth.game_config.next_scenario setter/getter
wesnoth.set_dialog_value can now (un-) fold GUI2 tree view nodes
Multiplayer
Fixed statistics being lost when reloading an MP game.
Performance
Greatly speeded up switching between add-ons in the add-on manager
(bug #25523)
User Interface
Updated Attack Predictions dialog to GUI2.
Updated Story screen to GUI2.
Double-clicking an add-on now installs, updates, uninstalls or publishes
it depending on the situation.
Fixed file path being truncated on the wrong side in the File Browser.
Improved Hotkey category sorting interface in Preferences.
Improved Addon Manager and MP Staging interfaces at low resolutions.
Fixed bug that allows you to use the minimap to bypass view locking
You can now change the theme (in preferences) while a game is in progress.
Fixed units moving after in game help exit. (#24644)
Fixed a bug that caused rapid announce messages to overlap each other.
(bug #21634)
Fix buttons disappearing while menus are open.
Fix map labels disappearing when a dialog is open.
Improve tooltip placement.
Move recruit/recall to top of context menu
Add a hotkey to launch test scenarios from the titlescreen
Added a Cutscene and Minimal Cutscene theme for UMC authors to use.
Improve layout of MP Create at low resolutions.
Game Load screen now lists the gold and total number of units for each
side.
Textboxes now have a blinking cursor when focused.
multi pages can now contain different types of pages
WML Engine
Add base_income key to [store_side]
Fix issues with alpha animations on hidden units (#14503)
Extensions to GUI2 Canvas ([drawing] tag in dialogs):
New [round_rectangle] shape - a rectangle plus corner_radius
[circle] shape can now be drawn filled; color key is now border_color
[image] has new resize_mode=tile_center
Canvas colors can now be expressed as formulas. The formula must return
the color as a list of its components, eg "([r, g, b, a])"
Empty tags are no longer written to the configs of [unit]s and [side]s.
New [change_theme] tag to change the theme mid-scenario
New [zoom] tag allows changing the zoom level from an event
[kill]animate=yes now plays victory animations if applicable
[kill] now supports [primary_attack] and [secondary_attack] for the
animation
Fix [volume] not accepting 100% as the new volume.
New concat_to_* keys in unit_type inheritance allow amending keys
Accept [story] as ActionWML in events
Added a ~NO_TOD_SHIFT() ImagePathFunction which can be used on terrain and
item images to prevent them from being affected by ToD lighting.
[unit]placement=name is now [unit]location_id=name and also honours the
new overwrite and passable keys, deprecating placement=map_overwrite etc.
New zoom_levels key in [game_config] defines the allowed zoom levels.
The default color list is now defined via a default key in [color_range],
rather than the default_color_list key in [game_config][colors].
Standard Unit Filter has new ability_type_active and trait keys
Standard Weapon Filter has new special_active key
[animate_unit] now raises an error if the flag key is missing
Fix [set_variable][join] not working with translatable strings
[sound_source] now starts playing the sound immediately
New voice key in [message] and [story][part]
[objectives] now supports delayed_variable_substitution=yes and also
delayed substitution with $|variable syntax.
Items in [options] now support container variables again.
Miscellaneous and bug fixes
Fixed base animation showing on walking corpse & soulless bats
(bug #25673)
Version 1.13.7
AI
Fix a performance regression in complex combat situations such as the
"Oath of Allegiance" UMC campaign.
Fix some Micro AIs and AI helper functions not working correctly for AI
sides under shroud
New function ai_helper.find_path_with_shroud()
Campaigns
Eastern Invasion:
In 'Weldyn Besieged', redesigned the way in which revealing the
identities of the liches works.
Descent Into Darkness:
Fixed certain units not having the 'guardian' special in 'Descent into
Darkness'.
Heir to the Throne:
Fixed bug allowing the wrong person to receive the Sceptre of Fire.
Fixed inconsistencies in Li'sar's sprites and animations when she has the
scepter.
New death animation for Asheviere.
Secrets of the Ancients:
New campaign added to mainline (Intermediate level, 21 scenarios).
The Hammer of Thursagan:
New sprites for Dwarvish Witness line.
Under the Burning Suns:
Fixed difficulty levels with the original units not working.
New sprites and animations for Spider Lich.
Various balancing changes, bug fixes and improvements to the new units.
Major changes:
Kaleh and Nym movement points increased from 5 to 6.
Moon Singer branch removed.
Added winged lvl4 advancement for Quenoth Druid.
Support ability now only lowers adjacent upkeep costs by 1.
Graphics
New or improved sprites: Royal Warrior, Walking Corpse line wolf variation.
Improved the fake map border terrain so that it now connects with the real
map borders and can better be used to change the apparent shape of the map.
Smoother fade transitions between differently colored time areas.
Adjacent castles of different types now have fewer glitches between them.
Fixed glitches between various mountain tiles (introduced in 1.13.3).
Fixed units getting submerged on some bridge types when placed over water.
Updated Mermaid Initiate portrait.
Language and i18n
Updated translations: British English, Czech, German, Portuguese (Brazil),
Scottish Gaelic
Lua API
New wesnoth.set_side_id function can change flag, color, or both; it automatically
updates cached flag info for you (but you may still need to redraw to see it).
The wesnoth.place_shroud and wesnoth.clear_shroud functions can alter shroud data
for a single side. They accept a list of locations, a shroud data string, or the
special value "all".
New wesnoth.is_fogged and wesnoth.is_shrouded calls test the visibility level
of a hex for a particular side.
New wesnoth.create_animator call produces an object that can be used to run
animations for a group of units
New Lua API functions for altering AI:
wesnoth.switch_ai replaces the entire AI with a definition from a file
wesnoth.append_ai appends AI parameters to the configuration; supports goals,
stages, and simple aspects.
(Aspect tags are not fully parsed; only the id and facet subtags are used.)
wesnoth.add_ai_component, delete_ai_component, change_ai_component
These do the work of the [modify_ai] tag for a single side.
Side proxy changes:
flag and flag_icon are never an empty string
New mutable keys: suppress_end_turn_confirmation, share_vision
New read-only keys: share_maps, share_view
num_units, num_villages, total_upkeep, expenses, net_income
Existing keys made mutable: shroud, fog, flag, flag_icon
wesnoth.scroll_to_tile now accepts a third boolean argument - if true, the scroll
is skipped when the tile is already visible onscreen.
The config accessors in the helper module now give a sensible error message if
something other than a config is passed as the first argument.
wesnoth.deselect_hex no longer deselects units; it only unhighlights the hex.
wesnoth.select_unit with no argument (or nil argument) now deselects any unit.
Fix lua side:matches always iterating over all units on the map.
Multiplayer
New maps: 2p Clearing Gushes, 2p Hellhole, 2p Ruined Passage,
2p Ruphus Isle, 2p Swamp of Dread, 2p The Walls of Pyrennis,
2p Tombs of Kesorak, 4p Bath of Glory, 4p Geothermal.
Updated maps: Fallenstar Lake.
Units
Several changes to names of attacks:
Shock Trooper, Iron Mauler, Mage of Light: maces and morning stars
changed to flails.
Arif, Ghazi, Khalid, Shuja: long sword changed to sword.
Mighwar, Monawish: long sword changed to longsword.
Updated unit descriptions: Orcish Grunt line, Merman Fighter line,
Sergeant, Lieutenant, General, Peasant, Royal Warrior, Ancient Lich,
Dwarvish Steelclad.
Changed (mainly reduced) recruit costs of many high-level units:
Fixed TC color in Faction Select sometimes not matching the side's selection.
Ensured sides are always ordered by index in MP Staging.
Wesnoth Formula Engine
New str_upper and str_lower functions for case transformations
WML Engine
Update [store_side] to store everything in corresponding wesnoth.sides[*].__cfg
and additional keys: num_units, num_villages, total_upkeep, expenses, net_income
Removed LOW_MEM option when building.
Add color= attribute to [floating_text]
Add ~CHAN() IPF that allows altering images according to formulas
It takes up to 4 WFL formulas, one for each channel (red, green,
blue, alpha); each works the same as the ~ADJUST_ALPHA() formula.
New ability_type key in standard unit filters matches if the unit has any
ability of the specified type (tag name).
Terrain flags "_border" and "_board" are now automatically set for every
tile, indicating whether it is on the map border or not.
SUF type_tree renamed to type_adv_tree for consistency with [hide_help]
[message]s no longer trigger a scroll if the unit is onscreen.
Removed the ~DARKEN() and ~BRIGHTEN() IPFs.
{SOUND_POISON} and {SOUND_SLOW} have been deprecated and replaced with empty
macros.
[tunnel] now accepts delayed_variable_substitution=yes/no.
[on_redo] is now deprecated and does nothing if used
Miscellaneous and bug fixes
Fixed severe lag/freeze on slow PCs (bug #25356)
Updated wmlscope to handle the square braces syntax in file paths
Fixed an issue preventing quick replay when joining multiplayer matches
Resolved crash on Help when font scaling set to 115% or greater (bug #25292)
Resolved crash when viewing Help in CJK languages (bug #253334)
Fixed [campaign][option] tags not being properly considered.
Fixed an issue where team names could get corrupted in SP.
Zoom levels no longer get reset between loading games.
Do not load the Markov name generator if a CFG generator could be loaded.
Exit "quick replay" mode in MP games once the game is caught up.
Version 1.13.6
AI
Added new high_xp_attack candidate action to default AI. This CA performs
attacks on enemy units so close to leveling that the default AI's combat CA
would not attack them.
New Micro AI: Assassin Squad AI
Fix bug #23720, AI units with max_moves=0 do not attack.
Fix bug #22179: [disable] weapon special is ignored by AI. A second
instance of the AI also ignoring this special under different circumstances
has also been fixed.
Fix bug of Experimental AI recruiting sometimes failing under shroud
Fix some mainline campaigns custom AIs not working due to syntax changes
after the AI refactoring for Wesnoth 1.13.5 (e.g. bug #25123)
Significantly improve move times for AI sides with many guardians
Micro AIs, other Lua AIs and ai_helper.lua utility functions:
Correctly and consistently deal with invisible units
New ai_helper functions get_attackable_enemies, get_visible_units,
is_attackable_enemy, is_incomplete_move, is_incomplete_or_empty_move,
is_visible_unit and robust_move_and_attack
Renamed function ai_helper.to_triple to LS_to_triples for consistency
with other functions
Some internal changes to fix rarely occurring bugs and to improve
robustness and speed
Campaigns
Eastern Invasion:
Fixed broken village encounters.
Tweaked the balance of Scenario 2.
Heir to the Throne:
Reworked the map and added new AI behavior in 'The Princess of Wesnoth'.
Delfador's Memoirs:
S9: Resolved inability to end level even when Delfador has the Staff
(bug #24951)
S17: Resolved Wesnoth units returning to recall list not being healed
properly (bug #24952)
S19: Resolved undead veterans victory condition not working properly.
Under the Burning Suns:
Redesign of all desert elf units (currently optional, selectable through
the difficulty menu).
Graphics
Improved or new terrain graphics:
New wooden floor variation and transitions.
New aquatic encampment.
New aquatic castles.
Reworked stone walls so they take up less space and improved transitions.
Added Wooden and Rusty Gates.
Improved connections between castle and wall terrains, allowing castles and
keeps to be placed adjacent to walls without glitches in most cases.
New sprite for Tentacle of the Deep.
Tweaked colors for all time schedules.
Language and i18n
Updated translations: Finnish, Polish, Russian
Lua API
Upgrade to Lua 5.3.3+
Consult http://www.lua.org/ for a full change list and updated documenation.
bit32 functions removed
utf8 support added
Added new function wesnoth.fire_event_by_id to fire an event with a given ID.
Added new function wesnoth.remove_modifications, which removes applied
modifications of the chosen type from a unit. The most efficient use is to
remove all modifications with a specific duration value.
Also callable as u:remove_modifications.
The built-in conditionals have_unit, have_location, and variable are now
present in the wesnoth.wml_conditionals table. This means they can be
directly called, extended with new features, or even overridden with custom
implementations.
New recall_filter field in unit proxy returns the [filter_recall] config
New variations field in unit_type proxy returns a list of unit variations
Each member is a full unit_type describing that variation.
The table is iterable with pairs().
Lua side, unit_type, and unit attack proxies can now be compared with ==
with identity semantics. (Previously, each time such a proxy was obtained,
it would produce a new object that did not compare equal to any others.)
Lua unit_type lists (wesnoth.unit_types and unit_type.variations) are now
countable with the Lua length operator.
Lua dialog functions now support the stacked widget and the unit preview pane
New wesnoth.show_menu function shows a dropdown menu at the mouse location
Lua attack proxy has new read_only field which is true for unit_type attacks
If true, attempts to change the attack will result in an error.
The name field in Lua attack proxy is now writable
The attacks field in the Lua unit proxy is now writable
Specifically, attacks may be replaced, appended (by assigning a new ID or
the next valid index), or removed (by setting a field to nil).
wesnoth.show_message_dialog supports second_portrait and second_mirror keys
in its first argument, which produces a dialog with two portraits.
The callable userdata returned by wesnoth.textdomain can now be called with
an additional two parameters (a plural string and a count) in order to support
gettext plurals.
New matches function in team and unit attack metatables, which test if the
side or weapon matches a filter.
helper.lua metatables are now protected from external access; getmetatable()
will return a descriptive string instead of the metatable.
ai.aspects.attacks no longer returns a full attacks analysis. Instead it
returns a table with "own" and "enemy" keys containing the valid units
for attackers and targets. The function ai.get_attacks() still returns the
full attack analysis.
Aspect fetcher functions (eg ai.get_aggression()) are now deprecated in favour
of the ai.aspects table.
The location_set iter and stable_iter functions can now be called with no argument.
In this case, they return an iterator suitable for use in a for loop.
New wesnoth.wml_matches_filter function takes a WML table and a WML filter and tests
if the table matches the filter. The filter syntax is as with [filter_wml].
Music and sound effects
Added a preference to pause the music when the game loses focus.
Now the music fades out between scenarios.
Networking
Ported campaignd to use boost.asio instead of SDL_net.
Removed unit tests for old networking stack. This was the last part that
depended on SDL_net
Performance
When a heuristic determines that it's probably faster, the game predicts
battle
outcome by simulating a few thousand fights instead of calculating exact
probabilities. This method is inexact, but in very complex battles
(extremely high HP, drain, slow, berserk, etc.) it's significantly faster than the
default damage calculation method.
Units
Changed the sound for the melee attack of the
Loyalist Bowman, Orcish Crossbowman and Orcish Slurbow.
User Interface
Trait descriptions in the help are now generated. (This makes user-defined
traits show up in the help as well.)
Fix game map sometimes showing and buttons sometimes not rendered properly
in story screen (bug #24553)
Improved font rendering on Windows.
Redesigned gamestate inspector window.
Recall dialog no longer shows units that no leader on the map can recall
(due to the [filter_recall] not matching)
Weapon specials only gained through AMLAs now get a help topic
The "Cores" button on the title screen is now hidden if no cores other
than the default are installed
Redesigned game dropdown/context menu appearance
New categories bar in hotkey preferences allows you to filter hotkeys
Fix issue with the title screen not redrawing when the window size or
fullscreen setting changes with a dialog open over it.
Restored descriptions for choices in combobox-based Advanced Preferences
entries (lost in 1.13.3).
When using the --wconsole option, the game now prints a prompt in the event
of a fatal error to avoid closing the console before the error can be seen.
Restored GUI2 textbox selection highlight lost in version 1.13.3.
Added a "Draw Number of Bitmaps" option to the map editor, for terrain
graphics diagnostics.
Ported file chooser dialog to GUI2, and redesigned it to include a
bookmarks bar with predefined and user-defined shortcuts.
Tweaked the border/groove color scheme on textboxes and sliders to better
reflect their state and mimic window and button borders.
The following dialogs have been converted to GUI2: Unit Recall, Unit List,
Game Stats, MP Create, MP Game Lobby, Faction Select, Unit Advance.
Improved UI responsiveness.
Tab completion in the Lua console is improved. It can now handle paths
containing square brackets (though it won't complete them) and will not
offer keys that are not valid identifiers.
WML Engine
Added ignore_special_locations=yes|no, default no, to [terrain_mask] to
ignore the special locations given in the mask, leaving all those on the
underlying map unchanged.
[terrain_mask] starting locations and special locations are relative to
the mask. Existing names replace any in the underlying map regardless of
their location. Each name as a unique location; but a location may have
any number of names. While a map/mask can give only one name per location;
stacking masks allows multiple names. Names cannot be removed.
Added {HAS_NO_TURN_LIMIT} macro for objectives
New attributes for [message] with [option]
Added variable= to [message]: if specified, gives variable name to
receive the [option] index (1..n) selected
only used if any [option] appear
Added value= to [option]: if specified, gives value to store in variable
instead of index number, only used if variable= appears in [message]
New second_unit, second_image, second_mirror attributes for showing two
portraits on a single message.
New attributes for [role]:
search_recall_list=yes|no|only(default yes) controls where to look
reassign=yes|no(default yes) if no, check for a unit and do not assign to
another
[auto_recall] sub-tag, if assigned to recall list, gives [recall]
attributes (no SUF)
[else] sub-tag, WML to execute if no unit found for the role
New help_text= key for [trait] to set the description displayed in the
help.
Added tag id= [fire_event], which allows raising events by id
[modify_unit] now understands [effect] tags, which it applies directly.
This replaces the use of [object] with no_write=yes (which will be removed
in the next release).
Add [object]take_only_once=yes|no (default yes) - if set to no, automatic
tracking is disabled for this object (allowing it to be taken multiple
times even if it has an id).
New [remove_object] tag which removes applied [object]s from matched units;
it can filter on the entire [object] WML. The most efficient use is to
remove all objects with a specific duration value.
Renamed [foreach] variable= to array=
Renamed [foreach] item_var= to variable=
Fixed several bugs in the name generation of the map generator
Fixed issues with using [endlevel] in victory/defeat events
The {MAGENTA_IS_THE_TEAM_COLOR} macro is no longer needed in [unit_type]
It is now the default behaviour unless overridden with the flag_rgb key.
New key type_tree in unit filters - similar to type, but also matches any
possible advancements of the specified unit types.
[options][combo] in [scenario], [modifications], etc has been renamed
to [choice] (which is more accurate). The old name still works for now.
~ADJUST_ALPHA() image path function now takes a WFL formula. It can access
the following variables: x, y, width, height, red, green, blue, alpha.
It no longer accepts a percentage (use ~O() for that).
Fixed [rule] in [terrain_mask] ignoring use_old=yes
Fixed filter returning invalid locations if invalid locations were given
in a variable that was used with find_in=
Moves cave map generator to lua. scenario_generation=cave is now deprecated and
will be removed soon. The Lua version has feature parity with the old one, but
the syntax is a little different. It supports both map_generation and
scenario_generation.
Tunnel functionality was expanded and the default behavior was altered in
order to make moves through tunnels consistent with all other moves:
Vison through tunnels is now possible and enabled by default. It can be
turned off by setting allow_vision=no in the [tunnel] tag.
Own and allied units on tunnel exits do not block the tunnel any more.
The blocking behavior can be reenabled by setting pass_allied_units=no
in the [tunnel] tag.
Added text_alignment= key to [story][part] to specify horizonal alignment of
text.
[set_variable] now supports abs= (absolute value), power= (raise to
power) and root= (extracts root, 'square' is the only value currently
supported) keys
Individual [terrain_graphics] rotations can now be skipped entirely by
using "skip" in the rotations= list.
WML macros can now include optional arguments with default values that the
caller can override.
Miscellaneous and bug fixes
A new way to make units invulnerable for debugging: select the unit and type
";unit invulnerable=yes". This method operates by decreasing the opponent's hit
chance to zero: as a result, it doesn't slow down damage prediction unlike the
"increase HP to ridiculous levels" method.
The ;choose_level command now works in the tutorial and in [test] scenarios
Fixed a stray ; character appearing pre-entered in the command console.
Fixed bug in wesnothd that was causing server crashes if game with
multiple network and local players was ran.
Added a tab to run the wmlxgettext tool to GUI.pyw
Fixed problem with Spectre's hitpoint bar positioning.
Fixed crash when unit with planned actions is killed before those actions are
completed (bug #20071)
Show correct number of attacks in case of swarm weapon special (bug #24978)
Fixed bug that icons of buttons under the minimap disappeared when the
player opened and closed a menu.
Correct unit recall count in statistics when undoing a unit recall (bug #25060)
Add tip to recall units instead of recruiting them if costs exceed 20 gold (recruitment costs)
Resolve sides in map editor not having a proper side number and subsequently
causing a crash upon editing (bug #25093)
Avoid rare cases of mini-map producing a divide-by-zero error (bug #25155)
[filter_vision]: fix bug of filter not matching own/allied hidden units
Prevent crash on quitting scenario with planned recruits present (bugs #24022/25193)
Version 1.13.5
Campaigns
An Orcish Incursion:
Linaera can recruit Mage, and cannot recruit Elves
Heir to the Throne:
Add journey tracks for 19c/20b path.
New sprites for Li'sar.
S10: Clarify objectives and change egg image on capture.
S19c: Removed the undead and the swamps.
Tutorial
Improve translatability for languages with gender-dependent pronouns
S1: Fix unit being deselected after the select message
S2: Highlight (outline) talked-about locations
Legend of Wesmere
S3: fix bug which silently disabled Urudin retreat AI
Reworked the multiplayer server to use asio functions for networking
operations instead of SDL_net, thus it no longer depends on SDL_net and SDL.
The client now uses boost::asio for communication with wesnothd too.
Removed support for SDL 1.2. SDL 2 is now the only supported version.
Terrains
Changed terrain code of Desert Mountains from Mdy to Mdd.
Editor
Allow to set special locations in the editor which can then be read by wml.
User Interface
Fix flickering caused by tooltips, closing windows and tabbing into the game (bug #24532)
Various design improvements to GUI2 widgets
New simpler GUI2 loading screen
New colored cursor graphics
Fixed Mage of Light halo appearing in the top-left corner of the screen
while the mage is moving (bug #23712).
Fixed Observers icon appearing behind other top bar items in MP games on
horizontal UI resolutions < 1024 (bug #24455).
Fixed ToD schedule progress indicator appearing behind other top bar items
on vertical UI resolutions < 600.
Improved the dialog for choosing what to do when a player leaves in
multiplayer.
The side overview now also shows allied human sides in sp even if
they aren't discovered yet
Added an option to disable the loadingscreen animation since it caused
bugs in some configurations.
Added a gui method to activate loggers (Preferences -> Advanced -> Logging)
loggers activated in the gui print just like loggers activated in the
command line (i.e. messages appear in the console)
The Lua console screen now has a clear button
Fix bug #24762: Editor actions are out of sync after resizing.
Increased the font size for text in buttons.
Changed unit help topics to use smaller images on smaller monitors.
WML engine
Add color= attribute to [message].
Add [else], search_recall_list=, auto_recall= to [role]
Fix some issues with [foreach]
Fix some issues with backstab-like weapon specials
Support [effect]times=
Add highlight=yes|no to [scroll_to], [scroll_to_unit], [message]
Defaults to no in the first two cases, yes in the third
If yes, the target hex is outlined.
New ~SCALE_INTO(w,h) IPF which preserves aspect ratio, using bilinear
interpolation scaling.
New ~SCALE_INTO_SHARP(w,h) IPF which preserves aspect ratio, using
nearest neighbor scaling.
Support delayed_variable_substitution= in [on_undo], [on_redo]
Note that this means $unit.x and $unit.y may not reflect the unit's
true location, so using [unstore_unit] on $unit may have unexpected effects.
This applies to $second_unit too. The $x1, $y1, $x2, $y2 variables work fine
though, so in most cases they can be used instead. Anything else in $unit
or $second_unit is also fine.
formula= in SUF can now reference $other_unit via the formula variable "other"
formula= now supported in location, side, and weapon filters
Weapon filters now support number, parry, accuracy, and movement_used
New [has_attack] in standard unit filters; supercedes has_weapon= and
uses full weapon filter.
lua_function=var.member now works in SUF; however, 'var' still needs to
be a global variable.
Added new keys name_generator, male_name_generator and female_name_generator
for the [race] tag to declare a context-free grammar to describe how names
are derived
Modification tags in [modify_unit] now support delayed_variable_substitution
(This means [advancement], [object], and [trait] tags.)
All looping tags now give an error if they contain no [do] tag.
(They may contain multiple [do] tags, however.)
Add [message]image_pos=left|right, which mostly supercedes ~RIGHT()
For [core] authors: New keys for game logo (game_logo, game_logo_background)
AiWML:
Filters within [micro_ai] can now use $this_unit, which was previously
impossible due to the config being prematurely parsed.
Simplified aspect syntax which works for all aspects, present and future:
All aspects with simple values can be specified as key=value
Except attacks, all aspects with complex values have a simple tag form
containing only the aspect value (e.g. [avoid])
All aspects, simple and complex, can be specified using a tag named by
the aspect, whose contents is the same as a corresponding [facet]
The full [aspect] and [facet] syntax also still works
[ai] configs no longer recognize the version= key
ai_algorithm key now selects a preset AI; possible values include
"ai_default_rca", "experimental_ai", and "idle_ai", but custom AIs
defined by eras or modifications with an [ai] tag can also be used
[leader_goal] now automatically sets facet ID for auto_remove
(Only if using simplified syntax; in full syntax, the ID must still be
specified in two places.)
The AI config in the gamestate inspector is now split into multiple
sections according to the type of component.
The following deprecated components have been removed:
recruitment stage (name=ai_default::recruitment)
old recruitment candidate action
(name=ai_default_rca::aspect_recruitment_phase)
old simple move-to-targets candidate action
(name=ai_default_rca::simple_move_and_targeting_phase)
The recruitment aspect has been removed from the engine; however,
"recruitment" is now accepted as a synonym for
"recruitment_instructions". Old code should work without changes.
[goal]name=protect_my_unit
The following experimental components have been removed:
(Most of these were broken or non-functional)
Experimental recruitment candidate action
This worked, but was worse than the default recruitment.
Global fallback candidate action
Akihara recruitment candidate action
Fallback stage (functional but useless)
Strategy Formulation with RCA stage
This worked, but was slow and unmaintained. If a maintainer
steps up, it may be restored later.
Several of the development AIs available in debug mode in the
multiplayer setup menu
The "Strong AI" has been renamed to "Default AI (RCA) with Alternate
Recruiting" and is now only available in debug mode.
Lua components (goals, aspects, stages, and candidate actions)
now support an [args] subtag, which passes any sort of WML data
to the Lua code - this works similarly to [args] in a [lua] tag,
though not quite identically.
Aspect syntax with [aspect] tag has been fully generalized so that
[aspect], [facet], and [default] are all exactly the same in terms of
what contents they expect. (Except that [facet] additionally takes
turns= and time_of_day=.) The most useful consequences of this:
You can nest a [facet] inside another [facet] if the outer one has
name=composite_aspect
You can define a [facet] with the Lua engine
invalidate_on_tod_change= has been implemented for aspects. It applies
when the bonus resulting from time of day modifiers (excluding any
illumination abilities) changes at any location on the map. Thus, it
occurs on average less often than invalidate_on_turn_start and may
be best combined with an explicit invalidate_on_turn_start=no.
Minor shorthands have been introduced in the recruitment_instructions
aspect:
[pattern] tag is like [recruit] with pattern=yes
[total] tag is like [recruit] with total=yes
If no [recruit] tag is present, a default is added with importance=0.
This means recruitment will happen even with only [limit] tags.
Extensions to [modify_ai]:
[modify_ai]action=change works on aspects, using path=aspect[id].
Useful if you need to change all the facets at once, but note that
it also wipes the [default] facet.
The [default] facet can be referenced as facet[default_facet].
This should rarely be needed, but is there in case it is.
It also makes them easily identifiable in the inspector.
Automatically copy over the id= with action=change, if the
new component did not specify one.
It can add, remove, and change jobs and limits in the
recruitment_instructions aspect. The path to use for this is
aspect[recruitment_instructions].facet[facet_id].recruit[recruit_id].
(For a limit, replace "recruit" with "limit".)
The [recruit] and [limit] tags now support id keys for this.
Added side_name= attribute in [side], it's now no longer possible to
specify the current_player attribute in the [side] wml.
unit filters, specially in wesnoth.get_units now have a limit= attribute
to limit the number or matched units.
Added new attribute "registered_users_only" to MultiplayerServerWML which indicates
that only registered users should be allowed to join the game
wesnoth now does a stricter check for unit type ids.
In multiplayer, victory events now fire at the end of the scenario if at least one
human player has won, this fixes OOS in mp campaigns.
Lua API
wesnoth.match_unit can now take a location (rather than a unit) as
the optional third parameter. This will cause the filter to consider
the unit to be on that location instead of its actual location.
This even works for units on a recall list.
wesnoth.highlight_hex is no longer deprecated, but its effect is
slightly different from the old one. It outlines a hex, nothing more.
wesnoth.select_hex is now deprecated in favour of the new
wesnoth.select_unit (or u:select). The effect is almost the same
(with the exception that it does not outline the hex if true is
passed as the second argument), but this name change was done to
emphasize that it acts on a unit, more than a location.
New wesnoth.set_time_of_day function which sets the current time
of day, taken either as the time ID (eg "second_watch") or the index
of the time in the overall schedule (eg, 1 would be dawn in the default
schedule). Optional second argument takes a time area ID, to set
local instead of global time.
New wesnoth.add_fog and wesnoth.remove_fog functions allow changing fog
on the map. The [lift_fog] and [clear_fog] tags now use this.
New wesnoth.add_sound_source, wesnoth.remove_sound_source, and
wesnoth.get_sound_source functions to allow manipulation of sound
sources. The [sound_source] and [remove_sound_source] now use these.
New wesnoth.log function for printing log messages. The [wml_message]
and [deprecated_message] tags now use this.
New wesnoth.name_generator function builds a name generator and returns
it as a callable userdata. Both the original Markov chain generator
and the new context free grammar generator are supported
New wesnoth.get_end_level_data() function which can be called in a
victory, defeat, or scenario_end event to access (or change) how
the scenario ends.
Fix wesnoth.erase_unit failing if the unit was on a recall list.
WML tables defined in Lua now accept string keys with array values
(where "array" is a table whose keys are all integers). This joins
the elements of the array with commas and produces a single string
value. eg {x = {1,2,3}} is equivalent to {x = "1,2,3"}.
wesnoth.effects table can now be used to alter the behaviour of
built-in effects - for example, to add a new feature to
[effect]apply_to=attack. It also now supports effect descriptions,
for use by the [trait] tag.
Additional fields in unit proxy:
usage, cost - self-explanatory
traits - list of the IDs of all traits
abilities - list of the IDs of all abilities
Additional fields in table returned by wesnoth.get_terrain_info:
icon, editor_image, light
Additional fields in unit type proxy:
race, id, alignment
attacks, which returns the same thing as unit.attacks
abilities, same as unit.abilities
Additional field in side proxy:
faction (read-only), faction_name (read-only)
LuaAI:
The table returned by check_*() now has a "result" field which
gives a description of the action's result; similar to "status"
but more descriptive.
Target tables now use a descriptive name for "type", instead of
an integer. This applies to the elements of the table returned by
ai.get_targets() and also to the elements of tables returned by
Lua goals. (However, Lua goals that used integers will continue
to work for now.)
There are some compatibility-breaking changes to Lua candidate
actions - see the release notes or the wiki for full details.
Lua AI code can now access the AI routines through the global ai
object. This object is only accessible to AI code; it does not exist
in the general Lua global scope.
When executing Lua goals, aspects, or candidate action evaluations,
the ai is in "read-only" mode - the read_only key is set to true,
and functions that change the gamestate, such as ai.attack(), are
missing from the table. (ai.check_*() functions are still present.)
The ai.aspects table provides access to every aspect known by the
engine, including several that previously did not have corresponding
ai.get_*() functions. You access them as ai.aspects.avoid, for example.
The table is read-only and raises an error if you attempt to write to it.
The way to create Lua candidate actions has changed a little. Old code
will require minor changes.
New wesnoth.micro_ais table contains the loaders for all Micro AIs.
New loaders can easily be installed by add-ons. See any built-in
micro AI (in ai/micro_ais/mai-defs/) for an example of how to do this.
The attacks aspect can now be defined as a Lua aspect. The code
should return a table with keys "own" and "enemy", each of which may
be either a unit filter table or a function which takes a unit as a
parameter and returns true or false.
Added "Registered users only" checkbox to multiplayer configuration dialog which
when checked, only allows registered users to join the game
Wesnoth formula engine
Formulas in unit filters can now access nearly all unit attributes
The following attributes were renamed (old names still work, for now):
leader -> canrecruit
total_movement -> max_moves
movement_left -> moves
states -> status
Nearly all unit type, side, weapon, and terrain attributes available
to Lua code are now also exposed to WFL. The exceptions are mainly
translatable strings.
Unit and side WML variables are now accessible under "wml_vars".
Since WML variables don't easily translate to formula variables, the
special attributes __all_children, __children, and __attributes provide
specialized views of the variables config as a list, string-list map,
and string-value map, respectively.
The 'special' attribute of weapons was renamed to 'specials', and it now
contains the special IDs rather than their translateable names.
New syntax features:
String interpolation syntax. Within a formula string (enclosed in
'single quotes'), the syntax [some_formula] interpolates the result
of the inner formula into the string. (The simplest use case is
interpolating the values of variables.)
String can now escape special characters:
['] single quote, [(] open square bracket, [)] close square bracket
New 'in' operator which tests if a list contains an item or if a map
contains a key.
New concatenation operator a..b which works on strings and lists
New range operator ab which produces a list of consecutive integers
This can also be used for "list slicing" - eg my_list[35] returns
a new list containing elements 3 through 5 of my_list.
Lists can be used as an index for a list. This is "selection indexing"
and returns a new list with only the elements specified by the indexing
list.
Function definitions (using the def keyword) are now supported in all
formula contexts, which means that they can be used outside FormulaAI.
However, non-FormulaAI functions are currently local to the formula
that declares them.
Maps containing string keys that are valid identifiers can now be
indexed with the dot operator instead of the indexing operator.
Strings can now be indexed via 'string'.char[n]. Also supported are
'string'.word[n] and 'string'.item[n] (the latter splits on commas)
Changes to core functions:
head() takes an optional argument - if present, a sublist is returned.
abs(), max(), min() now work on decimal numbers
reduce() function can specify an optional initial accumulator
This will be returned for an empty list instead of null.
substring() function can now accept a negative size parameter
This counts backwards from the specified offset
A size of -1 is the same as 1.
if() can take two arguments; returns null if the condition is false
tomap() will now invert the effect of tolist()
debug_print() now shows in chat area if debug mode is on
New core functions:
Trig functions tan, acos, asin, atan have been added. (Sin and cos
existed since at least 1.9 but were undocumented until very recently.)
Other common math functions - root(), sqrt(), cbrt(), log(), exp()
hypot(x,y) function calculates sqrt(xx+yy) with minimal error
pi() returning the circle ratio
tail() - opposite of head()
reverse() function for strings and lists
zip() function - converts [[1,2,3],[4,5,6]] to [[1,4],[2,5],[3,6]]
take_while() function returns items from a list until the first one
that fails a condition
find_string() locates a substring within a string
replace() replaces a sequence within a string
type() function checks the type of a formula result
distance_between() - this was promoted from FormulaAI to core
pair() function that produces a key-value pair suitable for
passing to tomap() - this also means key-value pairs are now
serializable (relevant in FormulaAI)
sgn(), trunc() and frac() functions for decimal numbers
Map generator engine:
makes now use of the new context free grammar name generator
ported name generation from english.cfg to [naming]
Bugfixes:
Dice operator is now synced (where possible)
Modulus (%) operator now works on decimal numbers
Exponentiation (^) operator is now right-associative
Fix several math operations returning a very large negative number when
the operation was invalid (for example, (-2) ^ 0.5).
Now they return null instead.
Formula debugger (accessed with the debug() function):
Now works again, but is skipped unless in debug mode
No longer explodes on formulas using less-than
Some better information and formatting in the execution trace
You can now step through "where" variable assignments
FormulaAI no longer starts recruiting if a formula evaluates to the
string 'recruit'.
Deprecated:
The fai/faiend keywords are deprecated as part of a move to clearly
define the difference between "Wesnoth Formula Language", the language,
and "FormulaAI", the AI engine that uses the language. For now they
still work, but any future code should use wfl/wflend instead.
Use of the .fai file extension is still fine for FormulaAI code;
for other formula code in a separate file, .wfl is recommended instead.
Miscellaneous and bug fixes
Resolve translated logo images not being used (bug #24357)
Ported the "hexometer" tool from Bash to Python 3
Recognize hotkey release events
Allow changing keybindings for scrolling the map.
Fix the move-to-targets candidate action of the default AI ignoring tunnels
Fix two rare bugs in the goto candidate action that resulted in goto moves
by other units being skipped after a unit could not get to its goal.
Bug #24260: Menu and Action buttons disappear on resize
Bug #24261: Area under Objectives not redrawn on resize
Bug #24294: Doubled-up GUI1 dialogs don't redraw the secondary in SDL2
Bug #24477: Segfault when launching Credits
Campaigns
Liberty:
Added some animations for the Rogue Mage line.
Fixed Relana appearing as male.
Sceptre of Fire:
Added some animations for Dwarvish Miner.
Improved sprite for Dwarvish Caravan.
Son of the Black-Eye:
Added some animations for the Orcish Shamans.
Under the Burning Suns:
Updated sprites for Naga Hunter, Naga Guardian line, Crab Man.
Crab Man changed to Monster Crab.
Graphics
Improved or new terrain graphics: Stones with Sand Drifts, Igloo Village,
Adobe Village.
Added option for toggling off water animations to Preferences -> Display.
Language and i18n
New translation: Asturian
Updated translations: British English, Galician, Russian, Swedish
Sound effects
Fixed various subtle timing problems with attack sounds.
Terrains
New terrain: Desert Mountains (Mdy), Impassable Desert Mountains (Mdy^Xm),
Ruined Adobe Village (^Vdr).
User Interface
GUI1 comboboxes now use the thinner menu frame style.
Implemented a new GUI2 Attack dialog
Added gui2 comboboxes.
Removed prompt when purging the WML cache from Preferences.
Implemented a new GUI2 Preferences dialog
Implemented a new font scaling option on the Display panel.
Selecting an entry in the friend/ignore list panel now copies it to the
input field; this makes it easier to edit friend/ignore notes.
WML engine
Added new event "unit placed", which triggers when (and regardless of how)
a unit appears on the map.
Added support for color= in [unstore_unit] and [print]
removed network and network_ai controlles, whether a side is networked is
now stored in the is_local attribute.
Eventnames (received in wesnoth.game_events.on_event) now have all their
spaces replaced with underscores.
lua can now read/write the 'persistent' attribute of sides.
lua can now read/write the 'alignment' attribute of units.
Added {CURRENT_FILE} and {CURRENT_DIRECTORY} macros.
add support for relative dirs in wesnoth.dofile/require
Added name= and write_name= attributes in [item]
Added description_alignment= key to [campaign]
Fixed [put_to_recall_list] not working correctly (bug #24390)
Wesnoth now does a stricter check in variablenames and doesn't allow
empty indexes like "a[].b" anymore.
Lua API
Added wesnoth.read_file
wesnoth.dofile/require now allow .. in relative paths.
unit.level and unit.upkeep can now be changed via lua unit proxies.
wesnoth.find_path is now available in lua map generators and allows border=yes/no parameter.
Miscellaneous and bug fixes
Fix the new log code on Windows to actually use Unicode-aware functions
in a couple of places so Wesnoth does not quit on startup when trying to
relocate the log file to a path with Unicode characters (bug #22897,
definitely fixed this time).
Decreased high memory consumption caused by the animated water.
Fix bug #23108: exclude aborted attacks from statistics
imgcheck now runs on Python 3
Fix bug #15259: Secondary click uses control-click instead of command-click in OS X
New hi-res icon using new logo for OS X
Removed the "wmlmove" Python tool
Fixed [event] in [unit_type].
Fixed oos caused by mp replay turn feature.
Fixed oos bugs caused by plattform dependent rounding from double to int in lua.
Fixed custom (lua-defined) scenario tags beeing removed from [replay_start]
Fixed savefile bloat caused by unit variations (walking corpses)
Fixed preferences file bloat caused by null-command hot-keys (bug #21969)
Fixed clearing of default hot-keys not working (bugs #21983/#22218/#23981)
Fix [for] not correctly handling the case when the array length changes
during iteration
Fix variables in [message][command] (bug #24288)
Version 1.13.2
Add-ons client
Warn user if attempting to upload an addon with a version lesser than or
equal to a published version.
Campaigns
Delfador's Memoirs:
Added defeat condition for death of the last undead veteran in
'Showdown in the Northern Swamp' (bug #23668)
Eastern Invasion:
Fixed scenario events not working right on easy difficulty in 'Captured'.
The South Guard:
Deoran is now the grandson of the Haldiel in HttT instead.
Tutorial:
Fixed transition to second scenario.
Under the Burning Suns:
Gave Garak a new ability called Teaching (at the start of every turn,
his experience points are transferred to adjacent units on the same side)
Editor
Add Recent Files menu with a list of recently saved or loaded maps or
scenarios, up to a custom limit (by default 10) that can be set in
Advanced Preferences.
Fixed Player Start labels not being updated with repeat map generations
(bug #20036)
Graphics
New animated water.
New standing animation for the Dwarvish Runesmith
New generic portraits for the Troll and Troll Whelp
Fixed crashes during start-up on Windows resulting from add-ons containing
erroneous textdomain declarations (bug #23839).
Spelling and grammar review across all official campaigns.
Lua API
It is now possible to implement custom [effect]s with wesnoth.effects
Changed interface for the wesnoth.synchronize_choice function
Added support for unit.level field (read only)
Added support for unit.advancements field (bug #23677)
Added support for unit.parry and unit.accuracy fields
Added support for current.event_context.unit_x/y fields (bug #23507)
Added wesnoth.set_dialog_focus function
Added wesnoth.set_dialog_visible function
Added wesnoth.show_message_dialog function
Added wesnoth.show_popup_dialog function
Added wesnoth.deselect_hex function
Added wesnoth.is_skipping_messages and wesnoth.skip_messages functions
New parameter write_to_mods in wesnoth.add_modification
Added wesnoth.random function
helper.shuffle is now synced
Remove wesnoth.get_unit(underlying_id)
Add wesnoth.get_unit(string_id)
Change wesnoth.message so that it can display translatable strings
Change wesnoth.put_unit so that the unit is passed as the first parameter
Add wesnoth.erase_unit, which replaces wesnoth.put_unit when called without
a unit
Add wesnoth.unit_vision_cost
Add wesnoth.unit_jamming_cost
Add methods to proxy unit metatable:
matches, to_map, to_recall, clone, extract, advance, add_modification,
resistance, defense, movement, vision, jamming, ability, transform
All are equivalent to a similar wesnoth.* function, but are called as
unit:fcn_name(arguments) instead of as wesnoth.fcn_name(unit, arguments)
Add wesnoth.races[race_id].traits
Add wesnoth.unit_types[unit_type_id].traits
Add optional third argument to wesnoth.match_unit, which is used for
the $other_unit variable in the filter.
pairs() and ipairs() now work on vconfig userdata objects
Add helper.get_nth_child
Add helper.child_count
Add helper.child_array
wesnoth.remove_time_area no longer takes a comma-separated list of time
area ids.
wesnoth.add_time_area no longer warns about commas in time area ids
unit.variables can now access sub variables.
Added wesnoth.get/set_side_variable to store variables in a [side]-
Added read/write fields carryover_bonus/carryover_add/carryover_percentage
in lua sides.
Music and sound effects
Updated music track "Frantic", new one by Stephen Rozanc.
New sounds: dwarf hit and die, ink, mud fist and glob.
Terrains
Removed unit elevation from N-S hanging bridges
Added unit elevation to NW-SE and SW-NE stone chasm bridges
Added unit elevation to NW-SE and SW-NE plank bridges
Hanging, stone chasm, and plank bridges are now displayed in-game simply
as "Bridge", retaining their descriptive names in the editor as per
convention.
Fixed spurious "could not open image 'terrain/.png'" error messages caused
by terrains without a minimap image (symbol_image) such as those from the
Special category in the editor (Impassable Overlay, etc.).
User interface
It is now possible to switch from replay directly into normal play
(bug #23833).
The game now shows a notification on remote clients if a sides takes very
long to do a local choice (bug #23297).
It is now possible to replay a turn in mp games by loading autosaves.
The game now asks for confirmation when attempting to quit during the game.
Add "unit status=..." command to debug console to add/remove unit statuses
GUI2:
stacked_widget can optionally display a single layer at a time. This
may be used to implement dialogs with multiple pages or tabs.
Widgets which are children of invisible or hidden parents can no longer
be interacted with even if the children themselves are still internally
visible.
Added support for tristate buttons/toggle panels or more generally
n-state buttons/toggle panels
Added a version dialog button to the title screen, replacing the Paths
option previously found in Preferences -> General.
WML engine
controller= in side filters can now be used in mp games for unsynced code
Added [effect] apply_to=max_expereince set=
Added enable_if= to mod and era events
Added $varname?default_value| in variable substitution
Fixed side_for= parameter in [message]s with input
New actionwml tag [on_undo] contains actionswml that is executed when the
current action is undone
New actionwml tag [unsynced] executes its contents in an unsynced context
where for example
[set_variable]rand= will return unsynced results
[campaign] now supports [event] subtags which are added to every scenario
of the campaign similar to [modification] [event]s
Added support for mod_x,mod_y= in [terrain_graphics].
Added support for has_flag= in terrain graphics [variant].
Added category= to [label] - allows grouping labels so that players can
show/hide them
Add female_text= to [animate_unit] and [unstore_unit] for easier
translating
Add female_message= to [message] for easier translating of lines spoken by
generic units
AMLAs in [modifications] now use [advancement] tags instead of [advance]
tags.
This means you can add an AMLA to a placed unit by simply using its
definition macro, for example {AMLA_DEFAULT}.
[get/set_global_variable]'s side= attribute now defaults to "global"
(bug #23686)
[team] share_view=yes/no, share_maps=yes/no was replaced with
share_vision=all/shroud/none
Add exclude_amla= key in [advancement] which disables the advancment if the
unit has already taken certain other advancements.
The WML preprocessor now writes warnings to stderr for macros redefined
without #undef, to help detect unintentional name clashes.
Fix macro definition line numbers being offset by 1 in WML preprocessor
messages involving macros.
Added WML menu item and event handler views to the Gamestate Inspector
dialog.
The Gamestate Inspector now displays empty WML variables too (including
containers/arrays).
Added new possibilities for [effect]:
apply_to=alignment - change a unit's alignment
apply_to=max_attacks - change a unit's attacks per turn
apply_to=recall_cost - change a unit's recall cost
apply_to=vision, apply_to=jamming - change a unit's vision/jamming points
apply_to=new_advancement - add new advancement possibilities (either
units or AMLAs)
apply_to=remove_advancement - remove advancement possibilities (either
units or AMLAs)
apply_to=attack - add set_ versions of all existing increase_ keys
apply_to=attack - add increase_movement_used and set_movement_used to
change the number of movement points the attack consumes
Ability to patch movetypes to account for custom terrains or damage types
Removed y offset by -1 from [message]'s scroll-to-unit logic.
Add [found_item] ConditionalWML to check if an [object]id= ActionWML has
been taken
New auto-stored WML variable $other_unit usable in the following contexts:
[filter_adjacent] - $other_unit refers to the $this_unit of the enclosing
filter (In weapon specials and unit abilities, the unit owning the
ability.)
[filter_self/opponent/attacker/defender] (weapon specials)
$other_unit refers to the other unit in the attack
(eg in [filter_self], it's the opponent)
[affect_adjacent][filter] (unit abilities)
$other_unit refers to the unit owning the ability
New rotate operators for directions: dir:cw and dir:ccw
(This is useful mostly in conjunction with variable substitution.)
These operators are applied after the existing '-' operator that takes the
opposite direction.
Adjacency filters in abilities and weapon specials now support count= and
is_enemy=
New implementations of backstab and leadership specials using $other_unit.
In particular, leadership is now a single macro and it is not supported to
give a unit a leadership ability of a different level (eg level 4
leadership on level 2 unit). The backstab= key is deprecated.
Add new looping tags: [for], [foreach], [repeat]
Add new flow control tags: [break], [continue], [return]
Added a new [difficulty] tag for defining a campaign's difficulty level
Add new syntax for [option], similar to the new difficulty syntax
Add [test_condition] ActionWML that tells why a conditional failed (for
debugging)
Add [remove_time_area] WML tag which takes a comma-separated list of time
area ids.
[time_area] no longer warns about commas in ids when not using remove=yes.
Add [random_placement] ActionWML
In [set_variables] you can now mix [value] and [literal], and even [split]
Add [resource] tag which contains [event] and [lua] tags smimilar to
[modification] but hidden from the user.
Removed name= attribute in [side].
Add support for [endlevel] bonus=
Editor
Added Category field and color sliders to the Edit Label panel.
Miscellaneous and bug fixes
Fix $this_unit auto-stored variable not working correctly in most SUFs
Made Documents\My Games\WesnothX.Y the default user config+data dir on
Windows to replace the broken \userdata default that
has never been acceptable practice. Portable installs are now required to
explicitly use . or .. (e.g. --config-dir .\userdata) to force the
user config+data dir path to be relative to the current working dir (see
also bug #23753).
Wesnoth now uses combined stdout+stderr log files on Windows, moved to
\logs during initialization and first created in the user's
temporary files directory defined by Windows. Log files are named like
"wesnoth--.log" and up to 8 log files are kept along with
the latest session's log file. This avoids issues caused by SDL 1.2's
built-in redirection code not being Unicode-aware (fixes bug #22897).
Removed legacy filesystem API implementation.
Fixed Generate Map dialog bug that caused last choice of map
generator to not be actually selected (bug #23711).
Fixed unbound memory read in internal time formatting code with
specially-crafted input.
Child wesnothd processes spawned by the Host Network Game option on
Windows now display console output directly instead of using stdout.txt
and stderr.txt.
Remember last selected modifications separately for single and multiplayer.
Fixed unit [resistance] and [jamming_costs] not being considered for sync
check.
Fixed problems with slow/poison/petrify sounds (bug #23024) and made the
sounds play automatically when the status is inflicted in combat, instead
of being played by attack animations.
Fixed OOS on random maps, where clients placed sides in different castles.
Fixed some (not all) OOS caused by modifying a sides controller by wml.
Fixed wml menu items becoming unsynced in later scenarios.
The game now automatically detects whether to show the game connect screen
between scenarios.
Fixed possibility of corrupting saved games in certain instances,
eg if an add-on tries to set an invalid variable
Fixed bug 23060: unit stat tooltips do not show.
wmllint, wmlscope, wmlindent and wmllint-1.4 now run on Python 3
Text boxes tab completion now lists friends and whisperer nicks for easier
answer (bug #9742)
Avoid crash when planning moves on planned recruits (bug #18637)
Fixed cases of wrong unit type used in planning moves (bug #20299)
Fixed hang when attempting to make a screenshot from a non-existent map via
command-line (bug #20900)
Fixed Cancel Orders not working when loading MP game (bug #22133)
Fixed broken Oasis terrain help entry (bug #23023)
Fixed load game hot-key not working in the main menu (bug #23215)
Added user's leave notification for ingame players
Version 1.13.1
Security fixes
Disallowed inclusion of .pbl files from WML, independent of extension
case (CVE-2015-5069, CVE-2015-5070, bug #23504).
AI
Fast Micro AI: exclude hidden enemies from attack evaluation by default;
add optional key attack_hidden_enemies to override this
Lua AI helper functions: fix bug crashing the AI when number= is not set in
a unit attack definition
Micro AIs: add a warning and avoid crash when a non-existing side is used
in the [micro_ai] tag
Campaigns
Dead Water:
The Stun effect now expires at the stunned unit's side turn end
Under the Burning Suns:
The Stun effect now expires at the stunned unit's side turn end
Editor
Redesigned Generate Map dialog to use a real listbox and remember the
last choice during the same editor session.
Fixed stack corruption bug in the Side Setup dialog.
Graphics
New generic portraits for the Walking Corpse and Soulless
Removed the ability to select individual factions when using map
settings as this breaks player recruit lists (bug #23593).
Era names no longer support formatting markup in the game setup screen.
Removed the Silver Mage from the available leaders for the Rebels faction
in Age of Heroes.
Fixed "Accept whispers from friends only" not working with the default
lobby UI, and added a warning every 5 minutes for individual rejected
senders.
Allow custom colors in MP connect dialog (bug #23629).
It is now possible to change a side's controller by WML (for example with
[modify_side]) in a MP game.
Changing teams by WML in a MP game causes less bugs (bug #23028).
MP campaigns now behave more like single-player campaigns.
Various fixes in the MP game setup screens (bugs #23641, #23509, #23496,
#23462).
Units
Fixed the Shuja not having the default AMLA.
User interface
Fixed minimap buttons appearing without contents or in the wrong state
during WML start events until they are interacted with or control is given
to the player for the first time or some other unspecified thing happens.
Force uniform font rendering settings across X11 and Apple OS X, avoiding
color glitches resulting from incorrect applications of subpixel hinting
(bug #20337).
Hide mod options from the user command prompt dialog in the MP lobby when
not authenticated as a mod.
Fixed unit bars, ellipses, and orbs disappearing for individual units in
replay mode when using Skip Animations/Quick Replays if they moved without
attacking or otherwise switching to a new animation.
Chat Log dialog now starts on the last log page when there are multiple
pages.
Fixed Wesnoth's fonts remaining in use by Windows after abnormal exits, as
well as being available to other applications.
Started showing on which difficulty levels a campaign was completed.
Modifications for single-player campaigns are now selectable directly in
the single-player Campaigns menu.
The game now automatically detects whether to show the game setup screen
in single-player mode.
WML engine
Added support for [object] duration=turn end
New or updated image path functions:
~BW(): converts an image to black and white
~NEG() now supports 0,1 or 3 arguments, allowing solarization effects
~SWAP(): swaps the RGBA channels of the image
~CROP(): now supports negative x and y values.
Added support for SLF in [label] when used inside an event
Added synced=yes/no (default yes) to [set_menu_item]
[options] is now recognized inside [campaign]
type=sp/mp/hybrid now must be specified for [modification]s
Miscellaneous and bug fixes
Removed abandoned libana network API implementation.
Fixed bug #23201, toggle icons display error in replay.
Added --wconsole switch to allocate a console on startup (Windows-only).
Added cwesnoth.cmd wrapper script to start Wesnoth with a console
displaying stdout+stderr (Windows-only).
Updated mainline campaigns and multiplayer scenarios to use [filter] status=
instead of [filter] [filter_wml] [status]
Fixed a segfault in [move_units_fake]
Fixed unbound memory read in the MP map selection screen that could lead
to a segmentation fault or other abnormal behavior (bug #23606).
Made silence.ogg larger to work around a crash involving the multiplayer
lobby with music and sound enabled (bug #23633, bug #23599) with libvorbis
builds affected by Debian bug #782831.
Moved [role] tag to Lua (fix for bug #23630)
Removed broken Python port of wmlxgettext from data/tools/.
Default to non-strict compilation with CMake.
It is no longer possible to undo moves before the last (manual) shroud
update.
Debug commands are now synced.
Fixed GUI2 toggle panels in some way that the author of this changelog
entry chose not to specify.
Removed some config reloads, especially when leaving games or entering
the single-player Campaigns menu.
It is now possible to use WML to disable/enable quick 4 MP leaders in the
Default era and the time over advantage dialog by setting a WML variable.
Version 1.13.0
Security fixes
Fixed arbitrary file read from WML/Lua API (CVE-2015-0844, bug #23440).
Add-ons client
The Update All button is now displayed on all Add-on Manager views instead
of just the Upgradable filter view, and enabled only when there is at
least one add-on that may be upgraded.
Add-ons server
Add-on metadata pattern blacklisting implemented.
Major internal refactoring done.
AI
New Micro AI: Fast AI
Big Animals Micro AI: bug fix for units not attacking when [avoid_unit] is
not set
Bottleneck Micro AI: bug fix for case when allied units are present
Coward Micro AI: new optional key attack_if_trapped=
Forest Animals Micro AI: bug fix for wander terrain lying on border hexes
Herding Micro AI: bug fix for dogs sometimes having moves left at end
Lurkers Micro AI: fix bug in wander terrain selection
Lurkers Micro AI: bug fix for attack error when lurker runs into ambush
Lurkers MAI: bug fix for attempting to attack petrified units
Messenger Escort Micro AI: new optional parameters [filter],
[filter_second] and invert_order=
Stationed Guardian Micro AI: make guard_x/y= optional keys
Stationed Guardian Micro AI: bug fix for unreachable stations
Messenger Escort Micro AI: bug fix for escort units blocking messenger's
progress
Several Micro AIs: fix a variety of rarely occurring but serious bugs, such
as invalid savegames or disabling the AI from working for the rest of the
turn or after changing the Micro AI settings.
Bug fix for requiring unnecessary keys for removal of several Micro AIs
Fixed a bug that made it impossible to change or delete Micro AIs after a
game had been reloaded (bug #21750). This was a general bug in the RCA AI
mechanism and applied to other CAs as well, but it was most visible in the
Micro AIs.
Some internal reorganization of Micro AI code to facilitate customizing
them for UMC and adding functionality from other versions of Wesnoth. Some
code cleanup for consistency, readability and speed, as well as fixing of
some minor and subtle bugs.
Fix bug in Random Recruit Micro AI: the AI can now handle custom castle
terrain independent of its terrain code
Fix bug in Return Guardian and Goto Micro AIs when there is no path to
the goal hex
Several fixes of translatable strings in Micro AIs
Micro AIs: only display on-screen error messages when in debug mode
Add conditional inclusion of AI macros to AI cfgs in data/ai
Campaigns
Changed all occurrences of {FLAG_VARIANT ragged} to {FLAG_VARIANT6 ragged}
Singleplayer campaign creation now utilizes the create, configure,
and connect engines from the multiplayer codepath.
Eras, mods, and options are now available for sp campaigns.
Fix sighted events firing too early in several scenarios. Fixes bug #22466
Use the new bigmaps for A Tale of Two Brothers, Delfadors Memoirs, The
Hammer of Thursagan, Northern Rebirth and the epilogue of Legend of
Wesmere.
Remaining cases of old-style note and carryover information in [objectives]
have been converted to a newer style.
A Tale of Two Brothers:
Updated music playlists.
Descent into Darkness:
Fixed various issues with player and enemy gold and income in
'Descent into Darkness'.
Fixed Darken Volk's ellipse in scenarios 'A Small Favor part 3' and
'Alone at Last'.
Fixed Darken Volk being completely passive in 'Alone at Last'.
'Return to Parthyn' now has variable content depending on whether
necromancy was used in 'Saving Parthyn'.
Eastern Invasion:
In 'Captured', stolen gold won't be mentioned if the player had no
carryover gold.
Updated maps for scenario 14, 16 and 17b.
New animation for Ravanal's shadow wave.
Added the Skeleton Rider line.
New map for 'Mal-Ravanal's Capital', as well as updated
maps for scenario 2 and 4b.
Tweaked and rebalanced all scenarios up to 'Two Paths'.
Heir to the Throne:
Tweaked and expanded music playlists for all scenarios.
Fixed missing message in 'The Siege of Elensefar'.
Hide unit variations that should not be listed in the help browser.
Liberty:
Fixed possibility of no viable routes around guards in 'Hide and Seek'.
Tweaked resistances for the Skeleton Rider line.
Northern Rebirth:
Fixed Sister Thera and Father Morvin respawning into the recall list if
the other is on the north or west map edges.
Sister Thera and Father Morvin will no longer speak dialog on their death
after 'The Pursuit'.
The maps for 'Infested Caves', 'Clearing the Mines', and 'The Pursuit'
have been completely redone.
All scenarios up to 'Old Friend' have been significantly tweaked and
rebalanced.
Sceptre of Fire:
Balancing changes for 'The Dragon'.
Son of the Black Eye:
S2: adjusted starting villages; scenario now ends if Kapou'e is already
on the signpost when the messenger comes back
S3: make objectives consistent between before and after trolls appear
S6: remove AI controller. It doesn't work with sides without a leader
S6: reduce randomness of unit types unloading from galleons
Minor balance tweaks to scenarios 7, 8, 12, 14, 15, 17 and 18.
Made allied leaders less likely to get themselves killed.
Minor changes to objectives and messages in scenarios 7, 8 and 14
The Hammer of Thursagan:
Fixed missing objective in 'The Court of Karrag'.
Rebalanced scenarios 'Invaders', Mages and Drakes' and 'Fear'.
Set Masked Dwarvish Lord range attack same as for Dwarvish Lord
Fixed some messages not being shown in custom events in 'The Underlevels'
'The Court of Karrag' and 'Epilogue' feature a new map.
The Rise of Wesnoth:
Hide unit variations that should not be listed in the help browser.
Tutorial:
Rewritten with an eye to being less constricting and more informative.
Under the Burning Suns
Fixed recruited Desert Archers being always male.
Fixed malformed rand range errors during AI turns on medium difficulty
in 'A Stirring in the Night'.
Fixed bug #22800: Cloaked Figure appears in strange location.
Fixed bug #22799: No allies killed by enemy reinforcements.
Fixed bug #22790: Various problems with dehydration.
Hide unit variations that should not be listed in the help browser.
C++ Engine
Purge "human_ai" controller type. This is a fixup of bugfix #18829 below.
Editor
Added an entry for the terrain description help to the context menu.
Default hotkey bindings for brushes (1-5)
Disabled the swap palette button when the unit palette is active.
Disabled the tod schedule and playlist menus in pure map mode.
Support for displaying the saved status of the selected area.
Fixed error messages about missing UI elements.
Fixed falcon race missing an icon due to having incorrectly-named image
files.
Graphics
New Ancient Lich baseframe and animations
New standing animation (NE and SE) for the Revenant
New standing animation for the Dwarvish Stalwart
Smooth unit movement over terrains with elevation such as keeps and
bridges (bug #20635).
Fixed bug #22045: Only blit neutral surfaces.
[item] images are now subject to local ToD lighting effects instead of
just the current map-wide ToD lighting (bug #22215).
Disabled "alpha thresholding" in the bilinear interpolation algorithm
used for all sprites and images. (This was introduced as a workaround
for an old bug.)
Add a new bilinear interpolation implementation, which properly performs
alpha weighting when averaging colors, and rename old one as the legacy
version.
Align unit overlays to the sprite rather than the occupied hex.
Added Brazier and Lit Brazier embellishment terrains
New beach waves terrain animation.
New images for the dummy, barrel, and green cloak items
Updated Snowy Orcish Castle and Keep terrain images
Help browser
Several sections have been rewritten or had their layout improved
Added trait list with links to the help page for unit types
Added Defense Cap column to the Terrain Modifiers table in unit help pages
for units with a defense cap on at least one terrain type, which also now
include a note to this effect in their special notes.
Fixed a bug which caused the terrain section topic not to properly generate
a list of its contents.
Add a new help section to the terrains topic which explains about mixed
terrain types.
When using the terrain description feature with a mixed terrain type, the
game will autogenerate a formatted explanation of its best / worst movement
/ defense properties.
Added automatic help entries for all eras, fulfilling Feature Request
#22107
Fixed in-game help descriptions of default factions, using content from
wiki
Added automatically generated lists of races and alignments to the
descriptions of factions
Autogenerated Time of Day Schedule section
Unit types that do not include any visible (hide_help=no) variations no
longer generate topic sections.
Fixed cmake pot-update target on Debian and other systems that do not use
bash as the default /bin/sh.
Lua API
Upgraded Lua to version 5.2.3.
Fix bug #21761: wesnoth.synchronize_choice will now give a warning when
the table returned by the user-specified function is not completely valid,
when wesnoth is running in debug mode (--debug command line flag).
Added new function wesnoth.get_all_vars().
Add (tentative, preliminary) support for lua scripting of wesnoth
application functions
Enable ilua "strict mode" by default. This safety feature helps to catch
errors caused by mistyped variable names, and improves the behavior of the
lua interpreter console. See 1.13.0 RELEASE NOTES for more details.
Add multiplayer client scripting (join lobby, chat, host games, save games,
reload games) and mp unit tests based on this
Add functions in wesnoth.map_location to perform map location arithmetic
using the same functions the C++ engine does
Enabled support for the bit32 library (bitwise operations)
Added support for treeview wigets in lua gui2 dialogs.
Added support to define wml conditional tags in lua. See the
wesnoth.wml_condtionals table as described on the wiki.
Multiplayer
Fixed the Set Password option during game creation not having an effect
due to a misplaced WML attribute in the client's command for the server
(bug #23015).
Fixed missing scenario title in lobby for reloaded MP campaigns.
Added "no mirror" and "no ally mirror" options to the MP configure screen.
Multiplayer content [era], [modifications] now carry version info of their
associated add-on, and may have "addon_min_version" fields set which
specify backwards compatibility with earlier versions.
Missing content for games hosted in the mp server may now be retrieved
automatically by clicking on these games in the mp lobby.
Ported the password prompt displayed when joining a password-protected MP
game to GUI2 (bug #23455).
Music
Change main menu track to Journey's End.
Replays
Added a button that allows playing a single move in replay mode.
Units
Increased the experience requirement for the Rami from 32 to 39
Increased the experience requirement for the Saree from 56 to 64
Changed sound timings for Khalifate melee attacks
New chill tempest animation for Lich/Ancient Lich
Add 'elemental' trait to Mudcrawler line
Fix sound timings for drake fire animation macros
Assigned capitalized translatable names to Walking Corpse and Soulless
variations (bug #22902).
Hid alternate Great Wolf variation from help as it is identical to the
default variation stats-wise.
User interface
Added a context menu option for command mode.
Added a Classic theme which restores the 1.10 UI.
Made orb and minimap colors configurable in Preferences.
Remove 'allow_new_game=no' entries from random map new game list
Fixed bug #22095: An assertion failure in the gamestate inspector.
Changed: A listbox can now update its size when rows are added.
Changed: Avoid listboxes to handle mouse clicks twice.
Fixed bug #22144 + #22046: An assertion failure with empty labels in
a listbox.
The :inspect dialog now uses the same function as saved games to generate
WML in text form instead of a simplified version.
Added a button to copy the currently displayed content from the :inspect
dialog to clipboard.
WML array elements are now displayed with subscripts in the :inspect
dialog.
Added a button to copy the in-game Chat Log dialog contents to clipboard.
Fixed the WML load error dialog not displaying an add-on name instead of
falling back to its directory name if the add-on contains an outdated
_info.cfg file lacking an [info]title= value.
Fixed most of the minimap buttons and the End Turn button appearing
without contents or in the wrong state during WML start events until they
are interacted with or control is given to the player for the first time.
Added a new subdialog in Preferences to clean or purge the WML cache.
Fixed AI engine names in the MP game setup screen being translated to the
language selected when Wesnoth was started rather than the current
language (bug #22092).
Added a new "Advanced Settings" button and dialog to campaign select.
Added new wml attributes to listbox: has_minimum and has_maximum.
Added a "Disable automatic moves" preference to disable automatic movements
at the beginning of a turn.
Fixed lower button row padding for GUI1 dialogs including Statistics and
the Add-ons Manager (bugs #22379, #22791).
Fixed mouse tracking issue with workaround by changing the default window
resolution for OS X to 800 x 600 (bug #20332).
Removed the "Replay viewer" text label from the replay controller theme,
because it caused problems for translators and was unnecessary
Fixed bug #22337: Bug in inspect long arrays
Added a new "Alerts" configuration screen under Preferences > Multiplayer,
refactored all of the mp alerts / desktop notifications for customizability
Removed "desktop_notifications" and "lobby_sounds" advanced preferences,
as they are subsumed by the Preferences > Multiplayer > Alerts screen now.
Added support for hyperlink rendering and clicking in gui2 labels.
Added lua interpreter console, accessible via a hotkey
Add lua console button to gamestate inspector
Add command history and history expansion to lua console, based on optional
support from GNU readline history library.
Add support to evaluate expressions automatically in lua console, based on
a lua lib "ilua", and "experimental compilation" technique.
Fixed game falling back to desktop if a user declines to load a previous
version save from within a game
Fix bug #22984: Sliders (GUI1) focusing improperly in non-game contexts,
and not responding to left-right key press
Wesnoth now ships with Bold and Oblique forms of its default font, Deja Vu
Sans, and these are used in many menus and in the in-game help for styling
text where previously we used SDL_TTF. Fixes bug #22376.
WML engine
New image path functions:
~XBRZ(): Takes one argument, the scaling factor (1-5). Uses the xBRZ
scaling algorithm added in this release.
~SCALE_SHARP(): Anologous to ~SCALE() but using the nearest neighbor
scaling algorithm instead.
~PLOT_ALPHA(): No arguments, plots the alpha channel in greyscale.
Mainly useful for diagnostics of other function combinations, or
debugging the engine itself.
~WIPE_ALPHA(): Again mainly useful for diagnostics.
~ADJUST_ALPHA(): Takes either a % or an 8-bit integer, and "multiplies"
the alpha channel by this value.
~SEPIA(): Gives the image a sepia tint.
~NEG(): Gives the image a photographic negative effect.
Added customizable recall costs for unit types and individual units,
using the new recall_cost attribute in [unit_type] and [unit] (bug #13074).
Added support for [elseif] tags inside [if]
Schema validator and preprocessor #warning messages now conform better to
the new WML parser/preprocessor diagnostics format introduced in version
1.11.10.
Added define= functionality to scenarios, eras, and modifications.
[unit] uses passed [advancement]s instead of unittypes advancements if
[advancement] were given in [unit].
allow [lua] tags inside [modification] and [era] (which have the same
effect as [lua] tags inside [scenario]).
enable side_for= in key [message] with [option]s.
added [effect] apply_to=fearless/healthy which is now used by
healthy/fearless traits instead of hardcoding the id of those traits in c++.
added support for a shuffle key in the [music] music to allow selecting
between random and non-random music play (bug #19653)
Fixed a bug that prevented [animate_unit] from displaying death or victory
animations for those units that filter them based on weapon (eg. Wose)
New WML tags: [put_to_recall_list] and [sync_variable].
Fixed nested macros emitting incorrect bindings to the default 'wesnoth'
textdomain at the end of a substitution instead of the parent textdomain,
this breaking localization of subsequent strings (bug #22962).
Sounds for slow and poison are automatically played when slowing/poisoning
a unit, and should no longer be played by the attack animations.
force_lock_settings defaults to yes in [scenario].
Moved all preprocessor diagnostics from the 'config' log domain to
'preprocessor'.
Dropped support for [filter_side] in [gold] and [modify_ai], [theme] name=
in place of id, and [object] duration=level.
Allowed direct modification of unit.ellipse variable even if ellipse= is set
in [unit_type] or by an [effect]
Add accelerate=yes/no key in [delay]
Add support for status= key in SUFs
Add "disallow_shuffle" key in [side], which causes the "shuffle sides"
feature always to skip this side, even if it is human playable.
Add "require_scenario" key in [scenario], [multiplayer], which causes a
multiplayer game to require that all participants have the add-on installed.
Miscellaneous and bug fixes
replace 'fight_on_without_leader'=yes/no with defeat_condition=no_leader/
no_units/always/never which allows the wml developer to decide when a side
is considered defeated
Fix Fisher-Yates implementation of Lua helper.shuffle (bug #21706)
Fixed issues with the ~BG() image path function not always working with
cached images.
Idle controlled sides now serialize as human controlled.
Fixed bug #20876: A segfault in cut_surface.
Dropped support for AmigaOS, BeOS, and OS/2.
Increased the sound mixer channel allocation from 16 to 32, thereby
raising the limit for simultaneous sound effects from 5 to 20, and
simultaneous UI sounds from 1 to 2.
Fix bug #21758: "Ready not blocked while player pick faction."
Fix bug #18829: "ai sides show up as "controller=network" on remote
clients". This issue is the source of some difficulties with mp campaigns
which occur when the campaign is reloaded from a non-host side, or after a
player rejoins from observer status. Hopefully, reloading campaigns is
easier after this.
Fix bug #21797: "Mandatory WML child missing" when leaving a reloaded game.
Fix bug #21808: Cannot join a reloaded game as an observer.
Fixed halos glitching through locations that become shrouded after the
halo is rendered for the first time.
OS X user data directory is now ~/Library/Application Support/Wesnoth_1.13.
For compiling Wesnoth using Xcode, a new version of
wesnoth_compile_mac_1.13.zip is also required.
Fix bug #21257: Lagging animations with skip AI animations and fog/shroud.
Improved unicode handling on windows for characters outside the Basic
Multilingual Plane.
Fix bug #3856: The turn dialog used in hotseat MP play now applies
a blindfold for the duration of the dialog.
Petrified units are no longer displayed in the "Damage versus" tooltip.
Fix bug #21759: "timer refreshed too often when time runs out"
Use one combo box instead of check boxes for replay options "skip replay"
and "enter blindfold". This fixes the mp lobby in width <= 800 resolutions.
Fixes bug #21888.
MP server now commits controller changes to the replay rather than updating
as we go along. Among other things these means that players that join an
scenario with ai sides which has already started won't have corrupted
controller types which would prevent them from successfully saving and
reloading in the future.
We have also moved all "controller tweaks" associated to the start of MP
games to server-side rather than having a mix of client and server code.
Fixup user-displayed strings associated to replay options, idle state
OS X: mark Wesnoth as not high-resolution capable. This greatly improves
performance on retina devices.
Upgrade Xcode project to enable both i386 and x86_64 builds
Fixed problems with idle controller type in networked mp.
Fix bug 21459 by making dropped sides default to idle.
Fix bug 21882 by introducing "fight_on_without_leader" boolean attribute
of [side] tags and refactoring check_victory to use this.
Changed: Don't use the random generator for units with no names.
Fix bug #21910: code for game is ready bell is corrected, simplified, and
moved to mp_connect::process_network_data.
Deliver desktop notifications in tandem with "game is ready" bell and
also the "game has begun" bell.
Fix bug in which blindfold could cause OOS.
Fix bug #21914: allow drake walking corpse variation to move on unwalkable
Fix unnecessary "Mandatory WML Child not found" error when replay file
doesn't have a [carryover_sides_start] tag
Server now generates PR 121 compliant replay files.
Fix bug #21916: ready blocked at inappropriate times
Fix bug #21931: controllers bugged in (basic campaign) when networked
Fix bug #21883: make sure movement animations don't cycle with fog on
Fix bug #21316: make subframes within standing animations cycle by default
Fix bug #21967: fix crash when unit modification to traits has empty id
Fix bug #19258, 21962: WML variables spuriously copied to replay_start
Fix implementation bug in random number generator: rand_pool_ is now an
unsigned long rather than an unsigned int.
Fix bug #21491: fix drag+drop for unit movements
Fix bug #21448: make premoved units selection like in Wesnoth 1.10
Fix bug #21372: fix unit move continuation if enemy discovered
Added a Python/Tkinter based GUI to allow running wmllint, wmlscope and
wmlindent in an easier way
Some commandline output which was helpful for noninteractive ai testing
is redirected from std::cout to a logdomain "aitesting".
Added WML unit test capabilities, accessible from commandline using -u
switch. These are useful for unit testing the WML / lua api.
Support for total conversions, so called "cores".
Fix bug #22030: correct index of weapon special disable in attack GUI
Fix bug #21964: assertion failure when using "controller" attribute with
a number.
Add [do_command], which takes the body of a [command] tag from ReplayWML,
(some possibilities not allowed), and executes the corresponding action.
It is replay safe and triggers WML events as appropriate.
Reallow selection of another unit on same side without deselect first
Add "strict mode". Using --log-strict=[severity] causes wesnoth to throw
a game_error exception when anything is written to a log as severe as
that. For example --log-strict=warning causes both warnings and errors
to generate runtime exceptions. This is intended for unit tests.
Fix bug #21867: team flag colors not refreshed after making use of
[modify_side] color= unless a new flag set is also provided.
Fix a bug where in movement records, "skip_sighted" was sometimes
spelled as "skip_sighed".
Fix bug #22020: make base units with variations help entry clickable
from the 'Unit Description' menu entry or from side pane.
Fix bug #21977: ready blocked on scenario transition, when
allow_new_game=yes
Add "MAKE_ENUM" macro to simplify parsing of WML options.
"MAKE_ENUM" macro signals WML parsing errors when the game is run
in debug mode, and an illegal value for an attribute is encountered.
Fix bug #21397 Reloading may cause a side's turn is not initialized.
This bug affected only networked mp, at least since version 1.8.
[modify_side] may now alter the value of [side] defeat_condition.
Fix bug #22116: unlock movement when attacking enemy+discovering in fog
In mp the other players now also proceed to the next scenario if one human
player wins.
Fix bug #21397: "Saving and loading may cause a side's turn is not
initialized".
Fix bug which caused no units to be displayed when reloading an end of
scenario save, by stripping them from the save file. However, this does
not fix bug #15545, which was the reason that this behavior was introduced.
Fix bug #22123 "Replays don't reset map when reset button is pressed,
causing OOS"
Wesnoth reports an error if it evaluates [if] and finds no [then], [else],
[elseif] children, as a chat message from lua.
Fix bug #22134: Campaign prefix not used in mp campaign saves
Made the error messages sent to stderr when the core data dir is
incorrectly set more helpful.
Fix bug #20126: Recursive preprocessor includes cause infinite loop
Added 'faction_lock' and 'leader_lock' to SideWML to be used in MP Connect
screen. Fixes bug #21978.
Fix bug #22231: partial moves now able to be continued in whiteboard
Added wmi_pager object to control how wml menu items are displayed in
context menus, and allow to display more than seven.
Made it so /../ (non-Windows) or /../
(Windows) are also considered possible data directories if they contain a
data/_main.cfg file, intended to help with cmake builds.
Fix bug #21723: team-specific items displayed to wrong players / at wrong
times
When parsing command line args, if we fail to parse, give an error message
rather than crashing with no explanation.
Fix bug #22305: assertion failure in unit_display.cpp
Fix bug #22086: wrong or missing minimap previews displayed b/c of problems
with saveindex
Fixed the SCATTER_UNITS macro so that it may no longer attempt to place
units at the map borders.
Add [has_ally], [has_enemy] to work around issues reported here:
http://forums.wesnoth.org/viewtopic.php?f=21&t=40702 In a side_filter,
[has_ally] and [has_enemy] are corrected / simplified versions of
[allied_with] / [enemy_of], this is an extension of the bugfixes for
[filter_vision].
Fix [side] share_view/maps always beeing false for non-first levels in mp
campaigns
Fixes start-of-scenario multiplaer saves (#22068)
Fix bug wherein "lobby sounds" advanced preference didn't do anything for
the normal (GUI 1) lobby.
Fix bug wherein dbus notifications did not have a wesnoth icon
Fix bug wherein chat history synopses weren't working right in the dbus
notifications
Default to classic minimap unit/village color coding (colored by side).
Default to classic minimap terrain representation (satellite view).
Display the tooltip for actions browsed in the hotkey preferences dialog.
Enabled action icons in the hotkey preferences dialog.
Fix bug #21717: "F5->reload wml tree" doesn't work in editor.
Fix bug #21298: Minimap shows invisible overlays
Remove carryover WML (this may make a reappearance in 1.13.0 but it is
considered premature now, please see github PR discussion for more info)
Fix bug #22465: Minimap not redrawn after turn dialog.
Fix bug #22306: move_unit moves a unit even when it shouldn't
Fix bug #22611: loading a theme with nonexistent button images would cause
the program to close.
Fix bug #22487: advanced preferences descriptions not showing up
Fix bug #22646: Tooltips broken in replay viewer
Fix bug #22643: Cannot compile with boost 1.56
Fix issue where the chatlog for a replayed game could not be opened in
single player. The chatlog can now always be opened.
Fix bug #22745: choose_track function crashes the game in certain cases
Fix bug #22650: nontranslatable strings displayed in tooltips for terrain
icons
Fixed Gameplay -> Time of Day help topic displaying the Dawn ToD picture
where the Second Watch picture should be used instead (bug #22537).
Fixed mishandling of nested subnamespaces by the [clear_global_variable]
WML action causing an assertion failure (bug #21093).
Fix bug #22443: Scenario Settings table has inaccurate Start Gold info in
certain cases
Fix Grand Knight image being distorted in the sidebar
Fix bug #22251: Map labels not appearing in mp
Fix bug: lobby sounds not all playing. This was fixed by adding a second
dedicated channel for UI sounds, and moving the "Ready to start" sound to
the turn bell channel.
Bug fix: another instance of "overlapping messages", this time with the
planning mode activation hotkey
Fix bug #21400: Use unit 'image' with higher priority than 'image_icon'
for animation frames with no specified image.
New filesystem implementation based on boost filesystem
Added "--noaddons" command-line argument, prevents any add-ons from being
loaded.
Added "--render-image" command-line argument, similar to --screenshot, but
instead of a map, it takes a wesnoth imagepath and generates at bitmap
with the filters applied.
New gettext implementation based on boost locale. This raises min boost
requirement to 1.48, and adds a new dep (locale, filesystem was also added
above)
New image scaling routine imported from the xBRZ project (HqMAME on
sourceforge)
Now may save screenshots and other images as pngs, using SDL_SavePNG lib
(from github)
New RNG implementation using boost::mt19937, and boost::random_device for
seeds. The boost random library is now a build requirement.
Add "lua" random map generation
Multiplayer server can now handle scenarios with more than 9 sides
[modify_side] controller= now works in networked mp. If a null-controlled
side becomes alive by [modify_side] controller=ai/human then the currently
active client will be assiged controll
Fixed a stingstream syntax error that caused the build to fail in Visual
Studio 13
Fixed hotkeys for changing tips in titlescreen (bug #18926).
Fixed problems building wesnothd using cmake if not building the game
Added several new options to GUI.pyw
Fixed a bug in which sides without a leader, but not defeated due to
defeat_condition set to no_units_left or never couldn't capture villages
Fixed several Mac OS specific bugs in GUI.pyw
Fixed bug 22987 for filtering on era and mods in the Multiplayer lobby.
Fixed bug 23117 Invert breaks lobby filtering if Apply Filter is off.
Fixed bug 23426 Show terrain description hotkey works also for shrouded
hexes.
Fix bug #23243: Segfault while clicking during [delay] in prestart.
Remove support for legacy style unit abilities descriptions.
Fixed bug #23445: set default build type in cmake to "Release" to ensure
that the game is not unoptimized
Increased minimum version of FriBiDi to 0.10.9 in cmake to match scons
Changed how FriBiDi is found in cmake to using pkgconfig
Made the file chooser dialog (used for e.g. loading maps in the editor)
use uniform path delimiters on Windows, fixing issues with browsing to
parent directories (bug #23224).
Version 1.11.11
Add-ons server
Filenames with whitespace in them are no longer allowed.
AI
Non-default multiplayer and Micro AIs:
Fixed bugs which could lead to the AIs being disabled for the rest of the
turn if WML events removed or changed units during the AI turn
Improved error reporting of invalid AI actions
Campaigns
Eastern Invasion:
Updated maps for scenarios 12, 14, 16 and 17a.
Fixed a bug in 'Captured' which can cause the beginning to make no
sense.
Under the Burning Suns:
Fixed broken Divine Incarnation unit type in The Final Confrontation.
Language and i18n
Updated translations: German, Italian, Slovak
WML engine
Bug #21643: Removing fog from a single hex no longer makes the hex ugly.
Bug #21722: Event handlers with multiple names never fired.
User interface
Corrected most of the issues left with the new default theme.
Reintroduced the alignment, race and side being shown in the sidebar.
Adjusted the theme to the size and shape of the new minimap frame images.
Certain changes to the used text colors, sizes and alignment.
Non-team labels no longer remove team labels that were present in the
same hex.
New colors for the Light Red and Dark Red minimap markers.
Bug #21724: 'none' is now a special case for [unit_type] ellipse
Miscellaneous and bug fixes
Units can no longer be moved in linger mode (bug #21450).
Changed: Updated valgrind suppression file.
Fixed color issues with font_rgb in unit status labels in themes.
Labels are now removed when shroud/fog is removed, rather than waiting
for a new turn (bug #21434).
Percent signs show when describing traits that increase damage or attacks
by a percentage (bug #21577).
Linux dbus notifications: Only last 5 messages are remembered, and they
are displayed with the most recent ones first.
Fixed bug #21736: MP create screen always defaulting to top entry.
Version 1.11.10
Add-ons client
Fixed faulty add-on _info.cfg files causing the game to display obscure
error messages or crash to desktop.
Generated _info.cfg files now contain the list of dependencies for an
add-on as well (needed by wesnoth_addon_manager).
Python wesnoth_addon_manager client:
The dependencies= attribute and the [feedback] tag in .pbl files are
now properly supported (bug #21189).
Generated _info.cfg files now contain the same information as the
game's built-in client (type and title were missing).
AI
Hang Out Micro AI: default AI [avoid] aspect is now taken into account
Fixed problems with several Micro AIs that sometimes produced OOS errors
Campaigns
Eastern Invasion:
New world map.
Rewrote scenario 'Training the Ogres' and renamed it to
'Capturing the Ogres'.
Rewrote scenario 'Captured'.
Heir to the Throne:
Fixed Delfador clobbering whichever unit happens to be standing on
31,11 at the end of The Bay of Pearls, causing it to disappear
forever.
S15 (The Lost General): fix bug of sighted events firing too early
Legend of Wesmere:
Fixed missing journey map background in story screens.
Liberty:
Updated sprites for Shadow Mage line.
Son of the Black Eye:
Rebalancing of the campaign is now complete
Under the Burning Suns:
Updated animation WML of all campaign specific units
Editor:
Fixed: Drawing the offmap area for small resolutions.
GUI2
Added: FAI-function handling in GUI2 widgets.
Added: A new tooltip window.
Language and i18n
Updated translations: Scottish Gaelic
Lua API
Config of current era is now available in a Lua table in MP games
Config of any era can be requested by id, also a list valid era ids
Multiplayer
Fix for bug #21405, in a series of features:
The abort option presented to the host when a player disconnects
from a networked game is now a "save and abort" option.
New Idle controller status: Sides may now be set in an "idle" state
by the host when a player disconnects from a network game. This does
not give any player control or vision. To proceed with the game, the
host must reassign the side's controller using :control, :droid, or
:give_control as usual. (give_control existed but was not documented)
Related to this, there are new commands :controller which query the
controller status, and :idle which toggles the idle status.
New "Blindfold Replays" option: Observers may check a box in the
lobby so that if they join a game, they will be "blindfolded" and see
only a black screen until they are given control of a side.
Units
New baseframes for Jundi, Muharib, Batal, Qatif-al-nar, Qudafi, Rasikh.
User interface
New UI for displaying errors detected during the core and add-on WML
loading process (parser and preprocessor errors), including the
ability to copy the report to clipboard.
New UI for displaying the notification that a screenshot or map
screenshot was successfully saved to disk, including options to open it
in an external application, copy the path to clipboard, or browse the
screenshots folder.
Force grayscale antialiasing for text rendered using Cairo/Pango (e.g. by
GUI2) on Windows to work around ClearType-induced glitches (bug #21648).
Fixed bug #21584: Properly redraw the minimap when the minimap is
resized.
Fixed: Enable blurring in the title screen.
Added descriptions to the options in Preferences -> Display -> Themes.
New sound played to signal the start of an MP game.
WML engine
WML loading phase errors are reported to stderr in a new indented format.
Implemented [true] and [false] ConditionalWML tags, which describe a
condition that always yields true or false, respectively.
Fixed: Disallow change and remove sections without an id in the ThemeWML.
Added [theme] description attribute for including a description of the
theme that will be displayed in Preferences.
[theme] name attribute is now expected to be translatable and used only
for the theme selection UI. Existing [theme]s need to be converted to
have a separate 'id' attribute.
[endlevel] now has two optional subtags [next_scenario_settings],
[next_scenario_append], which can be used to reconfigure next scenario.
Optimizations made to the game events engine. Slower machines may notice
an improvement during movement (when enter/exit_hex events are triggered).
The optimization is more effective when relatively few events have variables
in their names.
Miscellaneous and bug fixes
Fixed: A compilation warning with DEBUG_WINDOW_LAYOUT_GRAPHS.
Added -Wold-style-cast to the CMake strict flags.
Made sure that cmake does not add -NDEBUG for release builds since this
flag breaks building.
Updated screenshots used inside the ingame help and fixed description of
orbs.
Fixed bug #21659: lua location_set:empty now works as described
Users now get a warning if they start a multiplayer scenario through the
title screen load button, as this may cause eras and modifications not
to work correctly in subsequent scenarios of an mp campaign.
wmllint can now update base terrain aliases in UMC after the changes in
versions 1.11.8 and 1.11.9. This conversion is applied to the aliasof,
mvt_alias, and def_alias attributes under the [terrain_type] tag.
Parser warnings when skipping over Unicode BOMs are now printed in stderr
with the file location and substitution trail when available.
Version 1.11.9
Add-ons client
Display the first and last upload dates in the Description dialog.
Add-ons server
Record the first upload date and time for new add-ons.
Removed ancient compatibility code used only for add-ons stored by some
1.5.x versions.
AI
Default AI: Gold saving is turned off by default again
New macros AI_SAVE_GOLD and AI_SAVE_GOLD_DEFAULT for easy enabling of
recruitment gold saving in specific scenarios
Wolves Micro AI: new optional parameter attack_only_prey=
Campaigns
Heir to the Throne:
Gave Li'sar a new ability "initiative" (grants adjacent allies first
strike in melee).
Son of the Black Eye:
Rebalancing of the campaign continues and is done for Scenarios 1 (End
of Peace) through 12 (Giving Some Back). In addition, the following
not directly balance related changes have also been made:
S3: remove AI controller right-click menu option
S4 & S9: make AI attack enemies 1 XP from leveling so that it is not
possible to block key locations with such units
S10 & S12: don't give huge unannounced gold bonus to AIs
Editor
Added Impassable Overlay and Unwalkable Overlay terrains to the obstacle
group.
Added Snowy Human City village terrain to the frozen group.
Added wesnoth.set_dialog_markup function (patch #2759).
Multiplayer
Updated map: Ruins of Terra-Dwelve.
Terrains
Made Snowy Encampment, Snowy Orcish Castle, Snowy Encampment Keep and Snowy
Orcish Keep aliases of both castle and frozen terrains
Units
Decreased the strikes of the Dwarvish Lord's hatchet attack from 2 to 1.
Fixed subtle magenta TC for the Giant Mudcrawler sprites not being
enabled in-game.
User interface
Restored the old control scheme as the default
Fixed hidden variations of unit types (hide_help=yes) being listed in the
help browser when they shouldn't.
Gray-out GUI1 scrollbar upwards scrolling button by default when starting
with the view scrolled to the top.
Truncate long Advanced Preferences entries with ellipses to avoid
situations where the listbox is wider than the Preferences dialog frame
(bug #19482).
Team color is now applied on the Unknown unit icon in the game Status
Table regardless of whether the side's leader unit supports team color.
Miscellaneous and bug fixes
Added -Wno-documentation-deprecated-sync to the CMake pedantic flags.
Fixed several Doxygen issues found by Clang 3.4.
Fixed possible invalid memory access issue in the MP sides configuration
code causing crashes for some users (bug #21449).
Fixed broken image references in the Gameplay -> Time of Day help topic.
The internal variables used by the LIMIT_RECRUITS WML macro are now
cleared on victory.
Fixed missing log error message for invalid music tracks set with
play_once=yes (bug #21479).
Don't force the .gz suffix on every entry of the save_index (bug #20849).
Fixed a bug in [filter_vision] in SUFs that caused a hidden unit under
fog/shroud to produce a false positive.
A lack of ToD schedule no longer causes segfaults (bug #21489).
SLF work again when x XOR y is specified (bug #21488).
Selecting off-map hexes, then hovering over a unit no longer causes
the game to crash (bug #21351).
Changed: Added -Wextra-semi to pedantic compilation.
Changed: Added -Wconditional-uninitialized to pedantic compilation.
Fixed NULL pointer dereference when viewing units in the Recall Unit
dialog including nonexistent/unreadable images in their overlays, while
not in debug mode.
Version 1.11.8
Add-ons client
Introduced new add-on type "SP/MP Campaign" for campaigns with
"type=hybrid."
Fixed invalid file size data from the server crashing the client on the
network transfer progress dialog (bug #20893).
Added support for specifying a feedback page URL in the .pbl file when
publishing an add-on, currently intended for associating add-ons in the
official add-ons server with topics from forums.wesnoth.org; this is
achieved by including a [feedback] block with a topic_id= key in
it.
Redesigned Add-ons Description dialog, including support for displaying
add-on feedback page URLs.
Add-ons server
Fixed mishandling of inaccessible add-on packs resulting in multiple data
conversion errors and stalling clients (bug #20893).
Added support for managing and emitting add-on feedback page URLs to
clients ([server_info] feedback_url_format option in the server
configuration file).
AI
RCA AI: fix bug #21334: surrounded units don't attack
Coward Micro AI: new optional parameter [filter_second]
Simple Attack Micro AI: new optional parameter weapon=
Wolves Micro AI: fix bug that sometimes kept predators from attacking
Lua AI: new replay-safe action ai.synced_command()
ai.cfg: fix MEDIUM to NORMAL in attack_depth macro
Campaigns
all: convert many wmllint magic comments from "recognize" to "who" and
"whofield",
Dead Water:
New world map.
Delfador's Memoirs:
Updated sprite and animations for the Wose Shaman.
Descent into Darkness:
S3: set aggression=1 for Side 4 to avoid wrong choice of attack
Eastern Invasion:
Made Dacyn use teal TC and Mal-Ravanal blue TC, to make them fit the
portraits more.
Updated maps for scenario 1-7.
Heir To The Throne:
Increased Li'sar's lvl3 hitpoints from 52 to 62.
Implemented the portrait variations for Delfador and Asheviere.
Changed Kaylan's portrait and gave him teal team coloring.
Changed the flaming sword so it's now a 25% increase to damage, instead
of changing the damage to 15-4
Added a new mechanic to Sceptre of Fire. By standing still for a turn,
Delfador can now tell the player the shortest path to the Sceptre.
Fixed Konrad's level 1's attack animation giving an 'image not found'
error.
Fixed Konrad's dying words event.
Legend of Wesmere:
S9: set aggression=1 for Side 4 to avoid wrong choice of attack
Liberty:
New world map.
S5: set aggression=1 for Side 3 to avoid wrong choice of attack
Northern Rebirth:
S5a: dialogue tweaks
The Rise of Wesnoth:
New world maps.
Redesigned scenario 'A New Land'.
The South Guard:
S6a: fix ogre's last words event
S6b: set aggression=1 for Side 2 to avoid wrong choice of attack
Son of the Black Eye:
Rebalancing of the campaign continues and is mostly done for Scenarios 1
(End of Peace) through 8 (Silent Forest). In addition, the following
not directly balance related changes have also been made:
S1: the AI enemy can now also recruit bowmen
S4: give the player control of the Side 3 orcs in the center castle
S6: unload units from transport galleons preferentially onto land hexes
S7: use Simple Attack Micro AI to have scorpions spread poison
S8: use Healer Support Micro AI for elvish healers
S16: Kapou'e gets his own castle at the start of the scenario to
eliminate dependence on luck during the first turn
S17: add a warning that the AI will receive reinforcements
S18: no linger mode at the end of the last scenario
Minor updates to messages (grammar and prose) and objectives.
Updated sprites and animations for the Orcish Shamans.
Graphics
New and updated animations for the Loyalist Horseman.
Language and i18n
Updated translations: Catalan, Chinese (Traditional), Dutch, Galician,
Japanese, Latin
Lua API
Added flag, flag_icon, and village_support fields to wesnoth.sides table
elements.
Made wesnoth.sides[n].hidden a read-write field.
New lua proxy table "wesnoth.game_config.mp_settings" for access to
MP specific settings, such as era, scenario name, and timer
Multiplayer
Unit names and genders are synced in MP games.
Added new CampaignWML attribute "require_campaign". If set to "yes",
players not having campaign installed won't be able to join the game.
New eras: the Default+Khalifate and Age of Heroes+Khalifate eras are now
available.
Replays
Replays include the prestart and start events again.
Unit names and genders are synced between games and replays.
Play/stop buttons are disabled again at the end of a replay.
The 'reset replay' button works correctly and does not cause OOS
errors any more.
User interface
Removed the possibility to undo unit recruits because it caused oos.
Added a party full bell to the MP game configuration screen, played once
all human player slots have been taken.
Change layout for advertized games in the MP lobby and add map icon.
Moved color cursors option to Advanced Preferences.
Always hide and disable color cursors option on Mac OS X since it's known
to cause severe lags that render the cursor unusable.
Unit overlays are now displayed in the Recall dialog, both on the list
and the description panel.
Made filtering controls on the MP create screen functional.
Removed the MP custom options dialog; all options are now shown directly
on the configuration screen.
Removed the MP modifications dialog; modifications are now displayed
directly on the creation screen.
The "Compressed saves" and "Compress savegames using bzip2" options in
Preferences -> Advanced have been replaced by a single option,
"Compressed saved games", that lets the user pick between gzip (default),
bzip2, and no compression. Users who previously enabled bzip2 compression
will need to do so again.
Hide eras menu in MP Create for campaigns which have
"allow_era_choice=no".
Introduced side's name in MP Connect.
Middle click scrolling is now based on distance from initial click instead
of the centre of the screen.
Make sliders able to be scrolled with the mouse wheel
Allow advanced preference booleans and mp modifications to be toggled
via double click
Fixed slight scrolling glitches with credits sections with multi-line
headers (e.g. those generated for campaigns with multi-line titles).
WML engine
WML variable turn_number is set correctly (to 1) in prestart and start
events. Previously, it retained its last value from the previous scenario
until after the start event.
[scroll_to] and [scroll_to_unit] now take an optional side filter.
[trait] now accepts a "generate_description=" attribute, allowing the
auto-generated effect descriptions to be turned off.
[modify_side] can now change a side's flags and status bar icon using the
"flag" and "flag_icon" attributes also accepted in [side] definitions
(bug #18454).
[store_side] now stores the "flag", "flag_icon", and "village_support"
attributes from sides.
New macros RECALL and RECALL_XY
Miscellaneous and bug fixes
Pango markup is applied correctly and consistently in button tooltips.
Fixed mishandling of invalid Pango markup resulting in previous messages
being displayed instead in e.g. [message] (bug #20996).
Added wmllint code for recognizing unit id fields in macros, added
non-attribute lines to local_sanity_check, added unknown speaker check.
Refactored code in wmltools to create a macro-parsing function.
Added era descriptions.
Fixed file chooser dialog (used in the map editor and for locating the
wesnothd executable) interpreting special markup at the beginning of file
names such as "#foo.map".
Fixed bug with modifications dependency check dialogs (bug #21365)
Fixed bug with scrollbar overlaying mp description text (bug #21364)
Fixed bug with help units not making links (bug #21339)
Split command line option --config-dir into --userconfig-dir and
--userdata-dir, with --userconfig-dir defaulting to --userdata-dir's
value on some platforms.
The color_adjust_blue_ attribute in [display] tags of saved games has
been renamed to color_adjust_blue. Since it is only non-zero following a
[color_adjust] action in a WML event, only mid-scenario saved games
created with previous versions may present minor color issues after this
change.
Fixed sound sources removed while the sound effects volume is zero
(either in Preferences -> Sound or through the [volume] WML action)
persisting and escaping the sound source management code (bug #21426).
The negative sign is no longer dropped when formula AI prints numbers
between 0 and -1.
Version 1.11.7
Add-ons client
Add-ons downloaded with clients from this version onwards are shown
in the Remove Add-ons with their original titles from the add-ons
server now, instead of artificially generating titles by replacing
underscores from file names.
Fixed color key disparities between the Add-ons Manager dialog and the
add-on Description dialog.
It is now possible to choose the neutral/fallback add-on sorting in
the Add-ons Manager dialog used when no columns have been sorted by
the user.
Report errors caused by faulty local .pbl files properly instead of
presenting them as network errors.
Fixed regression from 1.11.0 resulting in memory leaks and/or
crash-to-desktop situations when failing to connect to an add-ons
server.
Add-ons server
Implemented read-only mode option (read_only boolean attribute in
server config WML, defaults to "no").
AI
Recruitment CA:
New Recruitment CA located in src/ai/recruitment is now default CA
Created new AI cfg "Strong AI (RCA)" with stronger recruitment
Created new AI cfg "Old Recruitment CA" in ai/dev/ to use the old CA
External CAs are now fully usable
The persistent data variable works and is accessible across CAs
Parameters can be passed to eval/exec functions
Micro AIs:
New Simple Attack Micro AI
All MAIs changed to using external CAs. This means that no engine
definitions are needed any more and that MAIs can be combined at will
Got rid of animal_type=, guardian_type=and recruiting_type= keys. The
individual Animal, Guardian and Recruiting MAIs are now separate AIs
that are selected with the ai_type=key
Patrol, Guardian and Hunter MAIs are now side-wide CAs (not BCAs) and
support either the id= key or [filter] tag for unit selection
Messenger MAI now works with units (both messenger and escort) without
weapons and when path to next waypoint is entirely blocked
Experimental AI:
Added new CAs Retreat, Move to Enemy and Village Hunting
Algorithm improvements for several CAs
Fixed time_of_day aspect so it matches time-of-day ids, not names
(e.g. "Morning" vs "morning"), so most use cases of ToD-dependent AI
configuration work again (suspected version 1.7.4 regression).
Move_Leader_To_Keep CA will now move all leaders back to a keep
(multiple leader support for recruitment)
Refactored the AI-Test-Suite completely (/utils/ai_test/)
Changed AI descriptions in ai/dev/ displayed in MP computer player menu
New macro AI_CONTROLLER_ALLOW_UNIT_CONTROL
Remove macro RCA_STAGE
Campaigns
A Tale of Two Brothers:
Crop campaign icon to fit campaign selection dialog (fixes bug #20935)
Dead Water:
Converted animation WML to the new syntax
Delfador's Memoirs:
Converted animation WML to the new syntax
Descent Into Darkness:
Converted animation WML to the new syntax
Eastern Invasion:
Converted animation WML to the new syntax
Heir To The Throne:
Converted animation WML to the new syntax
Gave Moremirmu a matching holy sword attack icon (bug #21248).
Legend of Wesmere:
Removed now redundant MP code.
Added new CampaignWML attributes: "type", "min_players", "max_players".
Added new ScenarioWML attributes: "new_game_title", "force_lock_settings".
Adjusted "controller" and side recruits for MP.
Now uses default recruitment instead of experimental FAI-recruitment
in 02_Hostile_Mountains.
Liberty:
New AI for wolf riders in "The Raid"
Converted animation WML to the new syntax
Gave the Death Squire the submerge ability.
Increased the Death Squire's blade resistance from 10% to 40%,
pierce resistance from 30% to 60% and lowered its impact resistance
from -10% to -20%.
Greatly decreased the Death Squire's HP from 66 to 44.
Northern Rebirth:
S5a: added dialog for dungeon signpost moveto
Sceptre of Fire:
Converted animation WML to the new syntax
Son of the Black Eye:
Rebalancing of campaign started to make it more difficult in accordance
with its status as an expert level campaign. Scenarios 1 - 3 done so
far. In addition, the following, not directly balance related changes
have also been made:
S3: scenario now ends after dwarf leader is killed (no need to continue
to the signpost any more)
S3: add possibility to give Grüü instructions
S6: new Lua AI code for the transports with somewhat different behavior
S14: Kapou'e cannot recruit troll whelps any more (this scenario only)
S14: "It is now Grüü's turn" displayed correctly on Side 4 turn
S16: fix recalling of alternative units if Jetto/Inarix have been killed
S18: Howgarth's death now results in defeat, as stated in objectives
S18: Shan Taum death dialog shown correctly if Kapou'e kills him himself
Minor updates to many messages, objectives, moves, AIs etc.
Message images that would cover the speaker moved to the right
Converted animation WML to the new syntax
The Hammer of Thursagan:
Converted animation WML to the new syntax
The Rise of Wesnoth:
Converted animation WML to the new syntax
The South Guard:
Converted animation WML to the new syntax
Tutorial:
Converted animation WML to the new syntax
Under the Burning Suns
Fixed several bugs with missing/incorrect dialog
Azkotep now correctly possesses Garak if only his champion is killed
Engine
CampaignWML support for MP including difficulties, extra defines etc.
Use the same codepath to initialize every MP campaign's scenario, thus
allowing the display of a functional MP "Connect/Wait" screen before the
next scenario.
Reload game config for non-host players in order to match the host's
config, if possible. Reloads will only happen for MP campaigns using
CampaignWML syntax.
Imagepath function "~ROTATE": Support for rotating by any degree.
Graphics
Full animations for the Dwarven Thunderer line.
New standing animation for the Dwarvish Berserker.
New north-facing standing and attack animations for the Loyalist Spearman.
New ranged attack animations for the Dark Adept line.
Improved internationalization of notifications on Windows and OS X.
Introduced translations for months and weekdays, which are used when user
does not have locale installed.
Show am/pm designations, if required, even when locale doesn't support
them.
Lua API
Added scroll_to_leader field (read/write) to wesnoth.sides table
elements.
Multiplayer
Fixed clearing map data when there is no shroud and level is sent
with "store_next_scenario".
Update game's side data, slots and state in server during next scenario
initialization.
Fixed reserved sides being counted as available in server.
Added "controller_lock" in SideWML. The lock provides a way to be sure
that sides will be played with a controller which was assigned in WML.
I.e. if "controller" was set to "ai", it won't be possible to select any
other controller for a side. However, if "controller" was set to "human",
it will still be possible to assign any player, local, network or
reserved (if applicable) controller.
All multiplayer locks in SideWML (e.g. "team_lock"), now uses
"force_lock_settings" as their default value.
Unit changes and balancing
Gave the Death Knight the submerge ability.
Increased the Death Knight's blade resistance from 10% to 40%,
pierce resistance from 30% to 60% and lowered its impact resistance
from -10% to -20%.
Lowered the Death Knight's HP from 66 to 63.
Lowered the Chocobone's hills defense from 50% to 40%,
mountain defense from 60% to 50%, fungus defense from 60% to 40%,
forest defense from 50% to 30%, and village defense from 60% to 40%.
Increased the Chocobone's melee damage from 9-2 to 11-2.
Increased the Chocobone's blade resistance from 10% to 20%.
User interface
Players can now assign hotkeys to wml menu items in the preferences menu.
Help Browser:
Units with variants are shown as sections with their childs as topics.
Links to the siblings in unit variants.
Links to the base unit of none variants.
MP "Create" screen has been revamped by moving scenario configuration
widgets to a new MP "Configure" screen, introducing a description box,
adding a combo selection for different types of game, and adjusting it to
work well with MP campaigns.
MP "Configure" and "Connect" screens have been adjusted to allow to see
all scenarios and sides in the debug mode.
MP "Lobby" game item has been updated to display information about
campaigns correctly.
In-game Chat Log dialog now supports text search on timestamps, nicks,
and messages.
Possible fix for clipboard integration issues with GUI2 widgets on X11.
Fixed potential misbehavior (including invalid memory access) from the
tray notifications code on Windows.
New Game Paths dialog displaying filesystem locations used by the game
to read or write data, accessed from Preferences -> General.
WML engine
New [disable] weapon special.
New variation_id attribute with the function of former variation_name.
variation_name is now the translatable name of the unit variant.
The "variation=" attribute works now in [unit_type] and serves
as the default variant.
[store_side] now stores the scroll_to_leader attribute from sides.
Added new CampaignWML attributes: "type", "min_players" and "max_players".
Added new ScenariowML attributes: "new_game_title",
"remove_from_carryover_on_leaders_loss" and "force_lock_settings".
Allow numerical values for SideWML "controller" attribute.
Allow WML menu items to use hotkeys alongside/instead of the menu.
Really added sighted events for ambushing units.
[scroll] now takes an optional side filter.
Some support for negative healing. This is not guaranteed to work correctly
in all cases, but it does restore the basic functionality that was
(probably accidentally) in 1.10.
Overhaul of the game events engine. Fixes some obscure bugs, like #21031,
and grants feature request #18713.
Added new set_icon attribute for [effect] apply_to=attack.
New attribute in [unit_type]: healed_sound. These
attributes allow for customization of the sounds played when the unit
is healed.
Miscellaneous and bug fixes
Added -256 and -512 color shifts to FADE_TO_BLACK and FADE_TO_BLACK_HOLD
macros to account for ToD color shifts greater than -31, guaranteeing
complete darkness.
Unit WML frames with image modifications are now shown correctly for
hits/death.
Fixed compare_images.py (called by wesnoth-optipng) and pofix.py to
function with python-3.2.
Refactored and split the MP "Create" and "Connect" screens' code into
gui and engine parts.
Lock faction, leader, and gender selections in MP "Connect" if default
values are provided and "force_lock_settings" is set to "yes".
Fixed runtime error due to mismatched function call conventions in
set_preferences_dir() when built with MSVC++ 2010 and a relative path
to My Documents was passed with --config-dir in the command line.
Changed: Added -Wno-deprecated-register to strict compilation.
Added command line option "--multiplayer-repeat ".
A game started with --multiplayer will be repeated times.
This is useful for batch testing.
Animation WML: Fix sound start time in additional frames without
requiring a duration 1 frame workaround.
Animation WML: Fix halo in additional frame persisting without blank
hex workaround at start and end if a shorter frame.
New MISSILE_FRAME_FIREBALL_XY macro, used in red mage line.
Fixed crash on delete of last save.
The MISSILE_FRAME_MUZZLE_FLARE_MISS macro nowrequires an X and Y
argument.
Added placehoder attack animations to the Fire Dragon.
New MISSILE_FRAME_CHILL_WAVE and MISSILE_FRAME_SHADOW_WAVE macros,
used in the dark adept line.
New knife sound for thunderer line.
Fix bug #20936 with shuffle sides and incorrect initial side villages.
Fix bug #20564: crash of replays of games started from scenario start save
Fix bug #20124: animation not updated on [un]petrifying units with WML tags
Fix bug #21264: Loading a turnsave in campaign sets negative gold to 0
Fix unreported bug of Wesnoth sometimes crashing on killing unit under
cursor from context menu in debug mode
Version 1.11.6
Add-ons client
The Description popup displays the selected add-on's dependencies now,
using color-keyed statuses.
Circular dependencies are no longer treated as erroneous in terminal
output.
AI
Micro AIs:
New Hang Out Micro AI
Any number of Micro AIs can now be combined on the same side
Goto MAI: new parameters avoid_enemies=, ignore_units= and ignore_enemy_at_goal=
Goto MAI: [filter] is now an optional parameter
ca_id is now an optional parameter for all MAIs
ca_score is now an optional parameter for almost all MAIs
Bug fixes for Patrol, Messenger, Multipack Wolves and all Guardian MAIs
[goal] tags in [ai] blocks with turns= or time_of_day= will now work.
Campaigns
An Orcish Incursion:
New world map.
Descent Into Darkness:
New world map.
Legend of Wesmere:
convert to "wmllint: who" magic comments
The South Guard:
Fixed double "lich found" event in Choice in the Fog
Unit ellipses are now automatically updated if a unit gains or loses its ZoC
WML engine
If [recall] cannot find a unit to recall, the message is logged at the
"info" severity level in the "wml" domain (instead of the "error" level in
the "engine" domain). This means the message will be suppressed by default.
Allowed [modify_side] to modify the scroll_to_leader key
Miscellaneous and bug fixes
Creating a unit via debug mode now clears fog/shroud around the unit.
[move_unit_fake] now accepts an optional force_scroll= attribute (def. to
'yes') that allows scrolling the viewport even when [lock_view] is in
effect or Follow Unit Actions is disabled in Advanced Preferences.
[move_unit] accepts an optional force_scroll= attribute like
[move_unit_fake] above, defaults to using the [move_unit_fake] default.
Added: Feature in pathfind.xpp to build a cost map.
wmllint: turn on globbing on Windows, create "who" and "unwho" magic
comments, bugfixes
wmllint-1.4: add an enhanced and bugfixed version of wmllint 1.4 for
porting old add-ons
Version 1.11.5
Add-ons client
Do not bump the download count for add-ons that are currently installed
and are being reinstalled or upgraded
Add-ons server
Restricted names (not titles) for newly uploaded add-ons to ASCII hyphens,
underlines, and alphanumerical characters. Previously uploaded add-ons
are exempt from this change.
AI
New macro EXPERIMENTAL_AI for using Experimental AI in both SP scenarios and MP maps
Recruiting in Micro and Experimental AIs: allow more terrain codes for castles/keeps
Improved/Added: Command 'lua wesnoth.debug_ai([side]).ai' will now give access to the
ai-table of [side].
Improved AI behavior when using goto_x / goto_y in WML
Micro AIs:
Zone Guardian: Add optional station_x,station_y= keys
Goto: don't exclude leader by default
Bug fixes in Return Guardian, Healer Support and Goto MAIs
Experimental AI: fix bugs that disabled recruiting for some UMC weapon specials
Campaigns
All:
replaced deprecated aspects with [goal] aspect
Heir to the Throne:
Updated Li'sar's movetype and resistances to match her armor.
Legend of Wesmere:
Scenario 05: Elvish Horse Archers can now carry the treasure
Scenario 09: the player's loyal units stay in the recall list, instead of
being stored and then unstored in scenario 14
Under the Burning Suns:
Scenario 8 (Out of the Frying Pan): Fix messenger AI (Lua errors and wrong goal)
Engine
Made game config loading more modular by extracting appropriate
functionality from game controller and adding it to a new class.
Wrapper functions for editor's and game's config loading were added.
Graphics
New scorpion baseframe (replaces old image set)
New skeletal dragon baseframe (replaces old image set)
New cavalryman line baseframes (replaces old image set)
New elven cavalry units baseframes (replaces old image set)
New paladin, knight, grand-knight, lancer baseframes (replaces old image set)
New giant mudcrawler baseframe and animations (replaces old image set)
location_set.of_pairs() now can take coordinates defined by x/y= keys as well
Fixed the x1,y1 variables in enter/exit_hex events handled via
wesnoth.game_events.on_event.
User interface
Added notification support for Windows
Made it so that the "Back to Turn X" and "Back to Start" menu items work
with .bz2 saves
Removed Dfool and Experimental themes
Major visual overhaul:
Most UI elements have new images
Button sizes have been standardized; regular buttons are 108x22 (H22), menu
buttons are 100x20 (H20), square buttons are either 25x25 or 30x30 depending
on purpose.
Regular and menu buttons are now in subdirectories of images/buttons/
Button icon overlays are now in images/icons/
Icons can now be overlaid on a team-colorable base provided in images/buttons.
New team color ranges have been introduced for this purpose.
Added possibility to kill unit under cursor with context menu in debug mode.
WML engine
Added new aspect 'advancements' which with lua engine can handle a
function return type of the form f(x, y) -> String. 'advancements'
tells the AI to what unit a given unit should advance to.
Fix "Shuffle sides" incorrect behaviour: children inside [side] were also
swapped.
Fixed incorrect image path function name in error messages generated by
using ~CROP() with negative coordinates.
Fixed abilities sometimes affecting self during movement even when they are
flagged as not affecting self (bug #20755).
Added deprecation messages to aspects [target], [protect_unit], [protect_location],
protect_leader=, protect_leader_radius=
Fixed bug #20836: advancing units can fire events in [harm_unit] if fire_event=yes
Advancing units can be animated by [harm_unit] if animate=yes
Added deprecation message to aspect [goal] when using "name=protect_my_unit".
Miscellaneous and bug fixes
Fixed minor issue with Drake Clasher animations
Added a new playlist FULL_MUSIC_PLAYLIST, which contains all Wesnoth tracks
in alphabetical order
Added -Wno-null-conversion to the CMake pedantic flags.
Changed: Decreased the pango cairo dependency to version 1.21.3.
Changed: Mark system headers as system headers in CMake.
Fixed the recall list sometimes getting confused when dismissing a recall.
Prevent unchecked memory access in cut_surface()
Remove game controllers: new and abstract. Were never properly implemented.
Remove --new-syntax command line option. Was never properly implemented.
Several wmllint additions: remove backslashes and userdata/ from paths, convert
data/campaigns/ to data/add-ons/, give more detailed message for color spec to
Pango fix-up, delete files on Windows before rename.
Version 1.11.4
AI
Reverted new Lua AI persistent storage mechanism for external CAs that
would crash Wesnoth under certain circumstances in 1.11.3. This will be
re-committed in an upcoming release.
Micro AIs
Healer Support MAI now respects RCA AI [avoid] aspect.
Version 1.11.3
AI
Micro AIs
New Goto and Zone Guardian MAIs
Change SUF/SLF names to [filter]/[filter_location] and variants thereof
Add optional SUF to Healer Support MAI
Campaigns
Descend into Darkness:
Fix the surviving orc leader starting poisoned after scenario 5.
Language and i18n
Updated translations: Chinese (Traditional), Indonesian, Italian, Polish,
Portuguese, Russian, Vietnamese
User interface
Fixed 'end turn' button's state in MP and title2 issues.
Fixed (bug #17220): Cursor in gui2 text box now behaves appropriately after
text box overflow occurs.
Change Difficulty checkbox in Load Game dialog in GUI1 gets disabled if
change in difficulty of a loading game won't take effect (bug #20381).
Fixed 'end turn' button's state issue: button stays disabled after the first turn.
Fixed bug #20592: dialog (wml_message.cfg) is shifted by the
distance between the left edge of the screen and the game map
Allow filtering on controller= in SSFs. Cannot be used in networked multiplayer.
When controller in 'side' tag is ai, use 'no' as default value
for 'allow_player' attribute.
Miscellaneous and bug fixes
Switched to git version control. Hosting moved to SourceForge
Improved: Autorevision based revision numbers in CMake.
Don't let petrified units reveal ambushers
Version 1.11.2
Add-ons client
Fixed bug #20518: identical add-ons titles not supported
Add a button to the Filter Options dialog to toggle all currently
displayed add-on categories at once
AI
Experimental Multiplayer AI
Improve recruitment, notably first turn choices and units with poison
and charge
Improved selection of units for village stealing
Remove dependency on AI-demos add-on
Fix bug when playing on maps with a turn limit
Fix bug handling regeneration
Minor improvements in switching between castles
Add healer support micro AI to improve healer use
Improved village capturing
Retreat badly injured units more effectively
New [micro_ai] tag, 18 different Micro AIs, and 14 test scenarios
This includes AIs for 7 different animal behaviors, bottleneck defense,
2 different guardians and a coward, healer support, lurkers,
messenger escort, patrol, protect and move a unit, and 2 alternative
recruiting strategies.
New leader_ignores_keep AI aspect that lets AI leader take part in the same
AI moves as the non-leader units.
Rename passive_leader_shares_keep candidate action to leader_shares_keep.
The old syntax still works for backward compatibility (for both CA and
macros).
Fix minor bug in leader_shares_keep candidate action that occurred
under some circumstances when the AI leader does not have full MP
Campaigns
Sceptre of Fire:
Allow game to continue after completing scenario (reported in forums)
Son of the Black Eye:
Prevent infinite loop if fewer than two transport ships (bug #20389)
Graphics
New bigmaps for the title screen and campaigns HttT, TSG, SoF and SotBE
Fix layering error with bridges
Language and i18n
Updated translations: British English, Chinese (Traditional), Dutch,
Estonian, French, Galician, German, Italian, Japanese, Latin, Lithuanian,
Portuguese, Portuguese (Brazil), Slovak, Vietnamese
Lua API
new wesnoth.get_time_stamp() function
new helper.shuffle() function
The wesnoth.transform_unit() function no longer performs a full heal. It
will (still) enforce the resulting unit's maximum hit points, though.
The wesnoth.transform_unit() function will automatically remove poison from
a unit that is immune after transforming.
Multiplayer
Moved new lobby option in Preferences -> Multiplayer to Advanced
Preferences and clarified description
MP command-line mode now works correctly, including replays, random maps
and default values (bugs #19853, #19877, #19883, #19895 and #20009)
New --ignore-map-settings MP command-line option
Fixed some issues with Dark Forecast skipping spawns and failing to end.
User interface
Allow copying the selection in the old (default) lobby using
Ctrl+C/Command+C (bug #5877)
Color coded the resistance table in the hp display's tooltip.
Scale down unit baseframes larger than 72x72 in the Recruit and Recall
dialogs to prevent all list entries from being enlarged to fit
Tooltip for the movement points display shows the movement costs.
Updating the shroud after delaying shroud updates is done gradually instead
of instantly.
Fixed (bug #18970): Moving a unit after closing a click dismiss dialogue.
Increased bottom padding for story screen text when it reaches the bottom
of the screen.
Fix viewport centering issues with actions such as the Next Unit command,
and the [scroll_to], [scroll_to_unit], and [message] WML actions (bug #18793).
Removed the "move unit to hexfield" feature.
Rearranged :inspect dialog elements to provide the data visualization
panel with more horizontal space.
WML engine
[unit_overlay] and [remove_unit_overlay] now return a more meaningful
error message if the image= key is missing
When not replacing values, [effect] apply_to=defense will now modify
absolute values instead of signed values (bug #20242). This allows for
cleaner WML when the unit type is not necessarily known in advance.
Split the 'not_living' unit status into 'unpoisonable', 'undrainable' and
'unplagueable'. 'not_living' now acts on the whole group
The bugs with sighted events have been resolved.
A unit's maximum hit points are more regularly applied. This affects
[transform_unit], [effect]apply_to=type, and [effect]apply_to=variation.
Poison is automatically removed from immune units after using
[effect]apply_to=type or [effect]apply_to=variation.
Fixed bug #20401: [remove_unit_overlay] did not work when the image used an
image path function that took multiple parameters.
Refactored [base_unit] to be more robust in oddball cases.
Improved support for setting id= within a [variation].
Added support for square bracket expansion in animation strings I.E
halo="pic[1-2,5]:[10,20,30]" expands to halo="pic1:10,pic2:20,pic5:30"
this is used for halos, team flags, animated terrains and unit animations
Changed default unit halos and macros to use new square bracket expansion
Fixed bug #20468: Update the owned villages when using [replace_map].
Changed [vision_costs] to default to movement costs on a per-terrain basis.
Miscellaneous and bug fixes
The undo stack is preserved across a save-reload.
Removed several unused private member variables.
Fixed the present in-game command line autocompletion feature so it
actually works without using :debug
Removed recognition of the --smallgui command line option, which has been
superfluous since 1.9.5.
Made wmllint recognize victory_string, defeat_string,
gold_carryover_string, and notes_string (all from the [objectives] tag) as
attributes that need to be made translatable
Added -Wdocumentation to the CMake pedantic flags.
Make drakes fly on volcano tiles (bug #20485).
Added a FOREACH macro to emulate C++11 for(... : ...) style loops.
Fixed bug #20290: No longer terminate due to a corrupt savegame.
Fixed bug #19970: No longer terminate due to corrupt preferences.
Changed: Increased the pango cairo dependency to version 1.24.4.
Fixed a display artifact (halos not cleared) when WML moves a unit.
Improved the display of vision costs in the unit help.
Fixed wmllint, wmlscope and wmlindent not working correctly on Windows if a
command line argument ends with a backslash
Fixed: Compilation with CLang 3.2 and libc++.
Added: Autorevision based revision numbers in CMake.
Version 1.11.1
AI
New AI: Experimental AI
Improved recruitment, castle and village management over current default AI
Campaigns
Dead Water:
Removed duplicated loyalty overlay (that now is in core), and used
{IS_LOYAL} macro
Stunned units are now marked with a status icon
Delfador's Memoirs
Add dummy side to cutscene to avoid crash at end of story part
(bug #20208)
Eastern Invasion:
New set of portraits
Legend of Wesmere:
Scenario 02: Replaced the moveto events for checking the
dwarvish borders with enter_hex events
Scenario 08: Add dummy side to cutscene to avoid crash at end of story
part (bug #20208)
The Rise of Wesnoth:
Fix bug #16772: AI won't attack
Under the Burning Suns:
Keep a spawned unit from disappearing on reload in scenario 6b
Stunned units are now marked with a status icon
Fix bug #19303: dwarf sometimes spawns in cave wall
Graphics
New portraits: Tentacle of the Deep
Updated brown lich alternative portrait
Fixed glitches caused by larger-than-hex standing units with certain frame
image effects when image= is not explicitly specified (bug #20099)
Fixed standing unit animation glitches caused by [move_unit_fake] on
adjacent locations (bug #20098)
The special ellipses for leader and hero units now support team coloring.
Language and i18n
New translation: Scottish Gaelic
Updated translations: British English, Chinese (Traditional), Croatian,
French, Galician, German, Hungarian, Italian, Latin, Lithuanian, Polish,
Portuguese (Brazil), Russian, Slovak, Ukrainian
Lua API
new wesnoth.have_file() function
wesnoth.get_time_of_day() now works when specifying a turn when the number
of turns is unlimited
Multiplayer
Silver Mage no longer allowed as a leader in Age of Heroes
Added support for modification tags
Added support for dependencies between eras, scenarios and modifications
New [options] tag to allow MP add-ons to add their own settings on the game
creation screen
Networking
Handle an exception in the SDL_net-based network code (bug #20205)
Terrains
Added Unwalkable Overlay terrain (^Qov)
Added Dense Palm (^Ftp), Savanna (^Fts), and Rainforest (^Ftr) terrains
Updated graphics for palms (^Ftd), tropical forest (^Ft),
plank bridge (^Bp*), stone bridge (^Bs*), and chasm bridge (^Bcx*)
User interface
Healing animations are now played when poison is cured.
Moving units to a selected hex field
Units in reach of a hex field are highlighted during selection.
Highlighting and labeling the selected hex field with the amount of in
range units.
Left click on a controlled one triggers the move.
The recruit and recall commands are restored when right-clicking on a
leader, but with new semantics -- only that leader's recruits/recalls will
be presented as options.
Fog/shroud clearing has been reworked to be more timely and consistent.
The statistics window can now show per-scenario statistics.
The sidebar now includes specials when reporting a weapon's damage.
The sidebar now includes all specials when reporting a weapon's number of
attacks (not just swarm).
Active/inactive highlighting for abilities and weapon specials in the
sidebar.
Fix broken MP game creation dialog on low resolutions
The "repeat recruit" command now refers to the last recruit by the current
side, rather than the last recruit by the current game client.
Refinements to undo stack management, sometimes allowing moves to be undone
after "update shroud now" (if those moves did not affect fog/shroud).
Whiteboard
Don't end turn if executing all actions in another way than using the
"end turn" button/hotkey. (bug #19901)
WML engine
The recall, recruit, prerecall, and prerecruit events will now block
undoing unless they contain [allow_undo].
The cost of a recall/recruit is now paid between the prerecall/prerecruit
and recall/recruit events. (FR #16711)
Sighted events should be reliable, provided the player does not activate
delayed shroud updates (which is still a major caveat).
Added [effect] apply_to=overlay
Added [effect] apply_to=experience
Added [terrain_type] max_light= and min_light=.
Standardize weapon filters, supporting special=, [and], [or], and [not]
wherever weapons can be filtered.
Image path functions again evaluated left-to-right. Fixes bug #20196.
Support for [swarm] causing attacks to increase as health decreases.
Inactive names and descriptions for abilities and weapon specials will
default to the active name/description if omitted.
Fix a bug with [store_time_of_day] so that it treats the provided variable
as a container instead of an array (overwrite instead of append).
Added [side]suppress_end_turn_confirmation= for those (rather nonstandard)
scenarios where players often skip their turns.
Miscellaneous and bug fixes
Fix invalid memory access crash resulting from deleting all saved games
in the Load Game dialog
Redesigned the hotkey preferences dialog
Removed two Khalifate leftovers (Hakim portrait and KHALIFATE_NAMES macro)
Ambush now works for desert palms and dead great trees (bug #20207)
Hex field size and default terrain are wml configurable
RCA AI renamed from 'testing' to 'default'
Fix OOS when dismissing a recall in a multiplayer campaign (bug #19924).
Fixed a bug disallowing the left shift and meta key to be detected in
the hotkeys
Added -Wuseless-cast to the CMake pedantic flags.
Added -Wc++11-compat to the CMake pedantic flags.
Added bzip2 support for savefiles. (new dependency)
Fix OOS when observe scenario 2 in a multiplayer campaign (bug #20217).
Synchronize underlying_unit_id in MP campaigns (bug #20227)
Fixed: Compilation with Boost 1.51.0 (Gentoo bug #440742).
Added -Wnoexcept to the CMake pedantic flags.
Fixed a rare case where a player could exercise (very) limited control of
another (human) player's units in a hotseat game.
Added project files for CodeLite.
Version 1.11.0
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
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 Gg^Efm 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)
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.
Version 1.10.0
Campaigns
Legend of Wesmere:
Scenario 03: Fixed bug #19067: Control over Galtrid's side stays with the
player after the arrival of Kalenz
Scenario 22: Fixed bug #19236: Cleodil was missing and no recall list
An Orcish Incursion:
Scenario 3: select a new unit with the Adviser (sic) role for dialogs if
the original unit selected at the start of the scenario died
Under the Burning Suns:
Scenario 5: Fixed bug #19303: one of the dwarves was spawning in a wall.
The Rise of Wesnoth:
Peoples in Decline: fixed a message not shown when the Sea Serpent appears
Editor
Added Etheral Abyss terrain (Qxua) to the Cave category, too
Updated the terrain palette icons for winter/fall single or mixed forested
hills so they show the default base Hhd instead of Hh
Graphics
Fixed some spearman attack animations being too slow in some directions
Language and i18n
Updated translations: Chinese (Simplified), Chinese (Traditional), Czech,
Finnish, French, Galician, German, Hungarian, Italian, Latin, Lithuanian,
Old English, Polish, Serbian, Slovak, Spanish
Lua API
Extend and improve wesnoth.select_hex, deprecate wesnoth.highlight_hex
Multiplayer
Allow tab completion of player names in commands (bug #19284)
Fixed bug #19260: 'villages_value' -> 'village_value' in 5p_The_Wilderlands
Fixed eras other than the default breaking 2p_Hornshark_Island. If a player
has a faction not in the default era, a standard set of units (aimed at
Khalifate) is used now.
Fixed bug #19083: allow attack to happen normally without causing OOS if
turn time runs out in attack selection dialog.
Fix some unit images being cropped in 2p_Aethermaw
Fixed bug #18601: change swamp water so it looks as good as it did in 1.8
User interface
Draw gold hex cursor above all terrain when no unit visible
WML engine
Improve [select_unit] to match its original intention (bug #19224)
Improve error handling in case of invalid maps passed to
[replace_map] or [terrain_mask]
Disable wml menu items in linger mode without debug mode (bug #16262)
Whiteboard
Fixed bug #18635: Percentage not displayed for units selected at their
future position
Fixed bug #19142: attacks can be simulated between units (for which this
shouldn't be possible)
Fixed bug #19221: Assert when a whiteboard move-attack wins a scenario
Fixed bug #19222: After 'delete planned action', the unit is almost
invisible
Fixed turn not finishing when moves were planned for future turns
Miscellaneous and bug fixes
Fixed wmlindent writing CRLF end of lines on windows
Fix tutorial units without xp bar
Reset game credits instead of appending on WML cache refresh (bug #19292)
Fix wmllint check for "unknown xy referred to by id" not working
Version 1.9.14
AI
Fixed bug #18962 and bug #19214: AI leaders are no longer slow to select
attacks.
Campaigns
Sceptre of Fire:
New set of portraits
Editor
Fixed overpainting of transparent tile icons on the editor palettes on the
sidebar
Fixed terrain palette shrinking to the size of small categories when
switching maps (bug #19218)
Fixed various crashes related to drawing/filling operations (bug #18928)
Language and i18n
Changed font used for CJK languages to DroidSans
Updated translations: British English, Chinese (Simplified), Czech, Dutch,
Estonian, French, Galician, German, Hungarian, Latin, Norwegian, Serbian,
Slovak, Spanish
WML engine
Fix store_unit clearing the used variable before its filter can reference it
(bug #19203)
Check for argument image file existence before creating a MASK or
BLIT image mod (bug #19208)
New key [object]delayed_variable_substitution=yes|no (default no)
as a workaround for bug #18893 (fixes bug #19225)
Made empty {} preprocessor directives be handled more gracefully
(bug #19233)
Fixed bug #19213: [harm_unit] incorrectly uses ToD bonus
The turn bell and autosaves are not triggered anymore in certain situations
after [endlevel] has been issued
Miscellaneous and bug fixes
Fixed bug #19032: Poison and level up AI defense placement calculation
Fixed bug #19245: wesnoth(6) man page doesn't describe the --campaign*
options correctly
Enable local ToD lighting option by default.
Version 1.9.13
Campaigns
Northern Rebirth:
Infested Caves: integrated sighted events with moveto events
To the Mines: fixed Hamel not having the hero overlay
Clearing the Mines: fixed Dwarves recruitment not being disallowed upon
winning
The Pursuit: integrated a sighted event with moveto event
The Pursuit: replaced another sighted event with ON_SIGHTING
Elvish Princess: fixed Ro'Arthian and Ro'Sothian not having the hero
overlay
Introductions: used ON_SIGHTING instead of sighted event
Stolen Gold: gave Krash the expendable leader overlay
Stolen Gold: fixed one of the two loyal Drakes having two IDs
Stolen Gold: fixed Hidel missing his portrait
Get the Gold: gave Eryssa the expendable leader overlay
The Eastern Flank: made the Gryphon fly away and then return
Showdown: removed hero overlay from Ro'Arthian and Ro'Sothian when they
are leaders
Showdown: fixed Hamel's death not causing defeat
Epilogue: fixed music not being played
Eastern Invasion:
The Escape Tunnel: integrated sighted event with moveto event
Captured: integrated a sighted event with moveto event
Weldyn Besieged: fixed a typo in Konrad's last breath event
Sceptre of Fire:
Caverns of Flame: integrated a sighted event with moveto event
Son of the Black Eye:
The Desert of Death: integrated a sighted event with moveto event
Legend of Wesmere:
Ka'lian Under Attack: fixed a lua error in AI code
Editor
Fixed missing brightening of selected hexes under the brush
Language and i18n
Updated translations: British English, Czech, Dutch, French, Galician,
German, Hungarian, Korean, Latin, Lithuanian, Old English, Polish,
Russian, Serbian
Multiplayer
Fix user interface set to side 1 when entering linger mode
(bug #15847)
Unit changes and balancing
Changed the Lancer's and the Deathblade's AMLA requirements to conform to
the current AMLA standards
User interface
Removed blur from the add-ons description dialog
Fixed bug #19121: Make click dismiss work properly.
Fixed bug #17961 and #18686: Shows of big portraits on smaller screens.
Fixed bug #19118: Default theme: coordinates overlap with the clock status
panel on small horizontal resolutions. Also fixed for the widescreeen
theme.
Made it so that "AM"/"PM" show up in the default and widescreen themes
on the lowest supported resolutions.
Whiteboard
Display turn numbers on multi-turn planned moves
Fix attacks not finishing but still being transmitted over the network when
executing all actions
WML engine
Fixed: ~L() not handling lightmap having different width. Now rescaled.
Miscellaneous and bug fixes
Fixed: compilation with clang 3.0 in C++11 mode.
Changed: Sort order of campaigns uses a stable sort now.
Fixed bug #18832: Fixed ~BLIT() to access images out of bounds.
Fixed: ToD local light for RGB values bigger than 128.
Fixed: hex-cut of images in :layers debug tool. Also removed empty images
Forward ported a new version of multiplayer chat log history dialog
Fixed bug #19188: Turn dialog always speaks of Konrad in tutorial
Added: NativeClient port.
Fixed: crash when using fullscreen on Mac OS using SDL nightly builds.
Optimized screen update (zooming, ToD change, etc)
Optimized framerate by removing a lot of empty terrain images
Optimized perfomance cost of complex local ToD areas
Fixed bug #16571: Multiplayer login error with certain username or
password formats
Version 1.9.12
Language and i18n
Updated translations: British English, Czech, French, German, Hungarian,
Indonesian, Italian, Latin, Latvian, Old English, Russian, Slovak
Multiplayer
Fixed missed side init if controller changes at side progression
(bug #16299)
Fixed user interface not updated if controller changes (bug #19056)
Whiteboard
Fix invalid actions not being detected until another action is created
Erase invalid actions when you try to execute them
Disable access to Suppose Dead action until we can find a better UI for it
Fix bug #18774: Recalling with the whiteboard enabled causes crash
Fix bug #19061: Crash on starting most campaign scenarios
Fix getting "not enough gold" message when executing planned recruits/recalls
Ghost the unit at starting position of planned moves
On mouseover, display orb and xp bar on planned moves with accurate status
Mouseover on last planned move of a unit displays accurate movement left
Re-enabled multi-turn moves
Miscellaneous and bug fixes
Fixed bug #19095: fixed a gcc warning when compiling under OpenBSD
Fixed bug #19096: fixed linker errors on OpenBSD when using the CMake
build system
Version 1.9.11
Campaigns
Sceptre of Fire:
A Bargain is Struck: added missing hero overlays to Alanin and the
caravans
A Bargain is Struck: added find_vacant=yes to avoid unstoring Alanin
upon Rugnur or another player's unit
The Dragon: fixed Rugnur being recalled not fully healed
The Dragon: integrated two sighted events with moveto events
Engine
Fixed bug #18918: the create unit dialog was sometimes capturing village
incorrectly
Language and i18n
Updated translations: British English, Dutch, French, Finnish, Galician,
Indonesian, Italian, Korean, Latvian, Lithuanian, Old English
WML engine
Added [secondary_unit] SUF for filtering the recalling leader in [recall]
action WML
Fixed red, green and blue keys in 24-hour ToD not maching the default
schedule colors
Reworked [harm_unit]'s damage calculation code to avoid leadership ability
altering the damage value
Miscellaneous and bug fixes
Fixed disappearing theme UI buttons after changing fullscreen/windowed mode
or resolution in Preferences during a game
Fixed define handling of wmlxgettext (bug #18622)
Changed: Try to recover from broken pango-markup.
Version 1.9.10
AI
Fixed: Display of recruitment_ignore_bad_combat and
recruitment_ignore_bad_movement is no longer swapped (bug #18839)
Campaigns
Descent into Darkness:
A Small Favor, part 1: used 24 hour ToD
Son of the Black Eye:
To the Harbor of Tirigaz: used 24 hour ToD
Under the Burning Suns
Subterranean Struggle: no longer possible to win by allowing allies to
die
Across the Harsh Sands: the Black Hand oasis is no longer possible to
enter without triggering the bandits
Editor
Made sure lighting setting changes are applied immediately when closing the
settings window when automatic map view updates are disabled
Starting position tool menu now displays coordinates of existing positions,
and initially highlights the current player number assigned to the selected
hex
Add a menu item "Refresh WML" to reload terrain WML
Graphics
New Animations:
Goblin spearman run se
Merman fighter attack se
Tinted the slowed snail icon to match the new slowed unit color
Terrain:
Tall encampment keep can now be placed next to the tent encampment keep
Forest/hill terrain combinations no longer appear black on the minimap
Default team color always applied last; fixes bug #18817
Removal of Khalifate unit images
Language and i18n
Made it so that all of the Hangul Syllables block is covered by the
font-loading code.
Made it so that en_US translations are loaded if they exist (bug #18507)
Updated translations: British English, Czech, Dutch, Finnish, Galician,
Indonesian, Irish, Italian, Japanese, Korean, Latin, Lithuanian,
Old English, Portuguese (Brazil), Russian, Slovak, Swedish
Lua API
add function wesnoth.get_starting_location
The side metatable provides also the side number
(like wesnoth.sides[i].side, which would be i)
add function wesnoth.debug
Added: Support for clickables (button and repeating button) to
wesnoth.set_dialog_callback (patch #2763)
Allowed function debug.traceback()
wesnoth.set_village_owner takes a bool argument determining
whether to fire capture events
Oasis may be placed on any terrain, aliased to base
New terrain macro: MOUNTAIN_SINGLE_RANDOM
New rotting variant for wooden bridge
Unit changes and balancing
All mounted units now have forest defines capped at 30%. This reduces their
defense on forested hills from 40% to 30%
Forests now give best defense and worst movement on all terrain,
not just hills - fixes bug #18216
Fixed some Khalifate unit animation glitches
The XP required for an AMLA is now 50*level (and 25 for level 0) instead of
always 150.
Increased the HP of the Great Mage from 55 to 60
Increased the ranged attack of the Footpad from 4-2 to 5-2
Removal of the Khalifate units, faction and era
User interface
Removed waypoints UI feature
Added an option to disable the "loading save from a different version"
confirmation dialog
Line-wrap author names in the add-on description dialog (bug #18691)
Made the Delete Add-on (in the server) option request confirmation from
the user before proceeding
The add-ons download list shows up again after publishing/deleting a
single add-on
Added option in advanced preferences that allows the twelve-hour clock
format to be used
Reenabled "delay shroud updates"
Changed: Disable pango markup in unit names (bug #17788)
It is now possible to remove multiple installed add-ons at the same
time
Slowed units are now tinted to be recognizable at a glance
Fixed: Removed old markup style from OOS messages (bug #18387).
Fixed: OOS ignore toggle in the save dialog (bug #18330).
WML engine
Readded the liminal alignment
Added four-difficulty versions of certain macros: QUANTITY4,
ON_DIFFICULTY4, TURNS4, GOLD4, INCOME4, and ATTACK_DEPTH4
added support for SSF to SUF via a [filter_side] subtag
added support for [enemy_of] to SSF
added support for [allied_with] to SSF
New [find_path] tag, a WML interface to the pathfinder
Add inline SSF support to [store_starting_location]
Add support for [capture_village][filter_side]
Added FACING, which adds facing= to a previous [unit] codeblock
Added VARIATION, which adds variation= to a previous [unit] codeblock
Deprecated the Add-on.cfg style in favor of Add-on/_main.cfg, except for
the case of a single-file add-on
[illuminated_time], which has been obsolete for a long time, is no longer
valid. Using it will cause errors to be thrown
Reintroduced support for [unit][event]s (was until 1.7.10, bug #16259)
Such events are no longer forcefully variable substituted before inserting
into the scenario wml
Fixed "error parsing image modifications" message caused by subsequent
image mod additions using the add attribute in [effect] apply_to=image_mod
Made $this_unit in filter_recall work
Added IS_EXPENDABLE_LEADER, which gives a unit the expendable leader icon
Added $this_unit support to [harm_unit] and [find_path]
Settings by [color_adjust] no longer expire at turn start or over save/load
cycles
Implemented bullet= for [objectives], [objective], [gold_carryover], and
[note]
Implemented red=, green=, and blue= for [objective], [gold_carryover], and
[note]
Added [theme] hidden= attribute that makes a theme unavailable for selection
in Preferences or :theme (defaults to no)
Implemented $second_unit being bound to the acting leader in recall/recruit events
Introduce [redraw]clear_shroud=yes|no and [redraw] support
Introduce [race]undead_variation as a default for the race's [unit_type]s
$owner_side describes the previous side owning a village
in capture events (FR bug #13567)
Introduce [capture_village]fire_event=yes|no (def no) whether to fire
any capture events (was previously always yes)
Made [move_unit] respect image modifications applied by EffectWML to single units
Introduce [unit_type]image_icon key to override image for 72x72 icons
(FR bug #15466)
Added IS_LAST_SCENARIO macro, for use in [objectives] dialog.
Fix [objectives]silent= not working initially in a scenario (bug #18927)
Miscellaneous and bug fixes
Add --language/-L commandline option to set the language for that session
Fixed: Avoid copying of singular iterators in the whiteboard code
Fixed bug #10969: Made it possible to switch themes from Preferences in the
main menu
Fixed bug #16111: gold carryover if loading a save created in linger mode
Fixed bug #16508: remaining time of day areas that should affect map
borders in mainline campaigns and MP scenarios
Fixed bug #18399 (part 5): Compilation with the clang 2.9 compiler (bug
#18399's patch)
Fixed bug #18695: Fixed preload event not being fired
Fixed bug #18701: Evaluate key length even if intervening WML children
don't exist
Fixed bug #18704: Make the create unit dialog give the created unit a valid
gender for that unit type
Fixed bug #18766: Fixed a problem where version comparisons (including, but
not limited to #ifver/#ifnver directives) could cease to work until Wesnoth
was restarted
Fixed debian bug #636193: Fixed compilation on all Debian architectures
Fixed handling of #ifver and #ifnver preprocessor directives in wmllint
Removed CANYON and its associated terrain macros
The credits screen no longer mangles image path functions in background
image lists
Fixed a rare glitch causing the menubar and sidebar buttons to appear
initially as solid color rectangles at the beginning of a scenario start
event
Fixed bug #18681: glitch with local time of day lighting
Fixed bug #18892: random crash when loading replays
Fixed bug #18882: Compilation with libpng-1.5.5
Version 1.9.9
AI
Fixed bug #16117: added a way to supress E_NOT_REACHED_DESTINATION to lua
Fixed bug #16247: modify SoF 8 to let the dragon attack aggressively
api via an optional boolean parameter - ai.move_full(from,to_x,to_y,true)
Fixed bug #18057: AI leaders should now attack when they should
Fixed bug #18122: AI leaders set to defensive will now follow goals anyway
Fixed bug #18356: AI leaders now won't move to avoided keeps
Applied patch #2846 by thonsew: let AI forget about invisible enemy units
in villages during get_villages phase (bug #18101)
Campaigns
Fixed remaining deprecation warnings about empty side=
Under the Burning Suns:
Fixed Naga Sentinel gaining an AMLA after 32 XP instead of the usual 150
Gave to Desert Shydes and Desert Stars 30% defense on void terrain
Engine
Fixed bug #16173: Using n or cl while a fake unit is moving causes the game
to segfault by creating game_display::fake_unit as an exception safe
interace to the fake_units
Improved unit_map lookup from std::map to boost::unordered_map to decrease
lookup times
Fixed bug #16151: Discover new units on recruit
Fixed bug #17780: Allow objects to 'increase' damage to 0
Fixed bug #18098: now recruits and recalls capture village if recruited or
recalled on village castle hex
Graphics
Fixed bug #18524: [replace_map] doesn't force window repainting
Fixed bugs #18504 #18493 and #18017: Time of Day and fading interact poorly
Fixed bugs #18475 and #17292: Mage of Light and Sorceress Halo/animation
glitches.
Swamp no longer prevents embellishments from being drawn
Fixed bug #15940: graphics glitch: pillared wall terrain covers great
tree
Language and i18n
Updated translations: British English, Estonian, French, Galician, Greek,
Hewbrew, Indonesian, Irish, Latin, Macedonian, Old English, Russian,
Vietnamese
Lua API
Added: function wesnoth.set_dialog_active (patch #2767)
Expanded wesnoth.races entries to return the wml object a race was
constructed from via the __cfg field.
New function wesnoth.get_traits returning a table holding the global traits
known to the engine.
Multiplayer
Updated maps: Aethermaw, Hornshark Island, Sablestone Delta, Thousand
Stings Garrison
A New Land:
Fixed 'agriculture' not getting translated sometimes and research
for agriculture not getting counted if the research order wasn't changed
(bug #16477)
Options to share knowledge with those who have learned everything about
whatever are no longer shown (bug #14822).
Added "chat_message_aging" advanced preference to allow setting the
ingame chat message aging interval
Music and sound effects
New track "Battle Epic" by Doug Kaufman
Unit changes and balancing
New units: Great Wolf; Direwolf
Lowered swamp defense of Cuttlefish and Sea Serpent from 60% to 40%
Decreased cost of Giant Rat from 13 to 6
Various changes to the defense, movement and resistances of the Giant Rat
Increased the XP requirements of the Arif from 40 to 47
Increased the cost of the Falcon from 10 to 12
Decreased the beak and claw attack of the Falcon by one each to 2-3 and 5-1
Decreased the HP of the Falcon from 19 to 18
Increased the XP requirements of the Falcon from 20 to 24
Increased the XP requirements of the Hakim from 33 to 39
Decreased the HP of the Jundi from 36 to 32
Increased the XP requirements of the Jundi from 35 to 44
Increased the cost of the Khaiyal from 20 to 21
Decreased the blade resistance of the Khaiyal from 30% to 20%
Decreased the pierce resistance of the Khaiyal from 0% to -10%
Decreased the impact resistance of the Khaiyal from 10% to 0%
Increased the melee attack of the Mighwar from 7-5 to 8-5
Decreased the HP of the Mighwar from 57 to 53
Increased the melee attack of the Monawish from 6-4 to 7-4
Decreased the HP of the Monawish from 45 to 41
Decreased the HP of the Naffat from 32 to 28
Increased the XP requirements of the Naffat from 38 to 44
Increased the cost of the Naffat from 17 to 19
Decreased the melee attack of the Qatif-al-nar to 10-2
Decreased the ranged attack of the Qatif-al-nar to 8-3
Increased the XP requirements of the Rasikh from 40 to 150
Decreased the melee attack of the Tineen to 10-3
Decreased the impact resistance of the Falcon line from 0% to -10%
The Falcon line now gets 2 traits, one normal trait and the feral trait
The Naffat line is no longer able to get the strong trait
Converted units with khalifatelightfoot to khalifatefoot movetype:
Increased the fire resistance from -10% to 0% (Hakim only)
Increased the impact resistance from -20% to -10%
Increased the village defense from 50% to 60%
Removed the khalifatelightfoot movetype
Changes to khalifatefoot movetype:
Increased the frozen defense from 20% to 30%
Changes to khalifatearmoredfoot movetype:
Increased the shallow water and swamp mp from 2 to 3
Decreased the mushroom grove defense from 50% to 40%
Changes to the khalifatehorse movetype:
Increased the shallow water, swamp, cave, and mushroom grove mp cost to
4 in all cases
Increased the forest mp cost from 2 to 3
Decreased the frozen mp cost from 4 to 2
Decreased the swamp defense from 30% to 20%
Decreased the cave defense from 40% to 20%
Decreased the mushroom grove defense from 40% to 20%
Increased the frozen defense from 10% to 30%
Increased the impact resistance from -10% to 0%
Changes to the khalifatearmoredhorse movetype:
Increased the shallow water, swamp, cave, and mushroom grove mp cost to
4 in all cases
Increased the reef mp cost from 2 to 3
Decreased the frozen mp cost from 4 to 2
Decreased the cave defense from 40% to 20%
Decreased the mushroom grove defense from 40% to 20%
Made Hotkeys configuration dialog fit on < 600 px tall resolutions (i.e. 800x480)
Various minor improvements for consistency
Whiteboard planning system:
Added support for planning multi-turn moves
Added the option to hide allies' plans during a network game
Made action numbers colored according to team color
Made plan execution halt upon discovering hidden units
WML engine
Added [event]id= support (to protect against duplicates)
Added [event]remove=yes|no support
(to remove events that have an id set)
Implemented sub= and divide= for abilities and weapon specials
(patch #2857)
new attribute replay_save= in [endlevel]. Defaults to yes, allows
WML authors to disable replay saving for a scenario. (bug #18026)
[harm_unit] always uses wesnoth.float_label to avoid that an incorrect
weapon filter may prevent floating the damage label
new key heal_full=yes|no (def no) in [effect]apply_to=type
Added SLF support to [event][item] and [remove_item].
[remove_item]: IMPORTANT SYNTAX CHANGE: Default x,y=$x1,$y1
is no longer supported, but instead all locations on the map chosen if
no SLF keys are supplied. No wmllint rule in official release but patch
in bug #18522.
[event][item]: If x = and y= aren't explicitely given no longer throw an
error but choose locations according to SLF behavior.
Allowed [modify_turns]current= to change to an earlier current turn
Added [primary_attack] support to [harm_unit]
Added wml tag [store_items]
[harm_unit] now supports a harmer unit and experience calculation.
Added support for 24 hour ToD.
Added WML validation system based on schema validation.
Enabled validation for GUI WML.
Miscellaneous and bug fixes
Teach wmllint to fix deprecated implicit side=1 in [store_gold], [gold]
[remove_shroud], [place_shroud], [modify_side], [modify_ai] actions
Fixed bug #17150: fix naming confict with OpenBSD macro by renaming
Added "-Wno-strict-aliasing" to the default compiler flags
Whiteboard planning system:
Made the whiteboard respond better to :droid, :give_control, etc.
Removed chat notification upon activating the whiteboard
Added advanced preference to ignore the encountered units
list and show all unit types in the game Help
Version 1.9.8
Campaigns
Fixed deprecation warnings about "empty side="
Language and i18n
Updated translations: British English, Estonian, Indonesian, Irish,
Latin, Old English, Russian, Vietnamese
Lua API
added support for slider and progress_bar widgets to
wesnoth.get_dialog_value
added support for text_box, slider, and progress_bar widgets to
wesnoth.set_dialog_value
new wesnoth.races table
wesnoth.get_terrain_info can now retrieve the editor_name field
Multiplayer server
Handle incoming [whiteboard] data
Treat inactive forum accounts as unregistered users to prevent abuse
of unverified registrations
User interface
Converted New Folder dialog to GUI2
Moved Animate Map option from Advanced Preferences to Display
Moved Reverse Time Graphics display option to Advanced Preferences
Moved Scroll Tracking of Unit Actions display option to Advanced
Preferences, renamed to Follow Unit Actions
Moved Unit Standing Animations option from Advanced Preferences to
Display
Removed window decorations from GUI2 lobby
Sort the Recruit menu by localized unit type names (feature #18294)
Whiteboard planning system:
Added a new planned action type: "Suppose dead"
Changed behavior of invalid actions (no longer immediately discarded)
Disabled undo while planning mode is active
Made whiteboard plans visible to allied network players
Terrains
Tweaked gameplay-visible names of terrain types, and restored many
missing ones.
Miscellaneous and bug fixes
CMake build system:
Disabled building of libana by default
Removed "-Wno-strict-aliasing" from the default compiler flags
Fixed bug #18117, saved games with Qatif-al-nar became corrupted
Fixed bug #18120, where Khalifate units were not getting the default AMLA
Patch #2663: Make wesnoth-optipng work on systems with BSD stat
Started working on the new asio based network subsystem. boost.asio
(along with boost.thread and boost.system) is now a dependency for
the client no matter whether ANA is enabled.
Support for gamepads/joysticks
Version 1.9.7
Graphics:
Terrains:
Modified Deep Water tiles for greater contrast with Shallow
New Dead Great Tree
Portraits:
Drake Warden
Language and i18n
Updated translations: Afrikaans, British English, Chinese (Traditional),
Galician, German, Greek, Indonesian, Irish, Japanese, Korean, Latin,
Lithuanian, Old English, Portuguese (Brazil), Serbian, Spanish, Swedish,
Vietnamese
Lua API
proxy getters and setters for unit attributes extra_recruit
and advances_to
new function wesnoth.add_known_unit
new proxy getters for sides: fog, shroud, hidden, name, color
new function wesnoth.get_time_of_day
new functions os.clock, os.date, os.time and os.difftime
Multiplayer
New "Shuffle sides" option in MP creation list, allowing to randomize
player to side assignment (patch #1937 by Quetzalcoatl)
User interface
Fix starting location labels being initially invisible in the map editor
(bug #17956).
Fixed bug #18000, #18099: Show a wrongly entered MP password and crash
upon editing this text.
WML engine
added mode=replace to [modify_unit] to replace rather than merge unit subtags
(does not apply to object, trait, effect, or advancement)
new attribute team_name= in SSFs
added [event][filter_side] support
added support for inline SSF to [chat]
added support for inline SSF to [store_gold]
added support for inline SSF to [store_side], added attribute
"side" in the created array
introduced [has_unit]search_recall_list=yes|no (def no) parameter in SSFs
support for leader specific recruit lists
[unit] extra_recruit= -- defines a unit with a specific recruit list
[event] [allow_extra_recruit] [filter] [/filter] type=
-- adds unit types to a leader's recruit list
[event] [disallow_extra_recruit] [filter] [/filter] type=
-- removes unit types from a leader's recruit list
[event] [set_extra_recruit] [filter] [/filter] extra_recruit=
-- assigns a new recruit list to the leader
support for leader specific recall filters
[unit] [filter_recall]
-- The unit can only recall units which pass the SUF
Removed the Liminal alignment
Fixed: a divide by zero in the calculate_map_ownership_function function
Possibly fixed: rounding errors when using ^ in formulas (bug #18165)
Animation will now cycle according to a WML parameter, use with caution
Toplevel [tunnel] tags are now ignored rather than cause assertion
failures (bug #18201).
Miscellaneous and bugfixes
Fixed: issues with singular variant iterators
Fixed: the Wescamp script download part
Fixed the ingame command line not accepting
characters accessible via AltGr (certain keyboard layouts)
on windows systems
Started using Boost.Program_options for command line parsing (new
dependency)
Commandline syntax changes:
--ai_config renamed to --ai-config
--new_storyscreens renamed to --new-storyscreens
--no-delay renamed to --nodelay
--campaign option split into --campaign, --campaign-difficulty and
--campaign-scenario
split optional comma-separated defines list from --preprocess= (or -p=)
to --preprocess-defines= option
dropped --log alias for --log-error
Fixed: Compilation on kfreebsd (Debian bug #626313)
Fixed: CMake Subversion revision script causing build errors with MSVC.
Fix time of day not changing in time area (bug #16584, bug #17543)
Patch #2624: Solved enemy leaders never appearing on status table on
foggy/shrouded maps, even when visible.
Fix linker issues with cmake and scons.
Version 1.9.5
Graphics
Portraits:
New portrait for Drake Enforcer/Thrasher.
Terrains:
Moved the ruined desert castle to core.
New and improved swamp villages.
New and improved tropical villages.
New ruined desert keep.
New stones and sand drifts embellishment.
New tall encampment keep.
New water lilies embellishment.
Other:
New elf-style flag.
Language and i18n
Added missing Windows locale associations
Fixed Windows locale association for tr/Turkish
New translation: Old English.
Updated translations: British English, Chinese (Simplified),
Chinese (Traditional), Czech, Dutch, Finnish, French, Galician, German,
Irish, Italian, Japanese, Portuguese (Brazil), Slovak, Spanish, Vietnamese
Updated DejaVu Sans to 2.33
Multiplayer
Don't show team labels to observers (feature request #9648).
Recalculate map labels to account for team changes when switching players
with :control.
Renamed /adminmsg command to /report to better reflect its use.
User interface
Added: circle to the gui2 canvas.
Added: new tip class for tooltips and helptips.
Reimplemented: the tooltips use the new tip class and look much better
(bug #14818).
Fixed: the tooltips no longer stack when the MP dialog is opened
(bug #16915, bug #16670).
Implemented: the helptips.
Changed: the scroll wheel, in gui2 code, now also follows the mouse focus
instead of the keyboard focus.
Fixed again: Not showing the twml_exception dialog when gui2 was called
from Lua (bug #17405).
Fix old multiplayer lobby glitches caused by the loadscreen code when
skipping to the lobby with -s command line.
Add 1.25, 1.75 and 3.0 animation speed factors to display preferences
(feature request #15713).
Implemented: The expose event in gui2.
Fixed: Image widget now honors its minimum and maximum size.
Fixed: Black lines in the minimap.
Fixed: tooltips no longer capture the keyboard (bug #17797).
Changed: Allow underline in the gui2 font style.
Fixed: Not wrapping of transient dialog text (bug #17945).
WML engine
Added support for map_passable and leader_passable for [placement]
Allow [color_range] and [color_palette] nodes to be inserted at top-level
by add-ons to globally define custom ranges and palettes.
New [tunnel] tag to create teleports between two SLFs for units matching
a SUF. The [teleport] ability retrofitted to use this tag.
New [allow_end_turn] and [disallow_end_turn] commands to enable/disable
the human players' ability to end their turn from the user interface
(feature request #13141).
[side] tags may now contain [leader] tags to create their leader(s), as
opposed to mixing the leader's attributes with the side attributes.
New wml action tag [transform_unit], like the {TRANSFORM_UNIT..} macro.
[unstore_unit] now accepts a fire_event= key to control firing of
(post) advance events and a check_passability= (default yes, previously
it was always no/non-existent) key controlling whether to check for
suitable terrain when placing units
Renamed [teleport]ignore_passability= to check_passability= to get rid of
a confusing negation.
Introduced [move_unit]check_passability= (default yes, previously it was
always yes/non-existent) key to allow disabling the check for suitable
terrain.
Added TAKE_IT_STRING and LEAVE_IT_STRING arguments to PICKUPPABLE_ITEM
Added an engine-defined WESNOTH_VERSION macro that expands to the Wesnoth
engine version string.
New #ifver/#ifnver preprocessor macro to compare Wesnoth or UMC-defined
version numbers as in '#ifver WESNOTH_VERSION >= 1.9.5'.
The tags [remove_shroud] and [place_shroud] now take comma-separated lists
of sides.
The [gold] tag now takes a comma-separated list of sides.
Added automatically stored variable this_unit to [modify_unit]
for self-reference via $this_unit
Miscellaneous and bugfixes
Fixed: g++ compiler warnings.
Added: cmake target to build the gui design pdf.
Removed support for TinyGUI: Devices with a resolution below 800x480 are
not supported anymore.
Changed: The minimum screen resolution is 800x480, no need to use
--smallgui anymore.
Reverted hotkey for clearing cache for Mac OS X back to F5. Control-F5
still works (and is necessary when in windowed mode).
Let cmake use absolute locale dirs when set to an absolute path.
(Windows always uses a relative path.) (patch #2280)
Make it impossible to build Wesnoth without the editor.
Fixed a replay OOS issue caused by ToD areas defined outside of events
(bug #17783).
Changed: when loading a file fails to open try with a .gz file.
Unit invalidation is processed in parallel using OpenMP
Allow redirection of the logger.
Polished gui2 code.
Fixed: Newer versions of FriBidi were no longer recognized.
wmlindent now handles #ifhave, #ifnhave, #ifver and #ifnver properly in
WML.
Version 1.9.4
AI
Fixed bugs #15861, #16223, #17206: fix passive_leader and
passive_leader_shares_keep.
Campaigns
Delfadors Memoirs:
Fixed bug #17273: Made difficulty selection conform to the style of all
other mainline campaigns
Descent into Darkness:
New set of portraits.
Eastern Invasion:
Fixed bug #15950: Made 11_Captured remove units from recall list,
preventing units being 'healed' upon load.
Engine
Fixed bug #17355: split team initialization into two parts to prevent
wrong determination of allied sides.
Formula language
Added substring function.
Added length function, to determine the length of a string.
Decreased the physical resistances of the Dwarvish Scout and Dwarvish
Pathfinder to 10% and those of the Dwarvish Explorer to 20%.
Decreased the village defense of Chocobone from 60% to 40%.
Moved the Fire Guardian unit to core.
Fixed villages on snow and sand hills providing worst instead of best
movement.
The complete Dwarvish Runesmith line moved from SoF to core along with new
sprites.
User interface
Fixed: Addon dialog in title screen shows last host again.
Fixed: Addon download progress dialog shows the correct addon name again.
Fixed: Fullscreen hotkey works again in the title screen.
Fixed: Termination of the game when making the title screen small
(bug #16724).
Fixed: A resize glitch causing resize events to be lost.
Changed: All buttons in the title screen now have a hotkey.
Changed: Refresh cache hotkey is CTRL+F5 on the Mac by default now.
Fixed: Don't trigger an assertion failure if no tips are defined
(bug #16731).
Fixed: Enter no longer shows the credits in the title screen.
Changed: The title screen now has a maximum width for the tips text.
Changed: Improved the layout of the title screen.
Fixed: Changing the language updates map and logo in title screen
(bug #16631).
Fixed: No longer cut off large title screen logos (bug #16632).
Refresh cache (F5) works in editor.
Add a "Save All Maps" menu item and hotkey in editor.
[object] description messages are now shown using GUI2, allowing usage of
Pango markup (bug #16859).
Whiteboard planning system:
Fixed: Crash when creating a planned move on Windows (bug #16705)
New "Execute all actions" command bound to CTRL+y
WML Engine
id= in SUFs now accepts a comma-separated list.
[capture_village] now accepts a full SLF.
events can be fired depending on a condition using [filter_condition].
Added support for SLF to [terrain]. Note that the SLF's terrain= key is
not valid; terrain= specifies the new terrain instead like it used to do.
Filtering for terrain can be done with the [terrain][and]terrain=
workaround.
Renamed [removeitem] to [remove_item].
added new parameters directional_x and directional_y to animations
added new parameters auto_vflip and auto_hflip to animations
Made it so that units affected by [hide_unit] don't appear on the minimap
(FR #16796)
New [store_reachable_locations] tag for storing the locations reachable (by
movement, attack or vision) of units.
New [select_unit] tag, with optional fire_event (def. no) and hilight_hex
(def. yes) attributes (FR #16819)
New [message] scroll= attribute to specify whether the game view should
scroll to the speaking unit (defaults to yes) (FR #16843)
New key 'random_start' (default = yes) in [terrain_graphics][image]
allowing to disable random animation shift in animated terrains.
Added a new key "primary" to animation to separate frames that should be
treated as primary from frames that shouldn't
Made it so that if several [advancefrom] tags for a certain base unit are
encountered, the lowest experience= keys from these is chosen (so if
there's only one [advancefrom] referencing this base unit the experience
needed can be increased).
Miscellaneous and bugfixes
Changed: Lowered severity of some gui2 timer log messages.
Units created in debug mode now play their recruit animation (FR #16766).
Fixed: hotkeys dialog in editor is big enough to display them correctly.
Fixed: Shifted windmill animation (bug #16529)
Files matching *.wesnoth and *.project in add-ons are now ignored by
default when uploading
Version 1.9.1
AI
Fixed bug #16585: made AI move in targeting phase even if for some of the
'best' units moves to targets are impossible
Campaigns
Unified the campaign description of the number of scenarios. Now the
number reflects only the battle scenarios of each campaign.
A Tale of Two Brothers:
New portraits for Arne and Bjarn.
Dead Water:
Fixed the last scenario not working due to an 'unknown scenario' error.
Descent into Darkness:
Fixed the 'A Small Favor' scenarios being unbeatable.
Eastern Invasion:
Increased Owaec's hitpoints and attack stats, and added a new weapon
special to his morningstar on levels 2 and 3.
Legend of Wesmere:
Splitted the multiplayer port into five chapters with 3 difficult levels
each.
(Beta) Chapter one, a two player campaign, ends after scenario 3.
(Beta) Chapter two, a three player campaign, ends after scenario 7.
(Alpha) Chapter three, a four player campaign, ends after scenario 13.
(Alpha) Chapter four, a four player campaign, ends after scenario 17.
(Alpha) Chapter five, a two player campaign, ends with the single
player version.
There is no savefile compatibility between saves from an older version
of Wesnoth.
Scenarios
Scenario one's objectives changed.
Completed a rewrite of scenario 5, changing the objectives, ai and
game mechanism slightly.
Scenario 7
Shortened by letting the orcs flee if their numbers went too low.
The player can choose between two different starting positions for
Olurf.
Rebalanced Scenario 14.
Miscellaneous and bug fixes:
Renamed some of the locations at the Kalian to fit with the map
changes.
Fixed scenario number 5 where the gold carrier's overlay was not
removed.
Fixed the bug with the army split up before scenario number 9.
Map and coding updates regarding the new terrain types and graphics.
Added keeps to every scenario to match the number of leaders
(singleplayer) or sides (multiplayer).
Removed the obselete Haldric the second portrait.
The Rise of Wesnoth:
Made surprise enemy spawns appear in a less immediately dangerous way in
'The Midlands', 'The Swamp of Esten', 'Peoples in Decline',
'A Rough Landing', 'The Vanguard', 'Return of the Fleet' and
'Rise of Wesnoth'.
Clarified the early finish bonus conditions in 'Fallen Lich Point' and
'Sewer of Southbay'.
Allowed Merman Hunters to be recruited alongside Merman Fighters.
Sceptre of Fire:
Fixed bug #16542: Alanin not appearing in the epilogue.
The South Guard:
Fixed a bug causing a freeze at the beginning of 'The Long March'.
Editor
Added a standard click sound to brush bar buttons (bug #15635)
Graphics
New animations: Merman Hunter ranged animation and defence, Warrior se
attack and defence, Drake Flare and Flameheart leadership.
New portraits: Inferno Drake, Mermaid Initiate alternate, Goblin spearman
alternate
Terrain:
Tropical Ocean added
Improved transition between void and off-map and with both and the
oceans.
Snowy Human City Village added
Muddy Quagmire (Sm) added - alias of swamp
Old Desert Mountains replaced with a non-green version of the mountains
Slightly tweaked dirt colors and new, smooth dirt transitions
Better transitions for Cobbled Road, Clean Cobbles, and Overgrown Path
Fixed hard edge on immpassible mountains clouds.
Fixed Transition of leaf litter to water.
Fixed hard edge on top of cave beams
Fixed lava drawing extra transition on off-map
Any Castle or Keep except Dwarvish can now be combined without large gaps or extra walls.
Better rendering of unit in water: transparency decreases with depth.
Language and i18n
Updated fonts: DejaVu 2.32
Updated translations: Chinese (Simplified), Chinese (Traditional), French,
German, Hungarian, Indonesian, Japanese, Lithuanian, Polish, Russian,
Slovak, Vietnamese
Multiplayer
Updated maps: 4p Hamlets.
Updated most of the maps taking advantage of the new terrains.
Side vision is now switched before the healing phase of the turn (only
visible in hotseat)
Re-added the old MP lobby.
Terrain WML
Updated height adjust of desert, orcish, and snowy keeps.
Fixed broken aliasing of the wooden floor.
Stop using negative unit height adjust for water terrains.
Chasm bridges can now be placed on any terrain, and the lit-by-lava
variants are automatically used when placed over lava.
Removed village terrains: ^Voha, ^Voh, ^Vhms, ^Vhm, ^Vcha, ^Vch, ^Vcm. See
the village aliasing change listed below.
Unit changes and balancing
Decreased the melee and ranged attack of the Footpad from 5-2 to 4-2.
Decreased the XP requirement of the Mage from 60 to 54.
Decreased the XP requirement of the White Mage from 150 to 136.
Decreased the XP requirement of the Mermaid Priestess from 150 to 132.
Added the Ghast unit from DiD to core with new base frame and animations.
Made the Giant Rat have a normal AMLA instead of an AMLA with no fullheal.
All bats are now given a 'feral' trait which caps their defense on villages
to 40% and also making them receive only one random trait.
All villages except for water and swamp villages are now aliased to both
village and the terrain they're placed on, giving best movement and defense
of both.
User interface
Changed: the title screen is now gui2 (bugs #12906, #12908 and #15987).
Use red/green color for damage in sidebar when modified by bonus/malus
Placing a waypoint on a capturable village will now make the unit pause
there to capture it (FR#16603)
Fixed bug #16653: Avoid markup when calculating the text length for
ellipse text (Debian bug #547476).
Damage type tooltip now also shows damage after resistance calculation.
Whiteboard
Added cost display for planned recruits and recalls
Fixed bug #16554 : Infinite attacks with the whiteboard
WML Engine
Added tag [kill][secondary_unit] for specifying the killing unit.
Added a LOW_MEM define to WML to be able to adapt WML to low memory
builds.
Added event: side turn X
Added event: turn X refresh
Added [chat] tag for outputting public or private messages to the chat.
Added events: turn end and turn X end
Added events: side turn end, side X turn end, side turn X end,
and side X turn Y end
Added "variations" key and "@V" symbol in [terrain_graphics] (syntax is
not final, and may change later)
Fixed a bug causing the PUT_TO_RECALL_LIST macro to freeze the game.
Modified [set_variable] "divide" so that it always performs a
floating-point divide.
Allow time_area to define local time of day on map border (bug #16508)
Allowed negative defense values as a way to set upper bounds,
e.g. village=-60 means that a unit cannot have less than 60 def (more
than 40% def) on terrains containing villages.
Miscellaneous and bug fixes
Removed: statistics upload code.
Changed: compiler mode set to c++98
Optimize terrain rules which speed up cache creation and loading
Optimize rendering of flying units
Fix crash when attacking in fog (using teleport+attack to a fogged village)
Fixed a bug causing turn counter in the objectives dialog to duplicate when
the objectives are viewed several times.
Replace "working peasant" (indicating missing images in debug mode) by
half-transparent "Image not found"
Improved rendering algorithm: reduced memory requirements and a much faster
render loop; very noticable on big maps
Improved framerate by removing useless 20ms delay between frames.
Version 1.9.0
AI
Fixed bug #15994 : Formula AI candidate actions specified in [side][ai]
don't always work.
Fixed bug #16406: Broken AI of SoF 1, and improved upgrade procedure for
old-style AI config.
Campaigns
An Orcish Incursion:
Made 'Valley of Trolls' easier on the easiest difficulties.
Dead Water:
New campaign added to mainline from the Wesnoth-UMC-Dev Project's
repository (Intermediate level, 13 scenarios)
Descent into Darkness:
'A Small Favor' (part 1) now gives an early finish bonus.
Dela is no longer invulnerable in 'Alone at Last' but cannot be safely
assassinated.
Eastern Invasion:
New (unanimated) sprites for Owaec.
Made it slightly easier to rescue the knights in 'Mal-Ravanal's Capital'.
Increased the turn limit in 'Two Paths' from 18/16/14 to 18/17/16.
Heir to the Throne:
Made 'Cliffs of Thoria' much easier.
Made 'Isle of the Damned' slightly easier.
Liberty:
Increased the difficulty of 'Unlawful Orders', 'The Grey Woods' and 'The
Hunters' and 'Glory'.
Northern Rebirth:
In Showdown, you recover full gold only if Sisal survived the previous
scenario.
Son of the Black Eye:
Increased the turn limit in 'Black Flag' from 30/25/20 to 30/28/24.
The South Guard:
A new set of story art by Scavenger.
In 'Vengeance', the final objective is now revealed at the beginning of
the scenario.
New images for the Infantry Lieutenant and Commander by Rhyging5
Scenarios in Eastern Invasion, Liberty, Northern Rebirth, Son of the
Black-Eye and The Rise of Wesnoth which feature computer-controlled allies
now allow you to affect their behavior via the right-click menu.
Graphics
Added new portraits for: the Orc Archer, Crossbowman, Slurbow, Sayer,
several new Orc Grunt line alternates, Draug and one alternate, Ghoul,
Skeleton Archer line, Giant Mudcrawler, Orc Leader/Ruler, alternate Leader
and Sovereign, alternate for Loyalist Swordsman, Drake Fighter, Burner.
New animations (not yet including leading animations) for Drake Flare
and Flameheart, Dwarf Lord ranged attack, Dwarf guard melee attack, Dwarf
Pathfinder idle, Ruffian attack and defend, Spearman s and se attack.
New base frame and animations for Armageddon Drake.
Fixed bug causing Drake Clasher's animation to display incorrectly.
Added missing help version for Sea Serpent portrait.
Items & scenery: New anvil, and revised trash and lighthouse
Two new flag styles.
Animate terrain in editor
New advanced preference to use a local ToD color-shift
Added framework allowing to draw various arrow styles on the map.
Language and i18n
Updated translations: British English, Catalan, Chinese (Simplified),
Chinese (Traditional), Czech, Dutch, Estonian, Finnish, French, Galician,
German, Hungarian, Indonesian, Italian, Japanese, Latin, Latvian,
Lithuanian, Polish, Russian, Serbian, Spanish, Slovak, Vietnamese
Updated DejaVuSans to 2.31
Fixed bug #15653: Made untranslateable strings translateable.
Fixed bug #15843: Made untranslateable strings translateable.
Fixed bug #15934: Flushed image cache when changing language
Fixed bug #15937: Made untranslateable strings translateable.
Make map labels store translatable strings, so when the language changes,
the labels also use the new translation.
Multiplayer
Updated map: Ruins of Terra-Dwelve.
Fixed bug #15865: missing WML Child error.
Added the winner of the first Wesnoth map competition, the 2 player map
"Elensefar Courtyard" by krotop.
Music and sound effects
New version of "Northerners" by Stephen Rozanc (TreizeCouleurs)
New sounds for wolves and wolf riders. Removed all old wolf-* sounds.
Terrain
all villages except water and swamp villages can now be placed on any base
terrain
orcish, elven and human snow villages are now aliased to village,snow
instead of just to village
orcish and human snow hills villages are now aliased to village,snowhills
instead of just to village,hills
animated terrain animations are not synchronized anymore
reworked macros to handle animations
added new stone-wall-lit terrain
made all animated terrains use the new macro system
added a new "snowy castle" terrain
added new mausoleum scenery
added new "snowy fort"
added new "desert castle"
added new "tropical water"
added new "dead grass" terrain
improved dry grass "savanna" terrain
improved green grass "grassland" terrain
improved "desert road" terrain
added new "dark dirt" terrain
added new "small stones" embellishment
added new "small mushrooms" embellishment
fix for dwarven castle to cave wall alignment issue by Alarantalara
made encampment and orc forts use regular dirt rather than a custom terrain
created new editor group: "embellishments", and added desert plants to
that group
improved snow terrain
added "leaf litter" terrain
added new "mine rail tracks" terrain
added 3 new variants for log cabin
added impassable snow mountains
adjusted the color of various terrains for a more coordinated appearance
added new dry hills terrain
new ford that works with animated water
improved cobbled road now also used for castle (not keep) floor
new etherial abyss terrain added to mainline
flower base terrain is deprecated, now available as an overlay
added new clean cobbled road terrain
added castle to chasm transitions
improved human city village
Dark flagstones mainlined from UtBS
added castle to lava chasm transitions
chasm type terrain now blend nicely with void and off-map
new banks for transition between flat or cave terrains and water
adjusted all underground terrain to harmonize with other terrains
improved mini-map appearance for most chasm, wall and grass terrains
stone path now matches other terrains
added wooden floor terrain
added mushroom farm terrain
added volcano terrain.
added a special blend transition for mountains next to chasms
animated water and swamp now use a double-sided transition to blend gradually into each other
Terrain WML
rename TRANSITION_RESTRICTED and TRANSITION_RESTRICTED2 to
OVERLAY_ROTATION_RESTRICTED and OVERLAY_ROTATION_RESTRICTED2
All unused macros are slowly removed to try to get a logical and complete subset of macros
Allow to use local ToD terrain variants in [time_area]
ToD key in terrain [variant] now accept a list of ToD
New key 'set_no_flag' in [tile] which combines 'set_flag' and 'no_flag'
Units
Giant Rat moved from DiD to core.
User interface
Added the era AI in the list of AI shown when opening a game
Added dialog for installation of add-on dependencies
Removed the unused gui2 menu bar
Added a window register framework
Enabled the --new-widgets MP create dialog again
Enabled the hidden join observe buttons per row
Enabled alignment in labels
Avoid resizing when next or previous button is pressed in the
--new-widgets title screen
Added gui2 progress bar widget
Added "animated" logo to the --new-widgets title screen
Fixed the language is refreshed after the language is changed in the
--new-widgets title screen
Implemented bug #15623 (patch #1568): On change resolution screen,
widescreen resolutions are now marked as such
Added tooltips to the --new-widgets title screen
Added a place holder upload statistics button in the --new-widgets title
Fixed bug #15716: Lobby crash when refreshing with filtered out games
Fixed bug #15768: Avoid parts of the previous game show in the lobby
Fixed bug #15727: Allow wml message titles to wrap
screen
Added the total number of villages to the status table lists
Added a new attack dialog, available for testing with --new-widgets
Patch #1645: Fixed a bug sending keyboard events to deactivated controls
Deprecated the resize flag for gui2 image, use the resize_mode instead
Patch #1639: Added handlers for keyboard (arrow keys) to move gui2 sliders
Added new experimental list box implementation, available for testing
with -DGUI2_EXPERIMENTAL_LISTBOX
Damage in sidebar now also take account of ToD and leadership
More info in the weapon tooltip (damage bonus calculation and swarm effect)
Terrain defense tooltip show terrain's info and defense calculation
Level tooltip shows next advancements
Each trait and special attack has its own tooltip
Most sidebar tooltips have now a category indication
Tooltips of ellipsed text are grouped in the last visible item's tooltip
Increase a little tooltip's opacity
Render grid above foreground terrain
Clicking on some elements of sidebar now open the related help page
Display weapon stats in recruit/recall dialog the same way as in sidebar
Accuracy/parry have its own line and tooltip in sidebar.
Add first, last, play and back buttons to storyscreens
Remember recall list sorting order (FR #16149)
accelerated movment speed to 200ms per hex
--logdomains accepts a filter argument and uses multiline output
New mouseover image instead of simply highlighting the hex
Tab completion for :commands and units search function
Fixed #15781: On maps with statues player can pick statues team
Fixed move+attack not interrupted when ambushed at destination
Stop disabling mouse during attack+move
Added the whiteboard planning system (GSoC project), see release notes for details.
Allowed viewing terrain defense for the selected unit outside of your turn.
WML Engine
Added wml action tag: [modify_unit]
Added wml action tag: [move_unit]
Deprecated [set_variable]'s random key, use rand instead
Renamed [unit][status] healable to unhealable so it can default to 'no'
Added 'side X turn refresh' and 'side X turn Y refresh' events
Add ~DARKEN() counterpart to ~BRIGHTEN()
Implement min_value for [illuminates]
Added lua functions wesnoth.get_side_count() and wesnoth.is_enemy(a,b)
Add 'recall_cost' key for [side], to override [game_config]'s default
Add [replace_schedule] tag, which replaces the time of day schedule
Trying to include a missing macro/file is now a fatal error
Added #ifhave/#ifnhave for testing existence of files and directories
Added [volume] tag, which allows game volume to be changed during scenarios
Prototype support for [set_global_variable]
Prototype support for [get_global_variable]
Prototype support for [clear_global_variable]
Added scroll_to_leader attribute to side tag.
Default value is 'yes' (bug #15921)
Draw the map border over _off^_usr tiles too.
Add 'immutable' key to [label], defaulting to true (feature #16078)
Added search_recall_list key to [have_unit] tag
Added [move_units_fake] tag
Added reveal_map key to [endlevel] tag
Rename all "colour" keys to "color" (in [side] and [label]), same for
"colour_lock"
Allow a [case] value to take comma-separated values
Move fog/shroud image definition into game_config.cfg
Add new game_config keys "hex_brightening", "hex_semi_brightening",
"mouseover_image" and "selected_image" to tune mouse interface
Fixed bug #16219: Handled ToD areas in a LIFO way, so that it is possible
to override them without first removing them
[effect] violate_maximum= (for use when increasing HP) takes a real boolean
value now instead of taking any non-empty value as "true".
Allow checking out terrain defense for units when it's not your turn.
New image path function: dst~BLIT(src[, x, y]) blitting src image on dst
image at coordinates (x,y)
Fix bugs in 'illuminates' when using non-standard values. Now max and
min_value only clamps the effect of the illuminates bonus, but ToD and
terrain effect can pass them.
Added [gold_carryover] tag to the [objectives] tag.
Added [note] tag to the [objectives] tag.
Added caption= and show_turn_counter= keys to the [objective] tag.
New WML macros: ON_DIFFICULTY (a macro that makes using different values
based on difficulty simpler), ON_SIGHTING (a substitute for sighted events)
Removed WML macros: NEUTRAL_SIDE
Miscellaneous and bug fixes
Added a network library for asynchronous server & client applications (ANA)
Rewrote the network module using this (ANA) library
Added help entry when new unit is created directly in the recall list
Defaulted log level to warning again
better fix for bug 14765 now that string freeze is off
Fixed picking the proper locale, the problem only occurred on some
systems
Added a way to compile wesnoth on windows by using CMake + MSVC9.
Added the possibility to specify absolute paths for "--config-dir"
Added more command line arguments for starting a campaign + scenario
Added command line "--preprocess" to preprocess a specified file/folder and
output the result
Added command line "--preprocess-input-macros" to specify extra input macros
Added command line "--preprocess-output-macros" to output the preprocessed
macros to a file
Added command line "--data-dir" to explicitly override the data directory
Fixed the ping timeout not waiting for the default ping interval when
ping timeout is not set to 0
Fixed a bug in scoring of AI recall list. Patch by billynux.
Strip whitespace characters from .ign patterns (bug #15902)
Fixed wesnoth_addon_manager's support for .ign files (bug #15846)
Never allow uploading *.pbl files (case-insensitive) to the add-ons
server from the regular game client.
When warning the player about installing add-ons with missing dependencies,
make 'OK' and 'Cancel' work as expected (bug #15960)
Fixed tab completion not working in the new lobby (bug #14730)
Fixed compilation for g++ 4.5
Cleaned up the gui2 code at various places
Don't crash if a [story] [part] [if] misses [then] or [else] (bug #16028)
Fix a crash on OS X caused by passing invalid utf8 to pango (bug #16020)
Hidden weapons (attack_weight = 0) no longer skew the best weapon selection
Prevent dereferencing freed memory when reporting malformed maps, i.e. when
using an invalid terrain type
Fixed attack predictions for combats with a unit leveling up thanks to a kill
Fix rare layer's order bug about unit drawn above big south-west unit
Improvements to make Wesnoth compile better with g++-4.5 in C++-0x mode
Added ":undiscover" to clear all your discovered units from help
Added ":turn" to change the current turn/time of day in debug mode
Added ":turn_limit" to change the turn limit for a scenario in debug mode
Fix a crash when a sighted event killed a unit just before a fight
Fixed bug #16171: Disable commands during [animate_unit]
Fixed bug #16235: Avoided displaying an empty menu and therefore choosing
a random weapon, when there is none
Fixed bug #16243: Added detection for server replays, as they are missing
the core [lua] tags
Fixed bug #16261: Added test for invalidated death due to positive hp
after the 'die' event
Fixed bugs when a waypoint is unreachable
Fixed attacker still getting resting bonus after attack using movement_used=0
Fixed [store_time_of_day] for earlier turn
Fixed _off^_usr not using the tile_image of theme.
Patch #1727: Fixed revision.hpp generation with cmake 1.8(.2)
Added debug command ":foreground" to better visualize foreground terrains
Added debug command ":layers" displaying various layer info from the hex under
the mouse.
Reducing cache loading for title screen, --test, --editor and --load
Removed Lua dependency, the source is now in the source tree
Introduced a new allignement called "Liminal". Those units fight best during the twilight times of day.
Fixed #16343: wmllint wants to add translation markers to the empty string in description=
Reduce individual memory cost of each terrain image
Version 1.8.0
AI
Fixed bug #14247: Make formula AI behave correctly if the side has only 1
potential recruit.
Added support for candidate actions written in lua.
Campaigns
Descent into Darkness:
Added new Giant Rat base frame and animations.
Legend of Wesmere:
Fixed bug #15631: Scenario 3: arrival of Kalenz failed
Fixed bug #15679: Scenario 17: leader of side 2 is missing
Fixed bug #15668: The lobby will play a random music playlist, configured
by [lobby_music], instead of looping the main menu song
Fixed bug #15669: The titlescreen will play a random music playlist,
configured by [titlescreen_music], instead of looping the main menu song
First song played will still always be the main_menu theme.
User interface
Worked around bug #15561: Resizing the lobby made the items in the game
listbox too small
Miscellaneous and bug fixes
Added the first draft of the gui2 design documentation
Defaulted log level to error again
Fixed bug #13882: Map which is invalid aborts map selection
Fixed bug #14114: Checksum operations fail against certain scenario events
Fixed bug #15545: Recall list gone after loading savegame created in
linger mode
Fixed bug #15598: Can't move units after reloading game
Fixed bug #15601: Replay crashes when replay log messages are enabled
Fixed bug #15656: OOS errors in LoW from differing starting gold
Fixed a segfault due to missing seed-attribute of an attack in a replay
Fixed a graphics bug with the Spearman's attack anim noted by zookeeper
Worked around bug #13333: Limit the maximum length of the mp command
dialog as workaround for bug (This workaround is only implemented for
Windows and Mac)
Worked around a rare assertion failure when resizing the lobby
Version 1.7.15-1.8rc1
AI
Set RCA AI to be the default AI for single-player campaigns.
Fix bug #15390: add a try_delete action to modify_ai which has
'delete if exists, don't complain if not exists' semantics
Fix bug #15013: make AI gotos persist between turns when set by
WML, make the AI don't use gotos for normal moves.
Engine
Fix bug #15542: if game encounters a base_unit that refers to a
unit that the game cannot find, throw exception instead of
failing assertion.
Add a list of team units and a dedicated unit mode to gamestate
inspector (launched by :inspect command and [inspect] tag).
Language and i18n
Updated translations: Chinese (Traditional), Czech, German, Hungarian,
Japanese, Serbian
Multiplayer
Fix bug #15541: fix OOS on [unit] tag generating different
traits because of usage of local RNG instead of MP RNG.
Fix bug #15560 for Dark Forecast: fix OOS in Dark Forecast caused by
unit advancement not properly synced across the network.
Music and sound effects
Added new music track, "Weight of Revenge" by Doug Kaufman
User interface
Improved resizing of a window when the contents don't fit, fixes the
window scrollbars in the MP lobby
Fixed redraw invalidation issues in the MP lobby
Version 1.7.14-1.8beta7
AI
Allow to write AI components in LUA
Implemented FR #15465: 'protect' goal was split into protect_location,
protect_unit, protect_my_unit [goal] tags. protect_my_unit can be used
as a direct replacement for protect_leader.
Graphics
Fixed bug 15344: missing ice to nothing transition
Fixed weird side effect of long first frame in standing anims
Fix bug 15366 : overlay terrains badly interacting with submerge and height
adjustments
Fix bug 15544 : bad transitions between roads and deserts with overlay
Language and i18n
Updated translations: Catalan, Chinese (Traditional), Czech, Estonian,
Finnish, German, Greek, Italian, Japanese, Lithuanian, Polish, Serbian
Multiplayer
Make allow_changes attribute truly work
Fixed players getting different side colours across scenarios of mp
campaigns
Fixed bug 14754: Host can start game before the client has selected a
leader (Debian bug #555964)
Fix bug #15380 (cl in multiplayer local game doesn't work)
Fix bug #15382 (Player doesn't get transported to the next scenario)
Fix bug #15383 (Multiplayer Campaigns can't be loaded from savegame)
Fix bug #15391 (Warnings in multiplayer games)
Fix bug #15398 (Multiplayer Campaign aborted after endlevel)
Fix bug #15399 (Leaders of the ai sides in LoW multiplayer scenario2 are
missing)
Allow a 1-sides game to be started (Debian bug #568029)
Fixed A New Land not working when there are empty sides
User interface
Rewrote the sizing code of the tree view widget
Don't show turn dialog once the level has ended
Fix the empty games in the MP lobby game list
Fix redraw glitches of the scrollbars when resizing a widget
Fix a crash when using the scrollwheel (bug #15156)
Fix an issue where the lobby chat log didn't resize properly
Fix the translation of certain lobby strings
Enable the scrollwheel for the tree view
Enable the scrollwheel for the scroll label
Miscellaneous and bug fixes
Fix bug #15429 (Units created by WML can only get the Neutral alignment);
this also affected MP leaders
Fix UB when closing a window, caused by the children of the window
accessing the destroyed window members
Version 1.7.13-1.8beta6
AI
Port [protect_leader], [protect_unit], [protect_location] to new-style ai
config, which is a goal with name=protect, which accepts a SLF [criteria].
Changed names of AI log domains, to have a more uniform naming style.
Most names became shorter.
Campaigns
Fixed a bug in several scenarios causing some enemy units to disappear when
loading a save
Engine
Fix bug #15146: made kill event with animate="yes" recheck the presence of
unit before animating, fixing the assertion failure (in case the unit is
removed by other wml events like last breath)
All unit-related images are team colored, this includes missiles and haloes
Don't reserve space for scrollbars in message dialogs
Ctrl-f for fullscreen works again in the MP lobby (bug #14759)
Resizing the MP lobby no longer crashes randomly
WML Engine
Fix bug #14859: [time_area] created by event are not saved
Allow modifications to change unit ellipse
Miscellaneous and bugfixes
Add a minimap cache for gui2
Add a new super class for the button
Added a new gui2 timer engine
Add hotkey support for gui2
Change Drake Flare and Flameheart weapon names to match new weapons
Converted the hover tooltips to use the new timer engine
Fix bug #14865: move+attack into hex with ambusher causes crash
Fix the addon upload script to include the translate flag (patch #1387)
Fix the gui2 unit tests
MP lobby refresh to the new timer engine
Optimize AI recruitement and movement phases
Reduced header dependencies
Remove spurious hover error messages
Shorter "Initializing Display" phase when staying in same campaign/MP
Version 1.7.9-beta2
AI
new [limit] subtag of [value] of ai_default::recruitment implementation of
recruitment aspect - allow easy limiting of number of concurrent recruits
of specific type in the field
new rate_action formula_ai function which returns a rating of
attack analysis.
values of most ai aspects are now readable from formula ai (aggression,
avoid, attacks, attack_depth, caution, grouping, leader_aggression,
leader_value, number_of_possible_recruits_to_force_recruit, passive_leader,
passive_leader_shares_keep, recruitment_ignore_bad_movement,
recruitment_ignore_bad_combat, recruitment_pattern,
scout_village_targeting, support_villages, village_value,
villages_per_scout)
Fixed Bug #14768: made AI observe changes in allowed recruits, preventing
situations where AI does not recruit because it thinks that it can not do
so.
Campaigns
Northern Rebirth:
Fixed a few graphic bugs with map items
The Rise of Wesnoth:
Removed the undead trait from several custom bat units
Graphics
New animations for the Chocobone.
Change which Orc Grunt portrait appears is the default.
Removed some unused Drake macros from animation_utils
Add recruitment anims for the Sky and Hurricane Drakes
Removed the old stats code (Debian bug #555276, CVE-2007-2383,
CVE-2008-7720)
undo+redo a multi-turn move now restores the assigned destination
Version 1.7.7
AI
Filtering of allowed attackers/defenders in 'attacks' aspect.
Fix a serious enough bug in default ai targeting. The bug caused the AI,
in certain situations, to make weird shuffle-doing-nothing moves and not
seek enemies or their villages
Added new music track, "Into the Shadows" by Tyler Johnson
Fixed bug #14239 (check_fogged ignored by sound sources)
Implemented FR #14246 (check_shrouded= for sound sources)
Units
Made units with the 'healthy' trait always rest heal but take normal
damage from poison.
Changed the Drake Glider movetype to give 40% defense almost everywhere.
Gave the Fire Dragon 100% fire resistance.
Updated the descriptions for the Drake Fighter, Glider and Burner lines.
User interface
new gamestate inspector debug dialog (via 'inspect' command
and '[inspect]' tag)
Rename easy_close to click_dismiss
Automatically try to resolve blocked multi-turn moves
Better visually differentiate name, type and race in sidebar
Add colorized terrain defense info in sidebar
In attack dialog, split damages and chance to hit and color the later.
The Remove and Update add-ons options are disabled when there are no
add-ons installed
Add a Description button to the add-ons downloader
For move+attack mouse click, now show the attack dialog before the move.
In sidebar, add current bonus/malus info from alignement.
New option to enable/disable move interruption when an ally is sighted
WML engine
Fix silent=yes for objectives
Allow [story] [part] blocks to specify the title box alignment
with title_alignment=
Implemented FR #14246 (visible_in_shroud= for [label])
Modified Lua handling of action handlers and WML objects.
Added a lua_function= attribute to standard unit filters.
Miscellaneous and bugfixes
Fix broken "Skip Ai moves" option.
Changed upload log format and defaulted the new uploader.
Fix bug #13268 (corrupted replays due to undo of recall/dismiss)
Weapon name change for Drake Enforcer.
Fixed the unit tests from 'hanging'
Fix bug #14160 (carryover percentage in [endlevel] ignored
when victory_when_enemies_defeated="yes")
Various cleanups to the gui2 code
Remove position info from unit list
Avoid an assertion failure if haloes are disabled (bug #14297)
Fixed linked widgets not getting deregistered upon destruction
Fix huge fonts on storyscreens with tiny GUI
Fix cmake po-update not doing line wrapping properly
Fix bug #14241 (mp campaign timer settings not carried over to
next scenario)
Started with the a new event handler for gui2
Fix unit facings after moving (bug #14336)
Fix unit facings after undo/redo
Improved the teamcoloring script for images.
Version 1.7.5
Campaigns
Legend of Wesmere
Scenario 21 redesigned
Graphics
New base frame and animations for the Drake Blademaster.
Language and i18n
Setup for tracking localized images.
Updated translations: Chinese (Traditional), Lithuanian, Serbian.
Units
Fixed problems with the Drakes introduced in 1.7.4 (wrong resistances and
a possible crash when advancing to the Inferno Drake)
Miscellaneous and bugfixes
Optimized the cmake building if both game and tests are enabled
Switched to new stats upload mechanism so that stats.wesnoth.org should
soon provide usefull data
Optimize pathfinding on 1MP terrains.
Version 1.7.4
AI
Formula AI debugger (uses -new-widgets)
New 'debug()' formula function
Fixed crashes and infinite loops on AI turn
Animations
Movement have the number of steps done in value and the number of step left
in value_second, this allows take-off and landing animations
Campaigns
Legend of Wesmere
Scenario 3 redesigned
Fixed wrong or unclear scenario objectives
Scenario 16: Reduced the number of wolf riders
Editor
Better support for conflicting terrain letters across add-ons, now
in the event of a conflict the terrain will appear in all terrain
groups as opposed to appearing in one of them multiple times.
Added remembering of the show terrain codes and coordinates options
Graphics
New portraits for Ancient Wose, Ruffian, Master-at-arms, Naga
Warrior/Myrmidon, Grand Knight, Merman Hunter.
Updates to Peasant, Spearman and Swordsman portraits.
New melee animation for Thunderguard, Dragonguard.
New base frame and animations for Inferno Drake, Fire Drake.
Language and i18n
Updated translations: Chinese (Traditional), German, Lithuanian, Russian,
Serbian
Music and sound
"Journey's End" from Mattias Westlund
"Over the Northern Mountains" from Mattias Westlund
Added horn signal sound effects
Units
New weapon names for a number of drake attacks to account for changes to
the sprites.
User interface
Removed the hotkey to enable/disable mouse scrolling
Added a horizontal listbox
New basic support for specifying waypoints (via a new hotkey 'w')
WML Engine
Support for [show_if] inside [message]
Added ability to change the share_maps team attribute using [modify_side]
tag. Be sure to use shroud=yes for that side
[side] team_name is now a comma-separated list of teams the side is on
[modify_side] user_team_name no longer requires that team_name also be
modified
Miscellaneous and bugfixes
Removed obsolete code for implicit linked widgets for the listbox
[part] caption= is no longer supported; prepend the CAPTION macro
to story text instead
Fixed 100% CPU usage on storyscreens with no text (e.g. map screens)
Fix ODR issues in gui2
Remove the boost 1.33 code in the unit tests
Fix regression about broken undo after a multi-turn ("goto") move
Fix regression about pathfinding poorly using the teleport ability
Added extra wiki comment and updated the extractor
Animations
Movement have the number of steps done in value and the number of step left in value_second.
new animations pre_movement_anim and post_movement_anim to allow take-off and landing animation
Version 1.7.3
AI
New AI configuration syntax
Campaigns
Two Brothers
Replaced campaign specific portraits with mainline portraits