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,66 @@
#pragma once
#include "RE/B/BGSDestructibleObjectForm.h"
#include "RE/B/BGSPreloadable.h"
#include "RE/B/BGSProjectileData.h"
#include "RE/T/TESBoundObject.h"
#include "RE/T/TESFullName.h"
#include "RE/T/TESModel.h"
namespace RE
{
enum class SOUND_LEVEL;
class __declspec(novtable) BGSProjectile :
public TESBoundObject, // 000
public TESFullName, // 068
public TESModel, // 078
public BGSPreloadable, // 0A8
public BGSDestructibleObjectForm // 0B0
{
public:
static constexpr auto RTTI{ RTTI::BGSProjectile };
static constexpr auto VTABLE{ VTABLE::BGSProjectile };
static constexpr auto FORM_ID{ ENUM_FORM_ID::kPROJ };
enum class BGSProjectileFlags
{
kHitscan = 0x1,
kExplosion = 0x2,
kExplosionAltTrigger = 0x4,
kMuzzleFlash = 0x8,
kBounceOnImpact = 0x10,
kCanTurnOff = 0x20,
kCanPickup = 0x40,
kSupersonic = 0x80,
kPinsLimbs = 0x100,
kPassSMTransparent = 0x200,
kDisableCombatAimCorrection = 0x400,
kPenetratesGeometry = 0x800,
kContinuousUpdate = 0x1000,
kSeeksTarget = 0x2000,
kFirstMotionBit = 0x10,
kMotionMissile = 0x10000,
kMotionGrenade = 0x20000,
kMotionBeam = 0x40000,
kMotionFlamethrower = 0x80000,
kMotionCone = 0x100000,
kMotionBarrier = 0x200000,
kMotionArrow = 0x400000,
kMotionTypes = 0x7F0000
};
bool CollidesWithSmallTransparentLayer()
{
using func_t = decltype(&BGSProjectile::CollidesWithSmallTransparentLayer);
static REL::Relocation<func_t> func{ ID::BGSProjectile::CollidesWithSmallTransparentLayer };
return func(this);
}
// members
BGSProjectileData data; // 0C0
TESModel muzzleFlashModel; // 150
REX::TEnumSet<SOUND_LEVEL, std::int32_t> soundLevel; // 180
};
static_assert(sizeof(BGSProjectile) == 0x188);
}