(no commit message)
[ccbs] / bigscreen / groupscreen.cpp
index 1a07234..d0370de 100644 (file)
@@ -165,7 +165,7 @@ void GroupScreen::draw(unsigned char *buf)
                                my_draw_text_deferred(td, text, 22.0, x + max_num_width - this_width, y);
 
                                // draw the long name if we can, otherwise use the short one
-                               if (my_draw_text(j->song.title, NULL, 12.0) > width[col]) {
+                               if (my_draw_text(j->song.title, NULL, 12.0) > (width[col] - 10 - max_num_width)) {
                                        my_draw_text_deferred(td, j->song.short_title, 12.0, x + max_num_width + 10, y);
                                } else {
                                        my_draw_text_deferred(td, j->song.title, 12.0, x + max_num_width + 10, y);
@@ -434,23 +434,27 @@ void GroupScreen::draw(unsigned char *buf)
                        // print out the lines we can attain
                        if (next_player->total + max_score_this_song > lead_beat && (lead_beat != win_beat)) {
                                int lead_need = std::max(lead_beat - next_player->total + 1, 0U);
-                               
-                               text = widestring("Needs to lead: ") + widestring(pqxx::to_string(lead_need));
-                               this_width = my_draw_text(text, NULL, 18.0);
-                               my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
+                       
+                               if (lead_need > 0) {
+                                       text = widestring("Needs to lead: ") + widestring(pqxx::to_string(lead_need));
+                                       this_width = my_draw_text(text, NULL, 18.0);
+                                       my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
 
-                               y += 30;
+                                       y += 30;
+                               }
                        }
                        
                        if (next_player->total + max_score_this_song > win_beat) {
                                int win_need = std::max(win_beat - next_player->total + 1, 0U);
                                
-                               text = widestring("Needs to win: ") + widestring(pqxx::to_string(win_need));
+                               if (win_need > 0) {
+                                       text = widestring("Needs to win: ") + widestring(pqxx::to_string(win_need));
 
-                               this_width = my_draw_text(text, NULL, 18.0);
-                               my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
+                                       this_width = my_draw_text(text, NULL, 18.0);
+                                       my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
 
-                               y += 30;
+                                       y += 30;
+                               }
                        }
 
                        if (group.num_qualifying > 0 &&
@@ -458,16 +462,18 @@ void GroupScreen::draw(unsigned char *buf)
                            (unsigned(qualify_beat_worst_case) != win_beat)) {
                                int qual_need = std::max(qualify_beat_worst_case - next_player->total + 1, 0U);
                                
-                               if (qualify_beat_worst_case == qualify_beat_best_case) {
-                                       text = widestring("Needs to qualify: ") + widestring(pqxx::to_string(qual_need));
-                               } else {
-                                       text = widestring("Needs to secure qualification: ") + widestring(pqxx::to_string(qual_need));
-                               }
+                               if (qual_need > 0) {
+                                       if (qualify_beat_worst_case == qualify_beat_best_case) {
+                                               text = widestring("Needs to qualify: ") + widestring(pqxx::to_string(qual_need));
+                                       } else {
+                                               text = widestring("Needs to secure qualification: ") + widestring(pqxx::to_string(qual_need));
+                                       }
+                                       
+                                       this_width = my_draw_text(text, NULL, 18.0);
+                                       my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
                                
-                               this_width = my_draw_text(text, NULL, 18.0);
-                               my_draw_text(text, buf, 18.0, 400 - this_width/2, y);
-
-                               y += 30;
+                                       y += 30;
+                               }
                        }
                }
        }