wowlib
0.0.0
Read & write World of Warcraft client files — a C++26 core
Toggle main menu visibility
Loading...
Searching...
No Matches
skyscene.hpp
Go to the documentation of this file.
1
#pragma once
2
8
9
#include <cstdint>
10
11
#include <welder/vocabulary.hpp>
12
13
#include <
wowlib/formats/common/types.hpp
>
14
15
namespace
wowlib::formats::wdl::chunks
{
16
struct
[[
17
=welder::weld,
18
=welder::doc(
"One sky scene (an MSSN record, Shadowlands+), tying a "
19
"SkySceneID to its condition and object ranges."
)
20
]]
SkyScene
{
21
[[=welder::doc(
"Foreign key into SkySceneXPlayerCondition (SkySceneID)."
)]]
22
std::uint32_t
skySceneId
= 0;
23
24
[[=welder::doc(
25
"Unknown; possibly the SkySceneXPlayerCondition record count."
)]]
26
std::uint32_t
unk1
= 0;
27
28
[[=welder::doc(
"First condition record in MSSC."
)]]
29
std::int16_t
conditionIndex
= 0;
30
31
[[=welder::doc(
"Condition record count."
)]]
32
std::int16_t
conditionCount
= 0;
33
34
[[=welder::doc(
"First object record in MSSO."
)]]
35
std::uint16_t
objectIndex
= 0;
36
37
[[=welder::doc(
"Object record count."
)]]
38
std::int16_t
objectCount
= 0;
39
40
[[=welder::doc(
"Unknown."
)]]
41
std::uint32_t
unk4
= 0;
42
43
[[=welder::doc(
"Unknown."
)]]
44
std::uint32_t
unk5
= 0;
45
46
[[=welder::doc(
"Unknown."
)]]
47
std::uint32_t
unk6
= 0;
48
49
[[=welder::doc(
"Unknown."
)]]
50
std::uint32_t
unk7
= 0;
51
};
52
53
static_assert
(
sizeof
(
SkyScene
) == 32);
54
55
struct
[[
56
=welder::weld,
57
=welder::doc(
"One sky-scene condition (an MSSC record, Shadowlands+)."
)
58
]]
SkySceneCondition
{
59
[[=welder::doc(
"Unknown."
)]]
60
std::uint32_t
unk0
= 0;
61
62
[[=welder::doc(
"Unknown."
)]]
63
std::uint32_t
unk1
= 0;
64
65
[[=welder::doc(
66
"What condition_value keys into: 1 AreaTable (a parent of the "
67
"player's area), 2 LightParams, 3 LightSkybox (the current "
68
"skybox), 5 ZoneLight."
)]]
69
std::uint32_t
conditionType
= 0;
70
71
[[=welder::doc(
"Unknown."
)]]
72
std::uint32_t
unk3
= 0;
73
74
[[=welder::doc(
"Unknown."
)]]
75
std::uint32_t
unk4
= 0;
76
77
[[=welder::doc(
"Unknown."
)]]
78
std::uint32_t unk5 = 0;
79
80
[[=welder::doc(
"The db2 key condition_type selects."
)]]
81
std::uint32_t conditionValue = 0;
82
};
83
84
static_assert
(
sizeof
(
SkySceneCondition
) == 28);
85
86
struct
[[
87
=welder::weld,
88
=welder::doc(
89
"One sky-scene object (an MSSO record, Shadowlands+): a placed "
90
"distant M2."
)
91
]]
SkySceneObject
{
92
[[=welder::doc(
"Unknown."
)]]
93
std::uint32_t
unk0
= 0;
94
95
[[=welder::doc(
"Flags; 0x1 means the object has an MSSF params record."
)]]
96
std::uint32_t
flags
= 0;
97
98
[[=welder::doc(
"The model FileDataID."
)]]
99
std::uint32_t
fdid
= 0;
100
101
[[=welder::doc(
"Translation."
)]]
102
C3Vector
translation
{};
103
104
[[=welder::doc(
"Rotation as Euler angles, radians."
)]]
105
C3Vector
rotation{};
106
107
[[=welder::doc(
"Uniform scale."
)]]
108
float
scale = 1;
109
110
[[=welder::doc(
"Index into MSSF when flags has 0x1."
)]]
111
std::uint32_t paramsIndex = 0;
112
113
[[=welder::doc(
"Unknown."
)]]
114
std::uint32_t unk11 = 0;
115
};
116
117
static_assert
(
sizeof
(
SkySceneObject
) == 48);
118
119
struct
[[
120
=welder::weld,
121
=welder::doc(
122
"One sky-scene object params record (an MSSF record; documented "
123
"as Dragonflight+ but observed in 9.2.7 files)."
)
124
]]
SkySceneObjectParams
{
125
[[=welder::doc(
"Unknown."
)]]
126
float
unk0
= 0;
127
128
[[=welder::doc(
"Unknown."
)]]
129
float
unk1
= 0;
130
};
131
132
static_assert
(
sizeof
(
SkySceneObjectParams
) == 8);
133
134
struct
[[
135
=welder::weld,
136
=welder::doc(
137
"One scene-living (world) definition (an MSLD record, The War "
138
"Within+): a time-windowed scene schedule."
)
139
]]
SceneLivingDef
{
140
[[=welder::doc(
"Unknown."
)]]
141
std::uint32_t
unk0
= 0;
142
143
[[=welder::doc(
"Unknown."
)]]
144
std::uint32_t
unk1
= 0;
145
146
[[=welder::doc(
"Unknown."
)]]
147
std::uint32_t
unk2
= 0;
148
149
[[=welder::doc(
"Unknown."
)]]
150
std::uint32_t
unk3
= 0;
151
152
[[=welder::doc(
"Window start (first pair value)."
)]]
153
std::uint32_t
timeStart0
= 0;
154
155
[[=welder::doc(
"Window start (second pair value)."
)]]
156
std::uint32_t
timeStart1
= 0;
157
158
[[=welder::doc(
"Window end (first pair value)."
)]]
159
std::uint32_t
timeEnd0
= 0;
160
161
[[=welder::doc(
"Window end (second pair value)."
)]]
162
std::uint32_t
timeEnd1
= 0;
163
};
164
165
static_assert
(
sizeof
(
SceneLivingDef
) == 32);
166
}
wowlib::formats::wdl::chunks
WDL chunk binary structs (per-tile heightmaps, hole and ocean masks, low-resolution placements,...
Definition
objects.hpp:17
wowlib::formats::common::C3Vector
A 3D float vector — the workhorse: positions, normals, rotations-as-Euler-degrees in placements.
Definition
types.hpp:49
wowlib::formats::wdl::chunks::SceneLivingDef
One scene-living (world) definition (an MSLD record, The War Within+): a time-windowed scene schedule...
Definition
skyscene.hpp:118
wowlib::formats::wdl::chunks::SceneLivingDef::unk3
std::uint32_t unk3
Unknown.
Definition
skyscene.hpp:129
wowlib::formats::wdl::chunks::SceneLivingDef::timeStart1
std::uint32_t timeStart1
Window start (second pair value).
Definition
skyscene.hpp:135
wowlib::formats::wdl::chunks::SceneLivingDef::timeStart0
std::uint32_t timeStart0
Window start (first pair value).
Definition
skyscene.hpp:132
wowlib::formats::wdl::chunks::SceneLivingDef::unk2
std::uint32_t unk2
Unknown.
Definition
skyscene.hpp:126
wowlib::formats::wdl::chunks::SceneLivingDef::unk0
std::uint32_t unk0
Unknown.
Definition
skyscene.hpp:120
wowlib::formats::wdl::chunks::SceneLivingDef::timeEnd0
std::uint32_t timeEnd0
Window end (first pair value).
Definition
skyscene.hpp:138
wowlib::formats::wdl::chunks::SceneLivingDef::unk1
std::uint32_t unk1
Unknown.
Definition
skyscene.hpp:123
wowlib::formats::wdl::chunks::SceneLivingDef::timeEnd1
std::uint32_t timeEnd1
Window end (second pair value).
Definition
skyscene.hpp:141
wowlib::formats::wdl::chunks::SkySceneCondition
One sky-scene condition (an MSSC record, Shadowlands+).
Definition
skyscene.hpp:52
wowlib::formats::wdl::chunks::SkySceneCondition::unk1
std::uint32_t unk1
Unknown.
Definition
skyscene.hpp:57
wowlib::formats::wdl::chunks::SkySceneCondition::unk3
std::uint32_t unk3
Unknown.
Definition
skyscene.hpp:63
wowlib::formats::wdl::chunks::SkySceneCondition::unk4
std::uint32_t unk4
Unknown.
Definition
skyscene.hpp:66
wowlib::formats::wdl::chunks::SkySceneCondition::conditionValue
std::uint32_t conditionValue
The db2 key condition_type selects.
Definition
skyscene.hpp:72
wowlib::formats::wdl::chunks::SkySceneCondition::conditionType
std::uint32_t conditionType
What condition_value keys into: 1 AreaTable (a parent of the player's area), 2 LightParams,...
Definition
skyscene.hpp:60
wowlib::formats::wdl::chunks::SkySceneCondition::unk5
std::uint32_t unk5
Unknown.
Definition
skyscene.hpp:69
wowlib::formats::wdl::chunks::SkySceneCondition::unk0
std::uint32_t unk0
Unknown.
Definition
skyscene.hpp:54
wowlib::formats::wdl::chunks::SkySceneObjectParams
One sky-scene object params record (an MSSF record; documented as Dragonflight+ but observed in 9....
Definition
skyscene.hpp:107
wowlib::formats::wdl::chunks::SkySceneObjectParams::unk1
float unk1
Unknown.
Definition
skyscene.hpp:112
wowlib::formats::wdl::chunks::SkySceneObjectParams::unk0
float unk0
Unknown.
Definition
skyscene.hpp:109
wowlib::formats::wdl::chunks::SkySceneObject
One sky-scene object (an MSSO record, Shadowlands+): a placed distant M2.
Definition
skyscene.hpp:78
wowlib::formats::wdl::chunks::SkySceneObject::unk11
std::uint32_t unk11
Unknown.
Definition
skyscene.hpp:101
wowlib::formats::wdl::chunks::SkySceneObject::rotation
C3Vector rotation
Rotation as Euler angles, radians.
Definition
skyscene.hpp:92
wowlib::formats::wdl::chunks::SkySceneObject::fdid
std::uint32_t fdid
The model FileDataID.
Definition
skyscene.hpp:86
wowlib::formats::wdl::chunks::SkySceneObject::flags
std::uint32_t flags
Flags; 0x1 means the object has an MSSF params record.
Definition
skyscene.hpp:83
wowlib::formats::wdl::chunks::SkySceneObject::unk0
std::uint32_t unk0
Unknown.
Definition
skyscene.hpp:80
wowlib::formats::wdl::chunks::SkySceneObject::translation
C3Vector translation
Translation.
Definition
skyscene.hpp:89
wowlib::formats::wdl::chunks::SkySceneObject::scale
float scale
Uniform scale.
Definition
skyscene.hpp:95
wowlib::formats::wdl::chunks::SkySceneObject::paramsIndex
std::uint32_t paramsIndex
Index into MSSF when flags has 0x1.
Definition
skyscene.hpp:98
wowlib::formats::wdl::chunks::SkyScene
One sky scene (an MSSN record, Shadowlands+), tying a SkySceneID to its condition and object ranges.
Definition
skyscene.hpp:17
wowlib::formats::wdl::chunks::SkyScene::objectIndex
std::uint16_t objectIndex
First object record in MSSO.
Definition
skyscene.hpp:31
wowlib::formats::wdl::chunks::SkyScene::unk7
std::uint32_t unk7
Unknown.
Definition
skyscene.hpp:46
wowlib::formats::wdl::chunks::SkyScene::skySceneId
std::uint32_t skySceneId
Foreign key into SkySceneXPlayerCondition (SkySceneID).
Definition
skyscene.hpp:19
wowlib::formats::wdl::chunks::SkyScene::unk5
std::uint32_t unk5
Unknown.
Definition
skyscene.hpp:40
wowlib::formats::wdl::chunks::SkyScene::conditionIndex
std::int16_t conditionIndex
First condition record in MSSC.
Definition
skyscene.hpp:25
wowlib::formats::wdl::chunks::SkyScene::objectCount
std::int16_t objectCount
Object record count.
Definition
skyscene.hpp:34
wowlib::formats::wdl::chunks::SkyScene::unk4
std::uint32_t unk4
Unknown.
Definition
skyscene.hpp:37
wowlib::formats::wdl::chunks::SkyScene::conditionCount
std::int16_t conditionCount
Condition record count.
Definition
skyscene.hpp:28
wowlib::formats::wdl::chunks::SkyScene::unk6
std::uint32_t unk6
Unknown.
Definition
skyscene.hpp:43
wowlib::formats::wdl::chunks::SkyScene::unk1
std::uint32_t unk1
Unknown; possibly the SkySceneXPlayerCondition record count.
Definition
skyscene.hpp:22
types.hpp
The binary-level math and color primitives shared across WoW file formats (wowdev....
src
wowlib
formats
wdl
chunks
skyscene.hpp
Generated by
1.17.0