28void UpdatePosition(VignetteData& vignette,
WorldObject const* owner)
33 vignette.WMOGroupID = wmoLocation->GroupId;
34 vignette.WMODoodadPlacementID = wmoLocation->UniqueId;
38template<WorldPackets::Vignette::VignetteDataSet WorldPackets::Vignette::VignetteUpdate::* Field>
39void SendVignetteUpdate(VignetteData
const& vignette,
WorldObject const* owner)
45 vignette.FillPacket(vignetteUpdate.*
Field);
46 vignetteUpdate.
Write();
48 auto sender = [&](
Player const* receiver)
50 if (
CanSee(receiver, vignette))
51 receiver->SendDirectMessage(vignetteUpdate.
GetRawPacket());
74 std::unique_ptr<VignetteData> vignette = std::make_unique<VignetteData>();
76 vignette->Object = owner->
GetGUID();
78 vignette->Data = vignetteData;
80 UpdatePosition(*vignette, owner);
85 SendVignetteUpdate<&WorldPackets::Vignette::VignetteUpdate::Added>(*vignette, owner);
92 UpdatePosition(vignette, owner);
97 SendVignetteUpdate<&WorldPackets::Vignette::VignetteUpdate::Updated>(vignette, owner);
DB2Storage< PlayerConditionEntry > sPlayerConditionStore("PlayerCondition.db2", &PlayerConditionLoadInfo::Instance)
static bool IsPlayerMeetingCondition(Player const *player, PlayerConditionEntry const *condition)
Class used to access individual fields of database query result.
void RemoveInfiniteAOIVignette(Vignettes::VignetteData *vignette)
void AddInfiniteAOIVignette(Vignettes::VignetteData *vignette)
ObjectGuid::LowType GenerateLowGuid()
static ObjectGuid GetGUID(Object const *o)
bool IsQuestRewarded(uint32 quest_id) const
constexpr uint32 GetMapId() const
virtual void SendMessageToSet(WorldPacket const *data, bool self) const
WmoLocation const * GetCurrentWmo() const
float GetVisibilityRange() const
WorldPacket const * GetRawPacket() const
WorldPacket const * Write() override
std::vector< ObjectGuid > Removed
std::unique_ptr< VignetteData > Create(VignetteEntry const *vignetteData, WorldObject const *owner)
void Update(VignetteData &vignette, WorldObject const *owner)
bool CanSee(Player const *player, VignetteData const &vignette)
void Remove(VignetteData &vignette, WorldObject const *owner)
static void VisitWorldObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr void GetPosition(float &x, float &y) const
uint32 VisibleTrackingQuestID
EnumFlag< VignetteFlags > GetFlags() const
bool IsInfiniteAOI() const
VignetteEntry const * Data
uint32 WMODoodadPlacementID
void FillPacket(WorldPackets::Vignette::VignetteDataSet &dataSet) const
std::vector< ObjectGuid > IDs
std::vector< VignetteData > Data
TaggedPosition<::Position::XYZ > Position
uint32 WMODoodadPlacementID