/** * @sa SV_BroadcastCommand */ void SV_ClientCommand (client_t *client, const char *fmt, ...) { va_list ap; char str[1024]; struct dbuffer *msg = new_dbuffer(); NET_WriteByte(msg, svc_stufftext); va_start(ap, fmt); NET_VPrintf(msg, fmt, ap, str, sizeof(str)); va_end(ap); NET_WriteMsg(client->stream, msg); }
/** * @sa SV_BroadcastCommand */ void SV_ClientCommand (client_t *client, const char *fmt, ...) { va_list ap; char str[MAX_SVC_STUFFTEXT]; dbuffer msg; NET_WriteByte(&msg, svc_stufftext); va_start(ap, fmt); NET_VPrintf(&msg, fmt, ap, str, sizeof(str)); va_end(ap); NET_WriteMsg(client->stream, msg); }
/** * @brief Sends text across to be displayed if the level passes */ void SV_ClientPrintf (client_t *cl, int level, const char *fmt, ...) { if (level > cl->messagelevel) return; dbuffer msg; NET_WriteByte(&msg, svc_print); NET_WriteByte(&msg, level); va_list argptr; va_start(argptr, fmt); char str[MAX_SVC_PRINT]; NET_VPrintf(&msg, fmt, argptr, str, sizeof(str)); va_end(argptr); NET_WriteMsg(cl->stream, msg); }
/** * @brief Sends text to all active clients */ void SV_BroadcastPrintf (int level, const char *fmt, ...) { va_list argptr; struct dbuffer *msg; client_t *cl; char str[1024]; msg = new_dbuffer(); NET_WriteByte(msg, svc_print); NET_WriteByte(msg, level); va_start(argptr, fmt); NET_VPrintf(msg, fmt, argptr, str, sizeof(str)); va_end(argptr); /* echo to console */ if (sv_dedicated->integer) { char copy[1024]; int i; const int length = sizeof(copy) - 1; va_start(argptr, fmt); Q_vsnprintf(copy, sizeof(copy), fmt, argptr); va_end(argptr); /* mask off high bits */ for (i = 0; i < length && copy[i]; i++) copy[i] = copy[i] & 127; copy[i] = '\0'; Com_Printf("%s", copy); } cl = NULL; while ((cl = SV_GetNextClient(cl)) != NULL) { if (level > cl->messagelevel) continue; if (cl->state < cs_connected) continue; NET_WriteConstMsg(cl->stream, msg); } free_dbuffer(msg); }
/** * @brief Sends text across to be displayed if the level passes */ void SV_ClientPrintf (client_t * cl, int level, const char *fmt, ...) { va_list argptr; struct dbuffer *msg; char str[1024]; if (level > cl->messagelevel) return; msg = new_dbuffer(); NET_WriteByte(msg, svc_print); NET_WriteByte(msg, level); va_start(argptr, fmt); NET_VPrintf(msg, fmt, argptr, str, sizeof(str)); va_end(argptr); NET_WriteMsg(cl->stream, msg); }