/* * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "CombatPackets.h" #include "PacketOperators.h" namespace WorldPackets::Combat { void AttackSwing::Read() { _worldPacket >> Victim; } WorldPacket const* AttackStart::Write() { _worldPacket << Attacker; _worldPacket << Victim; return &_worldPacket; } WorldPacket const* SAttackStop::Write() { _worldPacket << Attacker; _worldPacket << Victim; _worldPacket << Bits<1>(NowDead); _worldPacket.FlushBits(); return &_worldPacket; } WorldPacket const* ThreatUpdate::Write() { _worldPacket << UnitGUID; _worldPacket << Size(ThreatList); for (ThreatInfo const& threatInfo : ThreatList) { _worldPacket << threatInfo.UnitGUID; _worldPacket << int64(threatInfo.Threat); } return &_worldPacket; } WorldPacket const* HighestThreatUpdate::Write() { _worldPacket << UnitGUID; _worldPacket << HighestThreatGUID; _worldPacket << Size(ThreatList); for (ThreatInfo const& threatInfo : ThreatList) { _worldPacket << threatInfo.UnitGUID; _worldPacket << int64(threatInfo.Threat); } return &_worldPacket; } WorldPacket const* ThreatRemove::Write() { _worldPacket << UnitGUID; _worldPacket << AboutGUID; return &_worldPacket; } WorldPacket const* AIReaction::Write() { _worldPacket << UnitGUID; _worldPacket << Reaction; return &_worldPacket; } WorldPacket const* AttackSwingError::Write() { _worldPacket << Bits<3>(Reason); _worldPacket.FlushBits(); return &_worldPacket; } WorldPacket const* PowerUpdate::Write() { _worldPacket << Guid; _worldPacket << Size(Powers); for (PowerUpdatePower const& power : Powers) { _worldPacket << uint8(power.PowerType); _worldPacket << int32(power.Power); } return &_worldPacket; } WorldPacket const* InterruptPowerRegen::Write() { _worldPacket << int8(PowerType); return &_worldPacket; } void SetSheathed::Read() { _worldPacket >> CurrentSheathState; _worldPacket >> Bits<1>(Animate); } WorldPacket const* CancelAutoRepeat::Write() { _worldPacket << Guid; return &_worldPacket; } WorldPacket const* HealthUpdate::Write() { _worldPacket << Guid; _worldPacket << int64(Health); return &_worldPacket; } WorldPacket const* ThreatClear::Write() { _worldPacket << UnitGUID; return &_worldPacket; } WorldPacket const* PvPCredit::Write() { _worldPacket << int32(OriginalHonor); _worldPacket << int32(Honor); _worldPacket << Target; _worldPacket << int8(Rank); return &_worldPacket; } WorldPacket const* BreakTarget::Write() { _worldPacket << UnitGUID; return &_worldPacket; } }