X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fnotifications%2Fall.qc;h=5cf3e1c6b1493972428805f13f07535ecb3a163d;hb=cd4892b9fcd32bd4887f0b3bc2503894520945c7;hp=e52e9de0971f10c73ec9e42685a52d541df465a3;hpb=6e7fae90a84673482a986aa83a6b618fb23c7eb5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/notifications/all.qc b/qcsrc/common/notifications/all.qc index e52e9de09..5cf3e1c6b 100644 --- a/qcsrc/common/notifications/all.qc +++ b/qcsrc/common/notifications/all.qc @@ -1,14 +1,15 @@ +#include "all.qh" #if defined(CSQC) #include #elif defined(MENUQC) #elif defined(SVQC) #include + #include #include #include #include #include - #include "all.qh" - #include + #include #endif // ================================================ @@ -43,7 +44,7 @@ string Notification_CheckArgs( case NOTIF_ALL: { if (client) { - return "Entity provided when world was required!"; + return "Entity provided when NULL was required!"; } break; } @@ -153,7 +154,7 @@ void Destroy_Notification_Entity(entity notif) if (notif.nent_icon != "") strunzone(notif.nent_icon); if (notif.nent_durcnt != "") strunzone(notif.nent_durcnt); if (notif.nent_string != "") strunzone(notif.nent_string); - remove(notif); + delete(notif); } void Destroy_All_Notifications() @@ -572,7 +573,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, } else if(icon != "") { - LOG_WARNINGF( + LOG_WARNF( ( "^1NOTIFICATION HAS ICON BUT NO HUDARGS: " "^7net_type = %s, net_name = %s.\n" @@ -589,7 +590,7 @@ void Create_Notification_Entity_InfoCenter(entity notif, if (cpid == CPID_Null && durcnt != "0 0") { - LOG_WARNINGF( + LOG_WARNF( ( "Notification has durcnt but no cpid: " "net_type = %s, net_name = %s." @@ -758,14 +759,14 @@ void Create_Notification_Entity_Choice(entity notif, // used by MSG_CHOICE to build list of choices #ifdef SVQC -void Notification_GetCvars() +void Notification_GetCvars(entity this) { - int idx = 0; FOREACH(Notifications, it.nent_type == MSG_CHOICE, { GetCvars_handleFloat( + this, get_cvars_s, get_cvars_f, - msg_choice_choices[idx++], + msg_choice_choices[it.nent_choice_idx], sprintf("notification_%s", it.nent_name) ); }); @@ -1086,7 +1087,7 @@ void Local_Notification_sound( #ifdef NOTIFICATIONS_DEBUG Debug_Notification(sprintf( ( - "Local_Notification_sound(world, %f, '%s', %f, %f) " + "Local_Notification_sound(NULL, %f, '%s', %f, %f) " "^1BLOCKED BY ANTISPAM:^7 prevsnd: '%s', timediff: %f, limit: %f\n" ), soundchannel, @@ -1210,7 +1211,7 @@ void Local_Notification(MSG net_type, Notification net_name, ...count) Get_Notif_TypeName(net_type) )); #endif - LOG_WARNINGF("Incorrect usage of Local_Notification: %s\n", "Null notification"); + LOG_WARNF("Incorrect usage of Local_Notification: %s", "Null notification"); return; } @@ -1479,9 +1480,8 @@ NET_HANDLE(ENT_CLIENT_NOTIFICATION, bool is_new) #endif #ifdef SVQC -void Net_Notification_Remove() +void Net_Notification_Remove(entity this) { - SELFPARAM(); #ifdef NOTIFICATIONS_DEBUG Debug_Notification(sprintf( "Net_Notification_Remove() at %f: %s '%s - %s' notification\n", @@ -1492,7 +1492,7 @@ void Net_Notification_Remove() )); #endif for (int i = 0; i < this.nent_stringcount; ++i) { if (this.nent_strings[i]) strunzone(this.nent_strings[i]); } - remove(this); + delete(this); } bool Net_Write_Notification(entity this, entity client, int sf) @@ -1524,7 +1524,7 @@ void Kill_Notification( #endif string checkargs = Notification_CheckArgs(broadcast, client); - if (checkargs != "") { LOG_WARNINGF("Incorrect usage of Kill_Notification: %s", checkargs); return; } + if (checkargs != "") { LOG_WARNF("Incorrect usage of Kill_Notification: %s", checkargs); return; } entity net_notif = new_pure(net_kill_notification); net_notif.nent_broadcast = broadcast; @@ -1533,8 +1533,8 @@ void Kill_Notification( net_notif.nent_net_name = ORDINAL(net_cpid); Net_LinkEntity(net_notif, false, autocvar_notification_lifetime_runtime, Net_Write_Notification); - FOREACH_ENTITY_CLASS( - "net_notification", + 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; @@ -1548,6 +1548,7 @@ void Send_Notification( MSG net_type, Notification net_name, ...count) { + if (broadcast != NOTIF_ALL && broadcast != NOTIF_ALL_EXCEPT && !IS_REAL_CLIENT(client)) return; entity notif = net_name; string parms = sprintf("%s, '%s', %s, %s", Get_Notif_BroadcastName(broadcast), @@ -1561,7 +1562,7 @@ void Send_Notification( if (!notif) { - LOG_WARNING("Send_Notification: Could not find notification entity!"); + LOG_WARN("Send_Notification: Could not find notification entity!"); return; } @@ -1570,7 +1571,7 @@ void Send_Notification( if (!net_name) { checkargs = sprintf("No notification provided! %s", checkargs); } if (checkargs != "") { - LOG_WARNINGF("Incorrect usage of Send_Notification: %s", checkargs); + LOG_WARNF("Incorrect usage of Send_Notification: %s", checkargs); return; } @@ -1594,7 +1595,7 @@ void Send_Notification( if ((notif.nent_stringcount + notif.nent_floatcount) != count) { - LOG_WARNINGF( + LOG_WARNF( "Argument mismatch for Send_Notification(%s, ...)! " "stringcount(%d) + floatcount(%d) != count(%d)\n" "Check the definition and function call for accuracy...?\n", @@ -1681,8 +1682,8 @@ void Send_Notification( } else { - entity net_notif = new(net_notification); - make_pure(net_notif); + entity net_notif = new_pure(net_notification); + IL_PUSH(g_notifications, net_notif); net_notif.owner = notif; net_notif.nent_broadcast = broadcast; net_notif.nent_client = client; @@ -1698,7 +1699,7 @@ void Send_Notification( net_notif.nent_floats[i] = ...((net_notif.nent_stringcount + i), float); } - net_notif.think = Net_Notification_Remove; + setthink(net_notif, Net_Notification_Remove); net_notif.nextthink = (time > autocvar_notification_lifetime_mapload) ? (time + autocvar_notification_lifetime_runtime) : autocvar_notification_lifetime_mapload;