CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESClimate.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/T/TESForm.h"
6#include "RE/T/TESModel.h"
7#include "RE/T/TESTexture.h"
8#include "RE/W/WeatherType.h"
9
10namespace RE
11{
12 class TESClimate : public TESForm
13 {
14 public:
15 inline static constexpr auto RTTI = RTTI_TESClimate;
16 inline static constexpr auto FORMTYPE = FormType::Climate;
17
19 {
21 {
24
25 kTotal
26 };
27 };
29
31 {
32 enum RecordFlag : std::uint32_t
33 {
34 kDeleted = 1 << 5,
35 kIgnored = 1 << 12
36 };
37 };
38
39 struct Timing
40 {
41 public:
42 enum class MoonPhaseLength
43 {
44 kPhaseLengthMask = 0x3F,
45
46 kNone = 0,
47 kMasser = 1 << 6,
48 kSecunda = 1 << 7
49 };
50
51 struct Interval
52 {
53 public:
54 [[nodiscard]] std::tm ConvertInterval(std::uint8_t a_time) const;
55 [[nodiscard]] std::tm GetBeginTime() const;
56 [[nodiscard]] std::tm GetEndTime() const;
57
58 // members
59 std::uint8_t begin; // 0
60 std::uint8_t end; // 1
61 };
62 static_assert(sizeof(Interval) == 0x2);
63
64 [[nodiscard]] bool IncludesMasser() const;
65 [[nodiscard]] bool IncludesSecunda() const;
66 [[nodiscard]] std::uint8_t GetPhaseLength() const;
67
68 // members
71 std::uint8_t volatility; // 4
73 std::uint8_t unk6; // 6
74 std::uint8_t unk7; // 7
75 };
76 static_assert(sizeof(Timing) == 0x8);
77
78 ~TESClimate() override; // 00
79
80 // override (TESForm)
81 void InitializeData() override; // 04
82 bool Load(TESFile* a_mod) override; // 06
83
84 // members
88 Timing timing; // 78 - TNAM
89 };
90 static_assert(sizeof(TESClimate) == 0x80);
91}
Definition: BSTList.h:10
Definition: TESClimate.h:13
bool Load(TESFile *a_mod) override
static constexpr auto FORMTYPE
Definition: TESClimate.h:16
TESModel nightSky
Definition: TESClimate.h:85
void InitializeData() override
static constexpr auto RTTI
Definition: TESClimate.h:15
Timing timing
Definition: TESClimate.h:88
TESTexture skyObjects[SkyObjects::kTotal]
Definition: TESClimate.h:87
BSSimpleList< WeatherType * > weatherList
Definition: TESClimate.h:86
~TESClimate() override
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESModel.h:16
Definition: TESTexture.h:10
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESClimate
Definition: Offsets_RTTI.h:5981
Definition: TESClimate.h:31
RecordFlag
Definition: TESClimate.h:33
@ kIgnored
Definition: TESClimate.h:35
@ kDeleted
Definition: TESClimate.h:34
Definition: TESClimate.h:19
SkyObject
Definition: TESClimate.h:21
@ kSunGlare
Definition: TESClimate.h:23
@ kTotal
Definition: TESClimate.h:25
@ kSun
Definition: TESClimate.h:22
Definition: TESClimate.h:52
std::uint8_t end
Definition: TESClimate.h:60
std::tm ConvertInterval(std::uint8_t a_time) const
std::uint8_t begin
Definition: TESClimate.h:59
Definition: TESClimate.h:40
stl::enumeration< MoonPhaseLength, std::uint8_t > moonPhaseLength
Definition: TESClimate.h:72
std::uint8_t unk7
Definition: TESClimate.h:74
std::uint8_t GetPhaseLength() const
bool IncludesMasser() const
std::uint8_t unk6
Definition: TESClimate.h:73
std::uint8_t volatility
Definition: TESClimate.h:71
Interval sunrise
Definition: TESClimate.h:69
bool IncludesSecunda() const
Interval sunset
Definition: TESClimate.h:70
MoonPhaseLength
Definition: TESClimate.h:43