Instead of creating lots of image::locators and calling a family of
similarly-named preferences functions, this refactor encapsulates that logic
and uses an enum.
The new orb_status files still need adding to the MacOS build.
An assert has been added to `unit_drawer`'s constructor. There are two callers
- the `display` class guards it with an explicit check before constructing
unit_drawer. The `game_display` class doesn't have an explicit check, but it's
clear that other code in that class assumes the teams are already valid (and
would crash if they weren't).
Empty version string had been interpreted as the 'zeroth' version instead of the latest, so an additional check was implemented. Also, the 'upper_bound' pointed at the next element after the latest, so it had to be shifted back by one.
Fixed the server crash when data is not specified because the assignation of an invalid value to a config causes an exception. Also, added the missing removelist/addlist tags to update pack file writing and simplified some code.
Added the basic machinery of update packs creation and their lifespan management. Also, fixed the naming of private variables and made invalid_ config actually invalid.
Note: the thing is not finished yet!
Redid campaignd's storage architecture so add-on metadata is stored separate from the server configuration (and not duplicated in the individual full packs).
The update packs has not been implemented yet.
Tested on my pet server.
Currently a push to a branch on the main repository that also has a PR open results in two separate travis builds being run - one for the branch and one for the PR.
This is part-way though a refactor, but I'm not committing myself to completing
it; publishing for the comments and discussion.
This solves PR #5198's compile errors about undefined references, but the
solution here is to expand the templates into the multiple hardcoded copies
block starting with `switch(events_.sdl_button_down_event)`.
This chooses a method that minimizes the need to alter the way log messages are written.
Only a few places that did unusual things with the logger needed to be updated.