Depsite being a [modification] this is actuall implemented
in the C++ code the [modification] just sets a flag.
This is meant as an alterntive to the preset advancement
type of mod, i want to play around with it a bit in 1.15
maybe we will remove it later.
The problbme this is supposed to fix is that advancemnts
are done randomly during the enemeies turn. It has a few
advantages over the preset advancemnt approach:
1) It can easily handle amlas and normal advancement
2) It doesn't need special code to handle the case that
A unit advances multiple times.
3) It doesn't break in case that other wml code changed
The advancements of a unit after the preselected advancement was chosen
4) The user never needs to think about an advancement of
a unit that might not even advance
It also has a disadvantage: it changes the rules of the
game quite a bit, in partiucar if the units heals form
an adcancement (which us usally the case), since now
with this 'healing the unit on advancement by retaliation'
during the enemies turn can no longer happen. I still
think its wirth to think about this and test it though.
Despite having exception handing in process(), the loading screen is only designed to handle one exception from the worker.
If such an exception propagates to the worker, the loading screen would rethrow it in process(). It turns out we don't need
an exception_ptr, since the exception would already be stored in the future returned from std::async. Fetching it with get()
causes it to be rethrown at that point, same as before.
Do note we do not want to simply call get() and wait, since that essentially calls future::wait() instead of future::wait_for()
and would halt the main thread while it waits for the worker. Hence, we still manually check its status before fetching the
exception (if any). As a bonus, it means we can use future::valid() as a check for whether the worker is still running in the
dtor, since calling get() sets future::valid() to false. Any premature exit of the loading screen after the worker thread is
created or its exception is handled in the finally process() loop will trigger the safe_exit call.
* terrain graphics - fix sconce/candle overlay on south-facing corners
* terrain graphics - some fixes and minor additions to stone walls, mostly Xot^Edb
* new terrain - add 'Xof', overgrown walls
* terrain graphics for Xof^Efm - flowers on walls
* terrain graphics - fix broken molding in standard stone wall
* terrain graphics - fix molding on catacombs
Several new animals were added in PR #5039's
cbad6f42492be5fcbf8c29a3d10cbc43598ba32c.
The micro-ai demo can be accessed by starting Wesnoth with the command-line
arguments `--test animals`. The scenario uses some stand-ins for animals that
weren't in mainline; the new bears and tuskers fit straight in. For the sheep,
the icemonax's graphics are a bit more sheep-shaped than the troll whelp's.
This demo doesn't need to be balanced, the changed unit stats are no problem.
UtBS's dustboks aren't in core, otherwise I'd use them as the deer stand-in.
* Fixes#4223, by making the --validate and --validate-* options imply --nocache.
* Fixes#4224, showing an error if you misspell the id argument to
--validate-addon. The application doesn't (but should) quit automatically to
avoid the user spending time on a non-functional validation run, however it
does at least disable all add-ons, which should have the same end result.
* Shows a warning that --validate-addon needs the user to play the add-on, it
doesn't automatically check the add-on. This was my misunderstanding when
logging issue #4225, which has now been repurposed into a feature request for
a new tool that does what I thought --validate-addon did.
This whole textdomain is dedicated to localized strings revolving around the
game's AI engine and the AI demos/test scenarios, with around 370 strings in
it.
Other than a few strings near the start of the catalogue template, none of these
have any value for regular players since they are sourced from AI demos and
test scenarios in data/ai/micro_ais/ and data/ai/scenarios/. None of them will
be displayed to people who aren't tinkering with WML or contributing to AI
development as part of the Wesnoth dev team, and some of the language used in
them is very technical in nature.
This commit leaves the "#textdomain wesnoth-ai" lines in the AI demos, but
drops the .po and .pot catalogues for wesnoth-ai. The few strings that are
seen by regular players move to the wesnoth-lib textdomain.
this gives errors when attempting to load the "ai state" for that side.
In particular when its currently another ai sides turn so that another
"ai state" is already loaded.
The remaining uses of it are either:
* In server_base.cpp and wesnothd/server.cpp - this is during login, when there should be nothing else being sent to client anyway until the login is successful.
* In send_receive_wml_helpers.ipp - an error is sent back to a client if a read from the client failed with an simple_wml error.
I thought it would be nice to have at least one piece of example code that does this.
It also serves as a test to ensure that this technique actually works.
This covers everything:
- SotA zombie dialog (was mostly converted already, just needed module name update)
- The remaining minor World Conquest dialogs that had yet to be converted
- Tutorial character select
- Test scenario sample dialog
This also replaces any uses of "callback" in favour of "on_xxx".
This also removes backwards-compatibility.lua altogether.
It's no longer correct in the general case to add backwards compatibility code to this file, so removing it entirely avoids situations where compatibility code is incorrectly added there.
In the C++, this removes the commented-out old GUI2 API entries, and
adds show_dialog to the gui module directly instead of moving it in core.lua
This command and the documentation provided by ":help droid" were updated
in efd808ea842ff88174cc2e953c8b871b8c41dae0, but we missed that this command
is also documented in the help browser's (Commands, General Commands) page.
The docs here are more verbose than in ":help", so the text is newly written
instead of being copied from the existing location.