CommonLibVR
BGSSceneAction.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/E/EmotionTypes.h"
4 
5 namespace RE
6 {
7  class BGSLoadGameBuffer;
8  class TESFile;
9 
11  {
12  public:
13  inline static constexpr auto RTTI = RTTI_BGSSceneAction;
14  inline static constexpr auto VTABLE = VTABLE_BGSSceneAction;
15 
16  enum class Type
17  {
18  kDialogue = 0,
19  kPackage = 1,
20  kTimer = 2
21  };
22 
23  enum class Flag
24  {
25  kNone = 0,
26  kFaceTarget = 1 << 15,
27  kLooping = 1 << 16,
28  kHeadTrackPlayer = 1 << 17
29  };
30 
31  virtual ~BGSSceneAction(); // 00
32 
33  // add
34  virtual bool LoadSceneAction(TESFile* a_mod); // 01
35  virtual void Unk_02(void); // 02
36  virtual void Unk_03(void); // 03 - { return; }
37  virtual void ClearFlags(); // 04 - { flags = kNone; }
38  [[nodiscard]] virtual bool Loops() const; // 05 - { return false; }
39  [[nodiscard]] virtual bool FacesTarget() const; // 06 - { return true; }
40  [[nodiscard]] virtual Type GetType() const = 0; // 07
41  virtual void Unk_08(void); // 08 - { return 0; }
42  virtual void LoadBuffer(void* a_arg1, BGSLoadGameBuffer* a_buf); // 09
43  virtual void Unk_0A(void); // 0A
44  virtual void Unk_0B(void); // 0B - { unk14 &= 0xFC; }
45  virtual void Unk_0C(void); // 0C - { return; }
46  virtual void Unk_0D(void); // 0D
47  [[nodiscard]] virtual EmotionType GetEmotionType() const; // 0E - { return kNeutral; }
48  [[nodiscard]] virtual std::uint32_t GetEmotionValue() const; // 0F - { return 0; }
49  virtual void Unk_10(void); // 10 - { unk14 |= 1; }
50  virtual void Unk_11(void); // 11
51  virtual void Unk_12(void); // 12 - { return; }
52  virtual void Unk_13(void); // 13 - { return; }
53 
54  // members
55  std::uint32_t actorID; // 08 - ALID
56  std::uint16_t startPhase; // 0C - SNAM
57  std::uint16_t endPhase; // 0E - ENAM
59  std::uint8_t unk14; // 14
60  std::uint8_t unk15; // 15
61  std::uint16_t unk16; // 16
62  std::uint32_t index; // 18 - INAM
63  std::uint32_t unk1C; // 1C
64  private:
65  KEEP_FOR_RE()
66  };
67  static_assert(sizeof(BGSSceneAction) == 0x20);
68 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSceneAction.h:11
virtual void Unk_02(void)
virtual void Unk_0A(void)
virtual void LoadBuffer(void *a_arg1, BGSLoadGameBuffer *a_buf)
virtual void Unk_0B(void)
virtual bool LoadSceneAction(TESFile *a_mod)
virtual void ClearFlags()
std::uint16_t unk16
Definition: BGSSceneAction.h:61
virtual bool FacesTarget() const
std::uint8_t unk14
Definition: BGSSceneAction.h:59
virtual std::uint32_t GetEmotionValue() const
static constexpr auto VTABLE
Definition: BGSSceneAction.h:14
std::uint16_t startPhase
Definition: BGSSceneAction.h:56
std::uint32_t index
Definition: BGSSceneAction.h:62
std::uint16_t endPhase
Definition: BGSSceneAction.h:57
virtual Type GetType() const =0
Type
Definition: BGSSceneAction.h:17
virtual ~BGSSceneAction()
static constexpr auto RTTI
Definition: BGSSceneAction.h:13
std::uint32_t actorID
Definition: BGSSceneAction.h:55
std::uint32_t unk1C
Definition: BGSSceneAction.h:63
virtual void Unk_0C(void)
virtual void Unk_10(void)
virtual bool Loops() const
virtual void Unk_11(void)
std::uint8_t unk15
Definition: BGSSceneAction.h:60
virtual void Unk_0D(void)
Flag
Definition: BGSSceneAction.h:24
virtual EmotionType GetEmotionType() const
virtual void Unk_13(void)
virtual void Unk_12(void)
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSSceneAction.h:58
virtual void Unk_08(void)
virtual void Unk_03(void)
Definition: TESFile.h:17
Definition: AbsorbEffect.h:6
EmotionType
Definition: EmotionTypes.h:6
constexpr REL::ID RTTI_BGSSceneAction(static_cast< std::uint64_t >(685405))
constexpr std::array< REL::ID, 1 > VTABLE_BGSSceneAction
Definition: Offsets_VTABLE.h:8853