CommonLibSSE NG
Loading...
Searching...
No Matches
TESFurniture.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/A/ActorValues.h"
4#include "RE/B/BSTArray.h"
5#include "RE/F/FormTypes.h"
7
8namespace RE
9{
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_TESFurniture;
14 inline static constexpr auto VTABLE = VTABLE_TESFurniture;
15 inline static constexpr auto FORMTYPE = FormType::Furniture;
16
17 enum class ActiveMarker
18 {
19 kNone = 0,
20 kSit0 = 1 << 0,
21 kSit1 = 1 << 1,
22 kSit2 = 1 << 2,
23 kSit3 = 1 << 3,
24 kSit4 = 1 << 4,
25 kSit5 = 1 << 5,
26 kSit6 = 1 << 6,
27 kSit7 = 1 << 7,
28 kSit8 = 1 << 8,
29 kSit9 = 1 << 9,
30 kSit10 = 1 << 10,
31 kSit11 = 1 << 11,
32 kSit12 = 1 << 12,
33 kSit13 = 1 << 13,
34 kSit14 = 1 << 14,
35 kSit15 = 1 << 15,
36 kSit16 = 1 << 16,
37 kSit17 = 1 << 17,
38 kSit18 = 1 << 18,
39 kSit19 = 1 << 19,
40 kSit20 = 1 << 20,
41 kSit21 = 1 << 21,
42 kSit22 = 1 << 22,
43 kSit23 = 1 << 23,
44 kDisablesActivation = 1 << 25,
45 kIsPerch = 1 << 26,
46 kMustExitToTalk = 1 << 27,
47 kSit28 = 1 << 28,
48 kCanLean = 1 << 29,
49 kCanSit = 1 << 30,
50 kCanSleep = 1 << 31
51 };
52
54 {
55 enum RecordFlag : std::uint32_t
56 {
57 kDeleted = 1 << 5,
58 kIsPerch = 1 << 7,
59 kIgnored = 1 << 12,
60 kHasDistantLOD = 1 << 15,
62 kIsMarker = 1 << 23,
63 kMustExitToTalk = 1 << 28,
64 kChildCanUse = 1 << 29
65 };
66 };
67
68 struct WorkBenchData // WBDT
69 {
70 public:
71 enum class BenchType
72 {
73 kNone = 0,
74 kCreateObject = 1,
76 kEnchanting = 3,
78 kAlchemy = 5,
81 };
82
83 // members
86 };
87 static_assert(sizeof(WorkBenchData) == 0x2);
88
90 {
91 public:
92 struct DisabledEntryPoint // NAM0
93 {
94 public:
95 enum class DisabledPoint
96 {
97 kNone = 0,
98 kFront = 1 << 0,
99 kBehind = 1 << 1,
100 kRight = 1 << 2,
101 kLeft = 1 << 3,
102 kUp = 1 << 4
103 };
104
105 // members
106 std::uint16_t unk0; // 0
108 };
109 static_assert(sizeof(DisabledEntryPoint) == 0x4);
110
111 // members
112 std::uint32_t entryPoint; // 00 - ENAM
114 BGSKeyword* keyword; // 08 - FNMK
115 };
116 static_assert(sizeof(EntryPointData) == 0x10);
117
118 ~TESFurniture() override; // 00
119
120 // override (TESObjectACTI)
121 void InitializeData() override; // 04
122 void ClearData() override; // 05
123 bool Load(TESFile* a_mod) override; // 06
124 void InitItemImpl() override; // 13
125 bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_object, std::int32_t a_targetCount) override; // 37
126 NiAVObject* Clone3D(TESObjectREFR* a_ref) override; // 4A
127 bool GetActivateText(TESObjectREFR* a_activator, BSString& a_dst) override; // 4C
128 bool CalculateDoFavor(Actor* a_activator, bool a_arg2, TESObjectREFR* a_toActivate, float a_arg3) override; // 4D
129
130 // members
133 std::uint16_t padE2; // E2
136 };
137 static_assert(sizeof(TESFurniture) == 0xF0);
138}
Definition Actor.h:131
Definition BGSKeyword.h:10
Definition BSTArray.h:377
Definition NiAVObject.h:50
Definition SpellItem.h:16
Definition TESBoundObject.h:24
Definition TESFile.h:15
Definition TESFurniture.h:11
BSTArray< EntryPointData > entryPointDataArray
Definition TESFurniture.h:131
~TESFurniture() override
SpellItem * associatedForm
Definition TESFurniture.h:135
static constexpr auto FORMTYPE
Definition TESFurniture.h:15
bool Load(TESFile *a_mod) override
static constexpr auto VTABLE
Definition TESFurniture.h:14
void ClearData() override
ActiveMarker
Definition TESFurniture.h:18
void InitItemImpl() override
WorkBenchData workBenchData
Definition TESFurniture.h:132
static constexpr auto RTTI
Definition TESFurniture.h:13
void InitializeData() override
stl::enumeration< ActiveMarker, std::uint32_t > furnFlags
Definition TESFurniture.h:134
NiAVObject * Clone3D(TESObjectREFR *a_ref) override
bool CalculateDoFavor(Actor *a_activator, bool a_arg2, TESObjectREFR *a_toActivate, float a_arg3) override
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
bool GetActivateText(TESObjectREFR *a_activator, BSString &a_dst) override
std::uint16_t padE2
Definition TESFurniture.h:133
Definition TESObjectACTI.h:22
Definition TESObjectREFR.h:112
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TESFurniture(685051, 392805, 0x1ede990)
constexpr std::array< REL::VariantID, 6 > VTABLE_TESFurniture
Definition Offsets_VTABLE.h:499
Definition TESFurniture.h:93
std::uint16_t unk0
Definition TESFurniture.h:106
DisabledPoint
Definition TESFurniture.h:96
@ kLeft
@ kRight
@ kNone
@ kFront
@ kBehind
@ kUp
stl::enumeration< DisabledPoint, std::uint16_t > disabledPoints
Definition TESFurniture.h:107
Definition TESFurniture.h:90
std::uint32_t entryPoint
Definition TESFurniture.h:112
DisabledEntryPoint disabledEntryPoints
Definition TESFurniture.h:113
BGSKeyword * keyword
Definition TESFurniture.h:114
Definition TESFurniture.h:54
RecordFlag
Definition TESFurniture.h:56
@ kMustExitToTalk
Definition TESFurniture.h:63
@ kRandomAnimStart
Definition TESFurniture.h:61
@ kDeleted
Definition TESFurniture.h:57
@ kHasDistantLOD
Definition TESFurniture.h:60
@ kIsPerch
Definition TESFurniture.h:58
@ kIsMarker
Definition TESFurniture.h:62
@ kChildCanUse
Definition TESFurniture.h:64
@ kIgnored
Definition TESFurniture.h:59
Definition TESFurniture.h:69
BenchType
Definition TESFurniture.h:72
stl::enumeration< ActorValue, std::uint8_t > usesSkill
Definition TESFurniture.h:85
stl::enumeration< BenchType, std::uint8_t > benchType
Definition TESFurniture.h:84