Fork of original code by hydrogensaysHDT
High Heels plugin has been removed, this repository only contains HDT-SMP.
- build now works with unchanged bullet source
- support both "." and "," as decimal seperators in config files
- properly remove tracked armors from physics world if the tracked skeleton isn't part of the active scene
- write transforms during game pauses, fixes physics appearing to reset while game is paused
- reset system on loading screens so there's no brief physics glitches when loading between areas
- better pause logic based on reading pause state from menumanager, fixing issues with added menus that don't pause the game (quickloot, VR)
- add options for how to handle large rotations
- hard-code a skeleton exception for the BenthicLurker skeleton because it is made incorrectly
- add a debug command to print some stats to console
- removed dependency on hdtSSEFramework and removed it from the repository
- rename plugin hdtSMP64 to differentiate from the old version that depends on Framework, and because we can support VR, not just SSE
Requires Visual Studio 2019 (Community Edition is fine)
- Download the clean skse64 source from skse's website
- Extract or clone this repository into the skse64 folder of the source. You can safely delete skse64_loader, skse64_steam_loader, skse64_loader_common, and the skse64 solution.
- Download and build bullet physics using cmake and Visual Studio. Update the hdtSMP64 project to point to your bullet source and built libraries. The Release configuration is intended to be built with Bullet's "Use MSVC AVX" cmake option enabled, and Release_noavx without.
- Download and build Microsoft's detours library using nmake. Update the hdtSMP64 project to point to your built library.
- Make the edits to SKSE source described below.
- Build the solution :)
GameMenus.h line 1090:
add function
bool IsGamePaused() { return numPauseGame > 0; }
to MenuManager class
GameEvents.h line 662:
replace unk840 with
EventDispatcher<TESMoveAttachDetachEvent> unk840; // 840 - sink offset 0C8
NiObjects.h around line 207:
replace
float unkF8; // 0F8
UInt32 unkFC; // 0FC
with
TESObjectREFR* m_owner; // 0F8
You will need to add a forward declaration or include for TESObjectREFR in NiObjects.h as well.
hydrogensaysHDT - Creating this plugin
aers - that's me :)
ousnius - some fixes, and "consulting"