Changelog

Die letzten Änderungen an "Return to the Roots"
37e4166 s25client 25.04.2026 20:03 Flamefire Send space char for WinAPI backend

Remove an earlier workaround to avoid duplicate space chars being sent.

Fixes #1855
672ef1c s25client 25.04.2026 19:46 Flamefire Fix updater error on Windows
7a725b3 s25update 25.04.2026 19:45 Flamefire Fix removal of bz2 file

The file handle wasn't closed yet so removing it failed on Windows as it
was still "in use".
dc0a4a5 s25client 24.04.2026 22:33 Flamefire Merge pull request #1890 from Flamefire/lock-window-size
45e8bc0 s25client 22.04.2026 18:11 Flamefire Merge pull request #1913 from Flamefire/soldier-cancel
9563197 s25client 20.04.2026 12:32 Flamefire Remove `HasNoHome` and `HasNoGoal` methods

Replaced by `GetHome` & `GetGoal`
913f4ff s25client 19.04.2026 23:04 Flamefire Consolidate handling of adding/removing people from warehouse inventory

It combines handling of armor and boat carriers.
d1e895d s25client 19.04.2026 22:46 Flamefire Fix missed armor setting when providing defender out of sea attackers
e12ce7b s25client 19.04.2026 22:36 Flamefire Only stop own soldiers from leaving attacked building

The idea is to potentially use those for defense.
However e.g. harbors might contain soldiers that belong to another
building and are about to leave.

Don't consider those as this complicates the logic too much.

Currently it crashed because adding "active" soldiers is assumed to be
either the defender or a soldier on a mission from this building.
Other soldiers will get lost in the accounting of their home building.

Fixes #1912
70c42b3 s25client 19.04.2026 22:21 Flamefire Add comment on old format
60542a4 s25client 19.04.2026 21:44 Flamefire Rename `Soldier::building` to `Soldier::homeBld`
4f8e2b6 s25client 19.04.2026 21:43 Flamefire Update translations
8b37124 s25client 19.04.2026 20:49 Flamefire Sort `VideoMode` by (width,height)-tuple only
755d3c0 s25client 19.04.2026 20:33 Flamefire Make `VideoMode` sortable and return as `std::set`
ef48af7 s25client 19.04.2026 20:13 Flamefire Format defaultWindowSizes as list
afe6cb9 s25client 19.04.2026 12:59 Flamefire Add enum for SubmitDebugData
8cd4f32 s25client 19.04.2026 12:48 Flamefire Extract constants for lower buttons in dskGameInterface
1feccbb s25client 19.04.2026 12:48 Flamefire WinAPI: Ensure window is restored when resize failed
9892287 s25client 19.04.2026 12:29 Flamefire Use CHECK_SDL to check success
e212f6a languages 19.04.2026 11:16 beworld french patch 3
8910e8c languages 17.04.2026 20:06 beworld french patch2
7b5704a s25client 17.04.2026 15:39 Flamefire Merge pull request #1911 from BeWorld2018/french
ae31e5b s25client 17.04.2026 14:55 Flamefire Update translation submodule
7df68dd s25client 17.04.2026 14:48 beworld Transate Campaigns and "texte"
4a65484 languages 17.04.2026 12:58 Flamefire Replace remaining `?` by `...`
76df4ed languages 17.04.2026 12:38 beworld Update rttr-fr.po
e8a4c25 libutil 11.04.2026 14:58 Flamefire Clang-format std::span
c42a8c8 libutil 11.04.2026 14:58 Flamefire Adapt span.hpp for 25util
7708549 libutil 11.04.2026 14:55 Flamefire Add span class from Boost 1.90
58cb947 s25client 07.04.2026 21:04 Flamefire Use `helpers::sort` consistently
322c705 s25client 07.04.2026 20:59 Flamefire Add test for shuffling HQ positions
b60d26c s25client 07.04.2026 17:48 Flamefire GHA: Use CodeCov action for upload
75d9c1a s25client 07.04.2026 17:48 Flamefire Add missing LCOV_EXCL_STOP
c715cc6 s25client 07.04.2026 16:38 Flamefire Fix placing HQs randomly
bab98a4 s25client 06.04.2026 21:52 Flamefire Update GitHub Actions configs

- Pin used actions
- Add explicit permissions
- Update actions where required & possible for Node 20 deprecation
2488de2 s25client 06.04.2026 16:11 Flamefire Inline `StopLeavingFigures` function

This is so specific to the call site that it should be inline which
explains the reasoning better.
2ffddcc s25client 06.04.2026 15:54 Flamefire Fix check when stopping leaving soldiers

The check assumes only active soldiers start in "Job-state".
This state is set when a figure arrived at its goal, and immediately for
those not having a "fixed" goal, like attacking soldiers.
But it also applies to e.g. trade-donkeys.

So check for soldiers directly.
Also rename `NoDefender` to `ResetDefender` to clarify meaning and
remove the check for leaving defenders which cannot be met:
The method is called before the defender is called.
efa8195 s25client 06.04.2026 15:29 Flamefire Cancel leaving soldiers before requesting defender

Soldiers are stopped when a defender is coming out.
If no defender is found the leaving soldiers are checked.
So it is better to first stop the leaving soldiers and then choose from
all of them.

Also remove `nofAggressiveDefender::NeedForHomeDefence` which is a
wrapper to `InformTargetsAboutCancelling` only used in a single place
which is now redundant.
2d82f08 s25client 06.04.2026 15:14 Flamefire Extent test case to handle millitary buildings & HQ w/ full & empty troops

When a defender is requested then
a) Leaving agg. defenders are stopped
b) A defender is chosen from remaining troops

This might "convert" and agg. defender to a defender.
As this is kind of a sub-case of the existing one, merge them with a
data-param.
Similar the handling for warehouses and military buildings needs to be
checked, so make that another param.
8b2e540 s25client 03.04.2026 20:58 Flamefire Do not add start resources when creating HQ

This is not always desired, especially in the tests.
So add an extra method for that to allow adding only wares/people when desired.
93de1b1 s25client 03.04.2026 20:00 Flamefire Add factory functions for Good/PeopleCounts
0094197 libutil 01.04.2026 04:26 Farmer-Markus Suppress Clang22 C2y extension errors
562260c libutil 31.03.2026 18:30 Farmer-Markus Don't use specific addrinfo AI flags on android
e6ef258 s25client 29.03.2026 15:46 Flamefire Shuffle HQ positions outside function placing them
25390a0 s25client 29.03.2026 14:22 Flamefire Split out "Count" classes for goods and people

`GoodsAndPeopleCounts` is now both a `GoodCounts` and `PeopleCounts`
allowing them to be used as required.
Refactor the misnamed `AddGoods` to 3 `AddToInventory` methods to avoid
parts of the work if only people or goods are added.
Ensure visibility of write-accessors for `Inventory` is protecting
against mistakes e.g. with armored soldier counts.
6676aec s25client 29.03.2026 13:05 Flamefire Remove useless calls to `AddToInventory`

When we clear the inventory or start with an empty one there is no need
to call this.
6d7af5b s25client 28.03.2026 20:44 Flamefire Fix wrongly shown soldiers

When soldiers in the leave queue get canceled, e.g. because a fight
started so we re-add all leaving aggressive defenders, the counts of
soldiers gets off:

- Adding a soldier to leave queue will remove it from the real count
only, not the visual count: He is still in there
- When he is removed from the queue after going out the visual count is decreased
- When adding it back before he left we must not increase the visual count

Currently it checked if the soldier is in the leave queue but at that
point he isn't anymore so the check never succeeds.

Add new callback to notify when a figure has left the queue.
86ad40a s25client 27.03.2026 19:19 Flamefire Translate some comments/docstrings
bc0dd36 s25client 27.03.2026 19:19 Flamefire Don't serialize unused value of nobBaseMilitary
100a5e0 s25client 24.03.2026 19:44 Flamefire Ignore pause message in replay mode

This is especially important during skipping which expects that each
gameframe is actually executed.