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,59 @@
#pragma once
#include "RE/B/BSPointerHandle.h"
#include "RE/B/BSTArray.h"
#include "RE/B/BSTEvent.h"
#include "RE/B/BSTSingleton.h"
namespace RE
{
class BGSInventoryItem;
namespace InventoryInterface
{
class CountChangedEvent;
class FavoriteChangedEvent;
}
class BGSInventoryInterface :
BSTSingletonSDM<BGSInventoryInterface>, // 00
BSTEventSource<InventoryInterface::CountChangedEvent>, // 08
BSTEventSource<InventoryInterface::FavoriteChangedEvent> // 60
{
public:
class Agent
{
public:
// members
std::uint32_t handleID; // 0
ObjectRefHandle itemOwner; // 4
std::uint16_t listIndex; // 8
std::uint16_t refCount; // A
};
static_assert(sizeof(Agent) == 0xC);
[[nodiscard]] static BGSInventoryInterface* GetSingleton()
{
static REL::Relocation<BGSInventoryInterface**> singleton{ ID::BGSInventoryInterface::Singleton };
return *singleton;
}
[[nodiscard]] const BGSInventoryItem* RequestInventoryItem(const std::uint32_t& a_handleID) const
{
using func_t = decltype(&BGSInventoryInterface::RequestInventoryItem);
static REL::Relocation<func_t> func{ ID::BGSInventoryInterface::RequestInventoryItem };
return func(this, a_handleID);
}
[[nodiscard]] bool ForceMergeStacks(const std::uint32_t& a_handleID)
{
using func_t = decltype(&BGSInventoryInterface::ForceMergeStacks);
static REL::Relocation<func_t> func{ ID::BGSInventoryInterface::ForceMergeStacks };
return func(this, a_handleID);
}
// members
BSTArray<Agent> agentArray; // B8
};
static_assert(sizeof(BGSInventoryInterface) == 0xD0);
}