CommonLibSSE (powerof3)
TESRegionDataSound.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/T/TESRegionData.h"
5 
6 namespace RE
7 {
8  class BGSMusicType;
9  class BGSSoundDescriptorForm;
10  class TESFile;
11 
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_TESRegionDataSound;
16  inline static constexpr auto VTABLE = VTABLE_TESRegionDataSound;
17  inline static constexpr auto TYPE = Type::kSound;
18 
19  struct Sound
20  {
21  enum class Flag
22  {
23  kNone = 0,
24  kPleasant = 1 << 0,
25  kCloudy = 1 << 1,
26  kRainy = 1 << 2,
27  kSnowy = 1 << 3
28  };
29 
32  float chance; // 0C
33  };
34  static_assert(sizeof(Sound) == 0x10);
35 
36  ~TESRegionDataSound() override; // 00
37 
38  // override (TESRegionData)
39  void LoadData(TESForm* a_form) override; // 02
40  Type GetType() const override; // 03 - { return Type::kSound; }
41  void ConstructSelf() override; // 04
42  void Unk_05(void) override; // 05
43  void CopyFrom(TESRegionData* a_src, bool a_copy) override; // 06
44  [[nodiscard]] bool IsLoaded() const override; // 07 - { return music == 0; }
45 
46  // add
47  virtual void Load(TESFile* a_mod); // 08
48 
49  // members
50  BGSMusicType* music; // 10 - RDMO
51  BSTArray<Sound*> sounds; // 18 - RDSA
52  };
53  static_assert(sizeof(TESRegionDataSound) == 0x30);
54 }
Definition: BGSMusicType.h:13
Definition: BGSSoundDescriptorForm.h:14
Definition: BSTArray.h:378
Definition: TESFile.h:17
Definition: TESForm.h:36
Definition: TESRegionDataSound.h:13
void LoadData(TESForm *a_form) override
bool IsLoaded() const override
static constexpr auto VTABLE
Definition: TESRegionDataSound.h:16
static constexpr auto RTTI
Definition: TESRegionDataSound.h:15
BSTArray< Sound * > sounds
Definition: TESRegionDataSound.h:51
void ConstructSelf() override
virtual void Load(TESFile *a_mod)
~TESRegionDataSound() override
BGSMusicType * music
Definition: TESRegionDataSound.h:50
void CopyFrom(TESRegionData *a_src, bool a_copy) override
void Unk_05(void) override
static constexpr auto TYPE
Definition: TESRegionDataSound.h:17
Type GetType() const override
Definition: TESRegionData.h:8
Type
Definition: TESRegionData.h:14
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_TESRegionDataSound
Definition: Offsets_VTABLE.h:12891
constexpr REL::ID RTTI_TESRegionDataSound(static_cast< std::uint64_t >(684984))
Definition: TESRegionDataSound.h:20
BGSSoundDescriptorForm * sound
Definition: TESRegionDataSound.h:30
Flag
Definition: TESRegionDataSound.h:22
float chance
Definition: TESRegionDataSound.h:32
REX::EnumSet< Flag, std::uint32_t > flags
Definition: TESRegionDataSound.h:31