CommonLibSSE (powerof3)
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 FORMTYPE = FormType::Impact;
20 
21  enum class ORIENTATION
22  {
23  kSurfaceNormal = 0,
24  kProjVector = 1,
25  kProjReflect = 2
26  };
27 
28  struct RecordFlags
29  {
30  enum RecordFlag : std::uint32_t
31  {
32  kDeleted = 1 << 5,
33  kIgnored = 1 << 12
34  };
35  };
36 
37  struct IMPACT_DATA_DATA // DATA
38  {
39  enum class Flag
40  {
41  kNone = 0,
42  kNoDecalData = 1 << 0
43  };
44 
45  float effectDuration; // 00
47  float angleThreshold; // 08
48  float placementRadius; // 0C
52  std::uint16_t unk16; // 16
53  };
54  static_assert(sizeof(IMPACT_DATA_DATA) == 0x18);
55 
56  ~BGSImpactData() override; // 00
57 
58  // override (TESForm)
59  void InitializeData() override; // 04
60  bool Load(TESFile* a_mod) override; // 06
61  void InitItemImpl() override; // 13
62 
63  // members
64  IMPACT_DATA_DATA data; // 48 - DATA
69  BGSHazard* hazard; // 80 - NAM2
70  DecalData dData; // 88 - DODT
71  std::uint32_t padAC; // AC
72  };
73  static_assert(sizeof(BGSImpactData) == 0xB0);
74 }
Definition: BGSHazard.h:44
Definition: BGSImpactData.h:16
static constexpr auto RTTI
Definition: BGSImpactData.h:18
BGSSoundDescriptorForm * sound2
Definition: BGSImpactData.h:68
void InitializeData() override
BGSTextureSet * decalTextureSet2
Definition: BGSImpactData.h:66
~BGSImpactData() override
BGSTextureSet * decalTextureSet
Definition: BGSImpactData.h:65
void InitItemImpl() override
ORIENTATION
Definition: BGSImpactData.h:22
DecalData dData
Definition: BGSImpactData.h:70
BGSSoundDescriptorForm * sound1
Definition: BGSImpactData.h:67
std::uint32_t padAC
Definition: BGSImpactData.h:71
static constexpr auto FORMTYPE
Definition: BGSImpactData.h:19
IMPACT_DATA_DATA data
Definition: BGSImpactData.h:64
BGSHazard * hazard
Definition: BGSImpactData.h:69
bool Load(TESFile *a_mod) override
Definition: BGSSoundDescriptorForm.h:14
Definition: BGSTextureSet.h:16
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESModel.h:16
Definition: AbsorbEffect.h:6
SOUND_LEVEL
Definition: SoundLevels.h:6
constexpr REL::ID RTTI_BGSImpactData
Definition: Offsets_RTTI.h:1310
Definition: BGSImpactData.h:38
SOUND_LEVEL soundLevel
Definition: BGSImpactData.h:49
float placementRadius
Definition: BGSImpactData.h:48
std::uint16_t unk16
Definition: BGSImpactData.h:52
stl::enumeration< ORIENTATION, std::uint32_t > orient
Definition: BGSImpactData.h:46
stl::enumeration< ImpactResult, std::uint8_t > resultOverride
Definition: BGSImpactData.h:51
float effectDuration
Definition: BGSImpactData.h:45
stl::enumeration< Flag, std::uint8_t > flags
Definition: BGSImpactData.h:50
float angleThreshold
Definition: BGSImpactData.h:47
Flag
Definition: BGSImpactData.h:40
Definition: BGSImpactData.h:29
RecordFlag
Definition: BGSImpactData.h:31
@ kIgnored
Definition: BGSImpactData.h:33
@ kDeleted
Definition: BGSImpactData.h:32
Definition: DecalData.h:33