From e9d0ffb94e11ba791e719e4fc52d4e0ef8c841f9 Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Fri, 8 Feb 2013 06:51:00 -0500 Subject: [PATCH] Fixed the previous problem :D Plus this is optimized/faster than before --- qcsrc/common/notifications.qc | 59 ++++++++++++++++++----------------- qcsrc/common/notifications.qh | 8 ++--- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/qcsrc/common/notifications.qc b/qcsrc/common/notifications.qc index c605a0255..6b5d85c53 100644 --- a/qcsrc/common/notifications.qc +++ b/qcsrc/common/notifications.qc @@ -7,25 +7,28 @@ // get the actual name of a notification and return it as a string string Get_Field_Value(float field, float net_type, float net_name) { - string output = ""; - - #define GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) \ - switch(field) { \ - case F_NAME: { output = VAR_TO_TEXT(name); break; } \ - case F_STRNUM: { output = ftos(strnum); break; } \ - case F_FLNUM: { output = ftos(flnum); break; } } - + #define GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) switch(field) { \ + case F_NAME: { return VAR_TO_TEXT(name); } \ + case F_STRNUM: { return ftos(strnum); } \ + case F_FLNUM: { return ftos(flnum); } } + + #define CLPSE_GETVALUE(name,type,field) \ + #if name != NO_MSG \ + stof(Get_Field_Value(field, type, name)) \ + #else \ + 0 \ + #endif + switch(net_type) { case MSG_INFO: { - #define MSG_INFO_NOTIF(name,strnum,flnum,args,hudargs,icon,normal,gentle) \ - case name: { { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) } break; } + #define MSG_INFO_NOTIF(name,strnum,flnum,args,hudargs,icon,normal,gentle) case name: { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) } switch(net_name) { MSG_INFO_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_INFO, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_INFO, net_name = ", ftos(net_name), ".\n")); return ""; } } #undef MSG_INFO_NOTIF @@ -33,13 +36,12 @@ string Get_Field_Value(float field, float net_type, float net_name) } case MSG_CENTER: { - #define MSG_CENTER_NOTIF(name,strnum,flnum,args,cpid,durcnt,normal,gentle) \ - case name: { { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) } break; } + #define MSG_CENTER_NOTIF(name,strnum,flnum,args,cpid,durcnt,normal,gentle) case name: { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) } switch(net_name) { MSG_CENTER_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_CENTER, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_CENTER, net_name = ", ftos(net_name), ".\n")); return ""; } } #undef MSG_CENTER_NOTIF @@ -47,15 +49,14 @@ string Get_Field_Value(float field, float net_type, float net_name) } case MSG_WEAPON: { - #define MSG_WEAPON_NOTIF(name,infoname,centername) \ - case name: { { GET_FIELD_VALUE_OUTPUT(field,name, \ - max(stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername))), \ - max(stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)))) } break; } + #define MSG_WEAPON_NOTIF(name,infoname,centername) case name: { GET_FIELD_VALUE_OUTPUT(field,name, \ + max(CLPSE_GETVALUE(infoname, MSG_INFO, F_STRNUM), CLPSE_GETVALUE(centername, MSG_CENTER, F_STRNUM)), \ + max(CLPSE_GETVALUE(infoname, MSG_INFO, F_FLNUM), CLPSE_GETVALUE(centername, MSG_CENTER, F_FLNUM))) } switch(net_name) { MSG_WEAPON_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_WEAPON, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_WEAPON, net_name = ", ftos(net_name), ".\n")); return ""; } } #undef MSG_WEAPON_NOTIF @@ -63,15 +64,14 @@ string Get_Field_Value(float field, float net_type, float net_name) } case MSG_DEATH: { - #define MSG_DEATH_NOTIF(name,infoname,centername) \ - case name: { { GET_FIELD_VALUE_OUTPUT(field,name, \ - max(stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername))), \ - max(stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)))) } break; } + #define MSG_DEATH_NOTIF(name,infoname,centername) case name: { GET_FIELD_VALUE_OUTPUT(field,name, \ + max(CLPSE_GETVALUE(infoname, MSG_INFO, F_STRNUM), CLPSE_GETVALUE(centername, MSG_CENTER, F_STRNUM)), \ + max(CLPSE_GETVALUE(infoname, MSG_INFO, F_FLNUM), CLPSE_GETVALUE(centername, MSG_CENTER, F_FLNUM))) } switch(net_name) { MSG_DEATH_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_DEATH, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_DEATH, net_name = ", ftos(net_name), ".\n")); return ""; } } #undef MSG_DEATH_NOTIF @@ -80,7 +80,8 @@ string Get_Field_Value(float field, float net_type, float net_name) } #undef GET_FIELD_VALUE_OUTPUT - return output; + #undef CLPSE_GETVALUE + return ""; } #endif // ifndef MENUQC @@ -176,7 +177,7 @@ void Local_Notification(float net_type, float net_name, ...count) switch(net_name) { MSG_INFO_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_INFO, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_INFO, net_name = ", ftos(net_name), ".\n")); return; } } #undef MSG_INFO_NOTIF @@ -194,7 +195,7 @@ void Local_Notification(float net_type, float net_name, ...count) switch(net_name) { MSG_CENTER_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_CENTER, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_CENTER, net_name = ", ftos(net_name), ".\n")); return; } } #undef MSG_CENTER_NOTIF @@ -225,7 +226,7 @@ void Local_Notification(float net_type, float net_name, ...count) switch(net_name) { MSG_WEAPON_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_WEAPON, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_WEAPON, net_name = ", ftos(net_name), ".\n")); return; } } #undef MSG_WEAPON_NOTIF @@ -255,7 +256,7 @@ void Local_Notification(float net_type, float net_name, ...count) switch(net_name) { MSG_DEATH_NOTIFICATIONS - default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_DEATH, net_name = ", ftos(net_name), ".\n")); break; } + default: { backtrace(strcat("^1NOTIFICATION HAD NO MATCH: ^7net_type = MSG_DEATH, net_name = ", ftos(net_name), ".\n")); return; } } #undef MSG_DEATH_NOTIF diff --git a/qcsrc/common/notifications.qh b/qcsrc/common/notifications.qh index 0340b2b18..c55047bd0 100644 --- a/qcsrc/common/notifications.qh +++ b/qcsrc/common/notifications.qh @@ -623,7 +623,7 @@ float NOTIF_CPID_COUNT; { \ SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_INFO_COUNT) \ CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_INFO_COUNT, "notifications") \ - /*CHECK_NOTIFICATION_1("MSG_INFO", name, TRUE, normal, gentle)*/ \ + CHECK_NOTIFICATION_1("MSG_INFO", name, TRUE, normal, gentle) \ } \ ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name) @@ -638,7 +638,7 @@ float NOTIF_CPID_COUNT; SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_CENTER_COUNT) \ SET_FIELD_COUNT(cpid, NOTIF_FIRST, NOTIF_CPID_COUNT) \ CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_CENTER_COUNT, "notifications") \ - /*CHECK_NOTIFICATION_1("MSG_CENTER", name, FALSE, normal, gentle)*/ \ + CHECK_NOTIFICATION_1("MSG_CENTER", name, FALSE, normal, gentle) \ } \ ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name) @@ -651,7 +651,7 @@ float NOTIF_CPID_COUNT; { \ SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_WEAPON_COUNT) \ CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_WEAPON_COUNT, "notifications") \ - /*CHECK_NOTIFICATION_2("MSG_WEAPON", name, infoname, centername)*/ \ + CHECK_NOTIFICATION_2("MSG_WEAPON", name, infoname, centername) \ } \ ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name) @@ -664,7 +664,7 @@ float NOTIF_CPID_COUNT; { \ SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_DEATH_COUNT) \ CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_DEATH_COUNT, "notifications") \ - /*CHECK_NOTIFICATION_2("MSG_DEATH", name, infoname, centername)*/ \ + CHECK_NOTIFICATION_2("MSG_DEATH", name, infoname, centername) \ } \ ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name) -- 2.39.2