Indentation was fixed by adding a newline to constructs with excessive density
and running wmlindent again. While the constructs were not particularly
readable it wouldn't hurt if wmlindent would cope a bit better.
The help browser now uses the standard title definition. This makes its appearance consistent with other title elements in that theme. Before, it had the wrong color in the celes theme and was the only title in the parchment theme using the script font.
For some reason, if we store a t_string in the class and attempt to parse it later, it breaks text boxes (text will be there but not render) (see #9995). Using an std::string does not have that problem. I don't know why.
I considered a variant<typed_formula, t_string>, but since attribute_value is a variant under the hood, it seemed simpler to just use it directly. If that turns out to be a performance hit, we can deal with that later...
Closes#10001
Corrects a mistake I made way back in dcb996566e, which was that a tip is supposed to be shown if you encounter *any* of the filter units, not *all* of them.
- Side 2 will be less reckless and more defensive
- Side 3 will avoid making stupid moves, like placing units on water for easy kills
Co-authored-by: Tahsin Jahin Khalid <5283677+knyghtmare@users.noreply.github.com>
Resolves#9973. Reworks #9974, since I misunderstood how schema validators worked. They are indeed stateful and you need one instance per read call.
I also decided to do away with the global macro context because I do *not* want to have to deal with people claiming the core GUI2 macros constitute a public API (nor do we want macros from one addon affecting the themes in another in the unlikely event that multiple people make gui2 themes.)
Not a perfect fix by any means (I really don't like having to add new label definitions just to set max_width), but this is currently the canonical way to do so that doesn't involve characters_per_line.
Map/Scenario Editor: Adds a "Convert to Scenario" option to File menu. Adds enough sides based on starting positions on map.
Update help: Save As Scenario -> Convert to Scenario
- Ensure current_gui is a valid iterator after calling init(). It should match default_gui
- Ensure current_gui is always set to guis.end() if the requested theme isn't found in switch_theme().
It's initialized as such in gui_definition.cpp, but we shouldn't rely on that always being the case,
especially in a function that changes it.
- Only create one schema validator for all themes. Previously, it would have been created anew for
each addon with a custom theme.
- Add explicit exception handling for an invalid schema path or invalid gui2 entry point
- Add explicit warning for addon themes with the id "default"
- Catch `wml_exception` when creating gui_definition objects for all themes (previously, this was only
caught for add-on themes)
- Adjust error messages
- Fix duplicate theme errors when reloading cache (addresses one part of #9781). GUI2 definition
changes now take effect without the need to restart the entire game. A cache reload is sufficient.
- Use `_main.cfg` for core theme entry points
- Include macros at global core GUI2 score instead of only in the default theme (they were always
available to both themes, this just makes that clearer)
Updating the sprites for the saurian juvenile in TDG, and added a bobbing standing animation. Colorset of the Saurians respects the ColorMap of the Saurians with some exceptions in the clothing.