|
1 | 1 | #pragma once |
2 | 2 |
|
| 3 | +#include "RE/B/BSTArray.h" |
| 4 | + |
3 | 5 | namespace RE |
4 | 6 | { |
5 | 7 | class BGSTerrainNode; |
| 8 | + class TESWorldSpace; |
6 | 9 |
|
7 | 10 | class BGSTerrainManager |
8 | 11 | { |
9 | 12 | public: |
10 | | - std::uint64_t unk00; // 00 |
11 | | - TESWorldSpace* worldSpace; // 08 |
12 | | - BGSTerrainNode* rootNode; // 10 |
13 | | - std::int16_t minCellX; // 18 |
14 | | - std::int16_t minCellY; // 1A |
15 | | - std::uint32_t unk1C; // 1C |
16 | | - std::uint32_t unk20; // 20 |
17 | | - std::uint32_t unk24; // 24 |
18 | | - std::uint64_t unk28; // 28 |
19 | | - bool unk30; // 30 |
20 | | - std::uint8_t unk31; // 31 |
21 | | - bool lodTreesHidden; // 32 |
22 | | - std::uint8_t unk33; // 33 |
23 | | - bool needsImmediateUpdate; // 34 |
24 | | - std::uint8_t unk35; // 35 |
25 | | - bool hasLOD; // 36 |
26 | | - std::uint8_t unk37; // 37 |
27 | | - std::uint64_t unk38; // 38 |
28 | | - std::uint64_t unk40; // 40 |
29 | | - std::uint64_t unk48; // 48 |
30 | | - std::uint64_t unk50; // 50 |
31 | | - std::uint64_t unk58; // 58 |
32 | | - std::uint64_t unk60; // 60 |
33 | | - std::uint64_t unk68; // 68 |
34 | | - std::uint64_t unk70; // 70 |
35 | | - std::uint32_t nextUpdateNode; // 78 |
36 | | - std::uint32_t unk7C; // 7C |
37 | | - std::uint64_t unk80; // 80 |
38 | | - std::uint64_t unk88; // 88 |
39 | | - std::uint64_t unk90; // 90 |
40 | | - std::uint64_t unk98; // 98 |
41 | | - std::uint64_t unkA0; // A0 |
42 | | - std::uint64_t unkA8; // A8 |
43 | | - std::uint64_t unkB0; // B0 |
44 | | - std::uint64_t unkB8; // B8 |
45 | | - std::uint64_t unkC0; // C0 |
46 | | - std::uint64_t unkC8; // C8 |
| 13 | + std::uint64_t unk00; // 00 |
| 14 | + TESWorldSpace* worldSpace; // 08 |
| 15 | + BGSTerrainNode* rootNode; // 10 |
| 16 | + std::int16_t minCellX; // 18 - read from .lod file |
| 17 | + std::int16_t minCellY; // 1A - read from .lod file |
| 18 | + std::uint32_t maxLevel; // 1C - read from .lod file |
| 19 | + std::uint32_t minLevel; // 20 - read from .lod file |
| 20 | + std::uint32_t rootLevel; // 24 - read from .lod file |
| 21 | + std::uint32_t segmentedBlockLevel; // 28 - default 4 |
| 22 | + std::uint32_t treeLevel; // 2C - default 4 |
| 23 | + bool unk30; // 30 |
| 24 | + std::uint8_t unk31; // 31 |
| 25 | + bool lodTreesHidden; // 32 |
| 26 | + std::uint8_t unk33; // 33 |
| 27 | + bool needsImmediateUpdate; // 34 |
| 28 | + std::uint8_t unk35; // 35 |
| 29 | + bool hasLOD; // 36 |
| 30 | + std::uint8_t unk37; // 37 |
| 31 | + std::uint64_t unk38; // 38 |
| 32 | + std::uint64_t unk40; // 40 |
| 33 | + std::uint64_t unk48; // 48 |
| 34 | + std::uint64_t unk50; // 50 |
| 35 | + std::uint64_t unk58; // 58 |
| 36 | + BSTArray<BGSTerrainNode*> updateNodes; // 60 |
| 37 | + std::uint32_t nextUpdateNode; // 78 |
| 38 | + std::uint32_t unk7C; // 7C |
| 39 | + BSTArray<BGSTerrainNode*> immediateUpdates; // 80 |
| 40 | + std::uint64_t unk98; // 98 - BSSpinLock? |
| 41 | + std::uint64_t unkA0; // A0 |
| 42 | + std::uint64_t unkA8; // A8 |
| 43 | + std::uint64_t unkB0; // B0 |
| 44 | + std::uint64_t unkB8; // B8 |
| 45 | + std::uint64_t unkC0; // C0 |
| 46 | + std::uint64_t unkC8; // C8 |
47 | 47 | }; |
48 | 48 | static_assert(sizeof(BGSTerrainManager) == 0xD0); |
49 | 49 | } |
0 commit comments