CommonLibSSE (Parapets fork)
TESRegion.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSSimpleList.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  struct TESRegionDataList;
12 
14  {
15  public:
16  NiPoint2 point; // 00
17  };
18  static_assert(sizeof(TESRegionPoint) == 0x8);
19 
20  class TESRegionPointList : public BSSimpleList<TESRegionPoint*> // RPLD
21  {
22  public:
23  struct ScaleResult
24  {
26  float dist; // 08
27  float scale; // 0C
28  };
29  static_assert(sizeof(ScaleResult) == 0x10);
30 
32  bool ownsPointMemory; // 18
33  std::uint8_t pad19; // 19
34  std::uint16_t pad1A; // 1A
37  std::uint32_t distanceInsideAtMax; // 2C - RPLI
38  std::uint32_t count; // 30
39  std::uint32_t pad34; // 34
40  };
41  static_assert(sizeof(TESRegionPointList) == 0x38);
42 
43  class TESRegion : public TESForm
44  {
45  public:
46  inline static constexpr auto RTTI = RTTI_TESRegion;
47  inline static constexpr auto FORMTYPE = FormType::Region;
48 
49  struct RecordFlags
50  {
51  enum RecordFlag : std::uint32_t
52  {
53  kDeleted = 1 << 5,
54  kBorderRegion = 1 << 6,
55  kIgnored = 1 << 12
56  };
57  };
58 
59  ~TESRegion() override; // 00
60 
61  // override (TESForm)
62  void ClearData(void) override; // 05
63  bool Load(TESFile* a_mod) override; // 06
64  void InitItemImpl() override; // 13
65 
66  // add
67  virtual bool Validate(); // 3B
68 
69  // members
70  TESRegionDataList* dataList; // 20
72  TESWorldSpace* worldSpace; // 30 - WNAM
75  std::uint32_t pad4C; // 4C
76  };
77  static_assert(sizeof(TESRegion) == 0x50);
78 }
Definition: BSSimpleList.h:10
Definition: NiColor.h:9
Definition: NiPoint2.h:6
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESRegion.h:21
NiPoint2 maximums
Definition: TESRegion.h:36
std::uint8_t pad19
Definition: TESRegion.h:33
std::uint16_t pad1A
Definition: TESRegion.h:34
ScaleResult * lastScaleResult
Definition: TESRegion.h:29
bool ownsPointMemory
Definition: TESRegion.h:32
NiPoint2 minimums
Definition: TESRegion.h:35
std::uint32_t count
Definition: TESRegion.h:38
std::uint32_t distanceInsideAtMax
Definition: TESRegion.h:37
std::uint32_t pad34
Definition: TESRegion.h:39
Definition: TESRegion.h:14
NiPoint2 point
Definition: TESRegion.h:16
Definition: TESRegion.h:44
NiColor emittanceColor
Definition: TESRegion.h:74
BSSimpleList< TESRegionPointList * > * pointLists
Definition: TESRegion.h:71
TESWeather * currentWeather
Definition: TESRegion.h:73
virtual bool Validate()
~TESRegion() override
static constexpr auto RTTI
Definition: TESRegion.h:46
static constexpr auto FORMTYPE
Definition: TESRegion.h:47
std::uint32_t pad4C
Definition: TESRegion.h:75
TESWorldSpace * worldSpace
Definition: TESRegion.h:72
bool Load(TESFile *a_mod) override
TESRegionDataList * dataList
Definition: TESRegion.h:70
void ClearData(void) override
void InitItemImpl() override
Definition: TESWeather.h:17
Definition: TESWorldSpace.h:116
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESRegion
Definition: Offsets_RTTI.h:6055
Definition: TESRegion.h:24
float dist
Definition: TESRegion.h:26
float scale
Definition: TESRegion.h:27
TESRegionPoint point
Definition: TESRegion.h:25
Definition: TESRegion.h:50
RecordFlag
Definition: TESRegion.h:52
@ kDeleted
Definition: TESRegion.h:53
@ kIgnored
Definition: TESRegion.h:55
@ kBorderRegion
Definition: TESRegion.h:54