| Die letzten Änderungen an "Return to the Roots" | ||||
|---|---|---|---|---|
| e4ec788 | s25client | 05.10.2026 02:59 | Flamefire |
Merge pull request #1928 from DevOpsOfChaos/sidequest/single-soldier-coin-training Add single-soldier coin training addon |
| 508762a | s25client | 05.10.2026 01:36 | Flamefire | Update languages submodule |
| 10a4059 | languages | 05.10.2026 01:11 | sirRobeN |
Polish translation correction (#60) Polish translation correction 1. Fixed constant for "A preset named '%1%' already exists. Do you want to overwrite it?", where a '%' sign was missing in the Polish translation. 2. Tweak: replaced "!" with "." to match the original English string for "Preset '%1%' was not found." |
| 59327b2 | s25client | 04.10.2026 18:19 | Flamefire |
Merge pull request #1957 from FlexApex/ai-battle-teams ai-battle: support team assignment (--teams) and establish team start-pacts |
| f18ec7e | s25client | 04.10.2026 16:32 | Flamefire | Fix clang-tidy warning |
| 694b44d | s25client | 04.10.2026 15:09 | Flamefire | Merge branch 'master' into ai-battle-teams |
| d272282 | s25client | 04.10.2026 15:03 | Flamefire |
Merge pull request #1942 from DevOpsOfChaos/sidequest/configurable-mine-resource-behavior Configurable mine resource behavior |
| 0262145 | s25client | 04.10.2026 14:59 | Flamefire | Add missing overload to get addon by ID |
| 9051f3d | s25client | 04.10.2026 14:57 | Flamefire |
Convert CLI parsing of AI battle to use value-references consistently. Move from explicit type-templates and `count` checks to a struct passing members by reference to Boost.ProgramOptions. |
| 890b737 | s25client | 04.10.2026 14:11 | Flamefire | Extent tests |
| e5d4776 | languages | 02.10.2026 22:34 | FloSoft |
Update synchronize-launchpad.yml Fix verification output |
| cf4047d | languages | 02.10.2026 16:28 | Flamefire |
Harden CI Set `pipefail` so the import causes a CI failure on error. Print the LaunchPad head as a sanity check the push worked. |
| 935bfcb | languages | 02.10.2026 15:58 | sirRobeN | Updated Polish translations (#57) |
| 9a2f330 | languages | 01.10.2026 19:45 | Flamefire |
Revert wrong fuzzy translation updates The new strings were filled with similar translations which are however different. |
| 431bb13 | s25client | 01.10.2026 19:01 | Flamefire |
Merge pull request #1929 from DevOpsOfChaos/sidequest/stranded-soldier-return-search Add stranded soldier return-search addon |
| a224e91 | s25client | 01.10.2026 18:11 | Flamefire | Format source |
| ccc545b | s25client | 01.10.2026 18:10 | Flamefire | Merge branch 'master' into sidequest/stranded-soldier-return-search |
| be68dc6 | s25client | 01.10.2026 17:52 | Flamefire | Merge pull request #1924 from DevOpsOfChaos/sidequest/frontier-distance-static-blockers |
| 9a0a240 | s25client | 01.10.2026 17:01 | Flamefire | Update translations |
| deb8d32 | s25client | 01.10.2026 16:58 | FloSoft |
Merge pull request #1990 from Return-To-The-Roots/campaign Fix invalid resource ID error in campaign selection for standard image paths |
| 5eb7005 | s25client | 01.10.2026 16:56 | FloSoft |
Merge pull request #1991 from Return-To-The-Roots/translation Import new translations |
| f94cd05 | s25client | 01.10.2026 15:35 | Flamefire |
Import new translations Closes #1988 |
| b5e089c | languages | 01.10.2026 15:32 | Flamefire | Update from sources |
| 1f913a9 | languages | 01.10.2026 14:53 | Flamefire | LaunchPad translation import |
| 7ab2361 | s25client | 01.10.2026 12:32 | Flamefire |
Merge pull request #1980 from MichalLabuda/addon-presets-selection Act on the selected addon preset, not a typed name |
| d5576d3 | s25client | 01.10.2026 11:59 | Flamefire |
Fix invalid resource ID error in campaign selection for standard image paths PR #1886 introduced support for relative image paths but the change in the desktop class broke support for placeholder paths such as `<RTTR_GAME>/GFX/PICS/INSTALL.LBM`. Revert the change breaking that. Fixes #1989 |
| 5ca1516 | s25client | 29.09.2026 22:59 | MichalLabuda |
Move addon preset layout and button logic into the base window - Keep the layout constants in the source file and let the base window compute its height from the room subclasses need - Handle enabling Save/Load and Delete in the base window: Delete and Load need a selected preset, Save needs a name - Only picking a preset fills the name; editing it drops the selection, while deselecting or rebuilding the list keeps the name - Tests answer and close a specific message box and check pointers with ensureNonNull; cover when saving is possible and that deleting from the save window keeps the name |
| 3a1fdce | s25client | 29.09.2026 17:53 | Michał Łabuda | Merge branch 'master' into addon-presets-selection |
| d9a4572 | s25client | 28.09.2026 23:55 | FloSoft |
Merge pull request #1886 from Flamefire/campaign Allow relative path for campaign images |
| d3c6c71 | s25client | 28.09.2026 23:52 | FloSoft |
Merge pull request #1972 from Flamefire/unused-cleanup Remove `SUPPRESS_UNUSED`, duplicate `isSoldierJob` and fix CMake version range issues |
| 82cd540 | s25client | 28.09.2026 23:50 | FloSoft |
Merge pull request #1976 from Return-To-The-Roots/road-refactor Return success indicator for BuildRoad and SetFlag |
| 29d3ecd | s25client | 28.09.2026 23:48 | FloSoft |
Merge pull request #1974 from Flamefire/maxDiff-fix Fix `absDiff` |
| a131e83 | s25client | 28.09.2026 23:47 | FloSoft |
Merge pull request #1984 from Flamefire/fix-bob-crash Fix out-of-bounds access to override BOBs ny-offset |
| ff0200e | s25client | 28.09.2026 23:45 | FloSoft |
Merge pull request #1986 from jarvis-jhk/fix/ai-battle-log-dir ai-battle: log to the user data folder, not ./logs |
| 516bfaf | s25client | 27.09.2026 11:37 | JARVIS |
ai-battle: log to the user data folder, not ./logs Without a log path set, LOG writes to ./logs relative to the working directory; when that folder does not exist, the first Lua error or AI log line dies with "Could not open logs/... for writing" instead of the real message. Use RTTR's logs folder and create it, as the game does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
| dc38c36 | s25client | 27.09.2026 11:37 | JARVIS |
Guard IsBuildingEnabled against a missing game interface GamePlayer::IsBuildingEnabled dereferenced world.GetGameInterface() unconditionally for human players. Without a GUI (headless runs, tests) that is null, so any disabled building (every campaign mission disables some) crashed there. Guard it like the other GetGameInterface() uses: no interface, no cheats. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
| 6e80cac | s25client | 23.09.2026 11:15 | Flamefire |
Fix out-of-bounds access to override BOBs ny-offset In `glArchivItem_Bob::mergeLinks` the ny-offset array for additional Bobs was not resized leading to an OOB access when accessing the sprites after #1968 Fix by using a single array instead. Fixes #1982 Fixes #1983 |
| 22754f4 | libsiedler2 | 23.09.2026 11:12 | Flamefire |
Merge `spriteOverlayIdx` & `spriteOverlayNyOffset` Avoids having mismatching sizes of the arrays. |
| 16a5366 | s25client | 17.09.2026 07:13 | MichalLabuda |
Create the addon presets folder at startup The preset windows no longer create it or guard against it missing. Rebuilding the preset list now keeps the entered name, so a failed save or a delete leaves it in place to be retried. A failed save logs the actual error and points the user at the log. Both windows get their action button from the base class. |
| 6990bb7 | s25client | 16.09.2026 18:52 | MichalLabuda | Restore deleting a preset from the save window |
| f8a302a | s25client | 16.09.2026 03:37 | MichalLabuda | Merge remote-tracking branch 'upstream/master' into addon-presets-selection |
| 87422ef | s25client | 09.09.2026 20:02 | MichalLabuda |
Create the addon presets folder in iwAddons Avoids constructing a preset window just to have it close itself. |
| 2f2104d | s25client | 09.09.2026 03:58 | MichalLabuda |
Store the addon in AddonGui instance Avoid indexing the addon list in parallel which is error prone |
| 55062c1 | s25client | 09.09.2026 03:25 | MichalLabuda |
Act on the selected addon preset, not a typed name Load and Delete resolved their target from the name field, so editing the name after picking a preset silently retargeted the action. Removed the Delete button from the Save preset window. Removed the edit control from the Load preset window. Load and Delete buttons stay disabled until a preset is picked. |
| 4623d2f | s25client | 08.09.2026 10:56 | Flamefire |
Merge pull request #1951 from MichalLabuda/addon-presets Add Addon presets |
| 73aafa2 | s25client | 07.09.2026 15:35 | Flamefire |
Store addon window/group in AddonGUI instance Avoid repeated getting of the window which is error prone |
| 42a3d70 | s25client | 06.09.2026 02:07 | Michał Łabuda | Merge branch 'master' into addon-presets |
| 4c52e76 | s25client | 04.09.2026 23:35 | FloSoft |
Merge pull request #1978 from Flamefire/skip-fix Fix hanging game after skipping |
| 81e0a2e | s25client | 04.09.2026 22:47 | Flamefire |
Fix hanging game after skipping When skipping the GameServer will accumulate executed time. After skipping is done the next GF will be executed when the time passed is bigger than 1 GF length. However the realtime clock would first need to catch up to the "game clock" which is significantly ahead. Use the same approach as in `GameClient`: When skipping mark the game clock such that the next unskipped GF will be run exactly 1 GF length after the last execution of the skipped GF. Fixes #1975 |
| 3111222 | s25client | 03.09.2026 16:24 | Michał Łabuda | Merge branch 'master' into addon-presets |