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" https://bugs.launchpad.net/widelands/+bug/1817841 For more details, see: https://code.launchpad.net/~widelands-dev/widelands/changelog_201902/+merge/364658 -- 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 @@ influence. - 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 plaintext + - 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
_______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : widelands-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp