From 308898a0de5c7dd4d2e4fa6c864bb916acf1a245 Mon Sep 17 00:00:00 2001 From: Flenarn Date: Sun, 8 Mar 2026 10:50:00 +0100 Subject: [PATCH 01/12] chore: Update temporary declaration. --- include/RE/H/hknpBSWorld.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/RE/H/hknpBSWorld.h b/include/RE/H/hknpBSWorld.h index 181ebc0f..c98493e6 100644 --- a/include/RE/H/hknpBSWorld.h +++ b/include/RE/H/hknpBSWorld.h @@ -20,7 +20,7 @@ namespace RE // members void* userData; // 6D0 BSReadWriteLock worldLock; // 6D8 - std::byte activateBodyPostCollideSet[48]; // 6E0 - BSTSet + BSTSet activateBodyPostCollideSet; // 6E0 BSSpinLock activateBodyPostCollideLock; // 710 hkMultiMap constrainedBodyFromBody; // 718 }; From cb95a48c7e16a38c7bc3c95b94932320ce1c7e03 Mon Sep 17 00:00:00 2001 From: Flenarn Date: Sun, 8 Mar 2026 10:54:48 +0100 Subject: [PATCH 02/12] Revert "chore: Update temporary declaration." This reverts commit 308898a0de5c7dd4d2e4fa6c864bb916acf1a245. --- include/RE/H/hknpBSWorld.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/RE/H/hknpBSWorld.h b/include/RE/H/hknpBSWorld.h index c98493e6..181ebc0f 100644 --- a/include/RE/H/hknpBSWorld.h +++ b/include/RE/H/hknpBSWorld.h @@ -20,7 +20,7 @@ namespace RE // members void* userData; // 6D0 BSReadWriteLock worldLock; // 6D8 - BSTSet activateBodyPostCollideSet; // 6E0 + std::byte activateBodyPostCollideSet[48]; // 6E0 - BSTSet BSSpinLock activateBodyPostCollideLock; // 710 hkMultiMap constrainedBodyFromBody; // 718 }; From f901016c8c2d1edaa9dcbec9d96365b6e7f0d05d Mon Sep 17 00:00:00 2001 From: Flenarn Date: Wed, 11 Mar 2026 18:12:57 +0100 Subject: [PATCH 03/12] feat: Additional ExtraData types. --- include/RE/E/EXTRA_DATA_TYPE.h | 4 ++-- include/RE/E/ExtraRagDollData.h | 20 ++++++++++++++++++++ include/RE/E/ExtraTresPassPackage.h | 20 ++++++++++++++++++++ include/RE/Fallout.h | 2 ++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 include/RE/E/ExtraRagDollData.h create mode 100644 include/RE/E/ExtraTresPassPackage.h diff --git a/include/RE/E/EXTRA_DATA_TYPE.h b/include/RE/E/EXTRA_DATA_TYPE.h index c3f6f4e8..139ecb2e 100644 --- a/include/RE/E/EXTRA_DATA_TYPE.h +++ b/include/RE/E/EXTRA_DATA_TYPE.h @@ -24,13 +24,13 @@ namespace RE kBiped, // kUsedMarkers, // kDistantData, // - kRagdollData, // + kRagdollData, // ExtraRagDollData kCellPrevisRefs, // kInitActions, // kEssentialProtected, // kPackagesStartLoc, // kPackage, // - kTrespassPackage, // + kTresPassPackage, // ExtraTresPassPackage kRunOncePackages, // kReferenceHandle, // ExtraReferenceHandles kFollower, // diff --git a/include/RE/E/ExtraRagDollData.h b/include/RE/E/ExtraRagDollData.h new file mode 100644 index 00000000..553a23e4 --- /dev/null +++ b/include/RE/E/ExtraRagDollData.h @@ -0,0 +1,20 @@ +#pragma once + +#include "RE/B/BSExtraData.h" +#include "RE/R/RagDollData.h" + +namespace RE +{ + class __declspec(novtable) ExtraRagDolldata : + public BSExtraData // 00 + { + public: + static constexpr auto RTTI{ RTTI::ExtraRagDollData }; + static constexpr auto VTABLE{ VTABLE::ExtraRagDollData }; + static constexpr auto TYPE{ EXTRA_DATA_TYPE::kRagdollData }; + + // members + RagDollData* ragDollData; // 18 + }; + static_assert(sizeof(ExtraRagDolldata) == 0x20); +} diff --git a/include/RE/E/ExtraTresPassPackage.h b/include/RE/E/ExtraTresPassPackage.h new file mode 100644 index 00000000..b151238e --- /dev/null +++ b/include/RE/E/ExtraTresPassPackage.h @@ -0,0 +1,20 @@ +#pragma once + +#include "RE/B/BSExtraData.h" +#include "RE/T/TrespassPackage.h" + +namespace RE +{ + class __declspec(novtable) ExtraTresPassPackage : + public BSExtraData // 00 + { + public: + static constexpr auto RTTI{ RTTI::ExtraTresPassPackage }; + static constexpr auto VTABLE{ VTABLE::ExtraTresPassPackage }; + static constexpr auto TYPE{ EXTRA_DATA_TYPE::kTresPassPackage }; + + // members + TrespassPackage* pack; // 18 + }; + static_assert(sizeof(ExtraTresPassPackage) == 0x20); +} diff --git a/include/RE/Fallout.h b/include/RE/Fallout.h index d0d6a154..a55567cc 100644 --- a/include/RE/Fallout.h +++ b/include/RE/Fallout.h @@ -666,10 +666,12 @@ #include "RE/E/ExtraRadioData.h" #include "RE/E/ExtraRadioReceiver.h" #include "RE/E/ExtraRadioRepeater.h" +#include "RE/E/ExtraRagDollData.h" #include "RE/E/ExtraReferenceHandles.h" #include "RE/E/ExtraStartingWorldOrCell.h" #include "RE/E/ExtraTeleport.h" #include "RE/E/ExtraTextDisplayData.h" +#include "RE/E/ExtraTresPassPackage.h" #include "RE/E/ExtraUniqueID.h" #include "RE/F/FACTION_CRIME_DATA.h" #include "RE/F/FACTION_CRIME_DATA_VALUES.h" From 251b50d167da158009f052f89e9dca9249ceff94 Mon Sep 17 00:00:00 2001 From: FlenarnDev Date: Wed, 11 Mar 2026 17:13:35 +0000 Subject: [PATCH 04/12] maintenance --- include/RE/E/ExtraRagDollData.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/RE/E/ExtraRagDollData.h b/include/RE/E/ExtraRagDollData.h index 553a23e4..9f5c1ec0 100644 --- a/include/RE/E/ExtraRagDollData.h +++ b/include/RE/E/ExtraRagDollData.h @@ -14,7 +14,7 @@ namespace RE static constexpr auto TYPE{ EXTRA_DATA_TYPE::kRagdollData }; // members - RagDollData* ragDollData; // 18 + RagDollData* ragDollData; // 18 }; static_assert(sizeof(ExtraRagDolldata) == 0x20); } From e18d26d08592539841a544f7c8fca86d6cf70c33 Mon Sep 17 00:00:00 2001 From: Flenarn Date: Wed, 11 Mar 2026 19:30:56 +0100 Subject: [PATCH 05/12] feat: PipboyCommand & PipboyCommandResult --- include/RE/Fallout.h | 2 ++ include/RE/P/PipboyCommand.h | 24 ++++++++++++++++++++++++ include/RE/P/PipboyCommandResult.h | 21 +++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 include/RE/P/PipboyCommand.h create mode 100644 include/RE/P/PipboyCommandResult.h diff --git a/include/RE/Fallout.h b/include/RE/Fallout.h index a55567cc..7c7c1ad7 100644 --- a/include/RE/Fallout.h +++ b/include/RE/Fallout.h @@ -1015,6 +1015,8 @@ #include "RE/P/PerkValueEvents.h" #include "RE/P/PersistentPassList.h" #include "RE/P/PipboyArray.h" +#include "RE/P/PipboyCommand.h" +#include "RE/P/PipboyCommandResult.h" #include "RE/P/PipboyDataGroup.h" #include "RE/P/PipboyDataManager.h" #include "RE/P/PipboyHolotapeMenu.h" diff --git a/include/RE/P/PipboyCommand.h b/include/RE/P/PipboyCommand.h new file mode 100644 index 00000000..a6dddfff --- /dev/null +++ b/include/RE/P/PipboyCommand.h @@ -0,0 +1,24 @@ +#pragma once + +namespace RE +{ + class __declspec(novtable) PipboyCommand + { + public: + static constexpr auto RTTI{ RTTI::PipboyCommand }; + static constexpr auto VTABLE{ VTABLE::PipboyCommand }; + + // add + virtual ~PipboyCommand(); // 00 + virtual void Init(Json::Value* a_json) = 0; // 01 + virtual const PipboyCommandResult* DoValidate(); // 02 + virtual const PipboyCommandResult* DoExecute(); // 03 + + // members + const std::uint32_t id; // 08 + const PipboyCommandResult* validationResult; // 10 + const PipboyCommandResult* executionResult; // 18 + bool isReadonOnly; // 20 + }; + static_assert(sizeof(PipboyCommand) == 0x28); +} diff --git a/include/RE/P/PipboyCommandResult.h b/include/RE/P/PipboyCommandResult.h new file mode 100644 index 00000000..7808df77 --- /dev/null +++ b/include/RE/P/PipboyCommandResult.h @@ -0,0 +1,21 @@ +#pragma once + +namespace RE +{ + class __declspec(novtable) PipboyCommandResult + { + public: + static constexpr auto RTTI{ RTTI::PipboyCommandResult }; + static constexpr auto VTABLE{ VTABLE::PipboyCommandResult }; + + // add + virtual ~PipboyCommandResult(); // 00 + virtual void Serialize(Json::Value* a_json) = 0; // 01 + + // members + const std::uint32_t commandID; // 08 + const bool succeeded; // 0C + const bool shouldReply; // 0D + }; + static_assert(sizeof(PipboyCommandResult) == 0x10); +} From 81ce4304a66f86044ef1426d8f1a125323a252eb Mon Sep 17 00:00:00 2001 From: FlenarnDev Date: Wed, 11 Mar 2026 18:31:39 +0000 Subject: [PATCH 06/12] maintenance --- include/RE/P/PipboyCommand.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/RE/P/PipboyCommand.h b/include/RE/P/PipboyCommand.h index a6dddfff..04960ef7 100644 --- a/include/RE/P/PipboyCommand.h +++ b/include/RE/P/PipboyCommand.h @@ -9,13 +9,13 @@ namespace RE static constexpr auto VTABLE{ VTABLE::PipboyCommand }; // add - virtual ~PipboyCommand(); // 00 - virtual void Init(Json::Value* a_json) = 0; // 01 - virtual const PipboyCommandResult* DoValidate(); // 02 - virtual const PipboyCommandResult* DoExecute(); // 03 + virtual ~PipboyCommand(); // 00 + virtual void Init(Json::Value* a_json) = 0; // 01 + virtual const PipboyCommandResult* DoValidate(); // 02 + virtual const PipboyCommandResult* DoExecute(); // 03 // members - const std::uint32_t id; // 08 + const std::uint32_t id; // 08 const PipboyCommandResult* validationResult; // 10 const PipboyCommandResult* executionResult; // 18 bool isReadonOnly; // 20 From 728fcd9704bb790e2e2d4c262e18e0a01ac8f386 Mon Sep 17 00:00:00 2001 From: Flenarn Date: Sat, 28 Mar 2026 15:49:40 +0100 Subject: [PATCH 07/12] fix: Missing forward declaration. --- include/RE/P/PipboyCommand.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/RE/P/PipboyCommand.h b/include/RE/P/PipboyCommand.h index a6dddfff..90d6e444 100644 --- a/include/RE/P/PipboyCommand.h +++ b/include/RE/P/PipboyCommand.h @@ -2,6 +2,8 @@ namespace RE { + class PipboyCommandResult; + class __declspec(novtable) PipboyCommand { public: From 68079ff7c24a07d3ceb79f3a36315bbe0fee8dda Mon Sep 17 00:00:00 2001 From: Flenarn Date: Sat, 28 Mar 2026 18:33:28 +0100 Subject: [PATCH 08/12] feat: Misc. additions. --- include/RE/IDs.h | 7 +++++++ include/RE/P/PowerUtils.h | 24 ++++++++++++++++++++++++ include/RE/T/TESObjectREFR.h | 7 +++++++ 3 files changed, 38 insertions(+) diff --git a/include/RE/IDs.h b/include/RE/IDs.h index ab7484be..0bd96a69 100644 --- a/include/RE/IDs.h +++ b/include/RE/IDs.h @@ -1638,6 +1638,12 @@ namespace RE::ID inline constexpr REL::ID ShowBuildFailureMessage{ 2224322 }; } + namespace PowerUtils + { + inline constexpr REL::ID ItemIsPowerConnection{ 2195078 }; + inline constexpr REL::ID ItemIsPowerReceiver{ 2195060 }; + } + namespace ProcessLists { inline constexpr REL::ID Singleton{ 4796160 }; @@ -2015,6 +2021,7 @@ namespace RE::ID inline constexpr REL::ID UpdateDynamicNavmesh{ 2201206 }; inline constexpr REL::ID GetMapMarkerData{ 2202644 }; inline constexpr REL::ID GetRelevantWaterHeight{ 2201189 }; + inline constexpr REL::ID CanBeMoved{ 2200898 }; } namespace TESObjectWEAP diff --git a/include/RE/P/PowerUtils.h b/include/RE/P/PowerUtils.h index d8f85ca7..916e38af 100644 --- a/include/RE/P/PowerUtils.h +++ b/include/RE/P/PowerUtils.h @@ -40,6 +40,30 @@ namespace RE float load{ 0.0 }; // 6C }; static_assert(sizeof(PowerGrid) == 0x70); + + class TraverseConnectionsOptions + { + public: + // members + std::uint32_t ignoreMode; // 00 + bool wiredOnly; // 04 + bool inputsOnly; // 05 + }; + static_assert(sizeof(TraverseConnectionsOptions) == 0x8); + + bool ItemIsPowerConnection(const TESObjectREFR* refr) + { + using func_t = decltype(&PowerUtils::ItemIsPowerConnection); + static REL::Relocation func{ ID::PowerUtils::ItemIsPowerConnection }; + return func(refr); + } + + bool ItemIsPowerReceiver(const TESObjectREFR* refr) + { + using func_t = decltype(&PowerUtils::ItemIsPowerReceiver); + static REL::Relocation func{ ID::PowerUtils::ItemIsPowerReceiver }; + return func(refr); + } } template <> diff --git a/include/RE/T/TESObjectREFR.h b/include/RE/T/TESObjectREFR.h index de11ba7b..f0b8d587 100644 --- a/include/RE/T/TESObjectREFR.h +++ b/include/RE/T/TESObjectREFR.h @@ -557,6 +557,13 @@ namespace RE return func(this); } + bool CanBeMoved() + { + using func_t = decltype(&TESObjectREFR::CanBeMoved); + static REL::Relocation func{ ID::TESObjectREFR::CanBeMoved }; + return func(this); + } + // members TESObjectCELL* parentCell; // 0B8 OBJ_REFR data; // 0C0 From c868a19f2a084476b693f901b1676c7b05ce9956 Mon Sep 17 00:00:00 2001 From: FlenarnDev Date: Sat, 28 Mar 2026 17:34:05 +0000 Subject: [PATCH 09/12] maintenance --- include/RE/P/PowerUtils.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/RE/P/PowerUtils.h b/include/RE/P/PowerUtils.h index 916e38af..be22d2ca 100644 --- a/include/RE/P/PowerUtils.h +++ b/include/RE/P/PowerUtils.h @@ -45,20 +45,20 @@ namespace RE { public: // members - std::uint32_t ignoreMode; // 00 - bool wiredOnly; // 04 - bool inputsOnly; // 05 + std::uint32_t ignoreMode; // 00 + bool wiredOnly; // 04 + bool inputsOnly; // 05 }; static_assert(sizeof(TraverseConnectionsOptions) == 0x8); - bool ItemIsPowerConnection(const TESObjectREFR* refr) + bool ItemIsPowerConnection(const TESObjectREFR* refr) { using func_t = decltype(&PowerUtils::ItemIsPowerConnection); static REL::Relocation func{ ID::PowerUtils::ItemIsPowerConnection }; return func(refr); } - bool ItemIsPowerReceiver(const TESObjectREFR* refr) + bool ItemIsPowerReceiver(const TESObjectREFR* refr) { using func_t = decltype(&PowerUtils::ItemIsPowerReceiver); static REL::Relocation func{ ID::PowerUtils::ItemIsPowerReceiver }; From 0e32c1ed488157d2a0f4b140c667047ffa6e0546 Mon Sep 17 00:00:00 2001 From: Flenarn Date: Fri, 3 Apr 2026 19:42:18 +0200 Subject: [PATCH 10/12] feat: Misc additions. --- include/RE/B/BGSPrimitive.h | 8 ++++++++ include/RE/B/BSShaderUtil.h | 17 +++++++++++++++++ include/RE/Fallout.h | 3 +++ include/RE/IDs.h | 21 +++++++++++++++++++++ include/RE/M/MapMarkerData.h | 8 ++++++++ include/RE/S/ScreenSplatter.h | 30 ++++++++++++++++++++++++++++++ include/RE/S/ScreenSplatterType.h | 11 +++++++++++ 7 files changed, 98 insertions(+) create mode 100644 include/RE/B/BSShaderUtil.h create mode 100644 include/RE/S/ScreenSplatter.h create mode 100644 include/RE/S/ScreenSplatterType.h diff --git a/include/RE/B/BGSPrimitive.h b/include/RE/B/BGSPrimitive.h index 95fb4ba9..c9d0d18d 100644 --- a/include/RE/B/BGSPrimitive.h +++ b/include/RE/B/BGSPrimitive.h @@ -6,6 +6,7 @@ namespace RE { + class BGSPrimitiveLine; class BSMultiBoundShape; class BSFadeNode; @@ -37,6 +38,13 @@ namespace RE REX::TEnumSet type; // 08 NiPoint3 radii; // 0C NiPointer node; // 18 + + static BGSPrimitiveLine* CreateAbstract(PRIMITIVE_TYPE a_type, const NiPoint3* a_radii, const NiColorA* a_color) + { + using func_t = decltype(&BGSPrimitive::CreateAbstract); + static REL::Relocation func{ ID::BGSPrimitive::CreateAbstract }; + return func(a_type, a_radii, a_color); + } }; static_assert(sizeof(BGSPrimitive) == 0x20); } diff --git a/include/RE/B/BSShaderUtil.h b/include/RE/B/BSShaderUtil.h new file mode 100644 index 00000000..2ec0023b --- /dev/null +++ b/include/RE/B/BSShaderUtil.h @@ -0,0 +1,17 @@ +#pragma once + +namespace RE +{ + class NiAvObject; + class NiSwitchNode; + + namespace BSShaderUtil + { + inline void SetMaterialAlpha(NiAvObject* a_object, float a_alpha, bool a_onlyFade) + { + using func_t = decltype(&BSShaderUtil::SetMaterialAlpha); + static REL::Relocation func{ ID::BSShaderUtil::SetMaterialAlpha }; + return func(a_object, a_alpha, a_onlyFade); + } + } +} diff --git a/include/RE/Fallout.h b/include/RE/Fallout.h index 7c7c1ad7..493be95c 100644 --- a/include/RE/Fallout.h +++ b/include/RE/Fallout.h @@ -443,6 +443,7 @@ #include "RE/B/BSShaderPropertyLightData.h" #include "RE/B/BSShaderTechniqueIDMap.h" #include "RE/B/BSShaderTextureSet.h" +#include "RE/B/BSShaderUtil.h" #include "RE/B/BSSimpleList.h" #include "RE/B/BSSoundHandle.h" #include "RE/B/BSSpinLock.h" @@ -1141,6 +1142,8 @@ #include "RE/S/ScrapHeap.h" #include "RE/S/ScrapItemCallback.h" #include "RE/S/ScreenshotHandler.h" +#include "RE/S/ScreenSplatter.h" +#include "RE/S/ScreenSplatterType.h" #include "RE/S/Script.h" #include "RE/S/ScriptCompileData.h" #include "RE/S/ScriptCompiler.h" diff --git a/include/RE/IDs.h b/include/RE/IDs.h index 0bd96a69..af69250f 100644 --- a/include/RE/IDs.h +++ b/include/RE/IDs.h @@ -343,6 +343,11 @@ namespace RE::ID inline constexpr REL::ID ctor{ 2214021 }; } + namespace BGSPrimitive + { + inline constexpr REL::ID CreateAbstract{ 2194290 }; + } + namespace BGSProjectile { inline constexpr REL::ID CollidesWithSmallTransparentLayer{ 2197620 }; @@ -713,6 +718,11 @@ namespace RE::ID inline constexpr REL::ID CreateObject{ 2316324 }; } + namespace BSShaderUtil + { + inline constexpr REL::ID SetMaterialAlpha{ 2317566 }; + } + namespace BSSoundHandle { inline constexpr REL::ID FadeInPlay{ 2267075 }; @@ -1246,6 +1256,11 @@ namespace RE::ID inline constexpr REL::ID SetCameraFOV{ 2228973 }; } + namespace MapMarkerData + { + inline constexpr REL::ID GetLocationName{ 2191791 }; + } + namespace MemoryManager { namespace AutoScrapBuffer @@ -1670,6 +1685,12 @@ namespace RE::ID inline constexpr REL::ID Deallocate{ 2267984 }; } + namespace ScreenSplatter + { + inline constexpr REL::ID Clear{ 2194783 }; + inline constexpr REL::ID Update{ 2194781 }; + } + namespace SCRIPT_FUNCTION { inline constexpr REL::ID ConsoleFunctions{ 901511 }; diff --git a/include/RE/M/MapMarkerData.h b/include/RE/M/MapMarkerData.h index 153bc821..7d2ee1a8 100644 --- a/include/RE/M/MapMarkerData.h +++ b/include/RE/M/MapMarkerData.h @@ -8,6 +8,14 @@ namespace RE class __declspec(novtable) MapMarkerData : public TESFullName // 00 { + + const char* GetLocationName() + { + using func_t = decltype(&MapMarkerData::GetLocationName); + static REL::Relocation func{ ID::MapMarkerData::GetLocationName}; + return func(this); + } + std::uint8_t flags; // 10 std::uint8_t originalFlags; // 11 MARKER_TYPE type; // 12 diff --git a/include/RE/S/ScreenSplatter.h b/include/RE/S/ScreenSplatter.h new file mode 100644 index 00000000..3fd21ba1 --- /dev/null +++ b/include/RE/S/ScreenSplatter.h @@ -0,0 +1,30 @@ +#pragma once + +namespace RE +{ + class NiCamera; + + namespace ScreenSplatter + { + enum class SCREENSPLATTER_TEXTURES : std::uint32_t + { + kColor = 0x0, + kAlpha = 0x1, + kFlare = 0x2, + }; + + inline void Clear() + { + using func_t = decltype(&ScreenSplatter::Clear); + static REL::Relocation func{ ID::ScreenSplatter::Clear }; + return func(); + } + + inline void Update() + { + using func_t = decltype(&ScreenSplatter::Update); + static REL::Relocation func{ ID::ScreenSplatter::Update }; + return func(); + } + } +} diff --git a/include/RE/S/ScreenSplatterType.h b/include/RE/S/ScreenSplatterType.h new file mode 100644 index 00000000..af94796f --- /dev/null +++ b/include/RE/S/ScreenSplatterType.h @@ -0,0 +1,11 @@ +#pragma once + +namespace RE +{ + enum class ScreenSplatterType : std::uint32_t + { + kBlood = 0x0, + kBlood2 = 0x1, + kBlood3 = 0x2, + }; +} From 92ada8b9cbd35fbf1b10bc828b369d1bf91c9303 Mon Sep 17 00:00:00 2001 From: FlenarnDev Date: Fri, 3 Apr 2026 17:43:09 +0000 Subject: [PATCH 11/12] maintenance --- include/RE/Fallout.h | 2 +- include/RE/M/MapMarkerData.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/RE/Fallout.h b/include/RE/Fallout.h index 493be95c..29d90854 100644 --- a/include/RE/Fallout.h +++ b/include/RE/Fallout.h @@ -1141,9 +1141,9 @@ #include "RE/S/SceneGraph.h" #include "RE/S/ScrapHeap.h" #include "RE/S/ScrapItemCallback.h" -#include "RE/S/ScreenshotHandler.h" #include "RE/S/ScreenSplatter.h" #include "RE/S/ScreenSplatterType.h" +#include "RE/S/ScreenshotHandler.h" #include "RE/S/Script.h" #include "RE/S/ScriptCompileData.h" #include "RE/S/ScriptCompiler.h" diff --git a/include/RE/M/MapMarkerData.h b/include/RE/M/MapMarkerData.h index 7d2ee1a8..9e351b30 100644 --- a/include/RE/M/MapMarkerData.h +++ b/include/RE/M/MapMarkerData.h @@ -8,11 +8,10 @@ namespace RE class __declspec(novtable) MapMarkerData : public TESFullName // 00 { - const char* GetLocationName() { using func_t = decltype(&MapMarkerData::GetLocationName); - static REL::Relocation func{ ID::MapMarkerData::GetLocationName}; + static REL::Relocation func{ ID::MapMarkerData::GetLocationName }; return func(this); } From e26cca140bb634860958289dbf224b01a7f14dba Mon Sep 17 00:00:00 2001 From: Flenarn Date: Fri, 10 Apr 2026 21:12:05 +0200 Subject: [PATCH 12/12] chore: More IDs and a `REFR_LOCK` function. --- include/RE/IDs.h | 16 ++++++++++++++++ include/RE/R/REFR_LOCK.h | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/include/RE/IDs.h b/include/RE/IDs.h index af69250f..6742dfc2 100644 --- a/include/RE/IDs.h +++ b/include/RE/IDs.h @@ -876,6 +876,7 @@ namespace RE::ID inline constexpr REL::ID GetPickRef{ 2701395 }; inline constexpr REL::ID GetPickRefs{ 2701391 }; inline constexpr REL::ID SetCurrentPickREFR{ 2248551 }; + inline constexpr REL::ID DisplayRef{ 2248550 }; } namespace ConsoleLog @@ -1233,6 +1234,7 @@ namespace RE::ID namespace LockpickingMenu { inline constexpr REL::ID OpenLockpickingMenu{ 2249263 }; + inline constexpr REL::ID SendLockInfoToMenu{ 2249267 }; } namespace LocksPicked @@ -1669,9 +1671,12 @@ namespace RE::ID namespace REFR_LOCK { + inline constexpr REL::ID GetLevel{ 2191019 }; inline constexpr REL::ID GetLockLevel{ 2191018 }; inline constexpr REL::ID SetLocked{ 2191020 }; inline constexpr REL::ID IsBroken{ 2191021 }; + inline constexpr REL::ID NumericValueToEnum{ 2191023 }; + inline constexpr REL::ID IsInaccessible{ 2191022 }; } namespace SavefileMetadata @@ -1995,6 +2000,17 @@ namespace RE::ID inline constexpr REL::ID DefaultWater{ 4799138 }; } + namespace TESObjectCONT + { + inline constexpr REL::ID GetActivateText{ 2198653 }; + } + + namespace TESObjectDOOR + { + inline constexpr REL::ID GetActivateText{ 2198690 }; + inline constexpr REL::ID CalculateDoFavor{ 2198692 }; + } + namespace TESObjectLoadedEvent { inline constexpr REL::ID GetEventSource{ 2201853 }; diff --git a/include/RE/R/REFR_LOCK.h b/include/RE/R/REFR_LOCK.h index 0779646b..fa7cc0c4 100644 --- a/include/RE/R/REFR_LOCK.h +++ b/include/RE/R/REFR_LOCK.h @@ -28,6 +28,13 @@ namespace RE return func(this); } + [[nodiscard]] static LOCK_LEVEL NumericValueToEnum(std::int32_t a_value) + { + using func_t = decltype(&REFR_LOCK::NumericValueToEnum); + static REL::Relocation func{ ID::REFR_LOCK::NumericValueToEnum }; + return func(a_value); + } + // members std::uint8_t baseLevel; // 00 TESKey* key; // 08