docs: add plugin setup guide

This commit is contained in:
2026-05-30 18:33:24 +12:00
parent f3db41c402
commit b61043a3fe
1776 changed files with 122386 additions and 2 deletions
@@ -0,0 +1,62 @@
#pragma once
#include "RE/B/BSFixedString.h"
namespace RE
{
class __declspec(novtable) BGSBaseAlias
{
public:
static constexpr auto RTTI{ RTTI::ExtraReferenceHandles };
static constexpr auto VTABLE{ VTABLE::ExtraReferenceHandles };
enum class FLAGS : unsigned
{
kReserves = 1u << 0,
kOptional = 1u << 1,
kQuestObject = 1u << 2,
kAllowReuse = 1u << 3,
kAllowDead = 1u << 4,
kLoadedOnly = 1u << 5,
kEssential = 1u << 6,
kAllowDisabled = 1u << 7,
kStoreName = 1u << 8,
kAllowReserved = 1u << 9,
kProtected = 1u << 10,
kForcedFromAlias = 1u << 11,
kAllowDestroyed = 1u << 12,
kFindPlayerClosest = 1u << 13,
kUsesNames = 1u << 14,
kInitiallyDisabled = 1u << 15,
kAllowCleared = 1u << 16,
kClearNameOnRemove = 1u << 17,
kActorsOnly = 1u << 18,
kTransient = 1u << 19,
kExternalLink = 1u << 20,
kNoPickPocket = 1u << 21,
kDataAlias = 1u << 22,
kSceneOptional = 1u << 24,
};
virtual ~BGSBaseAlias(); // 00
// add
virtual bool Load() = 0; // 01
virtual void InitItem() = 0; // 02
[[nodiscard]] virtual const BSFixedString& QType() const = 0; // 03
[[nodiscard]] virtual TESQuest* QExternalQuest() const = 0; // 04
virtual void ClearExternalQuest() = 0; // 05
virtual void UpdateFromExternalAlias() const = 0; // 06
[[nodiscard]] virtual BGSBaseAlias* GetLinkedAlias() const = 0; // 07
[[nodiscard]] bool IsQuestObject() const noexcept { return flags.all(FLAGS::kQuestObject); }
// mmebers
BSFixedString aliasName; // 08
TESQuest* owningQuest; // 10
std::uint32_t aliasID; // 18
REX::TEnumSet<FLAGS, std::uint32_t> flags; // 1C
std::uint16_t fillType; // 20
};
static_assert(sizeof(BGSBaseAlias) == 0x28);
}