| Die letzten Änderungen an "Return to the Roots" | ||||
|---|---|---|---|---|
| 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 |
| 8dc1386 | s25client | 01.09.2026 22:29 | Flamefire |
Rename points in World::BuildRoad The mix of `curPoint` and `end` is confusing. Make them clear. |
| f4370d8 | s25client | 01.09.2026 21:20 | Flamefire |
Return success indicator for BuildRoad and SetFlag Useful for tests. BuildRoad returns the end point calculated from the route. |
| 320f32b | s25client | 01.09.2026 02:51 | Michał Łabuda | Merge branch 'master' into addon-presets |
| 1813dfc | s25client | 31.08.2026 23:33 | FloSoft |
Merge pull request #1973 from Return-To-The-Roots/clamp-fix Fix ambiguous clamp and switch to `std::chrono::milliseconds` |
| 44d7899 | s25client | 31.08.2026 13:32 | Flamefire | Fix spelling of Length |
| d8440ca | s25client | 31.08.2026 11:06 | Flamefire |
Fix `absDiff` Assert that it is indeed called with unsigned values. Fix the violation. |
| 163ec7a | s25client | 28.08.2026 12:02 | Flamefire | Add `assertNonNull` |
| 2907dc1 | s25client | 28.08.2026 11:29 | Flamefire | Factor out type-agnostic helper for GameEvent time interpolation |
| 6277878 | s25client | 27.08.2026 14:40 | Flamefire |
Disable clang-format for a line it keeps changing For some reason it sometimes adds a space before `&` |
| c771302 | s25client | 27.08.2026 12:50 | Flamefire | Use `std::chrono::milliseconds` consistently. |
| fcab253 | s25client | 27.08.2026 12:25 | Flamefire | Use `std::chrono::milliseconds` for game speed |
| de53cb1 | s25client | 26.08.2026 23:01 | Flamefire |
Merge pull request #1969 from ottml/fix_trading_overflow Fix underflow when trading |
| fac0308 | s25client | 26.08.2026 22:08 | Flamefire | Move `initGameRNG` to fixture |
| 332b143 | s25client | 26.08.2026 15:15 | sunrise | Code review |