CommonLibVR
TESBoundObject.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSString.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/N/NiSmartPointer.h"
6 #include "RE/T/TESObject.h"
7 
8 namespace RE
9 {
10  class NiAVObject;
11  class TESObjectREFR;
12 
14  {
15  public:
16  // members
17  std::int16_t x; // 0
18  std::int16_t y; // 2
19  std::int16_t z; // 4
20  private:
21  KEEP_FOR_RE()
22  };
23  static_assert(sizeof(NiNPShortPoint3) == 0x6);
24 
25  class TESBoundObject : public TESObject
26  {
27  public:
28  inline static constexpr auto RTTI = RTTI_TESBoundObject;
29  inline static constexpr auto VTABLE = VTABLE_TESBoundObject;
30 
31  struct BOUND_DATA // OBND
32  {
33  public:
34  // members
37  };
38  static_assert(sizeof(BOUND_DATA) == 0xC);
39 
40  ~TESBoundObject() override; // 00
41 
42  // override (TESObject)
43  void LoadObjectBound(TESFile* a_mod) override; // 26
44  bool IsBoundObject() const override; // 27 - { return true; }
45  bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_object, std::int32_t a_targetCount) override; // 37
46  NiAVObject* Clone3D(TESObjectREFR* a_ref, bool a_arg3) override; // 40
47  bool ReplaceModel() override; // 44
48 
49  // add
50  virtual void SetObjectVoiceType(BGSVoiceType* a_voiceType); // 48 - { return; }
51  [[nodiscard]] virtual BGSVoiceType* GetObjectVoiceType() const; // 49 - { return 0; }
52  virtual NiAVObject* Clone3D(TESObjectREFR* a_ref); // 4A - { Clone3D(a_ref, false); }
53  virtual bool ReplaceModel(const char* a_str); // 4B
54  virtual bool GetActivateText(TESObjectREFR* a_activator, BSString& a_dst); // 4C
55  virtual bool CalculateDoFavor(Actor* a_activator, bool a_arg2, TESObjectREFR* a_toActivate, float a_arg3); // 4D
56  virtual void HandleRemoveItemFromContainer(TESObjectREFR* a_container); // 4E - { return; }
57  virtual void OnRemove3D(NiAVObject* a_obj3D); // 4F - { return; }
58  virtual void OnCheckModels(); // 50 - { return; }
59  virtual void OnCopyReference(); // 51 - { return; }
60  virtual void OnFinishScale(); // 52 - { return; }
61 
62  // members
63  BOUND_DATA boundData; // 20 - OBND
64  std::uint32_t pad2C; // 2C
65  private:
66  KEEP_FOR_RE()
67  };
68  static_assert(sizeof(TESBoundObject) == 0x30);
69 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: Actor.h:133
Definition: BGSVoiceType.h:25
Definition: NiAVObject.h:57
Definition: TESBoundObject.h:14
std::int16_t y
Definition: TESBoundObject.h:18
std::int16_t x
Definition: TESBoundObject.h:17
std::int16_t z
Definition: TESBoundObject.h:19
Definition: TESBoundObject.h:26
~TESBoundObject() override
virtual void OnRemove3D(NiAVObject *a_obj3D)
virtual void OnCopyReference()
bool IsBoundObject() const override
std::uint32_t pad2C
Definition: TESBoundObject.h:64
virtual BGSVoiceType * GetObjectVoiceType() const
virtual bool GetActivateText(TESObjectREFR *a_activator, BSString &a_dst)
virtual void SetObjectVoiceType(BGSVoiceType *a_voiceType)
virtual bool CalculateDoFavor(Actor *a_activator, bool a_arg2, TESObjectREFR *a_toActivate, float a_arg3)
void LoadObjectBound(TESFile *a_mod) override
bool ReplaceModel() override
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
virtual NiAVObject * Clone3D(TESObjectREFR *a_ref)
virtual void OnFinishScale()
BOUND_DATA boundData
Definition: TESBoundObject.h:63
static constexpr auto VTABLE
Definition: TESBoundObject.h:29
NiAVObject * Clone3D(TESObjectREFR *a_ref, bool a_arg3) override
static constexpr auto RTTI
Definition: TESBoundObject.h:28
virtual bool ReplaceModel(const char *a_str)
virtual void HandleRemoveItemFromContainer(TESObjectREFR *a_container)
virtual void OnCheckModels()
Definition: TESFile.h:17
Definition: TESObjectREFR.h:113
Definition: TESObject.h:11
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESBoundObject(static_cast< std::uint64_t >(513852))
constexpr std::array< REL::ID, 1 > VTABLE_TESBoundObject
Definition: Offsets_VTABLE.h:12808
Definition: TESBoundObject.h:32
NiNPShortPoint3 boundMin
Definition: TESBoundObject.h:35
NiNPShortPoint3 boundMax
Definition: TESBoundObject.h:36