| 813 | } |
| 814 | |
| 815 | void PlayerManager::OnClientDisconnect(edict_t *pEntity) |
| 816 | { |
| 817 | cell_t res; |
| 818 | int client = IndexOfEdict(pEntity); |
| 819 | CPlayer *pPlayer = &m_Players[client]; |
| 820 | |
| 821 | if (pPlayer->IsConnected()) |
| 822 | { |
| 823 | m_cldisconnect->PushCell(client); |
| 824 | m_cldisconnect->Execute(&res, NULL); |
| 825 | } |
| 826 | else |
| 827 | { |
| 828 | /* We don't care, prevent a double call */ |
| 829 | return; |
| 830 | } |
| 831 | |
| 832 | if (pPlayer->WasCountedAsInGame()) |
| 833 | { |
| 834 | m_PlayerCount--; |
| 835 | } |
| 836 | |
| 837 | List<IClientListener *>::iterator iter; |
| 838 | IClientListener *pListener = NULL; |
| 839 | for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++) |
| 840 | { |
| 841 | pListener = (*iter); |
| 842 | pListener->OnClientDisconnecting(client); |
| 843 | } |
| 844 | } |
| 845 | |
| 846 | void PlayerManager::OnClientDisconnect_Post(edict_t *pEntity) |
| 847 | { |
nothing calls this directly
no test coverage detected