CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESObjectDOOR.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSTArray.h"
6#include "RE/F/FormTypes.h"
8#include "RE/T/TESFullName.h"
10
11namespace RE
12{
14 public TESBoundAnimObject, // 00
15 public TESFullName, // 30
16 public TESModelTextureSwap, // 40
17 public BGSDestructibleObjectForm, // 78
18 public BGSOpenCloseForm // 88
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_TESObjectDOOR;
22 inline static constexpr auto FORMTYPE = FormType::Door;
23
24 enum class Flag
25 {
26 kNone = 0,
27 kAutomatic = 1 << 1,
28 kHidden = 1 << 2,
29 kMinimalUse = 1 << 3,
30 kSliding = 1 << 4,
32 };
33
35 {
36 enum ChangeFlag : std::uint32_t
37 {
38 kTeleportExtra = 1 << 17
39 };
40 };
41
43 {
44 enum RecordFlag : std::uint32_t
45 {
46 kDeleted = 1 << 5,
47 kIgnored = 1 << 12,
48 kHasDistantLOD = 1 << 15,
50 kIsMarker = 1 << 23
51 };
52 };
53
54 ~TESObjectDOOR() override; // 00
55
56 // override (TESBoundAnimObject)
57 void InitializeData() override; // 04
58 void ClearData() override; // 05
59 bool Load(TESFile* a_mod) override; // 06
60 void InitItemImpl() override; // 13
61 bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_object, std::int32_t a_targetCount) override; // 37
62 NiAVObject* Clone3D(TESObjectREFR* a_ref) override; // 4A
63 bool GetActivateText(TESObjectREFR* a_activator, BSString& a_dst) override; // 4C
64 bool CalculateDoFavor(Actor* a_activator, bool a_arg2, TESObjectREFR* a_toActivate, float a_arg3) override; // 4D
65
66 // override (BGSOpenCloseForm)
67 void HandleOpen(TESObjectREFR* a_target, TESObjectREFR* a_activator) override; // 01
68
69 // members
70 std::uint64_t unk90; // 90
75 std::uint8_t padB1; // B1
76 std::uint16_t padB2; // B2
77 std::uint32_t padB4; // B4
79 };
80 static_assert(sizeof(TESObjectDOOR) == 0xD0);
81}
Definition: Actor.h:125
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSOpenCloseForm.h:9
Definition: BGSSoundDescriptorForm.h:14
Definition: BSTArray.h:377
Definition: NiAVObject.h:45
Definition: TESBoundAnimObject.h:8
Definition: TESBoundObject.h:24
Definition: TESFile.h:14
Definition: TESFullName.h:9
Definition: TESModelTextureSwap.h:10
Definition: TESObjectDOOR.h:19
void InitItemImpl() override
bool CalculateDoFavor(Actor *a_activator, bool a_arg2, TESObjectREFR *a_toActivate, float a_arg3) override
~TESObjectDOOR() override
Flag
Definition: TESObjectDOOR.h:25
std::uint64_t unk90
Definition: TESObjectDOOR.h:70
NiAVObject * Clone3D(TESObjectREFR *a_ref) override
stl::enumeration< Flag, std::uint8_t > flags
Definition: TESObjectDOOR.h:74
static constexpr auto FORMTYPE
Definition: TESObjectDOOR.h:22
void ClearData() override
bool Load(TESFile *a_mod) override
std::uint16_t padB2
Definition: TESObjectDOOR.h:76
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
std::uint8_t padB1
Definition: TESObjectDOOR.h:75
BGSSoundDescriptorForm * openSound
Definition: TESObjectDOOR.h:71
bool GetActivateText(TESObjectREFR *a_activator, BSString &a_dst) override
BGSSoundDescriptorForm * loopSound
Definition: TESObjectDOOR.h:73
void InitializeData() override
std::uint32_t padB4
Definition: TESObjectDOOR.h:77
BSTArray< TESForm * > randomTeleports
Definition: TESObjectDOOR.h:78
static constexpr auto RTTI
Definition: TESObjectDOOR.h:21
void HandleOpen(TESObjectREFR *a_target, TESObjectREFR *a_activator) override
BGSSoundDescriptorForm * closeSound
Definition: TESObjectDOOR.h:72
Definition: TESObjectREFR.h:105
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectDOOR
Definition: Offsets_RTTI.h:6035
Definition: TESObjectDOOR.h:35
ChangeFlag
Definition: TESObjectDOOR.h:37
@ kTeleportExtra
Definition: TESObjectDOOR.h:38
Definition: TESObjectDOOR.h:43
RecordFlag
Definition: TESObjectDOOR.h:45
@ kIsMarker
Definition: TESObjectDOOR.h:50
@ kDeleted
Definition: TESObjectDOOR.h:46
@ kRandomAnimStart
Definition: TESObjectDOOR.h:49
@ kHasDistantLOD
Definition: TESObjectDOOR.h:48
@ kIgnored
Definition: TESObjectDOOR.h:47