CommonLibVR
TESRegion.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTList.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/N/NiColor.h"
6 #include "RE/N/NiPoint2.h"
7 #include "RE/T/TESForm.h"
8 
9 namespace RE
10 {
11  class TESRegionData;
12 
14  {
16  bool unk11; // 11
17  std::uint16_t pad12; // 12
18  std::uint32_t pad14; // 14
19  };
20  static_assert(sizeof(TESRegionDataList) == 0x18);
21 
23  {
24  public:
25  NiPoint2 point; // 00
26  };
27  static_assert(sizeof(TESRegionPoint) == 0x8);
28 
29  class TESRegionPointList : public BSSimpleList<TESRegionPoint*> // RPLD
30  {
31  public:
32  struct ScaleResult
33  {
35  float dist; // 08
36  float scale; // 0C
37  };
38  static_assert(sizeof(ScaleResult) == 0x10);
39 
41  bool ownsPointMemory; // 18
42  std::uint8_t pad19; // 19
43  std::uint16_t pad1A; // 1A
46  std::uint32_t distanceInsideAtMax; // 2C - RPLI
47  std::uint32_t count; // 30
48  std::uint32_t pad34; // 34
49  private:
50  KEEP_FOR_RE()
51  };
52  static_assert(sizeof(TESRegionPointList) == 0x38);
53 
54  class TESRegion : public TESForm
55  {
56  public:
57  inline static constexpr auto RTTI = RTTI_TESRegion;
58  inline static constexpr auto VTABLE = VTABLE_TESRegion;
59  inline static constexpr auto FORMTYPE = FormType::Region;
60 
61  struct RecordFlags
62  {
63  enum RecordFlag : std::uint32_t
64  {
65  kDeleted = 1 << 5,
66  kBorderRegion = 1 << 6,
67  kIgnored = 1 << 12
68  };
69  };
70 
71  ~TESRegion() override; // 00
72 
73  // override (TESForm)
74  void ClearData(void) override; // 05
75  bool Load(TESFile* a_mod) override; // 06
76  void InitItemImpl() override; // 13
77 
78  // add
79  virtual bool Validate(); // 3B
80 
81  // members
84  TESWorldSpace* worldSpace; // 30 - WNAM
87  std::uint32_t pad4C; // 4C
88  private:
89  KEEP_FOR_RE()
90  };
91  static_assert(sizeof(TESRegion) == 0x50);
92 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSTList.h:10
Definition: NiColor.h:11
Definition: NiPoint2.h:6
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: TESRegion.h:30
NiPoint2 maximums
Definition: TESRegion.h:45
std::uint8_t pad19
Definition: TESRegion.h:42
std::uint16_t pad1A
Definition: TESRegion.h:43
ScaleResult * lastScaleResult
Definition: TESRegion.h:38
bool ownsPointMemory
Definition: TESRegion.h:41
NiPoint2 minimums
Definition: TESRegion.h:44
std::uint32_t count
Definition: TESRegion.h:47
std::uint32_t distanceInsideAtMax
Definition: TESRegion.h:46
std::uint32_t pad34
Definition: TESRegion.h:48
Definition: TESRegion.h:23
NiPoint2 point
Definition: TESRegion.h:25
Definition: TESRegion.h:55
NiColor emittanceColor
Definition: TESRegion.h:86
BSSimpleList< TESRegionPointList * > * pointLists
Definition: TESRegion.h:83
TESWeather * currentWeather
Definition: TESRegion.h:85
virtual bool Validate()
~TESRegion() override
static constexpr auto RTTI
Definition: TESRegion.h:57
static constexpr auto FORMTYPE
Definition: TESRegion.h:59
std::uint32_t pad4C
Definition: TESRegion.h:87
TESWorldSpace * worldSpace
Definition: TESRegion.h:84
bool Load(TESFile *a_mod) override
TESRegionDataList * dataList
Definition: TESRegion.h:82
void ClearData(void) override
static constexpr auto VTABLE
Definition: TESRegion.h:58
void InitItemImpl() override
Definition: TESWeather.h:17
Definition: TESWorldSpace.h:120
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESRegion(static_cast< std::uint64_t >(513962))
constexpr std::array< REL::ID, 1 > VTABLE_TESRegion
Definition: Offsets_VTABLE.h:12884
Definition: TESRegion.h:14
bool unk11
Definition: TESRegion.h:16
BSSimpleList< TESRegionData * > regionDataList
Definition: TESRegion.h:15
std::uint32_t pad14
Definition: TESRegion.h:18
std::uint16_t pad12
Definition: TESRegion.h:17
Definition: TESRegion.h:33
float dist
Definition: TESRegion.h:35
float scale
Definition: TESRegion.h:36
TESRegionPoint point
Definition: TESRegion.h:34
Definition: TESRegion.h:62
RecordFlag
Definition: TESRegion.h:64
@ kDeleted
Definition: TESRegion.h:65
@ kIgnored
Definition: TESRegion.h:67
@ kBorderRegion
Definition: TESRegion.h:66