12#include <welder/vocabulary.hpp>
23 =welder::doc(
"One MFOG entry: a fog volume with regular and under-water "
32 =welder::doc("One fog band: end distance, start scalar and color.")]]
34 [[=welder::doc(
"Distance at which visibility ceases.")]]
37 [[=welder::doc(
"Start = end * start_scalar (0..1).")]]
40 [[=welder::doc(
"Fog color.")]]
44 [[=welder::doc(
"0x1: infinite radius (interior/exterior blend fog).")]]
47 [[=welder::doc(
"Fog volume center.")]]
50 [[=welder::doc(
"Inner radius (full fog).")]]
53 [[=welder::doc(
"Outer radius (fog starts).")]]
56 [[=welder::doc(
"The regular fog band.")]]
59 [[=welder::doc(
"The under-water fog band.")]]
63 static_assert(
sizeof(
SMOFog) == 0x30);
67 =welder::doc(
"One MFED entry (9.0+): fog extra data; same count as MFOG.")
69 [[=welder::doc(
"The doodad set this fog applies to.")]]
73 [[=welder::mark::exclude]] std::array<std::uint8_t, 14>
unknown{};
76 static_assert(
sizeof(
FogExtra) == 0x10);
83 One ambient volume (MAVD, 8.3+) - a spherical region overriding the
84 root ambient color - or a global ambient entry (MAVG), which shares
85 the layout with position/start/end zeroed.)")
87 [[=welder::doc("Volume center (zero in MAVG).")]]
90 [[=welder::doc(
"Inner radius (zero in MAVG).")]]
93 [[=welder::doc(
"Outer radius (zero in MAVG).")]]
96 [[=welder::doc(
"Primary ambient color; overrides the MOHD ambient.")]]
99 [[=welder::doc(
"Secondary ambient color.")]]
102 [[=welder::doc(
"Tertiary ambient color.")]]
105 [[=welder::doc(
"0x1: blend color_1 and color_3.")]]
106 std::uint32_t flags = 0;
108 [[=welder::doc(
"The doodad set this volume applies to.")]]
112 [[=welder::mark::exclude]] std::array<std::uint8_t, 10>
unknown{};
120 "One MBVD entry (8.3+): a box-shaped ambient volume bounded by "
121 "six planes. Only read when MAVG or MAVD is present.")
123 [[=welder::doc(
"The six bounding planes (position and start combined).")]]
126 [[=welder::doc(
"Outer distance.")]]
129 [[=welder::doc(
"Primary ambient color.")]]
132 [[=welder::doc(
"Secondary ambient color.")]]
135 [[=welder::doc(
"Tertiary ambient color.")]]
138 [[=welder::doc(
"0x1: blend color_2 and color_3.")]]
139 std::uint32_t flags = 0;
141 [[=welder::doc(
"The doodad set this volume applies to.")]]
142 std::uint16_t doodadSetId = 0;
145 [[=welder::mark::exclude]] std::array<std::uint8_t, 10> unknown{};
148 static_assert(
sizeof(AmbientBoxVolume) == 0x80);
Flag-testing convenience for the binary formats' bit-mask enums.
Binding-language identities welder's core does not name.
constexpr welder::lang Cs
C#/.NET — the welder-csharp rod's identity (user-range slot 0), respelled for wowlib's annotation sit...
The binary-level math and color primitives shared across WoW file formats (wowdev....