From 8e65ba98d5688046aea1d3e47e20027ecfb7d8e4 Mon Sep 17 00:00:00 2001 From: TimeServ Date: Sat, 6 May 2006 02:53:36 +0000 Subject: [PATCH] minor fixes, change name and sys_linebuffer to callbacks git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2241 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/cl_input.c | 17 +++++++++----- engine/client/cl_main.c | 3 ++- engine/client/cl_parse.c | 1 - engine/common/common.c | 1 - engine/gl/gl_draw.c | 1 - engine/server/sv_sys_unix.c | 46 +++++++++++++++++++------------------ 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/engine/client/cl_input.c b/engine/client/cl_input.c index 8e4979b7a..849e4fd4d 100644 --- a/engine/client/cl_input.c +++ b/engine/client/cl_input.c @@ -770,6 +770,17 @@ void CLNQ_SendMove (usercmd_t *cmd, int pnum, sizebuf_t *buf) } } +void Name_Callback(struct cvar_s *var, char *oldvalue) +{ + if (cls.state <= ca_connected) + return; + + if (cls.protocol != CP_NETQUAKE) + return; + + CL_SendClientCommand(true, "name \"%s\"\n", var->string); +} + void CLNQ_SendCmd(void) { extern int cl_latestframenum, nq_dp_protocol; @@ -792,12 +803,6 @@ void CLNQ_SendCmd(void) CLNQ_SendMove (&independantphysics[0], 0, &unrel); } - if (name.modified) - { - name.modified = false; - CL_SendClientCommand(true, "name \"%s\"\n", name.string); - } - if (nq_dp_protocol > 0 && cls.signon == 4) { MSG_WriteByte(&cls.netchan.message, 50); diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index 669617d4e..3766feb53 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -33,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // callbacks void CL_Sbar_Callback(struct cvar_s *var, char *oldvalue); +void Name_Callback(struct cvar_s *var, char *oldvalue); // we need to declare some mouse variables here, because the menu system // references them even when on a unix system. @@ -94,7 +95,7 @@ static qboolean allowremotecmd = true; // cvar_t password = SCVARF("password", "", CVAR_USERINFO); //this is parhaps slightly dodgy... cvar_t spectator = SCVARF("spectator", "", CVAR_USERINFO); -cvar_t name = SCVARF("name", "unnamed", CVAR_ARCHIVE | CVAR_USERINFO); +cvar_t name = SCVARFC("name", "unnamed", CVAR_ARCHIVE | CVAR_USERINFO, Name_Callback); cvar_t team = SCVARF("team", "", CVAR_ARCHIVE | CVAR_USERINFO); cvar_t skin = SCVARF("skin", "", CVAR_ARCHIVE | CVAR_USERINFO); cvar_t model = SCVARF("model", "", CVAR_ARCHIVE | CVAR_USERINFO); diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index 0e1ff9cfe..85b907917 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -1876,7 +1876,6 @@ Con_DPrintf ("CL_SignonReply: %i\n", cls.signon); case 2: CL_SendClientCommand(true, "name \"%s\"\n", name.string); - name.modified = false; CL_SendClientCommand(true, "color %i %i\n", (int)topcolor.value, (int)bottomcolor.value); diff --git a/engine/common/common.c b/engine/common/common.c index 745def516..4f3e8c304 100644 --- a/engine/common/common.c +++ b/engine/common/common.c @@ -1346,7 +1346,6 @@ void SZ_Print (sizebuf_t *buf, const char *data) //============================================================================ - /* ============ COM_SkipPath diff --git a/engine/gl/gl_draw.c b/engine/gl/gl_draw.c index c02bf5bf5..3fd67bd2d 100644 --- a/engine/gl/gl_draw.c +++ b/engine/gl/gl_draw.c @@ -1338,7 +1338,6 @@ void GLDraw_Alt_String (int x, int y, const qbyte *str) #include "crosshairs.dat" vec3_t chcolor; -int chmodified; void GLCrosshairimage_Callback(struct cvar_s *var, char *oldvalue) { diff --git a/engine/server/sv_sys_unix.c b/engine/server/sv_sys_unix.c index 03edcee2f..5968aea68 100644 --- a/engine/server/sv_sys_unix.c +++ b/engine/server/sv_sys_unix.c @@ -36,11 +36,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include -cvar_t sys_nostdout = {"sys_nostdout","0"}; -cvar_t sys_extrasleep = {"sys_extrasleep","0"}; -cvar_t sys_maxtic = {"sys_maxtic", "100"}; -cvar_t sys_colorconsole = {"sys_colorconsole", "0"}; -cvar_t sys_linebuffer = {"sys_linebuffer", "1"}; +// callbacks +void Sys_Linebuffer_Callback (struct cvar_s *var, char *oldvalue); + +cvar_t sys_nostdout = SCVAR{"sys_nostdout","0"}; +cvar_t sys_extrasleep = SCVAR{"sys_extrasleep","0"}; +cvar_t sys_maxtic = SCVAR{"sys_maxtic", "100"}; +cvar_t sys_colorconsole = SCVAR{"sys_colorconsole", "0"}; +cvar_t sys_linebuffer = SCVARC{"sys_linebuffer", "1", Sys_Linebuffer_Callback}; qboolean stdin_ready; @@ -578,28 +581,27 @@ Checks for a complete line of text typed in at the console, then forwards it to the host command processor ================ */ +void Sys_Linebuffer_Callback (struct cvar_s *var, char *oldvalue) +{ + changes = orig; + if (var->value) + { + changes.c_lflag |= (ICANON|ECHO); + } + else + { + changes.c_lflag &= ~(ICANON|ECHO); + changes.c_cc[VTIME] = 0; + changes.c_cc[VMIN] = 1; + } + tcsetattr(STDIN_FILENO, TCSADRAIN, &changes); +} + char *Sys_ConsoleInput (void) { static char text[256]; int len; - if (sys_linebuffer.modified) - { - sys_linebuffer.modified = false; - changes = orig; - if (sys_linebuffer.value) - { - changes.c_lflag |= (ICANON|ECHO); - } - else - { - changes.c_lflag &= ~(ICANON|ECHO); - changes.c_cc[VTIME] = 0; - changes.c_cc[VMIN] = 1; - } - tcsetattr(STDIN_FILENO, TCSADRAIN, &changes); - } - if (!stdin_ready || !do_stdin) return NULL; // the select didn't say it was ready stdin_ready = false;