3171 Commits
Author SHA1 Message Date
Oliver Hamlet 848d1cca77 Set version number and changelog for v0.14.10 0.14.10 2019-09-06 20:14:23 +01:00
Oliver Hamlet a3a90062e1 Count override records using masters for TES3 plugins
If a plugin's masters are all present, this makes the sorting logic for
Morrowind match the other supported games. If a plugin's masters are
missing, use the plugin's total record count as the override record
count.

Plugins with missing masters cannot be loaded by the game, reducing the
impact (if any) of the probably-inflated record counts. It's better for
LOOT to be able to sort a slightly wonky load order if there are missing
masters than for it to fail completely, as such plugins may be present
for development and testing reasons.
2019-09-06 20:13:04 +01:00
Oliver Hamlet e98dccac59 Update libgit2 to v0.28.3 2019-08-15 08:44:54 +01:00
Oliver Hamlet fedd63049c Set version number and changelog for v0.14.9 0.14.9 2019-07-23 20:18:32 +01:00
Oliver Hamlet 7df7f31e23 Update loot-condition-interpreter to v2.0.1 2019-07-23 19:45:04 +01:00
Oliver Hamlet b0d0f3e09d Set versuin number and change log for v0.14.8 0.14.8 2019-06-30 18:01:19 +01:00
Oliver Hamlet 9d45afdb0a Update loot-condition-interpreter to v2.0.0
Using its new cbindgen config file needs an update to cbindgen v0.9.0.
2019-06-30 15:21:31 +01:00
Oliver Hamlet 6327ad369b Cache graph path (start, end) vertex pairs
To reduce graph traversal.
2019-06-23 17:07:13 +01:00
Oliver Hamlet b0c63dde63 Add logging statements to help time sorting 2019-06-23 15:13:19 +01:00
Oliver Hamlet 5ed8821dfc Fix tie-break plugin comparison
It was doing case-sensitive load order position lookup, and redoing it
for each pair of plugins. Now case sensitivity is handled correctly and
positions are cached.
2019-06-23 15:13:19 +01:00
Oliver Hamlet 75e9dc0eb5 Minor optimisation for adding overlap edges
It's a big complexity improvement, but only shaves 0.2s off a 0.8s time with 400 plugins on my PC.
2019-06-23 15:13:18 +01:00
Oliver Hamlet 6e0c5f99cb Improve sorting stability test 2019-06-23 15:13:13 +01:00
Oliver Hamlet 52be94bb57 Get rid of the dev branch
Its existence hasn't added anything in several years, and I keep
forgetting to merge it into master after releases.
2019-06-16 11:45:33 +01:00
Oliver Hamlet 1878d486eb Set version number and changelog for v0.14.7 0.14.7 2019-06-13 22:05:24 +01:00
Oliver Hamlet 306c57e1c6 Use ICU to compare / normalize filenames on Linux
It gives results that are locale-invariant and closer to results on
Windows (though not identical).
2019-05-25 15:35:01 +01:00
Oliver Hamlet a301369868 Fix filename comparison on Windows
boost::locale::to_lower uses locale-dependent lowercasing, which doesn't
match filesystem case insensitivity when running in the Turkish locale,
as then lowercase "I" is not "i", and uppercase "i" is not "I". To avoid
this issue on Windows, use CompareStringOrdinal to use the same rules
as the filesystem when comparing strings, and CharUpperBuffW to
uppercase strings before comparing hashes. It's less clear that
CharUpperBuffW uses the same rules as the filesystem, but that's what I
understand from reading around.

I haven't figured out how to get similar behaviour on Linux, though it
probably involves using ICU. For now, boost::locale::to_upper is used
before comparison. This is inaccurate, but at least avoids the problem
of some characters not round-tripping when lowercased.
2019-05-25 10:45:59 +01:00
Oliver Hamlet eeefb61c5b Extend std::filesystem tests
Don't use the global locale in the tests, it's difficult to know what's
tested.
2019-05-25 10:45:58 +01:00
Oliver Hamlet 09991c2517 Be explicit about string -> PluginMetadata conversions
I can't enforce this without making a breaking change to the API,
but this will do for now.
2019-05-24 21:01:48 +01:00
Oliver Hamlet 31bb27ddf9 Update libgit2 to v0.28.2 2019-05-24 21:01:48 +01:00
Oliver Hamlet fa71b8f239 Minor debug message improvement 2019-05-19 14:26:07 +01:00
Oliver Hamlet b96b3f4204 Return an optional from PluginSorter::GetVertexByName()
It's safer and semantically clearer than using an output parameter and returning true if it's been set.
2019-05-12 20:28:08 +01:00
Oliver Hamlet a36f6b782e Improve log message when getting a canonical path fails 2019-05-12 19:04:52 +01:00
Oliver Hamlet 8fed4b0292 Use Python 3 on Travis 0.14.6 2019-04-25 22:10:00 +01:00
Oliver Hamlet 5e38e7dc1e Use Python 3 on AppVeyor
This involves updating the Bintray cleanup script, as it didn't
support running under Python 3.
2019-04-25 22:09:35 +01:00
Oliver Hamlet 9c638e363f Add a config file for Read The Docs
It's now the recommended way of specifying config, which is good.
2019-04-25 18:59:17 +01:00