Removed:
* Two linux jobs - now only two combinations of the gcc/clang + scons/cmake matrix are run.
* Two macOS jobs - the Release configuration is now only run on ARM, and the Debug configuration is only run on Intel.
Also pinned vcpkg to a particular commit so it doesn't ignore the cache when new versions of dependencies come out. This does mean though that when dependencies or dependency versions change that the vcpkg commit and the cache ID will need to be manually updated. And while it's *probably* safe to have stable and master share the same vcpkg cache, this may become problematic if their dependencies and/or versions become incompatible.
With four potential allies in the campaign, there is a lot of dialogue duplication. This refactoring attempts to consolidate the text.
Additionally, the ally ID was recorded in the variable ally_name which can be confusing, so rename it to ally_id instead.
The wrong pref id ("player_enters" as opposed to "player_joins") was being checked in the player_joins function.
The latter is referenced in the MP Alerts dialog, the former nowhere.
Also kept the actual strings in one place so this doesn't happen again.
Add a useful identifier to the message
error config: Skipping duplicate unit variation ID: ''
This warning is generally shown because the variation_id is completely
missing, and so the message appeared as above, without any hint of which
unit was causing the problem.
In contrast to 19a5ce83's warning, this one is printed multiple times to
stdout even if the messages are identical; therefore backporting this to
1.16 seems reasonable.
In 1.16 with Ageless Era 4.28.0, the message `[race] '' is missing a
plural_name` is printed to the chat area. The message is not useful even to
add-on developers, because it only identifies which race is affected by
`[race]name`, and in the affected races the `name` attribute is also missing.
An unfortunate side-effect of making the warnings more useful is that more of
them are shown in-game - these messages go through the logging mechanism that
discards duplicate messages. Making them useful also makes them unique.
Also log if a race lacks either a male or female singular name. This warning
will not trigger if the race has a non-empty `name`, as both gender-specific
options are documented to fall back to `name`.
Remove the warning about races that have a `name` but no `id`. Prior to 1.3.8,
[race]name= was the identifier, and there wasn't a [race]id= attribute. The
compatibility code for that change was removed in 1.7.6 (commit 160000a40), so
it seems unnecessary to keep the logging for missing ids.
After closer examination, there was acttually a method to the madness here. Since the "process" functions
may be called more frequently than the "update" functions, we don't want to update the pointer vector and
visibility mask every time the process functions are called. This restores the old order of doing things,
but centralized in lobby_info for clarity.