X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=8d684ff08318e27800bd7f9d604dcac245a16994;hb=aba4ad86f8fe03895d83c48536d9848726644293;hp=0fd7a18ade6db1691778942d270aee3e8f15ecb7;hpb=536e46a4eadb99140f58a8b09a7e25ca02b50680;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 0fd7a18a..8d684ff0 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 1 /* unused level header bytes */ +#define LEVEL_HEADER_UNUSED 0 /* 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 */ @@ -114,6 +114,8 @@ static void setLevelInfoToDefaults(struct LevelInfo *level) int i, j, x, y; + level->game_engine_type = GAME_ENGINE_TYPE_RND; + level->file_version = FILE_VERSION_ACTUAL; level->game_version = GAME_VERSION_ACTUAL; @@ -712,6 +714,8 @@ static int LoadLevel_HEAD(FILE *file, int chunk_size, struct LevelInfo *level) level->can_pass_to_walkable = (getFile8Bit(file) == 1 ? TRUE : FALSE); level->grow_into_diggable = (getFile8Bit(file) == 1 ? TRUE : FALSE); + level->game_engine_type = getFile8Bit(file); + ReadUnusedBytesFromFile(file, LEVEL_HEADER_UNUSED); return chunk_size; @@ -2118,6 +2122,7 @@ void LoadLevelFromFileInfo(struct LevelInfo *level, case LEVEL_FILE_TYPE_EM: LoadLevelFromFileInfo_EM(level, level_file_info); + level->game_engine_type = GAME_ENGINE_TYPE_EM; break; case LEVEL_FILE_TYPE_SP: @@ -2128,6 +2133,9 @@ void LoadLevelFromFileInfo(struct LevelInfo *level, LoadLevelFromFileInfo_RND(level, level_file_info); break; } + + if (level->game_engine_type == GAME_ENGINE_TYPE_UNKNOWN) + level->game_engine_type = GAME_ENGINE_TYPE_RND; } void LoadLevelFromFilename(struct LevelInfo *level, char *filename) @@ -2618,6 +2626,8 @@ static void SaveLevel_HEAD(FILE *file, struct LevelInfo *level) putFile8Bit(file, (level->can_pass_to_walkable ? 1 : 0)); putFile8Bit(file, (level->grow_into_diggable ? 1 : 0)); + putFile8Bit(file, level->game_engine_type); + WriteUnusedBytesToFile(file, LEVEL_HEADER_UNUSED); }