static unsigned int last_update_time;
static unsigned int update_time;
-void display_credits();
+void display_text_file(char *filename);
std::vector<st_subset> contrib_subsets;
std::string current_contrib_subset;
{
st_subset subset;
subset.load(level_subsets.item[i]);
- contrib_menu->additem(MN_GOTO, subset.title.c_str(), i, contrib_subset_menu);
+ contrib_menu->additem(MN_GOTO, subset.title.c_str(), i,
+ contrib_subset_menu, i+1);
contrib_subsets.push_back(subset);
}
int index = contrib_menu->check();
if (index != -1)
{
- index -= 2; // FIXME: Hack
+ index -= 1;
if (index >= 0 && index <= int(contrib_subsets.size()))
{
if (current_subset != index)
{
Level level;
level.load(subset.name, i);
- contrib_subset_menu->additem(MN_ACTION, level.name, 0, 0);
+ contrib_subset_menu->additem(MN_ACTION, level.name, 0, 0, i);
}
contrib_subset_menu->additem(MN_HL,"",0,0);
contrib_subset_menu->additem(MN_BACK, "Back", 0, 0);
int index = contrib_subset_menu->check();
if (index != -1)
{
- if (contrib_subset_menu->get_item(index).kind == MN_ACTION)
+ if (contrib_subset_menu->get_item_by_id(index).kind == MN_ACTION)
{
- index -= 1; // FIXME: Hack
std::cout << "Sarting level: " << index << std::endl;
GameSession session(current_contrib_subset, index, ST_GL_PLAY);
session.run();
Menu::set_current(main_menu);
break;
case MNID_CREDITS:
- display_credits();
+ display_text_file("CREDITS");
Menu::set_current(main_menu);
break;
case MNID_QUITMAINMENU:
#define SCROLL 60
#define ITEMS_SPACE 4
-void display_credits()
+void display_text_file(char *file)
{
int done;
int scroll, speed;
string_list_type names;
char filename[1024];
string_list_init(&names);
- sprintf(filename,"%s/CREDITS", datadir.c_str());
+ sprintf(filename,"%s/%s", datadir.c_str(), file);
if((fi = fopen(filename,"r")) != NULL)
{
while(fgets(temp, sizeof(temp), fi) != NULL)
draw_background();
- white_big_text->drawf("- Credits -", 0, screen->h-scroll, A_HMIDDLE, A_TOP, 2);
+ if (strcmp(file, "CREDITS") == 0)
+ white_big_text->drawf("- SuperTux " VERSION " -",
+ 0, screen->h-scroll, A_HMIDDLE, A_TOP, 2);
y = 0;
for(int i = 0; i < length; i++)