CommonLibSSE (powerof3)
BGSSoundCategory.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESForm.h"
6 #include "RE/T/TESFullName.h"
7 
8 namespace RE
9 {
11  public TESForm, // 00
12  public TESFullName, // 20
13  public BSISoundCategory // 30
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_BGSSoundCategory;
17  inline static constexpr auto FORMTYPE = FormType::SoundCategory;
18 
19  enum class Flag // FNAM
20  {
21  kNone = 0,
22  kMuteWhenSubmerged = 1 << 0,
23  kShouldAppearOnMenu = 1 << 1
24  };
25 
26  struct RecordFlags
27  {
28  enum RecordFlag : std::uint32_t
29  {
30  kDeleted = 1 << 5,
31  kIgnored = 1 << 12
32  };
33  };
34 
35  ~BGSSoundCategory() override; // 00
36 
37  // override (TESForm)
38  void InitializeData() override; // 04
39  bool Load(TESFile* a_mod) override; // 06
40  void InitItemImpl() override; // 13
41 
42  // override (BGSSoundCategory)
43  bool Matches(const BSISoundCategory* a_category) const override; // 01
44  float GetCategoryVolume() const override; // 02
45  void SetCategoryVolume(float a_value) override; // 03
46  float GetCategoryFrequency() const override; // 04
47  void SetCategoryFrequency(float a_value) override; // 05
48  std::uint16_t GetCategoryAttenuation() const override; // 06
49  void SetCategoryAttenuation(std::uint16_t a_value) override; // 07
50 
51  [[nodiscard]] float GetDefaultMenuValue() const;
52  [[nodiscard]] float GetStaticVolumeMultiplier() const;
53  [[nodiscard]] bool IsMenuCategory() const;
54  void SetDefaultMenuValue(float a_val);
55  void SetStaticVolumeMultiplier(float a_val);
56 
57  // members
59  std::uint32_t unk3C; // 3C
61  std::uint16_t unk48; // 48
62  std::uint16_t attenuation; // 4A
63  std::uint16_t staticMult; // 4C - VNAM
64  std::uint16_t defaultMenuValue; // 4E - UNAM
65  float volumeMult; // 50
66  float frequencyMult; // 54
67  };
68  static_assert(sizeof(BGSSoundCategory) == 0x58);
69 }
Definition: BGSSoundCategory.h:14
std::uint16_t GetCategoryAttenuation() const override
void SetDefaultMenuValue(float a_val)
bool Load(TESFile *a_mod) override
void SetCategoryFrequency(float a_value) override
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSSoundCategory.h:58
float GetDefaultMenuValue() const
float GetStaticVolumeMultiplier() const
bool Matches(const BSISoundCategory *a_category) const override
void SetStaticVolumeMultiplier(float a_val)
~BGSSoundCategory() override
float GetCategoryVolume() const override
std::uint16_t defaultMenuValue
Definition: BGSSoundCategory.h:64
float frequencyMult
Definition: BGSSoundCategory.h:66
std::uint32_t unk3C
Definition: BGSSoundCategory.h:59
void SetCategoryAttenuation(std::uint16_t a_value) override
float GetCategoryFrequency() const override
static constexpr auto FORMTYPE
Definition: BGSSoundCategory.h:17
void InitItemImpl() override
std::uint16_t staticMult
Definition: BGSSoundCategory.h:63
Flag
Definition: BGSSoundCategory.h:20
void SetCategoryVolume(float a_value) override
BGSSoundCategory * parentCategory
Definition: BGSSoundCategory.h:60
void InitializeData() override
static constexpr auto RTTI
Definition: BGSSoundCategory.h:16
std::uint16_t unk48
Definition: BGSSoundCategory.h:61
float volumeMult
Definition: BGSSoundCategory.h:65
std::uint16_t attenuation
Definition: BGSSoundCategory.h:62
bool IsMenuCategory() const
Definition: BSISoundCategory.h:6
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESFullName.h:9
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSSoundCategory
Definition: Offsets_RTTI.h:1540
Definition: BGSSoundCategory.h:27
RecordFlag
Definition: BGSSoundCategory.h:29
@ kDeleted
Definition: BGSSoundCategory.h:30
@ kIgnored
Definition: BGSSoundCategory.h:31