CommonLibSSE (powerof3)
BSSaveDataSystemUtility.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSString.h"
5 #include "RE/B/BSTEvent.h"
6 
7 namespace RE
8 {
9  class BSSaveDataEvent;
10 
12  public BSTEventSource<BSSaveDataEvent> // 008
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BSSaveDataSystemUtility;
16  inline static constexpr auto VTABLE = VTABLE_BSSaveDataSystemUtility;
17 
18  class Entry
19  {
20  public:
21  inline static constexpr auto RTTI = RTTI_BSSaveDataSystemUtility__Entry;
22  inline static constexpr auto VTABLE = VTABLE_BSSaveDataSystemUtility__Entry;
23 
24  virtual void Read(const char* a_path); // 00
25 
26  enum class SaveType : std::uint32_t
27  {
28  kAutosave = 0x0,
29  kSave = 0x1,
30  kQuicksave = 0x2,
31  kCustom = 0x3
32  };
33 
34  // members
35  const char fileName[0x104]; // 008
36  std::uint32_t pad0C; // 00C
38  std::uint64_t unk120; // 120
39  std::uint32_t unk128; // 128
40  std::uint32_t pad12C; // 12C
42  BSString unk140; // 140
44  std::uint64_t unk160; // 160
45  std::uint32_t unk168; // 168
46  std::uint32_t pad16C; // 16C
47  std::uint64_t unk170; // 170
48  std::uint32_t unk178; // 178
49  std::uint32_t saveNumber; // 17C
50  std::uint32_t characterID; // 180
51  std::uint32_t unk184; // 184
52  bool fileNameValid; // 188
53  bool modded; // 189
54  std::uint8_t unk18A; // 18A
55  std::uint8_t pad18B; // 18B
56  std::uint32_t pad18C; // 18C
59  std::uint32_t pad19C; // 19C
60  };
61  static_assert(sizeof(Entry) == 0x1A0);
62 
63  virtual ~BSSaveDataSystemUtility(); // 00
64 
65  // add
66  virtual bool CreateSaveDirectory(const char* a_pathName, bool a_ignoreINI) = 0; // 01
67  virtual errno_t PrepareFileSavePath(const char* a_fileName, char* a_dst, bool a_tmpSave, bool a_ignoreINI) = 0; // 02 - a_dst must be 0x104 in length
68  virtual void Unk_03(void); // 03 - { return Unk_04(); }
69  virtual void Unk_04(void); // 04 - { return; }
70  virtual void Unk_05(void); // 05
71  virtual void Unk_06(void) = 0; // 06
72  virtual void Unk_07(void); // 07
73  virtual void Unk_08(void); // 08 - { return; }
74  virtual void Unk_09(void); // 09 - { return; }
75  virtual void Unk_0A(void); // 0A
76  virtual void Unk_0B(void); // 0B - { return; }
77  virtual void Unk_0C(void); // 0C
78  virtual void Unk_0D(void); // 0D - { return; }
79  virtual void Unk_0E(void); // 0E - { return 1; }
80  virtual void Unk_0F(void); // 0F - { return 1; }
81  virtual void Unk_10(void); // 10 - { return 0; }
82  virtual void Unk_11(void); // 11 - { return; }
83 
84  // members
85  std::uint8_t unk060; // 060
86  std::uint8_t pad061; // 061
87  std::uint16_t pad062; // 062
88  std::uint32_t currentCharacterID; // 064
89  std::uint8_t unk068; // 068
90  std::uint8_t pad069; // 069
91  std::uint16_t pad06A; // 06A
92  std::uint32_t pad06C; // 06C
93  Entry entry; // 070
94  std::uint32_t unk210; // 210
95  std::uint32_t pad214; // 214
96  std::uint64_t unk218; // 218
97  std::uint64_t unk220; // 220
98  };
99  static_assert(sizeof(BSSaveDataSystemUtility) == 0x228);
100 }
Definition: BSSaveDataSystemUtility.h:19
BSString characterName
Definition: BSSaveDataSystemUtility.h:43
REX::EnumSet< SaveType, std::uint32_t > saveType
Definition: BSSaveDataSystemUtility.h:58
bool fileNameValid
Definition: BSSaveDataSystemUtility.h:52
std::uint8_t pad18B
Definition: BSSaveDataSystemUtility.h:55
std::uint32_t characterID
Definition: BSSaveDataSystemUtility.h:50
std::uint8_t unk18A
Definition: BSSaveDataSystemUtility.h:54
std::uint32_t pad19C
Definition: BSSaveDataSystemUtility.h:59
std::uint64_t unk160
Definition: BSSaveDataSystemUtility.h:44
std::uint32_t unk168
Definition: BSSaveDataSystemUtility.h:45
std::uint32_t pad12C
Definition: BSSaveDataSystemUtility.h:40
std::uint32_t unk184
Definition: BSSaveDataSystemUtility.h:51
const char fileName[0x104]
Definition: BSSaveDataSystemUtility.h:35
std::uint32_t pad0C
Definition: BSSaveDataSystemUtility.h:36
BSString unk140
Definition: BSSaveDataSystemUtility.h:42
bool modded
Definition: BSSaveDataSystemUtility.h:53
std::uint32_t saveNumber
Definition: BSSaveDataSystemUtility.h:49
std::uint32_t pad18C
Definition: BSSaveDataSystemUtility.h:56
std::uint64_t unk120
Definition: BSSaveDataSystemUtility.h:38
BSString fileNamePtr
Definition: BSSaveDataSystemUtility.h:37
static constexpr auto RTTI
Definition: BSSaveDataSystemUtility.h:21
std::uint64_t unk170
Definition: BSSaveDataSystemUtility.h:47
BSString locationName
Definition: BSSaveDataSystemUtility.h:41
std::uint32_t pad16C
Definition: BSSaveDataSystemUtility.h:46
BSFixedString saveTypeName
Definition: BSSaveDataSystemUtility.h:57
SaveType
Definition: BSSaveDataSystemUtility.h:27
std::uint32_t unk128
Definition: BSSaveDataSystemUtility.h:39
virtual void Read(const char *a_path)
std::uint32_t unk178
Definition: BSSaveDataSystemUtility.h:48
static constexpr auto VTABLE
Definition: BSSaveDataSystemUtility.h:22
Definition: BSSaveDataSystemUtility.h:13
virtual void Unk_06(void)=0
virtual void Unk_11(void)
static constexpr auto VTABLE
Definition: BSSaveDataSystemUtility.h:16
virtual void Unk_04(void)
virtual void Unk_0B(void)
virtual void Unk_0E(void)
virtual void Unk_0A(void)
std::uint8_t unk068
Definition: BSSaveDataSystemUtility.h:89
std::uint8_t pad061
Definition: BSSaveDataSystemUtility.h:86
virtual void Unk_0C(void)
std::uint64_t unk220
Definition: BSSaveDataSystemUtility.h:97
std::uint32_t currentCharacterID
Definition: BSSaveDataSystemUtility.h:88
virtual void Unk_0F(void)
Entry entry
Definition: BSSaveDataSystemUtility.h:93
virtual bool CreateSaveDirectory(const char *a_pathName, bool a_ignoreINI)=0
virtual void Unk_03(void)
std::uint8_t pad069
Definition: BSSaveDataSystemUtility.h:90
virtual void Unk_07(void)
virtual void Unk_10(void)
virtual void Unk_05(void)
std::uint16_t pad062
Definition: BSSaveDataSystemUtility.h:87
static constexpr auto RTTI
Definition: BSSaveDataSystemUtility.h:15
std::uint32_t unk210
Definition: BSSaveDataSystemUtility.h:94
std::uint64_t unk218
Definition: BSSaveDataSystemUtility.h:96
std::uint16_t pad06A
Definition: BSSaveDataSystemUtility.h:91
std::uint32_t pad214
Definition: BSSaveDataSystemUtility.h:95
virtual void Unk_08(void)
std::uint8_t unk060
Definition: BSSaveDataSystemUtility.h:85
virtual void Unk_09(void)
std::uint32_t pad06C
Definition: BSSaveDataSystemUtility.h:92
virtual errno_t PrepareFileSavePath(const char *a_fileName, char *a_dst, bool a_tmpSave, bool a_ignoreINI)=0
virtual void Unk_0D(void)
Definition: BSTEvent.h:19
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSSaveDataSystemUtility(static_cast< std::uint64_t >(692123))
constexpr std::array< REL::ID, 1 > VTABLE_BSSaveDataSystemUtility
Definition: Offsets_VTABLE.h:9426
constexpr REL::ID RTTI_BSSaveDataSystemUtility__Entry(static_cast< std::uint64_t >(692125))
constexpr std::array< REL::ID, 1 > VTABLE_BSSaveDataSystemUtility__Entry
Definition: Offsets_VTABLE.h:9428