| Die letzten Änderungen an "Return to the Roots" | ||||
|---|---|---|---|---|
| e6489dc | s25client | 08.02.2026 18:17 | Flamefire |
Merge pull request #1739 from wichern/use-random-in-aijh Make AIJH Actions Reproducible by using the user selectable Random Seed |
| 0bf8a73 | s25client | 08.02.2026 15:06 | Flamefire | Move `randomChance` implementation to `helpers` namespace |
| dcf0b09 | s25client | 08.02.2026 12:35 | Flamefire |
Refactor `MilUpgradeOptim` Clang (wrongly) detects `milBld` as (potentially) NULL. Restructure the method for less nesting and less conditions, possibly avoiding this. |
| 1d43ffc | s25client | 07.02.2026 17:50 | Flamefire | Adjust AI random calls to previous distributions |
| 487f8f6 | s25client | 07.02.2026 17:00 | Flamefire | Forward random functions to functions in `helpers` namespace |
| 5a24dac | s25client | 02.02.2026 11:35 | Flamefire | Also use references for non-NULL arguments in `GamePlayer` |
| a667662 | s25client | 02.02.2026 11:06 | Flamefire | Enhance doc for `checked_cast` and assert type requirements |
| cb2bd53 | s25client | 01.02.2026 21:41 | Flamefire | Pass `goal` by reference as it is always non-NULL |
| adb902c | s25client | 01.02.2026 21:32 | Flamefire |
Fix collection of jobs to warehouses When the "Collect" option in a warehouse for a job is set the actual job subclass will be created which expects its workplace as the goal, i.e. a `nobUsual` for most. In this situtation the goal is the warehouse to which the figure should go. So check that in `OrderJob` and create a `nofPassiveWorker` instead similar to the `Send` option handler. |
| fd1dec1 | s25client | 01.02.2026 21:04 | Flamefire | Factor out check if a GOT is a storehouse/nobBaseWarehouse |
| 23fad66 | s25client | 01.02.2026 20:30 | Flamefire |
Remove unused overload for figures with warehouse goal It is never used and can cause confusion. `nofPassiveWorker` should be used for transfers to a warehouse. |
| 06b69de | s25client | 01.02.2026 20:27 | Flamefire |
Add `isSoldierJob` function Unify uses of soldier checks in one place. |
| dc0ce04 | s25client | 01.02.2026 19:25 | Flamefire | Merge pull request #1679 from kubaau/cheats2 |
| ebadacf | s25client | 01.02.2026 18:09 | Flamefire | Mark loop variable as unused |
| fa8bf40 | s25client | 01.02.2026 17:50 | Flamefire | Merge branch 'master' into cheats2 |
| c619ede | s25client | 01.02.2026 17:49 | Flamefire | Replace `glTranslatef` by `glPush/PopMatrix` |
| dc3ccee | s25client | 01.02.2026 17:45 | Flamefire | Minor renaming and comment translation |
| cb3abb9 | s25client | 01.02.2026 17:12 | Flamefire |
Add doc for `ResourceRevealMode` Make it clear that each includes the former |
| fccf0cc | s25client | 25.01.2026 20:38 | Jan ?imek | Capture spacebar as a character only (#1873) |
| b3c0769 | s25client | 23.01.2026 18:14 | Jan ?imek | Capture spacebar under Wayland (#1855) |
| af47028 | s25client | 23.01.2026 13:22 | Flamefire |
Workaround GCC 9 issue with comparing `std::optional` in `BOOST_TEST` The comparison is ambiguous, fixed in GCC 10. |
| 4066a8b | s25client | 23.01.2026 12:41 | Flamefire |
Update translations and fix test Includes https://github.com/Return-To-The-Roots/languages/pull/41 fixing a crash where the German translation was missing a format string. Adapt the test to catch this: If we don't "translate" something in the `en_GB` file it won't show up in the `.mo` file and won't be checked. As the test checks all translated strings (see the `continue`) anyways iterate over the translation file instead, backreferencing the "gold" entries. |
| 5f65bad | s25client | 23.01.2026 11:50 | Flamefire | Make TestServer_Works on CI more reliable |
| a509fed | s25client | 23.01.2026 11:50 | Flamefire | Make TestServer_Works on CI more reliable |
| cde6f73 | languages | 23.01.2026 02:21 | Farmer_Markus | Fixed game crashing when game files failed to load (again) |
| b1ffe81 | s25client | 22.01.2026 21:48 | Flamefire | Add tests for cheat commands/texts and cheat keys |
| c5095b9 | s25client | 22.01.2026 20:25 | Flamefire |
Revert "Add classic cheat to set game speed by using ALT+1 through ALT+6" This reverts commit 357a8f115ef2a4c286db89ca6b96d2483c1a7a09. |
| d17f60f | s25client | 22.01.2026 10:04 | Flamefire | Remove named constant for parameter |
| c0a883d | s25client | 21.01.2026 18:29 | Jakub Audykowicz |
Change speed in fixed steps Co-Authored-By: Alexander Grund <Flamefire@users.noreply.github.com> |
| e338893 | s25client | 21.01.2026 16:14 | Flamefire | Remove isTent param from BuildingFactory |
| 93c5aef | s25client | 21.01.2026 15:54 | Flamefire | Disable clang-tidy false-positives |
| d88cc07 | s25client | 21.01.2026 15:23 | Flamefire | Merge pull request #1738 from kubaau/cheat_enemy_productivity |
| c793e0a | s25client | 21.01.2026 13:47 | Flamefire | Check cheat visibility only once outside the loop |
| fdb4c0b | s25client | 21.01.2026 13:39 | Flamefire | Change order of checks in test |
| 015e6c0 | s25client | 21.01.2026 13:35 | Flamefire | Factor constants out of loop |
| b87e768 | s25client | 21.01.2026 11:55 | Flamefire | Merge pull request #1804 from Farmer-Markus/android |
| 125ab78 | s25client | 21.01.2026 11:03 | Farmer_Markus | Disable mouse-click fix for touch controls |
| 14c951b | s25client | 20.01.2026 11:24 | Flamefire | Merge pull request #1867 from Shawn8901/fix-nix-shell |
| 12da8bf | s25client | 20.01.2026 11:23 | Flamefire | Use some texture for all buttons |
| 67502cb | s25client | 19.01.2026 21:39 | Shawn8901 | fix nix-shell for recent nixpkgs versions |
| 696db30 | s25client | 19.01.2026 17:08 | Flamefire | Introduce constant for max radius |
| e9947dc | s25client | 19.01.2026 13:34 | Flamefire | Add test for stuck attacker (#1863) |
| 48e7f51 | s25client | 19.01.2026 10:47 | Flamefire |
Add TODOs for Replay breaking enhancements The point can be considered invalid if it is too far and the attacker would abort on the next event handling. Defenders with now missing attackers will still come out of the building and go right back in which looks weird. |
| 4c7ed68 | s25client | 17.01.2026 20:36 | Flamefire |
Fix waiting attackers becoming stuck when target flag becomes unreachable. When the defender kills the current attacker (at the flag) `FindAttackerNearBuilding` is used to get the next one for the defender to fight. This takes the closest attacker that is ready, i.e. waiting around the flag and calls `AttackDefenderAtFlag` which usually causes the attacker to start walking to the flag. However if there is no path to the flag (anymore, e.g. after destroying a road) the attacker won't do anything and the function returns `false`. As this isn't checked the defender will keep waiting for it. This can lead to use-after-free if the attacker is destroyed (defeated in free fight, went back home, ...) as the defender will then have a dangling pointer to it. Fixes #1863 |
| 8e5821d | s25client | 17.01.2026 16:04 | Flamefire | Add simple test |
| 0e0db2b | s25client | 17.01.2026 14:10 | Flamefire |
Add Korean glyphs Contributed by @rasberryrabbit Closes #1860 |
| 6471ed4 | s25client | 17.01.2026 12:51 | Flamefire | Encode GFs directly in ID |
| 413ba23 | s25client | 16.01.2026 16:40 | Flamefire |
Add option to jump by specific number of GFs to jump window Closes #1861 |
| 705ba23 | s25client | 13.01.2026 15:21 | Flamefire | Merge pull request #1858 from Flamefire/wording |
| 5452ee9 | s25client | 13.01.2026 09:57 | Flamefire | Fix clang-tidy warning |