CommonLibSSE NG
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  };
50  static_assert(sizeof(TESRegionPointList) == 0x38);
51 
52  class TESRegion : public TESForm
53  {
54  public:
55  inline static constexpr auto RTTI = RTTI_TESRegion;
56  inline static constexpr auto VTABLE = VTABLE_TESRegion;
57  inline static constexpr auto FORMTYPE = FormType::Region;
58 
59  struct RecordFlags
60  {
61  enum RecordFlag : std::uint32_t
62  {
63  kDeleted = 1 << 5,
64  kBorderRegion = 1 << 6,
65  kIgnored = 1 << 12
66  };
67  };
68 
69  ~TESRegion() override; // 00
70 
71  // override (TESForm)
72  void ClearData(void) override; // 05
73  bool Load(TESFile* a_mod) override; // 06
74  void InitItemImpl() override; // 13
75 
76  // add
77  virtual bool Validate(); // 3B
78 
79  // members
82  TESWorldSpace* worldSpace; // 30 - WNAM
85  std::uint32_t pad4C; // 4C
86  };
87  static_assert(sizeof(TESRegion) == 0x50);
88 }
Definition: BSTList.h:10
Definition: NiColor.h:11
Definition: NiPoint2.h:6
Definition: TESFile.h:17
Definition: TESForm.h:36
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:53
NiColor emittanceColor
Definition: TESRegion.h:84
BSSimpleList< TESRegionPointList * > * pointLists
Definition: TESRegion.h:81
TESWeather * currentWeather
Definition: TESRegion.h:83
virtual bool Validate()
~TESRegion() override
static constexpr auto RTTI
Definition: TESRegion.h:55
static constexpr auto FORMTYPE
Definition: TESRegion.h:57
std::uint32_t pad4C
Definition: TESRegion.h:85
TESWorldSpace * worldSpace
Definition: TESRegion.h:82
bool Load(TESFile *a_mod) override
TESRegionDataList * dataList
Definition: TESRegion.h:80
void ClearData(void) override
static constexpr auto VTABLE
Definition: TESRegion.h:56
void InitItemImpl() override
Definition: TESWeather.h:17
Definition: TESWorldSpace.h:118
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TESRegion(513962, 392718, 0x1edd4f0)
constexpr std::array< REL::VariantID, 1 > VTABLE_TESRegion
Definition: Offsets_VTABLE.h:419
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:60
RecordFlag
Definition: TESRegion.h:62
@ kDeleted
Definition: TESRegion.h:63
@ kIgnored
Definition: TESRegion.h:65
@ kBorderRegion
Definition: TESRegion.h:64