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 886f4daf2e
commit 5b08e47941
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");
}