CommonLibSSE NG
Loading...
Searching...
No Matches
TESObjectTREE.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
5#include "RE/F/FormTypes.h"
6#include "RE/N/NiMatrix3.h"
7#include "RE/N/NiPoint3.h"
9#include "RE/T/TESFullName.h"
10#include "RE/T/TESModel.h"
11#include "RE/T/TESProduceForm.h"
12
13namespace RE
14{
15 struct OBJ_TREE // CNAM
16 {
17 float trunkFlexibility; // 00
18 float branchFlexibility; // 04
19 float trunkAmplitude; // 08
20 float frontAmplitude; // 0C
21 float backAmplitude; // 10
22 float sideAmplitude; // 14
23 float frontFrequency; // 18
24 float backFrequency; // 1C
25 float sideFrequency; // 20
26 float leafFlexibility; // 24
27 float leafAmplitude; // 28
28 float leafFrequency; // 2C
29 };
30 static_assert(sizeof(OBJ_TREE) == 0x30);
31
32 struct BoneData
33 {
36 std::uint32_t parentWorldBoneRotationIndex; // 30
37 };
38 static_assert(sizeof(BoneData) == 0x34);
39
41 {
42 std::uint32_t pad04; // 04
45 };
46 static_assert(sizeof(BaseTreeData) == 0x38);
47
49 public TESBoundObject, // 00
50 public TESModel, // 30
51 public TESFullName, // 58
52 public TESProduceForm // 68
53 {
54 public:
55 inline static constexpr auto RTTI = RTTI_TESObjectTREE;
56 inline static constexpr auto VTABLE = VTABLE_TESObjectTREE;
57 inline static constexpr auto FORMTYPE = FormType::Tree;
58
59 enum class etTreeType
60 {
61 kShortAndThin = 0,
63 kTallAndThin = 2,
65 };
66
68 {
69 enum RecordFlag : std::uint32_t
70 {
71 kDeleted = 1 << 5,
72 kIgnored = 1 << 12,
73 kHasDistantLOD = 1 << 15
74 };
75 };
76
77 ~TESObjectTREE() override; // 00
78
79 // override (TESBoundObject)
80 void InitializeData() override; // 04
81 bool Load(TESFile* a_mod) override; // 06
82 void InitItemImpl() override; // 13
83 bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_object, std::int32_t a_targetCount) override; // 37
84 bool ReplaceModel() override; // 44
85 bool GetActivateText(TESObjectREFR* a_activator, BSString& a_dst) override; // 4C
86 void OnRemove3D(NiAVObject* a_obj3D) override; // 4F
87 void OnCheckModels() override; // 50 - { return; }
88 void OnCopyReference() override; // 51 - { return; }
89 void OnFinishScale() override; // 52 - { return; }
90
91 // members
95 std::uint32_t padC4; // C4
96 };
97 static_assert(sizeof(TESObjectTREE) == 0xC8);
98}
Definition BSTArray.h:377
Definition NiAVObject.h:50
Definition NiMatrix3.h:8
Definition NiPoint3.h:6
Definition TESBoundObject.h:24
Definition TESFile.h:15
Definition TESFullName.h:9
Definition TESModel.h:16
Definition TESObjectREFR.h:112
Definition TESObjectTREE.h:53
void OnRemove3D(NiAVObject *a_obj3D) override
etTreeType
Definition TESObjectTREE.h:60
void OnCheckModels() override
bool ReplaceModel() override
~TESObjectTREE() override
BaseTreeData * baseData
Definition TESObjectTREE.h:93
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
static constexpr auto VTABLE
Definition TESObjectTREE.h:56
bool Load(TESFile *a_mod) override
void InitializeData() override
void OnCopyReference() override
stl::enumeration< etTreeType, std::uint32_t > type
Definition TESObjectTREE.h:94
void InitItemImpl() override
void OnFinishScale() override
std::uint32_t padC4
Definition TESObjectTREE.h:95
static constexpr auto RTTI
Definition TESObjectTREE.h:55
OBJ_TREE data
Definition TESObjectTREE.h:92
bool GetActivateText(TESObjectREFR *a_activator, BSString &a_dst) override
static constexpr auto FORMTYPE
Definition TESObjectTREE.h:57
Definition TESProduceForm.h:25
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TESObjectTREE(513978, 392848, 0x1edf518)
constexpr std::array< REL::VariantID, 4 > VTABLE_TESObjectTREE
Definition Offsets_VTABLE.h:554
Definition BSIntrusiveRefCounted.h:8
Definition TESObjectTREE.h:41
std::uint32_t pad04
Definition TESObjectTREE.h:42
BSTArray< BoneData > branchBoneData
Definition TESObjectTREE.h:43
BSTArray< NiMatrix3 > parentWorldBoneRotations
Definition TESObjectTREE.h:44
Definition TESObjectTREE.h:33
NiPoint3 worldBoneDir
Definition TESObjectTREE.h:35
std::uint32_t parentWorldBoneRotationIndex
Definition TESObjectTREE.h:36
NiMatrix3 localBoneRotation
Definition TESObjectTREE.h:34
Definition TESObjectTREE.h:16
float leafAmplitude
Definition TESObjectTREE.h:27
float frontAmplitude
Definition TESObjectTREE.h:20
float sideFrequency
Definition TESObjectTREE.h:25
float leafFlexibility
Definition TESObjectTREE.h:26
float leafFrequency
Definition TESObjectTREE.h:28
float frontFrequency
Definition TESObjectTREE.h:23
float trunkFlexibility
Definition TESObjectTREE.h:17
float branchFlexibility
Definition TESObjectTREE.h:18
float sideAmplitude
Definition TESObjectTREE.h:22
float backAmplitude
Definition TESObjectTREE.h:21
float trunkAmplitude
Definition TESObjectTREE.h:19
float backFrequency
Definition TESObjectTREE.h:24
Definition TESObjectTREE.h:68
RecordFlag
Definition TESObjectTREE.h:70
@ kDeleted
Definition TESObjectTREE.h:71
@ kHasDistantLOD
Definition TESObjectTREE.h:73
@ kIgnored
Definition TESObjectTREE.h:72