aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 149b0ad914a..804f3f4109f 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -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());