widelands-dev team mailing list archive
Mailing list archive
[Merge] lp:~widelands-dev/widelands/changelog_201902 into lp:widelands
GunChleoc has proposed merging lp:~widelands-dev/widelands/changelog_201902 into lp:widelands.
Updated changelog up to bzr9007
Widelands Developers (widelands-dev)
Bug #1817841 in widelands: "Change log for Build 20 RC1"
For more details, see:
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/changelog_201902 into lp:widelands.
=== modified file 'ChangeLog'
--- ChangeLog 2018-06-12 17:02:48 +0000
+++ ChangeLog 2019-03-18 07:45:19 +0000
@@ -1,15 +1,24 @@
-## Post Build 19 until bzr8630
+## Post Build 19 until bzr9007
### Animations, Icons and Overlays
- - Implemented scaling support for animations
+ - New wheatfield graphics by fraang
+ - Shorten a soldier's last evade_failure animation if the soldier is about to die
+ to prevent overlooping.
+ - The health bar of a soldier now falls gradually during an attack instead of one-shot.
- New graphics for field selectors and field action tabs
- Special field selector for road building mode
- Added missing call to get_rand_anim when a soldier is dying
+ - Added missing working animations for barbarians big inn and woor hardener
+ - Each tribe now has individual resource indicator graphics
+ - Added util to rename animation files in bulk.
+ - Fixed bug #1639253: Add missing walkload animation to Atlantean smoker
### Sounds and Music
+ - New music track "Scotty the Scout" by Stuart Marshall
+ - New music track "The beauty of the flatlands" by Klaus Halfmann
- Added new sound files for Barbarians Inn + Big-Inn, Empire Inn,
Atlantean Mill, Toolsmith, Smelting-Works, all Weaving Mills, Atlantean
Woodcutter, Sawmill, Stonecutter, Goldspinner.
@@ -18,6 +27,8 @@
- New music tracks: "Silkweaver's Song", "Hypathia's Theme", "We Work in
the Vineyards" and "Running out of Coal"
- Allocate 32 mixing channels instead of the default 8.
+ - Never play the same song twice in a row
+ - Improvements to sounds and the sound mix
### Tutorials and Campaigns
@@ -25,20 +36,66 @@
- 2 new missions for the Empire campaign
- 2 new missions for the new Frisians tribe
- Tweaked timings in tutorials and scenarios
+ - Updated the Economy tutorial to match the new, enhanced encyclopedia
+ - Add roads to p2 in warfare tutorial because the AI is empty
+ - Fixed reveal_campaign in bar_01
+ - Fixed bug #1639514: Barbarian campaign, scenario 2: yellow brother bails out
+ - Fixed bug #1656192: Economy tutorial assumes window is open
- Changes and additions to Lua methods and objects:
- New method player:get_produced_wares_count()
- New object LuaMap -> LuaEconomy.
- Added option to Lua function player:hide_fields to mark them as unexplored
- New scripting functions for random and concentric revealing/hiding of fields
+ - New attribute 'is_stopped' to LuaProductionSite
+ - New method 'toggle_start_stop()' to LuaProductionSite
+ - Added lua method to get the type of the current game, i.e., single or multiplayer.
+ - Changes to territorial win conditions:
+ - Pulled out common code for Territorial Lord and Territorial Time.
+ - Ensure that check_player_defeated is called before points are calculated.
+ - New function to check whether a field is buildable.
+ - In territorial win conditions, check if player still exists before making it the winning player.
+ Player will also win if there are no other players left.
+ - fixed desyncs in territorial windonditions;
+ updated documentation not to use some functions for multiplayer games
+ - More precise calculation of conquerable fields for Territorial win conditions
+ to make them playable on all maps
+ - Various fixes for win conditions:
+ - unified some functions for wood_gnome and collectors
+ - removed duplicated code and moved it to win_condition_functions
+ - notify only every hour, 10 minutes in the last 30 minutes
+ - move _game_over function out of the main loop.
+ - don't show points when game ended by military defeat
+ - main loop ends when time is over or only one faction is left
+ - check every second for defeated players
+ - Refactor initialization of win conditions:
+ - Shift calculations for territorial functions and Wood Gnome to C++
+ to improve performance
+ - Add immovables to the table for territory calculation
+ - Expose port spaces and max caps to Lua interface
+ - Remove superfluous "postload" call from replay
- Remove unused parameters of message_box_objective.
- Removed unused parameter 'req_suitability' from function
place_building_in_region in infrastructure.lua
- Added capability to add custom scenario buildings
- - Fixed bug #1639514: Barbarian campaign, scenario 2: yellow brother bails out
- - Fixed bug #1656192: Economy tutorial assumes window is open
+ - Allow writing and loading of campaign data, so that some scenario state can
+ be transferred from one scenario to the next in campaigns.
+ - Do not broadcast Lua coroutine error messages to empty player slots.
+ Also, use richtext_escape on them.
+ - Orthogonal design for mapobject program names
+ - Fixed bug for Wood Gnome in which a destroyed player would gain infinite
+ points. Also, no longer calculate score for a defeated player.
+ - Fix unpersisting of LuaImmovableDescription for tribe immovables.
+ - Safeguard to avoid desyncs when using send_message() from ui.lua
+ - Add parameter to send_message() to avoid an error
+ - Fix a memory leak in persistence.cc
- Fixed bug #1670065: Random tree growth can block building sites needed to
progress in scenario
- Fixed bug #1688655: lua func "place_building_in_region" not work for mines
+ - Fixed bug #1815283: Nil value in Territorial Lord
@@ -53,15 +110,39 @@
completely blocked across the sea
- Fixed bug in Crossing the Horizon map where an artifact couldn't be
conquered by a player
+ - Fix desyncs in Smugglers scenario
- Old scenario save games will no longer work due to changes to the map
+ - Broke savegame compatibility in version bzr8747
- Savehandler: Avoid reading config more than once per game
- Corrupt zip files now appear as "incompatible" on game loading/saving
screens. This fixes stack-buffer-overflows.
+ - Fix bugs with missing files/folders in savegames by creating a temporary map save on game start
+ - Improved error checking in filesystem functions
+ - In Load/Save menu for games/replays:
+ - All deletion errors are caught, player gets a message.
+ - When deleting multiplayer replays, also the corresponding syncstream file is deleted.
+ - After deleting replays, the table now respects the Show Filenames setting.
+ - In Save menu for maps:
+ - Errors when trying to create a directory are now caught, player gets a message.
+ - Directory creation now doesn't allow names with map extensions, because the game would just
+ trying to interpret them as maps and not show as directories. A tooltip is shown.
+ - Directory creation can now also be triggered by pressing Enter in the name edit box.
+ - Other file errors are caught and logged:
+ - syncstream deletion in SyncWrapper destructor
+ - in Map::get_correct_loader
+ - file deletion/renaming in GameClient::handle_packet
+ - Introduces a new class to robustly handle saving of files (incl. dealing with backups,
+ handling errors, etc.) and use it whenever maps/games are being saved.
+ - Add validity checks for S2 map headers to avoid crashes when preloading invalid S2 map files
+ - Fixed bug #1678987: Endless autosave cycles when a save takes longer than
+ the autosave interval, and inefficient statistics saving
+ - Fixed bug #1746270: Unable to rename rolling autosave
+ - Fixed bug #1798812: Saving a game from replay does not show up in load game menu
@@ -78,18 +159,31 @@
One productionsite can now support multiple wares/productionsites.
- Allow resetting of teams via LUA during game
- Improved selection of which fields to build something on
+ - Improved identification of unconnectable regions based on walking algorithm.
+ Used to keep AI from wasting attempts to build something there.
+ - AI now splits and counts mineable fileds per resource/mine type and uses it
+ for decision making, ignoring inaccessible fields in the process
+ - When looking for the nearest buildable spot, the AI will accept mineable
+ fields also. This affects willingness to expand when there are no buildable
+ spots nearby, but some mines can be conquered by a new militarysite.
- AI now calculates military strength based on the actual init.lua files
rather than hard-coding the values. This also removes the tribe name
restriction for modders.
- When considering a quarry, the AI makes sure there is at least one rock in
- the vicinity
+ the vicinity. Same for fishers and fish.
- Improved ship exploration decisions for AI.
- AI now considers whether possible sea direction leads to unknown territories
- AI also continues exploring when the last port is lost to prevent crashes.
+ - Since the AI can handle only 1 expedition at a time, any extra expeditions
+ are canceled
- Prohibit seafaring buildings for AI on non-seafaring maps. AI can still
handle ships and shipyards that already exist when a map does not allow
seafaring at the moment.
- AI now scans entire map for portspaces
+ - Fix endless loop in DefaultAI::dispensable_road_test
+ - Added one well to the atlantean basic economy, as water is needed
+ for crucial spidercloth production
+ - Replaced logic_rand() with std::rand() in seafaring code of AI to fix desyncs in network gaming.
- Fixed bug #1724073: AI crashes when some AI slots are empty
@@ -124,8 +218,6 @@
- Only cancel expedition if there is a reachable portdock. Show a warning
message to owner.
- Shifted ware hotspot definition from WorkerDescr to CarrierDescr
- - Fixed bug for Wood Gnome in which a destroyed player would gain infinite
- points. Also, no longer calculate score for a defeated player.
- Fixed a bug where higher-level workers wouldn't occupy lower-level workers'
working position slots in productionsites
- The port now conquers every location where its military influence is higher
@@ -135,6 +227,30 @@
- Fixed bug in collectors script where a broken message was sent after the
+ - Check for visibility of military buildings prefore permitting attack. This
+ solves a problem with implregnable castles.
+ - Improved algorithm for promotion and demotion of roads
+ - Removed hardcoding for resources
+ - New return value no_stats for work programs.
+ - Tweaked production programs for shipyards
+ - Balancing: All Smelting Works, Furnaces, Smokeries, Recycling Center,
+ Atlantean and Frisian Toolsmithies, Taverns, Inns and Drinking Halls no
+ longer waste time if a ware is missing and they have to skip a program.
+ - Balancing: Tweaked programs for Weapon/Armor producing buildings
+ - Balancing: Imperial Armor Smithy produces 1 more Helm per run to balance the
+ amount of armor types for training.
+ - Balancing: Changed the order of programs in the Atlantean Toolsmithy
+ - Balancing: Gave the Barbarian Deep Gold Mine the same stats as the Deep Iron
+ - Increase the area where the map is recalculated after conquering by 1.
+ This prevents buildings from sitting between borders.
+ - Fix heap-use-after-free in fleet while processing EditorGameBase::cleanup_objects()
+ when ship has already been deleted
+ - Allow return on dismantle values without buildcost.
+ - Fix desyncs caused by floating point arithmetic in terrain affinity
+ - Reset economy serial in Game constructor. This fixes desyncs in replays.
+ - Stop ware dropoff when the target building has been destroyed. This fixes a crash
+ when the enemy conquers a militarysite near a warehouse.
- Fixed bug #963799: shortsighted shipwright (ship in pond)
- Fixed bug #1611323: ships can be built in non-floating spaces (shipyard)
- Fixed bug #1636966: Segfault in battle
@@ -146,6 +262,8 @@
- Fixed bug #1658456: Imperials: Soldier target quantity not changeable
- Fixed bug #1749586: Fish breeder can't breed fish if the game is loaded
after all fish is caught
+ - Fixed bug #1790456: The final message in collectors doesn't show the points
+ of all players anymore
### User Interface
@@ -195,6 +313,47 @@
- Converted all text to new font renderer. Formatting functions for the new
renderer live in data/scripting/richtext.lua
- A more principled fix to dangling object pointers in the UI using Optr<>
+ - Building Statistics now only show relevant buildings
+ - Building Statistics now show "under construction" navigation for buildings
+ being enhanced
+ - Show in-game clock in release builds too
+ - In multiplayer games, scroll to starting position when a game is loaded
+ - New Ship Statistics window
+ - Bugfixes to multiplayer dropdowns
+ - Use Lua to define background and button styles
+ - Background images and colors are now defined in data/templates/default
+ - Combine common background graphics with color overlays
+ - Added StyleManager class to load and access backgrounds
+ - Downscale background images (e.g. campaign maps) on small screens
+ - New graphics for ui_fsmenu
+ - Darker background for wui elements
+ - Fixed keyboard navigation after "remove game" dialog has been displayed
+ - Modified row selection/display in tables and message list
+ - Remove focus from editbox in gamechatpanel when it minimizes
+ - Added tooltip to file save and make directory edit boxes if illegal filename
+ is being entered
+ - Added a checkbox to toggle filenames when loading a replay
+ - Fixed scenario title and tooltip during game setup
+ - Preselect player names and tribes for non-scenario maps in single player mode
+ - Set AI from selection in UI when saveloading
+ - Missing wares (and workers) are indicated differently in InputQueueDisplays
+ if the ware is on the way to the building than if it's really missing
+ - Redesigned and fixed the showing of workarea overlays
+ - Tweaks for the multiplayer game setup screen: less empty spaces and more
+ space for important content.
+ - Very large amounts in WaresDisplays are shortened as "10k", "10M", "10G" to
+ prevent text from flowing over on the left.
+ - When dismantling a building, the building window closes automatically
+ - Added a dialog for the host when the connection to a client is lost. Allows
+ the host to select whether to replace the client with an AI or to exit.
+ - Setting focus to edit box when opening the game save menu.
+ - Don't provide the filename for the standard background image in the progress window.
+ This fixes image positioning when starting multiplayer games.
+ - Make dismantle button independent of buildable/enhanced. This fixes missing
+ Dismantle buttons in Empire scenario 4.
+ - Improve formatting for user status in the lobby
+ - Allow hotkey usage while windows are open.
+ - Fixed memory leak in network UI.
- Fixed bug #1191295: Seafaring: builder not listed in expedition list in port
- Fixed bug #1635808: Display of worker in training sites is not updated.
- Fixed bug #1653254: Action window of Road stays open under some
@@ -206,6 +365,16 @@
- Fixed bug #1687043: Memory leak in Multilineeditbox
- Fixed bug #1695701: Crash when a militarysite window is open while the
enemy conquers it by sending a notification.
+ - Fixed bug #1672059: Selection is not cleared when new message arrives
+ - Fixed bug #1691336: Building window suddenly appears after construction has
+ - Fixed bug #1658668: Menu Launch Game: Switching AI player on/off changes AI
+ - Fixed bug #1656245: Scrolling with mousewheel is slow in some places
+ - Fixed bug #1769344: High processor load single player launch game screen
+ - Fixed bug #1785404: Chat does not autoscroll
+ - Fixed bug #1794063: Extra message arrival sound
+ - Fixed bug #1801208: Message boxes with long unbreakable strings show empty
@@ -227,6 +396,15 @@
translation statistics to data/i18n/translation_stats.conf and is called
on every translation pull.
- Fixed various string issues and added some translators' comments
+ - Completed the switchover to the new font renderer
+ - Fixed translation of trainingsite program names
+ - Fix undefined / unexpected behaviour in case LANG environment is empty.
+ - Fix fetching of translations when user locale is set to C. If the desired Widelands locale
+ does not exist, try to fall back to en_US.utf8 to make libintl happy.
+ - Adapted buildcat.py to get translations for resources, added textdomain to blueberry bushes.
+ - Add an extra key to get a translatable author-value in te developers list
+ - Fixed bug #1636586: Inconsistent localization of player names in Editor
+ player menu
### Help and Documentation
@@ -245,6 +423,11 @@
- Fixed some miscellaneous bugs in the LuaMap documentation.
- Use mathjax for latex in docs instead of imgmath
- Enable building documentation with warnings as errors on Travis
+ - Constructionsites' help button now points to the help for the building being
+ - Documented metaserver command line option
+ - Added lua_path.cc to the documentation
+ - Fixed bug #1792297: Advanced buildings report wrong worker experience in the encyclopedia
@@ -254,9 +437,29 @@
- Display of bobs, immovables and resources can now be toggled individually
- Fixed drag and drop
- Removed dead code for make infrastructure tool that was never finished
+ - Fixed keyboard navigation with escape and enter for save map and save game
+ screens. If the editbox is focused, eccape will reset the text if changed,
+ and close the window if unchanged.
+ - Refactored Editor Player Menu to use Box layout. Show dismissable warning if
+ more than 8 players are selected.
+ - Map Editors now can choose "Random" tribe in the player menu
+ - Converted editor infotool to new font renderer and added some layout tweaks
+ - Enable OK button in map options when tags have changed.
- Fixed bug #1627537: Release mouse button does not work when placing things
and mouse gets under a window
- - Fixed bug 1738641#: Resources can be replaced only once in editor
+ - Fixed bug #1738641: Resources can be replaced only once in editor
+ - Fixed bug #1749146: MultilineEditboxes: Entering text not possible
+ - Fixed bug #1736086: Saving a map with no player set shows up as having one
+ - Initialize new maps with 0 players
+ - Disable selection of maps with 0 players
+ - Automatically add first player to editor player menu
+ - Fixed bug #1741779: Description is cut in map options multilineeditbox
+ - Fixed bug #1782593: Segfault in random map generator
+ - Fixed bug #1783878: Saved random map does segfault on load if no tribe is
+ explicitly set
+ - Fixed bug #1815613: Editor crash when setting new 0,0 coordinates
### Graphics Engine
@@ -283,6 +486,14 @@
functionality to local draw() functions in individual classes. Gave the
Interactive* classes their own draw() functions.
- Refactored Tcoords, Fcoords and TriangleIndex
+ - Force integer precision for overlays. This fixes fuzzy overlay images when
+ the player hits Ctrl+0 to reset the zoom.
+ - Show a basic SDL error message box to the user if the shading language
+ can't be detected or is too old.
+ - Print the shading language as double to console
+ - Fix shading language version detection for system locales that don't
+ use . as a decimal separator
+ - Fail with SDL messagebox if SDL_BYTESPERPIXEL != 4
- Fixed bug #1674243: Assign owners to neighbors in Player::rediscover_node.
The lack of owners was causing crashes with the road
program, which no longer knew which texture to pick.
@@ -299,14 +510,26 @@
valid for 12 hours, allowing to reclaim a username after a disconnect
- Increasing password security by no longer storing and transmitting it in
+ - Improvements to Metaserver protocol
+ - Fixed memory leak in LanGameFinder
+ - Fixes on the communication between widelands and the metaserver:
+ - Permit answering PING requests even while logging in
+ - Printing current time to console when logging in.
+ - Eases finding the corresponding log entry on the metaserver when debugging
+ - Re-enabling and fixing unused code for whisper message to nonexisting player
+ - Handling error message when trying to join a non-existing game
+ - Avoid hanging client even after being notified about the non-existing game
+ - Removed no longer needed error messages
- Fixed bug #1691335: Multiplayer client crashes when the host hasn't selected
a map yet
+ - Fixed bug #1794339: segfault joining game
+ - Fixed bug #1805325: Crash on late joins of LAN games, and display of map name in LAN lobby.
### Build System
- Windows builds now have a unique app id for every build. This allows
parallel installation of several versions.
- - Modernized how Mac OS X releases are done.
- Added support for gcc7.
- Removed "redundant-decls" flag for Windows builds due to conflict between
SDL and MinGW.
@@ -316,14 +539,43 @@
- Allow compiling with AddressSanitizer, and choosing between gcc and clang on
the first compile.
- Deactivated the rich text testing project, as it's currently unmaintained.
- - Moved website related binaries to base dir in compile.sh
+ - Move website related binaries to base dir in compile.sh
+ - Do not build website tools on appveyor, this saves 20 minutes on x64 debug builds
+ - Check for minor version of CMake
+ - Only export ICU_ROOT if CMake version is lower than 3.12
+ - Support for glbinding 3 and new Boost version
+ - Fix revision detection
+ - Fixes for handling different Cmake policies
+ - Use MacOSX.sdk if an appropriate versioned SDK can't be found.
+ - Add linker flags to please Ubuntu 18.10
+ - Use more processing units when using the compile script. Defaults to: max. Processors -1.
+ Can be set with the -j switch.
+ - Copy the version file instead of moving it, so that the update script can be run twice in a row.
+ - Use compile.sh when running update.sh
+ - Added tags for Flatpak to appdata.xml
+ - Modernized how Mac OS X releases are done.
+ - Add CFBundleShortVersionString to Mac builds.
+ - The script for building on macOS uses gcc-7 now. Also it checks whether
+ the SDK10.7 is installed or not and uses the latest installed version if
+ it cannot find the old one.
+ - Choose between compiler clang or gcc, specify build type: debug or release
+ - Fixes for Debian-based software centers:
+ - Add stock icon to appdata.xml
+ (c.f. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857644)
+ - Change icon definition in .desktop to be a generic one
+ - Content ratings are now accepted by the validator, so we've activated them
+ - Validate .desktop file on translation updates. Removed deprecated category from
+ .desktop file.
### Other Issues
- Moved utils/fix_lua_tabs.py to utils/fix_formatting.py and added calls to
clang-format and pyformat.
- - Fixed a series of compiler warnings for clang and Windows.
+ - Cleaned up Windows utils
+ - Removed unused images
+ - Updated Eris to version 1.1.2 (Lua 5.3.4)
+ - Fixed a series of compiler warnings for clang, gcc and Windows.
- The ProductionSiteDescr constructor still contained some checks from the
time when they used to inherit from MilitarysiteDescr. Removed this obsolete
code and made working_positions and programs mandatory.
@@ -342,7 +594,30 @@
- Added 2 new functions to Lua interface: list_directory and is_directory
- Split new function cleanup_portspaces() from allows_seafaring(), and
refactored port spaces checks.
+ - Only recalculate whether a map allows seafaring when something has changed
+ - Economies are now mapped to global serials and kept as unique_ptr in the
+ Player objects
+ - Exit gracefully if user specifies a datadir that doesn't exist
+ - More strict sanitizing of chat messages
+ - Printing a welcome message on joining the metaserver
+ - Write Windows log output to homedir instead of the program dir
+ - Widelands is now installed into local appdata on Windows
+ - Copy translation validation results into maintainers' and translators' views to make them
+ easier for translators to navigate.
+ - Use std::cout for logging when calling terminate on shutdown, because the logger might not
+ exist any more.
+ - Remove test logging output from production_program.cc
+ - Use internal names rather than descnames for log messages and workarea Ids.
+ - Refactor website binaries to use a real tree data structure for writing JSON
+ - Print more information in syncstreams. Create additional smaller syncstream files
+ containing the last few seconds leading to a desync.
- Fixed bug #1648178: Fatal Exception: Bad Cast
+ - Fixed bug #1743086: ASAN memcopy overlap on Ubuntu Budgie from libSDL
+ 2.0.6+dfsg1 by disabling sound as a workaround to a bug
+ in the backend
+ - Fixed bug #1724145: Crashes in master-2511_release_x64 on save, caused by
+ economy merges making Lua variables go nil
+ - Fixed bug #1776603: ASAN: wl_map_object_info leaks memory
## Build 19