{
/* global variable "leveldir_current" must be modified in the loop below */
LevelDirTree *leveldir_current_last = leveldir_current;
{
/* global variable "leveldir_current" must be modified in the loop below */
LevelDirTree *leveldir_current_last = leveldir_current;
/* functions for loading R'n'D level */
/* ------------------------------------------------------------------------- */
/* functions for loading R'n'D level */
/* ------------------------------------------------------------------------- */
/* functions for loading EM level */
/* ------------------------------------------------------------------------- */
/* functions for loading EM level */
/* ------------------------------------------------------------------------- */
/* functions for loading SP level */
/* ------------------------------------------------------------------------- */
/* functions for loading SP level */
/* ------------------------------------------------------------------------- */
/* functions for loading MM level */
/* ------------------------------------------------------------------------- */
/* functions for loading MM level */
/* ------------------------------------------------------------------------- */
/* EM style elements always chain-exploded in R'n'D engine before 3.2.6 */
if (level->game_version < VERSION_IDENT(3,2,6,0))
level->em_explodes_by_fire = TRUE;
/* EM style elements always chain-exploded in R'n'D engine before 3.2.6 */
if (level->game_version < VERSION_IDENT(3,2,6,0))
level->em_explodes_by_fire = TRUE;
+
+ /* levels were solved by the first player entering an exit up to 4.1.0.0 */
+ if (level->game_version <= VERSION_IDENT(4,1,0,0))
+ level->solved_by_one_player = TRUE;
/* tape file functions */
/* ========================================================================= */
/* tape file functions */
/* ========================================================================= */
SETUP_TOKEN_WINDOW_SCALING_PERCENT,
SETUP_TOKEN_WINDOW_SCALING_QUALITY,
SETUP_TOKEN_SCREEN_RENDERING_MODE,
SETUP_TOKEN_WINDOW_SCALING_PERCENT,
SETUP_TOKEN_WINDOW_SCALING_QUALITY,
SETUP_TOKEN_SCREEN_RENDERING_MODE,
SETUP_TOKEN_ASK_ON_ESCAPE,
SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR,
SETUP_TOKEN_QUICK_SWITCH,
SETUP_TOKEN_ASK_ON_ESCAPE,
SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR,
SETUP_TOKEN_QUICK_SWITCH,
SETUP_TOKEN_VOLUME_MUSIC,
SETUP_TOKEN_NETWORK_MODE,
SETUP_TOKEN_NETWORK_PLAYER_NR,
SETUP_TOKEN_VOLUME_MUSIC,
SETUP_TOKEN_NETWORK_MODE,
SETUP_TOKEN_NETWORK_PLAYER_NR,
SETUP_TOKEN_TOUCH_CONTROL_TYPE,
SETUP_TOKEN_TOUCH_MOVE_DISTANCE,
SETUP_TOKEN_TOUCH_DROP_DISTANCE,
SETUP_TOKEN_TOUCH_CONTROL_TYPE,
SETUP_TOKEN_TOUCH_MOVE_DISTANCE,
SETUP_TOKEN_TOUCH_DROP_DISTANCE,
{ TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" },
{ TYPE_STRING, &si.window_scaling_quality, "window_scaling_quality" },
{ TYPE_STRING, &si.screen_rendering_mode, "screen_rendering_mode" },
{ TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" },
{ TYPE_STRING, &si.window_scaling_quality, "window_scaling_quality" },
{ TYPE_STRING, &si.screen_rendering_mode, "screen_rendering_mode" },
{ TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" },
{ TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor" },
{ TYPE_SWITCH, &si.quick_switch, "quick_player_switch" },
{ TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" },
{ TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor" },
{ TYPE_SWITCH, &si.quick_switch, "quick_player_switch" },
{ TYPE_INTEGER,&si.volume_music, "volume_music" },
{ TYPE_SWITCH, &si.network_mode, "network_mode" },
{ TYPE_PLAYER, &si.network_player_nr, "network_player" },
{ TYPE_INTEGER,&si.volume_music, "volume_music" },
{ TYPE_SWITCH, &si.network_mode, "network_mode" },
{ TYPE_PLAYER, &si.network_player_nr, "network_player" },
{ TYPE_STRING, &si.touch.control_type, "touch.control_type" },
{ TYPE_INTEGER,&si.touch.move_distance, "touch.move_distance" },
{ TYPE_INTEGER,&si.touch.drop_distance, "touch.drop_distance" },
{ TYPE_STRING, &si.touch.control_type, "touch.control_type" },
{ TYPE_INTEGER,&si.touch.move_distance, "touch.move_distance" },
{ TYPE_INTEGER,&si.touch.drop_distance, "touch.drop_distance" },
si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;
si->window_scaling_quality = getStringCopy(SCALING_QUALITY_DEFAULT);
si->screen_rendering_mode = getStringCopy(STR_SPECIAL_RENDERING_DEFAULT);
si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;
si->window_scaling_quality = getStringCopy(SCALING_QUALITY_DEFAULT);
si->screen_rendering_mode = getStringCopy(STR_SPECIAL_RENDERING_DEFAULT);
si->ask_on_escape = TRUE;
si->ask_on_escape_editor = TRUE;
si->quick_switch = FALSE;
si->ask_on_escape = TRUE;
si->ask_on_escape_editor = TRUE;
si->quick_switch = FALSE;
si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT);
si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT; /* percent */
si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT);
si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT; /* percent */
{
char *filename = getPath2(getSetupDir(), AUTOSETUP_FILENAME);
SetupFileHash *setup_file_hash = NULL;
{
char *filename = getPath2(getSetupDir(), AUTOSETUP_FILENAME);
SetupFileHash *setup_file_hash = NULL;
{
char *filename = getPath2(getSetupDir(), EDITORCASCADE_FILENAME);
SetupFileHash *setup_file_hash = NULL;
{
char *filename = getPath2(getSetupDir(), EDITORCASCADE_FILENAME);
SetupFileHash *setup_file_hash = NULL;
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
SetupFileHash *setup_file_hash;
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
SetupFileHash *setup_file_hash;
-void add_helpanim_entry(int element, int action, int direction, int delay,
- int *num_list_entries)
+static void add_helpanim_entry(int element, int action, int direction,
+ int delay, int *num_list_entries)
{
char *filename = getHelpAnimFilename();
SetupFileList *setup_file_list = NULL, *list;
{
char *filename = getHelpAnimFilename();
SetupFileList *setup_file_list = NULL, *list;
/* create and save images for use in level sketches (raw BMP format) */
/* ------------------------------------------------------------------------- */
/* create and save images for use in level sketches (raw BMP format) */
/* ------------------------------------------------------------------------- */