CommonLibSSE NG
Loading...
Searching...
No Matches
TESWeather.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
5#include "RE/B/BSTList.h"
6#include "RE/C/Color.h"
7#include "RE/F/FormTypes.h"
8#include "RE/T/TESForm.h"
9#include "RE/T/TESModel.h"
10#include "RE/T/TESTexture1024.h"
11
12namespace RE
13{
14 class BGSVolumetricLighting;
15
16 class TESWeather : public TESForm
17 {
18 public:
19 inline static constexpr auto RTTI = RTTI_TESWeather;
20 inline static constexpr auto VTABLE = VTABLE_TESWeather;
21 inline static constexpr auto FORMTYPE = FormType::Weather;
22
23 enum
24 {
25 kTotalLayers = 32
26 };
27
28 enum class SoundType
29 {
30 kDefault = 0,
31 kPrecip = 1,
32 kWind = 2,
33 kThunder = 3
34 };
35
36 enum class WeatherDataFlag
37 {
38 kNone = 0,
39 kPleasant = 1 << 0,
40 kCloudy = 1 << 1,
41 kRainy = 1 << 2,
42 kSnow = 1 << 3,
43 kPermAurora = 1 << 4,
44 kAuroraFollowsSun = 1 << 5
45 };
46
48 {
49 enum ColorTime : std::uint32_t
50 {
55
56 kTotal
57 };
58 };
60
62 {
63 enum
64 {
82
83 kTotal
84 };
85 };
86
88 {
89 enum RecordFlag : std::uint32_t
90 {
91 kDeleted = 1 << 5,
92 kIgnored = 1 << 12
93 };
94 };
95
96 struct Data // DATA
97 {
98 public:
99 struct Color3
100 {
101 public:
102 // members
103 std::int8_t red; // 0
104 std::int8_t green; // 1
105 std::int8_t blue; // 2
106 };
107 static_assert(sizeof(Color3) == 0x3);
108
109 // members
110 std::int8_t windSpeed; // 00
111 std::int8_t unk01; // 01
112 std::int8_t unk02; // 02
113 std::int8_t transDelta; // 03
114 std::int8_t sunGlare; // 04
115 std::int8_t sunDamage; // 05
116 std::int8_t precipitationBeginFadeIn; // 06
117 std::int8_t precipitationEndFadeOut; // 07
119 std::int8_t thunderLightningEndFadeOut; // 09
120 std::int8_t thunderLightningFrequency; // 0A
123 std::int8_t visualEffectBegin; // 0F
124 std::int8_t visualEffectEnd; // 10
125 std::int8_t windDirection; // 11
126 std::int8_t windDirectionRange; // 12
127 std::int8_t unk13; // 13
128 };
129 static_assert(sizeof(Data) == 0x14);
130
131 struct FogData // FNAM
132 {
133 public:
134 // members
135 float dayNear; // 00
136 float dayFar; // 04
137 float nightNear; // 08
138 float nightFar; // 0C
139 float dayPower; // 10
140 float nightPower; // 14
141 float dayMax; // 18
142 float nightMax; // 1C
143 };
144 static_assert(sizeof(FogData) == 0x20);
145
146 struct WeatherSound // SNAM
147 {
148 public:
149 // members
152 };
153 static_assert(sizeof(WeatherSound) == 0x8);
154
155 struct WeatherSoundList : public BSSimpleList<WeatherSound*>
156 {};
157
158 ~TESWeather() override; // 00
159
160 // override (TESForm)
161 void InitializeData() override; // 04
162 void ClearData() override; // 05
163 bool Load(TESFile* a_mod) override; // 06
164 void InitItemImpl() override; // 13
165
166 // members
168 std::int8_t cloudLayerSpeedY[kTotalLayers]; // 220 - RNAM
169 std::int8_t cloudLayerSpeedX[kTotalLayers]; // 240 - QNAM
170 Color cloudColorData[kTotalLayers][ColorTime::kTotal]; // 260 - PNAM
171 float cloudAlpha[kTotalLayers][ColorTime::kTotal]; // 460 - JNAM
172 std::uint32_t cloudLayerDisabledBits; // 660 - NAM1 - bitfield
173 Data data; // 664 - DATA
174 FogData fogData; // 678 - FNAM
175 Color colorData[ColorTypes::kTotal][ColorTime::kTotal]; // 698 - NAM0
178 std::uint32_t numCloudLayers; // 7D0 - LNAM
179 std::uint32_t pad7D4; // 7D4
180 TESImageSpace* imageSpaces[ColorTime::kTotal]; // 7D8 - IMSP
184 BGSVolumetricLighting* volumetricLighting[ColorTime::kTotal]; // 8A8 - HNAM
187 };
188 static_assert(sizeof(TESWeather) == 0x8D8);
189}
Definition BGSDirectionalAmbientLightingColors.h:8
Definition BGSLensFlare.h:12
Definition BGSReferenceEffect.h:9
Definition BGSShaderParticleGeometryData.h:18
Definition BGSVolumetricLighting.h:12
Definition BSTList.h:10
Definition BSTArray.h:377
Definition TESFile.h:15
Definition TESForm.h:35
Definition TESImageSpace.h:10
Definition TESModel.h:16
Definition TESTexture1024.h:8
Definition TESWeather.h:17
WeatherDataFlag
Definition TESWeather.h:37
BGSDirectionalAmbientLightingColors directionalAmbientLightingColors[ColorTime::kTotal]
Definition TESWeather.h:181
BGSShaderParticleGeometryData * precipitationData
Definition TESWeather.h:185
~TESWeather() override
BGSReferenceEffect * referenceEffect
Definition TESWeather.h:186
std::int8_t cloudLayerSpeedY[kTotalLayers]
Definition TESWeather.h:168
void InitItemImpl() override
static constexpr auto FORMTYPE
Definition TESWeather.h:21
bool Load(TESFile *a_mod) override
TESImageSpace * imageSpaces[ColorTime::kTotal]
Definition TESWeather.h:180
@ kTotalLayers
Definition TESWeather.h:25
std::uint32_t pad7D4
Definition TESWeather.h:179
std::uint32_t numCloudLayers
Definition TESWeather.h:178
std::int8_t cloudLayerSpeedX[kTotalLayers]
Definition TESWeather.h:169
WeatherSoundList sounds
Definition TESWeather.h:176
FogData fogData
Definition TESWeather.h:174
void InitializeData() override
SoundType
Definition TESWeather.h:29
static constexpr auto RTTI
Definition TESWeather.h:19
Color colorData[ColorTypes::kTotal][ColorTime::kTotal]
Definition TESWeather.h:175
BGSLensFlare * sunGlareLensFlare
Definition TESWeather.h:183
TESModel aurora
Definition TESWeather.h:182
Data data
Definition TESWeather.h:173
static constexpr auto VTABLE
Definition TESWeather.h:20
BSTArray< TESObjectSTAT * > skyStatics
Definition TESWeather.h:177
void ClearData() override
float cloudAlpha[kTotalLayers][ColorTime::kTotal]
Definition TESWeather.h:171
TESTexture1024 cloudTextures[kTotalLayers]
Definition TESWeather.h:167
std::uint32_t cloudLayerDisabledBits
Definition TESWeather.h:172
Color cloudColorData[kTotalLayers][ColorTime::kTotal]
Definition TESWeather.h:170
BGSVolumetricLighting * volumetricLighting[ColorTime::kTotal]
Definition TESWeather.h:184
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 1 > VTABLE_TESWeather
Definition Offsets_VTABLE.h:687
std::uint32_t FormID
Definition BSCoreTypes.h:5
constexpr REL::VariantID RTTI_TESWeather(513983, 392883, 0x1edfe58)
Definition Color.h:8
Definition TESWeather.h:48
ColorTime
Definition TESWeather.h:50
@ kTotal
Definition TESWeather.h:56
@ kDay
Definition TESWeather.h:52
@ kSunrise
Definition TESWeather.h:51
@ kNight
Definition TESWeather.h:54
@ kSunset
Definition TESWeather.h:53
Definition TESWeather.h:62
@ kMoonGlare
Definition TESWeather.h:81
@ kUnknown
Definition TESWeather.h:67
@ kHorizon
Definition TESWeather.h:73
@ kSkyStatics
Definition TESWeather.h:78
@ kFogNear
Definition TESWeather.h:66
@ kSunGlare
Definition TESWeather.h:80
@ kStars
Definition TESWeather.h:71
@ kEffectLighting
Definition TESWeather.h:74
@ kSunlight
Definition TESWeather.h:69
@ kSkyLower
Definition TESWeather.h:72
@ kFogFar
Definition TESWeather.h:77
@ kCloudLODDiffuse
Definition TESWeather.h:75
@ kSun
Definition TESWeather.h:70
@ kCloudLODAmbient
Definition TESWeather.h:76
@ kWaterMultiplier
Definition TESWeather.h:79
@ kAmbient
Definition TESWeather.h:68
@ kTotal
Definition TESWeather.h:83
@ kSkyUpper
Definition TESWeather.h:65
Definition TESWeather.h:100
std::int8_t red
Definition TESWeather.h:103
std::int8_t blue
Definition TESWeather.h:105
std::int8_t green
Definition TESWeather.h:104
Definition TESWeather.h:97
std::int8_t thunderLightningEndFadeOut
Definition TESWeather.h:119
std::int8_t thunderLightningFrequency
Definition TESWeather.h:120
std::int8_t windSpeed
Definition TESWeather.h:110
std::int8_t sunGlare
Definition TESWeather.h:114
std::int8_t unk13
Definition TESWeather.h:127
std::int8_t unk01
Definition TESWeather.h:111
Color3 lightningColor
Definition TESWeather.h:122
std::int8_t sunDamage
Definition TESWeather.h:115
std::int8_t precipitationBeginFadeIn
Definition TESWeather.h:116
std::int8_t windDirectionRange
Definition TESWeather.h:126
stl::enumeration< WeatherDataFlag, std::uint8_t > flags
Definition TESWeather.h:121
std::int8_t visualEffectEnd
Definition TESWeather.h:124
std::int8_t transDelta
Definition TESWeather.h:113
std::int8_t windDirection
Definition TESWeather.h:125
std::int8_t unk02
Definition TESWeather.h:112
std::int8_t precipitationEndFadeOut
Definition TESWeather.h:117
std::int8_t visualEffectBegin
Definition TESWeather.h:123
std::int8_t thunderLightningBeginFadeIn
Definition TESWeather.h:118
Definition TESWeather.h:132
float nightFar
Definition TESWeather.h:138
float dayFar
Definition TESWeather.h:136
float nightNear
Definition TESWeather.h:137
float nightPower
Definition TESWeather.h:140
float dayPower
Definition TESWeather.h:139
float dayMax
Definition TESWeather.h:141
float nightMax
Definition TESWeather.h:142
float dayNear
Definition TESWeather.h:135
Definition TESWeather.h:88
RecordFlag
Definition TESWeather.h:90
@ kIgnored
Definition TESWeather.h:92
@ kDeleted
Definition TESWeather.h:91
Definition TESWeather.h:147
FormID soundFormID
Definition TESWeather.h:150
stl::enumeration< SoundType, std::uint32_t > type
Definition TESWeather.h:151
Definition TESWeather.h:156