+ // TODO: slots should be available for contrib maps
+ worldmap.loadgame(st_save_dir + "/" + map_filename + "-slot1.stsg");
+
+ worldmap.display(); // run the map
+
+ Menu::set_current(main_menu);
+ resume_demo();
+ }
+ else if (index < (int)contrib_subsets.size() + first_level_index)
+ {
+ index -= first_level_index;
+ if (current_subset != index)
+ {
+ current_subset = index;
+ // FIXME: This shouln't be busy looping
+ LevelSubset& subset = * (contrib_subsets[index]);
+
+ current_contrib_subset = ⊂
+
+ contrib_subset_menu->clear();
+
+ contrib_subset_menu->additem(MN_LABEL, subset.title, 0,0);
+ contrib_subset_menu->additem(MN_HL,"",0,0);
+
+ for (int i = 0; i < subset.get_num_levels(); ++i)
+ {
+ /** get level's title */
+ std::string filename = subset.get_level_filename(i);
+ std::string title = get_level_name(filename);
+ contrib_subset_menu->additem(MN_ACTION, title, 0, 0, i);
+ }
+
+ contrib_subset_menu->additem(MN_HL,"",0,0);
+ contrib_subset_menu->additem(MN_BACK, _("Back"), 0, 0);
+
+ titlesession->get_current_sector()->activate();
+ titlesession->set_current();
+ }