CommonLibVR
IVMObjectBindInterface.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSTSmartPointer.h"
5 
6 namespace RE
7 {
8  namespace BSScript
9  {
10  class Object;
11 
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BSScript__IVMObjectBindInterface;
16  inline static constexpr auto VTABLE = VTABLE_BSScript__IVMObjectBindInterface;
17 
18  virtual ~IVMObjectBindInterface(); // 00
19 
20  // add
21  [[nodiscard]] virtual VMHandle GetBoundHandle(const BSTSmartPointer<Object>& a_objPtr) const = 0; // 01
22  virtual bool TypeCanBeBound(const BSFixedString& a_className, VMHandle a_handle) = 0; // 02
23  virtual void BindObject(BSTSmartPointer<Object>& a_objPtr, VMHandle a_handle, bool a_conditional) = 0; // 03
24  virtual void HandleLoadedBinding(BSTSmartPointer<Object>& a_objPtr, VMHandle a_handle, bool a_conditional) = 0; // 04
25  virtual void RemoveAllBoundObjects(VMHandle a_handle) = 0; // 05
26  virtual void RemoveAllDiskLoadedBoundObjects(VMHandle a_handle) = 0; // 06
27  virtual void HandleCObjectDeletion(VMHandle a_handle) = 0; // 07
28  virtual void UnbindObject(const BSTSmartPointer<Object>& a_objPtr) = 0; // 08
29  virtual bool CreateObjectWithProperties(const BSFixedString& a_className, std::uint32_t a_numProperties, BSTSmartPointer<Object>& a_objPtr) = 0; // 09
30  virtual bool InitObjectProperties(BSTSmartPointer<Object>& a_objPtr, void* a_property, bool a_arg3) = 0; // 0A
31  };
32  static_assert(sizeof(IVMObjectBindInterface) == 0x8);
33  }
34 }
Definition: BSTSmartPointer.h:37
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSScript__IVMObjectBindInterface(static_cast< std::uint64_t >(691834))
constexpr std::array< REL::ID, 1 > VTABLE_BSScript__IVMObjectBindInterface
Definition: Offsets_VTABLE.h:9462
std::uint64_t VMHandle
Definition: BSCoreTypes.h:7
Definition: IVMObjectBindInterface.h:13
static constexpr auto VTABLE
Definition: IVMObjectBindInterface.h:16
virtual void HandleCObjectDeletion(VMHandle a_handle)=0
virtual bool InitObjectProperties(BSTSmartPointer< Object > &a_objPtr, void *a_property, bool a_arg3)=0
virtual void UnbindObject(const BSTSmartPointer< Object > &a_objPtr)=0
virtual void BindObject(BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional)=0
virtual void HandleLoadedBinding(BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional)=0
virtual VMHandle GetBoundHandle(const BSTSmartPointer< Object > &a_objPtr) const =0
virtual void RemoveAllBoundObjects(VMHandle a_handle)=0
virtual bool CreateObjectWithProperties(const BSFixedString &a_className, std::uint32_t a_numProperties, BSTSmartPointer< Object > &a_objPtr)=0
static constexpr auto RTTI
Definition: IVMObjectBindInterface.h:15
virtual void RemoveAllDiskLoadedBoundObjects(VMHandle a_handle)=0
virtual bool TypeCanBeBound(const BSFixedString &a_className, VMHandle a_handle)=0