X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_files.c;h=1def7cc3eaf5459dca625a549a2c7f667f5084d6;hp=8e6a72bdf761cee3e3ff78b75fd40c95c638765c;hb=439166f2dc0f7462a6e75497d1ac03f9e96042c7;hpb=e84892f2b6b69147441c10ec8ae7304748162fb8 diff --git a/src/game_mm/mm_files.c b/src/game_mm/mm_files.c index 8e6a72bd..1def7cc3 100644 --- a/src/game_mm/mm_files.c +++ b/src/game_mm/mm_files.c @@ -30,6 +30,16 @@ #define SCORE_COOKIE "MIRRORMAGIC_SCORE_FILE_VERSION_1.4" +int default_score[LEVEL_SCORE_ELEMENTS] = +{ + [SC_COLLECTIBLE] = 10, + [SC_PACMAN] = 50, + [SC_KEY] = 10, + [SC_TIME_BONUS] = 1, + [SC_LIGHTBALL] = 10, +}; + + /* ========================================================================= */ /* level file functions */ /* ========================================================================= */ @@ -98,7 +108,10 @@ void setLevelInfoToDefaults_MM() native_mm_level.kettles_needed = 0; native_mm_level.auto_count_kettles = TRUE; native_mm_level.amoeba_speed = 0; - native_mm_level.time_fuse = 0; + native_mm_level.time_fuse = 25; + 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; @@ -162,10 +175,20 @@ static int LoadLevel_MM_HEAD(File *file, int chunk_size, for (i = 0; i < LEVEL_SCORE_ELEMENTS; i++) level->score[i] = getFile8Bit(file); + // scores were 0 and hardcoded in game engine in level files up to 2.0.x + if (level->file_version <= MM_FILE_VERSION_2_0) + for (i = 0; i < LEVEL_SCORE_ELEMENTS; i++) + if (level->score[i] == 0) + level->score[i] = default_score[i]; + level->auto_count_kettles = (getFile8Bit(file) == 1 ? TRUE : FALSE); level->amoeba_speed = getFile8Bit(file); level->time_fuse = getFile8Bit(file); + // fuse time was 0 and hardcoded in game engine in level files up to 2.0.x + if (level->file_version <= MM_FILE_VERSION_2_0) + level->time_fuse = 25; + laser_color = getFile8Bit(file); level->laser_red = (laser_color >> 2) & 0x01; level->laser_green = (laser_color >> 1) & 0x01;