11#include <welder/vocabulary.hpp>
21 A terrain sound emitter (MCSE, 28 bytes): a SoundEntriesAdvanced foreign
22 key and a position/size pair placing an ambient sound in the cell.)")
24 [[=welder::doc("The sound entry (a SoundEntriesAdvanced foreign key).")]]
27 [[=welder::doc(
"The emitter position.")]]
30 [[=welder::doc(
"The emitter size / extents.")]]
36 static_assert(
sizeof(CWSoundEmitter) == 0x1C);
47 A pre-WotLK terrain sound emitter (MCSE, 52 bytes): a SoundEntries
48 foreign key plus the inline distance/time/loop parameters that later
49 moved into SoundEntriesAdvanced.)")
51 [[=welder::doc("Sequential emitter id, unique per map.")]]
54 [[=welder::doc(
"The sound (a SoundEntries foreign key).")]]
57 [[=welder::doc(
"The emitter position, in world coordinates.")]]
60 [[=welder::doc(
"Full-volume distance.")]]
63 [[=welder::doc(
"Audible-range distance.")]]
66 [[=welder::doc(
"Cutoff distance.")]]
69 [[=welder::doc(
"Daily start time, minutes.")]]
72 [[=welder::doc(
"Daily end time, minutes.")]]
75 [[=welder::doc(
"Emitter mode.")]]
76 std::uint16_t
mode = 0;
78 [[=welder::doc(
"Minimum loop count.")]]
81 [[=welder::doc(
"Maximum loop count.")]]
84 [[=welder::doc(
"Minimum group silence, milliseconds.")]]
87 [[=welder::doc(
"Maximum group silence, milliseconds.")]]
90 [[=welder::doc(
"Minimum concurrent play instances.")]]
93 [[=welder::doc(
"Maximum concurrent play instances.")]]
96 [[=welder::doc(
"Minimum gap between sounds, milliseconds.")]]
97 std::uint16_t interSoundGapMin = 0;
99 [[=welder::doc(
"Maximum gap between sounds, milliseconds.")]]
100 std::uint16_t interSoundGapMax = 0;
111 A doodad-set range (MWDR, Shadowlands+): an inclusive [begin, end] span
112 into the MWDS index list, selecting which WMO doodad sets a placement
115 [[=welder::doc("The first MWDS index (inclusive).")]]
116 std::uint32_t begin = 0;
117 [[=welder::doc(
"The last MWDS index (inclusive).")]]
118 std::uint32_t end = 0;
The binary-level math and color primitives shared across WoW file formats (wowdev....