qboolean con_initialized;
+// used for server replies to rcon command
+qboolean rcon_redirect = false;
+int rcon_redirect_bufferpos = 0;
+char rcon_redirect_buffer[1400];
+
/*
==============================================================================
// Dump the contents of the log queue into the log file and free it
if (logqueue != NULL)
{
- if (logfile != NULL && logq_ind != 0)
- FS_Write (logfile, logqueue, logq_ind);
- Mem_Free (logqueue);
+ unsigned char *temp = logqueue;
logqueue = NULL;
+ if (logfile != NULL && logq_ind != 0)
+ FS_Write (logfile, temp, logq_ind);
+ Mem_Free (temp);
logq_ind = 0;
logq_size = 0;
}
con_linewidth = 80;
con_totallines = CON_TEXTSIZE / con_linewidth;
- // Allocate a log queue
+ // Allocate a log queue, this will be freed after configs are parsed
logq_size = MAX_INPUTLINE;
logqueue = (unsigned char *)Mem_Alloc (tempmempool, logq_size);
logq_ind = 0;
for (;*msg;msg++)
{
+ // if this print is in response to an rcon command, add the character
+ // to the rcon redirect buffer
+ if (rcon_redirect && rcon_redirect_bufferpos < (int)sizeof(rcon_redirect_buffer) - 1)
+ rcon_redirect_buffer[rcon_redirect_bufferpos++] = *msg;
+ // if this is the beginning of a new line, print timestamp
if (index == 0)
{
- // if this is the beginning of a new line, print timestamp
const char *timestamp = timestamps.integer ? Sys_TimeString(timeformat.string) : "";
// reset the color
// FIXME: 1. perhaps we should use a terminal system 2. use a constant instead of 7!
return;
// draw the background
- if (scr_conbrightness.value >= 0.01f)
- DrawQ_Pic(0, lines - vid_conheight.integer, "gfx/conback", vid_conwidth.integer, vid_conheight.integer, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, scr_conalpha.value, 0);
- else
- DrawQ_Fill(0, lines - vid_conheight.integer, vid_conwidth.integer, vid_conheight.integer, 0, 0, 0, scr_conalpha.value, 0);
+ DrawQ_Pic(0, lines - vid_conheight.integer, scr_conbrightness.value >= 0.01f ? Draw_CachePic("gfx/conback", true) : NULL, vid_conwidth.integer, vid_conheight.integer, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, scr_conalpha.value, 0);
DrawQ_String(vid_conwidth.integer - strlen(engineversion) * con_textsize.value - con_textsize.value, lines - con_textsize.value, engineversion, 0, con_textsize.value, con_textsize.value, 1, 0, 0, 1, 0);
// draw the text
keyname[l] = 0;
if (!COM_ParseToken(&data, false))
break;
- if (developer.integer >= 2)
+ if (developer.integer >= 100)
Con_Printf("key: %s %s\n", keyname, com_token);
if (!strcmp(keyname, "message"))
{