CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Land;
50
52 {
53 enum RecordFlag : std::uint32_t
54 {
55 kDeleted = 1 << 5,
56 kIgnored = 1 << 12,
57 kCompressed = 1 << 18
58 };
59 };
60
62 {
63 public:
64 // members
65 NiNode* mesh[4]; // 0000
66 float heights[4][289]; // 0020
67 std::int8_t percents[4][289][6]; // 1230
68 std::int8_t colors[4][289][3]; // 2D48
69 CHAR_NORM normals[4][289]; // 3AD4
76 std::uint64_t unk49B0; // 49B0
77 std::uint64_t unk49B8; // 49B8
78 std::uint64_t unk49C0; // 49C0
79 std::uint64_t unk49C8; // 49C8
80 };
81 static_assert(sizeof(LoadedLandData) == 0x49D0);
82
83 ~TESObjectLAND() override; // 00
84
85 // override (TESForm)
86 bool Load(TESFile* a_mod) override; // 06 - { return true; }
87 TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
88 void SetAltered(bool a_set) override; // 24
89 bool BelongsInGroup(FORM* a_form, bool a_allowParentGroups, bool a_currentOnly) override; // 30
90 void CreateGroupData(FORM* a_form, FORM_GROUP* a_group) override; // 31
91
92 // override (TESChildCell)
93 TESObjectCELL* GetSaveParentCell() override; // 01 - { return parentCell; }
94
95 // members
96 OBJ_LAND data; // 28 - DATA
97 std::uint32_t pad2C; // 2C
101 };
102 static_assert(sizeof(TESObjectLAND) == 0x48);
103}
Definition: NiNode.h:12
Definition: NiPoint2.h:6
Definition: NiSmartPointer.h:9
Definition: TESChildCell.h:6
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESLandTexture.h:17
Definition: TESObjectCELL.h:102
Definition: TESObjectLAND.h:46
NiPointer< QueuedFile > queuedTextures
Definition: TESObjectLAND.h:99
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:100
~TESObjectLAND() override
OBJ_LAND data
Definition: TESObjectLAND.h:96
static constexpr auto FORMTYPE
Definition: TESObjectLAND.h:49
TESObjectCELL * GetSaveParentCell() override
TESObjectCELL * parentCell
Definition: TESObjectLAND.h:98
std::uint32_t pad2C
Definition: TESObjectLAND.h:97
TESForm * CreateDuplicateForm(bool a_createEditorID, void *a_arg2) override
bool Load(TESFile *a_mod) override
Definition: hkpMoppCode.h:10
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectLAND
Definition: Offsets_RTTI.h:6036
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:62
TESLandTexture * defQuadTextures[4]
Definition: TESObjectLAND.h:73
NiNode * mesh[4]
Definition: TESObjectLAND.h:65
std::uint64_t unk49C8
Definition: TESObjectLAND.h:79
std::uint64_t unk49B0
Definition: TESObjectLAND.h:76
NiPoint2 heightExtents
Definition: TESObjectLAND.h:72
NiPointer< BSTriShape > geom[4]
Definition: TESObjectLAND.h:70
hkpMoppCode moppCode
Definition: TESObjectLAND.h:75
std::uint64_t unk49B8
Definition: TESObjectLAND.h:77
float heights[4][289]
Definition: TESObjectLAND.h:66
std::uint64_t unk49C0
Definition: TESObjectLAND.h:78
std::int8_t colors[4][289][3]
Definition: TESObjectLAND.h:68
TESLandTexture * quadTextures[4][6]
Definition: TESObjectLAND.h:74
NiPointer< BSTriShape > border
Definition: TESObjectLAND.h:71
CHAR_NORM normals[4][289]
Definition: TESObjectLAND.h:69
std::int8_t percents[4][289][6]
Definition: TESObjectLAND.h:67
Definition: TESObjectLAND.h:52
RecordFlag
Definition: TESObjectLAND.h:54
@ kCompressed
Definition: TESObjectLAND.h:57
@ kIgnored
Definition: TESObjectLAND.h:56
@ kDeleted
Definition: TESObjectLAND.h:55