← Back to team overview

widelands-dev team 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.

Commit message:
Updated changelog up to bzr9007

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  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
+### Scripting
   - 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
 ### Maps
@@ -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
 ### Saveloading
   - Old scenario save games will no longer work due to changes to the map
     scrolling functions.
+  - 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
 ### AI
@@ -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
     game ended
+  - 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
+    Mine
+  - 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
+                        finished
+  - Fixed bug #1658668: Menu Launch Game: Switching AI player on/off changes AI
+                        setting
+  - 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
 ### Internationalization
@@ -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
+    built
+  - Documented metaserver command line option
+  - Added lua_path.cc to the documentation
+  - Fixed bug #1792297: Advanced buildings report wrong worker experience in the encyclopedia
 ### Editor
@@ -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
+                        player:
+                        - 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

Follow ups