#include "sv_demo.h"
#include "image.h"
+#include "prvm_cmds.h"
#include "utf8lib.h"
// for secure rcon authentication
FS_Printf(f,"sv.sound_precache %i %s\n", i, sv.sound_precache[i]);
// darkplaces extension - save buffers
- numbuffers = Mem_ExpandableArray_IndexRange(&prog->stringbuffersarray);
+ numbuffers = (int)Mem_ExpandableArray_IndexRange(&prog->stringbuffersarray);
for (i = 0; i < numbuffers; i++)
{
prvm_stringbuffer_t *stringbuffer = (prvm_stringbuffer_t*) Mem_ExpandableArray_RecordAtIndex(&prog->stringbuffersarray, i);
===============
*/
-prvm_stringbuffer_t *BufStr_FindCreateReplace (prvm_prog_t *prog, int bufindex, int flags, char *format);
-void BufStr_Set(prvm_prog_t *prog, prvm_stringbuffer_t *stringbuffer, int strindex, const char *str);
-void BufStr_Del(prvm_prog_t *prog, prvm_stringbuffer_t *stringbuffer);
-void BufStr_Flush(prvm_prog_t *prog);
-
static void Host_Loadgame_f (void)
{
prvm_prog_t *prog = SVVM_prog;
Mem_Free(text);
// remove all temporary flagged string buffers (ones created with BufStr_FindCreateReplace)
- numbuffers = Mem_ExpandableArray_IndexRange(&prog->stringbuffersarray);
+ numbuffers = (int)Mem_ExpandableArray_IndexRange(&prog->stringbuffersarray);
for (i = 0; i < numbuffers; i++)
{
if ( (stringbuffer = (prvm_stringbuffer_t *)Mem_ExpandableArray_RecordAtIndex(&prog->stringbuffersarray, i)) )
if (Cmd_Argc () == 1)
{
- Con_Printf("name: %s\n", cl_name.string);
+ if (cmd_source == src_command)
+ {
+ Con_Printf("name: %s\n", cl_name.string);
+ }
return;
}
if (Cmd_Argc () == 1)
{
- Con_Printf("\"playermodel\" is \"%s\"\n", cl_playermodel.string);
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"playermodel\" is \"%s\"\n", cl_playermodel.string);
+ }
return;
}
if (Cmd_Argc () == 1)
{
- Con_Printf("\"playerskin\" is \"%s\"\n", cl_playerskin.string);
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"playerskin\" is \"%s\"\n", cl_playerskin.string);
+ }
return;
}
if (Cmd_Argc() == 1)
{
- Con_Printf("\"color\" is \"%i %i\"\n", cl_color.integer >> 4, cl_color.integer & 15);
- Con_Print("color <0-15> [0-15]\n");
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"color\" is \"%i %i\"\n", cl_color.integer >> 4, cl_color.integer & 15);
+ Con_Print("color <0-15> [0-15]\n");
+ }
return;
}
{
if (Cmd_Argc() == 1)
{
- Con_Printf("\"topcolor\" is \"%i\"\n", (cl_color.integer >> 4) & 15);
- Con_Print("topcolor <0-15>\n");
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"topcolor\" is \"%i\"\n", (cl_color.integer >> 4) & 15);
+ Con_Print("topcolor <0-15>\n");
+ }
return;
}
{
if (Cmd_Argc() == 1)
{
- Con_Printf("\"bottomcolor\" is \"%i\"\n", cl_color.integer & 15);
- Con_Print("bottomcolor <0-15>\n");
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"bottomcolor\" is \"%i\"\n", cl_color.integer & 15);
+ Con_Print("bottomcolor <0-15>\n");
+ }
return;
}
if (Cmd_Argc() != 2)
{
- Con_Printf("\"rate\" is \"%i\"\n", cl_rate.integer);
- Con_Print("rate <bytespersecond>\n");
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"rate\" is \"%i\"\n", cl_rate.integer);
+ Con_Print("rate <bytespersecond>\n");
+ }
return;
}
}
sv.paused ^= 1;
- SV_BroadcastPrintf("%s %spaused the game\n", host_client->name, sv.paused ? "" : "un");
+ if (cmd_source != src_command)
+ SV_BroadcastPrintf("%s %spaused the game\n", host_client->name, sv.paused ? "" : "un");
+ else if(*(sv_adminnick.string))
+ SV_BroadcastPrintf("%s %spaused the game\n", sv_adminnick.string, sv.paused ? "" : "un");
+ else
+ SV_BroadcastPrintf("%s %spaused the game\n", hostname.string, sv.paused ? "" : "un");
// send notification to all clients
MSG_WriteByte(&sv.reliable_datagram, svc_setpause);
MSG_WriteByte(&sv.reliable_datagram, sv.paused);
if (Cmd_Argc () == 1)
{
- Con_Printf("\"pmodel\" is \"%s\"\n", cl_pmodel.string);
+ if (cmd_source == src_command)
+ {
+ Con_Printf("\"pmodel\" is \"%s\"\n", cl_pmodel.string);
+ }
return;
}
i = atoi(Cmd_Argv(1));
char argbuf[1500];
dpsnprintf(argbuf, sizeof(argbuf), "%ld.%06d %s", (long) time(NULL), (int) (rand() % 1000000), Cmd_Args());
memcpy(buf, "\377\377\377\377srcon HMAC-MD4 TIME ", 24);
- if(HMAC_MDFOUR_16BYTES((unsigned char *) (buf + 24), (unsigned char *) argbuf, strlen(argbuf), (unsigned char *) rcon_password.string, n))
+ if(HMAC_MDFOUR_16BYTES((unsigned char *) (buf + 24), (unsigned char *) argbuf, (int)strlen(argbuf), (unsigned char *) rcon_password.string, n))
{
buf[40] = ' ';
strlcpy(buf + 41, argbuf, sizeof(buf) - 41);
- NetConn_Write(mysocket, buf, 41 + strlen(buf + 41), &to);
+ NetConn_Write(mysocket, buf, 41 + (int)strlen(buf + 41), &to);
}
}
else
{
char key[512];
char value[512];
- char *o;
const char *s;
if (Cmd_Argc() != 2)
s++;
while (*s)
{
- o = key;
- while (*s && *s != '\\')
- *o++ = *s++;
- *o = 0;
-
+ size_t len = strcspn(s, "\\");
+ if (len >= sizeof(key)) {
+ len = sizeof(key) - 1;
+ }
+ strlcpy(key, s, len + 1);
+ s += len;
if (!*s)
{
Con_Printf ("MISSING VALUE\n");
return;
}
+ ++s; // Skip over backslash.
- o = value;
- s++;
- while (*s && *s != '\\')
- *o++ = *s++;
- *o = 0;
-
- if (*s)
- s++;
+ len = strcspn(s, "\\");
+ if (len >= sizeof(value)) {
+ len = sizeof(value) - 1;
+ }
+ strlcpy(value, s, len + 1);
CL_SetInfo(key, value, false, false, false, false);
+
+ s += len;
+ if (!*s)
+ {
+ break;
+ }
+ ++s; // Skip over backslash.
}
}