- RotateScreen *aux_screen = new RotateScreen();
- screens.push_back(aux_screen);
-
- conn.perform(FetchAuxilliaryScreens(&aux_screens));
- for (std::vector<widestring>::const_iterator i = aux_screens.begin(); i != aux_screens.end(); ++i) {
- if (*i == widestring("top10scores")) {
- aux_screen->add_screen(new Top10ScoreScreen(conn, active_tournament.id));
- continue;
- }
- if (*i == widestring("top5chosen")) {
- aux_screen->add_screen(new Top5ChosenScreen(conn, active_tournament.id));
- continue;
+ bool show_only_main_screen = (USE_SPLITSCREEN && screens.size() == 1);
+
+ /*
+ * Show auxilliary screens except if we have too many already,
+ * or if we're in the special split-screen end-tournament mode,
+ * where there if only one.
+ */
+ RotateScreen *aux_screen = NULL;
+ if (screens.size() < 4 && !show_only_main_screen) {
+#if USE_SPLITSCREEN
+ RotateScreen *rs = new RotateScreen();
+ screens.push_back(rs);
+#endif
+ aux_screen = rs;
+
+ conn.perform(FetchAuxilliaryScreens(&aux_screens));
+ for (std::vector<widestring>::const_iterator i = aux_screens.begin(); i != aux_screens.end(); ++i) {
+ if (*i == widestring("top10scores")) {
+ rs->add_screen(new Top10ScoreScreen(conn, active_tournament.id));
+ continue;
+ }
+ if (*i == widestring("top5chosen")) {
+ rs->add_screen(new Top5ChosenScreen(conn, active_tournament.id));
+ continue;
+ }