Otherwise people will keep complaining that it doesn't reflect the
latest 1.14 version since the original number was valid for 1.14.0 and
1.14.4.
[ci skip]
(cherry-picked from commit c589e39098614b2180b4043db6b9faa71afe6c84)
So it may not be saved in ~/.xession-errors
or cluttering up disk space another way
(cherry-picked from commit c998f13a4526d89840b3bf7e36e6a4ffd57d7c80)
All mainline chance-to-hit weapon specials have ids, but it is not required for UMC specials.
(cherry-picked from commit d4213371b1cc1ae1b7575e082b7edc69f6236db0)
The current implementation of the [music] tag sets the title after adding the track, however the title field was read only. This makes the field writable.
(cherry-picked from commit 0f5899b16301a22efaeab3bdc8f97c808596429f)
and implement it using wesnoth.terrain_mask.
This also fixes an issue where [terrain_mask] would not remove
removed villages from the teams villages list after [terrain_mask].
This also adds an alignment parameter to [terrain_mask].
(cherry-picked from commit 09c56ef2fe40eaec53311918288431256aac63ff)
`[terrain_mask]` had multiple unexpected behviours, see for example #3364
in parituclar `wesnoth.wml_actions.terrain_mask { x =2, y=2, mask="Ww"}`
will change the tile at (1,2) instead of (2,2), so instead of reusing
the old terrain mask code i wrote a new function that behaves as one
would expect. `wesnoth.terrain_mask` does not have a `border=` parameter
but a `is_odd` parameter that specifies that a map is in the odd format
__ __
/00\__/20\__
\__/10\__/30\
/01\__/21\__/
\__/11\__/31\
/02\__/22\__/
\__/ \__/
instead of the even map format
__ __
__/10\__/30\
/00\__/20\__/
\__/11\__/31\
/01\__/21\__/
\__/12\__/32\
\__/ \__/
(Monospaced font required to see ascii images.)
The lua function also has a lua interfacte, meaning it does not take wml
tables but normal lua tables making it easier to use from lua code.
(cherry-picked from commit a3367ee8489608a6fff42a69fb026933571848b7)
boost::ptr_vector has some nice features, but vector<unique_ptr> is still
easier to use for most people basicially becasue people know it better.
Also boost::ptr_vector does not support move ctors and also does not
use std::unique_ptr, probably because it tries to stay compatible with
c++03 so one has to use 'ptr_vector::auto_type' with it instead which
has a different interface than std::unique_ptr
(cherry-picked from commit 7e2dc296ba2fd3900a46ab3a0bbb120e856e0ada)
for extra safety we add code to ensure undo=no for [speak] commands to the client aswell, this is not really needed as i just added a code that sets undo=yes to the server code, but it's an advantage to be able to safely connect to older servers aswell.
(cherry-picked from commit c685031d1c41d89897bbd380b50ef3e02984bcde)
previously the server would send [speak] commands that had no undo=no attributes so that the game would remove the speak command from the replay instead of the actual undoable action when undoing an action.
(cherry-picked from commit 02bed5c0335893542f5f3732ea013ab1ca705c55)
This new implementation works more reliably, avoids spawning subshells, and is faster.
(cherry-picked from commit 4282ee3fdc50223e62af2ad60b386b21b6fd690f)
code it as & to avoid a pango warning in stderr
3ec26df changed it previously to '+' to work around that warning
also change it for the untranslatable strings in the credits
[ci skip]
(cherry-picked from commit cd5b3f785e137f66f9d282c8348a6ad877e48d2f)