Post by Iris » April 20th, 2015, 2:50 am

Wesnoth 1.13.0 is out!

Download and install this development version, 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 on a notebook.

If you encounter issues, don’t panic, 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 the release. Some items are due to be fixed in version 1.13.1, but for others we depend on contributed patches from volunteer coders like you!

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

RNG

General

Build-time dependency changes »



Required libraries: Boost.Random 1.48.0 or later is now required.

Boost.Filesystem 1.44.0 or later is now required.

Boost.Locale 1.48.0 is required, but libintl may be used on platforms other than Windows instead by passing the -DENABLE_LIBINTL=ON (CMake) or libintl=true (SCons) options at build time.

(CMake) or (SCons) options at build time. SDL_mixer version 1.2.12 or later is now required. While this was merely a recommendation in Wesnoth 1.12.x, 1.13.x drops all remaining support code for previous versions, which means that the build will fail otherwise. Optional libraries: libpng is now an optional direct dependency. Do note the “direct” part — Wesnoth has always required SDL_image to be built with libpng support for it to work at all. Satisfying Wesnoth’s direct dependency on libpng enables saving game and map screenshots as PNG instead of BMP files.

libhistory (part of the GNU Readline library) is now an optional dependency. Satisfying this dependency enables command line history support in the new Lua interpreter console.

Support for versions of FriBiDi less than 0.10.9 has been dropped. Compared to Wesnoth 1.12.x, this version includes the following changes in build requirements:

Random number generator implementation changes » rand() function. The server and client also generate seeds using /dev/urandom or your platform’s equivalent.



This means that the WML [set_variable] rand= option should now be much more random and seeded properly. Lua on the other hand still uses the C rand() function, so it is advised not to use that anymore. Wesnoth’s random number generator implementation has been replaced, now using the modern Mersenne Twister generator included in Boost instead of the dated Cfunction. The server and client also generate seeds usingor your platform’s equivalent.This means that the WMLoption should now be much more random and seeded properly. Lua on the other hand still uses the Cfunction, so it is advised not to use that anymore.

Configurable movement orb and minimap colors » The colors applied to unit movement orbs and the minimap display (when the Unit Coding option is not selected) can now be configured under Preferences → Display → Colors. It is also possible to enable or disable orbs for certain statues.

Unit and terrain display/graphic changes » Unit overlays are now aligned to the unit sprite rather than its containing hex.

New standing animation (NE and SE) for the Revenant

New standing animation for the Dwarvish Stalwart and Sentinel

Unit movement over terrains with elevation (e.g. keeps and bridges) is smoother (bug #20635 [Gna.org]).

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.

New WML cache management dialog » A new dialog providing access to options and information about the WML parser cache can be accessed from Preferences → General → Cache. At the moment, it is possible to launch a file browser on the cache location, copy its path to clipboard, and clean or purge the cache contents. The last two options are intended as both a debugging aid and a tool to keep the cache from taking up excessive disk space. Additional options for automatic cache size control may be added to this dialog in the future.

Built-in bold and oblique font variants » The game now ships with bold and oblique font variants of the DejaVu Sans font used for English and many other languages. These variants are used in menus and text such as the in-game help for styling text where we previously used SDL_ttf’s vastly inferior synthetic font variants (see bug #22376 [Gna.org] ).

Dropped support for AmigaOS, BeOS, and OS/2 » In preparation for updating Wesnoth’s codebase to use a newer version of SDL (still a work in progress), all unmaintained compatibility code for AmigaOS, BeOS, and OS/2 has been removed. It is highly likely that it was already broken by the sheer number of changes in previous stable series since it has not been tested by anyone during this time.



Since Wesnoth is a volunteer-driven project, it is highly unlikely that support for these or other platforms will be (re)added in the future unless people step up to test and maintain any necessary compatibility code.

Miscellaneous changes » Added a “Disable automatic moves” preference to disable automatic movements at the beginning of a turn.

The initial title screen music track is now Journey’s End by Mattias Westlund (introduced in version 1.7.4).

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 [Gna.org]).

CMake build type now defaults to “Release” to ensure builds are optimized unless explicitly requested otherwise (bug #23445 [Gna.org])

A new command-line switch, --noaddons , has been added to disable loading add-ons entirely, for testing or debugging purposes.

, has been added to disable loading add-ons entirely, for testing or debugging purposes. Wesnoth now has its own WML/Lua unit testing framework, currently used in conjunction with engine unit tests to detect and prevent regressions during development.

For Players

Single-player mode and campaign changes »



Additionally, the following campaign-specific changes were made:

The game tutorial campaign was rewritten for clarity and to allow more interactivity on the part of the player.

Northern Rebirth: The first six scenarios have been significantly improved, with several map redraws and two new cutscene scenarios.

Eastern Invasion: The first seven scenarios of this campaign also received improvements, including the addition of the Skeleton Rider line, and revamped maps for the alternate branch in “An Elven Alliance”.

The Hammer of Thursagan: The scenarios “The Court of Karrag” and “Epilogue” feature a new map. Single-player campaign initialization and progression now shares a substantial amount of code with multiplayer games setup. Among other things, this means eras, modifications, and game creation options are now available in single-player campaigns. Most of the work for this was done by RiftWalker as part of his project for GSoC 2014.Additionally, the following campaign-specific changes were made:

Unit balancing changes »

Increased the experience requirement for the Rami from 32 to 39.

Increased the experience requirement for the Saree from 56 to 64.

The Mudcrawler line now has the ‘elemental’ trait, rendering these units immune to poison, drain, and plague. The following changes to unit balance and stats are included in this release:

Automatically download add-ons from the multiplayer lobby » In previous versions of Wesnoth, if a game using add-ons is hosted on the multiplayer server, players must somehow determine which add-ons are required (which is not always evident from the game’s description), then log out of the MP lobby, navigate to the Add-ons Manager, search for these add-ons by name or author, download them, and rejoin the server.



Now, a player can simply double click on the game entry and they will be prompted to download all of the necessary add-ons and their dependencies.

Better multiplayer add-ons versioning » In previous versions of Wesnoth, games hosted on the multiplayer server requiring missing add-ons to play appear grayed out, and the player is not allowed to join. However, the client would still allow players to join these games with outdated add-ons, resulting in OOS errors and other anomalies. This may discourage players from using user-made content in multiplayer games unless they make sure to constantly update their add-ons each time before joining the server.



Now all games carry metadata which documents which add-ons are needed to play them, and at what versions. UMC authors may specify for each [era] or [modification] what the minimum add-on version is with which this content is backwards compatible, by adding addon_min_version attributes to these tags; these should be version strings (e.g. 1.2.3 ) to be compared with the add-on version in the .pbl file of the add-on. If no minimum version is specified, it is assumed that there is no backwards compatibility! The game client will take all this information into account, and when a player tries to join a game with add-on content, it will prompt the player to automatically update the relevant add-ons if it will make it possible to play the game. The game will also warn the player when the host has out-of-date add-ons, a situation which can only be resolved by the host updating their own installed add-ons.

Multiplayer mirror match options » A new option has been added to the MP game setup screen to allow controlling random faction assignments. This can be set to “Independent” (default), “No Mirror”, or “No Ally Mirror”.

In-game help improvements » Several sections have been rewritten or restructured.

Every unit page now includes a list of possible traits for that unit type.

A new Defense Cap column is included under the Terrain Modifiers section for units which have their defense capped on certain terrains (e.g. mounted units on forest hexes). Units with a defense cap also include a link to an explanation in their special notes.

Mixed terrain types are now explained in the main topic under the Terrains section. Entries accessed via the Terrain Description context menu option will also display information about the best/worst movement/defense attributes for mixed terrains.

All MP eras now have automatically-generated entries in the help browser (bug #22107 [Gna.org]).

Mainline MP factions now include proper descriptions in the help, as well as automatically-generated lists of races and alignments.

A new automatically-generated section for ToD schedules has been added.

Multiplayer alerts configuration » A new set of options for more fine-grained control of sound and desktop notifications in multiplayer mode has been added under Preferences → Multiplayer → Alerts. Individual events, such as players joining or leaving, whispers, messages from friends, etc., may now prompt a sound or notification, and may be handled differently in the lobby vs. in game. The Lobby Sounds and Disable Notifications entries in Preferences → Advanced have been removed, having been subsumed by this new screen. The particular sound files which are played for each of these events may be reconfigured by changing some attributes in <game data dir>/data/game_config.cfg .

Play single move button in replays » A button that allows playing only one move at a time in replay mode has been added. Thanks to Zappaman for this.

Clickable hyperlinks » Support for hyperlinks to GUI2 dialogs has been added. In particular, this means that the Chat Log window and add-on descriptions support rendering and clicking on hyperlinks.

PNG screenshots » If Wesnoth is configured to use libpng directly at build time, the in-game window and map screenshots functionality will save screenshots in the PNG format instead of large uncompressed bitmap (BMP) files. This also applies to the --screenshot and --render-image command line switches.

For Content Creators

Legacy support options removed »

1.10.x-style ability/weapon special descriptions with an “ability/weapon special name:” heading on the first line.

[filter_side] in [gold] and [modify_ai] action tags. Place the Standard Side Filter directly under the action tag instead.

in and action tags. Place the Standard Side Filter directly under the action tag instead. [object] duration=level . Use [object] duration=scenario instead. Compatibility for the following legacy WML/Lua features from previous series has been removed in this release:

Strict Lua globals » must assign a value (such as nil ) to a global variable before using it, otherwise this will result in a runtime error. While this is strictly speaking a compatibility-breaking change, it is quite uncommon that you would require the default behavior for your script to work, and this change greatly improves the maintainability of Lua in add-ons by giving an error message in case of a programmer typo, rather than pretending that everything is fine. This change also improves the behavior of the Lua interpreter console.



The implementation is based on a module called "ilua" (interactive lua) available here:



If you must, you can disable the feature in one of the following ways:

setmetatable(_G, nil) to disable, and ilua.set_strict() to re-enable.

to disable, and to re-enable. result, err = pcall ( possible_global_var ~= nil )

result = rawget(_G, "possible_global_var") Note that this change already revealed a bug in our core WML API as soon as it was implemented (commit By default, all Lua in Wesnoth is now executed using “strict globals”. This means that youassign a value (such as) to a global variable before using it, otherwise this will result in a runtime error. While this is strictly speaking a compatibility-breaking change, it is quite uncommon that you would require the default behavior for your script to work, and this change greatly improves the maintainability of Lua in add-ons by giving an error message in case of a programmer typo, rather than pretending that everything is fine. This change also improves the behavior of the Lua interpreter console.The implementation is based on a module called "ilua" (interactive lua) available here: http://lua-users.org/files/wiki_insecur ... d/ilua.lua If you must, you can disable the feature in one of the following ways:Note that this change already revealed a bug in our core WML API as soon as it was implemented (commit d31253f585bd1e111705f59bdc37012ff6675f38 ).

Lua [tt]print[/tt] function semantics change » print function no longer writes to Wesnoth’s stdout, meaning its output will not appear in log files. Instead, its output only appears in the logs accessible via the in-game Lua console.



For backwards compatibility, the old print function is still included renamed as std_print . So if you need to print to standard out you can use that one. You also have the option of course to undo the change with print = std_print , but then the Lua console log will not work. Another option is to combine them using a closure:

Code: Select all function make_print() local new_print = print local old_print = std_print return function(...) old_print(...) new_print(...) end end print = make_print() --log-debug=scripting/lua in Wesnoth’s command line, so that all Lua print commands will be routed to the debug log. In Lua, thefunction no longer writes to Wesnoth’s stdout, meaning its output will not appear in log files. Instead, its output only appears in the logs accessible via the in-game Lua console.For backwards compatibility, the oldfunction is still included renamed as. So if you need to print to standard out you can use that one. You also have the option of course to undo the change with, but then the Lua console log will not work. Another option is to combine them using a closure:Additionally, you can usein Wesnoth’s command line, so that all Luacommands will be routed to the debug log.

Multiplayer map generation syntax change » The map_generation= syntax in [multiplayer] was changed to match the semantics of map_generation= in campaigns. This means map_generation= will only generate the map and preserve anything but map_data= while scenario_generation= can be used to generate the complete scenario.

Stricter WML variable reference checks » The use of incorrect WML variable references like my_array[1][5].my_value , my_array..my_value or my_array[].my_value will now result in error messages.

New or changed WML tags, attributes, and filters » Tags: [lua] is now accepted under [modification] and [era] .

is now accepted under and . [sync_variable] allows to synchronize a variable between, multiple clients in a mp game. This can for example be a variable that was previously set in a select or a preload event.

allows to synchronize a variable between, multiple clients in a mp game. This can for example be a variable that was previously set in a select or a preload event. [result] inside [endlevel] allows to give side specific results in a mp game.

inside allows to give side specific results in a mp game. [elseif] inside [if] simplifies WML control flow by not having to nest [if] tags in [else] blocks.

inside simplifies WML control flow by not having to nest tags in blocks. [do_command] allows to execute attacks, moves, recalls, recruits and so on from WML, having the same effects as if a player had performed the action.

allows to execute attacks, moves, recalls, recruits and so on from WML, having the same effects as if a player had performed the action. [put_to_recall_list] moves a unit from the map to its side’s recall list.

moves a unit from the map to its side’s recall list. [store_relative_direction] gets the direction of a location relative to another.

gets the direction of a location relative to another. [remove_event] removes an event handler identified by id, equivalent to [event] id=foo remove=yes in previous versions.

removes an event handler identified by id, equivalent to in previous versions. The number of menu items that may be registered using [set_menu_item] is no longer limited to 7. Additional entries are now accessed through previous/next page options in the menu. The number of entries per page is controlled by an option in Preferences → Advanced. Attributes and filter options: [unit] and [unit_type] now take a recall_cost= attribute (defaults to -1 to not override side recall costs) specifying a custom recall cost for specific units or unit types (bug #13074 [Gna.org]). Thanks to Aishiko for the pull request adding this feature.

and now take a attribute (defaults to -1 to not override side recall costs) specifying a custom recall cost for specific units or unit types (bug #13074 [Gna.org]). Thanks to Aishiko for the pull request adding this feature. [music] shuffle=yes/no (default yes ) enables or disables music playlist shuffling (bug #19653 [Gna.org]). Thanks to Zappaman for the pull request adding this feature.

(default ) enables or disables music playlist shuffling (bug #19653 [Gna.org]). Thanks to Zappaman for the pull request adding this feature. MP scenarios, eras, and modifications now support the define= from [campaign] .

from . Standard Unit Filters now accept a status= attribute with a comma-separated list of statuses (‘poisoned’, ‘slowed’, etc.) that any matched units must have.

attribute with a comma-separated list of statuses (‘poisoned’, ‘slowed’, etc.) that any matched units must have. [scenario] force_lock_settings= now defaults to yes .

now defaults to . [scenario] and [multiplayer] now take a require_scenario=yes/no attribute.

and now take a attribute. [delay] now takes an accelerate=yes/no attribute (default no ) specifying whether the effective delay timing should depend on the animation speed options set in Preferences → General.

now takes an attribute (default ) specifying whether the effective delay timing should depend on the animation speed options set in Preferences → General. [message] now accepts side_for= even if user input is required ( [option] , [text_input] ).

now accepts even if user input is required ( , ). [modify_side] controller= now works in networked multiplayer games. If a null -controlled side is activated by [modify_side] controller=ai/human , then the currently active client will be assigned control of that side.

now works in networked multiplayer games. If a -controlled side is activated by , then the currently active client will be assigned control of that side. [side] disallow_shuffle=yes/no (default no ) allows exempting a side from shuffling when the Shuffle Sides option is selected during MP game creation.

(default ) allows exempting a side from shuffling when the Shuffle Sides option is selected during MP game creation. The ellipse= attribute in stored units (e.g. $unit.ellipse ) can now be overridden directly via variable assignment even if the attribute is set by [unit_type] or [effect] modifications.

New Lua API functions or features » wesnoth.synchonize_choice is now able to query information from sides other than the currently playing one.

is now able to query information from sides other than the currently playing one. wesnoth.get_all_vars retrieves a copy of the whole set of WML variables.

retrieves a copy of the whole set of WML variables. wesnoth.*dialog* GUI2 functions now support tree view widgets.

GUI2 functions now support tree view widgets. wesnoth.wml_conditionals is a new table similar to wesnoth.wml_actions . It can be used to define new conditional WML tags. For instance after running this Lua code: Code: Select all function wesnoth.wml_conditionals.can_make_archon(cfg) local x = cfg.x or error("[can_make_archon] missing x") local y = cfg.y or error("[can_make_archon] missing y") local adj = wesnoth.get_units( { x = x, y = y, type = "Spearman", side = wesnoth.current.side, { "filter_adjacent" , { side = wesnoth.current.side , type = "Spearman" } } } ) if #adj == 0 then return false end return true end function wesnoth.wml_actions.make_archon(cfg) local x = cfg.x or error("[make_archon] missing x") local y = cfg.y or error("[make_archon] missing y") local u = wesnoth.get_unit(x,y) local adj = wesnoth.get_units( { type = "Spearman", side = wesnoth.current.side, { "filter_adjacent" , { side = wesnoth.current.side , type = "Spearman", x = x, y = y } } } ) if not u or not adj or #adj == 0 then return end a = adj[1] if not a then error("That's wierd") end u.hitpoints = u.hitpoints + a.hitpoints u.name = u.name .. ' + ' .. a.name wesnoth.put_unit(a.x, a.y, nil) -- kill the unit that was absorbed end Code: Select all [set_menu_item] id = make_archon description = "Make a Spearman Archon" [show_if] [can_make_archon] x = $x1 y = $y1 [/can_make_archon] [/show_if] [command] [make_archon] x = $x1 y = $y1 [/make_archon] [/command] [/set_menu_item]

New image path functions » ~SEPIA() passes the image through a sepia tone filter, giving it an aspect similar to old pictures.

passes the image through a sepia tone filter, giving it an aspect similar to old pictures. ~NEG() negates the color values of the image, giving it an effect similar to a photographic negative.

negates the color values of the image, giving it an effect similar to a photographic negative. ~XBRZ() scales an image using the xBRZ scaling algorithm added in this release.

scales an image using the xBRZ scaling algorithm added in this release. ~SCALE_SHARP() scales an image using the nearest-neighbor method instead of the default interpolating algorithm.

Lua interpreter console » As a debugging aid for content creators, a Lua interpreter console has been added to the game. At this time, it is accessible from a button in the Gamestate Inspector window, but it may also be brought up directly using the default hotkey ` (grave accent).



The interpreter console optionally supports command-line history using the “History” library provided by GNU Readline, if available at build time.

Lua random map generator » map_generation=lua or scenario_generation=lua in your scenario. You should then have a generator tag which includes either the create_map or create_scenario attributes, which should be set to the contents of a Lua script which will perform the map generation.



Here is a trivial example:

Code: Select all [multiplayer] id=lua_map_gen name= _ "Lua Map Gen Test Scenario" description= _ "test test test of lua map gen" map_generation="lua" [generator] id="test" config_name="Test Lua Map Generator" create_map = << local rng = Rng:create() print(rng:draw()) print(rng:draw()) print(rng:draw()) local w = 50 local h = 40 map="" for y=1,h do local r = rng:draw() % 2 for x=1,w do if x == 10 and y == 10 then map = map .. " 1 " end if x == (w-10) and y == (h-10) then map = map .. " 2 " end if ((x + y) % 2) == r then map = map .. "Gg" else map = map .. "Md" end if x ~= w then map = map .. "," end end map = map .. "

" end return map >> [/generator] id = foo random_start_time=yes {DEFAULT_SCHEDULE} [event] name=prestart [label] x = 25 y = 20 text = "Lua map generator" [/label] [/event] [side] [ai] villages_per_scout=8 [/ai] id=RBY_Side1 side=1 save_id=RBY_Side1 persistent=yes color=red team_name=Red user_team_name= _ "teamname^Red" controller=human canrecruit=yes shroud=no fog=no gold=1000000 [/side] [side] [ai] villages_per_scout=8 [/ai] id=RBY_Side2 side=2 save_id=RBY_Side2 persistent=yes color=blue team_name=Blue user_team_name= _ "teamname^Blue" controller=human canrecruit=yes shroud=no fog=no gold=1000000 [/side] [/multiplayer]

For map generation, simply return a string containing the map data. For scenario generation, return the entire WML for the scenario as a Lua table (see LuaWML).

You cannot use any of the wesnoth.* API functions because you are not in a game at the time that the script is running. The script runs in an entirely separate Lua environment from the one used in-game, and from every other map generator script.

use any of the API functions because you are not in a game at the time that the script is running. The script runs in an entirely separate Lua environment from the one used in-game, and from every other map generator script. You can instantiate Wesnoth’s new high-quality RNG (mt19937, much better than the rand() -based generator used by

Lua’s math.random function) by using the table Rng to create an rng object, with seed and draw methods. Wesnoth now supports a new random map generator type using Lua. To use it, select eitherorin your scenario. You should then have a generator tag which includes either theorattributes, which should be set to the contents of a Lua script which will perform the map generation.Here is a trivial example:Note that:

Lua bit32 library for bitwise operations » bit32 library, which was added in Lua 5.2, is now enabled. This means that Lua scripts can now perform bitwise operations if desired. Check the Thelibrary, which was added in Lua 5.2, is now enabled. This means that Lua scripts can now perform bitwise operations if desired. Check the Bitwise Operations section from the Lua 5.2 Reference Manual for more information about this library.

Reworked fearless/healthy traits WML » Instead of checking whether the [trait] id equals fearless or healthy , these are now [effect] options set by the trait. This means that UMC add-ons that use their own fearless/healthy traits must add the required [effect] tags to them.

[tt]--render-image[/tt] command line switch » --render-image has been added. It is similar to --screenshot , but instead of a map, it takes a Wesnoth image path and generated an output image with all



Example usage:

Code: Select all $ wesnoth --render-image 'units/undead-skeletal/banebow-bow-attack-1.png~SCALE(144,144)' 'banebow.png' A new command-line switchhas been added. It is similar to, but instead of a map, it takes a Wesnoth image path and generated an output image with all image path functions from the source applied.Example usage:

Known bugs in this release

Newly introduced bugs in 1.13.x » The game sometimes chooses wrong default values for attributes in [scenario] and [side] . A known workaround for these bugs is to reload from the start-of-scenario save for every scenario: Shroud sticks when transitioning to scenarios without shroud (bug #23461 [Gna.org]). Initial time-of-day is randomized for scenarios that shouldn’t (bug #23462 [Gna.org]). Leader genders are randomized when they shouldn’t (bug #23496 [Gna.org]).

and . A known workaround for these bugs is to reload from the start-of-scenario save for every scenario: 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.

Shroud can’t be placed on hexes where units on allied teams have vision (bug #23458 [Gna.org]).

Existing known bugs from 1.12.x » General bugs:

HP/XP bars of allied units are drawn over shroud with some side configurations (bug #23460 [Gna.org]).

Wesnoth may occasionally crash to desktop when/while music is enabled. Thus far, this has been observed on Windows XP SP3 (bugs #23203 [Gna.org] and #23026 [Gna.org]) and Debian GNU/Linux 8 “jessie” (report pending).

More information is needed to help us determine the cause of this issue — in particular, your Wesnoth build configuration (if compiling from source), and OS and library versions, as well as any customizations you may have made to your install. Backtraces and semi-reliable steps to reproduce are highly desirable due to the nature of this bug.

— in particular, your Wesnoth build configuration (if compiling from source), and OS and library versions, as well as any customizations you may have made to your install. Backtraces and semi-reliable steps to reproduce are highly desirable due to the nature of this bug. It’s not possible to clear some default hotkeys with the Clear Hotkey option (bug #21983 [Gna.org]).

Attempting to assign hotkeys including both the Ctrl and Alt modifiers does not work (bug #22219 [Gna.org]). 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.

This is likely caused by outdated libraries in the packaging process. Consecutive line breaks (paragraph breaks) are not rendered as expected (bug #21649 [Gna.org]).

This is likely caused by outdated libraries in the packaging process. There is no built-in workaround available yet. Bugs specific to Apple OS X:



The following issues affecting Wesnoth on Apple OS X are known and they are pending fixes. Many of them require significant re-engineering that can only be done in 1.13.x development releases later, or cannot be properly addressed due to a lack of experienced OS X coders in our team. Thus, unless someone can contribute patches to address them, it is unlikely that these bugs will be fixed.

Color cursors are forcibly disabled on this platform due to severe performance issues (bug #18112 [Gna.org]).

Fullscreen mode does not fill the entire screen when maximum resolution is selected in Preferences → Display, and user interface elements are scaled and distorted.

System commands do not work while Wesnoth is running in fullscreen mode (bug #21943 [Gna.org]).

The mouse cursor is not mapped correctly to the game screen contents on Retina displays due to problems with detected vs. real screen resolution mismatches (bug #20332 [Gna.org]).

A workaround is in place making Wesnoth default to 800x600 on OS X regardless of the incorrectly-detected maximum resolution.

A workaround is in place making Wesnoth default to 800x600 on OS X regardless of the incorrectly-detected maximum resolution. Trackpad tap clicking is sometimes not recognized (forum post).

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

Consecutive line breaks (paragraph breaks) are not rendered as expected (bug #21649 [Gna.org]).

This is likely caused by outdated libraries in the packaging process. There is no built-in workaround available yet. [/list] The following issues affecting Wesnoth on Apple OS X are known and they are pending fixes. Many of them require significant re-engineering that can only be done in 1.13.x development releases later, or cannot be properly addressed due to a lack of experienced OS X coders in our team. Thus, unless someone can contribute patches to address them, it is unlikely that these bugs will be fixed.[/list]

New Contributors and Developers

irc.freenode.net

Downloads

⁂

This is the first release of the new 1.13.x development series, delivering an assortment of shiny new additions and improvements developed in parallel to the 1.12.x series. As it has been a while since our last alpha-quality development release, we would like to remind everyone how the testing and feedback process works:Since the release of 1.12 beta 2, the development version of Wesnoth has seen a myriad of improvements: theeffort brings support for eras and modifications to single-player campaigns; requiredmay now be automatically installed when attempting to join a multiplayer game; the newallows for easy debugging and testing of Lua code in scenarios; a number ofconfer more power to content creators;are now saved in the PNG image format to save disk space; and the newmay or may not help unlucky players feel less unlucky (chances are it won’t, sorry!).There is a lot more to this release than this heavily condensed summary. Read on for more details on these and other notable changes.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 changed deemed to be relevant for the average player. Be warned that both changelogs arelong this time around, since this is the very first development release in the series and many changes have piled up since 1.12 beta 2 (version 1.11.11) was released.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 it out 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.This release includes contributions from 8680 , abacabadabacaba, Aishiko aquileia , awleffew, Kevin-Xi LovCAPONE , mstrebel, naclander, Randypk, Rift-Walker , RolandHoGH, techtonik , and Zappaman , submitted via pull request on GitHub.Do you want to help shape the future of Wesnoth? You are always free to join us in the IRC channel onto ask for help with getting started!A package foris already available:Packages forare now available. There is a compatibility issue with OS X 10.10 Yosemite. A separate package is available for OS X 10.10 users until it can be resolved.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!