CommonLibSSE NG
BGSImpactData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/C/Color.h"
4 #include "RE/D/DecalData.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/I/ImpactResults.h"
7 #include "RE/S/SoundLevels.h"
8 #include "RE/T/TESForm.h"
9 #include "RE/T/TESModel.h"
10 
11 namespace RE
12 {
13  class BGSImpactData :
14  public TESForm, // 00
15  public TESModel // 20
16  {
17  public:
18  inline static constexpr auto RTTI = RTTI_BGSImpactData;
19  inline static constexpr auto VTABLE = VTABLE_BGSImpactData;
20  inline static constexpr auto FORMTYPE = FormType::Impact;
21 
22  enum class ORIENTATION
23  {
24  kSurfaceNormal = 0,
25  kProjVector = 1,
26  kProjReflect = 2
27  };
28 
29  struct RecordFlags
30  {
31  enum RecordFlag : std::uint32_t
32  {
33  kDeleted = 1 << 5,
34  kIgnored = 1 << 12
35  };
36  };
37 
38  struct IMPACT_DATA_DATA // DATA
39  {
40  enum class Flag
41  {
42  kNone = 0,
43  kNoDecalData = 1 << 0
44  };
45 
46  float effectDuration; // 00
48  float angleThreshold; // 08
49  float placementRadius; // 0C
53  std::uint16_t unk16; // 16
54  };
55  static_assert(sizeof(IMPACT_DATA_DATA) == 0x18);
56 
57  ~BGSImpactData() override; // 00
58 
59  // override (TESForm)
60  void InitializeData() override; // 04
61  bool Load(TESFile* a_mod) override; // 06
62  void InitItemImpl() override; // 13
63 
64  // members
65  IMPACT_DATA_DATA data; // 48 - DATA
70  BGSHazard* hazard; // 80 - NAM2
71  DecalData dData; // 88 - DODT
72  std::uint32_t padAC; // AC
73  };
74  static_assert(sizeof(BGSImpactData) == 0xB0);
75 }
Definition: BGSHazard.h:44
Definition: BGSImpactData.h:16
static constexpr auto RTTI
Definition: BGSImpactData.h:18
BGSSoundDescriptorForm * sound2
Definition: BGSImpactData.h:69
static constexpr auto VTABLE
Definition: BGSImpactData.h:19
void InitializeData() override
BGSTextureSet * decalTextureSet2
Definition: BGSImpactData.h:67
~BGSImpactData() override
BGSTextureSet * decalTextureSet
Definition: BGSImpactData.h:66
void InitItemImpl() override
ORIENTATION
Definition: BGSImpactData.h:23
DecalData dData
Definition: BGSImpactData.h:71
BGSSoundDescriptorForm * sound1
Definition: BGSImpactData.h:68
std::uint32_t padAC
Definition: BGSImpactData.h:72
static constexpr auto FORMTYPE
Definition: BGSImpactData.h:20
IMPACT_DATA_DATA data
Definition: BGSImpactData.h:65
BGSHazard * hazard
Definition: BGSImpactData.h:70
bool Load(TESFile *a_mod) override
Definition: BGSSoundDescriptorForm.h:14
Definition: BGSTextureSet.h:16
Definition: TESFile.h:17
Definition: TESForm.h:36
Definition: TESModel.h:16
Definition: AbsorbEffect.h:6
SOUND_LEVEL
Definition: SoundLevels.h:6
constexpr REL::VariantID RTTI_BGSImpactData(685238, 393010, 0x1ee2138)
constexpr std::array< REL::VariantID, 2 > VTABLE_BGSImpactData
Definition: Offsets_VTABLE.h:720
Definition: BGSImpactData.h:39
SOUND_LEVEL soundLevel
Definition: BGSImpactData.h:50
float placementRadius
Definition: BGSImpactData.h:49
std::uint16_t unk16
Definition: BGSImpactData.h:53
stl::enumeration< ORIENTATION, std::uint32_t > orient
Definition: BGSImpactData.h:47
stl::enumeration< ImpactResult, std::uint8_t > resultOverride
Definition: BGSImpactData.h:52
float effectDuration
Definition: BGSImpactData.h:46
stl::enumeration< Flag, std::uint8_t > flags
Definition: BGSImpactData.h:51
float angleThreshold
Definition: BGSImpactData.h:48
Flag
Definition: BGSImpactData.h:41
Definition: BGSImpactData.h:30
RecordFlag
Definition: BGSImpactData.h:32
@ kIgnored
Definition: BGSImpactData.h:34
@ kDeleted
Definition: BGSImpactData.h:33
Definition: DecalData.h:33