CommonLibSSE (powerof3)
BSIMusicType.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/F/FormTypes.h"
5 
6 namespace RE
7 {
8  class BSIMusicTrack;
9 
11  {
12  public:
13  inline static constexpr auto RTTI = RTTI_BSIMusicType;
14  inline static constexpr auto VTABLE = VTABLE_BSIMusicType;
15 
16  enum class MST // FNAM
17  {
18  kNone = 0,
19  kPlaysOnce = 1 << 0,
20  kAbruptTransition = 1 << 1,
21  kCycleTracks = 1 << 2,
22  kUseTrackOrder = 1 << 3,
23  kRemovalQueued = 1 << 4,
24  kPlaysOver = 1 << 5,
25  kDoesntQueue = 1 << 6
26  };
27 
28  enum class MUSIC_STATUS
29  {
30  kInactive = 0,
31  kPlaying = 1,
32  kPaused = 2,
33  kFinishing = 3,
34  kFinished = 4
35  };
36 
37  // add
38  virtual void DoUpdate() = 0; // 00
39  virtual void DoPlay() = 0; // 01
40  virtual void DoPause() = 0; // 02
41  virtual void DoFinish(bool a_arg1) = 0; // 03
42  virtual void DoApplyDuckingAttenuation(std::uint16_t a_ducking); // 04 - { return; }
43  virtual void DoClearDucking(); // 05 - { return; }
44  virtual void DoPrepare(); // 06 - { return; }
45 
46  virtual ~BSIMusicType(); // 07
47 
48  // members
50  std::uint8_t priority; // 0C
51  std::uint8_t padding; // 0D
52  std::uint16_t ducksOtherMusicBy; // 0E - ck value * 100 as a std::uint16_t
53  float fadeTime; // 10 - WNAM
54  std::uint32_t currentTrackIndex; // 14
58  std::uint32_t pad4C; // 4C
59  };
60  static_assert(sizeof(BSIMusicType) == 0x50);
61 }
Definition: BSIMusicType.h:11
std::uint32_t pad4C
Definition: BSIMusicType.h:58
BSTArray< std::uint32_t > trackHistory
Definition: BSIMusicType.h:55
float fadeTime
Definition: BSIMusicType.h:53
BSTArray< BSIMusicTrack * > tracks
Definition: BSIMusicType.h:56
static constexpr auto VTABLE
Definition: BSIMusicType.h:14
static constexpr auto RTTI
Definition: BSIMusicType.h:13
virtual ~BSIMusicType()
REX::EnumSet< MUSIC_STATUS, std::uint32_t > typeStatus
Definition: BSIMusicType.h:57
virtual void DoFinish(bool a_arg1)=0
virtual void DoPrepare()
std::uint16_t ducksOtherMusicBy
Definition: BSIMusicType.h:52
std::uint8_t padding
Definition: BSIMusicType.h:51
std::uint32_t currentTrackIndex
Definition: BSIMusicType.h:54
virtual void DoPause()=0
std::uint8_t priority
Definition: BSIMusicType.h:50
MUSIC_STATUS
Definition: BSIMusicType.h:29
virtual void DoApplyDuckingAttenuation(std::uint16_t a_ducking)
MST
Definition: BSIMusicType.h:17
REX::EnumSet< MST, std::uint32_t > flags
Definition: BSIMusicType.h:49
virtual void DoUpdate()=0
virtual void DoClearDucking()
virtual void DoPlay()=0
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSIMusicType(static_cast< std::uint64_t >(685276))
constexpr std::array< REL::ID, 1 > VTABLE_BSIMusicType
Definition: Offsets_VTABLE.h:9048