MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / client_Destroy

Method client_Destroy

ogsr_engine/xrGame/xrServer.cpp:95–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93INT g_sv_Client_Reconnect_Time = 0;
94
95void xrServer::client_Destroy(IClient* C)
96{
97 csPlayers.Enter();
98
99 // Delete assosiated entity
100 // xrClientData* D = (xrClientData*)C;
101 // CSE_Abstract* E = D->owner;
102 for (u32 DI = 0; DI < net_Players_disconnected.size(); DI++)
103 {
104 if (net_Players_disconnected[DI] == C)
105 {
106 xr_delete(C);
107 net_Players_disconnected.erase(net_Players_disconnected.begin() + DI);
108 break;
109 };
110 };
111
112 for (u32 I = 0; I < net_Players.size(); I++)
113 {
114 if (net_Players[I] == C)
115 {
116 {
117 DelayedPacket pp;
118 pp.SenderID = C->ID;
119
120 xr_deque<DelayedPacket>::iterator it;
121 do
122 {
123 it = std::find(m_aDelayedPackets.begin(), m_aDelayedPackets.end(), pp);
124 if (it != m_aDelayedPackets.end())
125 {
126 m_aDelayedPackets.erase(it);
127 Msg("removing packet from delayed event storage");
128 }
129 else
130 break;
131 } while (true);
132 }
133
134 if (!g_sv_Client_Reconnect_Time || !C->flags.bVerified)
135 {
136 xr_delete(C);
137 }
138 else
139 {
140 C->dwTime_LastUpdate = Device.dwTimeGlobal;
141 net_Players_disconnected.push_back(C);
142 ((xrClientData*)C)->Clear();
143 };
144 net_Players.erase(net_Players.begin() + I);
145 break;
146 };
147 }
148
149 csPlayers.Leave();
150}
151
152//--------------------------------------------------------------------

Callers

nothing calls this directly

Calls 11

xr_deleteFunction · 0.85
MsgFunction · 0.85
LeaveMethod · 0.80
findFunction · 0.50
EnterMethod · 0.45
sizeMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45
ClearMethod · 0.45

Tested by

no test coverage detected