diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index bf883ac4..3ba43038 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -2,6 +2,45 @@ Version History *************** +0.19.4 - 2023-05-06 +=================== + +Added +----- + +- Support for the Microsoft Store's Fallout 4 DLC. The Microsoft Store installs + Fallout 4's DLC to separate directories outside of the Fallout 4 install path, + and the Microsoft Store's version of Fallout 4 knows to look for plugins and + resources to load in those other directories. + + - libloot detects if a copy of Fallout 4 is from the Microsoft Store by + checking for the existence of an ``appxmanifest.xml`` file in the given + install path, and if found will look for Fallout 4 DLC directories at their + install paths. The DLC install paths used are relative to the game install + path because those relative paths are assumed by the game. + - If a DLC data path exists, load order operations will include plugins in + that directory, i.e. DLC plugins will appear as part of the load order + that libloot reads and writes. + - Metadata conditions will check for files in DLC data paths as well as the + game's data path, with DLC paths checked before the game's data path to + match the order in which the game checks paths. + +Changed +------- + +- :cpp:any:`loot::GameInterface::IsValidPlugin()`, + :cpp:any:`loot::GameInterface::LoadPlugins()` and + :cpp:any:`loot::GameInterface::SortPlugins()` now take plugin paths instead of + plugin filenames. Relative paths are interpreted as relative to the game's + data path, so this change is backwards-compatible. Absolute paths are used as + given. The functions take plugin paths as strings to avoid breaking libloot's + binary interface, but they will be changed to take ``std::filesystem::path``s + in a future release. +- :cpp:any:`loot::GameInterface::LoadPlugins()` and + :cpp:any:`loot::GameInterface::SortPlugins()` now check that all filenames in + the given paths are unique. This was previously implicitly required for + correct behaviour but not explicitly enforced. + 0.19.3 - 2023-03-18 =================== diff --git a/include/loot/loot_version.h b/include/loot/loot_version.h index 0b6b0cac..0d69f2e7 100644 --- a/include/loot/loot_version.h +++ b/include/loot/loot_version.h @@ -37,7 +37,7 @@ inline constexpr unsigned int LIBLOOT_VERSION_MAJOR = 0; inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 19; /** @brief libloot's patch version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 3; +inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 4; /** * @brief Get the library version. diff --git a/src/api/resource.rc b/src/api/resource.rc index 604bb285..dfe40642 100644 --- a/src/api/resource.rc +++ b/src/api/resource.rc @@ -2,8 +2,8 @@ #include 1 VERSIONINFO -FILEVERSION 0, 19, 3, 0 -PRODUCTVERSION 0, 19, 3, 0 +FILEVERSION 0, 19, 4, 0 +PRODUCTVERSION 0, 19, 4, 0 FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL BEGIN @@ -13,12 +13,12 @@ BLOCK "040904b0" BEGIN VALUE "CompanyName", "LOOT" VALUE "FileDescription", "Library providing LOOT's core functionality" -VALUE "FileVersion", "0.19.3" +VALUE "FileVersion", "0.19.4" VALUE "InternalName", "loot" VALUE "LegalCopyright", "Copyright (C) 2013-2022 Oliver Hamlet" VALUE "OriginalFilename", "loot.dll" VALUE "ProductName", "LOOT" -VALUE "ProductVersion", "0.19.3" +VALUE "ProductVersion", "0.19.4" END END BLOCK "VarFileInfo"