]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/miscfunctions.qc
fix audio channel assignment
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / miscfunctions.qc
index c573fe30518ee2c02591327918d0a1e43cf58375..ed8f84fc28bf128c3b2e340cb0e9c2233bb5307f 100644 (file)
@@ -8,7 +8,7 @@ void serverAnnouncer()
        // check for pending announcement, play it and remove it
        if(announce_snd != "")
        {
-               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/", announce_snd, ".wav"), VOL_BASEVOICE, ATTN_NONE);
+               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/", announce_snd, ".wav"), VOL_BASEVOICE, ATTN_NONE);
                strunzone(announce_snd);
                announce_snd = "";
        }
@@ -22,7 +22,7 @@ void restartAnnouncer_Think() {
                if (!spectatee_status) //do cprint only for players
                        centerprint("^1Begin!");
 
-               sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/begin.wav"), VOL_BASEVOICE, ATTN_NONE);
+               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/begin.wav"), VOL_BASEVOICE, ATTN_NONE);
                //reset maptime announcers now as well
                announcer_5min = announcer_1min = FALSE;
 
@@ -34,7 +34,7 @@ void restartAnnouncer_Think() {
                        centerprint(strcat("^1Game starts in ", ftos(countdown_rounded), " seconds"));
 
                if(countdown_rounded <= 3 && countdown_rounded >= 1) {
-                       sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/", ftos(countdown_rounded), ".wav"), VOL_BASEVOICE, ATTN_NONE);
+                       sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/", ftos(countdown_rounded), ".wav"), VOL_BASEVOICE, ATTN_NONE);
                }
 
                self.nextthink = getstatf(STAT_GAMESTARTTIME) - (countdown - 1);
@@ -45,54 +45,54 @@ void restartAnnouncer_Think() {
  * Plays the 1minute or 5 minutes (of maptime) remaining sound, if client wants it
  */
 void maptimeAnnouncer() {
-    float timelimit;
-    timelimit = getstatf(STAT_TIMELIMIT);
-    float timeleft;
-    timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
-
-    float warmuplimit;
-    float warmuptimeleft;
-    if(warmup_stage) {
-        warmuplimit = cvar("g_warmup_limit");
-        if(warmuplimit > 0) {
-           warmuptimeleft = max(0, warmuplimit + getstatf(STAT_GAMESTARTTIME) - time); 
-        }
-    }
-
-    //5 minute check
-    if (cvar("cl_sound_maptime_warning") >= 2) {
-        //make sure that after connect (and e.g. 4 minutes left) we will not get a wrong sound
-        if(announcer_5min)
-        {
+       float timelimit;
+       timelimit = getstatf(STAT_TIMELIMIT);
+       float timeleft;
+       timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time);
+
+       float warmuplimit;
+       float warmuptimeleft;
+       if(warmup_stage) {
+               warmuplimit = cvar("g_warmup_limit");
+               if(warmuplimit > 0) {
+                       warmuptimeleft = max(0, warmuplimit + getstatf(STAT_GAMESTARTTIME) - time); 
+               }
+       }
+
+       //5 minute check
+       if (cvar("cl_sound_maptime_warning") >= 2) {
+               //make sure that after connect (and e.g. 4 minutes left) we will not get a wrong sound
+               if(announcer_5min)
+               {
                        if(((!warmup_stage || warmuplimit == 0) && timeleft > 300) || (warmup_stage && warmuplimit > 0 && warmuptimeleft > 300))
                                announcer_5min = FALSE;
-        }
-        else if (((!warmup_stage || warmuplimit == 0) && timelimit > 0 && timeleft < 300 && timeleft > 299) || (warmup_stage && warmuplimit > 0 && warmuptimeleft < 300 && warmuptimeleft > 299))
-       //if we're in warmup mode, check whether there's a warmup timelimit
-        if not (warmuplimit == -1 && warmup_stage) {
-                       announcer_5min = TRUE;
-                       //dprint("i will play the sound, I promise!\n");
-                       sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/5minutesremain.wav"), VOL_BASEVOICE, ATTN_NONE);
                }
-    }
+               else if (((!warmup_stage || warmuplimit == 0) && timelimit > 0 && timeleft < 300 && timeleft > 299) || (warmup_stage && warmuplimit > 0 && warmuptimeleft < 300 && warmuptimeleft > 299))
+                       //if we're in warmup mode, check whether there's a warmup timelimit
+                       if not (warmuplimit == -1 && warmup_stage) {
+                               announcer_5min = TRUE;
+                               //dprint("i will play the sound, I promise!\n");
+                               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/5minutesremain.wav"), VOL_BASEVOICE, ATTN_NONE);
+                       }
+       }
 
-    //1 minute check
-    if (cvar("cl_sound_maptime_warning") == 1 || cvar("cl_sound_maptime_warning") == 3) {
-       if (announcer_1min)
-       {
+       //1 minute check
+       if (cvar("cl_sound_maptime_warning") == 1 || cvar("cl_sound_maptime_warning") == 3) {
+               if (announcer_1min)
+               {
                        if(((!warmup_stage || warmuplimit == 0) && timeleft > 60) || (warmup_stage && warmuplimit > 0 && warmuptimeleft > 60))
                                announcer_1min = FALSE;
-       }
-       else if (((!warmup_stage || warmuplimit == 0) && timelimit > 0 && timeleft < 60) || (warmup_stage && warmuplimit > 0 && warmuptimeleft < 60))
-       //if we're in warmup mode, check whether there's a warmup timelimit
-       if not (warmuplimit == -1 && warmup_stage) {
-                       announcer_1min = TRUE;
-                       sound(self, CHAN_VOICE, strcat("announcer/", cvar_string("cl_announcer"), "/1minuteremains.wav"), VOL_BASEVOICE, ATTN_NONE);
-       }
+               }
+               else if (((!warmup_stage || warmuplimit == 0) && timelimit > 0 && timeleft < 60) || (warmup_stage && warmuplimit > 0 && warmuptimeleft < 60))
+                       //if we're in warmup mode, check whether there's a warmup timelimit
+                       if not (warmuplimit == -1 && warmup_stage) {
+                               announcer_1min = TRUE;
+                               sound(world, CHAN_AUTO, strcat("announcer/", cvar_string("cl_announcer"), "/1minuteremains.wav"), VOL_BASEVOICE, ATTN_NONE);
+                       }
        }
 }
 
- /**
+/**
  * Announce carried items (e.g. flags in CTF).
  */
 float redflag_prev;
@@ -181,6 +181,10 @@ void Announcer_Precache () {
 
        precache_sound (strcat("announcer/", cvar_string("cl_announcer"), "/lastsecond.wav"));
        precache_sound (strcat("announcer/", cvar_string("cl_announcer"), "/narrowly.wav"));
+
+       precache_sound (strcat("announcer/", cvar_string("cl_announcer"), "/voteaccept.wav"));
+       precache_sound (strcat("announcer/", cvar_string("cl_announcer"), "/votecall.wav"));
+       precache_sound (strcat("announcer/", cvar_string("cl_announcer"), "/votefail.wav"));
 }
 
 void AuditLists()
@@ -320,19 +324,6 @@ vector HUD_GetFontsize(string cvarname)
        return v;
 }
 
-float HUD_GetWidth(float teamcolumnwidth)
-{
-       float f;
-       f = cvar("hud_width");
-       if(f == 0)
-               f = 640;
-       if(f < 320)
-               f = 320;
-       if(f > vid_conwidth - 2 * teamcolumnwidth)
-               f = vid_conwidth - 2 * teamcolumnwidth;
-       return f;
-}
-
 float PreviewExists(string name)
 {
        float f;
@@ -472,41 +463,41 @@ void drawpic_tiled(vector pos, string pic, vector sz, vector area, vector color,
 var float imgaspect;
 var float aspect;
 #define drawpic_aspect(pos,pic,mySize,color,alpha,drawflag)\
-do {\
-       vector imgsize;\
-       imgsize = drawgetimagesize(pic);\
-       imgaspect = imgsize_x/imgsize_y;\
-       vector oldsz, sz;\
-       oldsz = sz = mySize;\
-       aspect = sz_x/sz_y;\
-       if(aspect > imgaspect) {\
-               sz_x = sz_y * imgaspect;\
-               drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag);\
-       } else {\
-               sz_y = sz_x / imgaspect;\
-               drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag);\
-       }\
-} while(0)
+       do {\
+               vector imgsize;\
+               imgsize = drawgetimagesize(pic);\
+               imgaspect = imgsize_x/imgsize_y;\
+               vector oldsz, sz;\
+               oldsz = sz = mySize;\
+               aspect = sz_x/sz_y;\
+               if(aspect > imgaspect) {\
+                       sz_x = sz_y * imgaspect;\
+                       drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag);\
+               } else {\
+                       sz_y = sz_x / imgaspect;\
+                       drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag);\
+               }\
+       } while(0)
 
 // draw HUD element with image from gfx/hud/hud_skin/foo.tga if it exists, otherwise gfx/hud/default/foo.tga
 #define drawpic_aspect_skin(pos,pic,sz,color,alpha,drawflag)\
-do{\
-       picpath = strcat(hud_skin_path, "/", pic);\
-       if(precache_pic(picpath) == "") {\
-               picpath = strcat("gfx/hud/default/", pic);\
-       }\
-       drawpic_aspect(pos, picpath, sz, color, alpha, drawflag);\
-} while(0)
+       do{\
+               picpath = strcat(hud_skin_path, "/", pic);\
+               if(precache_pic(picpath) == "") {\
+                       picpath = strcat("gfx/hud/default/", pic);\
+               }\
+               drawpic_aspect(pos, picpath, sz, color, alpha, drawflag);\
+       } while(0)
 
 // draw HUD element with image from gfx/hud/hud_skin/foo.tga if it exists, otherwise gfx/hud/default/foo.tga
 #define drawpic_skin(pos,pic,sz,color,alpha,drawflag)\
-do{\
-       picpath = strcat(hud_skin_path, "/", pic);\
-       if(precache_pic(picpath) == "") {\
-               picpath = strcat("gfx/hud/default/", pic);\
-       }\
-       drawpic(pos, picpath, sz, color, alpha, drawflag);\
-} while(0)
+       do{\
+               picpath = strcat(hud_skin_path, "/", pic);\
+               if(precache_pic(picpath) == "") {\
+                       picpath = strcat("gfx/hud/default/", pic);\
+               }\
+               drawpic(pos, picpath, sz, color, alpha, drawflag);\
+       } while(0)
 
 void drawpic_aspect_skin_expanding(vector position, string pic, vector scale, vector rgb, float alpha, float flag, float fadelerp)
 {
@@ -526,7 +517,7 @@ void drawpic_aspect_skin_expanding_two(vector position, string pic, vector scale
 void drawstring_aspect(vector pos, string text, vector sz, vector color, float alpha, float drawflag) {
        vector textsize;
        textsize = eX * stringwidth(text, FALSE, '1 1 1' * sz_y) + eY * sz_y;
-       
+
        float textaspect;
        textaspect = textsize_x/textsize_y;
 
@@ -548,7 +539,7 @@ void drawstring_aspect(vector pos, string text, vector sz, vector color, float a
 void drawcolorcodedstring_aspect(vector pos, string text, vector sz, float alpha, float drawflag) {
        vector textsize;
        textsize = eX * stringwidth(text, TRUE, '1 1 1' * sz_y) + eY * sz_y;
-       
+
        float textaspect;
        textaspect = textsize_x/textsize_y;
 
@@ -574,7 +565,7 @@ void drawstring_expanding(vector position, string text, vector scale, vector rgb
 
        drawfontscale = sz * '1 1 0';
        dummyfunction(0, 0, 0, 0, 0, 0, 0, 0);
-        drawstring(position + expandingbox_resize_centered_box_offset(sz, scale, stringwidth(text, FALSE, scale * (sz / drawfontscale_x)) / (scale_x * sz)), text, scale * (sz / drawfontscale_x), rgb, alpha * (1 - fadelerp), flag);
+       drawstring(position + expandingbox_resize_centered_box_offset(sz, scale, stringwidth(text, FALSE, scale * (sz / drawfontscale_x)) / (scale_x * sz)), text, scale * (sz / drawfontscale_x), rgb, alpha * (1 - fadelerp), flag);
        // width parameter:
        //    (scale_x * sz / drawfontscale_x) * drawfontscale_x * SIZE1 / (scale_x * sz)
        //    SIZE1
@@ -585,7 +576,7 @@ void drawstring_expanding(vector position, string text, vector scale, vector rgb
 void drawstring_aspect_expanding(vector pos, string text, vector sz, vector color, float alpha, float drawflag, float fadelerp) {
        vector textsize;
        textsize = eX * stringwidth(text, FALSE, '1 1 1' * sz_y) + eY * sz_y;
-       
+
        float textaspect;
        textaspect = textsize_x/textsize_y;