From 49d0231c7281caefc2ac919b2e2f872d2479a9e1 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 20 Feb 2005 19:53:20 +0000 Subject: [PATCH] Clamp number of players shown to nine. Squeeze players a bit more together when we're over seven, to get room for up to nine. --- bigscreen/groupscreen.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/bigscreen/groupscreen.cpp b/bigscreen/groupscreen.cpp index 2b54120..6d38c4c 100644 --- a/bigscreen/groupscreen.cpp +++ b/bigscreen/groupscreen.cpp @@ -135,8 +135,11 @@ void GroupScreen::draw(unsigned char *buf) my_draw_text_deferred(td, "Rank", 12.0, x + width[num_scores + 2] / 2 - my_draw_text("Rank", NULL, 12.0) / 2, 100); // show all the players and the scores - unsigned y = 140; - for (std::vector::const_iterator i = group.players.begin(); i != group.players.end(); ++i) { + unsigned show_players = std::min(group.players.size(), 9U); + unsigned y = (show_players <= 7) ? 140 : (140 - (show_players - 7) * 5); + + unsigned row = 0; + for (std::vector::const_iterator i = group.players.begin(); i != group.players.end() && row < 9; ++i, ++row) { my_draw_text_deferred(td, i->nick, 18.0, 20, y); unsigned x = 40 + width[0]; @@ -174,7 +177,10 @@ void GroupScreen::draw(unsigned char *buf) x += width[num_scores + 1] + 20; } - y += 40; + if (show_players > 7) + y += 40 - (show_players - 7) * 4; + else + y += 40; } /* @@ -224,8 +230,8 @@ void GroupScreen::draw(unsigned char *buf) } // now finally find min and max rank, and draw it all - y = 140; - for (unsigned i = 0; i < group.players.size(); ++i) { + y = (show_players <= 7) ? 140 : (140 - (show_players - 7) * 5); + for (unsigned i = 0; i < show_players; ++i) { unsigned best_rank = 1, worst_rank = 1; for (unsigned j = 0; j < group.players.size(); ++j) { if (i == j) @@ -246,7 +252,10 @@ void GroupScreen::draw(unsigned char *buf) unsigned this_width = my_draw_text(text, NULL, 22.0); my_draw_text_deferred(td, text, 22.0, x + width[num_scores + 2] / 2 - this_width / 2, y); - y += 40; + if (show_players > 7) + y += 40 - (show_players - 7) * 4; + else + y += 40; } /* -- 2.39.2