]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications/all.qc
Merge branch 'master' into martin-t/globals
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications / all.qc
index 644d049d38e8d92c6f86ad49c8e3487fd5092380..b8e0d5c6998c8a37cc8ec5ea9d809116d2c3e235 100644 (file)
@@ -247,11 +247,11 @@ string Process_Notif_Args(
 
                                switch(strtolower(selected))
                                {
-                                       #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; }
-                                       #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; }
-                                       #define ARG_CASE_ARG_CS_SV(selected,result)    case selected: { ++sel_num; break; }
-                                       #define ARG_CASE_ARG_CS(selected,result)       case selected: { ++sel_num; break; }
-                                       #define ARG_CASE_ARG_SV(selected,result)       case selected: { ++sel_num; break; }
+                                       #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break;
+                                       #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break;
+                                       #define ARG_CASE_ARG_CS_SV(selected,result)    case selected: ++sel_num; break;
+                                       #define ARG_CASE_ARG_CS(selected,result)       case selected: ++sel_num; break;
+                                       #define ARG_CASE_ARG_SV(selected,result)       case selected: ++sel_num; break;
                                        #define ARG_CASE_ARG_DC(selected,result)
                                        #define ARG_CASE(prog,selected,result)         ARG_CASE_##prog(selected,result)
                                        NOTIF_ARGUMENT_LIST
@@ -298,7 +298,7 @@ string Process_Notif_Args(
 
                                switch(strtolower(selected))
                                {
-                                       #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; }
+                                       #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break;
                                        #define ARG_CASE_ARG_CS_SV_DC(selected,result)
                                        #define ARG_CASE_ARG_CS_SV(selected,result)
                                        #define ARG_CASE_ARG_CS(selected,result)
@@ -350,11 +350,11 @@ string Process_Notif_Args(
                                switch(strtolower(selected))
                                {
                                        #define ARG_CASE_ARG_CS_SV_HA(selected,result)
-                                       #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; }
+                                       #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break;
                                        #define ARG_CASE_ARG_CS_SV(selected,result)
                                        #define ARG_CASE_ARG_CS(selected,result)
                                        #define ARG_CASE_ARG_SV(selected,result)
-                                       #define ARG_CASE_ARG_DC(selected,result)       case selected: { ++sel_num; break; }
+                                       #define ARG_CASE_ARG_DC(selected,result)       case selected: ++sel_num; break;
                                        #define ARG_CASE(prog,selected,result)         ARG_CASE_##prog(selected,result)
                                        NOTIF_ARGUMENT_LIST
                                        #undef ARG_CASE
@@ -608,7 +608,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                // ======================
                                //  Process Notif String
                                // ======================
-                               #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN \
+                               #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN \
                                        notif.nent_string = strzone(CCR( \
                                                Process_Notif_Line( \
                                                        typeId, \
@@ -619,7 +619,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                                        stringname \
                                                )) \
                                        ); \
-                               MACRO_END
+                               MACRO_END
 
                                if(GENTLE)
                                {
@@ -777,60 +777,64 @@ void Notification_GetCvars(entity this)
 /** used to output notifications.cfg file */
 void Dump_Notifications(int fh, bool alsoprint)
 {
-       #define NOTIF_WRITE(a) MACRO_BEGIN { \
-               fputs(fh, a); \
-               if (alsoprint) LOG_INFO(a); \
-       } MACRO_END
+       #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,
@@ -838,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,
@@ -847,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,
@@ -855,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,
@@ -863,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,
@@ -1011,15 +1011,15 @@ string Local_Notification_sprintf(
                string tmp_s; // used by NOTIF_ARGUMENT_LIST
                switch (strtolower(selected))
                {
-                       #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: { arg_slot[sel_num++] = result; break; }
-                       #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; }
-                       #define ARG_CASE_ARG_CS_SV(selected, result)    case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: arg_slot[sel_num++] = result; break;
+                       #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break;
+                       #define ARG_CASE_ARG_CS_SV(selected, result)    case selected: arg_slot[sel_num++] = result; break;
 #ifdef CSQC
-                       #define ARG_CASE_ARG_CS(selected, result)       case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_CS(selected, result)       case selected: arg_slot[sel_num++] = result; break;
                        #define ARG_CASE_ARG_SV(selected, result)
 #else
                        #define ARG_CASE_ARG_CS(selected, result)
-                       #define ARG_CASE_ARG_SV(selected, result)       case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_SV(selected, result)       case selected: arg_slot[sel_num++] = result; break;
 #endif
                        #define ARG_CASE_ARG_DC(selected, result)
                        #define ARG_CASE(prog, selected, result)        ARG_CASE_##prog(selected, result)
@@ -1099,7 +1099,7 @@ void Local_Notification_HUD_Notify_Push(
                NOTIF_HIT_MAX(NOTIF_MAX_HUDARGS, "Local_Notification_HUD_Notify_Push");
                switch (strtolower(selected))
                {
-                       #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: arg_slot[sel_num++] = result; break;
                        #define ARG_CASE_ARG_CS_SV_DC(selected, result)
                        #define ARG_CASE_ARG_CS_SV(selected, result)
                        #define ARG_CASE_ARG_CS(selected, result)
@@ -1143,11 +1143,11 @@ void Local_Notification_centerprint_generic(
                switch (strtolower(selected))
                {
                        #define ARG_CASE_ARG_CS_SV_HA(selected, result)
-                       #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break;
                        #define ARG_CASE_ARG_CS_SV(selected, result)
                        #define ARG_CASE_ARG_CS(selected, result)
                        #define ARG_CASE_ARG_SV(selected, result)
-                       #define ARG_CASE_ARG_DC(selected, result)       case selected: { arg_slot[sel_num++] = result; break; }
+                       #define ARG_CASE_ARG_DC(selected, result)       case selected: arg_slot[sel_num++] = result; break;
                        #define ARG_CASE(prog, selected, result)        ARG_CASE_##prog(selected,result)
                        NOTIF_ARGUMENT_LIST
                        #undef ARG_CASE
@@ -1603,7 +1603,7 @@ void Send_Notification(
                //   2. Manually handling each separate call on per-usage basis (See old CTF usage of verbose)
                entity found_choice;
 
-               #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN \
+               #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN \
                        if (notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) { \
                                switch (CS(ent).msg_choice_choices[net_name.nent_choice_idx]) \
                                { \
@@ -1623,7 +1623,7 @@ void Send_Notification(
                                found_choice.nent_floatcount, \
                                s1, s2, s3, s4, \
                                f1, f2, f3, f4); \
-               MACRO_END
+               MACRO_END
 
                switch (broadcast)
                {