CommonLibSSE NG
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 
15  enum class MST // FNAM
16  {
17  kNone = 0,
18  kPlaysOnce = 1 << 0,
19  kAbruptTransition = 1 << 1,
20  kCycleTracks = 1 << 2,
21  kUseTrackOrder = 1 << 3,
22  kRemovalQueued = 1 << 4,
23  kPlaysOver = 1 << 5,
24  kDoesntQueue = 1 << 6
25  };
26 
27  enum class MUSIC_STATUS
28  {
29  kInactive = 0,
30  kPlaying = 1,
31  kPaused = 2,
32  kFinishing = 3,
33  kFinished = 4
34  };
35 
36  // add
37  virtual void DoUpdate() = 0; // 00
38  virtual void DoPlay() = 0; // 01
39  virtual void DoPause() = 0; // 02
40  virtual void DoFinish(bool a_arg1) = 0; // 03
41  virtual void DoApplyDuckingAttenuation(std::uint16_t a_ducking); // 04 - { return; }
42  virtual void DoClearDucking(); // 05 - { return; }
43  virtual void DoPrepare(); // 06 - { return; }
44 
45  virtual ~BSIMusicType(); // 07
46 
47  // members
49  std::uint8_t priority; // 0C
50  std::uint8_t padding; // 0D
51  std::uint16_t ducksOtherMusicBy; // 0E - ck value * 100 as a std::uint16_t
52  float fadeTime; // 10 - WNAM
53  std::uint32_t currentTrackIndex; // 14
57  std::uint32_t pad4C; // 4C
58  };
59  static_assert(sizeof(BSIMusicType) == 0x50);
60 }
Definition: BSIMusicType.h:11
std::uint32_t pad4C
Definition: BSIMusicType.h:57
stl::enumeration< MST, std::uint32_t > flags
Definition: BSIMusicType.h:48
BSTArray< std::uint32_t > trackHistory
Definition: BSIMusicType.h:54
float fadeTime
Definition: BSIMusicType.h:52
BSTArray< BSIMusicTrack * > tracks
Definition: BSIMusicType.h:55
static constexpr auto RTTI
Definition: BSIMusicType.h:13
stl::enumeration< MUSIC_STATUS, std::uint32_t > typeStatus
Definition: BSIMusicType.h:56
virtual ~BSIMusicType()
virtual void DoFinish(bool a_arg1)=0
virtual void DoPrepare()
std::uint16_t ducksOtherMusicBy
Definition: BSIMusicType.h:51
std::uint8_t padding
Definition: BSIMusicType.h:50
std::uint32_t currentTrackIndex
Definition: BSIMusicType.h:53
virtual void DoPause()=0
std::uint8_t priority
Definition: BSIMusicType.h:49
MUSIC_STATUS
Definition: BSIMusicType.h:28
virtual void DoApplyDuckingAttenuation(std::uint16_t a_ducking)
MST
Definition: BSIMusicType.h:16
virtual void DoUpdate()=0
virtual void DoClearDucking()
virtual void DoPlay()=0
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSIMusicType(685276, 393050, 0x1ee2d90)