{
/* 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 */
/* ------------------------------------------------------------------------- */
+ /* game logic of "game of life" and "biomaze" was buggy before 4.1.1.1 */
+ if (level->game_version < VERSION_IDENT(4,1,1,1))
+ level->use_life_bugs = TRUE;
+
if (level->game_version < VERSION_IDENT(3,2,0,7))
{
/* default behaviour for snapping was "not continuous" before 3.2.0-7 */
if (level->game_version < VERSION_IDENT(3,2,0,7))
{
/* default behaviour for snapping was "not continuous" before 3.2.0-7 */
/* 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_ASK_ON_ESCAPE,
SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR,
SETUP_TOKEN_QUICK_SWITCH,
SETUP_TOKEN_INPUT_ON_FOCUS,
SETUP_TOKEN_PREFER_AGA_GRAPHICS,
SETUP_TOKEN_QUICK_SWITCH,
SETUP_TOKEN_INPUT_ON_FOCUS,
SETUP_TOKEN_PREFER_AGA_GRAPHICS,
SETUP_TOKEN_GAME_FRAME_DELAY,
SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS,
SETUP_TOKEN_SMALL_GAME_GRAPHICS,
SETUP_TOKEN_GAME_FRAME_DELAY,
SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS,
SETUP_TOKEN_SMALL_GAME_GRAPHICS,
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.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.input_on_focus, "input_on_focus" },
{ TYPE_SWITCH, &si.prefer_aga_graphics, "prefer_aga_graphics" },
{ TYPE_SWITCH, &si.quick_switch, "quick_player_switch" },
{ TYPE_SWITCH, &si.input_on_focus, "input_on_focus" },
{ TYPE_SWITCH, &si.prefer_aga_graphics, "prefer_aga_graphics" },
{ TYPE_INTEGER,&si.game_frame_delay, "game_frame_delay" },
{ TYPE_SWITCH, &si.sp_show_border_elements, "sp_show_border_elements" },
{ TYPE_SWITCH, &si.small_game_graphics, "small_game_graphics" },
{ TYPE_INTEGER,&si.game_frame_delay, "game_frame_delay" },
{ TYPE_SWITCH, &si.sp_show_border_elements, "sp_show_border_elements" },
{ TYPE_SWITCH, &si.small_game_graphics, "small_game_graphics" },
{ 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->quick_switch = FALSE;
si->input_on_focus = FALSE;
si->prefer_aga_graphics = TRUE;
si->quick_switch = FALSE;
si->input_on_focus = FALSE;
si->prefer_aga_graphics = TRUE;
si->game_frame_delay = GAME_FRAME_DELAY;
si->sp_show_border_elements = FALSE;
si->small_game_graphics = FALSE;
si->game_frame_delay = GAME_FRAME_DELAY;
si->sp_show_border_elements = FALSE;
si->small_game_graphics = 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) */
/* ------------------------------------------------------------------------- */