diff options
author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2020-04-26 23:10:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-26 22:10:07 +0200 |
commit | 332b2f1f538e830701e48d8f1574911149c59619 (patch) | |
tree | e13453304e212bf8bdbd90f4075b9eb00b63a71e /src/server/game/Handlers/MiscHandler.cpp | |
parent | 84c91cdef9185527ef3f856e185d5c7acf8be8b8 (diff) |
Core/PacketIO: updated CMSG_TOGGLE_PVP opcode (#24476)
* Core/PacketIO: updated CMSG_TOGGLE_PVP opcode
* Use Optional<T>.
Restore ApplyModFlag() code.
* Fix no-pch build
Co-authored-by: jackpoz <giacomopoz@gmail.com>
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 8a7250061cd..a5f8b7a2da7 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -442,15 +442,13 @@ void WorldSession::HandleLogoutCancelOpcode(WorldPacket& /*recvData*/) } } -void WorldSession::HandleTogglePvP(WorldPacket& recvData) +void WorldSession::HandleTogglePvP(WorldPackets::Misc::TogglePvP& togglePvP) { // this opcode can be used in two ways: Either set explicit new status or toggle old status - if (recvData.size() == 1) + if (togglePvP.Enable) { - bool newPvPStatus; - recvData >> newPvPStatus; - GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_IN_PVP, newPvPStatus); - GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_TIMER, !newPvPStatus); + GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_IN_PVP, *togglePvP.Enable); + GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_PVP_TIMER, !*togglePvP.Enable); } else { @@ -468,9 +466,6 @@ void WorldSession::HandleTogglePvP(WorldPacket& recvData) if (!GetPlayer()->pvpInfo.IsHostile && GetPlayer()->IsPvP()) GetPlayer()->pvpInfo.EndTimer = GameTime::GetGameTime() + 300; // start toggle-off } - - //if (OutdoorPvP* pvp = _player->GetOutdoorPvP()) - // pvp->HandlePlayerActivityChanged(_player); } void WorldSession::HandleZoneUpdateOpcode(WorldPacket& recvData) |