#include <cstdio>
#include <algorithm>
+#include <map>
#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"
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<unsigned, unsigned> song_scores;
+ conn.perform(FetchMaxScoreForSongs(tournament, &song_scores));
+
Group group;
conn.perform(FetchGroup(tournament, round, parallel, &group));
gettimeofday(&last_updated, NULL);
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));
}
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));
}