mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-14 08:23:52 +00:00
feat: render equipment on other players (helmets, weapons, belts, wrists)
Other players previously appeared partially naked — only chest, legs, feet, hands, cape, and tabard rendered. Now renders full equipment: - Helmet M2 model: loads from ItemDisplayInfo.dbc with race/gender suffix, attaches at head bone (point 0/11), hides hair geoset under helm - Weapons: mainhand (attachment 1) and offhand (attachment 2) M2 models loaded from ItemDisplayInfo, with Weapon/Shield path fallback - Wrist/bracer geoset (group 8): applies when no chest sleeve overrides - Belt/waist geoset (group 18): reads GeosetGroup1 from ItemDisplayInfo - Shoulder M2 attachments deferred (separate bone attachment system) Also applied same wrist/waist geosets to NPC and character preview paths. Minimap: batch 9 individual vkUpdateDescriptorSets into single call.
This commit is contained in:
parent
50a3eb7f07
commit
0396a42beb
3 changed files with 223 additions and 10 deletions
|
|
@ -623,11 +623,27 @@ bool CharacterPreview::applyEquipment(const std::vector<game::EquipmentItem>& eq
|
|||
uint32_t gg = getGeosetGroup(did, 0);
|
||||
if (gg > 0) geosetGloves = static_cast<uint16_t>(401 + gg);
|
||||
}
|
||||
// Wrists/Bracers → group 8 (sleeves, only if chest/shirt didn't set it)
|
||||
{
|
||||
uint32_t did = findDisplayId({9});
|
||||
if (did != 0 && geosetSleeves == 801) {
|
||||
uint32_t gg = getGeosetGroup(did, 0);
|
||||
if (gg > 0) geosetSleeves = static_cast<uint16_t>(801 + gg);
|
||||
}
|
||||
}
|
||||
// Belt → group 18 (buckle)
|
||||
uint16_t geosetBelt = 0;
|
||||
{
|
||||
uint32_t did = findDisplayId({6});
|
||||
uint32_t gg = getGeosetGroup(did, 0);
|
||||
if (gg > 0) geosetBelt = static_cast<uint16_t>(1801 + gg);
|
||||
}
|
||||
|
||||
geosets.insert(geosetGloves);
|
||||
geosets.insert(geosetBoots);
|
||||
geosets.insert(geosetSleeves);
|
||||
geosets.insert(geosetPants);
|
||||
if (geosetBelt != 0) geosets.insert(geosetBelt);
|
||||
geosets.insert(hasInvType({16}) ? 1502 : 1501); // Cloak mesh toggle (visual may still be limited)
|
||||
if (hasInvType({19})) geosets.insert(1201); // Tabard mesh toggle
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue