22
33#include " RE/B/BSAtomic.h"
44#include " RE/B/BSTArray.h"
5+ #include " RE/B/BSTHashMap.h"
56#include " RE/B/BSTSingleton.h"
67#include " RE/N/NiSmartPointer.h"
78
89namespace RE
910{
1011 class NiNode ;
1112
13+ struct GrassType
14+ {
15+ BSMultiStreamInstanceTriShape* typeShape; // 00
16+ ModelDBHandle typeModelHandle; // 08
17+ };
18+ static_assert (sizeof (GrassType) == 0x10 );
19+
1220 class BGSGrassManager : public BSTSingletonSDM <BGSGrassManager>
1321 {
1422 public:
@@ -19,29 +27,25 @@ namespace RE
1927 }
2028
2129 // members
22- bool generateGrassDataFiles; // 01
23- std::uint8_t unk02; // 02
24- std::uint16_t unk04; // 04
25- std::uint32_t unk08; // 08
26- std::uint32_t unk0C; // 0C
27- std::uint64_t unk10; // 10 - BSTHashMap<std::uint64_t, GrassType*> ?
28- std::uint64_t unk18; // 18
29- std::uint64_t unk20; // 20
30- std::uint64_t unk28; // 28
31- std::uint64_t unk30; // 30
32- mutable BSReadWriteLock lock; // 38
33- std::uint32_t unk40; // 40
34- std::uint32_t pad44; // 44
35- BSTArray<void *> unk48; // 48
36- float totalGrassRange; // 60
37- std::uint32_t pad64; // 64
38- NiPointer<NiNode> grassNode; // 68
39- std::uint32_t grassEvalSize; // 70
40- std::uint32_t grassEvalSizeSquared; // 74
41- std::uint32_t grassPatchSize; // 78
42- std::uint32_t unk7C; // 7C
43- std::uint16_t * instanceData; // 80
44- bool enableGrass; // 88
30+ bool generateGrassDataFiles; // 01
31+ std::uint8_t unk02; // 02
32+ std::uint16_t unk04; // 04
33+ std::uint32_t unk08; // 08
34+ std::uint32_t unk0C; // 0C
35+ BSTFixedHashMap<uint64_t , GrassType*> unk10; // 10
36+ mutable BSReadWriteLock lock; // 38
37+ volatile mutable std::uint32_t grassShapeLock; // 40
38+ std::uint32_t pad44; // 44
39+ BSTArray<BSMultiStreamInstanceTriShape*> grassShapes; // 48
40+ float totalGrassRange; // 60
41+ std::uint32_t pad64; // 64
42+ NiPointer<NiNode> grassNode; // 68
43+ std::uint32_t grassEvalSize; // 70
44+ std::uint32_t grassEvalSizeSquared; // 74
45+ std::uint32_t grassPatchSize; // 78
46+ std::uint32_t unk7C; // 7C
47+ std::uint16_t * instanceData; // 80
48+ bool enableGrass; // 88
4549 };
4650 static_assert (sizeof (BGSGrassManager) == 0x90 );
4751}
0 commit comments