CommonLibSSE NG
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 
15  struct LoopData // LNAM
16  {
17  float loopBegin; // 0
18  float loopEnd; // 4
19  std::uint32_t loopCount; // 8
20  };
21  static_assert(sizeof(LoopData) == 0xC);
22 
23  ~BGSMusicSingleTrack() override; // 00
24 
25  // override (BGSMusicTrack)
26  void DoUpdate() override; // 01
27  void DoPlay() override; // 02
28  void DoPause() override; // 03
29  void DoFinish(bool a_arg1, float a_arg2) override; // 04
30  float GetDurationImpl() const override; // 05
31  TrackType GetType() const override; // 06 - "BGSMusicSingleTrack"
32  void DoSetDuckingAttenuation(std::uint16_t a_val) override; // 09
33  void DoClearDucking() override; // 0A
34  void Load(TESFile* a_mod) override; // 0C
35 
36  // members
37  BSResource::ID trackID; // 20 - ANAM
38  BSResource::ID finaleID; // 2C - BNAM
39  BSTArray<float> cuePoints; // 38 - FNAM
40  std::uint32_t nextCuePoint; // 50
41  std::uint32_t loopsRemaining; // 54
42  std::uint32_t lastKnownPlaybackPosition; // 58
43  std::uint32_t pad5C; // 5C
44  LoopData* loopData; // 60 - LNAM
47  };
48  static_assert(sizeof(BGSMusicSingleTrack) == 0x80);
49 }
Definition: BGSMusicSingleTrack.h:11
void DoFinish(bool a_arg1, float a_arg2) override
float GetDurationImpl() const override
BSResource::ID trackID
Definition: BGSMusicSingleTrack.h:37
BSTArray< float > cuePoints
Definition: BGSMusicSingleTrack.h:39
void DoUpdate() override
BSSoundHandle finaleHandle
Definition: BGSMusicSingleTrack.h:46
TrackType GetType() const override
static constexpr auto RTTI
Definition: BGSMusicSingleTrack.h:13
std::uint32_t lastKnownPlaybackPosition
Definition: BGSMusicSingleTrack.h:42
BSResource::ID finaleID
Definition: BGSMusicSingleTrack.h:38
void Load(TESFile *a_mod) override
std::uint32_t pad5C
Definition: BGSMusicSingleTrack.h:43
BSSoundHandle trackHandle
Definition: BGSMusicSingleTrack.h:45
std::uint32_t loopsRemaining
Definition: BGSMusicSingleTrack.h:41
std::uint32_t nextCuePoint
Definition: BGSMusicSingleTrack.h:40
void DoPause() override
~BGSMusicSingleTrack() override
void DoSetDuckingAttenuation(std::uint16_t a_val) override
LoopData * loopData
Definition: BGSMusicSingleTrack.h:44
void DoPlay() override
void DoClearDucking() override
Definition: BGSMusicTrack.h:12
TrackType
Definition: BSIMusicTrack.h:11
Definition: TESFile.h:17
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BGSMusicSingleTrack(685270, 393044, 0x1ee2af8)
Definition: BGSMusicSingleTrack.h:16
std::uint32_t loopCount
Definition: BGSMusicSingleTrack.h:19
float loopBegin
Definition: BGSMusicSingleTrack.h:17
float loopEnd
Definition: BGSMusicSingleTrack.h:18
Definition: ID.h:10
Definition: BSSoundHandle.h:10