Releases: CharmedBaryon/CommonLibSSE-NG
Releases · CharmedBaryon/CommonLibSSE-NG
v3.3.1
v3.3.0
- Fix macro errors that prevented SE-only build to work correctly.
- Bypass logging for
report_and_fail
when running unit tests to avoid unnecessary log noise in negative test cases. - Bypass
MessageBox
call inreport_fail
when running unit tests to allow negative test cases or failed tests without indefinitely hanging the test run in headless CI environments. - Throw exceptions in
report_and_fail
when running unit tests to allow Catch2 to detect throws for assertions. - Fixed inconsistent include style in
RE::NiGeometry
, which also was a blocker for IDA Pro header import. - Unit tests are now run in automated GitHub CI for Clang builds in addition to MSVC ones.
- Merge upstream changes.
- Macro for simplified SKSEPlugin_Load.
- Merge quality of life features from Fully Dynamic Game Engine:
- Support for
REL::Version
literals (e.g.1.0_v
or"1.2.3.4"_v
). - Support for declarative alternative to
SKSE::PluginVersionData
. - Macro to concisely define
SKSEPlugin_Version
with automatic compatibleSKSEPlugin_Query
.
- Support for
v3.2.4
- Fix bug with transitively finding
binary_io
dependency. - Add
REL::Version
andREL::Relocation
APIs for convenience. - Support for injecting real or mocked Skyrim runtime executables and address library databases for unit testing.
- Windows headers can now be included before CommonLibSSE.
- Further improvements to out-of-the-box usability of Clang builds.
- The
RE::FormType
andRE::ActorValue
enums can now be directly used infmt::format
andstd::format
calls, with human-readable results. - Release builds are now specifically handled, and built with whole-program optimizations.
- Added
HAS_SKYRIM_MULTI_TARGETING
macro, that is inherited by downstream plugin projects, enabling detection of NG's multi-targeting features in the preprocessor.
v3.2.3
- Cleanup the
Actor
and related classes. - Add convenience function
TESActorBase::IsLeveled
based on extension functions from Fully Dynamic Game Engine.. - Add convenience function
BGSKeywordForm::GetKeywords
based on extension functions from Fully Dynamic Game Engine.. - Expand and correct RE on
AlchemyMenu
based on Alchemy Overhaul NG. - Expand RE on
MapMenu
based on No GPS. - Further Clang support improvements.
- Add release CMake presets, with optimized builds, and update GitHub CI to test build them.
- Uses binary-io for address library parsing again (requires minimum of binary-io 2.0.5).
- Fixes bug in unpacking empty Papyrus arrays to native ones.
v3.2.1
Support for building with Clang 13.x and 14.x using Clang-CL.
Add CMake configuration and build presets for Clang.
Fix a number of places in where CommonLibSSE had assumed string_view's underlying C-string matches the length of the view.
Adopt string_view in place of const char* for several APIs.
Cleanup code in numerous places to eliminate Clang compiler warnings.
Integrate upstream RE changes.
Bring back RELOCATION_ID
macro as an alias for REL::RelocationID
for compatibility with po3 and alandtse forks.
v3.1.0
- Completed overhaul of all RTTI and VTABLE offsets to unify runtimes and produce consistent naming.
- Overhauled nearly all classes with variant offsets in Skyrim VR to allow for both VR and non-VR complete access to the same data from the same build.
- A number of new RE structures related to Papyrus saving.
- Fixed
TESForm::GetWeight
behavior to work with hooks of engine weight behavior. - Introduced new
RelocationID
system, and accompanyingVariantID
andVariantOffset
classes to handle portable hooks across runtimes. Enables use ofconstexpr
again for RTTI and VTABLE offsets, reducing compiled library size by about 800 MB.