CommonLibVR
FlameProjectile.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/F/FormTypes.h"
4 #include "RE/P/Projectile.h"
5 
6 namespace RE
7 {
8  class FlameProjectile : public Projectile
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_FlameProjectile;
12  inline static constexpr auto VTABLE = VTABLE_FlameProjectile;
13  inline static constexpr auto FORMTYPE = FormType::ProjectileFlame;
14 
15  struct RecordFlags
16  {
17  enum RecordFlag : std::uint32_t
18  {
19  };
20  };
21 
22  ~FlameProjectile() override; // 00
23 
24  // override (Projectile)
25  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
26  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
27  void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
28  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
29  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
30  bool IsFlameProjectile() override; // A4 - { return 1; }
31  void Process3D() override; // A9
32  void UpdateImpl(float a_delta) override; // AB
33  bool RunTargetPick() override; // B7
34  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) override; // BD
35  void Handle3DLoaded() override; // C0 - { flags = flags & 0xFFFFFFCC | 8; }
36  bool ShouldUseDesiredTarget() override; // C1
37 
38  // members
39  float expirationTimer; // 1D8
40  float coneAngle; // 1DC
41  private:
42  KEEP_FOR_RE()
43  };
44 #ifndef SKYRIM_SUPPORT_AE
45  static_assert(sizeof(FlameProjectile) == 0x1E0);
46 #else
47  static_assert(sizeof(FlameProjectile) == 0x1E8);
48 #endif
49 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: FlameProjectile.h:9
static constexpr auto FORMTYPE
Definition: FlameProjectile.h:13
~FlameProjectile() override
void Revert(BGSLoadFormBuffer *a_buf) override
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
bool IsFlameProjectile() override
static constexpr auto VTABLE
Definition: FlameProjectile.h:12
bool ShouldUseDesiredTarget() override
static constexpr auto RTTI
Definition: FlameProjectile.h:11
void Process3D() override
float coneAngle
Definition: FlameProjectile.h:40
void UpdateImpl(float a_delta) override
float expirationTimer
Definition: FlameProjectile.h:39
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) override
void Handle3DLoaded() override
void LoadGame(BGSLoadFormBuffer *a_buf) override
bool RunTargetPick() override
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
void SaveGame(BGSSaveFormBuffer *a_buf) override
Definition: NiPoint3.h:6
Definition: Projectile.h:30
Definition: TESObjectREFR.h:113
Definition: hkpCollidable.h:13
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_FlameProjectile(static_cast< std::uint64_t >(687505))
constexpr std::array< REL::ID, 4 > VTABLE_FlameProjectile
Definition: Offsets_VTABLE.h:11657
Definition: FlameProjectile.h:16
RecordFlag
Definition: FlameProjectile.h:18