CommonLibSSE (powerof3)
DialogueItem.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
5 #include "RE/B/BSString.h"
6 #include "RE/B/BSTList.h"
7 #include "RE/M/MemoryManager.h"
8 
9 namespace RE
10 {
11  class Actor;
12  class BGSSoundDescriptorForm;
13  class ExtraSayToTopicInfo;
14  class TESIdleForm;
15  class TESObjectREFR;
16  class TESQuest;
17  class TESTopic;
18  class TESTopicInfo;
19 
21  {
22  public:
23  enum class EmotionType
24  {
25  kNeutral = 0,
26  kAnger = 1,
27  kDisgust = 2,
28  kFear = 3,
29  kSad = 4,
30  kHappy = 5,
31  kSurprise = 6,
32  kPuzzled = 7
33  };
34 
35  // members
36  BSString text; // 00
38  std::uint16_t percent; // 14
39  std::uint16_t pad16; // 16
44  bool useEmotion; // 38
45  bool soundLip; // 39
46  std::uint16_t pad3A; // 3A
47  std::uint32_t pad3C; // 3C
48  };
49  static_assert(sizeof(DialogueResponse) == 0x40);
50 
52  {
53  public:
54  DialogueItem(TESQuest* a_quest, TESTopic* a_topic, TESTopicInfo* a_topicInfo, Actor* a_speaker)
55  {
56  Ctor(a_quest, a_topic, a_topicInfo, a_speaker);
57  }
58 
59  ~DialogueItem() = default;
60 
62 
63  // members
64  std::uint32_t pad04{ 0 }; // 04
67  TESTopicInfo* info{ nullptr }; // 20
68  TESTopic* topic{ nullptr }; // 28
69  TESQuest* quest{ nullptr }; // 30
70  TESObjectREFR* speaker{ nullptr }; // 38
71  ExtraSayToTopicInfo* extraData{ nullptr }; // 40
72 
73  private:
74  DialogueItem* Ctor(TESQuest* a_quest, TESTopic* a_topic, TESTopicInfo* a_topicInfo, Actor* a_speaker)
75  {
76  using func_t = decltype(&DialogueItem::Ctor);
77  REL::Relocation<func_t> func{ REL::ID(35220) };
78  return func(this, a_quest, a_topic, a_topicInfo, a_speaker);
79  }
80  };
81  static_assert(sizeof(DialogueItem) == 0x48);
82 }
Definition: Relocation.h:841
Definition: Relocation.h:867
Definition: Actor.h:125
Definition: BGSSoundDescriptorForm.h:14
Definition: BSTList.h:10
Definition: DialogueItem.h:52
BSSimpleList< DialogueResponse * >::Node * currentResponse
Definition: DialogueItem.h:66
TESQuest * quest
Definition: DialogueItem.h:69
DialogueItem(TESQuest *a_quest, TESTopic *a_topic, TESTopicInfo *a_topicInfo, Actor *a_speaker)
Definition: DialogueItem.h:54
std::uint32_t pad04
Definition: DialogueItem.h:64
TESTopicInfo * info
Definition: DialogueItem.h:67
TESTopic * topic
Definition: DialogueItem.h:68
~DialogueItem()=default
ExtraSayToTopicInfo * extraData
Definition: DialogueItem.h:71
TESObjectREFR * speaker
Definition: DialogueItem.h:70
BSSimpleList< DialogueResponse * > responses
Definition: DialogueItem.h:65
Definition: DialogueItem.h:21
std::uint32_t pad3C
Definition: DialogueItem.h:47
BSString text
Definition: DialogueItem.h:36
std::uint16_t percent
Definition: DialogueItem.h:38
TESIdleForm * speakerIdle
Definition: DialogueItem.h:41
bool soundLip
Definition: DialogueItem.h:45
bool useEmotion
Definition: DialogueItem.h:44
BSFixedString voice
Definition: DialogueItem.h:40
BGSSoundDescriptorForm * voiceSound
Definition: DialogueItem.h:43
EmotionType
Definition: DialogueItem.h:24
stl::enumeration< EmotionType, std::uint32_t > animFaceArchType
Definition: DialogueItem.h:37
TESIdleForm * listenIdle
Definition: DialogueItem.h:42
std::uint16_t pad3A
Definition: DialogueItem.h:46
std::uint16_t pad16
Definition: DialogueItem.h:39
Definition: ExtraSayToTopicInfo.h:13
Definition: TESIdleForm.h:35
Definition: TESObjectREFR.h:103
Definition: TESQuest.h:189
Definition: TESTopicInfo.h:42
Definition: TESTopic.h:135
Definition: AbsorbEffect.h:6
Definition: BSIntrusiveRefCounted.h:8
Definition: BSTList.h:18