X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_files.c;h=4a85360925f4b409d969d114a3fca4718a6195ce;hb=HEAD;hp=542c847db9e86c7d85d32fd37b6e2cbdd5be4ca9;hpb=4cd59cef0737229da365e385a8762e681a5e471f;p=rocksndiamonds.git diff --git a/src/game_mm/mm_files.c b/src/game_mm/mm_files.c index 542c847d..4a853609 100644 --- a/src/game_mm/mm_files.c +++ b/src/game_mm/mm_files.c @@ -112,9 +112,12 @@ void setLevelInfoToDefaults_MM(void) native_mm_level.time_bomb = 75; native_mm_level.time_ball = 75; native_mm_level.time_block = 75; - native_mm_level.laser_red = FALSE; - native_mm_level.laser_green = FALSE; - native_mm_level.laser_blue = TRUE; + native_mm_level.mm_laser_red = FALSE; + native_mm_level.mm_laser_green = FALSE; + native_mm_level.mm_laser_blue = TRUE; + native_mm_level.df_laser_red = TRUE; + native_mm_level.df_laser_green = TRUE; + native_mm_level.df_laser_blue = FALSE; for (i = 0; i < MAX_LEVEL_NAME_LEN; i++) native_mm_level.name[i] = '\0'; @@ -127,6 +130,25 @@ void setLevelInfoToDefaults_MM(void) for (i = 0; i < LEVEL_SCORE_ELEMENTS; i++) native_mm_level.score[i] = 10; + int ball_content[] = + { + EL_MIRROR_START, + EL_MIRROR_FIXED_START, + EL_POLAR_START, + EL_POLAR_CROSS_START, + EL_PACMAN_START, + EL_KETTLE, + EL_BOMB, + EL_PRISM + }; + int num_ball_contents = sizeof(ball_content) / sizeof(int); + + native_mm_level.num_ball_contents = num_ball_contents; + native_mm_level.ball_choice_mode = ANIM_RANDOM; + + for (i = 0; i < num_ball_contents; i++) + native_mm_level.ball_content[i] = ball_content[i]; + native_mm_level.field[0][0] = Ur[0][0] = EL_MCDUFFIN_RIGHT; native_mm_level.field[STD_LEV_FIELDX-1][STD_LEV_FIELDY-1] = Ur[STD_LEV_FIELDX-1][STD_LEV_FIELDY-1] = EL_EXIT_CLOSED; @@ -190,9 +212,9 @@ static int LoadLevel_MM_HEAD(File *file, int chunk_size, level->time_fuse = 25; laser_color = getFile8Bit(file); - level->laser_red = (laser_color >> 2) & 0x01; - level->laser_green = (laser_color >> 1) & 0x01; - level->laser_blue = (laser_color >> 0) & 0x01; + level->mm_laser_red = (laser_color >> 2) & 0x01; + level->mm_laser_green = (laser_color >> 1) & 0x01; + level->mm_laser_blue = (laser_color >> 0) & 0x01; level->encoding_16bit_field = (getFile8Bit(file) == 1 ? TRUE : FALSE); @@ -382,9 +404,9 @@ static void SaveLevel_MM_HEAD(FILE *file, struct LevelInfo_MM *level) fputc(level->amoeba_speed, file); fputc(level->time_fuse, file); - laser_color = ((level->laser_red << 2) | - (level->laser_green << 1) | - (level->laser_blue << 0)); + laser_color = ((level->mm_laser_red << 2) | + (level->mm_laser_green << 1) | + (level->mm_laser_blue << 0)); fputc(laser_color, file); fputc((level->encoding_16bit_field ? 1 : 0), file);