diff options
author | Razmataz <git@mataz.dev> | 2024-02-25 17:49:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-25 18:49:20 +0100 |
commit | 31236de396811afae2c67810b70dc671e69bc8dc (patch) | |
tree | 4bc751103fd90d064781c9c7e6efd2991bd32c89 | |
parent | 6c15fb00e5b7cf39cd6dc97c302418710bc21212 (diff) |
Core/Players: Support race and faction changes for new races (#29755)
-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()); |