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 
65  ~BGSDestructibleObjectForm() override; // 00
66 
67  // override (BaseFormComponent)
68  void InitializeDataComponent() override; // 01
69  void ClearDataComponent() override; // 02
70  void CopyComponent(BaseFormComponent* a_rhs) override; // 03
71 
72  // members
74  };
75  static_assert(sizeof(BGSDestructibleObjectForm) == 0x10);
76 }
Definition: BGSDebris.h:39
Definition: BGSDestructibleObjectForm.h:61
void InitializeDataComponent() override
void CopyComponent(BaseFormComponent *a_rhs) override
DestructibleObjectData * data
Definition: BGSDestructibleObjectForm.h:73
static constexpr auto RTTI
Definition: BGSDestructibleObjectForm.h:63
void ClearDataComponent() override
Definition: BGSExplosion.h:53
Definition: BaseFormComponent.h:8
Definition: TESModelTextureSwap.h:10
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSDestructibleObjectForm
Definition: Offsets_RTTI.h:1281
Definition: BGSDestructibleObjectForm.h:40
Flag
Definition: BGSDestructibleObjectForm.h:43
stl::enumeration< Flag, std::uint8_t > flags
Definition: BGSDestructibleObjectForm.h:51
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
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
stl::enumeration< DESTRUCTIBLE_OBJECT_STAGE_FLAGS, std::uint8_t > flags
Definition: BGSDestructibleObjectForm.h:28
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