/* * 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 "InstancePackets.h" #include "PacketOperators.h" namespace WorldPackets::Instance { WorldPacket const* UpdateLastInstance::Write() { _worldPacket << uint32(MapID); return &_worldPacket; } WorldPacket const* UpdateInstanceOwnership::Write() { _worldPacket << int32(IOwnInstance); return &_worldPacket; } ByteBuffer& operator<<(ByteBuffer& data, InstanceLock const& lockInfos) { data << uint64(lockInfos.InstanceID); data << uint32(lockInfos.MapID); data << uint32(lockInfos.DifficultyID); data << uint32(lockInfos.TimeRemaining); data << uint32(lockInfos.CompletedMask); data << Bits<1>(lockInfos.Locked); data << Bits<1>(lockInfos.Extended); data.FlushBits(); return data; } WorldPacket const* InstanceInfo::Write() { _worldPacket << Size(LockList); for (InstanceLock const& instanceLock : LockList) _worldPacket << instanceLock; return &_worldPacket; } WorldPacket const* InstanceReset::Write() { _worldPacket << uint32(MapID); return &_worldPacket; } WorldPacket const* InstanceResetFailed::Write() { _worldPacket << uint32(MapID); _worldPacket << Bits<2>(ResetFailedReason); _worldPacket.FlushBits(); return &_worldPacket; } WorldPacket const* InstanceSaveCreated::Write() { _worldPacket << Bits<1>(Gm); _worldPacket.FlushBits(); return &_worldPacket; } void InstanceLockResponse::Read() { _worldPacket >> Bits<1>(AcceptLock); } WorldPacket const* RaidGroupOnly::Write() { _worldPacket << Delay; _worldPacket << Reason; return &_worldPacket; } WorldPacket const* PendingRaidLock::Write() { _worldPacket << int32(TimeUntilLock); _worldPacket << uint32(CompletedMask); _worldPacket << Bits<1>(Extending); _worldPacket << Bits<1>(WarningOnly); _worldPacket.FlushBits(); return &_worldPacket; } WorldPacket const* RaidInstanceMessage::Write() { _worldPacket << int32(Type); _worldPacket << uint32(MapID); _worldPacket << uint32(DifficultyID); _worldPacket << int32(TimeLeft); _worldPacket << SizedString::BitsSize<8>(WarningMessage); _worldPacket << Bits<1>(Locked); _worldPacket << Bits<1>(Extended); _worldPacket.FlushBits(); _worldPacket << SizedString::Data(WarningMessage); return &_worldPacket; } WorldPacket const* InstanceEncounterEngageUnit::Write() { _worldPacket << Unit; _worldPacket << uint8(TargetFramePriority); return &_worldPacket; } WorldPacket const* InstanceEncounterDisengageUnit::Write() { _worldPacket << Unit; return &_worldPacket; } WorldPacket const* InstanceEncounterChangePriority::Write() { _worldPacket << Unit; _worldPacket << uint8(TargetFramePriority); return &_worldPacket; } WorldPacket const* InstanceEncounterTimerStart::Write() { _worldPacket << int32(TimeRemaining); return &_worldPacket; } WorldPacket const* InstanceEncounterObjectiveStart::Write() { _worldPacket << int32(ObjectiveID); return &_worldPacket; } WorldPacket const* InstanceEncounterObjectiveUpdate::Write() { _worldPacket << int32(ObjectiveID); _worldPacket << int32(ProgressAmount); return &_worldPacket; } WorldPacket const* InstanceEncounterObjectiveComplete::Write() { _worldPacket << int32(ObjectiveID); return &_worldPacket; } WorldPacket const* InstanceEncounterStart::Write() { _worldPacket << uint32(InCombatResCount); _worldPacket << uint32(MaxInCombatResCount); _worldPacket << uint32(CombatResChargeRecovery); _worldPacket << uint32(NextCombatResChargeTime); _worldPacket << Bits<1>(InProgress); _worldPacket.FlushBits(); return &_worldPacket; } WorldPacket const* InstanceEncounterGainCombatResurrectionCharge::Write() { _worldPacket << int32(InCombatResCount); _worldPacket << uint32(CombatResChargeRecovery); return &_worldPacket; } WorldPacket const* BossKill::Write() { _worldPacket << uint32(DungeonEncounterID); return &_worldPacket; } }