CommonLibSSE NG
BGSMusicType.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSIMusicType.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/T/TESForm.h"
7 
8 namespace RE
9 {
10  class BGSMusicType :
11  public TESForm, // 00
12  public BSIMusicType // 20
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BGSMusicType;
16  inline static constexpr auto VTABLE = VTABLE_BGSMusicType;
17  inline static constexpr auto FORMTYPE = FormType::MusicType;
18 
19  struct RecordFlags
20  {
21  enum RecordFlag : std::uint32_t
22  {
23  kDeleted = 1 << 5,
24  kIgnored = 1 << 12
25  };
26  };
27 
28  ~BGSMusicType() override; // 00
29 
30  // override (TESForm)
31  void ClearData() override; // 05
32  bool Load(TESFile* a_mod) override; // 06
33  void InitItemImpl() override; // 13
34  const char* GetFormEditorID() const override; // 32 - { return editorID.c_str(); }
35  bool SetFormEditorID(const char* a_str) override; // 33 - { editorID = a_str; return true; }
36 
37  // override (BSIMusicType)
38  void DoUpdate() override; // 00
39  void DoPlay() override; // 01
40  void DoPause() override; // 02
41  void DoFinish(bool a_arg1) override; // 03
42  void DoApplyDuckingAttenuation(std::uint16_t a_arg1) override; // 04
43  void DoClearDucking() override; // 05
44  void DoPrepare() override; // 06
45 
46  // members
48  };
49  static_assert(sizeof(BGSMusicType) == 0x78);
50 }
Definition: BGSMusicType.h:13
static constexpr auto FORMTYPE
Definition: BGSMusicType.h:17
void DoPause() override
~BGSMusicType() override
bool SetFormEditorID(const char *a_str) override
static constexpr auto RTTI
Definition: BGSMusicType.h:15
void DoFinish(bool a_arg1) override
BSFixedString formEditorID
Definition: BGSMusicType.h:47
const char * GetFormEditorID() const override
void DoPrepare() override
static constexpr auto VTABLE
Definition: BGSMusicType.h:16
void ClearData() override
void DoApplyDuckingAttenuation(std::uint16_t a_arg1) override
bool Load(TESFile *a_mod) override
void DoUpdate() override
void DoClearDucking() override
void DoPlay() override
void InitItemImpl() override
Definition: BSIMusicType.h:11
Definition: TESFile.h:17
Definition: TESForm.h:36
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BGSMusicType(513898, 392436, 0x1ed9690)
constexpr std::array< REL::VariantID, 2 > VTABLE_BGSMusicType
Definition: Offsets_VTABLE.h:765
Definition: BGSMusicType.h:20
RecordFlag
Definition: BGSMusicType.h:22
@ kIgnored
Definition: BGSMusicType.h:24
@ kDeleted
Definition: BGSMusicType.h:23