diff --git a/include/RE/B/BGSEditorID.h b/include/RE/B/BGSEditorID.h index 3536a1a4..9a76911c 100644 --- a/include/RE/B/BGSEditorID.h +++ b/include/RE/B/BGSEditorID.h @@ -33,6 +33,13 @@ namespace RE [[nodiscard]] TESForm* owner() const { return _owner; } + void Register(const char* a_editorID, const RE::TESForm* a_form) + { + using func_t = decltype(&BGSEditorID::Register); + static REL::Relocation func{ ID::BGSEditorID::Register }; + return func(this, a_editorID, a_form); + } + private: // members BSFixedString _data; // 00 diff --git a/include/RE/B/BGSSaveLoadManager.h b/include/RE/B/BGSSaveLoadManager.h index c802097b..ab4918fd 100644 --- a/include/RE/B/BGSSaveLoadManager.h +++ b/include/RE/B/BGSSaveLoadManager.h @@ -17,5 +17,10 @@ namespace RE static REL::Relocation func{ ID::BGSSaveLoadManager::DeleteSaveFile }; return func(this, a_filename, a_unk1, a_unk2); } + + // members + std::uint8_t unk00[0x110]; // 000 + std::uint64_t currentPlayerID; // 110 }; + static_assert(offsetof(BGSSaveLoadManager, currentPlayerID) == 0x110); } diff --git a/include/RE/E/ExtraDataList.h b/include/RE/E/ExtraDataList.h index 50c770f9..9fd530cf 100644 --- a/include/RE/E/ExtraDataList.h +++ b/include/RE/E/ExtraDataList.h @@ -63,6 +63,13 @@ namespace RE return static_cast(GetByType(T::EXTRADATATYPE)); } + [[nodiscard]] bool HasQuestObjectAlias() const + { + using func_t = decltype(&ExtraDataList::HasQuestObjectAlias); + static REL::Relocation func{ ID::ExtraDataList::HasQuestObjectAlias }; + return func(this); + } + [[nodiscard]] bool HasType(ExtraDataType a_type) const noexcept { using func_t = bool (*)(const ExtraDataList*, ExtraDataType); diff --git a/include/RE/IDs.h b/include/RE/IDs.h index 80d7053f..519ea393 100644 --- a/include/RE/IDs.h +++ b/include/RE/IDs.h @@ -42,6 +42,11 @@ namespace RE::ID inline constexpr REL::ID GetSingleton{ 82283 }; } + namespace BGSEditorID + { + inline constexpr REL::ID Register{ 86172 }; + } + namespace BGSEntryPoint { inline constexpr REL::ID HandleEntryPoint{ 110912 }; @@ -224,6 +229,7 @@ namespace RE::ID namespace ExtraDataList { + inline constexpr REL::ID HasQuestObjectAlias{ 83336 }; inline constexpr REL::ID HasType{ 83208 }; } diff --git a/include/REX/W32.h b/include/REX/W32.h index 86c56277..2ec37ea5 100644 --- a/include/REX/W32.h +++ b/include/REX/W32.h @@ -17,6 +17,7 @@ #include "REX/W32/KERNEL32.h" #include "REX/W32/NT.h" #include "REX/W32/OLE32.h" +#include "REX/W32/SHELL32.h" #include "REX/W32/USER32.h" #include "REX/W32/VERSION.h" #include "REX/W32/WS2_32.h"