37 lines
2.0 KiB
C++
37 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "RE/B/BSFixedString.h"
|
|
|
|
namespace RE
|
|
{
|
|
namespace BSScript
|
|
{
|
|
class __declspec(novtable) IObjectHandlePolicy
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::BSScript__IObjectHandlePolicy };
|
|
static constexpr auto VTABLE{ VTABLE::BSScript__IObjectHandlePolicy };
|
|
|
|
virtual ~IObjectHandlePolicy() = default; // 00
|
|
|
|
// add
|
|
virtual bool HandleIsType(std::uint32_t a_type, std::size_t a_handle) const = 0; // 01
|
|
virtual bool GetHandleType(std::size_t a_handle, std::uint32_t& a_type) const = 0; // 02
|
|
virtual bool IsHandleLoaded(std::size_t a_handle) const = 0; // 03
|
|
virtual bool IsHandleObjectAvailable(std::size_t a_handle) const = 0; // 04
|
|
virtual bool ShouldAttemptToCleanHandle(std::size_t a_handle) const = 0; // 05
|
|
virtual std::size_t EmptyHandle() const = 0; // 06
|
|
virtual std::size_t GetHandleForObject(std::uint32_t a_type, const void* a_object) const = 0; // 07
|
|
virtual bool HasParent(std::size_t a_childHandle) const = 0; // 08
|
|
virtual std::size_t GetParentHandle(std::size_t a_childHandle) const = 0; // 09
|
|
virtual std::size_t GetHandleScriptsMovedFrom(std::size_t a_newHandle) const = 0; // 0A
|
|
virtual std::size_t GetSaveRemappedHandle(std::size_t a_saveHandle) const = 0; // 0B
|
|
virtual void* GetObjectForHandle(std::uint32_t a_type, std::size_t a_handle) const = 0; // 0C
|
|
virtual void PersistHandle(std::size_t a_handle) = 0; // 0D
|
|
virtual void ReleaseHandle(std::size_t a_handle) = 0; // 0E
|
|
virtual void ConvertHandleToString(std::size_t a_handle, BSFixedString& a_string) const = 0; // 0F
|
|
};
|
|
static_assert(sizeof(IObjectHandlePolicy) == 0x8);
|
|
}
|
|
}
|