X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fnotifications%2Fall.qc;h=b8e0d5c6998c8a37cc8ec5ea9d809116d2c3e235;hp=b9350758a115fb6ab3558c86e867a5e62d549c73;hb=991de5e6922cd3c283de56c3249624f0f1bfe767;hpb=98b2c4213abe04f3ec96a95471ba5fe5fe57e008 diff --git a/qcsrc/common/notifications/all.qc b/qcsrc/common/notifications/all.qc index b9350758a1..b8e0d5c699 100644 --- a/qcsrc/common/notifications/all.qc +++ b/qcsrc/common/notifications/all.qc @@ -247,11 +247,11 @@ string Process_Notif_Args( switch(strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS_SV(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_CS(selected,result) case selected: { ++sel_num; break; } - #define ARG_CASE_ARG_SV(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS_SV(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_CS(selected,result) case selected: ++sel_num; break; + #define ARG_CASE_ARG_SV(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_DC(selected,result) #define ARG_CASE(prog,selected,result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST @@ -298,7 +298,7 @@ string Process_Notif_Args( switch(strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_CS_SV_DC(selected,result) #define ARG_CASE_ARG_CS_SV(selected,result) #define ARG_CASE_ARG_CS(selected,result) @@ -350,11 +350,11 @@ string Process_Notif_Args( switch(strtolower(selected)) { #define ARG_CASE_ARG_CS_SV_HA(selected,result) - #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_CS_SV_DC(selected,result) case selected: ++sel_num; break; #define ARG_CASE_ARG_CS_SV(selected,result) #define ARG_CASE_ARG_CS(selected,result) #define ARG_CASE_ARG_SV(selected,result) - #define ARG_CASE_ARG_DC(selected,result) case selected: { ++sel_num; break; } + #define ARG_CASE_ARG_DC(selected,result) case selected: ++sel_num; break; #define ARG_CASE(prog,selected,result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST #undef ARG_CASE @@ -608,7 +608,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, // ====================== // Process Notif String // ====================== - #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN { \ + #define SET_NOTIF_STRING(string,stringname) MACRO_BEGIN \ notif.nent_string = strzone(CCR( \ Process_Notif_Line( \ typeId, \ @@ -619,7 +619,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, stringname \ )) \ ); \ - } MACRO_END + MACRO_END if(GENTLE) { @@ -777,60 +777,64 @@ void Notification_GetCvars(entity this) /** used to output notifications.cfg file */ void Dump_Notifications(int fh, bool alsoprint) { - #define NOTIF_WRITE(a) MACRO_BEGIN { \ - fputs(fh, a); \ - if (alsoprint) LOG_INFO(a); \ - } MACRO_END + #define NOTIF_WRITE(str) write_String_To_File(fh, str, alsoprint) - #define NOTIF_WRITE_ENTITY(e, description) MACRO_BEGIN { \ - string notif_msg = sprintf( \ + #define NOTIF_WRITE_ENTITY(e, description) \ + NOTIF_WRITE(sprintf( \ "seta notification_%s \"%d\" \"%s\"\n", \ Get_Notif_CvarName(e), e.nent_default, description \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END + )) - #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) MACRO_BEGIN { \ - string notif_msg = sprintf( \ + #define NOTIF_WRITE_ENTITY_CHOICE(e, descriptiona, descriptionb) \ + NOTIF_WRITE(sprintf( \ "seta notification_%s \"%d\" \"%s\"\n" \ "seta notification_%s_ALLOWED \"%d\" \"%s\"\n", \ Get_Notif_CvarName(e), e.nent_default, descriptiona, \ Get_Notif_CvarName(e), e.nent_challow_def, descriptionb \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END - - #define NOTIF_WRITE_HARDCODED(cvar, default, description) MACRO_BEGIN { \ - string notif_msg = sprintf( \ - "seta notification_%s \"%s\" \"%s\"\n", \ - cvar, default, description \ - ); \ - NOTIF_WRITE(notif_msg); \ - } MACRO_END + )) + + #define NOTIF_WRITE_HARDCODED(cvar, default, description) \ + NOTIF_WRITE("seta notification_" cvar " \"" default "\" \"" description "\"\n") // Note: This warning only applies to the notifications.cfg file that is output... // You ARE supposed to manually edit this function to add i.e. hard coded // notification variables for mutators or game modes or such and then // regenerate the notifications.cfg file from the new code. - NOTIF_WRITE("// ********************************************** //\n"); - NOTIF_WRITE("// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ** This file is automatically generated ** //\n"); - NOTIF_WRITE("// ** by code with the command 'dumpnotifs'. ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ** If you add a new notification, please ** //\n"); - NOTIF_WRITE("// ** regenerate this file with that command ** //\n"); - NOTIF_WRITE("// ** making sure that the output matches ** //\n"); - NOTIF_WRITE("// ** with the lists and defaults in code. ** //\n"); - NOTIF_WRITE("// ** ** //\n"); - NOTIF_WRITE("// ********************************************** //\n"); + NOTIF_WRITE( + "// ********************************************** //\n" + "// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n" + "// ** ** //\n" + "// ** This file is automatically generated ** //\n" + "// ** by code with the command 'dumpnotifs'. ** //\n" + "// ** ** //\n" + "// ** If you add a new notification, please ** //\n" + "// ** regenerate this file with that command ** //\n" + "// ** making sure that the output matches ** //\n" + "// ** with the lists and defaults in code. ** //\n" + "// ** ** //\n" + "// ********************************************** //\n"); // These notifications will also append their string as a comment... // This is not necessary, and does not matter if they vary between config versions, // it is just a semi-helpful tool for those who want to manually change their user settings. - int NOTIF_ANNCE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_ANNCE, { ++NOTIF_ANNCE_COUNT; }); + int NOTIF_ANNCE_COUNT = 0; + int NOTIF_INFO_COUNT = 0; + int NOTIF_CENTER_COUNT = 0; + int NOTIF_MULTI_COUNT = 0; + int NOTIF_CHOICE_COUNT = 0; + FOREACH(Notifications, true, { + switch (it.nent_type) + { + case MSG_ANNCE: ++NOTIF_ANNCE_COUNT; break; + case MSG_INFO: ++NOTIF_INFO_COUNT; break; + case MSG_CENTER: ++NOTIF_CENTER_COUNT; break; + case MSG_MULTI: ++NOTIF_MULTI_COUNT; break; + case MSG_CHOICE: ++NOTIF_CHOICE_COUNT; break; + } + }); + NOTIF_WRITE(sprintf("\n// MSG_ANNCE notifications (count = %d):\n", NOTIF_ANNCE_COUNT)); FOREACH(Notifications, it.nent_type == MSG_ANNCE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -838,7 +842,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_INFO_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_INFO, { ++NOTIF_INFO_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_INFO notifications (count = %d):\n", NOTIF_INFO_COUNT)); FOREACH(Notifications, it.nent_type == MSG_INFO && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -847,7 +850,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_CENTER_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CENTER, { ++NOTIF_CENTER_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_CENTER notifications (count = %d):\n", NOTIF_CENTER_COUNT)); FOREACH(Notifications, it.nent_type == MSG_CENTER && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -855,7 +857,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_MULTI_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_MULTI, { ++NOTIF_MULTI_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_MULTI notifications (count = %d):\n", NOTIF_MULTI_COUNT)); FOREACH(Notifications, it.nent_type == MSG_MULTI && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY(it, @@ -863,7 +864,6 @@ void Dump_Notifications(int fh, bool alsoprint) ); }); - int NOTIF_CHOICE_COUNT = 0; FOREACH(Notifications, it.nent_type == MSG_CHOICE, { ++NOTIF_CHOICE_COUNT; }); NOTIF_WRITE(sprintf("\n// MSG_CHOICE notifications (count = %d):\n", NOTIF_CHOICE_COUNT)); FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), { NOTIF_WRITE_ENTITY_CHOICE(it, @@ -1011,15 +1011,15 @@ string Local_Notification_sprintf( string tmp_s; // used by NOTIF_ARGUMENT_LIST switch (strtolower(selected)) { - #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: { arg_slot[sel_num++] = result; break; } - #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } - #define ARG_CASE_ARG_CS_SV(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS_SV_HA(selected, result) case selected: arg_slot[sel_num++] = result; break; + #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; + #define ARG_CASE_ARG_CS_SV(selected, result) case selected: arg_slot[sel_num++] = result; break; #ifdef CSQC - #define ARG_CASE_ARG_CS(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE_ARG_SV(selected, result) #else #define ARG_CASE_ARG_CS(selected, result) - #define ARG_CASE_ARG_SV(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_SV(selected, result) case selected: arg_slot[sel_num++] = result; break; #endif #define ARG_CASE_ARG_DC(selected, result) #define ARG_CASE(prog, selected, result) ARG_CASE_##prog(selected, result) @@ -1063,8 +1063,7 @@ void Local_Notification_sound(int soundchannel, string soundfile, float soundvol _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 @@ -1100,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) @@ -1144,11 +1143,11 @@ void Local_Notification_centerprint_generic( switch (strtolower(selected)) { #define ARG_CASE_ARG_CS_SV_HA(selected, result) - #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_CS_SV_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE_ARG_CS_SV(selected, result) #define ARG_CASE_ARG_CS(selected, result) #define ARG_CASE_ARG_SV(selected, result) - #define ARG_CASE_ARG_DC(selected, result) case selected: { arg_slot[sel_num++] = result; break; } + #define ARG_CASE_ARG_DC(selected, result) case selected: arg_slot[sel_num++] = result; break; #define ARG_CASE(prog, selected, result) ARG_CASE_##prog(selected,result) NOTIF_ARGUMENT_LIST #undef ARG_CASE @@ -1467,7 +1466,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); } @@ -1604,7 +1603,7 @@ void Send_Notification( // 2. Manually handling each separate call on per-usage basis (See old CTF usage of verbose) entity found_choice; - #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN { \ + #define RECURSE_FROM_CHOICE(ent,action) MACRO_BEGIN \ if (notif.nent_challow_var && (warmup_stage || (notif.nent_challow_var == 2))) { \ switch (CS(ent).msg_choice_choices[net_name.nent_choice_idx]) \ { \ @@ -1624,7 +1623,7 @@ void Send_Notification( found_choice.nent_floatcount, \ s1, s2, s3, s4, \ f1, f2, f3, f4); \ - } MACRO_END + MACRO_END switch (broadcast) {