53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "RE/N/NiExtraData.h"
|
|
|
|
namespace RE
|
|
{
|
|
class __declspec(novtable) NiBinaryExtraData :
|
|
public NiExtraData
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::NiBinaryExtraData };
|
|
static constexpr auto VTABLE{ VTABLE::NiBinaryExtraData };
|
|
static constexpr auto Ni_RTTI{ Ni_RTTI::NiBinaryExtraData };
|
|
|
|
NiBinaryExtraData() :
|
|
NiExtraData()
|
|
{
|
|
REX::EMPLACE_VTABLE(this);
|
|
}
|
|
|
|
NiBinaryExtraData(void* a_value, const std::uint32_t a_size) :
|
|
NiExtraData(), value(a_value), size(a_size)
|
|
{
|
|
REX::EMPLACE_VTABLE(this);
|
|
}
|
|
|
|
NiBinaryExtraData(const BSFixedString& a_name, void* a_value, const std::uint32_t a_size) :
|
|
NiExtraData(a_name), value(a_value), size(a_size)
|
|
{
|
|
REX::EMPLACE_VTABLE(this);
|
|
}
|
|
|
|
public:
|
|
void GetValue(void** a_value, std::uint32_t* a_size) const
|
|
{
|
|
*a_value = value;
|
|
*a_size = size;
|
|
}
|
|
|
|
void SetValue(void* a_value, const std::uint32_t a_size)
|
|
{
|
|
value = a_value;
|
|
size = a_size;
|
|
}
|
|
|
|
protected:
|
|
// members
|
|
void* value{ nullptr }; // 0x18
|
|
std::uint32_t size{ 0 }; // 0x20
|
|
};
|
|
static_assert(sizeof(NiBinaryExtraData) == 0x28);
|
|
}
|