gna.org/bugs/?23297
If we are waiting for a synced user choice during a prestart events we
now show a gui2 dialog that informs the player about why the client is
waiting and also offers the player the option to quit the game.
The game now shows a notification when waiting for a remove user choice
(like for example a unit advancement choice) for longer than 2 seconds.
This does not work during prestart events yet.
previously there was one function which sometimes returned a wml table
and sometimes a map integer to wml tables dependent on its parameters.
Now there are 2 different functions: wesnoth.synchronize_choice and
wesnoth.synchronize_choices. the first one handles the case where you just
want to get a choice from one side and thus it returns just one wml
table. The second function handles the case where you want to get
choices from multiple sides. that function retruns a table of wml
tables.
I also added an optional string parameter to that function specifying
the type of that choice (this is useful to make replays more robust and
readable)
Also accessible in:
- Weapon specials ([filter_self], [filter_opponent], [filter_attacker], [filter_defender])
- Abilities ([affect_adjacent][filter])
The backstab weapon special is now implemented using this.
(In a weapon special filter, units are guaranteed to be facing each other.)
- If timeout is missing, it disables timeout and skips any tests that expect it
- Pass -t0 to get the above behaviour even if timeout is present
- Detect if timeout doesn't support --kill-after
- Mac users: Pass -pxcode to automatically find the Wesnoth binary in XCode's DerivedProducts folder
- In non-verbose mode, give progress report by printing a dot before each test
This only happens in non-verbose mode because this method of reporting progress makes most sense
if nothing else is printed.
- It's now an error to set an invalid variable
- If an invalid key or tag is somehow set, it won't be written to the file (with an error message in the log)
- There's an API function config::valid_id() which can be used to catch issues earlier.
Used 'r' instead of 'm' if the code refers to ranged attacks (instead of melee); also, ensure that the regexps check the modified versions of the line.