Fix character creation for expansion-filtered servers (Turtle WoW)

Filter races/classes in character creation screen by expansion profile
constraints, add 10s server response timeout, and reset Warden crypto
state on disconnect so reconnections use the correct session key.
This commit is contained in:
Kelsi 2026-02-14 00:57:33 -08:00
parent 7d115aaa70
commit c4962400c0
4 changed files with 144 additions and 38 deletions

View file

@ -150,6 +150,12 @@ bool GameHandler::connect(const std::string& host,
wardenGateNextStatusLog_ = 2.0f;
wardenPacketsAfterGate_ = 0;
wardenCharEnumBlockedLogged_ = false;
wardenCrypto_.reset();
wardenState_ = WardenState::WAIT_MODULE_USE;
wardenModuleHash_.clear();
wardenModuleKey_.clear();
wardenModuleSize_ = 0;
wardenModuleData_.clear();
// Generate random client seed
this->clientSeed = generateClientSeed();
@ -200,6 +206,12 @@ void GameHandler::disconnect() {
wardenGateNextStatusLog_ = 2.0f;
wardenPacketsAfterGate_ = 0;
wardenCharEnumBlockedLogged_ = false;
wardenCrypto_.reset();
wardenState_ = WardenState::WAIT_MODULE_USE;
wardenModuleHash_.clear();
wardenModuleKey_.clear();
wardenModuleSize_ = 0;
wardenModuleData_.clear();
setState(WorldState::DISCONNECTED);
LOG_INFO("Disconnected from world server");
}