Core/Players: Support race and faction changes for new races (#29755)

This commit is contained in:
Razmataz
2024-02-25 17:49:20 +00:00
committed by GitHub
parent 6c15fb00e5
commit 31236de396

View File

@@ -2274,7 +2274,8 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa
trans->Append(stmt);
// Race specific languages
if (factionChangeInfo->RaceID != RACE_ORC && factionChangeInfo->RaceID != RACE_HUMAN && factionChangeInfo->RaceID != RACE_MAGHAR_ORC)
std::array<uint8, 4> const racesWithoutSpecificLanguages = { RACE_ORC, RACE_HUMAN, RACE_MAGHAR_ORC, RACE_KUL_TIRAN };
if (std::find(racesWithoutSpecificLanguages.begin(), racesWithoutSpecificLanguages.end(), factionChangeInfo->RaceID) == racesWithoutSpecificLanguages.end())
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
stmt->setUInt64(0, lowGuid);
@@ -2290,6 +2291,7 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa
stmt->setUInt16(1, 759);
break;
case RACE_GNOME:
case RACE_MECHAGNOME:
stmt->setUInt16(1, 313);
break;
case RACE_NIGHTELF:
@@ -2306,6 +2308,7 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa
stmt->setUInt16(1, 115);
break;
case RACE_TROLL:
case RACE_ZANDALARI_TROLL:
stmt->setUInt16(1, 315);
break;
case RACE_BLOODELF:
@@ -2318,6 +2321,17 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPa
case RACE_NIGHTBORNE:
stmt->setUInt16(1, 2464);
break;
case RACE_VULPERA:
stmt->setUInt16(1, 2776);
break;
case LANG_PANDAREN_ALLIANCE:
case LANG_PANDAREN_HORDE:
stmt->setUInt16(1, 905);
break;
case RACE_DRACTHYR_ALLIANCE:
case RACE_DRACTHYR_HORDE:
stmt->setUInt16(1, 138);
break;
default:
TC_LOG_ERROR("entities.player", "Could not find language data for race ({}).", factionChangeInfo->RaceID);
SendCharFactionChange(CHAR_CREATE_ERROR, factionChangeInfo.get());