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,93 @@
#pragma once
#include "RE/B/BSPackedTaskQueue.h"
#include "RE/B/BSPointerHandle.h"
#include "RE/B/BSSaveDataSystemUtilityImage.h"
#include "RE/B/BSTArray.h"
#include "RE/B/BSTEvent.h"
#include "RE/B/BSTTuple.h"
#include "RE/N/NiPointer.h"
#include "RE/S/ScrapHeap.h"
namespace RE
{
class NiCamera;
class SceneGraph;
class TESPageCache;
class PositionPlayerEvent;
class Main :
public BSTEventSink<PositionPlayerEvent>
{
public:
virtual ~Main(); // 00
[[nodiscard]] static Main* GetSingleton()
{
static REL::Relocation<Main**> singleton{ ID::Main::Singleton };
return *singleton;
}
// override
virtual BSEventNotifyControl ProcessEvent(const PositionPlayerEvent& a_event, BSTEventSource<PositionPlayerEvent>* a_source) override; // 01
[[nodiscard]] static NiCamera* WorldRootCamera()
{
using func_t = decltype(&Main::WorldRootCamera);
static REL::Relocation<func_t> func{ ID::Main::WorldRootCamera };
return func();
}
[[nodiscard]] static SceneGraph* WorldRootNode()
{
static REL::Relocation<NiPointer<SceneGraph>*> nodePtr{ ID::Main::WorldRootCamera };
return nodePtr->get();
}
[[nodiscard]] static bool QGameSystemsShouldUpdate()
{
static REL::Relocation<bool*> singleton{ ID::Main::QGameSystemsShouldUpdate };
return *singleton;
}
[[nodiscard]] static bool QGameDataLoaded()
{
static REL::Relocation<bool*> singleton{ ID::Main::QGameDataLoaded };
return *singleton;
}
void SetCameraFOV(float a_fov)
{
using func_t = decltype(&Main::SetCameraFOV);
static REL::Relocation<func_t> func{ ID::Main::SetCameraFOV };
return func(this, a_fov);
}
// members
BSTArray<BSTTuple<float, ActorHandle>> sortedVisibleHighActors; // 08
std::uint32_t localMapRenderDelay; // 20
bool quitGame; // 24
bool resetGame; // 25
bool fullReset; // 26
bool gameActive; // 27
bool onIdle; // 28
bool reloadContent; // 29
bool freezeTime; // 2A
bool freezeNextFrame; // 2B
REX::W32::HWND hwnd; // 30
void* instance; // 38
std::uint32_t threadID; // 40
ScrapHeap packedTaskHeap; // 48
BSPackedTaskQueue taskQueue; // D8
ScrapHeap secondaryPackedTaskHeap; // 108
BSPackedTaskQueue secondaryTaskQueue; // 198
TESPageCache* pageCache; // 1C8
bool inMenuMode; // 1D0
bool inDialog; // 1D1
bool renderingMenuBG; // 1D2
bool signOutPending; // 1D3
BSSaveDataSystemUtilityImage saveDataBackgroundImages[3]; // 1D8
BSSaveDataSystemUtilityImage saveDataIconImages[3]; // 220
};
static_assert(sizeof(Main) == 0x268);
}