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);
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);
165 #undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition: TESAmmo.h:78
Definition: BGSKeyword.h:10
Definition: BGSMessageIcon.h:9
Definition: BGSPickupPutdownSounds.h:10
Definition: BGSProjectile.h:79
Definition: NiAVObject.h:50
void InitItemImpl() override
TESDescription * AsDescriptionForm() noexcept
Definition: TESAmmo.h:136
bool GetPlayable() const override
const BGSDestructibleObjectForm * AsDestructibleObjectForm() const noexcept
Definition: TESAmmo.h:121
static constexpr auto RTTI
Definition: TESAmmo.h:62
const BGSPickupPutdownSounds * AsPickupPutdownSoundsForm() const noexcept
Definition: TESAmmo.h:131
void HandleRemoveItemFromContainer(TESObjectREFR *a_container) override
static constexpr auto VTABLE
Definition: TESAmmo.h:63
bool IgnoresNormalWeaponResistance()
void SaveGame(BGSSaveFormBuffer *a_buf) override
BGSDestructibleObjectForm * AsDestructibleObjectForm() noexcept
Definition: TESAmmo.h:116
NiAVObject * Clone3D(TESObjectREFR *a_ref, bool a_arg3) override
void InitializeData() override
BGSKeywordForm * AsKeywordForm() noexcept
Definition: TESAmmo.h:146
BGSKeyword * GetDefaultKeyword() const override
static constexpr auto FORMTYPE
Definition: TESAmmo.h:64
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition: TESAmmo.h:111
const BGSKeywordForm * AsKeywordForm() const noexcept
Definition: TESAmmo.h:151
RUNTIME_DATA & GetRuntimeData() noexcept
Definition: TESAmmo.h:106
BGSPickupPutdownSounds * AsPickupPutdownSoundsForm() noexcept
Definition: TESAmmo.h:126
bool Load(TESFile *a_mod) override
void LoadGame(BGSLoadFormBuffer *a_buf) override
const TESDescription * AsDescriptionForm() const noexcept
Definition: TESAmmo.h:141
Definition: TESBoundObject.h:24
Definition: TESDescription.h:12
Definition: TESFullName.h:9
Definition: TESModelTextureSwap.h:10
Definition: TESObjectREFR.h:113
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