fix(combat): add diagnostic logging to handleAttackerStateUpdate

Log parse failures with remaining packet size and successful parses with
attacker/target/player GUIDs, damage, and callback status to diagnose
why meleeSwingCallback is never invoked during auto-attack.
This commit is contained in:
Kelsi 2026-04-05 18:54:01 -07:00
parent 53639f9592
commit e26ed39da8

View file

@ -433,10 +433,19 @@ void CombatHandler::handleAttackStop(network::Packet& packet) {
void CombatHandler::handleAttackerStateUpdate(network::Packet& packet) {
AttackerStateUpdateData data;
if (!owner_.packetParsers_->parseAttackerStateUpdate(packet, data)) return;
if (!owner_.packetParsers_->parseAttackerStateUpdate(packet, data)) {
LOG_WARNING("ATTACKER_STATE_UPDATE: parse failed, remaining=", packet.getRemainingSize());
return;
}
bool isPlayerAttacker = (data.attackerGuid == owner_.playerGuid);
bool isPlayerTarget = (data.targetGuid == owner_.playerGuid);
LOG_WARNING("ATTACKER_STATE_UPDATE: attacker=0x", std::hex, data.attackerGuid,
" target=0x", data.targetGuid, " player=0x", owner_.playerGuid, std::dec,
" isPlayerAttacker=", isPlayerAttacker, " isPlayerTarget=", isPlayerTarget,
" dmg=", data.totalDamage, " hasCallback=", (owner_.meleeSwingCallback_ ? 1 : 0));
if (!isPlayerAttacker && !isPlayerTarget) return; // Not our combat
if (isPlayerAttacker) {