]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications.qc
#includes: cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications.qc
index 24e20aa75296d7f77a735e292f99de272c7c285d..600ddaa1b3237301833480c7ef92cb901333b1a0 100644 (file)
@@ -1,11 +1,8 @@
 #if defined(CSQC)
 #elif defined(MENUQC)
 #elif defined(SVQC)
 #if defined(CSQC)
 #elif defined(MENUQC)
 #elif defined(SVQC)
-       #include "../dpdefs/progsdefs.qh"
-    #include "../dpdefs/dpextensions.qh"
     #include "constants.qh"
     #include "teams.qh"
     #include "constants.qh"
     #include "teams.qh"
-    #include "counting.qh"
     #include "../server/autocvars.qh"
     #include "../server/constants.qh"
     #include "../server/defs.qh"
     #include "../server/autocvars.qh"
     #include "../server/constants.qh"
     #include "../server/defs.qh"
@@ -70,7 +67,7 @@ string Notification_CheckArgs_TypeName(float net_type, float net_name)
 {
        // check supplied type and name for errors
        string checkargs = "";
 {
        // check supplied type and name for errors
        string checkargs = "";
-       #define CHECKARG_TYPENAME(type) case MSG_##type##: \
+       #define CHECKARG_TYPENAME(type) case MSG_##type: \
                { if(!net_name || (net_name > NOTIF_##type##_COUNT)) \
                { checkargs = sprintf("Improper name: %d!", net_name); } break; }
        switch(net_type)
                { if(!net_name || (net_name > NOTIF_##type##_COUNT)) \
                { checkargs = sprintf("Improper name: %d!", net_name); } break; }
        switch(net_type)
@@ -297,7 +294,7 @@ string Process_Notif_Line(
        // done to both MSG_INFO and MSG_CENTER
        if(substring(input, (strlen(input) - 1), 1) == "\n")
        {
        // done to both MSG_INFO and MSG_CENTER
        if(substring(input, (strlen(input) - 1), 1) == "\n")
        {
-               printf(
+               LOG_INFOF(
                        strcat(
                                "^1TRAILING NEW LINE AT END OF NOTIFICATION: ",
                                "^7net_type = %s, net_name = %s, string = %s.\n"
                        strcat(
                                "^1TRAILING NEW LINE AT END OF NOTIFICATION: ",
                                "^7net_type = %s, net_name = %s, string = %s.\n"
@@ -322,7 +319,7 @@ string Process_Notif_Args(
        string selected, remaining = args;
        float sel_num = 0;
 
        string selected, remaining = args;
        float sel_num = 0;
 
-       for(0;(remaining != "");)
+       for (;(remaining != "");)
        {
                selected = car(remaining); remaining = cdr(remaining);
 
        {
                selected = car(remaining); remaining = cdr(remaining);
 
@@ -332,7 +329,7 @@ string Process_Notif_Args(
                        {
                                if(sel_num == NOTIF_MAX_ARGS)
                                {
                        {
                                if(sel_num == NOTIF_MAX_ARGS)
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max args = %d.\n"
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max args = %d.\n"
@@ -364,7 +361,7 @@ string Process_Notif_Args(
                                        #undef ARG_CASE_ARG_CS_SV_HA
                                        default:
                                        {
                                        #undef ARG_CASE_ARG_CS_SV_HA
                                        default:
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                "^7net_type = %s, net_name = %s, args arg = '%s'.\n"
                                                        strcat(
                                                                "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                "^7net_type = %s, net_name = %s, args arg = '%s'.\n"
@@ -383,7 +380,7 @@ string Process_Notif_Args(
                        {
                                if(sel_num == NOTIF_MAX_HUDARGS)
                                {
                        {
                                if(sel_num == NOTIF_MAX_HUDARGS)
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max hudargs = %d.\n"
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max hudargs = %d.\n"
@@ -415,7 +412,7 @@ string Process_Notif_Args(
                                        #undef ARG_CASE_ARG_CS_SV_HA
                                        default:
                                        {
                                        #undef ARG_CASE_ARG_CS_SV_HA
                                        default:
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                "^7net_type = %s, net_name = %s, hudargs arg = '%s'.\n"
                                                        strcat(
                                                                "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                "^7net_type = %s, net_name = %s, hudargs arg = '%s'.\n"
@@ -434,7 +431,7 @@ string Process_Notif_Args(
                        {
                                if(sel_num == NOTIF_MAX_DURCNT)
                                {
                        {
                                if(sel_num == NOTIF_MAX_DURCNT)
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max durcnt = %d.\n"
                                                strcat(
                                                        "^1NOTIFICATION HAS TOO MANY ARGUMENTS: ",
                                                        "^7net_type = %s, net_name = %s, max durcnt = %d.\n"
@@ -469,7 +466,7 @@ string Process_Notif_Args(
                                                if(ftos(stof(selected)) != "") { ++sel_num; }
                                                else
                                                {
                                                if(ftos(stof(selected)) != "") { ++sel_num; }
                                                else
                                                {
-                                                       printf(
+                                                       LOG_INFOF(
                                                                strcat(
                                                                        "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                        "^7net_type = %s, net_name = %s, durcnt arg = '%s'.\n"
                                                                strcat(
                                                                        "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: ",
                                                                        "^7net_type = %s, net_name = %s, durcnt arg = '%s'.\n"
@@ -496,8 +493,8 @@ void Create_Notification_Entity(
        int typeId,
        int nameid,
        string namestring,
        int typeId,
        int nameid,
        string namestring,
-       float strnum,
-       float flnum,
+       int strnum,
+       int flnum,
        /* MSG_ANNCE */
        float channel,
        string snd,
        /* MSG_ANNCE */
        float channel,
        string snd,
@@ -607,7 +604,7 @@ void Create_Notification_Entity(
                                }
                                else
                                {
                                }
                                else
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1NOTIFICATION WITH NO SOUND: ",
                                                        "^7net_type = %s, net_name = %s.\n"
                                                strcat(
                                                        "^1NOTIFICATION WITH NO SOUND: ",
                                                        "^7net_type = %s, net_name = %s.\n"
@@ -654,7 +651,7 @@ void Create_Notification_Entity(
                                        }
                                        else if((hudargs == "") && (durcnt ==""))
                                        {
                                        }
                                        else if((hudargs == "") && (durcnt ==""))
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION HAS ARG COUNTS BUT NO ARGS OR HUDARGS OR DURCNT: ",
                                                                "^7net_type = %s, net_name = %s, strnum = %d, flnum = %d\n"
                                                        strcat(
                                                                "^1NOTIFICATION HAS ARG COUNTS BUT NO ARGS OR HUDARGS OR DURCNT: ",
                                                                "^7net_type = %s, net_name = %s, strnum = %d, flnum = %d\n"
@@ -688,7 +685,7 @@ void Create_Notification_Entity(
                                        if(icon != "") { notif.nent_icon = strzone(icon); }
                                        else
                                        {
                                        if(icon != "") { notif.nent_icon = strzone(icon); }
                                        else
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION HAS HUDARGS BUT NO ICON: ",
                                                                "^7net_type = %s, net_name = %s.\n"
                                                        strcat(
                                                                "^1NOTIFICATION HAS HUDARGS BUT NO ICON: ",
                                                                "^7net_type = %s, net_name = %s.\n"
@@ -701,7 +698,7 @@ void Create_Notification_Entity(
                                }
                                else if(icon != "")
                                {
                                }
                                else if(icon != "")
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1NOTIFICATION HAS ICON BUT NO HUDARGS: ",
                                                        "^7net_type = %s, net_name = %s.\n"
                                                strcat(
                                                        "^1NOTIFICATION HAS ICON BUT NO HUDARGS: ",
                                                        "^7net_type = %s, net_name = %s.\n"
@@ -720,7 +717,7 @@ void Create_Notification_Entity(
                                        if(cpid != NO_MSG) { notif.nent_cpid = cpid; }
                                        else
                                        {
                                        if(cpid != NO_MSG) { notif.nent_cpid = cpid; }
                                        else
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION HAS DURCNT BUT NO CPID: ",
                                                                "^7net_type = %s, net_name = %s.\n"
                                                        strcat(
                                                                "^1NOTIFICATION HAS DURCNT BUT NO CPID: ",
                                                                "^7net_type = %s, net_name = %s.\n"
@@ -762,7 +759,7 @@ void Create_Notification_Entity(
                                // Check to make sure a string was chosen
                                if(notif.nent_string == "")
                                {
                                // Check to make sure a string was chosen
                                if(notif.nent_string == "")
                                {
-                                       printf(
+                                       LOG_INFOF(
                                                strcat(
                                                        "^1EMPTY NOTIFICATION: ",
                                                        "^7net_type = %s, net_name = %s.\n"
                                                strcat(
                                                        "^1EMPTY NOTIFICATION: ",
                                                        "^7net_type = %s, net_name = %s.\n"
@@ -782,7 +779,7 @@ void Create_Notification_Entity(
                        // Set MSG_MULTI string/float counts
                        if((anncename == NO_MSG) && (infoname == NO_MSG) && (centername == NO_MSG))
                        {
                        // Set MSG_MULTI string/float counts
                        if((anncename == NO_MSG) && (infoname == NO_MSG) && (centername == NO_MSG))
                        {
-                               printf(
+                               LOG_INFOF(
                                        strcat(
                                                "^1NOTIFICATION WITH NO SUBCALLS: ",
                                                "^7net_type = %s, net_name = %s.\n"
                                        strcat(
                                                "^1NOTIFICATION WITH NO SUBCALLS: ",
                                                "^7net_type = %s, net_name = %s.\n"
@@ -826,7 +823,7 @@ void Create_Notification_Entity(
                {
                        if((chtype == NO_MSG) || (optiona == NO_MSG) || (optionb == NO_MSG))
                        {
                {
                        if((chtype == NO_MSG) || (optiona == NO_MSG) || (optionb == NO_MSG))
                        {
-                               printf(
+                               LOG_INFOF(
                                        strcat(
                                                "^1NOTIFICATION IS MISSING CHOICE PARAMS: ",
                                                "^7net_type = %s, net_name = %s.\n"
                                        strcat(
                                                "^1NOTIFICATION IS MISSING CHOICE PARAMS: ",
                                                "^7net_type = %s, net_name = %s.\n"
@@ -873,7 +870,7 @@ void Create_Notification_Entity(
 
                                        default:
                                        {
 
                                        default:
                                        {
-                                               printf(
+                                               LOG_INFOF(
                                                        strcat(
                                                                "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                                                "^7net_type = %d, net_name = %s.\n"
                                                        strcat(
                                                                "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                                                "^7net_type = %d, net_name = %s.\n"
@@ -916,7 +913,7 @@ void Create_Notification_Entity(
 
                default:
                {
 
                default:
                {
-                       printf(
+                       LOG_INFOF(
                                strcat(
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
                                strcat(
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
@@ -946,8 +943,7 @@ void Create_Notification_Entity(
 #ifdef SVQC
 void Notification_GetCvars(void)
 {
 #ifdef SVQC
 void Notification_GetCvars(void)
 {
-       float i;
-       for(i = 0; i <= NOTIF_CHOICE_COUNT; ++i)
+       for(int i = 0; i <= NOTIF_CHOICE_COUNT; ++i)
        {
                GetCvars_handleFloat(
                        get_cvars_s,
        {
                GetCvars_handleFloat(
                        get_cvars_s,
@@ -964,7 +960,7 @@ void Dump_Notifications(float fh, float alsoprint)
 {
        #define NOTIF_WRITE(a) { \
                fputs(fh, a); \
 {
        #define NOTIF_WRITE(a) { \
                fputs(fh, a); \
-               if(alsoprint) { print(a); } }
+               if(alsoprint) { LOG_INFO(a); } }
        #define NOTIF_WRITE_ENTITY(description) { \
                notif_msg = \
                        sprintf( \
        #define NOTIF_WRITE_ENTITY(description) { \
                notif_msg = \
                        sprintf( \
@@ -1195,8 +1191,8 @@ void Debug_Notification(string input)
 {
        switch(autocvar_notification_debug)
        {
 {
        switch(autocvar_notification_debug)
        {
-               case 1: { dprint(input); break; }
-               case 2: { print(input); break; }
+               case 1: { LOG_TRACE(input); break; }
+               case 2: { LOG_INFO(input); break; }
        }
 }
 #endif
        }
 }
 #endif
@@ -1288,7 +1284,7 @@ void Local_Notification_sound(
                ));
                #endif
 
                ));
                #endif
 
-               sound(
+               _sound(
                        world,
                        soundchannel,
                        sprintf(
                        world,
                        soundchannel,
                        sprintf(
@@ -1376,15 +1372,13 @@ void Local_Notification_HUD_Notify_Push(
 
 void Local_Notification_centerprint_generic(
        string input, string durcnt,
 
 void Local_Notification_centerprint_generic(
        string input, string durcnt,
-       float cpid, float f1, float f2)
+       int cpid, float f1, float f2)
 {
 {
-       string selected;
-       float sel_num;
        arg_slot[0] = ""; arg_slot[1] = "";
 
        arg_slot[0] = ""; arg_slot[1] = "";
 
-       for(sel_num = 0;(durcnt != "");)
+       for(int sel_num = 0;(durcnt != "");)
        {
        {
-               selected = car(durcnt); durcnt = cdr(durcnt);
+               string selected = car(durcnt); durcnt = cdr(durcnt);
                NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic");
                switch(strtolower(selected))
                {
                NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic");
                switch(strtolower(selected))
                {
@@ -1425,7 +1419,7 @@ void Local_Notification_centerprint_generic(
 }
 #endif
 
 }
 #endif
 
-void Local_Notification(float net_type, float net_name, ...count)
+void Local_Notification(int net_type, int net_name, ...count)
 {
        // check if this should be aborted
        if(net_name == NOTIF_ABORT)
 {
        // check if this should be aborted
        if(net_name == NOTIF_ABORT)
@@ -1564,6 +1558,14 @@ void Local_Notification(float net_type, float net_name, ...count)
                        #ifdef CSQC
                        if(notif.nent_icon != "")
                        {
                        #ifdef CSQC
                        if(notif.nent_icon != "")
                        {
+                               if ( notif.nent_iconargs != "" )
+                               {
+                                       notif.nent_icon = Local_Notification_sprintf(
+                                               notif.nent_icon,notif.nent_iconargs,
+                                               s1, s2, s3, s4, f1, f2, f3, f4);
+                                       // remove the newline added by Local_Notification_sprintf
+                                       notif.nent_icon = strzone(substring(notif.nent_icon,0,strlen(notif.nent_icon)-1));
+                               }
                                Local_Notification_HUD_Notify_Push(
                                        notif.nent_icon,
                                        notif.nent_hudargs,
                                Local_Notification_HUD_Notify_Push(
                                        notif.nent_icon,
                                        notif.nent_hudargs,
@@ -1635,7 +1637,7 @@ void Local_Notification(float net_type, float net_name, ...count)
 
                        if(notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2)))
                        {
 
                        if(notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2)))
                        {
-                               switch(cvar_string(sprintf("notification_%s", notif.nent_name)))
+                               switch(cvar(sprintf("notification_%s", notif.nent_name)))
                                {
                                        case 1: found_choice = notif.nent_optiona; break;
                                        case 2: found_choice = notif.nent_optionb; break;
                                {
                                        case 1: found_choice = notif.nent_optiona; break;
                                        case 2: found_choice = notif.nent_optionb; break;
@@ -1657,7 +1659,7 @@ void Local_Notification(float net_type, float net_name, ...count)
 
 // WOVA = Without Variable Arguments
 void Local_Notification_WOVA(
 
 // WOVA = Without Variable Arguments
 void Local_Notification_WOVA(
-       float net_type, float net_name,
+       int net_type, float net_name,
        float stringcount, float floatcount,
        string s1, string s2, string s3, string s4,
        float f1, float f2, float f3, float f4)
        float stringcount, float floatcount,
        string s1, string s2, string s3, string s4,
        float f1, float f2, float f3, float f4)
@@ -1678,8 +1680,8 @@ void Local_Notification_WOVA(
 #ifdef CSQC
 void Read_Notification(float is_new)
 {
 #ifdef CSQC
 void Read_Notification(float is_new)
 {
-       float net_type = ReadByte();
-       float net_name = ReadShort();
+       int net_type = ReadByte();
+       int net_name = ReadShort();
 
        entity notif;
 
 
        entity notif;
 
@@ -1752,7 +1754,7 @@ void Read_Notification(float is_new)
 
 #ifdef SVQC
 void Net_Notification_Remove()
 
 #ifdef SVQC
 void Net_Notification_Remove()
-{
+{SELFPARAM();
        if (!self) { backtrace(sprintf("Net_Notification_Remove() at %f: Missing self!?\n", time)); return; }
 
        #ifdef NOTIFICATIONS_DEBUG
        if (!self) { backtrace(sprintf("Net_Notification_Remove() at %f: Missing self!?\n", time)); return; }
 
        #ifdef NOTIFICATIONS_DEBUG
@@ -1765,21 +1767,19 @@ void Net_Notification_Remove()
        ));
        #endif
 
        ));
        #endif
 
-       float i;
-       for(i = 0; i < 4; ++i) { if(self.nent_strings[i]) { strunzone(self.nent_strings[i]); } }
+       for(int i = 0; i < 4; ++i) { if(self.nent_strings[i]) { strunzone(self.nent_strings[i]); } }
        remove(self);
 }
 
        remove(self);
 }
 
-float Net_Write_Notification(entity client, float sf)
+bool Net_Write_Notification(entity this, entity client, int sf)
 {
        if(Notification_ShouldSend(self.nent_broadcast, client, self.nent_client))
        {
 {
        if(Notification_ShouldSend(self.nent_broadcast, client, self.nent_client))
        {
-               float i;
                WriteByte(MSG_ENTITY, ENT_CLIENT_NOTIFICATION);
                WriteByte(MSG_ENTITY, self.nent_net_type);
                WriteShort(MSG_ENTITY, self.nent_net_name);
                WriteByte(MSG_ENTITY, ENT_CLIENT_NOTIFICATION);
                WriteByte(MSG_ENTITY, self.nent_net_type);
                WriteShort(MSG_ENTITY, self.nent_net_name);
-               for(i = 0; i < self.nent_stringcount; ++i) { WriteString(MSG_ENTITY, self.nent_strings[i]); }
-               for(i = 0; i < self.nent_floatcount; ++i) { WriteLong(MSG_ENTITY, self.nent_floats[i]); }
+               for(int i = 0; i < self.nent_stringcount; ++i) { WriteString(MSG_ENTITY, self.nent_strings[i]); }
+               for(int i = 0; i < self.nent_floatcount; ++i) { WriteLong(MSG_ENTITY, self.nent_floats[i]); }
                return true;
        }
        else { return false; }
                return true;
        }
        else { return false; }
@@ -1958,6 +1958,12 @@ void Send_Notification(
 
        if((notif.nent_stringcount + notif.nent_floatcount) > count)
        {
 
        if((notif.nent_stringcount + notif.nent_floatcount) > count)
        {
+               string s =
+               #ifdef NOTIFICATIONS_DEBUG
+               Get_Notif_BroadcastName(broadcast);
+               #else
+               ftos(broadcast);
+               #endif
                backtrace(sprintf(
                        strcat(
                                "Not enough arguments for Send_Notification(%s, ...)! ",
                backtrace(sprintf(
                        strcat(
                                "Not enough arguments for Send_Notification(%s, ...)! ",
@@ -1965,13 +1971,8 @@ void Send_Notification(
                                "Check the definition and function call for accuracy...?\n"
                        ),
                        sprintf(
                                "Check the definition and function call for accuracy...?\n"
                        ),
                        sprintf(
-                               #ifdef NOTIFICATIONS_DEBUG
                                "%s, '%s', %s, %s",
                                "%s, '%s', %s, %s",
-                               Get_Notif_BroadcastName(broadcast),
-                               #else
-                               "%d, '%s', %s, %s",
-                               broadcast,
-                               #endif
+                               s,
                                client.classname,
                                Get_Notif_TypeName(net_type),
                                notif.nent_name
                                client.classname,
                                Get_Notif_TypeName(net_type),
                                notif.nent_name
@@ -1984,6 +1985,12 @@ void Send_Notification(
        }
        else if((notif.nent_stringcount + notif.nent_floatcount) < count)
        {
        }
        else if((notif.nent_stringcount + notif.nent_floatcount) < count)
        {
+               string s =
+               #ifdef NOTIFICATIONS_DEBUG
+               Get_Notif_BroadcastName(broadcast);
+               #else
+               ftos(broadcast);
+               #endif
                backtrace(sprintf(
                        strcat(
                                "Too many arguments for Send_Notification(%s, ...)! ",
                backtrace(sprintf(
                        strcat(
                                "Too many arguments for Send_Notification(%s, ...)! ",
@@ -1991,13 +1998,8 @@ void Send_Notification(
                                "Check the definition and function call for accuracy...?\n"
                        ),
                        sprintf(
                                "Check the definition and function call for accuracy...?\n"
                        ),
                        sprintf(
-                               #ifdef NOTIFICATIONS_DEBUG
                                "%s, '%s', %s, %s",
                                "%s, '%s', %s, %s",
-                               Get_Notif_BroadcastName(broadcast),
-                               #else
-                               "%d, '%s', %s, %s",
-                               broadcast,
-                               #endif
+                               s,
                                client.classname,
                                Get_Notif_TypeName(net_type),
                                notif.nent_name
                                client.classname,
                                Get_Notif_TypeName(net_type),
                                notif.nent_name
@@ -2042,7 +2044,7 @@ void Send_Notification(
                //   2. Manually handling each separate call on per-usage basis (See old CTF usage of verbose)
                entity found_choice;
 
                //   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) \
+               #define RECURSE_FROM_CHOICE(ent,action) do { \
                        if(notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) \
                        { \
                                switch(ent.msg_choice_choices[net_name - 1]) \
                        if(notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) \
                        { \
                                switch(ent.msg_choice_choices[net_name - 1]) \
@@ -2061,22 +2063,29 @@ void Send_Notification(
                                found_choice.nent_stringcount, \
                                found_choice.nent_floatcount, \
                                s1, s2, s3, s4, \
                                found_choice.nent_stringcount, \
                                found_choice.nent_floatcount, \
                                s1, s2, s3, s4, \
-                               f1, f2, f3, f4);
+                               f1, f2, f3, f4); \
+               } while(0)
 
                switch(broadcast)
                {
                        case NOTIF_ONE_ONLY: // we can potentially save processing power with this broadcast method
                        {
                                if(IS_REAL_CLIENT(client))
 
                switch(broadcast)
                {
                        case NOTIF_ONE_ONLY: // we can potentially save processing power with this broadcast method
                        {
                                if(IS_REAL_CLIENT(client))
-                                       { RECURSE_FROM_CHOICE(client, return) }
+                               {
+                                       RECURSE_FROM_CHOICE(client, return);
+                               }
                                break;
                        }
                        default:
                        {
                                entity to;
                                FOR_EACH_REALCLIENT(to)
                                break;
                        }
                        default:
                        {
                                entity to;
                                FOR_EACH_REALCLIENT(to)
-                                       { if(Notification_ShouldSend(broadcast, to, client))
-                                               { RECURSE_FROM_CHOICE(to, continue) } }
+                               {
+                                       if(Notification_ShouldSend(broadcast, to, client))
+                                       {
+                                               RECURSE_FROM_CHOICE(to, continue);
+                                       }
+                               }
                                break;
                        }
                }
                                break;
                        }
                }
@@ -2093,10 +2102,9 @@ void Send_Notification(
                net_notif.nent_stringcount = notif.nent_stringcount;
                net_notif.nent_floatcount = notif.nent_floatcount;
 
                net_notif.nent_stringcount = notif.nent_stringcount;
                net_notif.nent_floatcount = notif.nent_floatcount;
 
-               float i;
-               for(i = 0; i < net_notif.nent_stringcount; ++i)
+               for(int i = 0; i < net_notif.nent_stringcount; ++i)
                        { net_notif.nent_strings[i] = strzone(...(i, string)); }
                        { net_notif.nent_strings[i] = strzone(...(i, string)); }
-               for(i = 0; i < net_notif.nent_floatcount; ++i)
+               for(int i = 0; i < net_notif.nent_floatcount; ++i)
                        { net_notif.nent_floats[i] = ...((net_notif.nent_stringcount + i), float); }
 
                net_notif.think = Net_Notification_Remove;
                        { net_notif.nent_floats[i] = ...((net_notif.nent_stringcount + i), float); }
 
                net_notif.think = Net_Notification_Remove;