Changelog

Die letzten Änderungen an "Return to the Roots"
a8d5744 s25client 16.04.2022 09:12 Flamefire Merge pull request #1511 from Shawn8901/nixos

Fix nix shell environment
b12db9c s25client 11.04.2022 19:18 Shawn8901 Nix shell: Set SOURCE_DATE_EPOCH to newest file

RTTR does use epoch on a sanity unit test and when calculating RTTR_BUILD_DATE and RTTR_VERSION on non-release builds.
Nix does set SOURCE_DATE_EPOCH to the static value 315532800 by default (1980-01-01).
That epoch does not pass the sanity unit test.

By using the updateSourceDateEpoch the SOURCE_DATE_EPOCH is updated to the newest file in the folder.
See https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh for implementation details
0b5f8eb s25client 09.04.2022 18:18 Shawn8901 Nix shell: Workaround for an incomplete SDL2 package

nixpkgs does ship a incomplete package of SDL2 since Nov 2019, which does not contain `libSDL2Main.a`.
7f41369 s25client 09.04.2022 18:12 Shawn8901 Nix shell: Update to mkShell and add libsamplerate
b07b716 s25client 30.03.2022 19:38 Shawn8901 Adds a cmake option to control if a placeholder is written on install

This option enables the possibility for a package maintainer to set RTTR_GAMEDIR to a directory outside the package itself and do no write operation.
That is us useful for systems where the packaging system prevents write operations outside of the package structure on package build time. A system where this is the case is NixOS.

As the use case is special for some packaging systems and not intended for daily use it is marked as an advanced option.
8f16126 s25client 27.02.2022 19:47 Flamefire Make map size selectable in X and Y
e4fde61 s25client 27.02.2022 18:49 Flamefire Rename control ID enums of mapGenerator window

Make clear those are IDs of controls and factor in the type of the control
8081e17 s25client 26.02.2022 15:43 Flamefire Use fixture for GameClient tests

Create the temporary folder and adjust/reset the RTTRCONFIG in a fixture to avoid it leaking into other tests
a0334e6 s25client 26.02.2022 12:27 Flamefire Fix usage of maxEnumValue in MapSettings.h

This must only be used when no custom values are used in the enumerators
1388e2a s25client 26.02.2022 12:20 Flamefire Improve random map generator config window

- Reduce max map size to 384 (> 256 already causes lags, so 1024 is way to much)
- Don't close on right-click, only via apply/close buttons
397f2b2 s25client 18.02.2022 16:01 Flamefire Merge pull request #1499 from Flamefire/windowCloseBehavior

Use a 3-state enum for the window close behavior
cee5dd5 s25client 16.02.2022 16:09 Flamefire Use a 3-state enum for the window close behavior

Additionally to regular close behavior (close on right click, ESC, ...) and full custom behavior we need a mode that only ignores right click, e.g. for the observation window.
Hence introduce an enum instead of the bool which additionally makes the window constructors much more readable.
0dd0dfa turtle 16.02.2022 16:04 Flamefire Merge pull request #110 from Flamefire/remove_pp_iterate

Replace Boost PP_Iterate by C++11 variadic templates
90d9ac8 turtle 10.02.2022 17:45 Flamefire Merge pull request #112 from Flamefire/improve_tests

Improve tests
68700d4 turtle 10.02.2022 11:42 Flamefire Document mechanism used in the functor constructor
9e2223d turtle 10.02.2022 11:37 Flamefire Remove BOOST_THREAD_USES_MOVE define from tests

No longer needed as we require C++11/14 already and hence rvalue references can be used by Boost.Thread
3d90130 s25client 09.02.2022 16:48 FloSoft Merge pull request #1497 from Return-To-The-Roots/clang-13-compat

Add support for Clang 13 and fix ordering of tools by AI
3420c8e s25client 09.02.2022 16:47 FloSoft Merge pull request #1496 from Flamefire/fix_lua_map_loading

Fix transmission handling of maps with LUA scripts
1a81536 turtle 09.02.2022 15:33 Flamefire Improve tests

- Check callability of function.expect.with(...)
- Check serialization of MOCK_CONSTRAINT
- Actually test some variations of MOCK_CONSTRAINT usages
- Add more test for unique_ptr (move-only class)
- Remove redundant stuff from test_log and change a few values to catch mistakes
- Add test for *-matcher serialization
23ac665 turtle 09.02.2022 15:23 Flamefire Add some more cases for the serialization test of expectations

Make sure the various constraint names/values are kept (they are stored type-erased!)
e2687de turtle 09.02.2022 14:59 Flamefire Add missing test cases for the invocation class

- error case where between was called with a min>max
- Corner case for `between(x, x)`
- Human readable output via stream operator of the base class
5bc1f78 s25client 09.02.2022 14:55 Flamefire Update GoogleBenchmark to 1.6.1

Version up to 1.5.5 cause an unused variable warning on clang-13, so use that to update to latest release
f19caf4 turtle 09.02.2022 14:33 Flamefire Fixup coverage of type_name.hpp to 100%

Reassign the demangled name to avoid the (always untaken) branch and reduce code duplication
0fce204 s25client 09.02.2022 14:19 Flamefire Fix AI ordering tools

The AI may ignore tool requirements caused by multiple worker types using the same tool as the tool requirement was checked against the total available number of tools not the number of tools available after taking into account workers checked earlier.
d7767ab s25client 09.02.2022 14:17 Flamefire Add missing defaulted copy-assignment to Point class

Otherwise this is disabled due to the custom copy ctor
be05d43 s25client 09.02.2022 11:44 Flamefire Add CI test with clang-13
fdeccc1 s25client 09.02.2022 11:36 Flamefire Fix transmission handling of maps with LUA scripts

The message handler wrongly only counted the map size as received not also the (just received) lua size and hence did never finish.
Also add buffer overflow protection to the map-receive code and test both issues.

Fixes #1494
50ea998 turtle 08.02.2022 19:07 Flamefire Move the boost-root to a sibling folder

This keeps the correct paths of our files in the coverage data.
c8c6af2 turtle 08.02.2022 18:27 Flamefire Don't return *this in expectation::with

Chaining is done via the wrapper class not the expectation class
3845d57 turtle 07.02.2022 19:56 Flamefire Use BOOST_PP_VARIADIC_SIZE instead of custom implementation
bb77c17 turtle 07.02.2022 19:26 Flamefire Add support for unlimited number of sequences in one call

This removes the need for those preprocessor macros and the MOCK_MAX_SEQUENCES define.
f186dfb turtle 07.02.2022 18:48 Flamefire Fix root path of coverage upload

The repo files were moved to a subfolder which confuses the coverage UI
c34e422 turtle 07.02.2022 16:31 Flamefire Remove benchmarks using MOCK_MAX_ARGS

No longer required.
f3dc82f turtle 07.02.2022 16:23 Flamefire Rename move_helper.hpp to ref_arg.hpp and use template alias

Shortens the call sites a lot: `typename ref_arg<Ts>::type` -> `ref_arg_t<Ts>`
MSVC 2017 seems to have issues with std::conditional_t so use the C++11
variant here.
baaaa15 turtle 05.02.2022 20:22 Flamefire Workaround compiler issues (constant conditions, compiler bugs...)

MSVC has issues with a tuple of references of incomplete classes and `virtual ~value() = default;`
Some compilers warn for constant expressions in the for-loop-condition
3973158 s25client 04.02.2022 22:31 FloSoft Merge pull request #1493 from Flamefire/fix_connect_crash

Fix connection issues
aa6bcd9 s25client 04.02.2022 19:56 Flamefire Fix flaky test HasCorrectDrawCoords

The offset could lead to wrapping of the coords making the next test fail.
Reduce the bounds so this cannot happen
9b04fa0 s25client 04.02.2022 18:59 Flamefire Use yellow color for the connect status
bc9c1d6 s25client 04.02.2022 18:40 Flamefire Factor out, fix and test isServerVersionValid

We assumed a version of `v<date>`, e.g. v20220130 which doesn't hold true for tags, hence extraction of the server revision failed.
Now compare the full version first, which should usually work, and only in the fallback try to extract the revision and check that.
2f92334 liblobby 04.02.2022 18:40 Flamefire Return strings by references where possible

Avoids unnecessary copies.
af44cab s25client 04.02.2022 17:34 Flamefire Fix wrong control ID in iwDirectIPConnect

The password edit control wrongly used the ID of the IP edit.
Also add a test to detect this.
17c30bf s25client 04.02.2022 17:32 Flamefire Unfocus all other edits of the parent window when setting the focus for one

This unifies the boiler plate code in e.g.iwDirectIPConnect
83c6f81 s25client 02.02.2022 07:43 FloSoft Merge pull request #1478 from Flamefire/locked_addons

Add locked icon to show locked addons
82b072a s25client 01.02.2022 06:49 FloSoft Merge pull request #1491 from Flamefire/connectImprovements

Connect improvements: Show progress of map transfer and fix leaking network messages
7668abc s25client 01.02.2022 06:40 FloSoft Merge pull request #1487 from Flamefire/playlist_repeats

Fix meaning of playlist repeats and make playlists infinite
2e2d6f1 s25client 31.01.2022 20:02 Flamefire Add test for iwConnecting
fca30e7 turtle 31.01.2022 19:27 Flamefire Replace Boost PP_Iterate by C++11 variadic templates

This allows support for any number of arguments and makes setting MOCK_MAX_ARGS unnecessary.
It also allows for easier debugging due to being able to step into actual code instead of preprocessor generated stuff
3d61c1b s25client 30.01.2022 21:37 Flamefire Use subfolder of binary dir for test map download

Avoids issues with unavailable temporary folder
16c51cf libutil 30.01.2022 21:37 Flamefire Add TmpFolder for a temporary/auto-removed folder
b5b50b2 s25client 30.01.2022 18:05 Flamefire Generalize closeOnRightClick to userClosable

The only reason to disallow the close on right click is to have a dedicated button to press, e.g. to force a choice of "Save" or "Discard".
So enforce this even for non-modal windows and add tests for that.