]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications.qc
Declare more ints as ints
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications.qc
index 4fd6e1f25dcc37373a00a04a565aec114867ddb2..a406df52419dc71d1bdf985e7aa963e83b988fa1 100644 (file)
@@ -1,9 +1,24 @@
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+       #include "../dpdefs/progsdefs.qh"
+    #include "../dpdefs/dpextensions.qh"
+    #include "constants.qh"
+    #include "teams.qh"
+    #include "counting.qh"
+    #include "../server/autocvars.qh"
+    #include "../server/constants.qh"
+    #include "../server/defs.qh"
+    #include "notifications.qh"
+    #include "../server/mutators/mutators_include.qh"
+#endif
+
 // ================================================
 //  Unified notification system, written by Samual
 //  Last updated: August, 2013
 // ================================================
 
 // ================================================
 //  Unified notification system, written by Samual
 //  Last updated: August, 2013
 // ================================================
 
-string Get_Notif_TypeName(float net_type)
+string Get_Notif_TypeName(int net_type)
 {
        switch(net_type)
        {
 {
        switch(net_type)
        {
@@ -18,7 +33,7 @@ string Get_Notif_TypeName(float net_type)
        return "";
 }
 
        return "";
 }
 
-entity Get_Notif_Ent(float net_type, float net_name)
+entity Get_Notif_Ent(int net_type, int net_name)
 {
        switch(net_type)
        {
 {
        switch(net_type)
        {
@@ -139,12 +154,12 @@ float Notification_ShouldSend(float broadcast, entity to_client, entity other_cl
                                        &&
                                        (to_client.enemy == other_client)
                                )
                                        &&
                                        (to_client.enemy == other_client)
                                )
-                       ) { return TRUE; }
+                       ) { return true; }
                        break;
                }
                case NOTIF_ONE_ONLY: // send ONLY to one client
                {
                        break;
                }
                case NOTIF_ONE_ONLY: // send ONLY to one client
                {
-                       if(to_client == other_client) { return TRUE; }
+                       if(to_client == other_client) { return true; }
                        break;
                }
                case NOTIF_TEAM: // send only to X team and their spectators
                        break;
                }
                case NOTIF_TEAM: // send only to X team and their spectators
@@ -157,7 +172,7 @@ float Notification_ShouldSend(float broadcast, entity to_client, entity other_cl
                                        &&
                                        (to_client.enemy.team == other_client.team)
                                )
                                        &&
                                        (to_client.enemy.team == other_client.team)
                                )
-                       ) { return TRUE; }
+                       ) { return true; }
                        break;
                }
                case NOTIF_TEAM_EXCEPT: // send only to X team and their spectators, except for Y person and their spectators
                        break;
                }
                case NOTIF_TEAM_EXCEPT: // send only to X team and their spectators, except for Y person and their spectators
@@ -178,12 +193,12 @@ float Notification_ShouldSend(float broadcast, entity to_client, entity other_cl
                                                )
                                        )
                                )
                                                )
                                        )
                                )
-                       ) { return TRUE; }
+                       ) { return true; }
                        break;
                }
                case NOTIF_ALL: // send to everyone
                {
                        break;
                }
                case NOTIF_ALL: // send to everyone
                {
-                       return TRUE;
+                       return true;
                }
                case NOTIF_ALL_EXCEPT: // send to everyone except X person and their spectators
                {
                }
                case NOTIF_ALL_EXCEPT: // send to everyone except X person and their spectators
                {
@@ -195,11 +210,11 @@ float Notification_ShouldSend(float broadcast, entity to_client, entity other_cl
                                        &&
                                        (to_client.enemy == other_client)
                                )
                                        &&
                                        (to_client.enemy == other_client)
                                )
-                       ) { return TRUE; }
+                       ) { return true; }
                        break;
                }
        }
                        break;
                }
        }
-       return FALSE;
+       return false;
 }
 
 #endif
 }
 
 #endif
@@ -224,15 +239,16 @@ void Destroy_Notification_Entity(entity notif)
 void Destroy_All_Notifications(void)
 {
        entity notif;
 void Destroy_All_Notifications(void)
 {
        entity notif;
-       float i;
+       int i;
 
 
-       #define DESTROY_LOOP(type,count) \
+       #define DESTROY_LOOP(type,count) do { \
                for(i = 1; i <= count; ++i) \
                { \
                        notif = Get_Notif_Ent(type, i); \
                        if (!notif) { backtrace("Destroy_All_Notifications(): Missing notification entity!\n"); return; } \
                        Destroy_Notification_Entity(notif); \
                for(i = 1; i <= count; ++i) \
                { \
                        notif = Get_Notif_Ent(type, i); \
                        if (!notif) { backtrace("Destroy_All_Notifications(): Missing notification entity!\n"); return; } \
                        Destroy_Notification_Entity(notif); \
-               }
+               } \
+       } while(0)
 
        // kill all networked notifications and centerprints
        #ifdef SVQC
 
        // kill all networked notifications and centerprints
        #ifdef SVQC
@@ -242,24 +258,24 @@ void Destroy_All_Notifications(void)
        #endif
 
        // kill all real notification entities
        #endif
 
        // kill all real notification entities
-       DESTROY_LOOP(MSG_ANNCE, NOTIF_ANNCE_COUNT)
-       DESTROY_LOOP(MSG_INFO, NOTIF_INFO_COUNT)
-       DESTROY_LOOP(MSG_CENTER, NOTIF_CENTER_COUNT)
-       DESTROY_LOOP(MSG_MULTI, NOTIF_MULTI_COUNT)
-       DESTROY_LOOP(MSG_CHOICE, NOTIF_CHOICE_COUNT)
+       DESTROY_LOOP(MSG_ANNCE, NOTIF_ANNCE_COUNT);
+       DESTROY_LOOP(MSG_INFO, NOTIF_INFO_COUNT);
+       DESTROY_LOOP(MSG_CENTER, NOTIF_CENTER_COUNT);
+       DESTROY_LOOP(MSG_MULTI, NOTIF_MULTI_COUNT);
+       DESTROY_LOOP(MSG_CHOICE, NOTIF_CHOICE_COUNT);
        #undef DESTROY_LOOP
 }
 
 string Process_Notif_Line(
        #undef DESTROY_LOOP
 }
 
 string Process_Notif_Line(
-       float typeid,
-       float chat,
+       int typeId,
+       bool chat,
        string input,
        string notiftype,
        string notifname,
        string stringtype)
 {
        #ifdef CSQC
        string input,
        string notiftype,
        string notifname,
        string stringtype)
 {
        #ifdef CSQC
-       if(typeid == MSG_INFO)
+       if(typeId == MSG_INFO)
        {
                if((chat && autocvar_notification_allow_chatboxprint)
                        || (autocvar_notification_allow_chatboxprint == 2))
        {
                if((chat && autocvar_notification_allow_chatboxprint)
                        || (autocvar_notification_allow_chatboxprint == 2))
@@ -290,7 +306,7 @@ string Process_Notif_Line(
                        notifname,
                        stringtype
                );
                        notifname,
                        stringtype
                );
-               notif_error = TRUE;
+               notif_error = true;
                input = substring(input, 1, (strlen(input) - 1));
        }
 
                input = substring(input, 1, (strlen(input) - 1));
        }
 
@@ -306,7 +322,7 @@ string Process_Notif_Args(
        string selected, remaining = args;
        float sel_num = 0;
 
        string selected, remaining = args;
        float sel_num = 0;
 
-       for(;(remaining != "");)
+       for (;(remaining != "");)
        {
                selected = car(remaining); remaining = cdr(remaining);
 
        {
                selected = car(remaining); remaining = cdr(remaining);
 
@@ -325,7 +341,7 @@ string Process_Notif_Args(
                                                notifname,
                                                NOTIF_MAX_ARGS
                                        );
                                                notifname,
                                                NOTIF_MAX_ARGS
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                        break;
                                }
 
                                        break;
                                }
 
@@ -357,7 +373,7 @@ string Process_Notif_Args(
                                                        notifname,
                                                        selected
                                                );
                                                        notifname,
                                                        selected
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                                break;
                                        }
                                }
                                                break;
                                        }
                                }
@@ -376,7 +392,7 @@ string Process_Notif_Args(
                                                notifname,
                                                NOTIF_MAX_HUDARGS
                                        );
                                                notifname,
                                                NOTIF_MAX_HUDARGS
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                        break;
                                }
 
                                        break;
                                }
 
@@ -408,7 +424,7 @@ string Process_Notif_Args(
                                                        notifname,
                                                        selected
                                                );
                                                        notifname,
                                                        selected
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                                break;
                                        }
                                }
                                                break;
                                        }
                                }
@@ -427,7 +443,7 @@ string Process_Notif_Args(
                                                notifname,
                                                NOTIF_MAX_DURCNT
                                        );
                                                notifname,
                                                NOTIF_MAX_DURCNT
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                        break;
                                }
 
                                        break;
                                }
 
@@ -462,7 +478,7 @@ string Process_Notif_Args(
                                                                notifname,
                                                                selected
                                                        );
                                                                notifname,
                                                                selected
                                                        );
-                                                       notif_error = TRUE;
+                                                       notif_error = true;
                                                }
                                                break;
                                        }
                                                }
                                                break;
                                        }
@@ -477,11 +493,11 @@ string Process_Notif_Args(
 void Create_Notification_Entity(
        float var_default,
        float var_cvar,
 void Create_Notification_Entity(
        float var_default,
        float var_cvar,
-       float typeid,
-       float nameid,
+       int typeId,
+       int nameid,
        string namestring,
        string namestring,
-       float strnum,
-       float flnum,
+       int strnum,
+       int flnum,
        /* MSG_ANNCE */
        float channel,
        string snd,
        /* MSG_ANNCE */
        float channel,
        string snd,
@@ -496,21 +512,21 @@ void Create_Notification_Entity(
        string normal,
        string gentle,
        /* MSG_MULTI */
        string normal,
        string gentle,
        /* MSG_MULTI */
-       float anncename,
-       float infoname,
-       float centername,
+       int anncename,
+       int infoname,
+       int centername,
        /* MSG_CHOICE */
        float challow_def,
        float challow_var,
        /* MSG_CHOICE */
        float challow_def,
        float challow_var,
-       float chtype,
-       float optiona,
-       float optionb)
+       int chtype,
+       int optiona,
+       int optionb)
 {
        // =====================
        //  Global Entity Setup
        // =====================
        entity notif = spawn();
 {
        // =====================
        //  Global Entity Setup
        // =====================
        entity notif = spawn();
-       switch(typeid)
+       switch(typeId)
        {
                case MSG_ANNCE:
                {
        {
                case MSG_ANNCE:
                {
@@ -550,7 +566,7 @@ void Create_Notification_Entity(
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
                                ),
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
                                ),
-                               typeid,
+                               typeId,
                                namestring
                        ));
                        return; // It's not possible to recover from this one
                                namestring
                        ));
                        return; // It's not possible to recover from this one
@@ -558,19 +574,19 @@ void Create_Notification_Entity(
        }
        notif.nent_default = var_default;
        notif.nent_enabled = (1 <= var_cvar);
        }
        notif.nent_default = var_default;
        notif.nent_enabled = (1 <= var_cvar);
-       notif.nent_type = typeid;
+       notif.nent_type = typeId;
        notif.nent_id = nameid;
        notif.nent_name = strzone(namestring);
 
        notif.nent_id = nameid;
        notif.nent_name = strzone(namestring);
 
-       string typestring = Get_Notif_TypeName(typeid);
+       string typestring = Get_Notif_TypeName(typeId);
 
        // Other pre-notif-setup requisites
 
        // Other pre-notif-setup requisites
-       notif_error = FALSE;
+       notif_error = false;
 
        // ====================
        //  Notification Setup
        // ====================
 
        // ====================
        //  Notification Setup
        // ====================
-       switch(typeid)
+       switch(typeId)
        {
                case MSG_ANNCE:
                {
        {
                case MSG_ANNCE:
                {
@@ -599,12 +615,12 @@ void Create_Notification_Entity(
                                                typestring,
                                                namestring
                                        );
                                                typestring,
                                                namestring
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                }
                        }
                                }
                        }
-                       else { notif.nent_enabled = FALSE; }
+                       else { notif.nent_enabled = false; }
                        #else
                        #else
-                       notif.nent_enabled = FALSE;
+                       notif.nent_enabled = false;
                        #endif
 
                        break;
                        #endif
 
                        break;
@@ -621,7 +637,7 @@ void Create_Notification_Entity(
                        #ifdef SVQC
                        float should_process_args = server_is_dedicated;
                        #else
                        #ifdef SVQC
                        float should_process_args = server_is_dedicated;
                        #else
-                       float should_process_args = TRUE;
+                       float should_process_args = true;
                        #endif
 
                        if(should_process_args)
                        #endif
 
                        if(should_process_args)
@@ -648,7 +664,7 @@ void Create_Notification_Entity(
                                                        strnum,
                                                        flnum
                                                );
                                                        strnum,
                                                        flnum
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                        }
                                }
                                else if(args != "")
                                        }
                                }
                                else if(args != "")
@@ -680,7 +696,7 @@ void Create_Notification_Entity(
                                                        typestring,
                                                        namestring
                                                );
                                                        typestring,
                                                        namestring
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                        }
                                }
                                else if(icon != "")
                                        }
                                }
                                else if(icon != "")
@@ -693,7 +709,7 @@ void Create_Notification_Entity(
                                                typestring,
                                                namestring
                                        );
                                                typestring,
                                                namestring
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                }
 
                                if(durcnt != "")
                                }
 
                                if(durcnt != "")
@@ -712,7 +728,7 @@ void Create_Notification_Entity(
                                                        typestring,
                                                        namestring
                                                );
                                                        typestring,
                                                        namestring
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                        }
                                }
                                else if(cpid != NO_MSG) { notif.nent_cpid = cpid; }
                                        }
                                }
                                else if(cpid != NO_MSG) { notif.nent_cpid = cpid; }
@@ -722,25 +738,25 @@ void Create_Notification_Entity(
                                // ======================
                                //  Process Notif String
                                // ======================
                                // ======================
                                //  Process Notif String
                                // ======================
-                               #define SET_NOTIF_STRING(string,stringname) \
+                               #define SET_NOTIF_STRING(string,stringname) do { \
                                        notif.nent_string = strzone(CCR( \
                                                Process_Notif_Line( \
                                        notif.nent_string = strzone(CCR( \
                                                Process_Notif_Line( \
-                                                       typeid, \
+                                                       typeId, \
                                                        (var_cvar > 1), \
                                                        string, \
                                                        typestring, \
                                                        namestring, \
                                                        stringname \
                                                )) \
                                                        (var_cvar > 1), \
                                                        string, \
                                                        typestring, \
                                                        namestring, \
                                                        stringname \
                                                )) \
-                                       );
+                                       ); \
+                               } while(0)
 
                                if(GENTLE)
                                {
 
                                if(GENTLE)
                                {
-                                       if(gentle != "") { SET_NOTIF_STRING(gentle, "GENTLE") }
-                                       else if(normal != "") { SET_NOTIF_STRING(normal, "NORMAL") }
+                                       if(gentle != "") { SET_NOTIF_STRING(gentle, "GENTLE"); }
+                                       else if(normal != "") { SET_NOTIF_STRING(normal, "NORMAL"); }
                                }
                                }
-                               else if(normal != "") { SET_NOTIF_STRING(normal, "NORMAL") }
-
+                               else if(normal != "") { SET_NOTIF_STRING(normal, "NORMAL"); }
                                #undef SET_NOTIF_STRING
 
                                // Check to make sure a string was chosen
                                #undef SET_NOTIF_STRING
 
                                // Check to make sure a string was chosen
@@ -754,7 +770,7 @@ void Create_Notification_Entity(
                                                typestring,
                                                namestring
                                        );
                                                typestring,
                                                namestring
                                        );
-                                       notif_error = TRUE;
+                                       notif_error = true;
                                }
                        }
 
                                }
                        }
 
@@ -774,7 +790,7 @@ void Create_Notification_Entity(
                                        typestring,
                                        namestring
                                );
                                        typestring,
                                        namestring
                                );
-                               notif_error = TRUE;
+                               notif_error = true;
                        }
                        else
                        {
                        }
                        else
                        {
@@ -818,7 +834,7 @@ void Create_Notification_Entity(
                                        typestring,
                                        namestring
                                );
                                        typestring,
                                        namestring
                                );
-                               notif_error = TRUE;
+                               notif_error = true;
                        }
                        else
                        {
                        }
                        else
                        {
@@ -862,10 +878,10 @@ void Create_Notification_Entity(
                                                                "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                                                "^7net_type = %d, net_name = %s.\n"
                                                        ),
                                                                "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                                                "^7net_type = %d, net_name = %s.\n"
                                                        ),
-                                                       typeid,
+                                                       typeId,
                                                        namestring
                                                );
                                                        namestring
                                                );
-                                               notif_error = TRUE;
+                                               notif_error = true;
                                                break;
                                        }
                                }
                                                break;
                                        }
                                }
@@ -905,10 +921,10 @@ void Create_Notification_Entity(
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
                                ),
                                        "^1NOTIFICATION WITH IMPROPER TYPE: ",
                                        "^7net_type = %d, net_name = %s.\n"
                                ),
-                               typeid,
+                               typeId,
                                namestring
                        );
                                namestring
                        );
-                       notif_error = TRUE;
+                       notif_error = true;
                        break;
                }
        }
                        break;
                }
        }
@@ -916,8 +932,8 @@ void Create_Notification_Entity(
        // now check to see if any errors happened
        if(notif_error)
        {
        // now check to see if any errors happened
        if(notif_error)
        {
-               notif.nent_enabled = FALSE; // disable the notification so it can't cause trouble
-               notif_global_error = TRUE; // throw the red flag that an error happened on init
+               notif.nent_enabled = false; // disable the notification so it can't cause trouble
+               notif_global_error = true; // throw the red flag that an error happened on init
        }
 }
 
        }
 }
 
@@ -930,8 +946,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,
@@ -974,7 +989,7 @@ void Dump_Notifications(float fh, float alsoprint)
                NOTIF_WRITE(notif_msg) }
 
        string notif_msg;
                NOTIF_WRITE(notif_msg) }
 
        string notif_msg;
-       float i;
+       int i;
        entity e;
 
        // Note: This warning only applies to the notifications.cfg file that is output...
        entity e;
 
        // Note: This warning only applies to the notifications.cfg file that is output...
@@ -1007,7 +1022,7 @@ void Dump_Notifications(float fh, float alsoprint)
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
-                       "Notification control cvar: 0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled)"
+                       "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled"
                );
        }
 
                );
        }
 
@@ -1018,7 +1033,7 @@ void Dump_Notifications(float fh, float alsoprint)
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
-                       "Notification control cvar: 0 = off, 1 = print to console, "
+                       "0 = off, 1 = print to console, "
                        "2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
                );
        }
                        "2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
                );
        }
@@ -1030,7 +1045,7 @@ void Dump_Notifications(float fh, float alsoprint)
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
-                       "Notification control cvar: 0 = off, 1 = centerprint"
+                       "0 = off, 1 = centerprint"
                );
        }
 
                );
        }
 
@@ -1041,7 +1056,7 @@ void Dump_Notifications(float fh, float alsoprint)
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY(
-                       "Notification control cvar: 0 = off, 1 = trigger subcalls"
+                       "Enable this multiple notification"
                );
        }
 
                );
        }
 
@@ -1052,8 +1067,8 @@ void Dump_Notifications(float fh, float alsoprint)
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY_CHOICE(
                if (!e) { backtrace("Dump_Notifications(): Missing notification entity!\n"); return; }
 
                NOTIF_WRITE_ENTITY_CHOICE(
-                       "Notification control cvar: 0 = off, 1 = trigger option A subcall, 2 = trigger option B subcall",
-                       "Notification control cvar: 0 = off, 1 = allowed in warmup mode, 2 = always allowed"
+                       "Choice for this notification 0 = off, 1 = default message, 2 = verbose message",
+                       "Allow choice for this notification 0 = off, 1 = only in warmup mode, 2 = always"
                );
        }
 
                );
        }
 
@@ -1062,8 +1077,10 @@ void Dump_Notifications(float fh, float alsoprint)
 
        NOTIF_WRITE_HARDCODED(
                "allow_chatboxprint", "1",
 
        NOTIF_WRITE_HARDCODED(
                "allow_chatboxprint", "1",
-               "Allow notifications to be printed to chat box by setting notification cvar to 2 "
-               "(You can also set this cvar to 2 to force ALL notifications to be printed to the chatbox)"
+               "Allow INFO notifications to be printed to chat box"
+               "0 = do not allow, "
+               "1 = allow only if allowed by individual notification_INFO* cvars, "
+               "2 = force all INFO notifications to be printed to the chatbox"
        );
 
        NOTIF_WRITE_HARDCODED(
        );
 
        NOTIF_WRITE_HARDCODED(
@@ -1186,7 +1203,7 @@ void Debug_Notification(string input)
 string Local_Notification_sprintf(
        string input, string args,
        string s1, string s2, string s3, string s4,
 string Local_Notification_sprintf(
        string input, string args,
        string s1, string s2, string s3, string s4,
-       float f1, float f2, float f3, float f4)
+       int f1, float f2, float f3, float f4)
 {
        #ifdef NOTIFICATIONS_DEBUG
        Debug_Notification(sprintf(
 {
        #ifdef NOTIFICATIONS_DEBUG
        Debug_Notification(sprintf(
@@ -1199,7 +1216,7 @@ string Local_Notification_sprintf(
        #endif
 
        string selected;
        #endif
 
        string selected;
-       float sel_num;
+       int sel_num;
        for(sel_num = 0; sel_num < NOTIF_MAX_ARGS; ++sel_num) { arg_slot[sel_num] = ""; }
 
        string tmp_s;
        for(sel_num = 0; sel_num < NOTIF_MAX_ARGS; ++sel_num) { arg_slot[sel_num] = ""; }
 
        string tmp_s;
@@ -1207,7 +1224,7 @@ string Local_Notification_sprintf(
        for(sel_num = 0;(args != "");)
        {
                selected = car(args); args = cdr(args);
        for(sel_num = 0;(args != "");)
        {
                selected = car(args); args = cdr(args);
-               NOTIF_HIT_MAX(NOTIF_MAX_ARGS, "Local_Notification_sprintf")
+               NOTIF_HIT_MAX(NOTIF_MAX_ARGS, "Local_Notification_sprintf");
                switch(strtolower(selected))
                {
                        #ifdef CSQC
                switch(strtolower(selected))
                {
                        #ifdef CSQC
@@ -1316,13 +1333,13 @@ void Local_Notification_HUD_Notify_Push(
        float f1, float f2, float f3, float f4)
 {
        string selected;
        float f1, float f2, float f3, float f4)
 {
        string selected;
-       float sel_num;
        arg_slot[0] = ""; arg_slot[1] = "";
 
        arg_slot[0] = ""; arg_slot[1] = "";
 
+       int sel_num;
        for(sel_num = 0;(hudargs != "");)
        {
                selected = car(hudargs); hudargs = cdr(hudargs);
        for(sel_num = 0;(hudargs != "");)
        {
                selected = car(hudargs); hudargs = cdr(hudargs);
-               NOTIF_HIT_MAX(NOTIF_MAX_HUDARGS, "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; ++sel_num; break; }
                switch(strtolower(selected))
                {
                        #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { arg_slot[sel_num] = result; ++sel_num; break; }
@@ -1358,16 +1375,14 @@ 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);
-               NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic")
+               string selected = car(durcnt); durcnt = cdr(durcnt);
+               NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic");
                switch(strtolower(selected))
                {
                        #define ARG_CASE_ARG_CS_SV_HA(selected,result)
                switch(strtolower(selected))
                {
                        #define ARG_CASE_ARG_CS_SV_HA(selected,result)
@@ -1407,7 +1422,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)
@@ -1617,7 +1632,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;
@@ -1639,7 +1654,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)
@@ -1660,8 +1675,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;
 
@@ -1747,24 +1762,22 @@ 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)
+float Net_Write_Notification(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]); }
-               return TRUE;
+               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; }
+       else { return false; }
 }
 
 void Kill_Notification(
 }
 
 void Kill_Notification(
@@ -1829,7 +1842,7 @@ void Kill_Notification(
                net_notif.nent_client = client;
                net_notif.nent_net_type = MSG_CENTER_CPID;
                net_notif.nent_net_name = killed_cpid;
                net_notif.nent_client = client;
                net_notif.nent_net_type = MSG_CENTER_CPID;
                net_notif.nent_net_name = killed_cpid;
-               Net_LinkEntity(net_notif, FALSE, autocvar_notification_lifetime_runtime, Net_Write_Notification);
+               Net_LinkEntity(net_notif, false, autocvar_notification_lifetime_runtime, Net_Write_Notification);
        }
 
        for(notif = world; (notif = find(notif, classname, "net_notification"));)
        }
 
        for(notif = world; (notif = find(notif, classname, "net_notification"));)
@@ -2024,10 +2037,10 @@ 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))) \
                        { \
                        if(notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) \
                        { \
-                               switch(ent.msg_choice_choices[net_name]) \
+                               switch(ent.msg_choice_choices[net_name - 1]) \
                                { \
                                        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; \
@@ -2043,22 +2056,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;
                        }
                }
@@ -2075,10 +2095,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;
@@ -2090,7 +2109,7 @@ void Send_Notification(
                                autocvar_notification_lifetime_mapload
                        );
 
                                autocvar_notification_lifetime_mapload
                        );
 
-               Net_LinkEntity(net_notif, FALSE, 0, Net_Write_Notification);
+               Net_LinkEntity(net_notif, false, 0, Net_Write_Notification);
        }
 }
 
        }
 }