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.
Fix preprocessor warning:
warning preprocessor: Redefining macro LEAVE_BEHIND_L3 without explicit #undef at campaigns/Legend_of_Wesmere/scenarios/chapter4/13_News_from_the_Front.cfg:105
included from campaigns/Legend_of_Wesmere/_main.cfg:18
included from _main.cfg:38
previously defined at campaigns/Legend_of_Wesmere/scenarios/chapter3/09_Bounty_Hunters.cfg:240
included from campaigns/Legend_of_Wesmere/_main.cfg:17
included from _main.cfg:38
1. Ibanovic wants all #textdomain declrations in line 1: c10cf2b68b6
2. Several files were missing an explicit textdomain declaration.
Three of them actually have translated strings that defaulted to "wesnoth" textdomain:
- data/campaigns/World_Conquest/resources/data/training.cfg
- data/campaigns/World_Conquest/era/campaign/heroes.cfg
- data/campaigns/World_Conquest/scenarios/WC_II_scenario.cfg
wmllint tries to detect errors such as a scenario referencing the unit by id before it is introduced by via [recall], [unit] etc.
The definition of "before" wmllint wants to check is chronological: "does an event that introduces a unit happen before an event that references it?",
but the current implementation cheats by simply checking if the definition textually precedes the reference.
22_Return_to_Wesnoth contains two prestart events. The first prestart event defines an event that triggers on turn 4. The second prestart event introduces Kalenz, Delfador and Li'sar.
I could merge the prestart events and reorder the code to avoid the wmllint error, but since it does not actually make the code easier to read I chose a less disruptive option of simply adding "wmllint: recognize".
wmllint tries to detect errors such as a scenario author forgetting to introduce a unit via [recall], [unit] etc and then referencing the unit by id.
Simyr is added to your recall list if you beat 02_Blackwater_Port on HARD by killing the orc leader.
In this instance the scenario author not automatically recalling Simyr is clearly intentional.