@@ -162,18 +162,15 @@ size_t CPlayerManager::BroadcastOnlyJoined(const CPacket& Packet, CPlayer* pSkip
162162 CSendList sendList;
163163
164164 // Send the packet to each ingame player on the server except the skipped one
165- list<CPlayer*>::const_iterator iter = m_Players.begin ();
166- for (; iter != m_Players.end (); iter++)
165+ for (CPlayer* player : m_Players)
167166 {
168- CPlayer* pPlayer = *iter;
169- if (pPlayer != pSkip && pPlayer->IsJoined ())
167+ if (player != pSkip && player->IsJoined () && !player->IsLeavingServer ())
170168 {
171- sendList.push_back (pPlayer );
169+ sendList.push_back (player );
172170 }
173171 }
174172
175173 CPlayerManager::Broadcast (Packet, sendList);
176-
177174 return sendList.size ();
178175}
179176
@@ -183,19 +180,15 @@ size_t CPlayerManager::BroadcastDimensionOnlyJoined(const CPacket& Packet, ushor
183180 CSendList sendList;
184181
185182 // Send the packet to each ingame player on the server except the skipped one
186- list<CPlayer*>::const_iterator iter = m_Players.begin ();
187- for (; iter != m_Players.end (); iter++)
183+ for (CPlayer* player : m_Players)
188184 {
189- CPlayer* pPlayer = *iter;
190- if (pPlayer != pSkip && pPlayer->IsJoined ())
185+ if (player != pSkip && player->IsJoined () && !player->IsLeavingServer () && player->GetDimension () == usDimension)
191186 {
192- if (pPlayer->GetDimension () == usDimension)
193- sendList.push_back (pPlayer);
187+ sendList.push_back (player);
194188 }
195189 }
196190
197191 CPlayerManager::Broadcast (Packet, sendList);
198-
199192 return sendList.size ();
200193}
201194
@@ -205,18 +198,15 @@ size_t CPlayerManager::BroadcastOnlySubscribed(const CPacket& Packet, CElement*
205198 CSendList sendList;
206199
207200 // Send the packet to each ingame player on the server except the skipped one
208- list<CPlayer*>::const_iterator iter = m_Players.begin ();
209- for (; iter != m_Players.end (); iter++)
201+ for (CPlayer* player : m_Players)
210202 {
211- CPlayer* pPlayer = *iter;
212- if (pPlayer != pSkip && pPlayer->IsJoined () && pPlayer->IsSubscribed (pElement, szName))
203+ if (player != pSkip && player->IsJoined () && !player->IsLeavingServer () && player->IsSubscribed (pElement, szName))
213204 {
214- sendList.push_back (pPlayer );
205+ sendList.push_back (player );
215206 }
216207 }
217208
218209 CPlayerManager::Broadcast (Packet, sendList);
219-
220210 return sendList.size ();
221211}
222212
@@ -282,6 +272,7 @@ static void DoBroadcast(const CPacket& Packet, const std::multimap<ushort, CPlay
282272 {
283273 CPlayer* pPlayer = s_it->second ;
284274 dassert (usBitStreamVersion == pPlayer->GetBitStreamVersion ());
275+ dassert (!pPlayer->IsLeavingServer ());
285276 g_pGame->SendPacket (Packet.GetPacketID (), pPlayer->GetSocket (), pBitStream, false , packetPriority, Reliability, Packet.GetPacketOrdering ());
286277 }
287278
0 commit comments