pos = choice + dy;
}
- if (pos == MAIN_CONTROL_LEVELS && dx != 0 && button)
- {
- HandleMainMenu_SelectLevel(1, (dx < 0 ? -1 : +1), NO_DIRECT_LEVEL_SELECT);
- }
- else if (pos == MAIN_CONTROL_FIRST_LEVEL && !button)
+ if (pos == MAIN_CONTROL_FIRST_LEVEL && !button)
{
HandleMainMenu_SelectLevel(MAX_LEVELS, -1, NO_DIRECT_LEVEL_SELECT);
}
choice = pos;
}
+ else if (dx != 0)
+ {
+ if (choice != MAIN_CONTROL_INFO &&
+ choice != MAIN_CONTROL_SETUP)
+ HandleMainMenu_SelectLevel(1, dx, NO_DIRECT_LEVEL_SELECT);
+ }
}
else
{
choice = choice_store[mode] = first_entry + y;
}
+ else if (dx < 0)
+ {
+ PlaySound(SND_MENU_ITEM_SELECTING);
+
+ for (i = 0; menu_info[i].type != 0; i++)
+ {
+ if (menu_info[i].type & TYPE_LEAVE_MENU)
+ {
+ void (*menu_callback_function)(void) = menu_info[i].value;
+
+ FadeSetLeaveMenu();
+
+ menu_callback_function();
+
+ /* absolutely needed because function changes 'menu_info'! */
+ break;
+ }
+ }
+
+ return;
+ }
}
else if (!(menu_info[first_entry + y].type & TYPE_GHOSTED))
{
DrawTextF(xstart2, ystart2, font_text, TARGET_STRING);
ystart2 += ystep;
- DrawTextF(xstart1, ystart2, font_header, "Compile time");
- DrawTextF(xstart2, ystart2, font_text, getCompileDateString());
+ DrawTextF(xstart1, ystart2, font_header, "Source date");
+ DrawTextF(xstart2, ystart2, font_text, getSourceDateString());
ystart2 += 3 * ystep;
DrawTextF(xstart1, ystart2, font_header, "Library");
ti->cl_cursor = y;
}
+ else if (dx < 0)
+ {
+ if (game_status == GAME_MODE_SETUP)
+ {
+ if (setup_mode == SETUP_MODE_CHOOSE_GAME_SPEED ||
+ setup_mode == SETUP_MODE_CHOOSE_SCROLL_DELAY ||
+ setup_mode == SETUP_MODE_CHOOSE_SNAPSHOT_MODE)
+ execSetupGame();
+ else if (setup_mode == SETUP_MODE_CHOOSE_WINDOW_SIZE ||
+ setup_mode == SETUP_MODE_CHOOSE_SCALING_TYPE ||
+ setup_mode == SETUP_MODE_CHOOSE_RENDERING)
+ execSetupGraphics();
+ else if (setup_mode == SETUP_MODE_CHOOSE_VOLUME_SIMPLE ||
+ setup_mode == SETUP_MODE_CHOOSE_VOLUME_LOOPS ||
+ setup_mode == SETUP_MODE_CHOOSE_VOLUME_MUSIC)
+ execSetupSound();
+ else if (setup_mode == SETUP_MODE_CHOOSE_TOUCH_CONTROL ||
+ setup_mode == SETUP_MODE_CHOOSE_MOVE_DISTANCE ||
+ setup_mode == SETUP_MODE_CHOOSE_DROP_DISTANCE)
+ execSetupTouch();
+ else
+ execSetupArtwork();
+ }
+ }
}
else
{
ti->node_top = &level_number;
ti->sort_priority = 10000 + value;
- ti->color = (level.no_valid_file ? FC_BLUE :
+ ti->color = (level.no_level_file ? FC_BLUE :
LevelStats_getSolved(i) ? FC_GREEN :
LevelStats_getPlayed(i) ? FC_YELLOW : FC_RED);
sprintf(identifier, "%d", value);
sprintf(name, "%03d: %s", value,
- (level.no_valid_file ? "(no file)" : level.name));
+ (level.no_level_file ? "(no file)" : level.name));
setString(&ti->identifier, identifier);
setString(&ti->name, name);