CommonLibSSE (powerof3)
BGSScene.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESCondition.h"
6 #include "RE/T/TESForm.h"
7 
8 namespace RE
9 {
10  class BGSSceneAction;
11 
12  enum class SCENE_ACTOR_FLAG // LNAM
13  {
14  kNone = 0,
15  kNoPlayerActivation = 1 << 0,
16  kOptional = 1 << 1,
17  kRunOnlyScenePackages = 1 << 2,
18  kNoCommandState = 1 << 3
19  };
20 
22  {
23  public:
24  // members
28  };
29  static_assert(sizeof(BGSScenePhase) == 0x18);
30 
31  class BGSScene : public TESForm
32  {
33  public:
34  inline static constexpr auto RTTI = RTTI_BGSScene;
35  inline static constexpr auto FORMTYPE = FormType::Scene;
36 
37  enum class Flag
38  {
39  kNone = 0,
40  kBeginOnQuestStart = 1 << 0,
41  kStopOnQuestEnd = 1 << 1,
43  kInterruptible = 1 << 4
44  };
45 
46  enum class BehaviourFlag // DNAM
47  {
48  kNone = 0,
49  kDeathPause = 1 << 0, // unused
50  kDeathEnd = 1 << 1,
51  kCombatPause = 1 << 2,
52  kCombatEnd = 1 << 3,
53  kDialoguePause = 1 << 4,
54  kDialogueEnd = 1 << 5,
55  kOBS_COMPause = 1 << 6,
56  kOBS_COMEnd = 1 << 7
57  };
58 
59  struct ChangeFlags
60  {
61  enum ChangeFlag : std::uint32_t
62  {
63  kActive = (std::uint32_t)1 << 31
64  };
65  };
66 
67  struct RecordFlags
68  {
69  enum RecordFlag : std::uint32_t
70  {
71  kDeleted = 1 << 5,
72  kIgnored = 1 << 12
73  };
74  };
75 
76  ~BGSScene() override; // 00
77 
78  // override (TESForm)
79  void InitializeData() override; // 05
80  bool Load(TESFile* a_mod) override; // 06
81  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
82  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
83  void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
84  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
85  void InitItemImpl() override; // 13
86 
87  // members
89  BSTArray<FormID> actors; // 00 - ALID
93  TESQuest* parentQuest; // 98 - PNAM
95  std::uint32_t padA4; // A4
96  TESCondition conditions; // A8 - CTDA
97  std::uint32_t unkB0; // B0
98  std::uint32_t unkB4; // B4
99  std::uint32_t unkB8; // B8
100  std::uint32_t unkBC; // BC
101  std::uint32_t unkC0; // C0
102  std::uint32_t padC4; // C4
103  };
104  static_assert(sizeof(BGSScene) == 0xC8);
105 }
Definition: BGSScene.h:22
TESCondition startConditions
Definition: BGSScene.h:25
BGSStoryManagerQuestNode * questNode
Definition: BGSScene.h:27
TESCondition completionConditions
Definition: BGSScene.h:26
Definition: BGSScene.h:32
TESCondition conditions
Definition: BGSScene.h:96
std::uint32_t unkB0
Definition: BGSScene.h:97
BSTArray< BGSSceneAction * > actions
Definition: BGSScene.h:92
BSTArray< FormID > actors
Definition: BGSScene.h:89
void LoadGame(BGSLoadFormBuffer *a_buf) override
static constexpr auto RTTI
Definition: BGSScene.h:34
BehaviourFlag
Definition: BGSScene.h:47
void InitializeData() override
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
BSTArray< stl::enumeration< SCENE_ACTOR_FLAG, std::uint32_t > > actorFlags
Definition: BGSScene.h:90
bool Load(TESFile *a_mod) override
std::uint32_t padA4
Definition: BGSScene.h:95
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSScene.h:94
void InitItemImpl() override
~BGSScene() override
std::uint32_t unkBC
Definition: BGSScene.h:100
void SaveGame(BGSSaveFormBuffer *a_buf) override
std::uint32_t padC4
Definition: BGSScene.h:102
std::uint32_t unkB4
Definition: BGSScene.h:98
std::uint32_t unkC0
Definition: BGSScene.h:101
void Revert(BGSLoadFormBuffer *a_buf) override
Flag
Definition: BGSScene.h:38
static constexpr auto FORMTYPE
Definition: BGSScene.h:35
std::uint32_t unkB8
Definition: BGSScene.h:99
BSTArray< stl::enumeration< BehaviourFlag, std::uint32_t > > actorProgressionFlags
Definition: BGSScene.h:91
TESQuest * parentQuest
Definition: BGSScene.h:93
BSTArray< BGSScenePhase * > phases
Definition: BGSScene.h:88
Definition: BGSStoryManagerQuestNode.h:11
Definition: BSTArray.h:377
Definition: TESCondition.h:987
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESQuest.h:189
Definition: AbsorbEffect.h:6
SCENE_ACTOR_FLAG
Definition: BGSScene.h:13
constexpr REL::ID RTTI_BGSScene
Definition: Offsets_RTTI.h:1530
Definition: BGSScene.h:60
ChangeFlag
Definition: BGSScene.h:62
@ kActive
Definition: BGSScene.h:63
Definition: BGSScene.h:68
RecordFlag
Definition: BGSScene.h:70
@ kIgnored
Definition: BGSScene.h:72
@ kDeleted
Definition: BGSScene.h:71