CommonLibVR
NavMeshInfoMap.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSAtomic.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/B/BSTHashMap.h"
7 #include "RE/F/FormTypes.h"
9 #include "RE/T/TESForm.h"
10 
11 namespace RE
12 {
13  struct NavMeshInfo;
14 
16  public TESForm, // 00
17  public BSNavmeshInfoMap, // 20
19  {
20  public:
21  inline static constexpr auto RTTI = RTTI_NavMeshInfoMap;
22  inline static constexpr auto VTABLE = VTABLE_NavMeshInfoMap;
23  inline static constexpr auto FORMTYPE = FormType::Navigation;
24 
25  struct RecordFlags
26  {
27  enum RecordFlag : std::uint32_t
28  {
29  };
30  };
31 
32  ~NavMeshInfoMap() override; // 00
33 
34  // override (TESForm)
35  bool Load(TESFile* a_mod) override; // 06
36  void InitItemImpl() override; // 13
37  void SetAltered(bool a_set) override; // 24
38 
39  // override (BSNavmeshInfoMap)
40 
41  BSNavmeshInfo* GetNavMeshInfoFixID(std::uint32_t a_id) override; // 01
42  BSNavmeshInfo* GetNavmeshInfo(std::uint32_t a_id) override; // 02
43  void GetAllNavMeshInfo(BSTArray<BSNavmeshInfo*>& a_results) override; // 03
44  void BuildListOfConnectedInfos(const BSNavmeshInfo* a_info, BSTArray<BSNavmeshInfo*>& a_results) override; // 04
45  void ForEach(IVisitor* a_visitor) override; // 05
46 
47  // members
48  bool updateAll; // 78
49  std::uint8_t pad79; // 79
50  std::uint16_t pad7A; // 7A
51  std::uint32_t pad7C; // 7C
54  mutable BSReadWriteLock mapLock; // E0
55  bool init; // E8
56  std::uint8_t padE9; // E9
57  std::uint16_t padEA; // EA
58  std::uint32_t padEC; // EC
59  private:
60  KEEP_FOR_RE()
61  };
62 #ifndef SKYRIMVR
63  static_assert(sizeof(NavMeshInfoMap) == 0xF0);
64 #endif
65 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSNavmeshInfoMap.h:11
Definition: BSAtomic.h:112
Definition: BSTArray.h:378
Definition: BSTHashMap.h:21
Definition: NavMeshInfoMap.h:19
std::uint16_t padEA
Definition: NavMeshInfoMap.h:57
static constexpr auto RTTI
Definition: NavMeshInfoMap.h:21
std::uint8_t pad79
Definition: NavMeshInfoMap.h:49
std::uint8_t padE9
Definition: NavMeshInfoMap.h:56
std::uint32_t pad7C
Definition: NavMeshInfoMap.h:51
BSTHashMap< std::uint64_t, BSTArray< BSNavmeshInfo * > * > ckNavMeshInfoMap
Definition: NavMeshInfoMap.h:53
void BuildListOfConnectedInfos(const BSNavmeshInfo *a_info, BSTArray< BSNavmeshInfo * > &a_results) override
bool init
Definition: NavMeshInfoMap.h:55
void ForEach(IVisitor *a_visitor) override
BSTHashMap< std::uint32_t, NavMeshInfo * > infoMap
Definition: NavMeshInfoMap.h:52
~NavMeshInfoMap() override
std::uint16_t pad7A
Definition: NavMeshInfoMap.h:50
bool Load(TESFile *a_mod) override
BSNavmeshInfo * GetNavmeshInfo(std::uint32_t a_id) override
static constexpr auto FORMTYPE
Definition: NavMeshInfoMap.h:23
static constexpr auto VTABLE
Definition: NavMeshInfoMap.h:22
void InitItemImpl() override
void SetAltered(bool a_set) override
BSNavmeshInfo * GetNavMeshInfoFixID(std::uint32_t a_id) override
BSReadWriteLock mapLock
Definition: NavMeshInfoMap.h:54
bool updateAll
Definition: NavMeshInfoMap.h:48
void GetAllNavMeshInfo(BSTArray< BSNavmeshInfo * > &a_results) override
std::uint32_t padEC
Definition: NavMeshInfoMap.h:58
Definition: PrecomputedNavmeshInfoPathMap.h:8
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NavMeshInfoMap(static_cast< std::uint64_t >(686069))
constexpr std::array< REL::ID, 2 > VTABLE_NavMeshInfoMap
Definition: Offsets_VTABLE.h:12130
Definition: BSNavmeshInfoMap.h:17
Definition: NavMeshInfoMap.h:26
RecordFlag
Definition: NavMeshInfoMap.h:28