CommonLibVR
Loading...
Searching...
No Matches
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
6namespace 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 private:
61 };
62 static_assert(sizeof(BSIMusicType) == 0x50);
63}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition EnumSet.h:9
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 BSTArray.h:378
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