| Die letzten Änderungen an "Return to the Roots" | ||||
|---|---|---|---|---|
| 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 |
| 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. |
| e4146df | s25client | 15.03.2026 11:39 | Flamefire | Rename `harbor_pos` to `harborData` |
| 2204446 | s25client | 15.03.2026 11:30 | Flamefire |
Increase GameData version This should have been done in #1901 but was missed. We can detect the faulty versions as the "invalid" harbor at the front had an explicitly invalid MapPoint. Fixes #1904 |
| 55154d7 | s25client | 08.03.2026 11:14 | Flamefire | Merge pull request #1895 from Noseey/fix_ship_stuck_crash |
| 8febfd5 | s25client | 07.03.2026 14:19 | Flamefire | Avoid parameter shadowing in `GameWorldBase::GetHarborInDir` |
| 841c5e7 | s25client | 07.03.2026 13:54 | Flamefire | Merge branch 'seaAndHaborId' into ship-fix |
| af20d15 | s25client | 05.03.2026 20:13 | Flamefire | GHA: Split build and test step |
| 11cf62b | s25client | 05.03.2026 19:46 | Flamefire | Simplify RemoveShip |
| d0e9b03 | s25client | 03.03.2026 22:03 | Noseey | Update comment libs/s25main/GamePlayer.h |
| ffed8a1 | s25client | 03.03.2026 22:02 | Noseey | Reduce ship arrival checks to length |
| d6a631c | s25client | 03.03.2026 21:32 | Flamefire | Add CONFIGURE_DEPENDS to CMake globs |
| 384a534 | s25client | 02.03.2026 20:27 | Noseey | Whitespace fix |
| a11d46a | s25client | 02.03.2026 20:13 | Noseey | ships: remove redundant checks for early ship arrival |
| dae4a73 | s25client | 02.03.2026 18:05 | Noseey | rename harborPoint to coastalPoint and making it const |
| ce0296c | s25client | 02.03.2026 17:35 | Noseey | ships: add check for early arrival in FindShipPathToHarbor |
| d2a3730 | s25client | 01.03.2026 20:09 | Flamefire |
Fix failures in UI tests `BOOST_FIXTURE_TEST_CASE` resets the fixture of the test suite so we have to add that manually when required. In the double click tests a double click could be registered too early as the last left click time and position are initially zeroes. Do a fake click to initialize them to something that isn't relevant to the tests. |
| 3157a51 | s25client | 01.03.2026 19:11 | Flamefire |
Introduce strong types for sea and harbor ids Those were unsigned integers before with "0" meaning "invalid" which is hard to check/enforce at all locations. Also being integers it makes it easy to confuse arguments, especially in functions taking both id types. Introduce a templated wrapper that allows checking for validity via explicit bool conversion and named method. It can be explicitely converted to the underlying type, which is also accessible via the `value()` function. Add accompanying helpers for iteration with a range (1<=id<=size) and a vector wrapper directly accepting an ID and shifting the value. |
| 059ad80 | s25client | 28.02.2026 20:18 | Flamefire | Add reproducer for #1784 |
| 7ec8afb | s25client | 28.02.2026 20:16 | Flamefire | Merge branch 'master' into fix_ship_stuck_crash |
| 02615f1 | s25client | 28.02.2026 12:39 | Flamefire | Take noShip by reference where non-Null is required |
| 8a6c9b6 | s25client | 27.02.2026 16:57 | sunrise | Init animal ptr to nullptr to fix crash in case skinner has never used a hunted animal but only pigs |
| f5c16f1 | s25client | 21.02.2026 16:21 | Flamefire | Merge pull request #1720 from ottml/leather_addon |
| 3adeb1f | s25client | 21.02.2026 15:34 | Flamefire | Merge branch 'master' into leather_addon |
| 0495f38 | s25client | 21.02.2026 14:27 | Flamefire |
Revert "Sort possible clients of coins/armor by estimated priority" This reverts commit 53ab5d5ce4cd8456c83dcc1fd80cc65afb1f5d5e. Breaks replays due to different tie resolution |
| 74e4563 | s25client | 21.02.2026 14:27 | Flamefire |
Sort possible clients of coins/armor by estimated priority Mirror `FindClientForWare` to reduce pathfinding costs. |
| 773f137 | s25client | 21.02.2026 13:47 | Flamefire |
Unify `FindClientForCoin` with `FindClientForArmor` Reuse the code, verify the logic and add comments where required. |
| 3459a69 | s25client | 21.02.2026 12:02 | Flamefire | Merge pull request #1888 from Flamefire/duplicate-colors |
| e690e64 | s25client | 20.02.2026 09:50 | Flamefire | Merge branch 'master' into duplicate-colors |
| a5a9d43 | languages | 19.02.2026 20:15 | Flamefire | Update copyright years |
| be43799 | languages | 19.02.2026 20:13 | Flamefire | Fix Czech translation format strings |
| 2f74b46 | s25client | 19.02.2026 19:53 | sunrise | Code review: Add path optimization. See #1785 |
| af34dd6 | s25client | 19.02.2026 19:12 | sunrise | Update libs/s25main/buildings/nobMilitary.cpp |