CommonLibSSE (powerof3)
BGSDestructibleObjectForm.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/F/FormTypes.h"
5 #include "RE/N/NiSmartPointer.h"
6 
7 namespace RE
8 {
9  class QueuedFile;
10  class TESModelTextureSwap;
11 
13  {
14  public:
16  {
17  kNone = 0,
18  kCapDamage = 1 << 0,
19  kDisableObject = 1 << 1,
20  kDestroyObject = 1 << 2,
21  kIgnoreExternalDamage = 1 << 3,
22  kBecomesDynamic = 1 << 4
23  };
24 
25  // members
26  std::int8_t modelDamageStage; // 00 - DSTD~
27  std::int8_t healthPercentage; // 01
29  std::uint8_t pad03; // 03
30  std::uint32_t selfDamagePerSecond; // 04
32  BGSDebris* debris; // 10
33  std::uint32_t debrisCount; // 18 - ~DSTD
34  std::uint32_t pad1C; // 1C
36  };
37  static_assert(sizeof(DestructibleObjectStage) == 0x28);
38 
40  {
41  public:
42  enum class Flag
43  {
44  kNone = 0,
45  kVatsTargetable = 1 << 0
46  };
47 
48  // members
49  std::uint32_t health; // 00 - DEST~
50  std::int8_t numStages; // 04
52  std::uint16_t pad06; // 06
54  volatile std::int32_t replacementModelRefCount; // 10
55  std::uint32_t pad14; // 14
57  };
58  static_assert(sizeof(DestructibleObjectData) == 0x20);
59 
61  {
62  public:
63  inline static constexpr auto RTTI = RTTI_BGSDestructibleObjectForm;
64  inline static constexpr auto VTABLE = VTABLE_BGSDestructibleObjectForm;
65 
66  ~BGSDestructibleObjectForm() override; // 00
67 
68  // override (BaseFormComponent)
69  void InitializeDataComponent() override; // 01
70  void ClearDataComponent() override; // 02
71  void CopyComponent(BaseFormComponent* a_rhs) override; // 03
72 
73  // members
75  };
76  static_assert(sizeof(BGSDestructibleObjectForm) == 0x10);
77 }
Definition: BGSDebris.h:42
Definition: BGSDestructibleObjectForm.h:61
void InitializeDataComponent() override
void CopyComponent(BaseFormComponent *a_rhs) override
DestructibleObjectData * data
Definition: BGSDestructibleObjectForm.h:74
static constexpr auto RTTI
Definition: BGSDestructibleObjectForm.h:63
static constexpr auto VTABLE
Definition: BGSDestructibleObjectForm.h:64
void ClearDataComponent() override
Definition: BGSExplosion.h:53
Definition: BaseFormComponent.h:8
Definition: TESModelTextureSwap.h:10
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BGSDestructibleObjectForm
Definition: Offsets_VTABLE.h:8604
constexpr REL::ID RTTI_BGSDestructibleObjectForm(static_cast< std::uint64_t >(513862))
Definition: BGSDestructibleObjectForm.h:40
Flag
Definition: BGSDestructibleObjectForm.h:43
std::uint16_t pad06
Definition: BGSDestructibleObjectForm.h:52
NiPointer< QueuedFile > preloadedReplacementModels
Definition: BGSDestructibleObjectForm.h:56
std::uint32_t health
Definition: BGSDestructibleObjectForm.h:49
std::uint32_t pad14
Definition: BGSDestructibleObjectForm.h:55
REX::EnumSet< Flag, std::uint8_t > flags
Definition: BGSDestructibleObjectForm.h:51
DestructibleObjectStage ** stages
Definition: BGSDestructibleObjectForm.h:53
std::int8_t numStages
Definition: BGSDestructibleObjectForm.h:50
volatile std::int32_t replacementModelRefCount
Definition: BGSDestructibleObjectForm.h:54
Definition: BGSDestructibleObjectForm.h:13
BGSExplosion * explosion
Definition: BGSDestructibleObjectForm.h:31
std::int8_t healthPercentage
Definition: BGSDestructibleObjectForm.h:27
std::uint8_t pad03
Definition: BGSDestructibleObjectForm.h:29
TESModelTextureSwap * replacementModel
Definition: BGSDestructibleObjectForm.h:35
std::uint32_t selfDamagePerSecond
Definition: BGSDestructibleObjectForm.h:30
BGSDebris * debris
Definition: BGSDestructibleObjectForm.h:32
std::uint32_t debrisCount
Definition: BGSDestructibleObjectForm.h:33
std::int8_t modelDamageStage
Definition: BGSDestructibleObjectForm.h:26
DESTRUCTIBLE_OBJECT_STAGE_FLAGS
Definition: BGSDestructibleObjectForm.h:16
std::uint32_t pad1C
Definition: BGSDestructibleObjectForm.h:34
REX::EnumSet< DESTRUCTIBLE_OBJECT_STAGE_FLAGS, std::uint8_t > flags
Definition: BGSDestructibleObjectForm.h:28