]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Optimize process_time(2, x) to use half the number of strcat calls and compact code...
authorterencehill <piuntn@gmail.com>
Sat, 5 Mar 2022 19:15:53 +0000 (20:15 +0100)
committerterencehill <piuntn@gmail.com>
Sat, 5 Mar 2022 19:15:53 +0000 (20:15 +0100)
qcsrc/lib/counting.qh

index 58588971b2ae6f90ba176204108b9caab28fe125..303ee6988383d6f9cdfc9a23a561e9e44e0f1fe3 100644 (file)
@@ -159,48 +159,17 @@ string process_time(float outputtype, int seconds)
                case 2:
                {
                        string output = "";
-
-                       if (tmp_seconds)
-                               output = count_seconds(tmp_seconds);
-
-                       if (tmp_minutes)
-                       {
-                               output = strcat(
-                                       count_minutes(tmp_minutes),
-                                       ((output != "") ? strcat(", ", output) : ""));
-                       }
-
-                       if (tmp_hours)
-                       {
-                               output = strcat(
-                                       count_hours(tmp_hours),
-                                       ((output != "") ? strcat(", ", output) : ""));
-                       }
-
-                       if (tmp_days)
-                       {
-                               output = strcat(
-                                       count_days(tmp_days),
-                                       ((output != "") ? strcat(", ", output) : ""));
-                       }
-
-                       if (tmp_weeks)
-                       {
-                               output = strcat(
-                                       count_weeks(tmp_weeks),
-                                       ((output != "") ? strcat(", ", output) : ""));
-                       }
-
-                       if (tmp_years)
-                       {
-                               output = strcat(
-                                       count_years(tmp_years),
-                                       ((output != "") ? strcat(", ", output) : ""));
-                       }
-
+                       #define APPEND_TIME(unit) \
+                               if (tmp_##unit) output = strcat(output, ((output != "") ? ", " : ""), count_##unit(tmp_##unit))
+                       APPEND_TIME(years);
+                       APPEND_TIME(weeks);
+                       APPEND_TIME(days);
+                       APPEND_TIME(hours);
+                       APPEND_TIME(minutes);
+                       APPEND_TIME(seconds);
+                       #undef APPEND_TIME
                        if (output == "")
                                return count_seconds(0);
-
                        return output;
                }
                case 3: