fix(rendering): filter player hair geosets via CharHairGeosets.dbc

buildDefaultPlayerGeosets() was inserting all submeshIds 0-99 into
activeGeosets, showing every hair variation simultaneously. Now uses
the hairGeosetMap_ (from CharHairGeosets.dbc) to select only the
correct hair scalp geoset for the player's race/sex/style, matching
the existing NPC geoset filtering logic in EntitySpawner.
This commit is contained in:
Kelsi 2026-04-03 22:43:37 -07:00
parent 5468a93f2e
commit f79395788a
3 changed files with 62 additions and 11 deletions

View file

@ -63,7 +63,8 @@ public:
void compositePlayerSkin(uint32_t modelSlotId, const PlayerTextureInfo& texInfo);
// Build default active geosets for player character
std::unordered_set<uint16_t> buildDefaultPlayerGeosets(uint8_t hairStyleId, uint8_t facialId);
std::unordered_set<uint16_t> buildDefaultPlayerGeosets(uint8_t raceId, uint8_t sexId,
uint8_t hairStyleId, uint8_t facialId);
// Equipment weapon loading (reads inventory, attaches weapon M2 models)
void loadEquippedWeapons();