44#ifndef ENABLE_SKYRIM_VR
51#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
78#define RUNTIME_DATA_CONTENT \
80 BSFixedString shortDesc;
84 static_assert(
sizeof(RUNTIME_DATA) == 0x18);
91 void SaveGame(BGSSaveFormBuffer* a_buf)
override;
98#ifndef ENABLE_SKYRIM_VR
108 return REL::RelocateMember<RUNTIME_DATA>(
this, 0x110, 0x100);
113 return REL::RelocateMember<RUNTIME_DATA>(
this, 0x110, 0x100);
118 return &REL::RelocateMember<BGSDestructibleObjectForm>(
this, 0xC0, 0xB0);
123 return &REL::RelocateMember<BGSDestructibleObjectForm>(
this, 0xC0, 0xB0);
128 return &REL::RelocateMember<BGSPickupPutdownSounds>(
this, 0xD0, 0xC0);
133 return &REL::RelocateMember<BGSPickupPutdownSounds>(
this, 0xD0, 0xC0);
138 return &REL::RelocateMember<TESDescription>(
this, 0xE8, 0xD8);
143 return &REL::RelocateMember<TESDescription>(
this, 0xE8, 0xD8);
148 return &REL::RelocateMember<BGSKeywordForm>(
this, 0xF8, 0xE8);
153 return &REL::RelocateMember<BGSKeywordForm>(
this, 0xF8, 0xE8);
159#ifndef ENABLE_SKYRIM_VR
160 static_assert(
sizeof(TESAmmo) == 0x128);
161#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
162 static_assert(
sizeof(TESAmmo) == 0x118);
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
Definition BGSKeyword.h:10
Definition BGSMessageIcon.h:9
Definition BGSPickupPutdownSounds.h:10
Definition BGSProjectile.h:79
Definition NiAVObject.h:50
void InitItemImpl() override
NiAVObject * Clone3D(TESObjectREFR *a_ref, bool a_arg3) override
const BGSDestructibleObjectForm * AsDestructibleObjectForm() const noexcept
Definition TESAmmo.h:121
bool GetPlayable() const override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition TESAmmo.h:111
static constexpr auto RTTI
Definition TESAmmo.h:62
void HandleRemoveItemFromContainer(TESObjectREFR *a_container) override
static constexpr auto VTABLE
Definition TESAmmo.h:63
bool IgnoresNormalWeaponResistance()
const BGSKeywordForm * AsKeywordForm() const noexcept
Definition TESAmmo.h:151
void SaveGame(BGSSaveFormBuffer *a_buf) override
BGSPickupPutdownSounds * AsPickupPutdownSoundsForm() noexcept
Definition TESAmmo.h:126
void InitializeData() override
BGSDestructibleObjectForm * AsDestructibleObjectForm() noexcept
Definition TESAmmo.h:116
RUNTIME_DATA & GetRuntimeData() noexcept
Definition TESAmmo.h:106
static constexpr auto FORMTYPE
Definition TESAmmo.h:64
BGSKeyword * GetDefaultKeyword() const override
const TESDescription * AsDescriptionForm() const noexcept
Definition TESAmmo.h:141
TESDescription * AsDescriptionForm() noexcept
Definition TESAmmo.h:136
bool Load(TESFile *a_mod) override
BGSKeywordForm * AsKeywordForm() noexcept
Definition TESAmmo.h:146
void LoadGame(BGSLoadFormBuffer *a_buf) override
const BGSPickupPutdownSounds * AsPickupPutdownSoundsForm() const noexcept
Definition TESAmmo.h:131
Definition TESBoundObject.h:24
Definition TESDescription.h:12
Definition TESFullName.h:9
Definition TESModelTextureSwap.h:10
Definition TESObjectREFR.h:112
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 11 > VTABLE_TESAmmo
Definition Offsets_VTABLE.h:486
constexpr REL::VariantID RTTI_TESAmmo(513901, 392439, 0x1ed9708)
BGSProjectile * projectile
Definition TESAmmo.h:30
Flag
Definition TESAmmo.h:22
@ kIgnoresNormalWeaponResistance
stl::enumeration< Flag, std::uint8_t > flags
Definition TESAmmo.h:31
std::uint16_t pa0A
Definition TESAmmo.h:33
float damage
Definition TESAmmo.h:34
std::uint8_t pa09
Definition TESAmmo.h:32
RecordFlag
Definition TESAmmo.h:69
@ kIgnored
Definition TESAmmo.h:72
@ kDeleted
Definition TESAmmo.h:71
@ kNonPlayable
Definition TESAmmo.h:70