From 0b11b24907f6a68f718b5b8d881d53bcf6be17dc Mon Sep 17 00:00:00 2001 From: cloudwalk Date: Mon, 15 Jun 2020 02:11:31 +0000 Subject: [PATCH] Play chat sound defined by cvars rather than hardcoded strings git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12677 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_parse.c | 3 ++- client.h | 2 +- cmd.c | 2 ++ console.c | 26 ++++++++++---------------- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/cl_parse.c b/cl_parse.c index 2363b0f0..6dc196be 100644 --- a/cl_parse.c +++ b/cl_parse.c @@ -468,6 +468,7 @@ void CL_ParseEntityLump(char *entdata) R_SetSkyBox("unit1_"); } +extern cvar_t con_chatsound_team_file; static const vec3_t defaultmins = {-4096, -4096, -4096}; static const vec3_t defaultmaxs = {4096, 4096, 4096}; static void CL_SetupWorldModel(void) @@ -512,7 +513,7 @@ static void CL_SetupWorldModel(void) CL_KeepaliveMessage(false); // load the team chat beep if possible - cl.foundtalk2wav = FS_FileExists("sound/misc/talk2.wav"); + cl.foundteamchatsound = FS_FileExists(con_chatsound_team_file.string); // check memory integrity Mem_CheckSentinelsGlobal(); diff --git a/client.h b/client.h index 435299c4..3a52a0b6 100644 --- a/client.h +++ b/client.h @@ -1242,7 +1242,7 @@ typedef struct client_state_s sfx_t *sfx_ric3; sfx_t *sfx_r_exp3; // indicates that the file "sound/misc/talk2.wav" was found (for use by team chat messages) - qboolean foundtalk2wav; + qboolean foundteamchatsound; // refresh related state diff --git a/cmd.c b/cmd.c index 1327c446..48ab043a 100644 --- a/cmd.c +++ b/cmd.c @@ -659,6 +659,7 @@ static void Cmd_Exec(cmd_state_t *cmd, const char *filename) "sv_gameplayfix_q2airaccelerate 1\n" "sv_gameplayfix_stepmultipletimes 1\n" "csqc_polygons_defaultmaterial_nocullface 1\n" +"con_chatsound_team_mask 13\n" ); break; case GAME_XONOTIC: @@ -666,6 +667,7 @@ static void Cmd_Exec(cmd_state_t *cmd, const char *filename) // compatibility for versions prior to 2020-05-25, this can be overridden in newer versions to get the default behavior and be consistent with FTEQW engine Cbuf_InsertText(cmd, "\n" "csqc_polygons_defaultmaterial_nocullface 1\n" +"con_chatsound_team_mask 13\n" ); break; // Steel Storm: Burning Retribution csqc misinterprets CSQC_InputEvent if type is a value other than 0 or 1 diff --git a/console.c b/console.c index 7748769c..e88af147 100644 --- a/console.c +++ b/console.c @@ -57,7 +57,9 @@ cvar_t con_textsize = {CVAR_CLIENT | CVAR_SAVE, "con_textsize","8", "console tex cvar_t con_notifysize = {CVAR_CLIENT | CVAR_SAVE, "con_notifysize","8", "notify text size in virtual 2D pixels"}; cvar_t con_chatsize = {CVAR_CLIENT | CVAR_SAVE, "con_chatsize","8", "chat text size in virtual 2D pixels (if con_chat is enabled)"}; cvar_t con_chatsound = {CVAR_CLIENT | CVAR_SAVE, "con_chatsound","1", "enables chat sound to play on message"}; - +cvar_t con_chatsound_file = {CVAR_CLIENT, "con_chatsound_file","sound/misc/talk.wav", "The sound to play for chat messages"}; +cvar_t con_chatsound_team_file = {CVAR_CLIENT, "con_chatsound_team_file","sound/misc/talk2.wav", "The sound to play for team chat messages"}; +cvar_t con_chatsound_team_mask = {CVAR_CLIENT | CVAR_READONLY, "con_chatsound_team_mask","40","Magic ASCII code that denotes a team chat message"}; cvar_t sys_specialcharactertranslation = {CVAR_CLIENT | CVAR_SERVER, "sys_specialcharactertranslation", "1", "terminal console conchars to ASCII translation (set to 0 if your conchars.tga is for an 8bit character set or if you want raw output)"}; #ifdef WIN32 @@ -884,6 +886,9 @@ void Con_Init (void) Cvar_RegisterVariable (&con_notifytime); Cvar_RegisterVariable (&con_textsize); Cvar_RegisterVariable (&con_chatsound); + Cvar_RegisterVariable (&con_chatsound_file); + Cvar_RegisterVariable (&con_chatsound_team_file); + Cvar_RegisterVariable (&con_chatsound_team_mask); // --blub Cvar_RegisterVariable (&con_nickcompletion); @@ -1156,28 +1161,17 @@ void Con_MaskPrint(int additionalmask, const char *msg) { if (con_chatsound.value) { - if(IS_NEXUIZ_DERIVED(gamemode)) - { - if(msg[1] == '\r' && cl.foundtalk2wav) - S_LocalSound ("sound/misc/talk2.wav"); - else - S_LocalSound ("sound/misc/talk.wav"); - } + if(msg[1] == con_chatsound_team_mask.integer && cl.foundteamchatsound) + S_LocalSound (con_chatsound_team_file.string); else - { - if (msg[1] == '(' && cl.foundtalk2wav) - S_LocalSound ("sound/misc/talk2.wav"); - else - S_LocalSound ("sound/misc/talk.wav"); - } + S_LocalSound (con_chatsound_file.string); } } - // Send to chatbox for say/tell (1) and messages (3) // 3 is just so that a message can be sent to the chatbox without a sound. if (*msg == 1 || *msg == 3) mask = CON_MASK_CHAT; - + line[index++] = STRING_COLOR_TAG; line[index++] = '3'; msg++; -- 2.39.2