Handle SMSG_CHARACTER_LOGIN_FAILED (0x041) for AzerothCore/Playerbot compatibility

Previously this opcode was unrecognised and silently dropped, leaving the
client stuck in ENTERING_WORLD with no feedback when the server rejected a
login (duplicate session, world down, disabled race/class, etc.). Now we
decode the LoginFailureReason byte, reset state to CHAR_LIST_RECEIVED so
the player can retry, and surface a red error message on the character screen
via the new CharLoginFailCallback. Also adds isError colour support to
CharacterScreen::setStatus so failures show in red and successes in green.
This commit is contained in:
Kelsi 2026-02-17 13:59:29 -08:00
parent 36fc1df706
commit 7cf060a9f6
11 changed files with 61 additions and 4 deletions

View file

@ -47,6 +47,7 @@ enum class LogicalOpcode : uint16_t {
SMSG_CHAR_CREATE,
SMSG_CHAR_ENUM,
SMSG_CHAR_DELETE,
SMSG_CHARACTER_LOGIN_FAILED,
SMSG_PONG,
SMSG_LOGIN_VERIFY_WORLD,
SMSG_LOGIN_SETTIMESPEED,