+
+ 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;
+ }
+ std::fprintf(stderr, "Foobarbaz?\n");
+ }
+
+ // add all finished screens to the auxilliary screens
+ std::vector<SkeletonGroup> finished_groups;
+ conn.perform(FetchListOfFinishedGroups(active_tournament.id, &finished_groups));
+
+ for (std::vector<SkeletonGroup>::const_iterator i = finished_groups.begin(); i != finished_groups.end(); ++i) {
+ aux_screen->add_screen(new GroupScreen(conn, i->tournament, i->round, i->parallel, 0, 1));
+ }
+
+ // hack
+ screens.push_back(NULL);
+ screens.push_back(NULL);
+ screens.push_back(NULL);
+ screens.push_back(NULL);
+
+ if (screens[1] == NULL) {
+ mainscreen = screens[0];
+ } else {
+ mainscreen = new SplitScreen(screens[0], screens[1], screens[2], screens[3]);
+ }