CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Tree;
57
58 enum class etTreeType
59 {
60 kShortAndThin = 0,
62 kTallAndThin = 2,
64 };
65
67 {
68 enum RecordFlag : std::uint32_t
69 {
70 kDeleted = 1 << 5,
71 kIgnored = 1 << 12,
72 kHasDistantLOD = 1 << 15
73 };
74 };
75
76 ~TESObjectTREE() override; // 00
77
78 // override (TESBoundObject)
79 void InitializeData() override; // 04
80 bool Load(TESFile* a_mod) override; // 06
81 void InitItemImpl() override; // 13
82 bool Activate(TESObjectREFR* a_targetRef, TESObjectREFR* a_activatorRef, std::uint8_t a_arg3, TESBoundObject* a_object, std::int32_t a_targetCount) override; // 37
83 bool ReplaceModel() override; // 44
84 bool GetActivateText(TESObjectREFR* a_activator, BSString& a_dst) override; // 4C
85 void OnRemove3D(NiAVObject* a_obj3D) override; // 4F
86 void OnCheckModels() override; // 50 - { return; }
87 void OnCopyReference() override; // 51 - { return; }
88 void OnFinishScale() override; // 52 - { return; }
89
90 // members
94 std::uint32_t padC4; // C4
95 };
96 static_assert(sizeof(TESObjectTREE) == 0xC8);
97}
Definition: BSTArray.h:377
Definition: NiAVObject.h:45
Definition: NiMatrix3.h:8
Definition: NiPoint3.h:6
Definition: TESBoundObject.h:24
Definition: TESFile.h:14
Definition: TESFullName.h:9
Definition: TESModel.h:16
Definition: TESObjectREFR.h:105
Definition: TESObjectTREE.h:53
void OnRemove3D(NiAVObject *a_obj3D) override
etTreeType
Definition: TESObjectTREE.h:59
void OnCheckModels() override
bool ReplaceModel() override
~TESObjectTREE() override
BaseTreeData * baseData
Definition: TESObjectTREE.h:92
bool Activate(TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
bool Load(TESFile *a_mod) override
void InitializeData() override
void OnCopyReference() override
stl::enumeration< etTreeType, std::uint32_t > type
Definition: TESObjectTREE.h:93
void InitItemImpl() override
void OnFinishScale() override
std::uint32_t padC4
Definition: TESObjectTREE.h:94
static constexpr auto RTTI
Definition: TESObjectTREE.h:55
OBJ_TREE data
Definition: TESObjectTREE.h:91
bool GetActivateText(TESObjectREFR *a_activator, BSString &a_dst) override
static constexpr auto FORMTYPE
Definition: TESObjectTREE.h:56
Definition: TESProduceForm.h:25
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectTREE
Definition: Offsets_RTTI.h:6044
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:67
RecordFlag
Definition: TESObjectTREE.h:69
@ kDeleted
Definition: TESObjectTREE.h:70
@ kHasDistantLOD
Definition: TESObjectTREE.h:72
@ kIgnored
Definition: TESObjectTREE.h:71