aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Garrison
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Garrison')
-rw-r--r--src/server/game/Garrison/Garrison.cpp13
-rw-r--r--src/server/game/Garrison/Garrison.h4
2 files changed, 6 insertions, 11 deletions
diff --git a/src/server/game/Garrison/Garrison.cpp b/src/server/game/Garrison/Garrison.cpp
index d71fe4d7474..6a9561646b6 100644
--- a/src/server/game/Garrison/Garrison.cpp
+++ b/src/server/game/Garrison/Garrison.cpp
@@ -301,7 +301,7 @@ void Garrison::Leave() const
GarrisonFactionIndex Garrison::GetFaction() const
{
- return _owner->GetTeam() == HORDE ? GARRISON_FACTION_INDEX_HORDE : GARRISON_FACTION_INDEX_ALLIANCE;
+ return GetFaction(_owner->GetTeam());
}
std::vector<Garrison::Plot*> Garrison::GetPlots()
@@ -530,20 +530,15 @@ Garrison::Follower const* Garrison::GetFollower(uint64 dbId) const
return nullptr;
}
-void Garrison::SendInfo()
+void Garrison::BuildInfoPacket(WorldPackets::Garrison::GarrisonInfo& garrison) const
{
- WorldPackets::Garrison::GetGarrisonInfoResult garrisonInfo;
- garrisonInfo.FactionIndex = GetFaction();
- garrisonInfo.Garrisons.emplace_back();
-
- WorldPackets::Garrison::GarrisonInfo& garrison = garrisonInfo.Garrisons.back();
garrison.GarrTypeID = GetType();
garrison.GarrSiteID = _siteLevel->GarrSiteID;
garrison.GarrSiteLevelID = _siteLevel->ID;
garrison.NumFollowerActivationsRemaining = _followerActivationsRemainingToday;
for (auto& p : _plots)
{
- Plot& plot = p.second;
+ Plot const& plot = p.second;
garrison.Plots.push_back(&plot.PacketInfo);
if (plot.BuildingInfo.PacketInfo)
garrison.Buildings.push_back(&*plot.BuildingInfo.PacketInfo);
@@ -551,8 +546,6 @@ void Garrison::SendInfo()
for (auto const& p : _followers)
garrison.Followers.push_back(&p.second.PacketInfo);
-
- _owner->SendDirectMessage(garrisonInfo.Write());
}
void Garrison::SendRemoteInfo() const
diff --git a/src/server/game/Garrison/Garrison.h b/src/server/game/Garrison/Garrison.h
index 3c895fef38a..65c08e5ab10 100644
--- a/src/server/game/Garrison/Garrison.h
+++ b/src/server/game/Garrison/Garrison.h
@@ -23,6 +23,7 @@
#include "GarrisonPackets.h"
#include "Optional.h"
#include "QuaternionData.h"
+#include "SharedDefines.h"
#include <unordered_map>
class GameObject;
@@ -228,6 +229,7 @@ public:
void Enter() const;
void Leave() const;
+ static constexpr GarrisonFactionIndex GetFaction(Team team) { return team == HORDE ? GARRISON_FACTION_INDEX_HORDE : GARRISON_FACTION_INDEX_ALLIANCE; }
GarrisonFactionIndex GetFaction() const;
GarrisonType GetType() const { return GARRISON_TYPE_GARRISON; }
GarrSiteLevelEntry const* GetSiteLevel() const { return _siteLevel; }
@@ -259,7 +261,7 @@ public:
return count;
}
- void SendInfo();
+ void BuildInfoPacket(WorldPackets::Garrison::GarrisonInfo& garrison) const;
void SendRemoteInfo() const;
void SendBlueprintAndSpecializationData();
void SendMapData(Player* receiver) const;