Oliver Hamlet
3ec623dc59
Remove obsolete comparison operator tests
2025-06-11 22:13:53 +01:00
Oliver Hamlet
4e088e4dce
Replace C++ comparison operators with <=>
2025-06-11 22:13:53 +01:00
Oliver Hamlet
4ffd62572d
Use C++20 in the C++ wrapper
...
This commit mostly just fixes compilation errors when compiling in C++20 mode, though the change to std::filesystem::path::u8string()'s return type means it's not backwards-compatible with C++17.
2025-06-11 22:13:46 +01:00
Oliver Hamlet
db9f51a2b2
Update changelog and version for 0.27.0
2025-06-08 20:59:14 +01:00
Oliver Hamlet
5e52b30815
Fix indentation in C++ test file
2025-06-08 20:26:08 +01:00
Oliver Hamlet
649b4748bd
Remove ConditionalMetadata
...
While it makes sense, it doesn't really add any value and there is value in having all the relevant data and methods in a single class.
2025-06-08 20:26:07 +01:00
Oliver Hamlet
11bd321861
Rework handling of esplugin errors
...
The error scenario represented by PluginNotLoadedError is distinguished from all other esplugin errors by LOOT, so it's worth handling separately.
2025-06-08 20:26:07 +01:00
Oliver Hamlet
05c984c769
Remove libloadorder_category()
...
Throw errors from libloadorder as std::runtime_error instead of std::system_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet
2b0eec9929
Remove ConditionSyntaxError
...
It's not usefully different from throwing std::runtime_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet
fe3e2b2711
Remove FileAccessError
...
It wasn't usefully different from just throwing std::runtime_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet
328f1a2c15
Remove LogLevel::Fatal
...
It's never used.
2025-06-08 17:58:27 +01:00
Oliver Hamlet
ba50882ad3
Update changelog and version for 0.26.3
2025-06-08 09:23:43 +01:00
Oliver Hamlet
4fcc36aaee
Revert "Check Oblivion Remastered plugins' master flag"
...
This reverts commit 35c053bf87 .
2025-06-08 09:23:43 +01:00
Oliver Hamlet
699915efff
Update the versions and changelog to 0.26.2
...
To reflect the v0.26.2 release of the C++ implementation.
2025-05-16 23:28:01 +01:00
Oliver Hamlet
35c053bf87
Check Oblivion Remastered plugins' master flag
...
Although the game doesn't require master files to load before non-master files, if they load after that can apparently cause issues, so make LOOT sort master files first.
2025-05-16 23:28:00 +01:00
Oliver Hamlet
a9dcb26f4c
Update doc comments in C++ wrapper
2025-05-16 19:00:55 +01:00
Oliver Hamlet
eb238c4774
Make GroupsPathError and MetadataRetrievalError enums non-exhaustive
2025-05-16 19:00:54 +01:00
Oliver Hamlet
1ed9973f39
Avoid unnecessary conversions in PluginMetadata::NameMatches()
2025-05-16 08:00:42 +01:00
Oliver Hamlet
517dc6b43c
Make Vertex immutable
...
To match the C++ implementation. I meant to do this at the same time as the other metadata structs but missed it.
2025-05-14 18:24:54 +01:00
Oliver Hamlet
17892f54c4
Fix outdated version numbers
2025-05-11 16:09:02 +01:00
Oliver Hamlet
4fbc075c71
Refactor conversion from Rust strings to C++ paths
2025-05-08 19:27:12 +01:00
Oliver Hamlet
299782705a
Replace C++ internals tests
...
They didn't add any value. The new tests are taken from C++ libloot and test things that are still relevant for the wrapper.
2025-05-08 16:00:46 +01:00
Oliver Hamlet
9168e5e91e
Remove commented-out include
2025-05-05 11:50:21 +01:00
Oliver Hamlet
43d0904a6b
Don't use C++ regex for C++ NameMatches calls
...
To prevent inconsistencies between the C++ and Rust regex implementations. This does mean a boxed copy of the PluginMetadata object is made for each call, but fortunately LOOT doesn't actually make any calls to NameMatches().
2025-05-05 11:47:28 +01:00
Oliver Hamlet
1317eea055
Use Rust Filename comparisons for C++ Filename operators
...
To prevent inconsistencies between implementations. This means allocating new boxed Filenames for each comparison, but an extra string copy is avoided by making the C++ operators friends of the C++ class (which is ABI-safe).
2025-05-05 11:45:50 +01:00