level->no_valid_file = FALSE;
+ level->changed = FALSE;
+
if (leveldir_current == NULL) /* only when dumping level */
return;
}
}
-#if 1
+#if 1 /* USE_NEW_BLOCK_STYLE */
/* blocking the last field when moving was corrected in version 3.1.1 */
if (level->game_version < VERSION_IDENT(3,1,1,0))
{
+#if 0
+ printf("::: %d\n", level->block_last_field);
+#endif
+
/* even "not blocking" was blocking the last field for one frame */
level->block_delay = (level->block_last_field ? 7 : 1);
level->sp_block_delay = (level->sp_block_last_field ? 7 : 1);
}
/* initialize "can_explode" field for old levels which did not store this */
+ /* !!! CHECK THIS -- "<= 3,1,0,0" IS PROBABLY WRONG !!! */
if (level->game_version <= VERSION_IDENT(3,1,0,0))
{
for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
}
}
+ /* correct previously hard-coded move delay values for maze runner style */
+ if (level->game_version < VERSION_IDENT(3,1,1,0))
+ {
+ for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
+ {
+ int element = EL_CUSTOM_START + i;
+
+ if (element_info[element].move_pattern & MV_MAZE_RUNNER_STYLE)
+ {
+ /* previously hard-coded and therefore ignored */
+ element_info[element].move_delay_fixed = 9;
+ element_info[element].move_delay_random = 0;
+ }
+ }
+ }
+
#if 0
/* set default push delay values (corrected since version 3.0.7-1) */
if (level->game_version < VERSION_IDENT(3,0,7,1))
LoadLevelFromFilename_RND(&level_template, filename);
#endif
+#if 1
+ LoadLevel_InitVersion(&level_template, filename);
+ LoadLevel_InitElements(&level_template, filename);
+#else
LoadLevel_InitVersion(&level, filename);
LoadLevel_InitElements(&level, filename);
+#endif
ActivateLevelTemplate();
}
printf_line("-", 79);
printf("Tape of Level %03d (file version %08d, game version %08d)\n",
tape->level_nr, tape->file_version, tape->game_version);
+ printf(" (effective engine version %08d)\n",
+ tape->engine_version);
printf("Level series identifier: '%s'\n", tape->level_identifier);
printf_line("-", 79);