This commit also adds this information to the startup banner on stderr,
the output of --report, and the Game Version dialog's main UI and
clipboard report.
This is intended to replace uses of config::child that may fail, since we eventually want to get rid
of that ugly "invalid config" and the dreaded "Mandatory child missing yet untested for" error.
Both config::child and config::find_child had new optional throw-if-not-found behavior added, enabled
by an instance of config::throw_when_child_not_found.
* units - set image_icon for sidebar display of Cataphract
* units - remove inactive ability description for Diversion
* add recruit/recall to event list triggering check for diversion animation (Dunefolk Falconer)
* units - north facing bowman and troll whelp
* units - north facing standing and defense frames for dunefolk skirmisher
* units - defense and (half-hearted) dagger attack anims (SE) for poacher
* units - update footpad sprite (SE-only)
* ran wmlindent
* Removed more unnecessary includes
* Used std::swap instead of boost::swap in fake_unit_ptr. This is since unit_ptr (the type of `unit_` here)
is now just a shared_ptr instead of a boost::intrusive_ptr.
* Used std::gcd instead of boost::integer::gcd
Applies (refs to :
* 4a72a9f0ef (we had !=, upstream used >, so I went with the latter)
* 4cf2d589e9 (catalog.hpp only)
* fac4caa4d0
This also fixes builds with /std:c++latest on MSVC. Seems that last commit which fixed things on
GCC9 also fixes thing on MSVC. Not entirely sure why it breaks in C++20 mode where it didn't before,
but potentially something to do with the default constructor and the new concepts stuff.
`requires` is a reserved keyword in C++20 related to the new Concepts stuff, so you can't have a function
named that. Also renamed `conflicts` to `does_conflict` for consistency with the new `does_require`.
There was once a reason to use the latter (136f42bd4f264c0e933af9fcf6860d2a0a69bdb7, where boost::get_error_info
was used and relied on the error inheriting from boost::exception, but that code is long removed) and now it's
just an unnecessary boost include.
The game keeps track of the version it last cleaned the cache, and if it's less than the current version,
it will perform a cache clean when the game_config_manager is created.