diff --git a/hw/source/master.c b/hw/source/master.c index f05a34d69..15f5bdc10 100644 --- a/hw/source/master.c +++ b/hw/source/master.c @@ -545,9 +545,10 @@ main (int argc, const char **argv) Cvar_Register (&sv_console_plugin_cvar, 0, 0); PI_RegisterPlugins (server_plugin_list); - Con_Init (sv_console_plugin); + Con_Load (sv_console_plugin); if (con_module) con_module->data->console->cbuf = mst_cbuf; + Con_Init (); con_list_print = Sys_Printf; SV_InitNet (); diff --git a/include/QF/console.h b/include/QF/console.h index 734d2bda1..0a0274664 100644 --- a/include/QF/console.h +++ b/include/QF/console.h @@ -90,7 +90,8 @@ void Con_BufferAddText (con_buffer_t *buf, const char *text); void Con_ClearBuffer (con_buffer_t *buffer); // init/shutdown functions -void Con_Init (const char *plugin_name); +void Con_Load (const char *plugin_name); +void Con_Init (void); void Con_ExecLine (const char *line); void Con_ProcessInput (void); diff --git a/libs/console/client.c b/libs/console/client.c index 756cb936c..99d7f9550 100644 --- a/libs/console/client.c +++ b/libs/console/client.c @@ -1014,6 +1014,17 @@ Condump_f (void) Qclose (file); } +static void +C_InitCvars (void) +{ + Cvar_Register (&con_notifytime_cvar, 0, 0); + Cvar_Register (&con_scale_cvar, con_scale_f, 0); + Cvar_Register (&con_alpha_cvar, 0, 0); + Cvar_Register (&con_size_cvar, 0, 0); + Cvar_Register (&con_speed_cvar, 0, 0); + Cvar_Register (&cl_conmode_cvar, 0, 0); +} + static void C_Init (void) { @@ -1032,14 +1043,6 @@ C_Init (void) Menu_Init (); - Cvar_Register (&con_notifytime_cvar, 0, 0); - - Cvar_Register (&con_scale_cvar, con_scale_f, 0); - Cvar_Register (&con_alpha_cvar, 0, 0); - Cvar_Register (&con_size_cvar, 0, 0); - Cvar_Register (&con_speed_cvar, 0, 0); - Cvar_Register (&cl_conmode_cvar, 0, 0); - con_debuglog = COM_CheckParm ("-condebug"); // The console will get resized, so assume initial size is 320x200 @@ -1185,11 +1188,12 @@ C_shutdown (void) } static general_funcs_t plugin_info_general_funcs = { - .init = C_Init, + .init = C_InitCvars, .shutdown = C_shutdown, }; static console_funcs_t plugin_info_console_funcs = { + .init = C_Init, .print = C_Print, .draw_console = C_DrawConsole, .new_map = C_NewMap, diff --git a/libs/console/console.c b/libs/console/console.c index fbf535253..43964db03 100644 --- a/libs/console/console.c +++ b/libs/console/console.c @@ -108,16 +108,23 @@ Con_shutdown (void *data) } VISIBLE void -Con_Init (const char *plugin_name) +Con_Load (const char *plugin_name) { Sys_RegisterShutdown (Con_shutdown, 0); con_module = PI_LoadPlugin ("console", plugin_name); + if (!con_module) { + setvbuf (stdout, 0, _IOLBF, BUFSIZ); + } +} + +VISIBLE void +Con_Init (void) +{ if (con_module) { __auto_type funcs = con_module->functions->console; + funcs->init (); saved_sys_printf = Sys_SetStdPrintf (funcs->print); - } else { - setvbuf (stdout, 0, _IOLBF, BUFSIZ); } Cvar_Register (&con_interpreter_cvar, Con_Interp_f, 0); } diff --git a/libs/console/server.c b/libs/console/server.c index 5595e40da..fc7e90d12 100644 --- a/libs/console/server.c +++ b/libs/console/server.c @@ -776,9 +776,16 @@ sv_exec_line_chat (void *data, const char *line) } static void -C_Init (void) +C_InitCvars (void) { Cvar_Register (&sv_use_curses_cvar, 0, 0); + Cvar_Register (&sv_logfile_cvar, sv_logfile_f, 0); + Cvar_Register (&sv_conmode_cvar, 0, 0); +} + +static void +C_Init (void) +{ #ifdef HAVE_NCURSES use_curses = sv_use_curses; if (use_curses) { @@ -786,8 +793,6 @@ C_Init (void) } else #endif setvbuf (stdout, 0, _IOLBF, BUFSIZ); - Cvar_Register (&sv_logfile_cvar, sv_logfile_f, 0); - Cvar_Register (&sv_conmode_cvar, 0, 0); } static void @@ -863,12 +868,13 @@ C_NewMap (void) } static general_funcs_t plugin_info_general_funcs = { - .init = C_Init, + .init = C_InitCvars, .shutdown = C_shutdown, }; static general_data_t plugin_info_general_data; static console_funcs_t plugin_info_console_funcs = { + .init = C_Init, .print = C_Print, .process_input = C_ProcessInput, .draw_console = C_DrawConsole, diff --git a/nq/source/cl_main.c b/nq/source/cl_main.c index 954da6962..fd8237a85 100644 --- a/nq/source/cl_main.c +++ b/nq/source/cl_main.c @@ -708,8 +708,9 @@ CL_Init (cbuf_t *cbuf) S_Init (&cl.viewentity, &host_frametime); PI_RegisterPlugins (client_plugin_list); - Con_Init ("client"); + Con_Load ("client"); CL_Init_Screen (); + Con_Init (); CDAudio_Init (); diff --git a/nq/source/host.c b/nq/source/host.c index a3fde4e6b..e6db77457 100644 --- a/nq/source/host.c +++ b/nq/source/host.c @@ -926,7 +926,8 @@ Host_Init (void) if (isDedicated) { PI_RegisterPlugins (server_plugin_list); - Con_Init ("server"); + Con_Load ("server"); + Con_Init (); } Host_InitVCR (&host_parms); diff --git a/qtv/source/qtv.c b/qtv/source/qtv.c index 6c95554a9..220d17c91 100644 --- a/qtv/source/qtv.c +++ b/qtv/source/qtv.c @@ -297,9 +297,10 @@ qtv_init (void) Cvar_Register (&qtv_console_plugin_cvar, 0, 0); PI_RegisterPlugins (server_plugin_list); - Con_Init (qtv_console_plugin); + Con_Load (qtv_console_plugin); if (con_module) con_module->data->console->cbuf = qtv_cbuf; + Con_Init (); Sys_SetStdPrintf (qtv_print); qtv_sbar_init (); diff --git a/qw/source/cl_main.c b/qw/source/cl_main.c index 490e33f41..6746301f0 100644 --- a/qw/source/cl_main.c +++ b/qw/source/cl_main.c @@ -1461,7 +1461,7 @@ CL_Init (void) r_data->lightstyle = cl.lightstyle; PI_RegisterPlugins (client_plugin_list); - Con_Init ("client"); + Con_Load ("client"); CL_Init_Screen (); if (con_module) { con_module->data->console->dl_name = cls.downloadname; @@ -1473,6 +1473,7 @@ CL_Init (void) Cbuf_DeleteStack (con_module->data->console->cbuf); con_module->data->console->cbuf = cl_cbuf; } + Con_Init (); CL_NetGraph_Init (); S_Init (&cl.viewentity, &host_frametime); diff --git a/qw/source/sv_main.c b/qw/source/sv_main.c index 511001ba7..8740de584 100644 --- a/qw/source/sv_main.c +++ b/qw/source/sv_main.c @@ -2691,9 +2691,10 @@ SV_Init (void) Cvar_Register (&sv_console_plugin_cvar, 0, 0); PI_RegisterPlugins (server_plugin_list); - Con_Init (sv_console_plugin); + Con_Load (sv_console_plugin); if (con_module) con_module->data->console->cbuf = sv_cbuf; + Con_Init (); con_list_print = Sys_Printf; Sys_SetStdPrintf (SV_Print); Sys_SetErrPrintf (SV_Error); diff --git a/ruamoko/qwaq/builtins/graphics.c b/ruamoko/qwaq/builtins/graphics.c index 96fad8138..1a4da10be 100644 --- a/ruamoko/qwaq/builtins/graphics.c +++ b/ruamoko/qwaq/builtins/graphics.c @@ -354,7 +354,7 @@ BI_Graphics_Init (progs_t *pr) event_handler_id = IE_Add_Handler (event_handler, pr); IE_Set_Focus (event_handler_id); - Con_Init ("client"); + Con_Load ("client"); if (con_module) { con_module->data->console->realtime = &con_realtime; con_module->data->console->frametime = &con_frametime; @@ -363,6 +363,7 @@ BI_Graphics_Init (progs_t *pr) //con_module->data->console->screen_view = r_data->scr_view; } //Key_SetKeyDest (key_game); + Con_Init (); S_Init (0, &con_frametime); //CDAudio_Init ();