From b32cd68b200704346ccff4a24e3969cfa697456b Mon Sep 17 00:00:00 2001 From: kai Date: Tue, 28 Apr 2020 18:16:01 +0100 Subject: change how configstrings are handled, and send existing votes to new clients --- src/cgame/cg_local.h | 1 + src/cgame/cg_main.c | 16 ++++++++++++++++ src/cgame/cg_servercmds.c | 24 +++++++++++++++++------- 3 files changed, 34 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h index a1ff0a6..98a2a1e 100644 --- a/src/cgame/cg_local.h +++ b/src/cgame/cg_local.h @@ -1778,6 +1778,7 @@ void CG_ExecuteNewServerCommands( int latestSequence ); void CG_ParseServerinfo( void ); void CG_SetConfigValues( void ); void CG_ShaderStateChanged(void); +void CG_ConfigStringModified( int ); // // cg_playerstate.c diff --git a/src/cgame/cg_main.c b/src/cgame/cg_main.c index ce32b0e..8fcf95e 100644 --- a/src/cgame/cg_main.c +++ b/src/cgame/cg_main.c @@ -2062,6 +2062,22 @@ void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum ) trap_S_ClearLoopingSounds( qtrue ); + // load any existing votes + CG_ConfigStringModified( CS_VOTE_TIME ); + CG_ConfigStringModified( CS_VOTE_STRING ); + CG_ConfigStringModified( CS_VOTE_YES ); + CG_ConfigStringModified( CS_VOTE_NO ); + + CG_ConfigStringModified( CS_TEAMVOTE_TIME ); + CG_ConfigStringModified( CS_TEAMVOTE_STRING ); + CG_ConfigStringModified( CS_TEAMVOTE_YES ); + CG_ConfigStringModified( CS_TEAMVOTE_NO ); + + CG_ConfigStringModified( CS_TEAMVOTE_TIME + 1 ); + CG_ConfigStringModified( CS_TEAMVOTE_STRING + 1 ); + CG_ConfigStringModified( CS_TEAMVOTE_YES + 1 ); + CG_ConfigStringModified( CS_TEAMVOTE_NO + 1 ); + trap_Cvar_Set( "ui_loading", "0" ); } diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c index 7fb3e06..c87e7a7 100644 --- a/src/cgame/cg_servercmds.c +++ b/src/cgame/cg_servercmds.c @@ -247,20 +247,30 @@ static void CG_AnnounceHumanStageTransistion( stage_t from, stage_t to ) /* ================ -CG_ConfigStringModified +CG_ConfigStringModifiedSvcmd ================ */ -static void CG_ConfigStringModified( void ) +static void CG_ConfigStringModifiedSvcmd( void ) + { - const char *str; int num; - num = atoi( CG_Argv( 1 ) ); - // get the gamestate from the client system, which will have the // new configstring already integrated - trap_GetGameState( &cgs.gameState ); + trap_GetGameState( &cgs.gameState ); // enneract: not needed when calling from CG_Init + CG_ConfigStringModified( num ); +} + +/* +================ +CG_ConfigStringModified + +================ +*/ +void CG_ConfigStringModified( int num ) +{ + const char *str; // look up the individual string that was modified str = CG_ConfigString( num ); @@ -848,7 +858,7 @@ static void CG_ServerCommand( void ) if( !strcmp( cmd, "cs" ) ) { - CG_ConfigStringModified( ); + CG_ConfigStringModifiedSvcmd( ); return; } -- cgit