+ int bar_flash = clamp(score_timer * 255, 0, 255);
+ set_color((struct color) {bar_flash, 255, bar_flash}, true);
+
+ int level_flash = clamp(level_timer * 255, 0, 255);
+ set_color((struct color) {255, 255, 255 - level_flash}, false);
+
+ size_t level_len = level_symbol_len > 0 ? 6 + level_symbol_len + 1 : 0;
+ char level_display[level_len];
+
+ if (level_len > 0)
+ sprintf(level_display, "Level %s", level_symbol);
+
+ int bar = (double) score / (double) needed_score * ws.ws_col;
+ int level_start = (ws.ws_col - level_len) / 2;
+ int level_end = level_start + level_len - 1;
+
+ for (int i = 0; i < ws.ws_col; i++) {
+ if (i == bar)
+ printf("\e[49m");
+
+ if (i >= level_start && i < level_end)
+ printf("%c", level_display[i - level_start]);
+ else
+ printf(" ");
+ }
+
+ printf("\n");
+}
+
+static void score_globalstep(double dtime)
+{
+ if (level_timer > 0.0)
+ level_timer -= dtime;