CommonLibSSE (Parapets fork)
TES.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSSimpleList.h"
4 #include "RE/B/BSTEvent.h"
5 #include "RE/B/BSTTuple.h"
6 #include "RE/C/Color.h"
8 #include "RE/N/NiSmartPointer.h"
9 
10 namespace RE
11 {
12  namespace BSResource
13  {
14  struct ArchiveStreamOpenedEvent;
15  }
16 
17  class BSFogProperty;
18  class BSSystemEvent;
19  class BSTempNodeManager;
20  class GridCellArray;
21  class ImageSpaceModifierInstance;
22  class LoadedAreaBound;
23  class NavMeshInfoMap;
24  class NiAVObject;
25  class NiDirectionalLight;
26  class NiNode;
27  class NiTexture;
28  class QueuedFile;
29  class Sky;
30  class TESActorBase;
31  class TESObjectCELL;
32  class TESWorldSpace;
33 
34  struct PositionPlayerEvent;
35 
36  class TES :
37  public ICellAttachDetachEventSource, // 000
38  public BSTEventSink<BSResource::ArchiveStreamOpenedEvent>, // 060
39  public BSTEventSink<PositionPlayerEvent> // 068
40  {
41  public:
42  inline static constexpr auto RTTI = RTTI_TES;
43 
44  enum class BorderMode
45  {
46  Off,
47  On,
49  };
50 
52  {
53  public:
54  // members
58  };
59  static_assert(sizeof(ParticleObjectCache) == 0x18);
60 
61  class SystemEventAdapter : public BSTEventSink<BSSystemEvent>
62  {
63  public:
64  inline static constexpr auto RTTI = RTTI_TES;
65 
66  ~SystemEventAdapter() override; // 00
67 
68  // override (BSTEventSink<BSSystemEvent>)
69  BSEventNotifyControl ProcessEvent(const BSSystemEvent* a_event, BSTEventSource<BSSystemEvent>* a_eventSource) override; // 01
70 
71  // members
72  std::uint64_t unk08; // 08
73  };
74  static_assert(sizeof(SystemEventAdapter) == 0x10);
75 
76  ~TES() override; // 00
77 
78  // override (BSTEventSink<BSResource::ArchiveStreamOpenedEvent>)
79  BSEventNotifyControl ProcessEvent(const BSResource::ArchiveStreamOpenedEvent* a_event, BSTEventSource<BSResource::ArchiveStreamOpenedEvent>* a_eventSource) override; // 01 - { return BSEventNotifyControl::kContinue; }
80 
81  // override (BSTEventSink<PositionPlayerEvent>)
83 
84  static TES* GetSingleton();
85 
86  // members
87  std::uint64_t unk070; // 070
89  NiNode* objRoot; // 080
92  BSTempNodeManager* tempNodeManager; // 098
95  std::int32_t currentGridX; // 0B0
96  std::int32_t currentGridY; // 0B4
97  std::int32_t queuedGridX; // 0B8
98  std::int32_t queuedGridY; // 0BC
102  std::uint64_t unk0D8; // 0D8
103  std::int32_t saveGridX; // 0E0
104  std::int32_t saveGridY; // 0E4
105  std::uint64_t unk0E8; // 0E8
106  std::uint64_t unk0F0; // 0F0
107  std::uint64_t unk0F8; // 0F8
108  Sky* sky; // 100
110  std::uint64_t unk118; // 118
111  std::uint64_t unk120; // 120
112  std::uint8_t unk128; // 128
113 #if !defined(SKYRIMVR)
116 #else
117  bool showLANDborders; // 129
118 #endif
119  bool interiorUnloaded; // 134
120  bool inWorldMapMode; // 135
121  std::uint8_t unk136; // 136
122  bool loadingMenuDisabled; // 137
123  bool cellTestRunning; // 138
124  std::uint8_t unk139; // 139
125  std::uint16_t unk13A; // 13A
126  bool allowUnusedPurge; // 13C
127  float gridShiftDistanceX; // 140
128  float gridShiftDistanceY; // 144
135  char unk180[260]; // 180
136  std::uint32_t unk284; // 284
137  std::uint32_t unk288; // 288
138  std::uint16_t unk28C; // 28C
139  std::uint16_t pad28E; // 28E
142  std::int32_t placeableWaterCount; // 2A8
143  std::uint32_t pad2AC; // 2AC
146  };
147 #if !defined(SKYRIMVR)
148  static_assert(sizeof(TES) == 0x2C0);
149 #else
150  static_assert(sizeof(TES) == 0x2B8);
151 #endif
152 }
Definition: BSSimpleList.h:10
Definition: BSTEvent.h:146
Definition: GridCellArray.h:11
Definition: ICellAttachDetachEventSource.h:13
Definition: NavMeshInfoMap.h:19
Definition: NiNode.h:12
Definition: NiSmartPointer.h:9
Definition: Sky.h:31
Definition: TESObjectCELL.h:102
Definition: TESWorldSpace.h:116
Definition: TES.h:52
NiPointer< NiAVObject > * clones
Definition: TES.h:56
ParticleObjectCache * next
Definition: TES.h:57
NiPointer< NiAVObject > particleObject
Definition: TES.h:55
Definition: TES.h:62
static constexpr auto RTTI
Definition: TES.h:64
std::uint64_t unk08
Definition: TES.h:72
BSEventNotifyControl ProcessEvent(const BSSystemEvent *a_event, BSTEventSource< BSSystemEvent > *a_eventSource) override
Definition: TES.h:40
std::uint64_t unk118
Definition: TES.h:110
NiPointer< NiTexture > preloadedBloodTexture
Definition: TES.h:132
std::uint32_t unk288
Definition: TES.h:137
std::uint32_t pad2AC
Definition: TES.h:143
std::uint8_t unk136
Definition: TES.h:121
NiPointer< QueuedFile > preloadedDefaultModels
Definition: TES.h:134
BSSimpleList< NiPointer< ImageSpaceModifierInstance > > activeImageSpaceModifiers
Definition: TES.h:109
bool interiorUnloaded
Definition: TES.h:119
bool inWorldMapMode
Definition: TES.h:120
std::int32_t currentGridY
Definition: TES.h:96
ParticleObjectCache * particleObjectCache
Definition: TES.h:140
Color borderColor
Definition: TES.h:115
std::uint64_t unk0F8
Definition: TES.h:107
TESWorldSpace * worldSpace
Definition: TES.h:129
std::uint32_t unk284
Definition: TES.h:136
std::int32_t queuedGridY
Definition: TES.h:98
std::int32_t queuedGridX
Definition: TES.h:97
static constexpr auto RTTI
Definition: TES.h:42
std::uint16_t unk13A
Definition: TES.h:125
Sky * sky
Definition: TES.h:108
std::uint16_t pad28E
Definition: TES.h:139
std::int32_t saveGridY
Definition: TES.h:104
NiNode * objRoot
Definition: TES.h:89
GridCellArray * gridCells
Definition: TES.h:88
SystemEventAdapter systemEventAdapter
Definition: TES.h:141
std::uint64_t unk0D8
Definition: TES.h:102
float gridShiftDistanceY
Definition: TES.h:128
std::int32_t saveGridX
Definition: TES.h:103
float gridShiftDistanceX
Definition: TES.h:127
std::uint8_t unk139
Definition: TES.h:124
BSTempNodeManager * tempNodeManager
Definition: TES.h:92
std::uint64_t unk0F0
Definition: TES.h:106
NiPointer< BSFogProperty > fog
Definition: TES.h:94
NiNode * objLODWaterRoot
Definition: TES.h:91
bool cellTestRunning
Definition: TES.h:123
BSEventNotifyControl ProcessEvent(const BSResource::ArchiveStreamOpenedEvent *a_event, BSTEventSource< BSResource::ArchiveStreamOpenedEvent > *a_eventSource) override
static TES * GetSingleton()
NiPointer< QueuedFile > preloadedForms
Definition: TES.h:133
std::int32_t placeableWaterCount
Definition: TES.h:142
BSSimpleList< BSTTuple< TESActorBase *, std::uint16_t > * > deadCount
Definition: TES.h:130
BSEventNotifyControl ProcessEvent(const PositionPlayerEvent *a_event, BSTEventSource< PositionPlayerEvent > *a_eventSource) override
NiPointer< QueuedFile > preloadedAddonNodes
Definition: TES.h:131
BorderMode
Definition: TES.h:45
BorderMode showLANDborders
Definition: TES.h:114
NiPointer< NiDirectionalLight > sunLight
Definition: TES.h:93
TESObjectCELL * interiorCell
Definition: TES.h:99
NavMeshInfoMap * navMeshInfoMap
Definition: TES.h:144
std::uint64_t unk0E8
Definition: TES.h:105
bool loadingMenuDisabled
Definition: TES.h:122
TESObjectCELL ** interiorBuffer
Definition: TES.h:100
char unk180[260]
Definition: TES.h:135
bool allowUnusedPurge
Definition: TES.h:126
std::uint64_t unk070
Definition: TES.h:87
std::uint64_t unk120
Definition: TES.h:111
NiNode * lodLandRoot
Definition: TES.h:90
std::uint16_t unk28C
Definition: TES.h:138
~TES() override
NiPointer< LoadedAreaBound > loadedAreaBound
Definition: TES.h:145
TESObjectCELL ** exteriorBuffer
Definition: TES.h:101
std::uint8_t unk128
Definition: TES.h:112
std::int32_t currentGridX
Definition: TES.h:95
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TES
Definition: Offsets_RTTI.h:5964
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: Color.h:6
Definition: PositionPlayerEvent.h:7