cvar_t logfile = {0, "logfile","0"};
#define MAX_NOTIFYLINES 32
-// realtime time the line was generated for transparent notify lines
+// cl.time time the line was generated for transparent notify lines
float con_times[MAX_NOTIFYLINES];
int con_vislines;
mempool_t *console_mempool;
-// scan lines to clear for notify lines
-int con_notifylines;
-
extern void M_Menu_Main_f (void);
/*
con_linewidth = -1;
Con_CheckResize ();
- Con_Printf ("Console initialized.\n");
+ Con_Print("Console initialized.\n");
//
// register our commands
/*
================
-Con_Print
+Con_PrintToHistory
Handles cursor positioning, line wrapping, etc
-All console printing must go through this in order to be logged to disk
+All console printing must go through this in order to be displayed
If no console is visible, the notify window will pop up.
================
*/
-void Con_Print (const char *txt)
+void Con_PrintToHistory(const char *txt)
{
int y, c, l, mask;
static int cr;
{
if (con_notify.integer < 0)
Cvar_SetValueQuick(&con_notify, 0);
- if (con_notifylines > MAX_NOTIFYLINES)
+ if (con_notify.integer > MAX_NOTIFYLINES)
Cvar_SetValueQuick(&con_notify, MAX_NOTIFYLINES);
if (con_notify.integer > 0)
- con_times[con_current % con_notify.integer] = realtime;
+ con_times[con_current % con_notify.integer] = cl.time;
}
}
}
}
+// LordHavoc: increased from 4096 to 16384
+#define MAXPRINTMSG 16384
/*
================
-Con_DebugLog
+Con_LogPrint
================
*/
-void Con_DebugLog (const char *msg)
+void Con_LogPrint(const char *logfilename, const char *msg)
{
- qfile_t* file;
-
- file = FS_Open ("qconsole.log", "at", true);
+ qfile_t *file;
+ file = FS_Open(logfilename, "at", true);
if (file)
{
- FS_Printf (file, "%s", msg);
- FS_Close (file);
+ FS_Print(file, msg);
+ FS_Close(file);
}
}
-
/*
================
-Con_Printf
-
-Handles cursor positioning, line wrapping, etc
+Con_LogPrintf
================
*/
-// LordHavoc: increased from 4096 to 16384
-#define MAXPRINTMSG 16384
-// FIXME: make a buffer size safe vsprintf?
-void Con_Printf (const char *fmt, ...)
+void Con_LogPrintf(const char *logfilename, const char *fmt, ...)
{
va_list argptr;
char msg[MAXPRINTMSG];
- va_start (argptr,fmt);
- vsprintf (msg,fmt,argptr);
- va_end (argptr);
+ va_start(argptr,fmt);
+ vsprintf(msg,fmt,argptr);
+ va_end(argptr);
+
+ Con_LogPrint(logfilename, msg);
+}
+
+/*
+================
+Con_Print
+Prints to all appropriate console targets
+================
+*/
+void Con_Print(const char *msg)
+{
// also echo to debugging console
- Sys_Printf ("%s", msg);
+ Sys_Print(msg);
// log all messages to file
if (con_debuglog)
- Con_DebugLog (msg);
+ Con_LogPrint("qconsole.log", msg);
if (!con_initialized)
return;
return; // no graphics mode
// write it to the scrollable buffer
- Con_Print (msg);
+ Con_PrintToHistory(msg);
+}
+
+/*
+================
+Con_Printf
+
+Prints to all appropriate console targets
+================
+*/
+void Con_Printf(const char *fmt, ...)
+{
+ va_list argptr;
+ char msg[MAXPRINTMSG];
+
+ va_start(argptr,fmt);
+ vsprintf(msg,fmt,argptr);
+ va_end(argptr);
+
+ Con_Print(msg);
+}
+
+/*
+================
+Con_DPrint
+
+A Con_Print that only shows up if the "developer" cvar is set
+================
+*/
+void Con_DPrint(const char *msg)
+{
+ if (!developer.integer)
+ return; // don't confuse non-developers with techie stuff...
+ Con_Print(msg);
}
/*
A Con_Printf that only shows up if the "developer" cvar is set
================
*/
-void Con_DPrintf (const char *fmt, ...)
+void Con_DPrintf(const char *fmt, ...)
{
va_list argptr;
char msg[MAXPRINTMSG];
if (!developer.integer)
return; // don't confuse non-developers with techie stuff...
- va_start (argptr,fmt);
- vsprintf (msg,fmt,argptr);
- va_end (argptr);
+ va_start(argptr,fmt);
+ vsprintf(msg,fmt,argptr);
+ va_end(argptr);
- Con_Printf ("%s", msg);
+ Con_Print(msg);
}
+/*
+================
+Con_SafePrint
+
+Okay to call even when the screen can't be updated
+==================
+*/
+void Con_SafePrint(const char *msg)
+{
+ Con_Print(msg);
+}
+
/*
==================
Con_SafePrintf
Okay to call even when the screen can't be updated
==================
*/
-void Con_SafePrintf (const char *fmt, ...)
+void Con_SafePrintf(const char *fmt, ...)
{
- va_list argptr;
- char msg[1024];
+ va_list argptr;
+ char msg[MAXPRINTMSG];
- va_start (argptr,fmt);
- vsprintf (msg,fmt,argptr);
- va_end (argptr);
+ va_start(argptr,fmt);
+ vsprintf(msg,fmt,argptr);
+ va_end(argptr);
- Con_Printf ("%s", msg);
+ Con_Print(msg);
}
*/
void Con_DrawInput (void)
{
- char editlinecopy[256], *text;
+ char editlinecopy[257], *text;
if (!key_consoleactive)
return; // don't draw anything
if (con_notify.integer < 0)
Cvar_SetValueQuick(&con_notify, 0);
- if (con_notifylines > MAX_NOTIFYLINES)
+ if (con_notify.integer > MAX_NOTIFYLINES)
Cvar_SetValueQuick(&con_notify, MAX_NOTIFYLINES);
v = 0;
for (i= con_current-con_notify.integer+1 ; i<=con_current ; i++)
time = con_times[i % con_notify.integer];
if (time == 0)
continue;
- time = realtime - time;
+ time = cl.time - time;
if (time > con_notifytime.value)
continue;
text = con_text + (i % con_totallines)*con_linewidth;
v += 8;
}
}
-
- if (con_notifylines < v)
- con_notifylines = v;
}
/*
while (*list) {
len = strlen(*list);
if (pos + maxlen >= width) {
- Con_Printf("\n");
+ Con_Print("\n");
pos = 0;
}
- Con_Printf("%s", *list);
+ Con_Print(*list);
for (i = 0; i < (maxlen - len); i++)
- Con_Printf(" ");
+ Con_Print(" ");
pos += maxlen;
list++;
}
if (pos)
- Con_Printf("\n\n");
+ Con_Print("\n\n");
}
/*
cmd_len++;
} while (i == 3);
// 'quakebar'
- Con_Printf("\n\35");
+ Con_Print("\n\35");
for (i = 0; i < con_linewidth - 4; i++)
- Con_Printf("\36");
- Con_Printf("\37\n");
+ Con_Print("\36");
+ Con_Print("\37\n");
// Print Possible Commands
if (c) {