CommonLibVR
BarrierProjectile.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/P/Projectile.h"
6 
7 namespace RE
8 {
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BarrierProjectile;
13  inline static constexpr auto VTABLE = VTABLE_BarrierProjectile;
14  inline static constexpr auto FORMTYPE = FormType::ProjectileBarrier;
15 
16  struct RecordFlags
17  {
18  enum RecordFlag : std::uint32_t
19  {
20  };
21  };
22 
24  {
26  std::uint32_t count; // 4
27  };
28  static_assert(sizeof(CollisionData) == 0x8);
29 
30  ~BarrierProjectile() override; // 00
31 
32  // override (Projectile)
33  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
34  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
35  void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
36  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
37  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
38  void InitHavok() override; // 66
39  NiAVObject* Load3D(bool a_backgroundLoading) override; // 6A
40  bool IsBarrierProjectile() override; // A7 - { return 1; }
41  void UpdateImpl(float a_delta) override; // AB
42  bool ProcessImpacts() override; // AC
43  bool GetKillOnCollision() override; // B8 - { return 0; }
44 
45  // members
46  float width; // 1D8
47  std::uint32_t pad1DC; // 1DC
49  private:
50  KEEP_FOR_RE()
51  };
52 #ifndef SKYRIM_SUPPORT_AE
53  static_assert(sizeof(BarrierProjectile) == 0x1F8);
54 #else
55  static_assert(sizeof(BarrierProjectile) == 0x200);
56 #endif
57 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BSTArray.h:378
Definition: BarrierProjectile.h:10
void Revert(BGSLoadFormBuffer *a_buf) override
void InitHavok() override
bool GetKillOnCollision() override
bool IsBarrierProjectile() override
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
static constexpr auto RTTI
Definition: BarrierProjectile.h:12
void LoadGame(BGSLoadFormBuffer *a_buf) override
NiAVObject * Load3D(bool a_backgroundLoading) override
bool ProcessImpacts() override
static constexpr auto VTABLE
Definition: BarrierProjectile.h:13
static constexpr auto FORMTYPE
Definition: BarrierProjectile.h:14
void SaveGame(BGSSaveFormBuffer *a_buf) override
std::uint32_t pad1DC
Definition: BarrierProjectile.h:47
~BarrierProjectile() override
void UpdateImpl(float a_delta) override
float width
Definition: BarrierProjectile.h:46
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
BSTArray< CollisionData > collisionData
Definition: BarrierProjectile.h:48
Definition: NiAVObject.h:57
Definition: Projectile.h:30
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 4 > VTABLE_BarrierProjectile
Definition: Offsets_VTABLE.h:10602
constexpr REL::ID RTTI_BarrierProjectile(static_cast< std::uint64_t >(687497))
Definition: BarrierProjectile.h:24
ObjectRefHandle ref
Definition: BarrierProjectile.h:25
std::uint32_t count
Definition: BarrierProjectile.h:26
Definition: BarrierProjectile.h:17
RecordFlag
Definition: BarrierProjectile.h:19