CommonLibSSE (Parapets fork)
IObjectHandlePolicy.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/F/FormTypes.h"
5 
6 namespace RE
7 {
8  class TESForm;
9 
10  namespace BSScript
11  {
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BSScript__IObjectHandlePolicy;
16 
17  virtual ~IObjectHandlePolicy(); // 00
18 
19  // add
20  [[nodiscard]] virtual bool HandleIsType(VMTypeID a_typeID, VMHandle a_handle) const = 0; // 01
21  [[nodiscard]] virtual bool IsHandleObjectAvailable(VMHandle a_handle) const = 0; // 02
22  [[nodiscard]] virtual VMHandle EmptyHandle() const = 0; // 03
23  virtual VMHandle GetHandleForObject(VMTypeID a_typeID, const void* a_srcData) const = 0; // 04
24  [[nodiscard]] virtual bool HasParent(VMHandle a_handle) const = 0; // 05
25  [[nodiscard]] virtual VMHandle GetParentHandle(VMHandle a_handle) const = 0; // 06
26  [[nodiscard]] virtual VMHandle GetHandleScriptsMovedFrom(VMHandle a_handle) const = 0; // 07
27  [[nodiscard]] virtual void* GetObjectForHandle(VMTypeID a_typeID, VMHandle a_handle) const = 0; // 08
28  virtual void PersistHandle(VMHandle a_handle) = 0; // 09
29  virtual void ReleaseHandle(VMHandle a_handle) = 0; // 0A
30  virtual void ConvertHandleToString(VMHandle a_handle, BSFixedString& a_strOut) const = 0; // 0B
31 
32  bool HandleIsType(FormType a_typeID, VMHandle a_handle);
33  VMHandle GetHandleForObject(FormType a_typeID, const TESForm* a_srcData);
35  };
36  static_assert(sizeof(IObjectHandlePolicy) == 0x8);
37  }
38 }
Definition: TESForm.h:34
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSScript__IObjectHandlePolicy
Definition: Offsets_RTTI.h:2182
FormType
Definition: FormTypes.h:139
std::uint32_t VMTypeID
Definition: BSCoreTypes.h:9
std::uint64_t VMHandle
Definition: BSCoreTypes.h:7
Definition: IObjectHandlePolicy.h:13
virtual VMHandle GetHandleScriptsMovedFrom(VMHandle a_handle) const =0
virtual VMHandle GetHandleForObject(VMTypeID a_typeID, const void *a_srcData) const =0
bool HandleIsType(FormType a_typeID, VMHandle a_handle)
virtual VMHandle GetParentHandle(VMHandle a_handle) const =0
static constexpr auto RTTI
Definition: IObjectHandlePolicy.h:15
virtual void ReleaseHandle(VMHandle a_handle)=0
virtual bool HandleIsType(VMTypeID a_typeID, VMHandle a_handle) const =0
virtual bool IsHandleObjectAvailable(VMHandle a_handle) const =0
virtual void * GetObjectForHandle(VMTypeID a_typeID, VMHandle a_handle) const =0
virtual void PersistHandle(VMHandle a_handle)=0
virtual void ConvertHandleToString(VMHandle a_handle, BSFixedString &a_strOut) const =0
virtual VMHandle EmptyHandle() const =0
VMHandle GetHandleForObject(FormType a_typeID, const TESForm *a_srcData)
TESForm * GetObjectForHandle(FormType a_typeID, VMHandle a_handle)
virtual bool HasParent(VMHandle a_handle) const =0