CommonLibSSE (powerof3)
IVMSaveLoadInterface.h
Go to the documentation of this file.
1 #pragma once
2 #include "RE/B/BSStorage.h"
3 #include "RE/C/CodeTasklet.h"
5 #include "RE/O/Object.h"
7 namespace RE
8 {
9  namespace BSScript
10  {
11  enum class StringIndexSize
12  {
13  kSmall,
14  kLarge
15  };
16 
18  {
19  public:
21  {
22  public:
23  // members
24  const char* originalData; // 00
26  };
27  static_assert(sizeof(StringEntry) == 0x10);
28 
29  // members
30  void* unk00; // 00
33  };
34  static_assert(sizeof(ReadableStringTable) == 0x18);
35 
37  {
38  public:
39  // members
40  void* unk00; // 00
43  };
44  static_assert(sizeof(WritableStringTable) == 0x18);
45 
47  {
48  public:
49  inline static constexpr auto RTTI = RTTI_BSScript__IVMSaveLoadInterface;
50  inline static constexpr auto VTABLE = VTABLE_BSScript__IVMSaveLoadInterface;
51 
52  virtual ~IVMSaveLoadInterface(); // 00
53 
54  // add
55  virtual void SaveGame(SaveStorageWrapper* a_wrapper, SkyrimScript::SaveFileHandleReaderWriter* a_handle, bool unk) = 0; // 01
56  virtual void LoadGame(LoadStorageWrapper* a_wrapper, SkyrimScript::SaveFileHandleReaderWriter* a_handle) = 0; // 02
57  virtual void MarkSaveInvalid(BSStorage* a_storage) = 0; // 03
58  virtual std::byte GetSaveGameVersion() = 0; // 04
59  virtual void CleanupSave() = 0; // 05
60  virtual void Unk_06(void) = 0; // 06
61  virtual void DropAllRunningData() = 0; // 07
62  virtual void Unk_08(void* unk) = 0; // 08
63  virtual void Unk_09(void) = 0; // 09
64  virtual void Unk_0A(VMHandle a_handle, Object** a_out) = 0; // 0A
65  virtual void Unk_0B(void* unk) = 0; // 0B
66  virtual void Unk_0C(void) = 0; // 0C
67  virtual void Unk_0D(VMHandle a_handle, Array** a_out) = 0; // 0D
68  virtual void Unk_0E(LoadStorageWrapper* a_storage, void* unk) = 0; // 0E
69  virtual bool GetStackByID(VMStackID a_stackID, Stack** a_out) = 0; // 0F
71  virtual const WritableStringTable GetWritableStringTable2() = 0; // 11
76  virtual bool CreateEmptyTasklet(Stack* a_stack, Internal::CodeTasklet** a_out) = 0; // 16
77  };
78  static_assert(sizeof(IVMSaveLoadInterface) == 0x8);
79  }
80 }
Definition: Array.h:13
Definition: IVMSaveLoadInterface.h:47
static constexpr auto RTTI
Definition: IVMSaveLoadInterface.h:49
virtual ReadableStringTable GetReadableStringTable()=0
virtual const BSTHashMap< BSFixedString, BSTSmartPointer< ObjectTypeInfo > > * GetWritableTypeTable2()=0
virtual void Unk_0D(VMHandle a_handle, Array **a_out)=0
virtual void Unk_0E(LoadStorageWrapper *a_storage, void *unk)=0
virtual std::byte GetSaveGameVersion()=0
virtual void SaveGame(SaveStorageWrapper *a_wrapper, SkyrimScript::SaveFileHandleReaderWriter *a_handle, bool unk)=0
virtual void LoadGame(LoadStorageWrapper *a_wrapper, SkyrimScript::SaveFileHandleReaderWriter *a_handle)=0
virtual BSTHashMap< BSFixedString, BSTSmartPointer< ObjectTypeInfo > > * GetReadableTypeTable()=0
virtual const WritableStringTable GetWritableStringTable2()=0
virtual bool CreateEmptyTasklet(Stack *a_stack, Internal::CodeTasklet **a_out)=0
virtual BSTHashMap< BSFixedString, BSTSmartPointer< ObjectTypeInfo > > * GetWritableTypeTable()=0
static constexpr auto VTABLE
Definition: IVMSaveLoadInterface.h:50
virtual WritableStringTable GetWritableStringTable()=0
virtual void MarkSaveInvalid(BSStorage *a_storage)=0
virtual void Unk_0B(void *unk)=0
virtual void Unk_08(void *unk)=0
virtual bool GetStackByID(VMStackID a_stackID, Stack **a_out)=0
virtual void Unk_0A(VMHandle a_handle, Object **a_out)=0
Definition: CodeTasklet.h:18
Definition: Object.h:15
Definition: IVMSaveLoadInterface.h:21
const char * originalData
Definition: IVMSaveLoadInterface.h:24
BSFixedString convertedString
Definition: IVMSaveLoadInterface.h:25
Definition: IVMSaveLoadInterface.h:18
void * unk00
Definition: IVMSaveLoadInterface.h:27
BSScrapArray< StringEntry > * entries
Definition: IVMSaveLoadInterface.h:31
REX::EnumSet< StringIndexSize, std::int32_t > indexSize
Definition: IVMSaveLoadInterface.h:32
Definition: Stack.h:25
Definition: IVMSaveLoadInterface.h:37
BSTScrapHashMap< BSFixedString, std::uint32_t > * referenceMap
Definition: IVMSaveLoadInterface.h:41
REX::EnumSet< StringIndexSize, std::int32_t > indexSize
Definition: IVMSaveLoadInterface.h:42
void * unk00
Definition: IVMSaveLoadInterface.h:40
Definition: BSStorage.h:14
Definition: BSTArray.h:378
Definition: BSTHashMap.h:21
Definition: LoadStorageWrapper.h:8
Definition: SaveStorageWrapper.h:8
Definition: SaveFileHandleReaderWriter.h:8
StringIndexSize
Definition: IVMSaveLoadInterface.h:12
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSScript__IVMSaveLoadInterface(static_cast< std::uint64_t >(691835))
std::uint32_t VMStackID
Definition: BSCoreTypes.h:8
std::uint64_t VMHandle
Definition: BSCoreTypes.h:7
constexpr std::array< REL::ID, 1 > VTABLE_BSScript__IVMSaveLoadInterface
Definition: Offsets_VTABLE.h:9463