12#include <welder/vocabulary.hpp>
20 =welder::doc(
"WMO placement flag bits (SMMapObjDef.flags).")
23 "A destroyable, server-controllable building (e.g. the "
24 "DeathknightStart tower).")]] = 0x1,
26 welder::doc(
"Also load the _LOD1 WMO, selected by distance (WoD+).")]] =
28 HasScale [[=welder::doc(
"The scale field is engaged: scale / 1024 applies "
29 "(Legion+; otherwise 1.0).")]] = 0x4,
31 "name_id is a FileDataID to load directly, not a name-table "
32 "index (Legion+).")]] = 0x8,
34 "Doodad set indices come from the ADT MWDS chunk "
35 "(Shadowlands+).")]] = 0x80
41 =welder::doc(
"M2 placement flag bits (SMDoodadDef.flags).")
44 "Sets the internal WDOODADDEF 0x800 flag; meaning unknown "
45 "(biodome).")]] = 0x1,
46 Shrubbery [[=welder::doc(
"Shrubbery; not checked by 6.0.1+ clients.")]] = 0x2,
47 Unk4 [[=welder::doc(
"Unknown (Legion+).")]] = 0x4,
48 Unk8 [[=welder::doc(
"Unknown (Legion+).")]] = 0x8,
50 welder::doc(
"Unknown (Shadowlands+); sets flag 0x4 on the PVS doodad.")]]
52 LiquidKnown [[=welder::doc(
"SMDoodadDef::Flag_liquidKnown (Legion+).")]] = 0x20,
54 "name_id is a FileDataID to load directly, not an MMID "
55 "index (Legion+).")]] = 0x40,
56 Unk100 [[=welder::doc(
"Unknown (Legion+).")]] = 0x100,
64 A WMO placement (the 64-byte MODF record of WDT, WDL and ADT): which
65 object, where, and how it is instanced.)")
68 R"(The object: an MWID/MWMO name-table reference, or a FileDataID
69 when flags has EntryIsFdid (Legion+). The WDT global-WMO
70 record ignores it and uses the MWMO content.)")]]
74 "Unique instance id across the whole map (WDT global-WMO records "
75 "leave it unused).")]]
78 [[=welder::doc(
"Position, in the map's placement coordinate system.")]]
81 [[=welder::doc(
"Rotation as Euler angles, degrees.")]]
85 "The transformed object's bounding box (position plus the rotated "
86 "extents); culling and collision use it.")]]
89 [[=welder::doc(
"Flags; MapObjDefFlags bits.")]]
93 "The WMO doodad set shown by this instance (MODS index, or MWDR when "
94 "use_sets_from_mwds is set).")]]
95 std::uint16_t doodadSet = 0;
97 [[=welder::doc(
"The WMO name set (renames the same model per instance).")]]
98 std::uint16_t nameSet = 0;
101 "Scale, 1024 = 1.0, engaged by the has_scale flag (Legion+); padding "
102 "in older clients.")]]
103 std::uint16_t scale = 0;
111 An M2 (doodad) placement (the 36-byte MDDF record of ADT, reused by the
112 WDL MLDD low-resolution set): which model, where, and at what scale.)")
115 "The model: an MMID name-table reference, or a FileDataID when flags "
116 "has entry_is_fdid (Legion+; WDL MLDD entries are always "
118 std::uint32_t nameId = 0;
120 [[=welder::doc(
"Unique instance id across the whole map.")]]
121 std::uint32_t uniqueId = 0;
123 [[=welder::doc(
"Position, in the map's placement coordinate system.")]]
126 [[=welder::doc(
"Rotation as Euler angles, degrees.")]]
129 [[=welder::doc(
"Scale, 1024 = 1.0.")]]
130 std::uint16_t scale = 1024;
132 [[=welder::doc(
"Flags; DoodadDefFlags bits.")]]
The binary-level math and color primitives shared across WoW file formats (wowdev....