CommonLibSSE NG
BSSystemFileStorage.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSStorage.h"
4 
5 namespace RE
6 {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_BSSystemFileStorage;
11 
12  struct Attributes
13  {
14  public:
15  enum class Error
16  {
17  kNone = 0,
18  kFileNotFound = 2,
19  kAlreadyExists = 3,
20  kPathNotFound = 4,
21  kWriteProtect = 5,
22  kOther = 6,
23 
24  kErrorMask = 0x7FFFFFFF,
25 
26  kUnkFlag = 1 << 31 // top bit isn't part of the error, mask 0x7FFFFFFF to get the error
27  };
28 
29  // members
31  std::uint32_t pad24; // 04
32  void* handle; // 08
33  };
34  static_assert(sizeof(Attributes) == 0x10);
35 
36  ~BSSystemFileStorage() override; // 00
37 
38  // override (BSStorage)
39  std::size_t GetSize() const override; // 01
40  std::size_t GetPosition() const override; // 02
41  BSStorageDefs::ErrorCode Seek(std::size_t a_offset, BSStorageDefs::SeekMode a_seekMode) const override; // 03
42  BSStorageDefs::ErrorCode Read(std::size_t a_numBytes, std::byte* a_bytes) const override; // 04
43  BSStorageDefs::ErrorCode Write(std::size_t a_numBytes, const std::byte* a_bytes) override; // 05
44 
45  bool IsGoodForRead() const;
46 
47  // members
49  bool unk30; // 30
50  bool unk31; // 31
51  bool goodForRead; // 32
52  std::uint8_t pad33; // 33
53  std::uint32_t pad34; // 34
54  };
55  static_assert(sizeof(BSSystemFileStorage) == 0x38);
56 }
Definition: BSStorage.h:14
Definition: BSSystemFileStorage.h:8
~BSSystemFileStorage() override
std::uint32_t pad34
Definition: BSSystemFileStorage.h:53
bool IsGoodForRead() const
Attributes attributes
Definition: BSSystemFileStorage.h:48
bool goodForRead
Definition: BSSystemFileStorage.h:51
std::uint8_t pad33
Definition: BSSystemFileStorage.h:52
std::size_t GetPosition() const override
bool unk31
Definition: BSSystemFileStorage.h:50
BSStorageDefs::ErrorCode Seek(std::size_t a_offset, BSStorageDefs::SeekMode a_seekMode) const override
BSStorageDefs::ErrorCode Write(std::size_t a_numBytes, const std::byte *a_bytes) override
bool unk30
Definition: BSSystemFileStorage.h:49
static constexpr auto RTTI
Definition: BSSystemFileStorage.h:10
std::size_t GetSize() const override
BSStorageDefs::ErrorCode Read(std::size_t a_numBytes, std::byte *a_bytes) const override
ErrorCode
Definition: ErrorCodes.h:8
SeekMode
Definition: Stream.h:14
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSSystemFileStorage(690336, 398191, 0x1f601e0)
Definition: BSSystemFileStorage.h:13
void * handle
Definition: BSSystemFileStorage.h:32
Error
Definition: BSSystemFileStorage.h:16
std::uint32_t pad24
Definition: BSSystemFileStorage.h:31
stl::enumeration< Error, std::uint32_t > lastError
Definition: BSSystemFileStorage.h:30