docs: add plugin setup guide
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "RE/B/BSResource_ErrorCode.h"
|
||||
#include "RE/B/BSResource_Info.h"
|
||||
#include "RE/M/MemoryManager.h"
|
||||
|
||||
namespace RE::BSResource
|
||||
{
|
||||
class __declspec(novtable) StreamBase
|
||||
{
|
||||
public:
|
||||
inline static constexpr auto RTTI = { RTTI::BSResource__StreamBase };
|
||||
inline static constexpr auto VTABLE = { VTABLE::BSResource__StreamBase };
|
||||
|
||||
enum : std::uint32_t
|
||||
{
|
||||
kWritable = 1 << 0,
|
||||
kBuffered = 1 << 1,
|
||||
kFullReadHint = 1 << 2,
|
||||
kUnk3 = 1 << 3,
|
||||
kUnk4 = 1 << 4,
|
||||
kRefCountBeg = 0x1000,
|
||||
kRefCountMask = (std::uint32_t)0xFFFFF000
|
||||
};
|
||||
|
||||
StreamBase();
|
||||
StreamBase(const StreamBase& a_rhs);
|
||||
StreamBase(StreamBase&& a_rhs);
|
||||
StreamBase(std::uint32_t a_totalSize, bool writable);
|
||||
virtual ~StreamBase() = default; // 00
|
||||
|
||||
// add
|
||||
virtual ErrorCode DoOpen() = 0; // 01
|
||||
virtual void DoClose() = 0; // 02
|
||||
[[nodiscard]] virtual std::uint64_t DoGetKey() const; // 03 - { return 0; }
|
||||
virtual ErrorCode DoGetInfo(Info& a_info); // 04 - { return ErrorCode::kUnsupported; }
|
||||
|
||||
F4_HEAP_REDEFINE_NEW(StreamBase);
|
||||
|
||||
std::uint32_t DecRef();
|
||||
std::uint32_t IncRef();
|
||||
[[nodiscard]] bool IsWritable() const;
|
||||
|
||||
// members
|
||||
std::uint32_t totalSize; // 08
|
||||
std::uint32_t flags; // 0C
|
||||
};
|
||||
static_assert(sizeof(StreamBase) == 0x10);
|
||||
}
|
||||
Reference in New Issue
Block a user