CommonLibSSE NG
Loading...
Searching...
No Matches
Sky.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/B/BSTextureSet.h"
7#include "RE/N/NiColor.h"
10
11namespace RE
12{
13 class Atmosphere;
14 class BGSLightingTemplate;
15 class BSMultiBoundNode;
16 class Clouds;
17 class ImageSpaceModifierInstanceForm;
18 class Moon;
19 class NiNode;
20 class NiTexture;
21 class Precipitation;
22 class ReferenceEffect;
23 class SkySound;
24 class Stars;
25 class Sun;
26 class TESClimate;
27 class TESRegion;
28 class TESWeather;
29
30 class Sky
31 {
32 public:
33 inline static constexpr auto RTTI = RTTI_Sky;
34
35 enum class Mode
36 {
37 kNone = 0,
40 kFull,
41
42 kTotal
43 };
44
46 {
47 public:
48 };
49
50 virtual ~Sky(); // 00
51
52 static Sky* GetSingleton();
53
54 [[nodiscard]] bool IsRaining() const;
55 [[nodiscard]] bool IsSnowing() const;
56
57 void SetWeather(RE::TESWeather* a_weather, bool a_override, bool a_accelerate);
58 void ForceWeather(RE::TESWeather* a_weather, bool a_override);
60
61 // members
65 std::uint64_t unk020; // 020
69 float lightingTransition; // 038
78 Stars* stars; // 078
79 Sun* sun; // 080
80 Clouds* clouds; // 088
81 Moon* masser; // 090
82 Moon* secunda; // 098
84 NiColor skyColor[17]; // 0A8
85 std::uint32_t unk174; // 174
86 std::uint64_t unk178; // 178
87 std::uint64_t unk180; // 180
88 std::uint32_t unk188; // 188
89 float windSpeed; // 18C
90 float windAngle; // 190
91 std::uint32_t unk194; // 190
92 std::uint64_t unk198; // 198
93 std::uint32_t unk1A0; // 1A0
94 std::uint32_t unk1A4; // 1A4
95 float unk1A8; // 1A8
96 float unk1AC; // 1AC
97 float currentGameHour; // 1B0
98 float lastWeatherUpdate; // 1B4
99 float currentWeatherPct; // 1B8
102 float flash; // 1C8
103 std::uint32_t pad1CC; // 1CC
104 std::time_t flashTime; // 1D0
105 std::uint32_t lastMoonPhaseUpdate; // 1D8
106 std::uint32_t flags; // 1DC
114 float auroraInStart; // 258
115 float auroraIn; // 25C
116 float auroraOutStart; // 260
117 float auroraOut; // 264
124 };
125 static_assert(sizeof(Sky) == 0x2C8);
126}
Definition Atmosphere.h:13
Definition BGSLightingTemplate.h:11
Definition BSTList.h:10
Definition BSTArray.h:377
Definition Clouds.h:13
Definition ImageSpaceModifierInstanceForm.h:10
Definition Moon.h:12
Definition NiColor.h:11
Definition NiSmartPointer.h:9
Definition Precipitation.h:14
Definition SkyEffectController.h:8
Definition Sky.h:31
stl::enumeration< Mode, std::uint32_t > mode
Definition Sky.h:100
void ResetWeather()
float lightingTransition
Definition Sky.h:69
SkyEffectController effectController
Definition Sky.h:120
TESClimate * currentClimate
Definition Sky.h:71
void SetWeather(RE::TESWeather *a_weather, bool a_override, bool a_accelerate)
float auroraOut
Definition Sky.h:117
float lastWeatherUpdate
Definition Sky.h:98
TESWeather * currentWeather
Definition Sky.h:72
NiColor skyColor[17]
Definition Sky.h:84
ObjectRefHandle currentRoom
Definition Sky.h:67
std::uint32_t unk1A4
Definition Sky.h:94
NiPointer< NiNode > moonsRoot
Definition Sky.h:63
ObjectRefHandle previousRoom
Definition Sky.h:68
Mode
Definition Sky.h:36
NiPointer< ReferenceEffect > lastReferenceEffect
Definition Sky.h:119
NiColor ambientSpecularTint
Definition Sky.h:112
BSTArray< NiPointer< NiTexture > > storedCloudTextures
Definition Sky.h:121
std::uint32_t unk1A0
Definition Sky.h:93
float ambientSpecularFresnel
Definition Sky.h:113
std::uint64_t unk180
Definition Sky.h:87
float auroraIn
Definition Sky.h:115
std::uint32_t pad1CC
Definition Sky.h:103
TESRegion * region
Definition Sky.h:76
ImageSpaceModifierInstanceForm * lastWeatherImageSpaceMod
Definition Sky.h:109
NiPointer< BSMultiBoundNode > root
Definition Sky.h:62
bool IsSnowing() const
Precipitation * precip
Definition Sky.h:83
Atmosphere * atmosphere
Definition Sky.h:77
float flash
Definition Sky.h:102
std::uint32_t unk174
Definition Sky.h:85
float auroraOutStart
Definition Sky.h:116
float auroraInStart
Definition Sky.h:114
float windSpeed
Definition Sky.h:89
std::uint64_t unk020
Definition Sky.h:65
BSTArray< SkyStaticRefData > skyStaticRefData
Definition Sky.h:123
std::time_t flashTime
Definition Sky.h:104
Sun * sun
Definition Sky.h:79
TESWeather * defaultWeather
Definition Sky.h:74
BSTArray< NiPointer< NiTexture > > storedWorldMapCloudTextures
Definition Sky.h:122
void ForceWeather(RE::TESWeather *a_weather, bool a_override)
ImageSpaceModifierInstanceForm * currentWeatherImageSpaceMod
Definition Sky.h:107
std::uint32_t lastMoonPhaseUpdate
Definition Sky.h:105
float unk1AC
Definition Sky.h:96
NiColor directionalAmbientColors[3][2]
Definition Sky.h:111
ImageSpaceModifierInstanceForm * currentWeatherImageSpaceMod2
Definition Sky.h:108
static Sky * GetSingleton()
std::uint64_t unk178
Definition Sky.h:86
std::uint32_t flags
Definition Sky.h:106
float currentGameHour
Definition Sky.h:97
bool IsRaining() const
NiPointer< NiNode > auroraRoot
Definition Sky.h:64
float windAngle
Definition Sky.h:90
std::uint64_t unk198
Definition Sky.h:92
std::uint32_t unk194
Definition Sky.h:91
float currentWeatherPct
Definition Sky.h:99
float unk1A8
Definition Sky.h:95
TESWeather * lastWeather
Definition Sky.h:73
virtual ~Sky()
Moon * secunda
Definition Sky.h:82
std::uint32_t unk188
Definition Sky.h:88
BGSLightingTemplate * extLightingOverride
Definition Sky.h:66
Moon * masser
Definition Sky.h:81
ImageSpaceModifierInstanceForm * lastWeatherImageSpaceMod2
Definition Sky.h:110
NiPointer< ReferenceEffect > currentReferenceEffect
Definition Sky.h:118
Clouds * clouds
Definition Sky.h:80
static constexpr auto RTTI
Definition Sky.h:33
BSSimpleList< SkySound * > * skySoundList
Definition Sky.h:101
TESWeather * overrideWeather
Definition Sky.h:75
Stars * stars
Definition Sky.h:78
float lightingTransitionTimer
Definition Sky.h:70
Definition Stars.h:11
Definition Sun.h:14
Definition TESClimate.h:13
Definition TESRegion.h:53
Definition TESWeather.h:17
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_Sky(685534, 393319, 0x1ee7560)
Definition Sky.h:46