- rs->add_screen(new GroupScreen(conn, i->tournament, i->round, i->parallel, j, i->num_machines));
+#endif
+ rs->add_screen(new GroupScreen(conn, i->tournament, i->round, i->parallel, j, i->num_machines, i->players_per_machine));
+ }
+ }
+ }
+
+ 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;