X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=bigscreen%2Fgroupscreen.cpp;h=fbdcc5ed89aac1ea9e44fe3ad7159b53e81b5936;hp=6d38c4cca58e45102a459ddb982a749d24c2deae;hb=57c939a53665f808b2429461d547271adf2c5908;hpb=49d0231c7281caefc2ac919b2e2f872d2479a9e1 diff --git a/bigscreen/groupscreen.cpp b/bigscreen/groupscreen.cpp index 6d38c4c..fbdcc5e 100644 --- a/bigscreen/groupscreen.cpp +++ b/bigscreen/groupscreen.cpp @@ -1,9 +1,10 @@ #include #include +#include #include "groupscreen.h" #include "fetch_group.h" -#include "fetch_max_score_for_song.h" +#include "fetch_max_score_for_songs.h" #include "fetch_max_score_for_player.h" #include "fetch_needs_update.h" #include "fetch_highscore.h" @@ -40,6 +41,13 @@ void GroupScreen::draw(unsigned char *buf) scores_changed.reset_flag(); + /* + * We'll probably need some values from here later on (although not all), just fetch them + * all while we're at it. + */ + std::map song_scores; + conn.perform(FetchMaxScoreForSongs(tournament, &song_scores)); + Group group; conn.perform(FetchGroup(tournament, round, parallel, &group)); gettimeofday(&last_updated, NULL); @@ -218,7 +226,7 @@ void GroupScreen::draw(unsigned char *buf) unsigned max_score_this_song; if (j->song.id != -1) { // random song, or we know what song the player picked - conn.perform(FetchMaxScoreForSong(tournament, j->song.id, &max_score_this_song)); + max_score_this_song = song_scores[j->song.id]; } else { conn.perform(FetchMaxScoreForPlayer(tournament, i->id, round, &max_score_this_song)); } @@ -350,7 +358,7 @@ void GroupScreen::draw(unsigned char *buf) unsigned max_score_this_song; if (next_song->song.id != -1) { // random song, or we know what song the player picked - conn.perform(FetchMaxScoreForSong(tournament, next_song->song.id, &max_score_this_song)); + max_score_this_song = song_scores[next_song->song.id]; } else { conn.perform(FetchMaxScoreForPlayer(tournament, next_player->id, round, &max_score_this_song)); }