X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=8e6ec1bb99c58cae3cca6f98f50d4bf1c7b1cefb;hb=f7eeeedb1a0bb21cbd8366cf241faffc76aafc16;hp=5fd205cb42d859ed0cd4049a23777ef235354329;hpb=cb97a0d81529dc81696e5df8e17083b30dfe633e;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 5fd205cb..8e6ec1bb 100644 --- a/src/files.c +++ b/src/files.c @@ -29,7 +29,7 @@ #define CHUNK_SIZE_NONE -1 /* do not write chunk size */ #define FILE_VERS_CHUNK_SIZE 8 /* size of file version chunk */ #define LEVEL_HEADER_SIZE 80 /* size of level file header */ -#define LEVEL_HEADER_UNUSED 8 /* unused level header bytes */ +#define LEVEL_HEADER_UNUSED 7 /* unused level header bytes */ #define LEVEL_CHUNK_CNT2_SIZE 160 /* size of level CNT2 chunk */ #define LEVEL_CHUNK_CNT2_UNUSED 11 /* unused CNT2 chunk bytes */ #define LEVEL_CHUNK_CNT3_HEADER 16 /* size of level CNT3 header */ @@ -162,7 +162,9 @@ static void setLevelInfoToDefaults(struct LevelInfo *level) level->use_spring_bug = FALSE; - level->can_move_into_acid = ~0; /* everything can move into acid */ + level->can_move_into_acid_bits = ~0; /* everything can move into acid */ + + level->use_step_counter = FALSE; level->use_custom_template = FALSE; @@ -655,7 +657,9 @@ static int LoadLevel_HEAD(FILE *file, int chunk_size, struct LevelInfo *level) level->use_spring_bug = (getFile8Bit(file) == 1 ? TRUE : FALSE); - level->can_move_into_acid = getFile16BitBE(file); + level->can_move_into_acid_bits = getFile16BitBE(file); + + level->use_step_counter = (getFile8Bit(file) == 1 ? TRUE : FALSE); ReadUnusedBytesFromFile(file, LEVEL_HEADER_UNUSED); @@ -2057,7 +2061,7 @@ static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename) { int i, j; - level->can_move_into_acid = 0; /* nothing can move into acid */ + level->can_move_into_acid_bits = 0; /* nothing can move into acid */ setMoveIntoAcidProperty(level, EL_ROBOT, TRUE); setMoveIntoAcidProperty(level, EL_SATELLITE, TRUE); @@ -2367,7 +2371,9 @@ static void SaveLevel_HEAD(FILE *file, struct LevelInfo *level) putFile8Bit(file, (level->use_spring_bug ? 1 : 0)); - putFile16BitBE(file, level->can_move_into_acid); + putFile16BitBE(file, level->can_move_into_acid_bits); + + putFile8Bit(file, (level->use_step_counter ? 1 : 0)); WriteUnusedBytesToFile(file, LEVEL_HEADER_UNUSED); } @@ -2908,6 +2914,7 @@ void DumpLevel(struct LevelInfo *level) printf("Player blocks last field: %s\n", (level->block_last_field ? "yes" : "no")); printf("SP player blocks last field: %s\n", (level->sp_block_last_field ? "yes" : "no")); printf("use spring bug: %s\n", (level->use_spring_bug ? "yes" : "no")); + printf("use step counter: %s\n", (level->use_step_counter ? "yes" : "no")); printf_line("-", 79); }