Post by vultraz » August 5th, 2016, 2:11 am

Wesnoth 1.13.5 is out!

Download and install, making sure to keep the latest stable release around in case the game breaks and you find yourself unable to get your daily fix of Wesnoth.

Playtest the game, try out some of the API additions for content creators, and write down your observations in a notebook or similar.

If you encounter issues, don’t panic; instead, grab some bug spray and protective gear, and head directly to our instructions for reporting bugs. Most importantly, keep in mind that we can’t know about any bugs you encounter unless you report them to us!

Near the end of the release notes below you will find a list of the most important bugs known at the time of release. Some items are due to be fixed in the next release, but for others we depend on contributed patches from volunteer coders like you! (If you are a coder, that is.)

Check our bug tracker for a full list of bugs and feature requests, including other bugs found after the release was published.

General

Support for SDL 1.2 has been dropped » SDL version 1.2.x has been removed in favor of SDL version 2.0.x. The build systems have been updated and all code has been removed that utilized versions 1.2.x.

WML/Lua compatibility changes and deprecations » It's no longer possible to specify current_player= in [side], but it's still possible to query current_player from a side. To specify a side's name, use side_name=<name>

Wesnoth doesn't allow special characters like ,?;:'" in unit type ids anymore.

Changes to wesnoth.select_hex and wesnoth.highlight_hex. The former is deprecated, while the latter is no longer deprecated but has different behavior. To duplicate the behavior of select_hex, highlight_hex may be used along with the new select_unit function.

New Lua/WML features » You can now specify special locations in the map editor which can then be queried via wesnoth.special_locations or placement= in [unit]

[lua] now allows an [args] subtag even outside events.

A new syntax was added for name generators which uses a [wiki]context-free grammar[/wiki]. This gives greater control than the previous Markov chain generator (which is still available).

Wesnoth Formula Language update »

New operators for string concatenation, ranges, and testing containment

New string interpolation syntax

Dot operator can access identifier-friendly string keys in maps

Function definitions work outside FormulaAI and GUI2

Many new functions for math and string manipulation

Exponentiation operator is now right-associative (meaning 2^3^2 now produces 512 rather than 64)

Dice operator is now synced

Improved formula debugger The "fai" and "faiend" keywords are deprecated in favour of "wfl" and "wflend" respectively. This is part of a move to more clearly distinguish [wiki]Wesnoth Formula Language[/wiki], the language itself, from



The attributes leader, total_movement, movement_left, and states in WFL unit variables were renamed to canrecruit, max_moves, moves, and status respectively; this was done to make them match the Lua and WML names for the same things. Also, the special attribute in WFL weapon variables is now specials. The old names will continue to work for now, but they may be removed in a future version. The Wesnoth formula language used by $(...) substitution, the formula= key in standard unit filters, and a few other places has received some significant updates. The changelog has the full list, but some highlights are:The "fai" and "faiend" keywords are deprecated in favour of "wfl" and "wflend" respectively. This is part of a move to more clearly distinguish [wiki]Wesnoth Formula Language[/wiki], the language itself, from FormulaAI , which is just one use of the language in Wesnoth.The attributes leader, total_movement, movement_left, and states in WFL unit variables were renamed to canrecruit, max_moves, moves, and status respectively; this was done to make them match the Lua and WML names for the same things. Also, the special attribute in WFL weapon variables is now specials. The old names will continue to work for now, but they may be removed in a future version.

Changes to the AI » After several development cycles of adding new and/or experimental features to the AI engine, a long overdue AI code cleanup effort was undertaken in order to facilitate future AI maintenance and development. This included a refactoring and reorganization of the code of the current AI as well as the removal of non-functional, outdated or deprecated code.



As a result, the format for configuring some AI parameters has been simplified. The AI functionality has also been extended in several ways. For example, it now allows Lua facets and the [modify_ai] tag has been extended to allow editing the internal jobs of the recruitment_instructions aspect.



While making these changes, we tried to retain backward compatibility as much as feasible. Thus, most of the changes are invisible to the WML and custom AI developer and the vast majority of existing UMC code will continue to function as is. It is, however, unavoidable that some old AIs or AI configurations will require updating. A summary of those changes is given below. For more details, see the full changelog and the Wesnoth wiki.

AI compatibility breaking changes » Several aspects that no longer did anything anyway: number_of_possible_recruits_to_force_recruit, recruitment_ignore_bad_combat, recruitment_ignore_bad_movement

The recruitment aspect; however, this is automatically translated to a recruitment_instructions aspect, which means it will now be honored where it was previously ignored

Stages that were either old and deprecated or experimental and unmaintained/broken: old recruitment, fallback, Strategy Formulation with RCA

Candidate actions that were either old and deprecated or experimental and unmaintained/broken: old recruitment, simple move-to-targets, global fallback, Akihara recruitment, experimental recruitment

The protect_my_unit [goal] type A number of changes were made to the way Lua AI components are declared in the WML and how the code is called by the engine. The wiki documents the new method in detail, but unfortunately these changes are likely to break some AIs. However, the fixes will be simple in most cases: If you used old-style Lua candidate actions (with execute= and evaluate= keys) together with an explicit [engine]name=lua tag, they will no longer work as written. In many cases, the fix will be simple - the code within [engine] frequently begins with a line similar to local ai = ... . Simply removing this line will be sufficient to fix most such cases; if you accessed a "data" variable in the AI, see the Experimental AI definition (data/ai/ais/ai_generic_rush.cfg) for an example of how to fix it. If you used old-style Lua candidate actions without an explicit engine tag, you may need to remove a line similar to local ai = ... from some of your code. In general, anything of the form ai = <something> needs to be changed. If you used new-style (external) Lua candidate actions (with a location key), they will still work for the time being (provided that they use the exec_parms= and/or eval_parms= keys), but we recommend updating them nevertheless. The exec_parms= and eval_parms= keys should be combined into an [args] tag, and the argument list of your execution and evaluation functions should be changed from (ai, cfg, self) to (cfg, data) . The data parameter is the same as self.data was before; however, provided you do not have an explicit [engine] tag, self.data will continue to work. Several old, deprecated AI components were removed:A number of changes were made to the way Lua AI components are declared in the WML and how the code is called by the engine. The wiki documents the new method in detail, but unfortunately these changes are likely to break some AIs. However, the fixes will be simple in most cases:

Known Issues

Newly introduced in 1.13.x » General bugs:

A Stray ; character will appear pre-entered in the command console and will need to be deleted before entering any commands.

character will appear pre-entered in the command console and will need to be deleted before entering any commands. The MP server has trouble with Local player types in campaigns (bug #21965 [Gna.org]). We have decided to postpone dealing with this. In the meantime, you might try assigning such sides to the host, or running multiple instances of Wesnoth.

"Name of Game" bleeds onto "Player/Type" label when leaving/entering the app (bug #24437 [Gna.org]).

Inconsistent transparency on credits screen (bug #24428 [Gna.org]).

Dialog In Replay Clearing Issue (bug #24491 [Gna.org]).

Carried over from 1.12.x » General bugs:

The game can crash when planning recruits in Planning Mode. Bugs specific to Microsoft Windows:

ClearType font rendering is disabled as it causes glitches (bug #21648 [Gna.org]).

This is likely caused by outdated libraries in the packaging process. Bugs specific to macOS:

Trackpad tap clicking is sometimes not recognized (forum post).

Unofficial builds with OpenMP support enabled randomly freeze (bug #18144 [Gna.org]).

Downloads

⁂

This release features several design tweaks to the UI, most noticeably a new font (Lato) and a new design for the loading screen, along with many smaller improvements. Feedback is appreciated. As usual, we've been working hard to squash as many bugs as we can. There have been a large number of fixes and new features added to WML, Lua, Wesnoth Formula Language (WFL), and the AI.As this is a development version, we would like to remind everyone how the testing and feedback process works for these:Read on for more details about the most notable fixes and additions in this release:As is to be expected with development releases, there may be many, many more changes in addition to the aforementioned, including WML and Lua API additions for user-made content creators, translation updates, and fixes for recent and long-standing issues. Most of these items are listed in the full changelog . If that seems too overwhelming, you might be glad to know we also provide an alternative players changelog including only those changes deemed to be relevant to the average player.Do not be disappointed if the game crashes every now and then! Development versions are not the best for those in need of a stable gaming experience, who should stick to thestable 1.12.x series instead. However, if you want to help us test what will eventually become thestable 1.14.x series, you definitely should check out this release and report to us any problems you find so they can be fixed in a timely fashion.are also especially encouraged to port and test their content under new development versions to detect any problems with their add-ons or Wesnoth in advance.Packages forandare already available:All knownpackagers have been contacted, and binaries for your distribution may have already been created. Information about where to get the respective binaries or how to install them can be found on the Linux binaries page in the wiki.Downloads formay be found on the Download page in the wiki as they become available.The multiplayer server for 1.13.x is up and running.The add-ons server for 1.13.x is already running. It was started for 1.13.0 and it servesdevelopment releases from this series.If you find any bugs, do not hesitate to report them, but please read the instructions on how to report bugs first! As bug reports in the forums tend to be forgotten, you will get better results using our bug tracker . We require your help for finding and fixing issues, no matter how obvious, trivial or complicated they seem!Have fun!