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