]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications/all.qc
Merge branch 'master' into martin-t/mg-solidpen
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications / all.qc
index 04fc75e8f3872054c67da569944506f1740fe66b..663269c93558bac46a733f26d6c70a65e8921db7 100644 (file)
@@ -761,7 +761,7 @@ void Create_Notification_Entity_Choice(entity notif,
 #ifdef SVQC
 void Notification_GetCvars(entity this)
 {
-       FOREACH(Notifications, it.nent_type == MSG_CHOICE, {
+       FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                GetCvars_handleFloat(
                        this,
                        CS(this),
@@ -779,55 +779,62 @@ void Dump_Notifications(int fh, bool alsoprint)
 {
        #define NOTIF_WRITE(str) write_String_To_File(fh, str, alsoprint)
 
-       #define NOTIF_WRITE_ENTITY(e, description) MACRO_BEGIN \
-               string notif_msg = sprintf( \
+       #define NOTIF_WRITE_ENTITY(e, description) \
+               NOTIF_WRITE(sprintf( \
                        "seta notification_%s \"%d\" \"%s\"\n", \
                        Get_Notif_CvarName(e), e.nent_default, description \
-               ); \
-               NOTIF_WRITE(notif_msg); \
-       MACRO_END
+               ))
 
-       #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) MACRO_BEGIN \
-               string notif_msg = sprintf( \
+       #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) \
+               NOTIF_WRITE(sprintf( \
                        "seta notification_%s \"%d\" \"%s\"\n" \
                        "seta notification_%s_ALLOWED \"%d\" \"%s\"\n", \
                        Get_Notif_CvarName(e), e.nent_default, descriptiona, \
                        Get_Notif_CvarName(e), e.nent_challow_def, descriptionb \
-               ); \
-               NOTIF_WRITE(notif_msg); \
-       MACRO_END
-
-       #define NOTIF_WRITE_HARDCODED(cvar, default, description) MACRO_BEGIN \
-               string notif_msg = sprintf( \
-                       "seta notification_%s \"%s\" \"%s\"\n", \
-                       cvar, default, description \
-               ); \
-               NOTIF_WRITE(notif_msg); \
-       MACRO_END
+               ))
+
+       #define NOTIF_WRITE_HARDCODED(cvar, default, description) \
+               NOTIF_WRITE("seta notification_" cvar " \"" default "\" \"" description "\"\n")
 
        // Note: This warning only applies to the notifications.cfg file that is output...
        // You ARE supposed to manually edit this function to add i.e. hard coded
        // notification variables for mutators or game modes or such and then
        // regenerate the notifications.cfg file from the new code.
 
-       NOTIF_WRITE("// ********************************************** //\n");
-       NOTIF_WRITE("// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n");
-       NOTIF_WRITE("// **                                          ** //\n");
-       NOTIF_WRITE("// **  This file is automatically generated    ** //\n");
-       NOTIF_WRITE("// **  by code with the command 'dumpnotifs'.  ** //\n");
-       NOTIF_WRITE("// **                                          ** //\n");
-       NOTIF_WRITE("// **  If you add a new notification, please   ** //\n");
-       NOTIF_WRITE("// **  regenerate this file with that command  ** //\n");
-       NOTIF_WRITE("// **  making sure that the output matches     ** //\n");
-       NOTIF_WRITE("// **  with the lists and defaults in code.    ** //\n");
-       NOTIF_WRITE("// **                                          ** //\n");
-       NOTIF_WRITE("// ********************************************** //\n");
+       NOTIF_WRITE(
+               "// ********************************************** //\n"
+               "// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n"
+               "// **                                          ** //\n"
+               "// **  This file is automatically generated    ** //\n"
+               "// **  by code with the command 'dumpnotifs'.  ** //\n"
+               "// **                                          ** //\n"
+               "// **  If you add a new notification, please   ** //\n"
+               "// **  regenerate this file with that command  ** //\n"
+               "// **  making sure that the output matches     ** //\n"
+               "// **  with the lists and defaults in code.    ** //\n"
+               "// **                                          ** //\n"
+               "// ********************************************** //\n");
 
        // These notifications will also append their string as a comment...
        // This is not necessary, and does not matter if they vary between config versions,
        // it is just a semi-helpful tool for those who want to manually change their user settings.
 
-       int NOTIF_ANNCE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_ANNCE, { ++NOTIF_ANNCE_COUNT; });
+       int NOTIF_ANNCE_COUNT = 0;
+       int NOTIF_INFO_COUNT = 0;
+       int NOTIF_CENTER_COUNT = 0;
+       int NOTIF_MULTI_COUNT = 0;
+       int NOTIF_CHOICE_COUNT = 0;
+       FOREACH(Notifications, true, {
+               switch (it.nent_type)
+               {
+                       case MSG_ANNCE: ++NOTIF_ANNCE_COUNT; break;
+                       case MSG_INFO: ++NOTIF_INFO_COUNT; break;
+                       case MSG_CENTER: ++NOTIF_CENTER_COUNT; break;
+                       case MSG_MULTI: ++NOTIF_MULTI_COUNT; break;
+                       case MSG_CHOICE: ++NOTIF_CHOICE_COUNT; break;
+               }
+       });
+
        NOTIF_WRITE(sprintf("\n// MSG_ANNCE notifications (count = %d):\n", NOTIF_ANNCE_COUNT));
        FOREACH(Notifications, it.nent_type == MSG_ANNCE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                NOTIF_WRITE_ENTITY(it,
@@ -835,7 +842,6 @@ void Dump_Notifications(int fh, bool alsoprint)
                );
        });
 
-       int NOTIF_INFO_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_INFO, { ++NOTIF_INFO_COUNT; });
        NOTIF_WRITE(sprintf("\n// MSG_INFO notifications (count = %d):\n", NOTIF_INFO_COUNT));
        FOREACH(Notifications, it.nent_type == MSG_INFO && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                NOTIF_WRITE_ENTITY(it,
@@ -844,7 +850,6 @@ void Dump_Notifications(int fh, bool alsoprint)
                );
        });
 
-       int NOTIF_CENTER_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CENTER, { ++NOTIF_CENTER_COUNT; });
        NOTIF_WRITE(sprintf("\n// MSG_CENTER notifications (count = %d):\n", NOTIF_CENTER_COUNT));
        FOREACH(Notifications, it.nent_type == MSG_CENTER && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                NOTIF_WRITE_ENTITY(it,
@@ -852,7 +857,6 @@ void Dump_Notifications(int fh, bool alsoprint)
                );
        });
 
-       int NOTIF_MULTI_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_MULTI, { ++NOTIF_MULTI_COUNT; });
        NOTIF_WRITE(sprintf("\n// MSG_MULTI notifications (count = %d):\n", NOTIF_MULTI_COUNT));
        FOREACH(Notifications, it.nent_type == MSG_MULTI && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                NOTIF_WRITE_ENTITY(it,
@@ -860,7 +864,6 @@ void Dump_Notifications(int fh, bool alsoprint)
                );
        });
 
-       int NOTIF_CHOICE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CHOICE, { ++NOTIF_CHOICE_COUNT; });
        NOTIF_WRITE(sprintf("\n// MSG_CHOICE notifications (count = %d):\n", NOTIF_CHOICE_COUNT));
        FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
                NOTIF_WRITE_ENTITY_CHOICE(it,