Splits the FPS viewer out of the display class and into its own modeless dialog. This serves as a proof-of-concept for further modeless GUI in-game dialogs. Admittedly, it only works because I explicitly disconnect it from the UI event context, since it doesn't need to receive events.
This also introduces a new tracked_drawable interface that encapsulates the fps logic. Any class that inherits from it can have its render stats displayed using the new fps_report dialog.
As pointed out by @Wedge009 / @stevecotton in #9682, this string may need to be translated differently depending on the type of unit being attacked.
Also removes the message when attacking a Thief - Rogues (which IIRC are the only thief-line unit you fight in this campaign) have a ranged attack.
* Stops table from growing beyond the max width due to padding.
* <table width='full'> causes table to grow to available width.
* Add a `padding` key to `[rich_label]` that allows setting the internal padding to a custom value.
This pull request separates TDG's magic system and its spells, making it easier to create your own sets. I also fixed a bug with spell unlocking that I reported to @Dalas121 last year.
This allows defining an [game_presets] tag which contains [game] tags describing how to show the game in the lobby and what settings the game should use.
Functionally this adds an entry per [game] into the Matchmaking section of the MP lobby:
* If a player clicks Join and there are no previously created games from this "queue" that are open, then the server instead responds telling the client to create the game. The game is created directly using the settings defined in its [game] tag, so for the player it looks like they clicked join and then go straight to the MP staging screen.
* If a player clicks Join and there is an open game created from this "queue", then the server instead responds telling the client the actual ID of the game to join and the client then joins that game just as if they had clicked Join on a normal game.
Currently only implemented for mainline.
Testing now, pango weight markup correctly works with the Lato weight variant files present and breaks with them missing. Seems the issue I documented back in 2018 is noo longer the case, and thus we don't need this workaround.
TDG S06 requires the player to both rescue Asheviere and also survive until turns run out.
With this commit, re-show objectives after rescuing Asheviere, and strikethrough the completed ones.
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.
- 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>
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)