Add test for the already existing validation where a tag shouldn't set itself as its own super.
Add test for the new cycle detection when validating a schema.
The super tag dependency forms a directed graph. Boost Graph's depth first search implementation was used with a back edge detector to find the cycles.
This is a preparation for enumerating all keys that a tag can use, including the keys from the super tags. If cycles aren't handled, it is impossible to validate mandatory keys without entering an infinite loop.
Just some debris embellishments to suggest that the towers at the
end of the bridges were hit with siege weapons. The defense stats
are still the same and there's no dialogue change to go with this.
(cherry picked from commit b9cb577bac)
No translated text yet, just template .po files.
The po files are generated assuming that PR 8433 will merge, removing
the new translatable text from the multiline_text and spinner widgets.
This adds a new missing_mandatory_wml_tag() function, which
returns a message using a common string, similar to the existing
missing_mandatory_wml_key.
To avoid new strings in 1.18, the current implementation
just calls missing_mandatory_wml_key directly.
Subhraman rewrote the scrolling code in the last few commits,
and it seems that the autoscroll check is not needed anymore.
Remove that check altogether and make it 2 argument.
The problem with the 3-argument override was that, when
code in text_box_base.cpp calls the virtual method, it will
only consider the 2-argument version, and thus skip any
3-argument wrapper.
This fixes a Clang warning, although the warning itself points
out the opposite effect - that the 3-argument version hid the
2-argument one in the subclass.
Also fix a Clang warning that scroll_text could mark a method
as an override.
Co-authored-by: Subhraman Sarkar <suvrax@gmail.com>
When reverting this revert (after 1.18 has branched), the
new .hpp file should be added to XCode and CodeBlocks.
This reverts PR #8396, PR #8407 and the "Small fixup" commit;
they bumped the minimum compiler version from GCC 7 to 8 or 11.
This reverts commit 870eeff8e6.
This reverts commit 029136b19a.
This reverts commit d74ff6f31b.
This reverts commit 8a6de95d48.
This reverts commit d14d233d79.
This reverts commit 698f5c115c.
Adjust Fighter line to allow for easier early leveling and more late game staying power. Add parry to secondary melee attacks in order to incentivise their use.
Has a few updates to S04a, S04b, S09 and S99 too.
Lore: this declares Khrakrahs (dragon seen in SoF) to be male.
He's been in many versions of Wesnoth that only had male drakes,
thus will surely already be male in any translation where the
gender has an effect on the wording.
There's a few "TODO for 1.19" comments added:
* In S12, the left behind units say "we must ride ... to save Wesnoth",
but it should be "you must ride".
* The intro of S13 is confusing, there's little indication of why you
only have one unit, or what mission he failed.
* In S16, Gweddry says "night approaches" on turn 1 (morning)
* wc: fix#6513 Bezoar artifact
The item now applies the effects directly instead of using [trait]s,
The lua code that added traits in the wc lua files didn't work, but the main reason why i preferred this solution instead of changing the lua files is that it makes it possible to simply remove the artifact via for example [remove_object] (which wouldn't work for artifacts using traits as those are separate modifications)
The code now also adds a dummy ability so that players know that this unit has the benefits of the healthy fearless and undead traits.
S16 (Hasty Alliance) uses more rocks and bridges, including
bridges over lava.
S19a (Snow Plains) gets some dirt roads without snow on, and the
edge of the map gets some ice and water.
S19b (Swamp of Dread) gets a wide variant of swamp terrains
instead of sand.
S22 gets more variety in the forests and grasslands.
Cherry-picked from the branch in PR #8243.
HttT S17 map height +5
According to several hundred test runs, Konrad's castle seems to be produced between y=59 and y=71 when the center of the chamber is set at y=65 as it currently is.
Because map_height=75 means that the playable map size is y=73 due to the border hexes at the top and bottom, this change probably guarantees that Konrad's castle is fully within the playable map.
Apparently redirecting stdout/stderr also results in std::cout/std::cerr being redirected, but not the reverse. This is not compatible with using boost's tee.
Fixes#8108Fixes#8255
Fixes the following bugs :
Stop scroll_text from growing infinitely and instead show the
scrollbars when the text dimensions exceed the default size of
the underlying multiline_text in some dialogs (such as edit_pbl,
the pbl publishing editor).
Allow horizontal_grow/vertical_grow to work correctly. Currently,
the widget stops vertically growing due to absence of
max_height=0, again in some specific dialogs.