CommonLibVR
NavMesh.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSNavmesh.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESChildCell.h"
6 #include "RE/T/TESForm.h"
7 
8 namespace RE
9 {
10  class NavMesh :
11  public TESForm, // 000
12  public TESChildCell, // 020
13  public BSNavmesh // 028
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_NavMesh;
17  inline static constexpr auto VTABLE = VTABLE_NavMesh;
18  inline static constexpr auto FORMTYPE = FormType::NavMesh;
19 
20  struct RecordFlags
21  {
22  enum RecordFlag : std::uint32_t
23  {
24  kDeleted = 1 << 5,
25  kIgnored = 1 << 12,
26  kCompressed = 1 << 18,
27  kAutoGen = 1 << 26,
28  kNavMeshGenCell = (std::uint32_t)1 << 31
29  };
30  };
31 
32  ~NavMesh() override; // 00
33 
34  // override (TESForm)
35  bool Load(TESFile* a_mod) override; // 06
36  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
37  void InitItemImpl() override; // 13
38  void GetFormDetailedString(char* a_buf, std::uint32_t a_bufLen) override; // 16
39  void SetDelete(bool a_set) override; // 23
40  void SetAltered(bool a_set) override; // 24
41  bool BelongsInGroup(FORM* a_form, bool a_allowParentGroups, bool a_currentOnly) override; // 30
42  void CreateGroupData(FORM* a_form, FORM_GROUP* a_group) override; // 31
43 
44  // add
45  virtual void Save(); // 3B - { return; }
46  virtual bool SavesBefore(FORM* a_form); // 3C - { return fa;se; }
47  virtual bool SavesBefore(TESForm* a_form); // 3D - { return false; }
48  virtual bool ProcessBeforeSave(); // 3E - { return false; }
49  private:
50  KEEP_FOR_RE()
51  };
52  static_assert(sizeof(NavMesh) == 0x140);
53 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BSNavmesh.h:149
Definition: NavMesh.h:14
void SetAltered(bool a_set) override
virtual bool ProcessBeforeSave()
virtual void Save()
static constexpr auto VTABLE
Definition: NavMesh.h:17
bool Load(TESFile *a_mod) override
void InitItemImpl() override
void SetDelete(bool a_set) override
bool BelongsInGroup(FORM *a_form, bool a_allowParentGroups, bool a_currentOnly) override
~NavMesh() override
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
void CreateGroupData(FORM *a_form, FORM_GROUP *a_group) override
virtual bool SavesBefore(TESForm *a_form)
void GetFormDetailedString(char *a_buf, std::uint32_t a_bufLen) override
static constexpr auto RTTI
Definition: NavMesh.h:16
static constexpr auto FORMTYPE
Definition: NavMesh.h:18
virtual bool SavesBefore(FORM *a_form)
Definition: TESChildCell.h:6
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 3 > VTABLE_NavMesh
Definition: Offsets_VTABLE.h:12129
constexpr REL::ID RTTI_NavMesh(static_cast< std::uint64_t >(514031))
Definition: FORM.h:20
Definition: FORM.h:6
Definition: NavMesh.h:21
RecordFlag
Definition: NavMesh.h:23
@ kCompressed
Definition: NavMesh.h:26
@ kNavMeshGenCell
Definition: NavMesh.h:28
@ kDeleted
Definition: NavMesh.h:24
@ kAutoGen
Definition: NavMesh.h:27
@ kIgnored
Definition: NavMesh.h:25