]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications/all.qc
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications / all.qc
index 8e524c2165c8c42dbac12d54aaaded27e85e7403..dd200973bc007804c28258c12343b02130d6ec55 100644 (file)
@@ -1181,7 +1181,7 @@ void Local_Notification_centerprint_Add(
 }
 
 void Local_Notification_Queue_Run(MSG net_type, entity notif)
-{              
+{
        switch (net_type)
        {
                case MSG_ANNCE:
@@ -1193,20 +1193,23 @@ void Local_Notification_Queue_Run(MSG net_type, entity notif)
 }
 
 void Local_Notification_Queue_Add(MSG net_type, entity notif, float queue_time)
-{      
+{
+       // Guess length if required
+       if(queue_time == 0)
+               queue_time = soundlength(AnnouncerFilename(notif.nent_snd));
+
        if(queue_time == -1 || time > notif_queue_next_time) {
                // Run immediately
                Local_Notification_Queue_Run(net_type, notif);
-               if(queue_time >= 0)
-                       notif_queue_next_time = time + (queue_time == 0 ? soundlength(AnnouncerFilename(notif.nent_snd)) : queue_time);
+               notif_queue_next_time = time + queue_time;
        } else {
                // Put in queue
                if(notif_queue_length >= NOTIF_QUEUE_MAX) return;
-       
+
                notif_queue_type[notif_queue_length] = net_type;
                notif_queue_entity[notif_queue_length] = notif;
                notif_queue_time[notif_queue_length] = notif_queue_next_time;
-               
+
                notif_queue_next_time += queue_time;
                ++notif_queue_length;
        }
@@ -1214,21 +1217,17 @@ void Local_Notification_Queue_Add(MSG net_type, entity notif, float queue_time)
 
 void Local_Notification_Queue_Process()
 {
-       if(!notif_queue_length)
+       if(!notif_queue_length || notif_queue_time[0] > time)
                return;
 
-       int j;
-       if(notif_queue_time[0] <= time) {
-               Local_Notification_Queue_Run(notif_queue_type[0], notif_queue_entity[0]);
-               
-               // Shift queue to the left
-               for (j = 0; j < notif_queue_length - 1; j++) { 
-                       notif_queue_type[j] = notif_queue_type[j+1];
-                       notif_queue_entity[j] = notif_queue_entity[j+1];
-                       notif_queue_time[j] = notif_queue_time[j+1];
-               } 
-               
-               --notif_queue_length;
+       Local_Notification_Queue_Run(notif_queue_type[0], notif_queue_entity[0]);
+
+       // Shift queue to the left
+       --notif_queue_length;
+       for (int j = 0; j < notif_queue_length; ++j) {
+               notif_queue_type[j] = notif_queue_type[j+1];
+               notif_queue_entity[j] = notif_queue_entity[j+1];
+               notif_queue_time[j] = notif_queue_time[j+1];
        }
 }