Count casualties/kills, military/civilian buildings lost/defeated and present them in the general statistics menu (except for civilian buildings defeated, which is omitted from the user interface) (r3395, r3407).
Make automatic roadbuilding mode after creation of non-connected flag optional (r3177).
Improved production program handling (r3373, r3384):
Eliminate the need for line numbers in the programs.
Fix bug that the consume command required that all wares in a consume-group must be of the same type. For example the command "2=consume smoked_fish,smoked_meat 2" required 2 smoked_fish or 2 smoked_meat. Now it will also work if there is only one of each.
Change the syntax of a consume-group to ware1[,ware2[,...]][:quantitiy] (for example "smoked_fish,smoked_meat:2").
Extend the consume command to take any number of consume-groups (for example "smoked_fish,smoked_meat:2 bread:2"). This means that unless all consume-groups can be satisfied, nothing is consumed when the command fails. This will fix many bugs in the game data where programs had for example "2=consume smoked_fish,smoked_meat 2" and "3=consume bread 2". If there was not 2 bread, it would consume 2 smoked_fish or 2 smoked_meat and then fail.
Get rid of the command check. It was only a work-around for the previously deficient command consume (and some programs forgot to use it).
Implement the new command return. It can return from a program. There are 3 different return values; Failed, Completed and Skipped. Only programs returning Failed and Completed will affect statistics. A program that reaches the end will be considered to have implicitly returned Completed. The return command can optionally take a condition. Currently only two conditions are supported; economy needsware_type and workers need experience. The former will allow a program to have a command "return=skipped unless economy needs marblecolumn". It will prevent Game Over as a result of a production deadlock on marble when a user forgets to turn off a stonemason for a while. This fixes the huge problem with production deadlocks that hit every new player in their first games and every experienced player once in a while. The condition makes a query to the economy, which now simply checks if there are no warehouse supplies that supply the ware type. This can of course be made much smarter later. The latter is used in the barbarian micro-brewery to let it practice making beer until the brewer has become a master_brewer even if the economy does not need any beer.
Extend the produce command to take any number of ware types with quantities.
Fix the call command to validate that the called program exists. This requires changing declaration order in some data files (for example if "work" calls "seed", "program=seed" must come before "program=work" in the "global" section of the productionsite definition. (However the definition order of the programs does not matter.) This fixes the bug that a call command may fail at run-time because the called program does not exists.
Extend the call command with an optional error handling specification (call=<program_name> [on failure {ignore|repeat|fail}]). It will make it possible to ignore a failure of a called program and continue the calling program, or repeat the failed program until it succeeds.
Extend the sleep and animate commands. If no duration is given as the last parameter, the return value from a previous action is used for duration. This makes it possible to for example let the mining command calculate how long the following sleep/animation should last, depending on ore concentration and mining depth.
Get rid of the set command and the associated catch and nostats flags.
Fix the mine command to parse and validate its parameters at parse-time instead of at run-time. This fixes the bug that the game engine could fail with the message "Should mine resource <resource_type>, which doesn't exist in world. Tribe is not compatible with world!!" at run-time the first time a mining command is executed.
Fix most other commands that had insufficient validation or did parsing at run-time (for example the consume command reparsed its wares at each execution).
Optimize the parsing by eliminating needless string copying.
Rename the building property "enhance_to" to "enhancement" and validate that the given building type exists (r3373).
Improved editor handling of bobs and animals, so they can not be placed on invalid locations (r3319, r3321).
Implemented loading of savegames in multi player (r3266, r3270, r3271)
Fix bugs in parsing of building types's buildcosts and inputs. Check that the ware types exist and are not duplicated and that the quantities are within range (r3373).
Fix bug in parsing of productionsite types' outputs. Check that the ware types exist and are not duplicated (r3373).
Fix bugs in parsing of productionsite types', critter_bob types' and worker types' programs. If a program was declared twice, it was parsed twice and the memory used to store the first instance was leaked (r3373).
Fixed bugs with drop-soldier commands: If such a command was given and then the game was saved before the command was executed (because the game was paused), the command was saved incorrectly (r3451, r3456). And even if the savegame would have had such a command correctly saved, the loading code would not have recognized it (r3456).
Removed the trainingsite options window. The "Make heros" button was suspected of being able to cause desync in network games (r3452).
Fixed bugs that attack, change-soldier-capacity and set-ware-priority commands were not recognized when encountered in savegames (r3454, r3456, r3455).
Fixed bug that set-ware-priority commands were saved as enhance-building commands (r3455).
Change game rule: Forbid upgrading any building to any type of building. Only allow upgrading to one of the defined enhancements. This is the behaviour that was intended and that the user interface obeys. Now also the game logic enforces it. This prevents users from circumventing the user interface and do arbitrary building upgrades, which other players may consider cheating in a network game (r3457).
Fix program crash (or worse) when a worker type was declared to have an ingredient that had not been defined (r3459).
Forbid declaring that a building can be enhanced to its own type or the special type constructionsite (r3460, r3461).
Do not let the constructionsite crash the game if a building type did not define a build animation. Use the idle animation instead (r3462).
Do not crash because of division by 0 when building a building without buildcost (r3462).
When building a building without buildcost, complete it immediately instead of never (r3462).
Check for mine and size mismatch when parsing building enhancement definitions. This prevents crashes at run-time (r3463).
Fixed bug #1792379 - little trees set with editor don't grow (r3317).
Fixed bug #1913902 - collosseum now trains evade 0 and 1 (r3303).
Fixed bug that upgraded worker were used in buildings instead of training new simple ones (r3304).
Fixed bug that caused segmentation fault when executing ./widelands --editor=nonexistent_file (r3335).
Fixed bug that caused segmentation fault when executing ./widelands --scenario=nonexistent_file (r3336).
Fixed bug that caused invalid use of uninitialized memory when an animation configuration defined playercolor=true but a mask file was missing (r3347).
Fixed bug #1968196 - Scenario-maps aren't loaded as one (r3227).
Fixed bug #1900477 - Objectives description are not translated and objective names are not included in PO templates (r3225, r3229).
Fixed language-settings-menu for Linux - now Widelands sets system-language-variable correctly (r3193, r3252, r3262).
Fixed bug that prevented releasing the last soldier from a trainingsite (r3179).
Fixed memory access errors in the game logic, causing segmentation fault or any kind of strange undefined behaviour (r3184, 3365).
Fixed memory access error in save game dialog (r3185).
Fixed many memory access errors when trying to read missing sections in configuration files (r3195).
Fixed bug that the computer player did not check if a planned large building would be completely inside his borders (r3191).
Fixed bugs that the empire wine bush and barbarian flax and reed lived forever, blocking the map (r3190, r3527).
Fixed bug that it was possible to cheat when destroying an enhanceable building by first ordering and upgrade and then immediately ordering the destruction of the enhancement-constructionsite. This avoided the burning phase, which made the space available immediately. (r3513)
Fixed bug: Workers that become fugitives have a higher chance of finding back to a warehouse. A flag connected to a warehouse must be close to the worker.
Fixed bug that the objectives menu was not updated when objectives were fulfilled during the game.
Fixed bug that workers would enter a building before arriving at it (entering it when passing the flag in front of the building). This caused the worker to start seeing from the building too early.
Fixed network support for direct IP and LAN games.
Fixed many gamelogic bugs.
Removed support for GGZ. Please use the forums and IRC channel to meet for multiplayer games.