From: Steinar H. Gunderson Date: Sun, 20 Feb 2005 15:29:01 +0000 (+0000) Subject: Try to make the column for the chosen songs as fixed-width as possible. X-Git-Url: https://git.sesse.net/?p=ccbs;a=commitdiff_plain;h=4f72fc3e551d7c34409760245c9db94a22cafc28 Try to make the column for the chosen songs as fixed-width as possible. --- diff --git a/bigscreen/groupscreen.cpp b/bigscreen/groupscreen.cpp index 3628447..64bf7b9 100644 --- a/bigscreen/groupscreen.cpp +++ b/bigscreen/groupscreen.cpp @@ -63,7 +63,7 @@ void GroupScreen::draw(unsigned char *buf) // titles for chosen songs. unsigned width[16], num_scores; unsigned max_num_width = my_draw_text("8888", NULL, 22.0); - unsigned mode; + unsigned mode, sumwidth; for (mode = 0; mode < 2; ++mode) { for (unsigned i = 0; i < 16; ++i) width[i] = 0; @@ -89,13 +89,33 @@ void GroupScreen::draw(unsigned char *buf) width[num_scores + 2] = my_draw_text("Rank", NULL, 12.0); // if we're at long titles and that works, don't try the short ones - if (mode == 0) { - unsigned sumwidth = 0; - for (unsigned i = 0; i <= num_scores + 2; ++i) - sumwidth += width[i] + 20; + sumwidth = 0; - if (sumwidth < 800) + for (unsigned i = 0; i <= num_scores + 2; ++i) + sumwidth += width[i] + 20; + + if (sumwidth < 780) + break; + } + + /* + * If we have space to go, distribute as much as we can to the chosen song column, so we won't have + * total and rank jumping around. + */ + if (sumwidth < 780) { + int first_chosen_col = -1; + unsigned col = 1; + + for (std::vector::const_iterator i = group.players[0].scores.begin(); i != group.players[0].scores.end(); ++i, ++col) { + if (i->chosen) { + first_chosen_col = col; break; + } + } + + if (first_chosen_col != -1) { + printf("first_chosen_col=%u\n", first_chosen_col); + width[first_chosen_col] += 780 - sumwidth; } }