Before, the program returned to the main menu after the player solved
a level (and the high score table was displayed). From there, the next
level could be played by starting the game with the incremented level.
Now, the program automatically starts playing the next level after the
previous level was successfully solved.
This new setup option is enabled by default now, changing the previous
default behaviour of the program.
SETUP_TOKEN_HANDICAP,
SETUP_TOKEN_SKIP_LEVELS,
SETUP_TOKEN_INCREMENT_LEVELS,
SETUP_TOKEN_HANDICAP,
SETUP_TOKEN_SKIP_LEVELS,
SETUP_TOKEN_INCREMENT_LEVELS,
+ SETUP_TOKEN_AUTO_PLAY_NEXT_LEVEL,
SETUP_TOKEN_TIME_LIMIT,
SETUP_TOKEN_FULLSCREEN,
SETUP_TOKEN_WINDOW_SCALING_PERCENT,
SETUP_TOKEN_TIME_LIMIT,
SETUP_TOKEN_FULLSCREEN,
SETUP_TOKEN_WINDOW_SCALING_PERCENT,
{ TYPE_SWITCH, &si.handicap, "handicap" },
{ TYPE_SWITCH, &si.skip_levels, "skip_levels" },
{ TYPE_SWITCH, &si.increment_levels, "increment_levels" },
{ TYPE_SWITCH, &si.handicap, "handicap" },
{ TYPE_SWITCH, &si.skip_levels, "skip_levels" },
{ TYPE_SWITCH, &si.increment_levels, "increment_levels" },
+ { TYPE_SWITCH, &si.auto_play_next_level, "auto_play_next_level" },
{ TYPE_SWITCH, &si.time_limit, "time_limit" },
{ TYPE_SWITCH, &si.fullscreen, "fullscreen" },
{ TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" },
{ TYPE_SWITCH, &si.time_limit, "time_limit" },
{ TYPE_SWITCH, &si.fullscreen, "fullscreen" },
{ TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" },
si->handicap = TRUE;
si->skip_levels = TRUE;
si->increment_levels = TRUE;
si->handicap = TRUE;
si->skip_levels = TRUE;
si->increment_levels = TRUE;
+ si->auto_play_next_level = TRUE;
si->time_limit = TRUE;
si->fullscreen = FALSE;
si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;
si->time_limit = TRUE;
si->fullscreen = FALSE;
si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;
{
level_nr++; /* advance to next level */
TapeErase(); /* start with empty tape */
{
level_nr++; /* advance to next level */
TapeErase(); /* start with empty tape */
+
+ if (setup.auto_play_next_level)
+ {
+ LoadLevel(level_nr);
+
+ SaveLevelSetup_SeriesInfo();
+ }
}
hi_pos = NewHiScore(last_level_nr);
}
hi_pos = NewHiScore(last_level_nr);
DrawHallOfFame(last_level_nr, hi_pos);
}
DrawHallOfFame(last_level_nr, hi_pos);
}
+ else if (!setup.auto_play_next_level || !setup.increment_levels)
{
SetGameStatus(GAME_MODE_MAIN);
DrawMainMenu();
}
{
SetGameStatus(GAME_MODE_MAIN);
DrawMainMenu();
}
+ else
+ {
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
+ }
}
int NewHiScore(int level_nr)
}
int NewHiScore(int level_nr)
boolean handicap;
boolean skip_levels;
boolean increment_levels;
boolean handicap;
boolean skip_levels;
boolean increment_levels;
+ boolean auto_play_next_level;
boolean time_limit;
boolean fullscreen;
int window_scaling_percent;
boolean time_limit;
boolean fullscreen;
int window_scaling_percent;
FadeSound(SND_BACKGROUND_SCORES);
FadeSound(SND_BACKGROUND_SCORES);
- SetGameStatus(GAME_MODE_MAIN);
+ if (game_status_last_screen != GAME_MODE_PLAYING ||
+ !setup.auto_play_next_level || !setup.increment_levels)
+ {
+ SetGameStatus(GAME_MODE_MAIN);
+ DrawMainMenu();
+ }
+ else
+ {
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
+ }
}
if (game_status == GAME_MODE_SCORES)
}
if (game_status == GAME_MODE_SCORES)
{ TYPE_SWITCH, &setup.handicap, "Handicap:" },
{ TYPE_SWITCH, &setup.skip_levels, "Skip Unsolved Levels:" },
{ TYPE_SWITCH, &setup.increment_levels,"Increment Solved Levels:" },
{ TYPE_SWITCH, &setup.handicap, "Handicap:" },
{ TYPE_SWITCH, &setup.skip_levels, "Skip Unsolved Levels:" },
{ TYPE_SWITCH, &setup.increment_levels,"Increment Solved Levels:" },
+ { TYPE_SWITCH, &setup.auto_play_next_level,"Auto-play Next Level:" },
{ TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" },
{ TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" },
{ TYPE_STRING, &game_speed_text, "" },
{ TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" },
{ TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" },
{ TYPE_STRING, &game_speed_text, "" },