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,105 @@
#pragma once
#include "RE/H/hkRefPtr.h"
#include "RE/H/hknpRayCastQuery.h"
#include "RE/H/hknpRayCastQueryResult.h"
#include "RE/M/MemoryManager.h"
namespace RE
{
class hknpBody;
class hknpBSWorld;
class hknpCollisionQueryCollector;
class NiAVObject;
class NiPoint3;
class bhkPickData
{
public:
enum class COLLECTOR_TYPE;
bhkPickData()
{
typedef bhkPickData* func_t(bhkPickData*);
static REL::Relocation<func_t> func{ ID::bhkPickData::ctor };
func(this);
}
void SetStartEnd(const NiPoint3& start, const NiPoint3& end)
{
using func_t = decltype(&bhkPickData::SetStartEnd);
static REL::Relocation<func_t> func{ ID::bhkPickData::SetStartEnd };
return func(this, start, end);
}
void Reset()
{
using func_t = decltype(&bhkPickData::Reset);
static REL::Relocation<func_t> func{ ID::bhkPickData::Reset };
return func(this);
}
bool HasHit() const
{
using func_t = decltype(&bhkPickData::HasHit);
static REL::Relocation<func_t> func{ ID::bhkPickData::HasHit };
return func(this);
}
float GetHitFraction() const
{
using func_t = decltype(&bhkPickData::GetHitFraction);
static REL::Relocation<func_t> func{ ID::bhkPickData::GetHitFraction };
return func(this);
}
std::int32_t GetAllCollectorRayHitSize()
{
using func_t = decltype(&bhkPickData::GetAllCollectorRayHitSize);
static REL::Relocation<func_t> func{ ID::bhkPickData::GetAllCollectorRayHitSize };
return func(this);
}
bool GetAllCollectorRayHitAt(std::uint32_t i, hknpCollisionResult& res)
{
using func_t = decltype(&bhkPickData::GetAllCollectorRayHitAt);
static REL::Relocation<func_t> func{ ID::bhkPickData::GetAllCollectorRayHitAt };
return func(this, i, res);
}
void SortAllCollectorHits()
{
using func_t = decltype(&bhkPickData::SortAllCollectorHits);
static REL::Relocation<func_t> func{ ID::bhkPickData::SortAllCollectorHits };
return func(this);
}
NiAVObject* GetNiAVObject()
{
using func_t = decltype(&bhkPickData::GetNiAVObject);
static REL::Relocation<func_t> func{ ID::bhkPickData::GetNiAVObject };
return func(this);
}
hknpBody* GetBody()
{
using func_t = decltype(&bhkPickData::GetBody);
static REL::Relocation<func_t> func{ ID::bhkPickData::GetBody };
return func(this);
}
F4_HEAP_REDEFINE_NEW(bhkPickData);
// members
hknpRayCastQuery castQuery; // 00
hknpRayCastQueryResult result; // 60
hkRefPtr<hknpBSWorld> castWorld; // C0
std::uint64_t customCollideLayers; // C8
hknpCollisionQueryCollector* collector; // D0
COLLECTOR_TYPE collectorType; // D8
bool incrementPickTime; // DC
bool allowFailedPicks; // DD
bool pickFailed; // DE
};
static_assert(sizeof(bhkPickData) == 0xE0);
};