X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fnotifications%2Fall.qc;h=371bbebee41e69f05ec092cd9a3cada76937013e;hb=9a04df193299873a8133651e4579dbfc2253b717;hp=53f037c1dd1abf2ebf4e039bce3f1b011c58d1c5;hpb=a95f583ffc1c2f0a393262a550d1a3254b919a7e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/notifications/all.qc b/qcsrc/common/notifications/all.qc index 53f037c1d..371bbebee 100644 --- a/qcsrc/common/notifications/all.qc +++ b/qcsrc/common/notifications/all.qc @@ -85,11 +85,7 @@ bool Notification_ShouldSend(NOTIF broadcast, entity to_client, entity other_cli return ( (to_client == other_client) || - ( - IS_SPEC(to_client) - && - (to_client.enemy == other_client) - ) + (IS_SPEC(to_client) && (to_client.enemy == other_client)) ); case NOTIF_ONE_ONLY: return (to_client == other_client); @@ -163,7 +159,7 @@ void Destroy_All_Notifications() #ifdef SVQC Kill_Notification(NOTIF_ALL, NULL, MSG_Null, CPID_Null); #else - reset_centerprint_messages(); + centerprint_KillAll(); #endif // kill all real notification entities @@ -204,7 +200,7 @@ string Process_Notif_Line( LOG_INFOF( ( "^1TRAILING NEW LINE AT END OF NOTIFICATION: " - "^7net_type = %s, net_name = %s, string = %s.\n" + "^7net_type = %s, net_name = %s, string = %s." ), notiftype, notifname, @@ -239,7 +235,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION HAS TOO MANY ARGUMENTS: " - "^7net_type = %s, net_name = %s, max args = %d.\n" + "^7net_type = %s, net_name = %s, max args = %d." ), notiftype, notifname, @@ -251,11 +247,11 @@ string Process_Notif_Args( switch(strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS_SV(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_SV(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS_SV(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_SV(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_DC(selected,result) #define ARG_CASE(prog,selected,result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST @@ -271,7 +267,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: " - "^7net_type = %s, net_name = %s, args arg = '%s'.\n" + "^7net_type = %s, net_name = %s, args arg = '%s'." ), notiftype, notifname, @@ -290,7 +286,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION HAS TOO MANY ARGUMENTS: " - "^7net_type = %s, net_name = %s, max hudargs = %d.\n" + "^7net_type = %s, net_name = %s, max hudargs = %d." ), notiftype, notifname, @@ -302,7 +298,7 @@ string Process_Notif_Args( switch(strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_CS_SV_DC(selected,result) #define ARG_CASE_ARG_CS_SV(selected,result) #define ARG_CASE_ARG_CS(selected,result) @@ -322,7 +318,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: " - "^7net_type = %s, net_name = %s, hudargs arg = '%s'.\n" + "^7net_type = %s, net_name = %s, hudargs arg = '%s'." ), notiftype, notifname, @@ -341,7 +337,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION HAS TOO MANY ARGUMENTS: " - "^7net_type = %s, net_name = %s, max durcnt = %d.\n" + "^7net_type = %s, net_name = %s, max durcnt = %d." ), notiftype, notifname, @@ -354,11 +350,11 @@ string Process_Notif_Args( switch(strtolower(selected)) { #define ARG_CASE_ARG_CS_SV_HA(selected,result) - #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_CS_SV(selected,result) #define ARG_CASE_ARG_CS(selected,result) #define ARG_CASE_ARG_SV(selected,result) - #define ARG_CASE_ARG_DC(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_DC(selected,result) case selected: ++sel_num; break; #define ARG_CASE(prog,selected,result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST #undef ARG_CASE @@ -376,7 +372,7 @@ string Process_Notif_Args( LOG_INFOF( ( "^1NOTIFICATION WITH UNKNOWN TOKEN IN ARGUMENT STRING: " - "^7net_type = %s, net_name = %s, durcnt arg = '%s'.\n" + "^7net_type = %s, net_name = %s, durcnt arg = '%s'." ), notiftype, notifname, @@ -425,7 +421,7 @@ void Create_Notification_Entity(entity notif, LOG_INFOF( ( "^1NOTIFICATION WITH IMPROPER TYPE: " - "^7net_type = %d, net_name = %s.\n" + "^7net_type = %d, net_name = %s." ), typeId, namestring @@ -442,6 +438,8 @@ void Create_Notification_Entity(entity notif, } } +#define AnnouncerFilename(snd) sprintf("announcer/%s/%s.wav", AnnouncerOption(), snd) + void Create_Notification_Entity_Annce(entity notif, float var_cvar, string namestring, @@ -460,7 +458,7 @@ void Create_Notification_Entity_Annce(entity notif, { if(notif.nent_enabled) { - precache_sound(sprintf("announcer/%s/%s.wav", AnnouncerOption(), snd)); + precache_sound(AnnouncerFilename(snd)); notif.nent_channel = channel; notif.nent_snd = strzone(snd); notif.nent_vol = vol; @@ -473,7 +471,7 @@ void Create_Notification_Entity_Annce(entity notif, LOG_INFOF( ( "^1NOTIFICATION WITH NO SOUND: " - "^7net_type = %s, net_name = %s.\n" + "^7net_type = %s, net_name = %s." ), typestring, namestring @@ -531,7 +529,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, LOG_INFOF( ( "^1NOTIFICATION HAS ARG COUNTS BUT NO ARGS OR HUDARGS OR DURCNT: " - "^7net_type = %s, net_name = %s, strnum = %d, flnum = %d\n" + "^7net_type = %s, net_name = %s, strnum = %d, flnum = %d" ), typestring, namestring, @@ -565,7 +563,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, LOG_INFOF( ( "^1NOTIFICATION HAS HUDARGS BUT NO ICON: " - "^7net_type = %s, net_name = %s.\n" + "^7net_type = %s, net_name = %s." ), typestring, namestring @@ -610,7 +608,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, // ====================== // Process Notif String // ====================== - #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN { \ + #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN \ notif.nent_string = strzone(CCR( \ Process_Notif_Line( \ typeId, \ @@ -621,7 +619,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, stringname \ )) \ ); \ - } MACRO_END + MACRO_END if(GENTLE) { @@ -637,7 +635,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, LOG_INFOF( ( "^1EMPTY NOTIFICATION: " - "^7net_type = %s, net_name = %s.\n" + "^7net_type = %s, net_name = %s." ), typestring, namestring @@ -663,7 +661,7 @@ void Create_Notification_Entity_Multi(entity notif, LOG_INFOF( ( "^1NOTIFICATION WITH NO SUBCALLS: " - "^7net_type = %s, net_name = %s.\n" + "^7net_type = %s, net_name = %s." ), typestring, namestring @@ -715,7 +713,7 @@ void Create_Notification_Entity_Choice(entity notif, LOG_INFOF( ( "^1NOTIFICATION IS MISSING CHOICE PARAMS: " - "^7net_type = %s, net_name = %s.\n" + "^7net_type = %s, net_name = %s." ), typestring, namestring @@ -766,6 +764,7 @@ void Notification_GetCvars(entity this) FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { GetCvars_handleFloat( this, + CS(this), get_cvars_s, get_cvars_f, msg_choice_choices[it.nent_choice_idx], @@ -778,60 +777,64 @@ void Notification_GetCvars(entity this) /** used to output notifications.cfg file */ void Dump_Notifications(int fh, bool alsoprint) { - #define NOTIF_WRITE(a) MACRO_BEGIN { \ - fputs(fh, a); \ - if (alsoprint) LOG_INFO(a); \ - } MACRO_END + #define NOTIF_WRITE(str) write_String_To_File(fh, str, alsoprint) - #define NOTIF_WRITE_ENTITY(e, description) MACRO_BEGIN { \ - string notif_msg = sprintf( \ + #define NOTIF_WRITE_ENTITY(e, description) \ + NOTIF_WRITE(sprintf( \ "seta notification_%s \"%d\" \"%s\"\n", \ Get_Notif_CvarName(e), e.nent_default, description \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END + )) - #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) MACRO_BEGIN { \ - string notif_msg = sprintf( \ + #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) \ + NOTIF_WRITE(sprintf( \ "seta notification_%s \"%d\" \"%s\"\n" \ "seta notification_%s_ALLOWED \"%d\" \"%s\"\n", \ Get_Notif_CvarName(e), e.nent_default, descriptiona, \ Get_Notif_CvarName(e), e.nent_challow_def, descriptionb \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END - - #define NOTIF_WRITE_HARDCODED(cvar, default, description) MACRO_BEGIN { \ - string notif_msg = sprintf( \ - "seta notification_%s \"%s\" \"%s\"\n", \ - cvar, default, description \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END + )) + + #define NOTIF_WRITE_HARDCODED(cvar, default, description) \ + NOTIF_WRITE("seta notification_" cvar " \"" default "\" \"" description "\"\n") // Note: This warning only applies to the notifications.cfg file that is output... // You ARE supposed to manually edit this function to add i.e. hard coded // notification variables for mutators or game modes or such and then // regenerate the notifications.cfg file from the new code. - NOTIF_WRITE("// ********************************************** //\n"); - NOTIF_WRITE("// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ** This file is automatically generated ** //\n"); - NOTIF_WRITE("// ** by code with the command 'dumpnotifs'. ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ** If you add a new notification, please ** //\n"); - NOTIF_WRITE("// ** regenerate this file with that command ** //\n"); - NOTIF_WRITE("// ** making sure that the output matches ** //\n"); - NOTIF_WRITE("// ** with the lists and defaults in code. ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ********************************************** //\n"); + NOTIF_WRITE( + "// ********************************************** //\n" + "// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n" + "// ** ** //\n" + "// ** This file is automatically generated ** //\n" + "// ** by code with the command 'dumpnotifs'. ** //\n" + "// ** ** //\n" + "// ** If you add a new notification, please ** //\n" + "// ** regenerate this file with that command ** //\n" + "// ** making sure that the output matches ** //\n" + "// ** with the lists and defaults in code. ** //\n" + "// ** ** //\n" + "// ********************************************** //\n"); // These notifications will also append their string as a comment... // This is not necessary, and does not matter if they vary between config versions, // it is just a semi-helpful tool for those who want to manually change their user settings. - int NOTIF_ANNCE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_ANNCE, { ++NOTIF_ANNCE_COUNT; }); + int NOTIF_ANNCE_COUNT = 0; + int NOTIF_INFO_COUNT = 0; + int NOTIF_CENTER_COUNT = 0; + int NOTIF_MULTI_COUNT = 0; + int NOTIF_CHOICE_COUNT = 0; + FOREACH(Notifications, true, { + switch (it.nent_type) + { + case MSG_ANNCE: ++NOTIF_ANNCE_COUNT; break; + case MSG_INFO: ++NOTIF_INFO_COUNT; break; + case MSG_CENTER: ++NOTIF_CENTER_COUNT; break; + case MSG_MULTI: ++NOTIF_MULTI_COUNT; break; + case MSG_CHOICE: ++NOTIF_CHOICE_COUNT; break; + } + }); + NOTIF_WRITE(sprintf("\n// MSG_ANNCE notifications (count = %d):\n", NOTIF_ANNCE_COUNT)); FOREACH(Notifications, it.nent_type == MSG_ANNCE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -839,7 +842,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_INFO_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_INFO, { ++NOTIF_INFO_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_INFO notifications (count = %d):\n", NOTIF_INFO_COUNT)); FOREACH(Notifications, it.nent_type == MSG_INFO && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -848,7 +850,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_CENTER_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CENTER, { ++NOTIF_CENTER_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_CENTER notifications (count = %d):\n", NOTIF_CENTER_COUNT)); FOREACH(Notifications, it.nent_type == MSG_CENTER && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -856,7 +857,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_MULTI_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_MULTI, { ++NOTIF_MULTI_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_MULTI notifications (count = %d):\n", NOTIF_MULTI_COUNT)); FOREACH(Notifications, it.nent_type == MSG_MULTI && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -864,7 +864,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_CHOICE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CHOICE, { ++NOTIF_CHOICE_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_CHOICE notifications (count = %d):\n", NOTIF_CHOICE_COUNT)); FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY_CHOICE(it, @@ -1012,15 +1011,15 @@ string Local_Notification_sprintf( string tmp_s; // used by NOTIF_ARGUMENT_LIST switch (strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: { arg_slot[sel_num++] = result; break; } - #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } - #define ARG_CASE_ARG_CS_SV(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: arg_slot[sel_num++] = result; break; + #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; + #define ARG_CASE_ARG_CS_SV(selected, result) case selected: arg_slot[sel_num++] = result; break; #ifdef CSQC - #define ARG_CASE_ARG_CS(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE_ARG_SV(selected, result) #else #define ARG_CASE_ARG_CS(selected, result) - #define ARG_CASE_ARG_SV(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_SV(selected, result) case selected: arg_slot[sel_num++] = result; break; #endif #define ARG_CASE_ARG_DC(selected, result) #define ARG_CASE(prog, selected, result) ARG_CASE_##prog(selected, result) @@ -1048,9 +1047,7 @@ string Local_Notification_sprintf( } #ifdef CSQC -void Local_Notification_sound( - int soundchannel, string soundfile, - float soundvolume, float soundposition) +void Local_Notification_sound(int soundchannel, string soundfile, float soundvolume, float soundposition) { if ((soundfile != prev_soundfile) || (time >= (prev_soundtime + autocvar_cl_announcer_antispam))) { @@ -1058,30 +1055,15 @@ void Local_Notification_sound( Debug_Notification(sprintf( "Local_Notification_sound(%f, '%s', %f, %f);\n", soundchannel, - sprintf( - "announcer/%s/%s.wav", - AnnouncerOption(), - soundfile - ), + AnnouncerFilename(soundfile), soundvolume, soundposition )); #endif - _sound( - NULL, - soundchannel, - sprintf( - "announcer/%s/%s.wav", - AnnouncerOption(), - soundfile - ), - soundvolume, - soundposition - ); + _sound(NULL, soundchannel, AnnouncerFilename(soundfile), soundvolume, soundposition); - if (prev_soundfile) strunzone(prev_soundfile); - prev_soundfile = strzone(soundfile); + strcpy(prev_soundfile, soundfile); prev_soundtime = time; } else @@ -1089,15 +1071,11 @@ void Local_Notification_sound( #ifdef NOTIFICATIONS_DEBUG Debug_Notification(sprintf( ( - "Local_Notification_sound(NULL, %f, '%s', %f, %f) " + "Local_Notification_sound(%f, '%s', %f, %f) " "^1BLOCKED BY ANTISPAM:^7 prevsnd: '%s', timediff: %f, limit: %f\n" - ), - soundchannel, - sprintf( - "announcer/%s/%s.wav", - AnnouncerOption(), - soundfile ), + soundchannel, + AnnouncerFilename(soundfile), soundvolume, soundposition, prev_soundfile, @@ -1121,7 +1099,7 @@ void Local_Notification_HUD_Notify_Push( NOTIF_HIT_MAX(NOTIF_MAX_HUDARGS, "Local_Notification_HUD_Notify_Push"); switch (strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE_ARG_CS_SV_DC(selected, result) #define ARG_CASE_ARG_CS_SV(selected, result) #define ARG_CASE_ARG_CS(selected, result) @@ -1152,7 +1130,7 @@ void Local_Notification_HUD_Notify_Push( HUD_Notify_Push(icon, arg_slot[0], arg_slot[1]); } -void Local_Notification_centerprint_generic( +void Local_Notification_centerprint_Add( string input, string durcnt, CPID cpid, float f1, float f2) { @@ -1161,15 +1139,15 @@ void Local_Notification_centerprint_generic( for (int sel_num = 0; (durcnt != ""); ) { string selected = car(durcnt); durcnt = cdr(durcnt); - NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic"); + NOTIF_HIT_MAX(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_Add"); switch (strtolower(selected)) { #define ARG_CASE_ARG_CS_SV_HA(selected, result) - #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE_ARG_CS_SV(selected, result) #define ARG_CASE_ARG_CS(selected, result) #define ARG_CASE_ARG_SV(selected, result) - #define ARG_CASE_ARG_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE(prog, selected, result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST #undef ARG_CASE @@ -1182,14 +1160,14 @@ void Local_Notification_centerprint_generic( default: { if (/* wtf */ ftos(stof(selected)) != "") { arg_slot[sel_num++] = selected; } - else { NOTIF_HIT_UNKNOWN(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_generic") } + else { NOTIF_HIT_UNKNOWN(NOTIF_MAX_DURCNT, "Local_Notification_centerprint_Add") } break; } } } #ifdef NOTIFICATIONS_DEBUG Debug_Notification(sprintf( - "Local_Notification_centerprint_generic('%s^7', '%s', %d, %d, %d, %d);\n", + "Local_Notification_centerprint_Add('%s^7', '%s', %d, %d, %d, %d);\n", MakeConsoleSafe(input), durcnt, f1, f2, @@ -1197,7 +1175,7 @@ void Local_Notification_centerprint_generic( stof(arg_slot[1]) )); #endif - centerprint_generic(ORDINAL(cpid), input, stof(arg_slot[0]), stof(arg_slot[1])); + centerprint_Add(ORDINAL(cpid), input, stof(arg_slot[0]), stof(arg_slot[1])); } #endif @@ -1230,10 +1208,10 @@ void Local_Notification(MSG net_type, Notification net_name, ...count) return; } - string s1 = ((notif.nent_stringcount > 0) ? ...(0, string) : ""); - string s2 = ((notif.nent_stringcount > 1) ? ...(1, string) : ""); - string s3 = ((notif.nent_stringcount > 2) ? ...(2, string) : ""); - string s4 = ((notif.nent_stringcount > 3) ? ...(3, string) : ""); + string s1 = CCR((notif.nent_stringcount > 0) ? ...(0, string) : ""); + string s2 = CCR((notif.nent_stringcount > 1) ? ...(1, string) : ""); + string s3 = CCR((notif.nent_stringcount > 2) ? ...(2, string) : ""); + string s4 = CCR((notif.nent_stringcount > 3) ? ...(3, string) : ""); float f1 = ((notif.nent_floatcount > 0) ? ...((notif.nent_stringcount + 0), float) : 0); float f2 = ((notif.nent_floatcount > 1) ? ...((notif.nent_stringcount + 1), float) : 0); float f3 = ((notif.nent_floatcount > 2) ? ...((notif.nent_stringcount + 2), float) : 0); @@ -1271,12 +1249,7 @@ void Local_Notification(MSG net_type, Notification net_name, ...count) case MSG_ANNCE: { #ifdef CSQC - Local_Notification_sound( - notif.nent_channel, - notif.nent_snd, - notif.nent_vol, - notif.nent_position - ); + Local_Notification_sound(notif.nent_channel, notif.nent_snd, notif.nent_vol, notif.nent_position); #else backtrace("MSG_ANNCE on server?... Please notify Samual immediately!\n"); #endif @@ -1316,7 +1289,7 @@ void Local_Notification(MSG net_type, Notification net_name, ...count) #ifdef CSQC case MSG_CENTER: { - Local_Notification_centerprint_generic( + Local_Notification_centerprint_Add( Local_Notification_sprintf( notif.nent_string, notif.nent_args, @@ -1435,11 +1408,9 @@ NET_HANDLE(ENT_CLIENT_NOTIFICATION, bool is_new) int _net_name = net_name; CPID net_name = ENUMCAST(CPID, _net_name); if (net_name == CPID_Null) { - // kill all - reset_centerprint_messages(); + centerprint_KillAll(); } else { - // kill group - centerprint_generic(ORDINAL(net_name), "", 0, 0); + centerprint_kill(ORDINAL(net_name));// kill group } return; } @@ -1493,7 +1464,7 @@ void Net_Notification_Remove(entity this) this.owner.nent_name )); #endif - for (int i = 0; i < this.nent_stringcount; ++i) { if (this.nent_strings[i]) strunzone(this.nent_strings[i]); } + for (int i = 0; i < this.nent_stringcount; ++i) { strfree(this.nent_strings[i]); } delete(this); } @@ -1535,8 +1506,7 @@ void Kill_Notification( net_notif.nent_net_name = ORDINAL(net_cpid); Net_LinkEntity(net_notif, false, autocvar_notification_lifetime_runtime, Net_Write_Notification); - IL_EACH( - g_notifications, + IL_EACH(g_notifications, (it.owner.nent_type == net_type || net_type == MSG_Null) && (it.owner.nent_cpid == net_cpid || net_cpid == CPID_Null), { it.nent_net_name = -1; @@ -1609,20 +1579,9 @@ void Send_Notification( return; } - if ( - server_is_dedicated - && - ( - broadcast == NOTIF_ALL - || - broadcast == NOTIF_ALL_EXCEPT - ) - && - !( - net_type == MSG_ANNCE - || - net_type == MSG_CENTER - ) + if (server_is_dedicated + && (broadcast == NOTIF_ALL || broadcast == NOTIF_ALL_EXCEPT) + && !(net_type == MSG_ANNCE || net_type == MSG_CENTER) ) { Local_Notification_WOVA( @@ -1642,9 +1601,9 @@ void Send_Notification( // 2. Manually handling each separate call on per-usage basis (See old CTF usage of verbose) entity found_choice; - #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN { \ + #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN \ if (notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) { \ - switch (ent.msg_choice_choices[net_name.nent_choice_idx]) \ + switch (CS(ent).msg_choice_choices[net_name.nent_choice_idx]) \ { \ case 1: found_choice = notif.nent_optiona; break; \ case 2: found_choice = notif.nent_optionb; break; \ @@ -1662,7 +1621,7 @@ void Send_Notification( found_choice.nent_floatcount, \ s1, s2, s3, s4, \ f1, f2, f3, f4); \ - } MACRO_END + MACRO_END switch (broadcast) {