|
@@ -395,25 +395,25 @@ static ClientState *AllocClient(SOCKET s
|
|
|
|
|
|
// Register the login
|
|
|
client_no = _network_clients_connected++;
|
|
|
}
|
|
|
|
|
|
cs = &_clients[client_no];
|
|
|
memset(cs, 0, sizeof(*cs));
|
|
|
cs->socket = s;
|
|
|
cs->last_frame = 0;
|
|
|
cs->quited = false;
|
|
|
|
|
|
if (_network_server) {
|
|
|
ci = &_network_client_info[client_no];
|
|
|
ci = DEREF_CLIENT_INFO(cs);
|
|
|
memset(ci, 0, sizeof(*ci));
|
|
|
|
|
|
cs->index = _network_client_index++;
|
|
|
ci->client_index = cs->index;
|
|
|
ci->join_date = _date;
|
|
|
|
|
|
InvalidateWindow(WC_CLIENT_LIST, 0);
|
|
|
}
|
|
|
|
|
|
return cs;
|
|
|
}
|
|
|
|
|
@@ -691,24 +691,25 @@ void NetworkClose(void)
|
|
|
NetworkUDPClose();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Inits the network (cleans sockets and stuff)
|
|
|
void NetworkInitialize(void)
|
|
|
{
|
|
|
ClientState *cs;
|
|
|
|
|
|
_local_command_queue = NULL;
|
|
|
|
|
|
// Clean all client-sockets
|
|
|
memset(_clients, 0, sizeof(_clients));
|
|
|
for (cs = _clients; cs != &_clients[MAX_CLIENTS]; cs++) {
|
|
|
cs->socket = INVALID_SOCKET;
|
|
|
cs->status = STATUS_INACTIVE;
|
|
|
cs->command_queue = NULL;
|
|
|
}
|
|
|
|
|
|
// Clean the client_info memory
|
|
|
memset(_network_client_info, 0, sizeof(_network_client_info));
|
|
|
memset(_network_player_info, 0, sizeof(_network_player_info));
|
|
|
|
|
|
_sync_frame = 0;
|
|
|
_network_first_time = true;
|