- MSG_WriteByte (&msg, svc_time);
- MSG_WriteFloat (&msg, sv.time);
-
- // add the client specific data to the datagram
- SV_WriteClientdataToMessage (client, client->edict, &msg, stats);
- VM_SV_WriteAutoSentStats (client, client->edict, &msg, stats);
- SV_WriteEntitiesToClient (client, client->edict, &msg, stats);
-
- // expand packet size to allow effects to go over the rate limit
- // (dropping them is FAR too ugly)
- msg.maxsize = maxsize2;
-
- // copy the server datagram if there is space
- // FIXME: put in delayed queue of effects to send
- if (sv.datagram.cursize > 0 && msg.cursize + sv.datagram.cursize <= msg.maxsize)
- SZ_Write (&msg, sv.datagram.data, sv.datagram.cursize);
-
-// send the datagram
- if (NetConn_SendUnreliableMessage (client->netconnection, &msg) == -1)
+ if (host_client->spawned)
+ {
+ MSG_WriteByte (&msg, svc_time);
+ MSG_WriteFloat (&msg, sv.time);
+
+ // add the client specific data to the datagram
+ SV_WriteClientdataToMessage (client, client->edict, &msg, stats);
+ VM_SV_WriteAutoSentStats (client, client->edict, &msg, stats);
+ SV_WriteEntitiesToClient (client, client->edict, &msg, stats);
+
+ // expand packet size to allow effects to go over the rate limit
+ // (dropping them is FAR too ugly)
+ msg.maxsize = maxsize2;
+
+ // copy the server datagram if there is space
+ // FIXME: put in delayed queue of effects to send
+ if (sv.datagram.cursize > 0 && msg.cursize + sv.datagram.cursize <= msg.maxsize)
+ SZ_Write (&msg, sv.datagram.data, sv.datagram.cursize);
+ }
+ else if (realtime > client->keepalivetime)