Engine.GetTextWidth has been deprecated since e845da025a
Idea:
If you look at a dropdown as just a text field (its header) that can
change caption like any other, then getPreferredHeaderTextSize is the
equivalent to getPreferredTextSize (present on buttons and text fields).
Fixes#8493
(cherry picked from commit 670f1e5d42)
Signed-off-by: phosit <phosit@autistici.org>
Add a civ restriction to make the bonus only apply to Carthage.
(cherry picked from commit 8d38ecda26)
(cherry picked from commit a03b01c935)
(cherry picked from commit f30271e955)
(cherry picked from commit 9c836d39e6)
(cherry picked from commit 91baeeb94e)
(cherry picked from commit cb3fecfce9)
Signed-off-by: phosit <phosit@autistici.org>
Commit b90280855f added support for
multiplayer saved games changing the signature of StartNetworkHost
without updating all callers.
Fixes: #7684
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 31a262ff7e)
Signed-off-by: phosit <phosit@autistici.org>
'StatusName', 'ApplierTooltip' and 'ReceiverTooltip' are attributes of status
effects, which are defined in JSON files (and already extracted
correctly from there), not XMLs.
(cherry picked from commit 44984699f1)
Signed-off-by: phosit <phosit@autistici.org>
Add context and comment attributes to all translated XML elements in the
simulation that can specify any string -- unlike "Rank", which has to be
"Basic", "Advanced", or "Elite".
Most of them aren't used right now, but they can be in the
future and by mods, without touching the schemas again.
Fixes#8540
(cherry picked from commit 7032293207)
Signed-off-by: phosit <phosit@autistici.org>
Currently we always choose the best device. But it's not always
desirable. A more safe approach is to use the default device (with
index 0). The only downside of that is if a user didn't adjust
settings then the game might run on an integrated GPU instead of a
discrete one. In the future it'll be solved by selecting GPU in
options: #8529Fixes#8455
(cherry picked from commit 485200342d)
Signed-off-by: phosit <phosit@autistici.org>
While "Brogiacos" and "Tegesacos" fit in terms of meaning, they are only
reconstructed words, "Ambactos" on the other hand is attested and
actually historically relevant.
(cherry picked from commit 19f6dd031d)
Signed-off-by: phosit <phosit@autistici.org>
This fixes 7df7566d7c, which added
automatic switching off silhouettes in cinema mode while resetting the
value when leaving cinema mode. Reloading can only be done for a given
config namespace.
Fixes: #7552
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 32edc28cda)
Signed-off-by: phosit <phosit@autistici.org>
Now it's possible to destroy the old swapchain before creating a new
one. It might make the swapchain creation a bit slower but with a
lower memory peak.
(cherry picked from commit c4bc6c9627)
Signed-off-by: phosit <phosit@autistici.org>
Importantly, the word "Germans" is removed since it is prone to being
translated incorrectly and the other civ bonus descriptions don't
contain the civ's name either.
(cherry picked from commit 5d4eab73f9)
Signed-off-by: phosit <phosit@autistici.org>
The names are in Proto-Germanic and mostly taken from Wiktionary.
They can be confirmed by directly searching the individual
Proto-Germanic terms online.
Champion Cavalry: "Aþalaridjô" (noble+rider)
Cavalry Spearman: "Gaizaridjô" (spear+rider)
Cavalry Javelineer: "Skeutaridjô" (quick+rider)
Worker: "Būraz" (dweller, farmer) -- deliberately decided against the most literal translation,
which would be "Arbijaz", because that seems to be more connected to serfdom and the unit
rather represents a generic commoner.
Infantry Swordsman: "Swerdamannaz" (sword+man)
Infantry Spearman: "Gaizamannaz" (spear+man)
Infantry Clubman: "Kulbawigô" (staff/club+warrior)
Infantry Javelineer: "Gaizawerpanaz" (spear/javelin+thrower)
Infantry Slinger: "Slingwanaz" (swinger/slinger)
Scout Ship: "Skeutabaitaz" (quick+boat)
Fishing Boat: "Fiskārijaz" (fisherman)
Fire Ship: "Brandabaitaz" (fire+boat)
Arrow Ship: "Harjaskipą" (army/war+ship)
Wagon: "Wagnaz" (direct translation)
Priest: "Gudjô" (direct translation)
Ram: "Rammabagmaz" (strong+tree/beam)
Trader: "Kaupô" (direct translation, also part of the word used for the market)
Merchant(ship): "Mangārī" (direct translation, very similar to "Kaupô")
(cherry picked from commit f38bc89611)
Signed-off-by: phosit <phosit@autistici.org>
The SpecificName tag is meant to contain the name in the civ's native
language, Proto-Germanic for the Germans.
"Kriegsschiff", "Übungsbereich" and "Stadttor" on the other hand are
modern German words.
(cherry picked from commit a71688fc2c)
Signed-off-by: phosit <phosit@autistici.org>
SpecificNames are meant to contain the names in the civ's native
language. The English names are supposed to in be the GenericName tag.
(cherry picked from commit 4d9fc0bb53)
Signed-off-by: phosit <phosit@autistici.org>
While not as efficient this order is easier to reason and let's player
pause.
(cherry picked from commit 75805f4b23)
Signed-off-by: phosit <phosit@autistici.org>
It's easier to understand and to translate in a language where a
formulation with "Respectively" is not common.
(cherry picked from commit e195c52e30)
Signed-off-by: phosit <phosit@autistici.org>
It's not really hunting when nobody flees.
"Slaughter" is used later when talking about the same action.
(cherry picked from commit 727be2fb45)
Signed-off-by: phosit <phosit@autistici.org>
It's not possible to format warnings. "a hotkey" is used instead.
Also when the hoplite icon is pressed, without using batches, the
warning doesn't restate that the hopplite should be pressed.
(cherry picked from commit 29ac569511)
Signed-off-by: phosit <phosit@autistici.org>
On "Survival of the Fittest" the treasure-collector are made
invulnerable.
Thous Civilian might not exist when the player is removed.
Fixes: #8421
(cherry picked from commit e0481b283b)
Signed-off-by: phosit <phosit@autistici.org>
When a patch version is released, it must declare compatibility with the
previous patch versions of the same main release. This allows players to
keep replaying their games and to keep playing online with users of
other patches of the same main release.
This should have anticipated for dae7a8c394
(cherry picked from commit 866d6f0527)
Signed-off-by: phosit <phosit@autistici.org>
If the region analysis at the start of the game fails, the bot can't
actually play and the managers aren't initialised. And to prevent errors
from the update functions, the OnUpdate at the root had an early return
if the entity count was 0. However, in some edge cases the region
analysis can fail even if the AI has entities.
This patch fixes this potential error by storing the result of the
region analysis directly and checking that instead.
(cherry picked from commit 7b1d4426aa)
Signed-off-by: phosit <phosit@autistici.org>
Kushite expert cavalry spearman uses advanced cavalry spearman rider mo
del when gathering meat.
This commit changes so its expert counterpart is used instead of advanc
ed and art looks consistent.
Fixes#7649
The great hall of the Germans used the icon of the syssition, which contains
the Spartan civ emblem, which in turn contains a red Greek uppercase
lambda (Λ) for "Lacedaemon". This is obviously incorrect to use for the Germans.
So this patch instead creates a new, generic hall icon for the great
hall out of the syssition icon by just removing the lambda from it. That
way they remain similar and players can recognise them both as
halls and champion-training structures.
Removing all entities when loading a game isn't implemented. So the
setting should not be selectable: #8413.
It seems this was tried in b36782388b. But it removed the ai-item
instead of the removed-player-item. That lead to an additional error:
#8425.
Fixes: #8413Fixes: #8425
The `isSavedGame` attribute has been introduced in ea12766834. The
variable has been turned in a member variable in 3a6540110b this
occurrence was missed when rebasing.
Fixes: #8417
Entities with a production queue when queueing or unqueueing items for
will set an appropriate animation which is desired for structures, like
the forge producing smoke, but not so for units as it interferes with
UnitAi animation state.
Units don't have animations for training or researching so the idle
animation will be set in that case instead. If such a unit is in motion
this results in the unit gliding. To avoid this just skip setting an
animation for entities having a UnitAI.
Reported-by: wowgetoffyourcellphone
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
In case a healer is currently healing and is part of a selection ordered
to attack the healer gets moved along but the fsm state isn't changed
which leads to healer healing while gliding to the target.
Introduce a WalkToTargetRange function which does transition state in
addition by issuing an order instead.
Fixes: #6134
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>