CommonLibSSE NG
BGSSaveLoadGame.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/B/BSTArray.h"
5 #include "RE/B/BSTHashMap.h"
6 
7 namespace RE
8 {
9  class BGSCellFormIDArrayMap;
10  class BGSConstructFormsInFileMap;
11  class BGSSaveLoadChangesMap;
12  class TESFile;
13  class TESForm;
14  struct BGSLoadGameSubBuffer;
15 
17  {
18  public:
19  // members
22  std::uint32_t unk60; // 60
23  std::uint32_t pad64; // 64
24  };
25  static_assert(sizeof(BGSSaveLoadFormIDMap) == 0x68);
26 
28  {
29  public:
30  // members
34  };
35  static_assert(sizeof(BGSSaveLoadReferencesMap) == 0x90);
36 
38  {
39  public:
40  // members
43  std::uint32_t unk78; // 78
44  };
45  static_assert(sizeof(BGSConstructFormsInAllFilesMap) == 0x80);
46 
48  {
49  public:
50  // members
52  };
53  static_assert(sizeof(BGSSaveLoadQueuedSubBufferMap) == 0x90);
54 
56  {
57  public:
58  enum class Flags
59  {
60  kGlobalAllowChanges = 1 << 0,
61  kLoading = 1 << 1,
62  kSaving = 1 << 2,
63  kInitingForms = 1 << 3,
64  kDeferInitForms = 1 << 4,
65  kPositioningPlayer = 1 << 5,
66  kPlayerLocationInvalid = 1 << 6
67  };
68 
70  {
71  REL::Relocation<BGSSaveLoadGame**> singleton{ RELOCATION_ID(516851, 403330) };
72  return *singleton;
73  }
74 
75  bool GetChange(TESForm* a_form, std::uint32_t a_changes)
76  {
77  using func_t = decltype(&BGSSaveLoadGame::GetChange);
78  REL::Relocation<func_t> func{ RELOCATION_ID(34655, 35577) };
79  return func(this, a_form, a_changes);
80  }
81 
82  // members
94  BGSSaveLoadChangesMap* saveLoadChanges; // 330
95  std::uint64_t unk338; // 338
97  std::uint8_t currentMinorVersion; // 344
98  };
99  static_assert(sizeof(BGSSaveLoadGame) == 0x348);
100 }
#define RELOCATION_ID(a_se, a_ae)
Definition: PCH.h:724
Definition: Relocation.h:204
Definition: BGSSaveLoadGame.h:38
std::uint32_t unk78
Definition: BGSSaveLoadGame.h:43
BSTArray< void * > unk30[3]
Definition: BGSSaveLoadGame.h:42
BSTHashMap< TESFile *, BGSConstructFormsInFileMap * > unk00
Definition: BGSSaveLoadGame.h:41
Definition: BGSSaveLoadGame.h:17
std::uint32_t pad64
Definition: BGSSaveLoadGame.h:23
BSTHashMap< FormID, FormID > unk30
Definition: BGSSaveLoadGame.h:21
std::uint32_t unk60
Definition: BGSSaveLoadGame.h:22
BSTHashMap< FormID, FormID > unk00
Definition: BGSSaveLoadGame.h:20
Definition: BGSSaveLoadGame.h:56
BGSSaveLoadFormIDMap worldspaceFormIDMap
Definition: BGSSaveLoadGame.h:85
BSTArray< void * > unk18
Definition: BGSSaveLoadGame.h:84
BSTArray< TESFile * > pluginList
Definition: BGSSaveLoadGame.h:83
bool GetChange(TESForm *a_form, std::uint32_t a_changes)
Definition: BGSSaveLoadGame.h:75
Flags
Definition: BGSSaveLoadGame.h:59
BGSSaveLoadReferencesMap unkC8
Definition: BGSSaveLoadGame.h:87
BGSSaveLoadQueuedSubBufferMap queuedSubBuffersMap
Definition: BGSSaveLoadGame.h:90
stl::enumeration< Flags, std::uint32_t > flags
Definition: BGSSaveLoadGame.h:96
BSTArray< void * > saveLoadHistory
Definition: BGSSaveLoadGame.h:92
static BGSSaveLoadGame * GetSingleton()
Definition: BGSSaveLoadGame.h:69
BGSSaveLoadChangesMap * saveLoadChanges
Definition: BGSSaveLoadGame.h:94
BSTHashMap< FormID, ActorHandle > unk98
Definition: BGSSaveLoadGame.h:86
BGSConstructFormsInAllFilesMap reconstructFormsMap
Definition: BGSSaveLoadGame.h:89
BSTHashMap< FormID, FormID > unk158
Definition: BGSSaveLoadGame.h:88
BSTArray< void * > unk318
Definition: BGSSaveLoadGame.h:93
std::uint64_t unk338
Definition: BGSSaveLoadGame.h:95
BGSSaveLoadFormIDMap formIDMap
Definition: BGSSaveLoadGame.h:91
std::uint8_t currentMinorVersion
Definition: BGSSaveLoadGame.h:97
Definition: BGSSaveLoadGame.h:48
BSTHashMap< TESForm *, BGSLoadGameSubBuffer > queuedSubBuffers[3]
Definition: BGSSaveLoadGame.h:51
Definition: BGSSaveLoadGame.h:28
BSTHashMap< FormID, BSTArray< FormID > > unk30
Definition: BGSSaveLoadGame.h:32
BSTHashMap< FormID, FormID > unk00
Definition: BGSSaveLoadGame.h:31
BSTHashMap< FormID, BGSCellFormIDArrayMap * > unk60
Definition: BGSSaveLoadGame.h:33
Definition: BSTHashMap.h:21
Definition: TESForm.h:36
Definition: AbsorbEffect.h:6