Clamp facial hair using DBC

This commit is contained in:
Kelsi 2026-02-05 18:38:12 -08:00
parent 85e73a2f24
commit b2a1fbc42c

View file

@ -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<int>(variation));
}
}
if (facialMax >= 0) {
maxFacialHair = facialMax;
} else if (targetSexId == 1) {
maxFacialHair = 0;
}
if (facialHair > maxFacialHair) {
facialHair = maxFacialHair;
}