diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index ba2adfc23b..90e84bbce7 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -34,6 +34,7 @@ #include "ObjectMgr.h" #include "WorldPacket.h" #include "WorldSession.h" +#include "WorldStatePackets.h" #include Battlefield::Battlefield() @@ -451,6 +452,17 @@ void Battlefield::SendWarning(uint8 id, WorldObject const* target /*= nullptr*/) sCreatureTextMgr->SendChat(stalker, id, target); } +void Battlefield::SendInitWorldStatesTo(Player* player) +{ + WorldPackets::WorldState::InitWorldStates packet; + packet.MapID = m_MapId; + packet.AreaID = m_ZoneId; + packet.SubareaID = player->GetAreaId(); + FillInitialWorldStates(packet); + + player->SendDirectMessage(packet.Write()); +} + void Battlefield::SendUpdateWorldState(uint32 field, uint32 value) { for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i) diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index 3f9f7d9f79..d968c92cbd 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -221,6 +221,8 @@ class TC_GAME_API Battlefield : public ZoneScript /// Call this to init the Battlefield virtual bool SetupBattlefield() { return true; } + void SendInitWorldStatesTo(Player* player); + /// Update data of a worldstate to all players present in zone void SendUpdateWorldState(uint32 field, uint32 value); diff --git a/src/server/scripts/Battlefield/BattlefieldTB.cpp b/src/server/scripts/Battlefield/BattlefieldTB.cpp index 809a8b9ebf..51b0e4cf31 100644 --- a/src/server/scripts/Battlefield/BattlefieldTB.cpp +++ b/src/server/scripts/Battlefield/BattlefieldTB.cpp @@ -587,18 +587,6 @@ void BattlefieldTB::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSt packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_KEEP_HORDE), int32(GetDefenderTeam() == TEAM_HORDE ? 1 : 0)); } -void BattlefieldTB::SendInitWorldStatesTo(Player* player) -{ - WorldPackets::WorldState::InitWorldStates packet; - packet.AreaID = m_ZoneId; - //packet.SubareaID = m_ZoneId; - packet.MapID = m_MapId; - - FillInitialWorldStates(packet); - - player->SendDirectMessage(packet.Write()); -} - void BattlefieldTB::SendInitWorldStatesToAll() { // Save diff --git a/src/server/scripts/Battlefield/BattlefieldTB.h b/src/server/scripts/Battlefield/BattlefieldTB.h index 3778228086..6bd36a3bd8 100644 --- a/src/server/scripts/Battlefield/BattlefieldTB.h +++ b/src/server/scripts/Battlefield/BattlefieldTB.h @@ -374,7 +374,6 @@ class BattlefieldTB : public Battlefield bool SetupBattlefield() override; - void SendInitWorldStatesTo(Player* player); void SendInitWorldStatesToAll() override; void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*data*/) override; diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp index 46ef7e6408..51985fc5e1 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.cpp +++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp @@ -1170,25 +1170,6 @@ void BattlefieldWG::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSt workshop->FillInitialWorldStates(packet); } -void BattlefieldWG::SendInitWorldStatesTo(Player* player) -{ - WorldPacket data(SMSG_INIT_WORLD_STATES, 4 + 4 + 4 + 2 + (14 + WG_MAX_OBJ + WG_MAX_WORKSHOP) * 8); - - WorldPackets::WorldState::InitWorldStates packet; - packet.AreaID = m_ZoneId; - //packet.SubareaID = m_ZoneId; - packet.MapID = m_MapId; - - data << uint32(m_MapId); - data << uint32(m_ZoneId); - data << uint32(0); // AreaId - data << uint16(14 + BuildingsInZone.size() + Workshops.size()); // Number of fields - - FillInitialWorldStates(packet); - - player->SendDirectMessage(packet.Write()); -} - void BattlefieldWG::SendInitWorldStatesToAll() { for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team) diff --git a/src/server/scripts/Battlefield/BattlefieldWG.h b/src/server/scripts/Battlefield/BattlefieldWG.h index 598de2ae3b..3d5f14fb6b 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.h +++ b/src/server/scripts/Battlefield/BattlefieldWG.h @@ -338,7 +338,6 @@ class BattlefieldWG : public Battlefield void UpdateVehicleCountWG(); void UpdateCounterVehicle(bool init); - void SendInitWorldStatesTo(Player* player); void SendInitWorldStatesToAll() override; void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*data*/) override;