CommonLibVR
ConeProjectile.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/H/hkRefPtr.h"
6 #include "RE/I/ImpactResults.h"
7 #include "RE/N/NiPoint3.h"
8 #include "RE/P/Projectile.h"
9 
10 namespace RE
11 {
12  class hkpSphereShape;
13 
14  class ConeProjectile : public Projectile
15  {
16  public:
17  inline static constexpr auto RTTI = RTTI_ConeProjectile;
18  inline static constexpr auto VTABLE = VTABLE_ConeProjectile;
19  inline static constexpr auto FORMTYPE = FormType::ProjectileCone;
20 
21  struct RecordFlags
22  {
23  enum RecordFlag : std::uint32_t
24  {
25  };
26  };
27 
28  ~ConeProjectile() override; // 00
29 
30  // override (Projectile)
31  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
32  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
33  void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
34  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
35  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
36  void Process3D() override; // A9
37  void UpdateImpl(float a_delta) override; // AB
38  bool ProcessImpacts() override; // AC
39  bool GetKillOnCollision() override; // B8 - { return 0; }
40  bhkShape* GetCollisionShape() override; // BC
41  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
42  bool HandleHits(hkpCollidable* a_collidable) override; // BE
43  void Handle3DLoaded() override; // C0
44 
45  // add
46  virtual void Unk_C2(void); // C2 - { return 1; }
47 
48  inline float GetHeight() const
49  {
51  }
52 
53  // members
55  float environmentTimer; // 1DC
56  float coneAngleTangent; // 1E0
58  NiPoint3 origin; // 1E8
59  std::uint32_t pad1F4; // 1F4
62  private:
63  KEEP_FOR_RE()
64  };
65 #ifndef SKYRIM_SUPPORT_AE
66  static_assert(sizeof(ConeProjectile) == 0x218);
67 #else
68  static_assert(sizeof(ConeProjectile) == 0x220);
69 #endif
70 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: ConeProjectile.h:15
void Handle3DLoaded() override
static constexpr auto VTABLE
Definition: ConeProjectile.h:18
bool GetKillOnCollision() override
hkRefPtr< hkpSphereShape > collisionShape
Definition: ConeProjectile.h:60
float initialCollisionSphereRadius
Definition: ConeProjectile.h:57
void UpdateImpl(float a_delta) override
NiPoint3 origin
Definition: ConeProjectile.h:58
virtual void Unk_C2(void)
std::uint32_t pad1F4
Definition: ConeProjectile.h:59
void Revert(BGSLoadFormBuffer *a_buf) override
float GetHeight() const
Definition: ConeProjectile.h:48
ImpactResult impactResult
Definition: ConeProjectile.h:54
float environmentTimer
Definition: ConeProjectile.h:55
static constexpr auto FORMTYPE
Definition: ConeProjectile.h:19
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
bhkShape * GetCollisionShape() override
bool HandleHits(hkpCollidable *a_collidable) override
void LoadGame(BGSLoadFormBuffer *a_buf) override
void SaveGame(BGSSaveFormBuffer *a_buf) override
void Process3D() override
BSTArray< void * > collisions
Definition: ConeProjectile.h:61
static constexpr auto RTTI
Definition: ConeProjectile.h:17
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
~ConeProjectile() override
bool ProcessImpacts() override
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
float coneAngleTangent
Definition: ConeProjectile.h:56
Definition: NiPoint3.h:6
Definition: Projectile.h:30
Definition: TESObjectREFR.h:113
Definition: bhkShape.h:10
Definition: hkRefPtr.h:7
Definition: hkpCollidable.h:13
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 4 > VTABLE_ConeProjectile
Definition: Offsets_VTABLE.h:11394
constexpr REL::ID RTTI_ConeProjectile(static_cast< std::uint64_t >(687502))
ImpactResult
Definition: ImpactResults.h:6
Definition: ConeProjectile.h:22
RecordFlag
Definition: ConeProjectile.h:24