And one more chunk because splitting it in two wasn’t enough…

Bugfixes:

Fix inability to repair modified clothing.

Fix charge consumption when invoking tools.

Fix grenades not exploding.

Cleanup drivability rules for vehicles.

Prevent application of traps to players in vehicles.

Menu crash fixes.

Fix crash when player moves while remotely controlling a vehicle

Fix gasoline in automated gas station mapgen

Force HOT/COLD/WET items to be active on save load

Make reinforced glass interact with projectiles.

Prevent display of messages the player shouldn’t know about.

Prevent windows from thinking the game has hung.

Prevent turrets from damaging source vehicle.

Don’t drop skeleton meat.

Don’t automatically shoot neutral creatures with autofire.

Fixup behavior of frightened monsters.

Optimized fire spread.

Fixed disarm technique.

Crash fixes for item handling.

Stumbling monsters no longer move at different effective speeds based on direction of movement.

Numerous bugfixes in NPC AI.

Fixed some interactions between various inventories when they are present in the same tile.

Made blacklisting operate more consistently.

Rebalanced vehicle collisions.

Fixed crash when target dies between successive automatic attacks.

Fixed deafening noise from collapsing buildings.

Apply stamina penalty for attacking more consistently.

Headgear now can actually be worn with power armor.

Don’t wake up on dry retching.

Fix incorrectly calculated melee movecost.

Fixed zombies stumbling in biased directions.

Fix for flickering in SDL version.

Allow dodging during long actions.

Fix failing legacy save loading unit test.

Fix electricity and acid ripping up clothing.

Fix a funny bug: going to sleep while playing an instrument results in “Something is making noise”.

Fix shrapnel crash.

Hack in roofs above buildings.

Fix all projectiles causing explosions.

Add back cache update to fix pixel minimap render issue.

Make backtrace() handling saner; fixes BSD, probably others.

Make exploding ammo explode on hit.

Integrated scope fix for scout rifle.

Restrict usage of computers for blind character.

Fix NPCs talking to deaf player.

Fix line slopes and adjust projectile attacks.

Remove morale penalty after washing if filthy item was worn whilst washing it.

Fix items from previous saves not having any charges even when counted by charges.

Ask only once per dangerous tile to enter.

Fix safe mode trigger distance.

Fix an active item processing crash.

Never give new characters unusable food or clothing (part 1).

Dirty transparency cache when removing opaque parts from vehicles.

Remove grab when target is destroyed.

Stash linkages in the gun like we do casings.

Prevent projectiles generated by Electromagnetic Unit CBM from hitting the player.

Rad-immune player is now protected from zombie scientist’s radiation beam.

Vehicles shouldn’t collide with hallucinations.

Avoid city only scenarios in random character generation when city size is 0.

Hallucinations don’t reset limb healing.

Fix saving character templates.

Fix for schizophrenic NPCs effecting players.

Stop NPCs from leaving the vehicle due to smoke while in vehicle.

Remove CARGO items from destroyed vehicle parts.

Test and fix zapback.

Prevents character from waking up from lack of fatigue or noise while under the effect of narcosis.

Fix placement of overmap specials with city size 0.

Limit consoles and cardreaders to only affect within their overmap tile.

Fix connections in ant tunnels.

Fixed stuck movement after holding numpad keys in SDL version.

Fix crash when NPC tries to take off and drop items where he can’t when asked to wear something.

Fix display of isolated linear tiles.

Fix for excessive overheating from fire sources.

Fix creatures being able to see you through cameras and mirrors.

Remove explosion effect from small arms ammo put into fire.

Fix crash/weird behavior when handling items while over-encumbered/

Fixes the autoattack range for HAS_REACH weapons when the gameworld is circular.

Fix drinking from ‘aluminum can’ segfault.

Fix crash with no audio device.

Fixes creatures not setting off traps or falling z-levels after being flung.

Fix crash when resizing window during character creation.

Fix overmap special exhaustion when placing mandatory specials.

Prevents players from inheriting each other’s deafness.

Fix for melee sound related crashes.

Disable recharging vehicle batteries from handheld batteries.

fix for crash to desktop when player tries to remove charcoal or food from smoking rack

Fix throwing stacks of items.

Fix wrong tripoint usage for temperature calculations.

Make trying to sleep into an activity.

Fix items going spoiled while crafting.

Sort out of spilled liquid infinite loop fix.

The internal furnace can only consume itens up to a maximum mass and volume.

Fix vehicle part install CTD.

Recalculate morale after washing filthy worn items.

Avoid invlet clashes on worn items.

Prefer dropping items into vehicle cargo spaces where available in more situations.

Fix traps ignoring monster armor.

Vehicles: make the vehicle split code more robust and stop game crashes.

Use maps on all zlevels so they actually reveal things.

Fix crash when talking to ranch foreman about prospectus; Fix agricultural investment option not functioning.

Consistent fireproof / firey monsters immunity to fire-related fields.

Type cast for prevention of integer overflow with large volume containers like cargo containers.

Bionics: connect cable charger systems to vehicles.

Unloading plutonium from vehicles now gives the correct amount.

NPC missions: clear the mission during the failure talk topic.

Fixed crash related to unbound direction action.

Reduce quarter-corpse butchering times to 1/4th of full corpse.

Set max for item stack charges, container volume and cargo volume.

Prevent heat induced vomiting until dead.

Folding vehicles: improve collision test when unfolding.

Fix item category names not updated when switching the language.

Fixed lightmap-related crashes in MinGW 64-bit executables.

Npc: NPCs on guard duty in a vehicle stay in the vehicle.

Fixes isometric tile rendering.

Npc: friendly NPCs only warn about hostile monsters.

Fix bomb fragment placement with z-levels on.

Fixes safemode custom rules when creating a new character.

Melee: make sure aoe techniques don’t access an array out of bounds.

Fix aiming if target moves out of LOS.

Improve terrain bashing with experimental z-levels.

Allow turrets to shoot “over” the vehicle they are mounted on.

Vehicles: show active, fueled engines or battery in sidebar fuel indicator.

Hack around android joystick shifting bug.

Restore NPC ability to target player.

Deep bites now actually progress over time.

Fixes errors in graphical builds without sound enabled.

assure_dir_exist now creates parent directories recursively.

Skip dodge and block techniques when looking for a normal technique.

Fixed zombie necromancer was able to revive zombies pulped by a very hard hit.

Fix aiming anywhere after player has moved.

Applies radiation mitigation to all sources.

Adds minireactor to electrical power calculation.

Fixes gunmods that add non-auxiliary gun modes.

Fix NPC weapon wielding turn cost.

Fix monsters’ special attack description not translated.

Fix aiming via mouse click.

Skinning animals smaller than Great Pyrenees now possible.

Vehicles: don’t let drag stop vehicles in active cruise control.

No map extras in refugee center (for now).

Greater search range for refugee camp bandit missions.

Allows vehicles with a seed-drill to plant seeds

Fixed time cost for auto-mining.

Fix crash related to null pointer in creature tracker.

Make fire extinguishers work again.

Fix ASCII fallback for corpses.

vehicles: improve split logic.

Game: adjust vehicle driving offset based on the new speeds.

Unloading ammunition belt can be interrupted.

Fix HP not being recalculated during chargen.

Restore ability to use recipes from eink tablet.

Made Mycus Fireproofing and Mycogenesis consistent, and they will no longer prevent your clothes from burning.

Correct several uses of distance metrics.

basecamp: retrieve companions sent to do expansion crafting.

Fix wall connectedness on tiles builds with tiles disabled.

Vehicles: only sink vehicles in deep water.

Prevent NPC duplications when climbing stairs and colliding with a monster.

Prevent zone activities from working across z-levels.

Fix lighting of exterior walls by player-held light sources at night.

Move control laptop time investment to be before hacking attempt.

Respect looks_like for memorized tiles.

Disallow pseudo items in crafting component selection.

Fix calculation of chance to persuade NPCs to train.

Npc: fix NPC followers not closing doors.

Serialize recipe charges.

Fixed NPC dialog around lying and succeeding at missions.

More mall background tiles will match floor.

Stop people from randomly mutating new hair styles.

Silence error message when monster AI traverses an off-map vehicle.

Fix handling of NPC passenger removal.

Fix check for available wheels when changing tires.

Disallow washing in the dark.

Performance:

Optimized mapgen when generating homogeneous tiles (empty air or all rock).

Shadowcasting optimizations for ~10% performance speedup.

Fix memory leaks in cata_tiles.

Switch from rand() to a simple mix/hash function for random tiles, also more speedup.

JSON optimization: removed many default values.

Remove effective no-op in player::fire_gun.

Cache morale level and speed up its computation.

Update reload times.

Cache some of the pathfinding data.

Draw border enhancement.

Hugely speed up crafting GUI.

Fix the inventory UI slowdown.

Allow SDL redraws during sleep or when FORCE_REDRAW triggers.

Spam fewer popups while saving submaps.

Improve performance of damage calculation.

Defer autopickup item lookups until first use.

Cache item types for inventory; huge crafting GUI speedup.

Speed up vehicle::is_broken, use it a bit less.

Speed up some slow sections of monster code.

Optimize saved monstergroups to decrease save size.

Faster drawing of empty spaces in tiles build.

Skip drawing spaces in winconsole builds.

Performance improvement for mega vehicles with many turrets.

Faster inventory menus.

Fix weather data performance impact.

Implement deferred color loading.

Losslessly compress all tiles.

Don’t store translated material attributes.

Streamline effect processing on addition.

Speed up cache generation in z-level mode.

Fix decreased performance of software rendering.

Remove defensive redraw, add wrefresh where needed.

Cache values in season_of_year and reuse on same turn.

Remove unneeded SDL_RenderSetLogicalSize.

Use map::points_in_radius instead of manual iterating.

Reduce Submap constant memory requirements of Cosmetic strings.

Reduce memory consumption for soundpacks.

Fix lag due to copying player objects.

Encode mapbuffer terrain data using RLE scheme for smaller save files.

Faster item layer computation.

Improve performance of encumbrance calculations.

Lazily load sound effects as they are encountered instead of at application startup unless explicitly preloaded.

Faster color name lookup.

Remove recursive call from open_or_close().

Performance boost for SDL drawing using color modulated textures.

Improve sorting large numbers of items into zones.

Optimize inbounds check and reactor lookup.

Large optimizations to dynamic lighting via a fast exp approximation.

Infrastructure:

Allow multifunctions containing both iuse_actor and cpp iuse_method.

Overhauled mapgen to allow more flexible specification of map features.

Better help menu for command line invocation.

Moved mutation definitions to json.

3D map infrastructure.

Move NPC dialog to json.

Use lightmap consistently in both curses and tiles.

More flexible menu filtering system.

Moved special tool items to json.

Moved vehicle spawns to json.

Methods to transform buildings after generation, i.e. to make them looted or barricaded.

Cleanup and extension of sound system.

Unified bullet disassembly handling.

Overmap saves moved to json.

Removed a lot of redundant default json entries.

Allowed arbitrary items to have artifact properties.

Migrated worldoptions, autopickup to json.

Add separate flag for electronic systems control.

Added zombie movement unit tests.

Put the crafting gui code into it’s own module.

Add method to check if item can holster another.

Apartment Tower JSONification.

Add soundpack support.

Added example jq scripts for JSON parsing.

Wrap up (“translated weight units”) to the dedicated function.

Re-seed RNG after choosing tiles.

8-way rotation of some ascii line drawing characters for vehicles.

Automatically rotate movement in isometric mode.

Fix weighted list RNG on platforms with a different RAND_MAX value.

Add function for temperature conversion (from F to C).

Use wchar_t for all potentially-wide-character handling.

New road mapgen to replace mapgen_road*()

Jsonized monster attacks.

Factor out drawing primitive algorithms to a separate module.

Remove hardcoded moves cost when unloading from containers.

Weather Reader reworked.

Adds Prying quality, adds helper functions for quality checks.

Better NPC complaints.

Implements magazine wells.

Customizable bite attacks.

Add inheritance, strict and bounds-checking to MONSTER.

Allergy flags instead of allergy materials.

Move turret monattacks to a json actor.

Vehicle weight cached, more realistic.

Implement Lua wrapper to store and use either value or reference objects in Lua.

Create Blank Building Template.txt

Comestibles support inheritance.

Add lifting and jacking requirements to vehicle modification.

Extend ‘generic_factory’ + aliases + use the factory to manage terrain objects.

Add compiler LTO support.

Use center_print() function in appropriate places.

Use trim_and_print() instead of locally introduced function trim_to().

Display NPC needs in debug menu for AI development.

Implement string id for tool qualities.

Support inheritance for vehicle parts.

Augment and use map::water_from() to handle crafting requirements.

Move the scent map into a dedicated class.

Convert manual memory management to automatic using unique_ptr.

Make NPC class id a string_id.

Convert lab_notes and hints to use the snippet system.

Item burning code rewrite, exploding magazines.

Jsonize NPC class stat bonuses.

Spot checker for FoV scenarios.

JSONize NPC talk tags.

Wrap file reading into utility functions.

Units wrapper class for volume.

Specify vehicle part repair requirements in JSON.

Adding a call to add per-minute LUA callback.

Move mission dialogue to json.

Add inheritance support to generic factory.

Better handling of item templates.

Move crafting rig definitions to JSON.

Split engine load in to electrical and propulsion.

Fuel efficiency tests with targets.

Jsonize mutation hunger, thirst and fatigue rates.

Rewrite trap loading to use generic_factory.

Encapsulate the WINDOW pointer in class game in unique_ptr.

Add char_validity_check unit-test.

Use dedicated type for mass/weight values.

Use get_files_from_path instead of platform dependent code.

Implement and use a copy_file function.

Added ability for mutations to spawn items via JSON.

Added the ability to load mods from user_dir/mods.

Add wrapper function for finding suitable points for mapgen.

Display float options in the correct decimal format.

Ranged balance unit test.

Use a wider type for symbols.

Json formatter.

Jsonize mutation armor.

Mapgen palettes.

Changed recipes to use filament group.

Use variadic template functions instead of plain C-like variadic function arguments.

Move class map_item_stack into separate header and source files.

Load only base_colors file when it is available.

Switch OS X locale detection to CoreFoundation.

Normalize colors for alternate map keys.

Implement time_point and time_duration classes.

Extract events system to separate class.

Added morale editor to debug menu.

Add CodeTriage badge to cleverraven/cataclysm-dda.

Compress Basic menu sound effects to Ogg Vorbis.

Unhardcoded NPC destinations (using overmap locations)

Improving modding support via adding ability to load game options directly from JSON.

Add a class to encapsulate references to a specific vehicle part.

Max player stamina moved to JSON.

Added FRAGILE_MELEE flag to represent fragile melee weapons.

Unicode support for SCT.

Update vehicleDef.py to produce better vehicle templates.

Move fuel and engine parameters to JSON.

Added pull request template.

Adds the Debug Bionic Power trait.

Fix flaky explosion regression test.

Detect unexpected mutation failure in the mutation unit test.

Jsonize large swaths of NPC dialogue.

Enhance generation of forest tiles with terrain-dependent furniture and forest composition attributes.

Conversion of nutrition to calories (kcal).

Allow constructions to spawn byproduct items.

Implement proper vehicle part iterator and range.

Add script to generate Changelog from SUMMARY lines in Pull Requests.

Make input timeout context-specific.

Npctalk to JSON: Move most NPC dialog to JSON.

Properly implement time duration string alignment.

made_of_any(materials) for creature.

Add the option to create Changelogs grouped by Build to generate_changelog.py

Add support for deferral of player movement, use it to fix two bugs.

Load time duration from string (containing units).

Converts monster size to weight and volume.

Replace usage of sentinel tripoint_min with cata::optional.

Add more functions to vpart_position and vpart_reference

Better clarity in item description code.

Clean up handling of vehicle power to always use watts.

Add error reporting to many calls of SDL function.

Do not ask for retarget when opening projects in Visual Studio.

Print the Cataclysm version number in the debug log.

Fix foldstring ignoring multiple linebreaks

Make point and tripoint literal so they can be used in constexpr contexts.

POSIX backtraces now work for installed binaries and position-independent executables.

Improved CI infrastructure error handling.

Allow explicit specification of overmap special connection type.

Find or create overmap special after overmap generation.

Basecamp, faction camp: start merging faction camps into basecamps.

Better statistics in tests.

Upgrade tests to Catch2 2.5.0.

Show debug logs during tests.

Missions: autoset monster_kill_goal for KILL_TYPE and KILL_SPEC.

Missions: Move some start functions into JSON.

Add tracking of overmap special for placed terrain.

Faction camps: consolidate and clean up farm code.

Basecamp: try to regularize mission starts and mission returns.

Unhardcoded comfort, warmth and feet fire bonus values for furniture.

Reorganize NPC backstories into their own folder.

Enable JSONized placement of overmap specials at mission start.

Split sound functionality out of sdltiles.cpp into its own file.

Split comestibles.json into many files.

NPC expertise infrastructure.

Changed butchery to use JSON for drops, for all butchery actions.

Show test times in CI results.

Add tool qualities to the game for later use in scientific tools.

Replace tag_colored_string with colorize.

Run tests for CMake CI build.

Simpler test randomness seeding.

Enable functional boats phase.

Npctalk: add more conditions and dynamic line options.

Npc: remove hardcoded mutation modifiers to opinions and use JSON values

Adds not-quite implemented basic analytical tools for chemistry.

Fix city districts and increase default size.

Npctalk: add u_sell_item effect.

Npctalk: add a simple pseudo-switch for responses.

Fix NPC class loadout selection.

Npctalk: add mutation threshold flags, static and starting NPC traits, and a basecamp count.

Document units for power and energy_consumption.

Replaced hardcoded terrain list with checking of terrain flag.

Change within_visual_range function to reflect usage.

Allow more specific control over tests run in CI.

Improves structure of background stories to prepare for other types of inquiry.

Improvements to player_activity regarding distractions.

Npctalk: add true/false responses and CONDITION trials to JSON.

Allow flag-based blacklisting and whitelisting of overmap locations on a per-region basis.

Npctalk: add a bunch of new options to JSON.

Rationalize Visual Studio compatibility code.

Mutation loading now uses generic_factory.

Make route_adjacent available to all activity handlers.

Moved wind generation variables to regional_map_settings.json.

Npctalk: move NPC needs to JSON.

Npctalk: move NPC follower AI rules to JSON.

Npctalk: move almost all dialogue into JSON.

JSONnizing CBM slot feature.

Land Use Codes infrastructure.

Moves allergen handling vitamin absorption to JSON.

Refactor advanced inventory item movement to use activities.

Build:

Support for finding alternate versions of build tools.

Lots of forward declaration and #include cleanup to speed up compilation.

Addition of many unit tests.

string_id, a typesafe and efficient wrapper for string identifiers.

Makefile supports various standard environment values.

Add dmg distribution target to makefile.

Tiles support on OpenBSD.

Add an easy makefile option to compile every localization file.

Set -mmacosx-version-min to 10.7 using clang.

JSON regression check.

Throw exception on debugmsg in unit tests.

Bump minimum supported compiler versions.

Use ar from cross-compiler’s toolchain.

OS X. Support building .dmg packages for curses version.

Makefile: add USE_LIBCXX flag

Fix bundling liblua on OS X

Fix OS X launcher script.

Fix for old clang versions that don’t like empty initializers.

Disable C4146 error in MSVC

Add mod support to unit tests.

A workaround to avoid a suspected MSVC code compilation issue.

Fixed clang crash on OS X.

Attempt to recover from no git in CodeBlocks project.

Graceful migration of legacy savegames.

Handle obsolete items in mods.

Fix ARM compilation issue.

Update CATCH to v1.5.8

Support loading worlds from CLI.

Always require RFC 4627 compliant JSON.

Include numeric to fix OSX compile.

Add a switch to retain debug symbols for profiling.

Update MXE ICE workaround to blacklist anything targetting x86_64-w64-mingw32.static

Don’t keep _GLIBCXX_DEBUG when DEBUG_SYMBOLS is set.

Allow installation in a path with whitespaces.

Add a compile mode that checks for printf format errors.

Fix Makefile not respecting ‘FRAMEWORKSDIR’ exported to environment.

Bionics regression test, currently “item consuming” ones only.

Add explicit instantiation of string_id::NULL_ID to make clang happy.

Enable unit tests in Travis builds.

Enable coveralls support.

Add man pages for cataclysm and cataclysm-tiles.

Add files recommended for UNIX desktops.

Streamline the color loading from JSON in SDL and Windows console builds.

Add MXE compilation and Wine testing to .travis.yml

Fixed compile problem in VS.

Add codecov.io to .travis.yml

Allow use of Clang through MinGW.

Fixed makefile to use pkg-config instead of ncurses5-config.

Fix the OSX cross-compile.

Put ‘gold’ really in use when linking.

Add equality operator to tripoint_range.

Add gcc 7 and 8 to build matrix.

Snapcraft Build recipe added.

Fix compiler errors on clang-7.0.0-svn

Sort object files to link them in reproducible order.

Update .desktop and appdata files in data/xdg.

Add Dockerfile for building and experimenting on Debian.

SDL windows: allow HDPI displays

Makefile updates for MSYS2.

Properly work-around broken SDL 2.0.5 key events on Linux.

Debug stack trace & crash handler for Windows.

Add PR validator to ensure use of a summary line.

Android build standup.

Add unit test for NPC movement fixes.

Fixed Android build regression.

Change MSVC configs to build test executable.

Faster builds with CMake.

Vehicle power test: make it more consistent.

Visual Studio solution with vcpkg support.

Use travis build stages.

Run tests under AddressSanitizer in Travis CI.

Sort generated lua bindings source file to allow reproducible builds.

Adding astyle to deb/ubuntu packages.

Automate changelog generation.

Add macOS to travis-ci builds.

Added VS solution to build statically linked executable using vcpkg.

I18N and A11Y:

Localizable HP bars.

Implement printing aim accuracy as numbers.

Textual vehicle facing indicator.

Translatable moon phase.

Fix of untranslated (sub)category in crafting gui.

Dont’ dynamically initialize using gettext.

Make vitamin and fault and mod targets translatable.

Fixed terrain name translation.

UI improvements (for easier translation).

Allow Unicode strings as item symbols.

Add comment for translators about mutation UI.

Add Chinese main menu ASCII art.

Allow json_flags to be translated.

Display localized “Really quit?” string in main menu.

Fully handle language changes.

Install only specified translations for curses version.

Extract text field of morale_type for translation.

Fix refugee center NPCs’ unlocalized names and occupations.

I18N-ize action menu entries.

Ensure consistent string order in translation template.

Fix interference effect of radio messages in localized version.

Add Polish language.

Better docs for translators.

Add ‘translate_marker’ macro for xgettext to extract strings for translation.

Windows language detection and selection.

Load names when the language settings change.

Display l10nized tab names when creating new world.

Link against ncursesw if L10N enabled.

Make user-facing error messages translatable.

Many, Many new strings and menus are translatable.

Provide context for translating strings of monster abilities.

Allowed recoil level to be translated.

Statistics:

3271 files changed, 4621405 insertions(+), 1700313 deletions(-)

37,604 commits

~700 contributors

New game entities (core)

Items:

11 ammunition types, 84 armors, 13 bionics, 18 books, 258 foods, 18 constructibles, 21 containers,

547 crafting recipes, 208 misc items, 52 guns, 33 gunmods, 75 tools, 22 wearable tools, 6 tool mods,

303 uncraft recipes, 17 vehicle wheels

Mapgen:

52 epilogues, 46 furnitures, 496 item spawn groups, 1139 mapgen entries, 69 monster spawn lists,

64 overmap specials, 730 overmap terrains, 34 mapgen palettes, 137 terrain types,

52 vehicle blueprints, 30 vehicle spawn groups

Misc:

4 dreams, 66 effect types, 9 engine faults, 47 harvest entries, 3 martial arts, 14 materials,

104 monsters, 16 monster factions, 211 mutations, 20 professions, 13 scenarios, 262 snippets,

31 start locations, 455 talk topics, 8 martial art techniques, 153 vehicle parts, 17 vehicle wheels

New game entities (mods)

Items:

102 ammunition types, 28 armors, 3 bionics, 17 books, 60 foods, 11 constructables, 12 containers,

6 engines, 206 misc items, 118 guns, 6 gunmods, 43 magazines, 369 crafting recipes, 136 tools,

158 uncraft recipes

Mapgen

12 furnitures, 348 item spawn groups, 1911 mapgen entries, 41 monster spawn groups,

41 overmap specials, 2372 overmap terrains, 33 mapgen palettes, 11 start locations, 44 terrains,

24 vehicle blueprints, 24 vehicle spawn groups

Misc:

2 harvest entries, 2 martial arts, 119 monsters, 2 mutations, 34 professions, 24 starting scenarios,

93 snippets, 275 monster speech entries, 8 talk topics, 11 martial art techniques, 395 vehicle parts