CommonLibSSE NG
Loading...
Searching...
No Matches
TESObjectLAND.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTriShape.h"
4#include "RE/F/FormTypes.h"
5#include "RE/H/hkpMoppCode.h"
6#include "RE/N/NiPoint2.h"
8#include "RE/T/TESChildCell.h"
9#include "RE/T/TESForm.h"
10
11namespace RE
12{
13 class NiNode;
14 class QueuedFile;
15
16 struct OBJ_LAND
17 {
18 public:
19 enum class Flag
20 {
21 kNone = 0,
23 kVertexColors = 1 << 1,
24 kLayers = 1 << 2,
25 kMPCD = 1 << 10
26 };
27
28 // members
30 };
31 static_assert(sizeof(OBJ_LAND) == 0x4);
32
33 struct CHAR_NORM
34 {
35 public:
36 // members
37 std::int8_t x; // 0
38 std::int8_t y; // 1
39 std::int8_t z; // 2
40 };
41 static_assert(sizeof(CHAR_NORM) == 0x3);
42
44 public TESForm, // 00
45 public TESChildCell // 20
46 {
47 public:
48 inline static constexpr auto RTTI = RTTI_TESObjectLAND;
49 inline static constexpr auto VTABLE = VTABLE_TESObjectLAND;
50 inline static constexpr auto FORMTYPE = FormType::Land;
51
53 {
54 enum RecordFlag : std::uint32_t
55 {
56 kDeleted = 1 << 5,
57 kIgnored = 1 << 12,
58 kCompressed = 1 << 18
59 };
60 };
61
63 {
64 public:
65 // members
66 NiNode* mesh[4]; // 0000
67 float heights[4][289]; // 0020
68 std::int8_t percents[4][289][6]; // 1230
69 std::int8_t colors[4][289][3]; // 2D48
70 CHAR_NORM normals[4][289]; // 3AD4
77 std::uint64_t unk49B0; // 49B0
78 std::uint64_t unk49B8; // 49B8
79 std::uint64_t unk49C0; // 49C0
80 std::uint64_t unk49C8; // 49C8
81 };
82 static_assert(sizeof(LoadedLandData) == 0x49D0);
83
84 ~TESObjectLAND() override; // 00
85
86 // override (TESForm)
87 bool Load(TESFile* a_mod) override; // 06 - { return true; }
88 TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
89 void SetAltered(bool a_set) override; // 24
90 bool BelongsInGroup(FORM* a_form, bool a_allowParentGroups, bool a_currentOnly) override; // 30
91 void CreateGroupData(FORM* a_form, FORM_GROUP* a_group) override; // 31
92
93 // override (TESChildCell)
94 [[nodiscard]] TESObjectCELL* GetSaveParentCell() override; // 01 - { return parentCell; }
95
96 // members
97 OBJ_LAND data; // 28 - DATA
98 std::uint32_t pad2C; // 2C
102 };
103 static_assert(sizeof(TESObjectLAND) == 0x48);
104}
Definition NiNode.h:12
Definition NiPoint2.h:6
Definition NiSmartPointer.h:9
Definition TESChildCell.h:6
Definition TESFile.h:15
Definition TESForm.h:35
Definition TESLandTexture.h:17
Definition TESObjectCELL.h:116
Definition TESObjectLAND.h:46
NiPointer< QueuedFile > queuedTextures
Definition TESObjectLAND.h:100
bool BelongsInGroup(FORM *a_form, bool a_allowParentGroups, bool a_currentOnly) override
static constexpr auto RTTI
Definition TESObjectLAND.h:48
void CreateGroupData(FORM *a_form, FORM_GROUP *a_group) override
void SetAltered(bool a_set) override
LoadedLandData * loadedData
Definition TESObjectLAND.h:101
~TESObjectLAND() override
OBJ_LAND data
Definition TESObjectLAND.h:97
static constexpr auto FORMTYPE
Definition TESObjectLAND.h:50
TESObjectCELL * GetSaveParentCell() override
TESObjectCELL * parentCell
Definition TESObjectLAND.h:99
static constexpr auto VTABLE
Definition TESObjectLAND.h:49
std::uint32_t pad2C
Definition TESObjectLAND.h:98
TESForm * CreateDuplicateForm(bool a_createEditorID, void *a_arg2) override
bool Load(TESFile *a_mod) override
Definition hkpMoppCode.h:10
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TESObjectLAND(513985, 392895, 0x1ee0160)
constexpr std::array< REL::VariantID, 2 > VTABLE_TESObjectLAND
Definition Offsets_VTABLE.h:607
Definition TESObjectLAND.h:34
std::int8_t z
Definition TESObjectLAND.h:39
std::int8_t y
Definition TESObjectLAND.h:38
std::int8_t x
Definition TESObjectLAND.h:37
Definition FORM.h:20
Definition FORM.h:6
Definition TESObjectLAND.h:17
stl::enumeration< Flag, std::uint32_t > flags
Definition TESObjectLAND.h:29
Flag
Definition TESObjectLAND.h:20
Definition TESObjectLAND.h:63
TESLandTexture * defQuadTextures[4]
Definition TESObjectLAND.h:74
NiNode * mesh[4]
Definition TESObjectLAND.h:66
std::uint64_t unk49C8
Definition TESObjectLAND.h:80
std::uint64_t unk49B0
Definition TESObjectLAND.h:77
NiPoint2 heightExtents
Definition TESObjectLAND.h:73
NiPointer< BSTriShape > geom[4]
Definition TESObjectLAND.h:71
hkpMoppCode moppCode
Definition TESObjectLAND.h:76
std::uint64_t unk49B8
Definition TESObjectLAND.h:78
float heights[4][289]
Definition TESObjectLAND.h:67
std::uint64_t unk49C0
Definition TESObjectLAND.h:79
std::int8_t colors[4][289][3]
Definition TESObjectLAND.h:69
TESLandTexture * quadTextures[4][6]
Definition TESObjectLAND.h:75
NiPointer< BSTriShape > border
Definition TESObjectLAND.h:72
CHAR_NORM normals[4][289]
Definition TESObjectLAND.h:70
std::int8_t percents[4][289][6]
Definition TESObjectLAND.h:68
Definition TESObjectLAND.h:53
RecordFlag
Definition TESObjectLAND.h:55
@ kCompressed
Definition TESObjectLAND.h:58
@ kIgnored
Definition TESObjectLAND.h:57
@ kDeleted
Definition TESObjectLAND.h:56