CommonLibSSE NG
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 
17  virtual ~IVMObjectBindInterface(); // 00
18 
19  // add
20  [[nodiscard]] virtual VMHandle GetBoundHandle(const BSTSmartPointer<Object>& a_objPtr) const = 0; // 01
21  virtual bool TypeCanBeBound(const BSFixedString& a_className, VMHandle a_handle) = 0; // 02
22  virtual void BindObject(BSTSmartPointer<Object>& a_objPtr, VMHandle a_handle, bool a_conditional) = 0; // 03
23  virtual void HandleLoadedBinding(BSTSmartPointer<Object>& a_objPtr, VMHandle a_handle, bool a_conditional) = 0; // 04
24  virtual void RemoveAllBoundObjects(VMHandle a_handle) = 0; // 05
25  virtual void RemoveAllDiskLoadedBoundObjects(VMHandle a_handle) = 0; // 06
26  virtual void HandleCObjectDeletion(VMHandle a_handle) = 0; // 07
27  virtual void UnbindObject(const BSTSmartPointer<Object>& a_objPtr) = 0; // 08
28  virtual bool CreateObjectWithProperties(const BSFixedString& a_className, std::uint32_t a_numProperties, BSTSmartPointer<Object>& a_objPtr) = 0; // 09
29  virtual bool InitObjectProperties(BSTSmartPointer<Object>& a_objPtr, void* a_property, bool a_arg3) = 0; // 0A
30  };
31  static_assert(sizeof(IVMObjectBindInterface) == 0x8);
32  }
33 }
Definition: BSTSmartPointer.h:36
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSScript__IVMObjectBindInterface(691834, 399878, 0x1f7cc50)
std::uint64_t VMHandle
Definition: BSCoreTypes.h:7
Definition: IVMObjectBindInterface.h:13
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