diff options
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 16 |
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()); |