]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/announcer.qc
Merge branch 'LegendaryGuard/ttt' into z411/bai-server
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / announcer.qc
1 //FEATURE: Custom default announcers on the server side, that clients can override if desired
2
3 #ifdef GAMEQC
4 REGISTER_MUTATOR(announcer, true);
5 #endif
6
7 #ifdef SVQC
8
9 AUTOCVAR(sv_announcer, string, "", "Force client announcer to this");
10
11 MUTATOR_HOOKFUNCTION(announcer, Ent_Init, CBC_ORDER_FIRST)
12 {
13         WriteString(MSG_ONE, autocvar_sv_announcer);
14 }
15
16 #elif defined(CSQC)
17
18 string sv_announcer;
19
20 AUTOCVAR_SAVE(cl_announcer_force,                    bool,   false,      "Don't allow server to override default announcer");
21
22 void Announcer_Precache()
23 {
24         FOREACH(Notifications, it.nent_type == MSG_ANNCE, {
25                 if(it.nent_enabled)
26                         precache_sound(sprintf("announcer/%s/%s.wav", AnnouncerOption(), it.nent_snd));
27         });
28 }
29
30 MUTATOR_HOOKFUNCTION(announcer, AnnouncerOption)
31 {
32         if(autocvar_cl_announcer_force || sv_announcer == "" || !sv_announcer || autocvar_cl_announcer != "default")
33                 return false;
34
35         M_ARGV(0, string) = sv_announcer;
36 }
37
38 MUTATOR_HOOKFUNCTION(announcer, Ent_Init, CBC_ORDER_FIRST)
39 {
40         sv_announcer = strzone(ReadString());
41
42         if(sv_announcer != "" && sv_announcer) { Announcer_Precache(); }
43 }
44
45 #endif