diff --git a/src/ui/character_create_screen.cpp b/src/ui/character_create_screen.cpp index ecd81ce8..848e703b 100644 --- a/src/ui/character_create_screen.cpp +++ b/src/ui/character_create_screen.cpp @@ -210,6 +210,22 @@ void CharacterCreateScreen::updateAppearanceRanges() { maxHairColor = hairColorMax; if (hairColor > maxHairColor) hairColor = maxHairColor; } + int facialMax = -1; + auto facialDbc = assetManager_->loadDBC("CharacterFacialHairStyles.dbc"); + if (facialDbc) { + for (uint32_t r = 0; r < facialDbc->getRecordCount(); r++) { + uint32_t raceId = facialDbc->getUInt32(r, 1); + uint32_t sexId = facialDbc->getUInt32(r, 2); + if (raceId != targetRaceId || sexId != targetSexId) continue; + uint32_t variation = facialDbc->getUInt32(r, 3); + facialMax = std::max(facialMax, static_cast(variation)); + } + } + if (facialMax >= 0) { + maxFacialHair = facialMax; + } else if (targetSexId == 1) { + maxFacialHair = 0; + } if (facialHair > maxFacialHair) { facialHair = maxFacialHair; }