CommonLibVR
Loading...
Searching...
No Matches
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
8namespace 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 private:
30 };
31 static_assert(sizeof(BGSScenePhase) == 0x18);
32
33 class BGSScene : public TESForm
34 {
35 public:
36 inline static constexpr auto RTTI = RTTI_BGSScene;
37 inline static constexpr auto VTABLE = VTABLE_BGSScene;
38 inline static constexpr auto FORMTYPE = FormType::Scene;
39
40 enum class Flag
41 {
42 kNone = 0,
43 kBeginOnQuestStart = 1 << 0,
44 kStopOnQuestEnd = 1 << 1,
46 kInterruptible = 1 << 4
47 };
48
49 enum class BehaviourFlag // DNAM
50 {
51 kNone = 0,
52 kDeathPause = 1 << 0, // unused
53 kDeathEnd = 1 << 1,
54 kCombatPause = 1 << 2,
55 kCombatEnd = 1 << 3,
56 kDialoguePause = 1 << 4,
57 kDialogueEnd = 1 << 5,
58 kOBS_COMPause = 1 << 6,
59 kOBS_COMEnd = 1 << 7
60 };
61
63 {
64 enum ChangeFlag : std::uint32_t
65 {
66 kActive = (std::uint32_t)1 << 31
67 };
68 };
69
71 {
72 enum RecordFlag : std::uint32_t
73 {
74 kDeleted = 1 << 5,
75 kIgnored = 1 << 12
76 };
77 };
78
79 ~BGSScene() override; // 00
80
81 // override (TESForm)
82 void InitializeData() override; // 05
83 bool Load(TESFile* a_mod) override; // 06
84 void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
85 void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
86 void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
87 void Revert(BGSLoadFormBuffer* a_buf) override; // 12
88 void InitItemImpl() override; // 13
89
90 // members
96 TESQuest* parentQuest; // 98 - PNAM
98 std::uint32_t padA4; // A4
100 bool isPlaying; // B0
101 std::uint8_t unkB1; // B1
102 std::uint8_t unkB2; // B2
103 std::uint8_t unkB3; // B3
104 std::uint32_t unkB4; // B4
105 std::uint32_t unkB8; // B8
106 std::uint32_t unkBC; // BC
107 std::uint32_t unkC0; // C0
108 std::uint32_t padC4; // C4
109 private:
111 };
112 static_assert(sizeof(BGSScene) == 0xC8);
113}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition EnumSet.h:9
Definition BGSLoadFormBuffer.h:11
Definition BGSSaveFormBuffer.h:8
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:34
REX::EnumSet< Flag, std::uint32_t > flags
Definition BGSScene.h:97
TESCondition conditions
Definition BGSScene.h:99
BSTArray< REX::EnumSet< SCENE_ACTOR_FLAG, std::uint32_t > > actorFlags
Definition BGSScene.h:93
BSTArray< BGSSceneAction * > actions
Definition BGSScene.h:95
BSTArray< REX::EnumSet< BehaviourFlag, std::uint32_t > > actorProgressionFlags
Definition BGSScene.h:94
BSTArray< FormID > actors
Definition BGSScene.h:92
std::uint8_t unkB2
Definition BGSScene.h:102
void LoadGame(BGSLoadFormBuffer *a_buf) override
static constexpr auto RTTI
Definition BGSScene.h:36
BehaviourFlag
Definition BGSScene.h:50
std::uint8_t unkB1
Definition BGSScene.h:101
static constexpr auto VTABLE
Definition BGSScene.h:37
void InitializeData() override
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
bool isPlaying
Definition BGSScene.h:100
bool Load(TESFile *a_mod) override
std::uint32_t padA4
Definition BGSScene.h:98
std::uint8_t unkB3
Definition BGSScene.h:103
void InitItemImpl() override
~BGSScene() override
std::uint32_t unkBC
Definition BGSScene.h:106
void SaveGame(BGSSaveFormBuffer *a_buf) override
std::uint32_t padC4
Definition BGSScene.h:108
std::uint32_t unkB4
Definition BGSScene.h:104
std::uint32_t unkC0
Definition BGSScene.h:107
void Revert(BGSLoadFormBuffer *a_buf) override
Flag
Definition BGSScene.h:41
static constexpr auto FORMTYPE
Definition BGSScene.h:38
std::uint32_t unkB8
Definition BGSScene.h:105
TESQuest * parentQuest
Definition BGSScene.h:96
BSTArray< BGSScenePhase * > phases
Definition BGSScene.h:91
Definition BGSStoryManagerQuestNode.h:11
Definition BSTArray.h:378
Definition TESCondition.h:992
Definition TESFile.h:17
Definition TESForm.h:40
Definition TESQuest.h:197
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BGSScene
Definition Offsets_VTABLE.h:8852
SCENE_ACTOR_FLAG
Definition BGSScene.h:13
constexpr REL::ID RTTI_BGSScene(static_cast< std::uint64_t >(513909))
@ kNone
Definition PlayerCharacter.h:85
Definition BGSScene.h:63
ChangeFlag
Definition BGSScene.h:65
@ kActive
Definition BGSScene.h:66
Definition BGSScene.h:71
RecordFlag
Definition BGSScene.h:73
@ kIgnored
Definition BGSScene.h:75
@ kDeleted
Definition BGSScene.h:74