18 class bhkCollisionObject;
20 class bhkSimpleShapePhantom;
21 class BGSMaterialType;
23 class CombatController;
123 void Revert(BGSLoadFormBuffer* a_buf)
override;
220#ifndef SKYRIM_SUPPORT_AE
Definition: ActorCause.h:9
Definition: AlchemyItem.h:24
Definition: BGSExplosion.h:53
Definition: BGSKeyword.h:10
Definition: BGSMaterialType.h:12
Definition: BGSProjectile.h:79
Definition: BSAtomic.h:49
Definition: BSTArray.h:377
Definition: CombatController.h:23
Definition: EffectSetting.h:24
Definition: EnchantmentItem.h:10
Definition: InventoryEntryData.h:15
Definition: MagicCaster.h:17
Definition: MagicItem.h:27
Definition: NiAVObject.h:50
Definition: NiMatrix3.h:8
Definition: NiSmartPointer.h:9
Definition: Projectile.h:43
BSTArray< WobbleControl > wobble
Definition: Projectile.h:52
BSTArray< ProjectileHandle > pending
Definition: Projectile.h:50
static Manager * GetSingleton()
BSTArray< ProjectileHandle > limited
Definition: Projectile.h:49
BSTArray< ProjectileHandle > unlimited
Definition: Projectile.h:48
BSSpinLock projectileLock
Definition: Projectile.h:51
Definition: Projectile.h:27
NiPointer< ActorCause > actorCause
Definition: Projectile.h:188
BGSExplosion * explosion
Definition: Projectile.h:195
virtual void Handle3DLoaded()
virtual float GetPowerSpeedMult() const
ObjectRefHandle shooter
Definition: Projectile.h:189
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
float livingTime
Definition: Projectile.h:206
bool GetAllowPromoteToPersistent() const override
void * unk108
Definition: Projectile.h:186
NiPointer< QueuedFile > projectileDBFiles
Definition: Projectile.h:200
void * unk110
Definition: Projectile.h:187
std::uint64_t unk1D0
Definition: Projectile.h:218
std::uint32_t flags
Definition: Projectile.h:217
ObjectRefHandle desiredTarget
Definition: Projectile.h:190
virtual bool IsBarrierProjectile()
virtual bool ShouldUseDesiredTarget()
float speedMult
Definition: Projectile.h:204
std::uint64_t unk1A0
Definition: Projectile.h:209
EffectSetting * avEffect
Definition: Projectile.h:199
void MoveHavok(bool a_forceRec) override
NiNode * GetFireNode() override
std::uint32_t * unk140
Definition: Projectile.h:193
virtual void ReportHavokDeactivation()
float range
Definition: Projectile.h:205
virtual void PostLoad3D(NiAVObject *a_root)
void LoadGame(BGSLoadFormBuffer *a_buf) override
virtual bool TargetsWholeBody()
virtual float GetWeaponSpeedMult() const
virtual void OnTriggerEnter()
NiPoint3 linearVelocity
Definition: Projectile.h:185
float distanceMoved
Definition: Projectile.h:214
std::uint64_t unk180
Definition: Projectile.h:202
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
virtual bool GetKillOnCollision()
virtual std::uint32_t GetCollisionGroup()
float weaponDamage
Definition: Projectile.h:207
virtual float GetGravity()
bool Load(TESFile *a_mod) override
virtual bool TurnOff(Actor *a_owner, bool a_noDeactivateSound)
virtual bool GetStopMainSoundAfterImpact()
void Set3D(NiAVObject *a_object, bool a_queue3DTasks=true) override
virtual void CleanUpPointersOnDisable()
float unk1A8
Definition: Projectile.h:210
NiAVObject * Load3D(bool a_backgroundLoading) override
virtual bhkShape * GetCollisionShape()
virtual bool ProcessImpacts()
static BSPointerHandle< Projectile > * Launch(BSPointerHandle< Projectile > *a_result, LaunchData &a_data) noexcept
float transparency
Definition: Projectile.h:208
virtual bool IsGrenadeProjectile()
std::uint32_t pad164
Definition: Projectile.h:198
static constexpr auto RTTI
Definition: Projectile.h:29
BSSoundHandle sndCountdown
Definition: Projectile.h:192
std::uint64_t unk178
Definition: Projectile.h:201
BSSimpleList< ImpactData * > impacts
Definition: Projectile.h:179
virtual bool IsPermanent() const
void SaveGame(BGSSaveFormBuffer *a_buf) override
virtual bool ShouldBeLimited()
virtual bool IsBeamProjectile()
virtual bool IsMissileProjectile()
NiPoint3 velocity
Definition: Projectile.h:184
virtual bool HandleHits(hkpCollidable *a_collidable)
BSSpinLock unk0E8
Definition: Projectile.h:183
bool OnAddCellPerformQueueReference(TESObjectCELL &a_cell) const override
bhkSimpleShapePhantom * unk0E0
Definition: Projectile.h:182
virtual void Unk_A6(void)
virtual void Unk_AE(void)
virtual bool RunTargetPick()
InventoryEntryData * unk148
Definition: Projectile.h:194
static constexpr auto VTABLE
Definition: Projectile.h:30
MagicSystem::CastingSource castingSource
Definition: Projectile.h:197
void SetActorCause(ActorCause *a_cause) override
void InitHavok() override
bool DetachHavok(NiAVObject *a_obj3D) override
BSSoundHandle sndHandle
Definition: Projectile.h:191
bool HasKeywordHelper(const BGSKeyword *a_keyword) const override
TESAmmo * ammoSource
Definition: Projectile.h:213
virtual void AddImpact(TESObjectREFR *a_ref, const NiPoint3 &a_targetLoc, const NiPoint3 &a_velocity, hkpCollidable *a_collidable, std::int32_t a_arg6, std::uint32_t a_arg7)
void GetLinearVelocity(NiPoint3 &a_velocity) const override
MagicCaster * GetMagicCaster(MagicSystem::CastingSource a_source) override
Projectile * AsProjectile() override
float unk0DC
Definition: Projectile.h:181
NiTransform unk0A8
Definition: Projectile.h:180
void Revert(BGSLoadFormBuffer *a_buf) override
std::uint32_t unk1C4
Definition: Projectile.h:215
ActorCause * GetActorCause() const override
float unk1AC
Definition: Projectile.h:211
virtual void UpdateImpl(float a_delta)=0
TESObjectWEAP * weaponSource
Definition: Projectile.h:212
float scale
Definition: Projectile.h:216
MagicItem * spell
Definition: Projectile.h:196
float power
Definition: Projectile.h:203
virtual bool IsFlameProjectile()
Definition: TESObjectCELL.h:115
Definition: TESObjectREFR.h:110
Definition: TESObjectWEAP.h:73
Definition: bhkShape.h:10
Definition: hkpCollidable.h:13
CastingSource
Definition: MagicSystem.h:21
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 4 > VTABLE_Projectile
Definition: Offsets_VTABLE.h:12566
ImpactResult
Definition: ImpactResults.h:6
constexpr REL::ID RTTI_Projectile(static_cast< std::uint64_t >(514046))
constexpr REL::ID RTTI_Projectile__LaunchData(static_cast< std::uint64_t >(684852))
constexpr std::array< REL::ID, 1 > VTABLE_Projectile__LaunchData
Definition: Offsets_VTABLE.h:12568
Definition: BSSoundHandle.h:10
Definition: BSTSingleton.h:50
Definition: Projectile.h:96
stl::enumeration< COL_LAYER, std::int32_t > collidedLayer
Definition: Projectile.h:105
BGSMaterialType * material
Definition: Projectile.h:103
std::int32_t damageRootNodeType
Definition: Projectile.h:104
NiPoint3 desiredTargetLoc
Definition: Projectile.h:99
std::uint16_t unk46
Definition: Projectile.h:109
NiPointer< bhkCollisionObject > colObj
Definition: Projectile.h:102
ImpactResult impactResult
Definition: Projectile.h:107
std::uint8_t unk49
Definition: Projectile.h:111
ObjectRefHandle collidee
Definition: Projectile.h:101
std::uint8_t unk48
Definition: Projectile.h:110
NiPoint3 negativeVelocity
Definition: Projectile.h:100
NiNode * damageRootNode
Definition: Projectile.h:106
std::uint16_t unk44
Definition: Projectile.h:108
Definition: Projectile.h:56
static constexpr auto RTTI
Definition: Projectile.h:57
std::uint32_t unk7C
Definition: Projectile.h:79
EnchantmentItem * enchantItem
Definition: Projectile.h:80
MagicItem * spell
Definition: Projectile.h:77
float unk60
Definition: Projectile.h:74
TESAmmo * ammoSource
Definition: Projectile.h:69
TESObjectREFR * desiredTarget
Definition: Projectile.h:73
float unk64
Definition: Projectile.h:75
BGSProjectile * projectileBase
Definition: Projectile.h:65
NiPoint3 origin
Definition: Projectile.h:63
bool noDamageOutsideCombat
Definition: Projectile.h:86
std::int32_t area
Definition: Projectile.h:82
void * unk50
Definition: Projectile.h:72
bool useOrigin
Definition: Projectile.h:89
TESObjectWEAP * weaponSource
Definition: Projectile.h:68
NiPoint3 contactNormal
Definition: Projectile.h:64
float angleZ
Definition: Projectile.h:70
float power
Definition: Projectile.h:83
TESObjectREFR * shooter
Definition: Projectile.h:66
float scale
Definition: Projectile.h:84
MagicSystem::CastingSource castingSource
Definition: Projectile.h:78
float angleX
Definition: Projectile.h:71
CombatController * combatController
Definition: Projectile.h:67
bool alwaysHit
Definition: Projectile.h:85
bool forceConeOfFire
Definition: Projectile.h:91
static constexpr auto VTABLE
Definition: Projectile.h:58
bool deferInitialization
Definition: Projectile.h:90
bool unk9F
Definition: Projectile.h:88
TESObjectCELL * parentCell
Definition: Projectile.h:76
bool autoAim
Definition: Projectile.h:87
AlchemyItem * poison
Definition: Projectile.h:81
Definition: Projectile.h:33
NiMatrix3 unk00
Definition: Projectile.h:36
float wobble
Definition: Projectile.h:38
ProjectileHandle handle
Definition: Projectile.h:37