CommonLibSSE NG
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 
15  enum class Type
16  {
17  kDialogue = 0,
18  kPackage = 1,
19  kTimer = 2
20  };
21 
22  enum class Flag
23  {
24  kNone = 0,
25  kFaceTarget = 1 << 15,
26  kLooping = 1 << 16,
27  kHeadTrackPlayer = 1 << 17
28  };
29 
30  virtual ~BGSSceneAction(); // 00
31 
32  // add
33  virtual bool LoadSceneAction(TESFile* a_mod); // 01
34  virtual void Unk_02(void); // 02
35  virtual void Unk_03(void); // 03 - { return; }
36  virtual void ClearFlags(); // 04 - { flags = kNone; }
37  [[nodiscard]] virtual bool Loops() const; // 05 - { return false; }
38  [[nodiscard]] virtual bool FacesTarget() const; // 06 - { return true; }
39  [[nodiscard]] virtual Type GetType() const = 0; // 07
40  virtual void Unk_08(void); // 08 - { return 0; }
41  virtual void LoadBuffer(void* a_arg1, BGSLoadGameBuffer* a_buf); // 09
42  virtual void Unk_0A(void); // 0A
43  virtual void Unk_0B(void); // 0B - { unk14 &= 0xFC; }
44  virtual void Unk_0C(void); // 0C - { return; }
45  virtual void Unk_0D(void); // 0D
46  [[nodiscard]] virtual EmotionType GetEmotionType() const; // 0E - { return kNeutral; }
47  [[nodiscard]] virtual std::uint32_t GetEmotionValue() const; // 0F - { return 0; }
48  virtual void Unk_10(void); // 10 - { unk14 |= 1; }
49  virtual void Unk_11(void); // 11
50  virtual void Unk_12(void); // 12 - { return; }
51  virtual void Unk_13(void); // 13 - { return; }
52 
53  // members
54  std::uint32_t actorID; // 08 - ALID
55  std::uint16_t startPhase; // 0C - SNAM
56  std::uint16_t endPhase; // 0E - ENAM
58  std::uint8_t unk14; // 14
59  std::uint8_t unk15; // 15
60  std::uint16_t unk16; // 16
61  std::uint32_t index; // 18 - INAM
62  std::uint32_t unk1C; // 1C
63  };
64  static_assert(sizeof(BGSSceneAction) == 0x20);
65 }
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:60
virtual bool FacesTarget() const
std::uint8_t unk14
Definition: BGSSceneAction.h:58
virtual std::uint32_t GetEmotionValue() const
std::uint16_t startPhase
Definition: BGSSceneAction.h:55
std::uint32_t index
Definition: BGSSceneAction.h:61
std::uint16_t endPhase
Definition: BGSSceneAction.h:56
virtual Type GetType() const =0
Type
Definition: BGSSceneAction.h:16
virtual ~BGSSceneAction()
static constexpr auto RTTI
Definition: BGSSceneAction.h:13
std::uint32_t actorID
Definition: BGSSceneAction.h:54
std::uint32_t unk1C
Definition: BGSSceneAction.h:62
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:59
virtual void Unk_0D(void)
Flag
Definition: BGSSceneAction.h:23
virtual EmotionType GetEmotionType() const
virtual void Unk_13(void)
virtual void Unk_12(void)
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSSceneAction.h:57
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::VariantID RTTI_BGSSceneAction(685405, 393188, 0x1ee51e0)