CommonLibVR
BGSMusicSingleTrack.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BGSMusicTrack.h"
4 #include "RE/B/BSSoundHandle.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/I/ID.h"
7 
8 namespace RE
9 {
11  {
12  public:
13  inline static constexpr auto RTTI = RTTI_BGSMusicSingleTrack;
14  inline static constexpr auto VTABLE = VTABLE_BGSMusicSingleTrack;
15 
16  struct LoopData // LNAM
17  {
18  float loopBegin; // 0
19  float loopEnd; // 4
20  std::uint32_t loopCount; // 8
21  };
22  static_assert(sizeof(LoopData) == 0xC);
23 
24  ~BGSMusicSingleTrack() override; // 00
25 
26  // override (BGSMusicTrack)
27  void DoUpdate() override; // 01
28  void DoPlay() override; // 02
29  void DoPause() override; // 03
30  void DoFinish(bool a_arg1, float a_arg2) override; // 04
31  float GetDurationImpl() const override; // 05
32  TrackType GetType() const override; // 06 - "BGSMusicSingleTrack"
33  void DoSetDuckingAttenuation(std::uint16_t a_val) override; // 09
34  void DoClearDucking() override; // 0A
35  void Load(TESFile* a_mod) override; // 0C
36 
37  // members
38  BSResource::ID trackID; // 20 - ANAM
39  BSResource::ID finaleID; // 2C - BNAM
40  BSTArray<float> cuePoints; // 38 - FNAM
41  std::uint32_t nextCuePoint; // 50
42  std::uint32_t loopsRemaining; // 54
43  std::uint32_t lastKnownPlaybackPosition; // 58
44  std::uint32_t pad5C; // 5C
45  LoopData* loopData; // 60 - LNAM
48  private:
49  KEEP_FOR_RE()
50  };
51  static_assert(sizeof(BGSMusicSingleTrack) == 0x80);
52 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSMusicSingleTrack.h:11
void DoFinish(bool a_arg1, float a_arg2) override
float GetDurationImpl() const override
BSResource::ID trackID
Definition: BGSMusicSingleTrack.h:38
BSTArray< float > cuePoints
Definition: BGSMusicSingleTrack.h:40
void DoUpdate() override
BSSoundHandle finaleHandle
Definition: BGSMusicSingleTrack.h:47
static constexpr auto VTABLE
Definition: BGSMusicSingleTrack.h:14
TrackType GetType() const override
static constexpr auto RTTI
Definition: BGSMusicSingleTrack.h:13
std::uint32_t lastKnownPlaybackPosition
Definition: BGSMusicSingleTrack.h:43
BSResource::ID finaleID
Definition: BGSMusicSingleTrack.h:39
void Load(TESFile *a_mod) override
std::uint32_t pad5C
Definition: BGSMusicSingleTrack.h:44
BSSoundHandle trackHandle
Definition: BGSMusicSingleTrack.h:46
std::uint32_t loopsRemaining
Definition: BGSMusicSingleTrack.h:42
std::uint32_t nextCuePoint
Definition: BGSMusicSingleTrack.h:41
void DoPause() override
~BGSMusicSingleTrack() override
void DoSetDuckingAttenuation(std::uint16_t a_val) override
LoopData * loopData
Definition: BGSMusicSingleTrack.h:45
void DoPlay() override
void DoClearDucking() override
Definition: BGSMusicTrack.h:12
TrackType
Definition: BSIMusicTrack.h:12
Definition: TESFile.h:17
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BGSMusicSingleTrack
Definition: Offsets_VTABLE.h:8663
constexpr REL::ID RTTI_BGSMusicSingleTrack(static_cast< std::uint64_t >(685270))
Definition: BGSMusicSingleTrack.h:17
std::uint32_t loopCount
Definition: BGSMusicSingleTrack.h:20
float loopBegin
Definition: BGSMusicSingleTrack.h:18
float loopEnd
Definition: BGSMusicSingleTrack.h:19
Definition: ID.h:10
Definition: BSSoundHandle.h:10