X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ffiles.c;h=a07ee8af5458f10b60cfe66d431ac2372be1e4a1;hp=d18122f270c1d03efadea0dd71fd0a6603ce2159;hb=c9308ba3e7ddea2d7e44b4d98f0dfbb19e18f04f;hpb=ede9654611727236d92fb50575bb937231acff71 diff --git a/src/files.c b/src/files.c index d18122f2..a07ee8af 100644 --- a/src/files.c +++ b/src/files.c @@ -839,9 +839,29 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] = }, { - EL_MM_FUSE, -1, + EL_MM_FUSE_ACTIVE, -1, TYPE_INTEGER, CONF_VALUE_16_BIT(1), - &li.mm_time_fuse, 0 + &li.mm_time_fuse, 25 + }, + { + EL_MM_BOMB, -1, + TYPE_INTEGER, CONF_VALUE_16_BIT(1), + &li.mm_time_bomb, 75 + }, + { + EL_MM_GRAY_BALL, -1, + TYPE_INTEGER, CONF_VALUE_16_BIT(1), + &li.mm_time_ball, 75 + }, + { + EL_MM_STEEL_BLOCK, -1, + TYPE_INTEGER, CONF_VALUE_16_BIT(1), + &li.mm_time_block, 75 + }, + { + EL_MM_LIGHTBALL, -1, + TYPE_INTEGER, CONF_VALUE_16_BIT(1), + &li.score[SC_ELEM_BONUS], 10 }, /* ---------- unused values ----------------------------------------------- */ @@ -849,11 +869,6 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] = { EL_UNKNOWN, SAVE_CONF_NEVER, TYPE_INTEGER, CONF_VALUE_16_BIT(1), - &li.score[SC_UNKNOWN_14], 10 - }, - { - EL_UNKNOWN, SAVE_CONF_NEVER, - TYPE_INTEGER, CONF_VALUE_16_BIT(2), &li.score[SC_UNKNOWN_15], 10 }, @@ -3976,10 +3991,6 @@ void CopyNativeLevel_RND_to_MM(struct LevelInfo *level) struct LevelInfo_MM *level_mm = level->native_mm_level; int x, y; - level_mm->file_version = level->file_version; - level_mm->game_version = level->game_version; - level_mm->encoding_16bit_field = level->encoding_16bit_field; - level_mm->fieldx = MIN(level->fieldx, MM_MAX_PLAYFIELD_WIDTH); level_mm->fieldy = MIN(level->fieldy, MM_MAX_PLAYFIELD_HEIGHT); @@ -3994,12 +4005,17 @@ void CopyNativeLevel_RND_to_MM(struct LevelInfo *level) strcpy(level_mm->name, level->name); strcpy(level_mm->author, level->author); + level_mm->score[SC_EMERALD] = level->score[SC_EMERALD]; level_mm->score[SC_PACMAN] = level->score[SC_PACMAN]; - level_mm->score[SC_KEY] = level->score[SC_PACMAN]; + level_mm->score[SC_KEY] = level->score[SC_KEY]; level_mm->score[SC_TIME_BONUS] = level->score[SC_TIME_BONUS]; + level_mm->score[SC_ELEM_BONUS] = level->score[SC_ELEM_BONUS]; level_mm->amoeba_speed = level->amoeba_speed; - level_mm->time_fuse = level->mm_time_fuse; + level_mm->time_fuse = level->mm_time_fuse; + level_mm->time_bomb = level->mm_time_bomb; + level_mm->time_ball = level->mm_time_ball; + level_mm->time_block = level->mm_time_block; for (x = 0; x < level->fieldx; x++) for (y = 0; y < level->fieldy; y++) @@ -4012,10 +4028,6 @@ void CopyNativeLevel_MM_to_RND(struct LevelInfo *level) struct LevelInfo_MM *level_mm = level->native_mm_level; int x, y; - level->file_version = level_mm->file_version; - level->game_version = level_mm->game_version; - level->encoding_16bit_field = level_mm->encoding_16bit_field; - level->fieldx = MIN(level_mm->fieldx, MAX_LEV_FIELDX); level->fieldy = MIN(level_mm->fieldy, MAX_LEV_FIELDY); @@ -4033,12 +4045,17 @@ void CopyNativeLevel_MM_to_RND(struct LevelInfo *level) if (!strEqual(level_mm->author, ANONYMOUS_NAME)) strcpy(level->author, level_mm->author); + level->score[SC_EMERALD] = level_mm->score[SC_EMERALD]; level->score[SC_PACMAN] = level_mm->score[SC_PACMAN]; - level->score[SC_KEY] = level_mm->score[SC_PACMAN]; + level->score[SC_KEY] = level_mm->score[SC_KEY]; level->score[SC_TIME_BONUS] = level_mm->score[SC_TIME_BONUS]; + level->score[SC_ELEM_BONUS] = level_mm->score[SC_ELEM_BONUS]; - level->amoeba_speed = level_mm->amoeba_speed; - level->mm_time_fuse = level_mm->time_fuse; + level->amoeba_speed = level_mm->amoeba_speed; + level->mm_time_fuse = level_mm->time_fuse; + level->mm_time_bomb = level_mm->time_bomb; + level->mm_time_ball = level_mm->time_ball; + level->mm_time_block = level_mm->time_block; for (x = 0; x < level->fieldx; x++) for (y = 0; y < level->fieldy; y++) @@ -9731,6 +9748,28 @@ static void LoadMenuDesignSettingsFromFilename(char *filename) menu.draw_yoffset_setup[i] = get_integer_from_string(value_2); } + /* special case: initialize with default values that may be overwritten */ + /* (eg, init "menu.line_spacing.INFO[XXX]" from "menu.line_spacing.INFO") */ + for (i = 0; i < NUM_SPECIAL_GFX_INFO_ARGS; i++) + { + char *value_1 = getHashEntry(setup_file_hash,"menu.paragraph_spacing.INFO"); + char *value_2 = getHashEntry(setup_file_hash,"menu.headline1_spacing.INFO"); + char *value_3 = getHashEntry(setup_file_hash,"menu.headline2_spacing.INFO"); + char *value_4 = getHashEntry(setup_file_hash,"menu.line_spacing.INFO"); + char *value_5 = getHashEntry(setup_file_hash,"menu.extra_spacing.INFO"); + + if (value_1 != NULL) + menu.paragraph_spacing_info[i] = get_integer_from_string(value_1); + if (value_2 != NULL) + menu.headline1_spacing_info[i] = get_integer_from_string(value_2); + if (value_3 != NULL) + menu.headline2_spacing_info[i] = get_integer_from_string(value_3); + if (value_4 != NULL) + menu.line_spacing_info[i] = get_integer_from_string(value_4); + if (value_5 != NULL) + menu.extra_spacing_info[i] = get_integer_from_string(value_5); + } + /* special case: initialize with default values that may be overwritten */ /* (eg, init "menu.enter_screen.SCORES.xyz" from "menu.enter_screen.xyz") */ for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)