]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Make chat sounds disableable
authorz411 <z411@omaera.org>
Fri, 9 Oct 2020 01:42:01 +0000 (22:42 -0300)
committerz411 <z411@omaera.org>
Fri, 9 Oct 2020 01:42:01 +0000 (22:42 -0300)
qcsrc/client/main.qc
qcsrc/common/replicate.qh
qcsrc/server/autocvars.qh
qcsrc/server/client.qc
qcsrc/server/client.qh
qcsrc/server/command/cmd.qc
qcsrc/server/world.qc

index 74bb88ca901cbf6cb32fdf8e4fddd57ac7f58c84..f10cf8fcf82f9b0f0e2e950250a1742a5225bcf6 100644 (file)
@@ -95,6 +95,9 @@ void CSQC_Init()
        registercvar("cl_weapon_switch_fallback_to_impulse", "1");
 
        registercvar("cl_allow_uidranking", "1");
+       
+       // z411
+       registercvar("cl_chat_sounds", "1");
 
        if(autocvar_cl_lockview)
                cvar_set("cl_lockview", "0");
index 304cf389e739b8412b226740dca5c4940ced2533..17e01ca5730f95d7acdd299d1350e0bc46330365 100644 (file)
@@ -10,6 +10,7 @@
        float cvar_cl_autotaunt;
        float cvar_cl_clippedspectating;
        int cvar_cl_gunalign;
+       bool cvar_cl_chat_sounds;
        float cvar_cl_handicap;
        float cvar_cl_jetpack_jump;
        float cvar_cl_movement_track_canjump;
@@ -28,6 +29,7 @@
 #elif defined(SVQC)
        .float cvar_cl_handicap;
        .int cvar_cl_gunalign;
+       .bool cvar_cl_chat_sounds;
        .float cvar_cl_clippedspectating;
        .float cvar_cl_autoscreenshot;
        .float cvar_cl_jetpack_jump;
@@ -66,6 +68,7 @@ REPLICATE(cvar_cl_autoscreenshot, int, "cl_autoscreenshot");
 REPLICATE(cvar_cl_autotaunt, float, "cl_autotaunt");
 REPLICATE(cvar_cl_clippedspectating, bool, "cl_clippedspectating");
 REPLICATE(cvar_cl_gunalign, int, "cl_gunalign");
+REPLICATE(cvar_cl_chat_sounds, bool, "cl_chat_sounds");
 REPLICATE(cvar_cl_handicap, float, "cl_handicap");
 REPLICATE(cvar_cl_jetpack_jump, bool, "cl_jetpack_jump");
 REPLICATE(cvar_cl_movement_track_canjump, bool, "cl_movement_track_canjump");
index f2482b9dbc080e3bbfdd054edf1cceae711213a5..87aae71e316ee81d0e4fc7795b8d470d8449e48e 100644 (file)
@@ -125,12 +125,12 @@ bool autocvar_g_chat_tellprivacy;
 bool autocvar_g_forced_respawn;
 string autocvar_g_forced_team_otherwise; // TODO: Move to teamplay.qc
 
-bool autocvar_g_chat_sounds; // z411
-string autocvar_g_chat_sounds_list; // z411
-float autocvar_g_chat_sounds_flood; // z411
-bool autocvar_g_jingle_end; // z411
-string autocvar_g_jingle_end_list; // z411
-float autocvar_g_jingle_end_volume; // z411
+bool autocvar_sv_chat_sounds; // z411
+string autocvar_sv_chat_sounds_list; // z411
+float autocvar_sv_chat_sounds_flood; // z411
+bool autocvar_sv_jingle_end; // z411
+string autocvar_sv_jingle_end_list; // z411
+float autocvar_sv_jingle_end_volume; // z411
 
 #define autocvar_g_friendlyfire cvar("g_friendlyfire")
 #define autocvar_g_friendlyfire_virtual cvar("g_friendlyfire_virtual")
index 80c0a7ea379daae898e0b3f42292f07f0844c733..f04023547a6c9fc2993545e7cc125b2d3135d36b 100644 (file)
@@ -3204,18 +3204,17 @@ int Say(entity source, int teamsay, entity privatesay, string msgin, bool floodc
 
 bool play_chatsound(entity source, string msgin)
 {
-       if(autocvar_g_chat_sounds) {
+       if(autocvar_sv_chat_sounds && CS(source).cvar_cl_chat_sounds) {
                var .float flood_sound = floodcontrol_chatsound;
                
-               //bprintf("%d < %d", source.(flood_sound), time - autocvar_g_chat_sounds_flood);
-               
-               if (source.(flood_sound) < time - autocvar_g_chat_sounds_flood) {
+               if (source.(flood_sound) < time - autocvar_sv_chat_sounds_flood) {
                        string rawmsg;
                        rawmsg = strreplace("\n", " ", msgin);
                        
-                       //bprintf("msg is %s and list is %s\n", rawmsg, autocvar_g_chat_sounds_list);
-                       if (findinlist_abbrev(rawmsg, autocvar_g_chat_sounds_list)) {
-                               play2all(strcat("sound/chat/", rawmsg, ".ogg"));
+                       if (findinlist_abbrev(rawmsg, autocvar_sv_chat_sounds_list)) {
+                               string sndname = strcat("sound/chat/", rawmsg, ".ogg");
+                               
+                               FOREACH_CLIENT(IS_REAL_CLIENT(it) && CS(it).cvar_cl_chat_sounds, play2(it, sndname));
                                source.(flood_sound) = time;
                                
                                return true;
index b7b346e6851d2a0d5e367b75f526fb49528dbe37..c6c69380cf876c994645bffe570322fbe810860b 100644 (file)
@@ -29,7 +29,7 @@
 .string playerskin;
 
 void ClientState_attach(entity this);
-void play_chatsound(entity source, string msgin);
+bool play_chatsound(entity source, string msgin);
 
 IntrusiveList g_players;
 STATIC_INIT(g_players) { g_players = IL_NEW(); }
@@ -155,6 +155,7 @@ CLASS(Client, Object)
     ATTRIB(Client, cvar_cl_pokenade_type, string, this.cvar_cl_pokenade_type);
     ATTRIB(Client, cvar_cl_spawn_near_teammate, bool, this.cvar_cl_spawn_near_teammate);
     ATTRIB(Client, cvar_cl_gunalign, int, this.cvar_cl_gunalign);
+       ATTRIB(Client, cvar_cl_chat_sounds, bool, this.cvar_cl_chat_sounds);
     ATTRIB(Client, cvar_cl_handicap, float, this.cvar_cl_handicap);
     ATTRIB(Client, cvar_cl_clippedspectating, bool, this.cvar_cl_clippedspectating);
     ATTRIB(Client, cvar_cl_autoscreenshot, int, this.cvar_cl_autoscreenshot);
index cb838a433e99fb3832e51263b26a8754b8e26e60..b1d568ba13aba6f1086158cd963de5f425685ab0 100644 (file)
@@ -683,7 +683,7 @@ void ClientCommand_sounds(entity caller, int request)
        {
                case CMD_REQUEST_COMMAND:
                {
-                       sprint(caller, strcat("Available sounds: \n\n", autocvar_g_chat_sounds_list, "\n"));
+                       sprint(caller, strcat("Available sounds: \n\n", autocvar_sv_chat_sounds_list, "\n"));
                        return; // never fall through to usage
                }
 
index 9f340955831eb30631bad8d9dffb9a78fdd92901..e0181c92c3ae3dddca7de2062dae08beb48bdd8c 100644 (file)
@@ -414,7 +414,8 @@ void cvar_changes_init()
                BADPREFIX("sv_timeout_");
                BADPREFIX("sv_vote_");
                BADPREFIX("timelimit_");
-               BADPREFIX("g_jingle_");
+               BADPREFIX("sv_chat_");
+               BADPREFIX("sv_jingle_");
 
                // allowed changes to server admins (please sync this to server.cfg)
                // vi commands:
@@ -1628,12 +1629,12 @@ void NextLevel()
        target_music_kill();
        
        // z411
-       if(autocvar_g_jingle_end) {
+       if(autocvar_sv_jingle_end) {
                int jingles_len = 0;
                string jingles[32];
                jingles[0] = "";
                
-               FOREACH_WORD(autocvar_g_jingle_end_list, it,
+               FOREACH_WORD(autocvar_sv_jingle_end_list, it,
                {
                        jingles[jingles_len] = it;
                        jingles_len++;
@@ -1645,7 +1646,7 @@ void NextLevel()
                        FOREACH_CLIENT(IS_REAL_CLIENT(it),
                        {
                                stuffcmd(it, "cd stop\n");
-                               _sound(it, CH_INFO, strcat("jingle/", jingles[song_to_play], ".ogg"), VOL_BASE * autocvar_g_jingle_end_volume, ATTEN_NORM);
+                               _sound(it, CH_INFO, strcat("jingle/", jingles[song_to_play], ".ogg"), VOL_BASE * autocvar_sv_jingle_end_volume, ATTEN_NORM);
                        });
                }
        }