2015 Commits
Author SHA1 Message Date
Oliver Hamlet 5ce09aa754 Update changelog and version for 0.24.0 2024-09-13 22:17:18 +01:00
Oliver Hamlet 6726532a40 Expose loot-condition-interpreter error codes to callers
Make ConditionSyntaxError extend from system_error instead of directly from runtime_error, so that callers can use the exception's code to distinguish between different causes.
2024-09-13 20:25:16 +01:00
Oliver Hamlet 11f7f0415a Add PluginInterface::IsBlueprintPlugin() 2024-09-13 20:25:06 +01:00
Oliver Hamlet 57f14d38ab Don't throw during sort if a non-blueprint-master has a blueprint master as a master
The game will not load the blueprint master before the other plugin, so if the latter overrides any records from the former, those changes won't be seen in-game.

There are probably many (pre-CK) plugins that have the official BlueprintShips-Starfield.esm blueprint master as a master but not actually override any of its records. Ideally such plugins would be updated to remove the unnecessary master or uninstalled, but as having it doesn't seem to do any harm, I don't think it's worth preventing LOOT from sorting in this situation.
2024-08-24 16:23:30 +01:00
Oliver Hamlet 6f4dff4766 Sort blueprint plugins after all others
Also validate that no non-blueprint masters or non-masters are expected
to load after any blueprint masters.

The addition of a new EdgeType may be considered a breaking change to
the API, since it can result in the caller receiving a value it doesn't
know how to handle, but it doesn't break ABI compatibility. LOOT has
explicit handling for unknown values, so is fine.
2024-08-24 16:23:30 +01:00
Oliver Hamlet 715d1dce75 Add PluginSortingInterface::IsBlueprintPlugin()
Adding it to the sorting interface because it'll be needed by the
sorting logic, but I'm not yet sure if it'll be useful as part of
PluginInterface (and adding it there would break ABI).
2024-08-24 16:23:29 +01:00
Oliver Hamlet e9321ae544 Update changelog and version for 0.23.1 release 2024-08-24 11:28:30 +01:00
Oliver Hamlet 945d6b5a7a Throw esplugin errors as system_error exceptions
Instead of FileAccessError, so that callers can use the exception's code to distinguish between different causes.
2024-08-24 10:02:35 +01:00
Oliver Hamlet 575455b08c Extend sorting tests to cover Starfield 2024-08-22 18:13:12 +01:00
Oliver Hamlet 9470e4ee86 Refactor test helper functions 2024-08-22 18:13:11 +01:00
Oliver Hamlet 63b1e0bacc Remove obsolete check 2024-08-22 08:32:30 +01:00
Oliver Hamlet 59a3b7ce40 Remove unused constructor arguments 2024-08-22 08:31:33 +01:00
Oliver Hamlet 88d5f2b484 Fix inaccurate log message 2024-08-22 08:31:33 +01:00
Oliver Hamlet f3eabb639b Update changelog and version for 0.23.0 release 2024-06-29 22:09:55 +01:00
Oliver Hamlet 46bac43bc4 Remove workaround for counting Morrowind override records
It's not necessary now that esplugin can count override records for Morrowind plugins, and the handling of the case when not all masters are loaded is ineffective now that fully loading Morrowind plugins will fail if their masters are not also loaded.
2024-06-28 19:57:19 +01:00
Oliver Hamlet f6d4cea461 Rename "override plugin" to "update plugin"
To match the terminology used by Starfield's Creation Kit.
2024-06-28 19:21:21 +01:00
Oliver Hamlet 46c19a4a7a Add medium plugin methods to PluginInterface 2024-06-28 19:21:00 +01:00
Oliver Hamlet a6789697b5 Update libloadorder to v17.0.0 2024-06-28 19:20:23 +01:00
Oliver Hamlet 80526e3633 Improve esplugin error handling 2024-06-28 19:20:01 +01:00
Oliver Hamlet 8e1a0870b7 Update esplugin to v6.0.0 2024-06-28 19:15:09 +01:00
Oliver Hamlet e6cdbb2e71 Use Starfield plugins in Starfield tests 2024-06-28 18:38:36 +01:00
Oliver Hamlet fcc474920d Fix use-after-free in ConditionEvaluator::SetAdditionalDataPaths() 2024-06-23 11:17:11 +01:00
Oliver Hamlet 9d0af76faa Fix use-after-free in LoadOrderHandler::SetAdditionalDataPaths() 2024-06-23 11:13:36 +01:00
Oliver Hamlet 03baecec4c Update changelog and version for 0.22.4 release 2024-05-03 07:15:26 +01:00
Oliver Hamlet 8a02621bb2 Recognise new Fallout 4 BA2 versions
This assumes that there are no relevant differences in how the new versions store file paths and hashes.
2024-04-29 18:02:13 +01:00