The limit is arbitrary, and 2 gigabytes is very large. The new TODO comment
in the .cpp file gives a possible future refactor which would reduce the limit.
The old early-return for surface_buffer_.empty() moves upwards and changes to
testing for zeros before the allocation; it now also acts as a guard for
division by zero in the (height > int::max() / stride) test.
The loop around from_cairo_format() relied on stride being exactly
sizeof(uint32_t) * width, an assumption which would break if
cairo_format_stride_for_width added padding.
This scenario is not guaranteed to take place.
If the player wouldn't play it, he wouldn't lose 60% of his gold.
The enemies give up to 248 XP, but the players units mightt also
have already reached Level 3. (There's no keep, only preselected loyals)
[ci skip]
They were supposed to be unlocked by a die event,
but it never happened because [store_unit]kill=yes
removed the unit in it's last breath event.
Refactor the handling of that.
[ci skip]
In some cases, players can see the obectives already earlier
by pressing CTRL + J. E.g. when the game scrolls to a unit
for a [message]. If the objectives aren't set at that time,
then the default objectives are displayed (kill all enemy leaders).
Because the code uses boolean_equals instead of equals it's not
anymore dependent of other variables being set beforehand.
[ci skip]
closes#1149
The difficulty slider is in fact the gold setting.
bob_the_mighty suggest setting it to 75, though for new players 100 might be better.
I think the best we can get from this situation is to have it by default on 100,
but to tell players about changing the gold setting if the scenario becomes too easy for them.
[ci skip]
For side 3: additional upkeep costs are
1 / 2 / 4
Try to compensate by increasing upkeep by
0 / 0 / 1
For side 2: additional upkeep costs are
2 / 5 / 6
Try to compensate by increasing upkeep by
0 / 2 / 2
[ci skip]
The two guardians can directly be compensated by increasing income.
For the starting units, additional costs for upkeep are:
5 / 8 / 12
Try to compensate it by increasing income by
1 / 2 / 3
And apply the turn 3 bonus at game start.
(Income is first given in turn 2, so it effectively gives only +5 gold)
[ci skip]
This commit uses the UI's calculated indent for the UI's event handling, and
removes section::level. The code generating the help sections still has its own
"level", which is used to detect excessive recursion.
This fixes a UI quirk that I only noticed while working out what section::level
was for, while considering the subtopics needed for implementing a taxonomy
system. The help browser calculates indentation for its tree-view based on the
data tree given to it. However, the logic for deciding whether a mouse-click
was on the icon or the text used section::level, rather than any value
calculated in the UI classes. While section::level was often the correct
number, it was wrong for the terrain types' sections.
Because the first pot update automatically generates translations for
the English locales from the source, en@shaw and en_GB get automatically
populated with msgstrs identical to their respective msgids. As far as I
understand from the discussions around the inclusion of WoV, this is
expected behaviour for en_GB, but undesirable for en@shaw (different
language script), so I've manually blanked out the latter in this
commit.
(Allowing CI builds for this one to ensure translations can be built
before merging the PR.)
This creates an empty template catalogue so SCons will generate the
template catalogue and the translation catalogues on a subsequent
pot-update (if there isn't a pot file at all SCons won't attempt to do
anything with the textdomain at all).
[ci skip]