diff --git a/cmake/sourcelist.cmake b/cmake/sourcelist.cmake index 83b59bb51..bce92e448 100644 --- a/cmake/sourcelist.cmake +++ b/cmake/sourcelist.cmake @@ -916,6 +916,7 @@ set(SOURCES include/RE/H/hkBaseObject.h include/RE/H/hkBaseTypes.h include/RE/H/hkContactPoint.h + include/RE/H/hkContactPointMaterial.h include/RE/H/hkContainerAllocators.h include/RE/H/hkFinishLoadedObjectFlag.h include/RE/H/hkMatrix3.h @@ -1002,6 +1003,7 @@ set(SOURCES include/RE/H/hkpConstraintOwner.h include/RE/H/hkpContactListener.h include/RE/H/hkpContactPointEvent.h + include/RE/H/hkpContactPointProperties.h include/RE/H/hkpConvexListFilter.h include/RE/H/hkpConvexShape.h include/RE/H/hkpEaseConstraintsAction.h diff --git a/include/RE/H/hkContactPointMaterial.h b/include/RE/H/hkContactPointMaterial.h new file mode 100644 index 000000000..bf950215b --- /dev/null +++ b/include/RE/H/hkContactPointMaterial.h @@ -0,0 +1,26 @@ +#pragma once + +#include "RE/H/hkBaseTypes.h" + +namespace RE +{ + class hkContactPointMaterial + { + public: + enum class Flag + { + kIsNew = 1 << 0, + kUsesSolverPath2 = 1 << 1, + kBreakoffObjectID = 1 << 2, + kIsDisabled = 1 << 3 + }; + + // members + std::uint64_t userData; // 00 + hkUFloat8 friction; // 08 + std::uint8_t restitution; // 09 + hkUFloat8 maxImpulse; // 0A + stl::enumeration flags; // 0B + }; + static_assert(sizeof(hkContactPointMaterial) == 0x10); +} diff --git a/include/RE/H/hkpContactPointProperties.h b/include/RE/H/hkpContactPointProperties.h new file mode 100644 index 000000000..573c57e76 --- /dev/null +++ b/include/RE/H/hkpContactPointProperties.h @@ -0,0 +1,17 @@ +#pragma once + +#include "RE/H/hkContactPointMaterial.h" +#include "RE/H/hkpSolverResults.h" + +namespace RE +{ + class hkpContactPointProperties : + public hkpSolverResults, // 00 + public hkContactPointMaterial // 08 + { + public: + // members + float internalData; // 18 + }; + static_assert(sizeof(hkpContactPointProperties) == 0x20); +} diff --git a/include/RE/H/hkpSolverResults.h b/include/RE/H/hkpSolverResults.h index 96ea565cd..57fb805cc 100644 --- a/include/RE/H/hkpSolverResults.h +++ b/include/RE/H/hkpSolverResults.h @@ -2,13 +2,12 @@ namespace RE { - class hkpSolverResults { public: + // members float impulse; // 00 float data; // 04 }; static_assert(sizeof(hkpSolverResults) == 0x08); - -} \ No newline at end of file +} diff --git a/include/RE/Skyrim.h b/include/RE/Skyrim.h index 1187728ac..97e598f82 100644 --- a/include/RE/Skyrim.h +++ b/include/RE/Skyrim.h @@ -918,6 +918,7 @@ #include "RE/H/hkBaseObject.h" #include "RE/H/hkBaseTypes.h" #include "RE/H/hkContactPoint.h" +#include "RE/H/hkContactPointMaterial.h" #include "RE/H/hkContainerAllocators.h" #include "RE/H/hkFinishLoadedObjectFlag.h" #include "RE/H/hkMatrix3.h" @@ -1004,6 +1005,7 @@ #include "RE/H/hkpConstraintOwner.h" #include "RE/H/hkpContactListener.h" #include "RE/H/hkpContactPointEvent.h" +#include "RE/H/hkpContactPointProperties.h" #include "RE/H/hkpConvexListFilter.h" #include "RE/H/hkpConvexShape.h" #include "RE/H/hkpEaseConstraintsAction.h"