CommonLibVR
BGSTalkingActivator.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/F/FormTypes.h"
4 #include "RE/T/TESObjectACTI.h"
5 
6 namespace RE
7 {
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_BGSTalkingActivator;
12  inline static constexpr auto VTABLE = VTABLE_BGSTalkingActivator;
13  inline static constexpr auto FORMTYPE = FormType::TalkingActivator;
14 
15  struct ChangeFlags
16  {
17  enum ChangeFlag : std::uint32_t
18  {
19  kSpeaker = 1 << 23
20  };
21  };
22 
23  struct RecordFlags
24  {
25  enum RecordFlag : std::uint32_t
26  {
27  kDeleted = 1 << 5,
29  kIgnored = 1 << 12,
30  kRandomAnimStart = 1 << 16,
31  kRadioStation = 1 << 17
32  };
33  };
34 
35  ~BGSTalkingActivator() override; // 00
36 
37  // override (TESObjectACTI)
38  void InitializeData() override; // 04
39  bool Load(TESFile* a_mod) override; // 06
40  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
41  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
42  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
43  void InitItemImpl() override; // 13
44  bool GetDangerous() const override; // 1B - { return 0; }
45  bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_arg4, std::int32_t a_targetCount) override; // 37
46  void SetObjectVoiceType(BGSVoiceType* a_voiceType) override; // 48 - { voiceType = a_voiceType; }
47  [[nodiscard]] BGSVoiceType* GetObjectVoiceType() const override; // 49 - { return voiceType; }
48 
49  // add
50  virtual bool GetReflectedByAutoWater(); // 53 - { return false; }
51 
52  // members
54  BGSVoiceType* voiceType; // D0 - VNAM
55  private:
56  KEEP_FOR_RE()
57  };
58  static_assert(sizeof(BGSTalkingActivator) == 0xD8);
59 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BGSTalkingActivator.h:9
bool Load(TESFile *a_mod) override
static constexpr auto FORMTYPE
Definition: BGSTalkingActivator.h:13
bool GetDangerous() const override
BGSVoiceType * voiceType
Definition: BGSTalkingActivator.h:54
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_arg4, std::int32_t a_targetCount) override
static constexpr auto RTTI
Definition: BGSTalkingActivator.h:11
void LoadGame(BGSLoadFormBuffer *a_buf) override
virtual bool GetReflectedByAutoWater()
BGSVoiceType * GetObjectVoiceType() const override
TESObjectREFR * tempRef
Definition: BGSTalkingActivator.h:53
void SetObjectVoiceType(BGSVoiceType *a_voiceType) override
void InitializeData() override
void InitItemImpl() override
~BGSTalkingActivator() override
static constexpr auto VTABLE
Definition: BGSTalkingActivator.h:12
void Revert(BGSLoadFormBuffer *a_buf) override
void SaveGame(BGSSaveFormBuffer *a_buf) override
Definition: BGSVoiceType.h:25
Definition: TESBoundObject.h:26
Definition: TESFile.h:17
Definition: TESObjectACTI.h:22
Definition: TESObjectREFR.h:113
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 6 > VTABLE_BGSTalkingActivator
Definition: Offsets_VTABLE.h:8880
constexpr REL::ID RTTI_BGSTalkingActivator(static_cast< std::uint64_t >(513974))
Definition: BGSTalkingActivator.h:16
ChangeFlag
Definition: BGSTalkingActivator.h:18
@ kSpeaker
Definition: BGSTalkingActivator.h:19
Definition: BGSTalkingActivator.h:24
RecordFlag
Definition: BGSTalkingActivator.h:26
@ kDeleted
Definition: BGSTalkingActivator.h:27
@ kRandomAnimStart
Definition: BGSTalkingActivator.h:30
@ kRadioStation
Definition: BGSTalkingActivator.h:31
@ kIgnored
Definition: BGSTalkingActivator.h:29
@ kHiddenFromLocalMap
Definition: BGSTalkingActivator.h:28