| 96 | std::set<uint64> plr_list; |
| 97 | bool i_toPossessor; |
| 98 | float i_dist; |
| 99 | Deliverer(WorldObject &src, WorldPacket *msg, bool to_possessor, float dist = 0.0f) : i_source(src), i_message(msg), i_toPossessor(to_possessor), i_dist(dist) {} |
| 100 | void Visit(PlayerMapType &m); |
| 101 | void Visit(CreatureMapType &m); |
| 102 | virtual void VisitObject(Player* plr) = 0; |
| 103 | void SendPacket(Player* plr); |
| 104 | template<class SKIP> void Visit(GridRefManager<SKIP> &) {} |
| 105 | }; |
| 106 | |
| 107 | struct TRINITY_DLL_DECL MessageDeliverer : public Deliverer |
| 108 | { |
97 | | MessageDeliverer(Player &pl, WorldPacket *msg, bool to_self) : i_player(pl), i_message(msg), i_toSelf(to_self) {} |
98 | | void Visit(PlayerMapType &m); |
99 | | template<class SKIP> void Visit(GridRefManager<SKIP> &) {} |
100 | | }; |
101 | | |
102 | | struct TRINITY_DLL_DECL ObjectMessageDeliverer |
103 | | { |
104 | | WorldPacket *i_message; |
105 | | explicit ObjectMessageDeliverer(WorldPacket *msg) : i_message(msg) {} |
106 | | void Visit(PlayerMapType &m); |
107 | | template<class SKIP> void Visit(GridRefManager<SKIP> &) {} |
108 | | }; |
109 | | |
110 | | struct TRINITY_DLL_DECL MessageDistDeliverer |
111 | | { |
112 | | Player &i_player; |
113 | | WorldPacket *i_message; |
| 110 | MessageDeliverer(Player &pl, WorldPacket *msg, bool to_possessor, bool to_self) : Deliverer(pl, msg, to_possessor), i_toSelf(to_self) {} |
| 111 | void VisitObject(Player* plr); |
| 112 | }; |
| 113 | |
| 114 | struct TRINITY_DLL_DECL ObjectMessageDeliverer : public Deliverer |
| 115 | { |
| 116 | explicit ObjectMessageDeliverer(WorldObject &src, WorldPacket *msg, bool to_possessor) : Deliverer(src, msg, to_possessor) {} |
| 117 | void VisitObject(Player* plr) { SendPacket(plr); } |
| 118 | }; |
| 119 | |
| 120 | struct TRINITY_DLL_DECL MessageDistDeliverer : public Deliverer |
| 121 | { |
116 | | float i_dist; |
117 | | MessageDistDeliverer(Player &pl, WorldPacket *msg, float dist, bool to_self, bool ownTeamOnly) : i_player(pl), i_message(msg), i_dist(dist), i_toSelf(to_self), i_ownTeamOnly(ownTeamOnly) {} |
118 | | void Visit(PlayerMapType &m); |
119 | | template<class SKIP> void Visit(GridRefManager<SKIP> &) {} |
120 | | }; |
121 | | |
122 | | struct TRINITY_DLL_DECL ObjectMessageDistDeliverer |
123 | | { |
124 | | WorldObject &i_object; |
125 | | WorldPacket *i_message; |
126 | | float i_dist; |
127 | | ObjectMessageDistDeliverer(WorldObject &obj, WorldPacket *msg, float dist) : i_object(obj), i_message(msg), i_dist(dist) {} |
128 | | void Visit(PlayerMapType &m); |
129 | | template<class SKIP> void Visit(GridRefManager<SKIP> &) {} |
| 124 | MessageDistDeliverer(Player &pl, WorldPacket *msg, bool to_possessor, float dist, bool to_self, bool ownTeamOnly) : Deliverer(pl, msg, to_possessor, dist), i_toSelf(to_self), i_ownTeamOnly(ownTeamOnly) {} |
| 125 | void VisitObject(Player* plr); |
| 126 | }; |
| 127 | |
| 128 | struct TRINITY_DLL_DECL ObjectMessageDistDeliverer : public Deliverer |
| 129 | { |
| 130 | ObjectMessageDistDeliverer(WorldObject &obj, WorldPacket *msg, bool to_possessor, float dist) : Deliverer(obj, msg, to_possessor, dist) {} |
| 131 | void VisitObject(Player* plr) { SendPacket(plr); } |