X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=58cc705c9c1c6f227ca7df73e3ad9065d5cda033;hb=c9433eab5c4317ed4f89164b386a7d33562e29be;hp=e4b5a7315df438f675407942898129d4d1c089d2;hpb=2d603d06ca862f3ca0721b66f62da188faf866c4;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index e4b5a731..58cc705c 100644 --- a/src/files.c +++ b/src/files.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2001 Artsoft Entertainment * +* (c) 1995-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -690,8 +690,6 @@ static void setTapeInfoToDefaults() int i; /* always start with reliable default values (empty tape) */ - tape.file_version = FILE_VERSION_ACTUAL; - tape.game_version = GAME_VERSION_ACTUAL; TapeErase(); /* default values (also for pre-1.2 tapes) with only the first player */ @@ -731,8 +729,7 @@ static int LoadTape_HEAD(FILE *file, int chunk_size, struct TapeInfo *tape) if (tape->file_version >= FILE_VERSION_1_2) { byte store_participating_players = fgetc(file); - - ReadUnusedBytesFromFile(file, TAPE_HEADER_UNUSED); + int engine_version; /* since version 1.2, tapes store which players participate in the tape */ tape->num_participating_players = 0; @@ -747,7 +744,11 @@ static int LoadTape_HEAD(FILE *file, int chunk_size, struct TapeInfo *tape) } } - ReadUnusedBytesFromFile(file, 4); + ReadUnusedBytesFromFile(file, TAPE_HEADER_UNUSED); + + engine_version = getFileVersion(file); + if (engine_version > 0) + tape->engine_version = engine_version; } return chunk_size; @@ -977,9 +978,10 @@ static void SaveTape_HEAD(FILE *file, struct TapeInfo *tape) fputc(store_participating_players, file); + /* unused bytes not at the end here for 4-byte alignment of engine_version */ WriteUnusedBytesToFile(file, TAPE_HEADER_UNUSED); - WriteUnusedBytesToFile(file, 4); + putFileVersion(file, tape->engine_version); } static void SaveTape_BODY(FILE *file, struct TapeInfo *tape) @@ -1065,7 +1067,7 @@ void DumpTape(struct TapeInfo *tape) printf("\n"); printf("-------------------------------------------------------------------------------\n"); - printf("Tape of Level %d (file version %06d, game version %06d\n", + printf("Tape of Level %d (file version %06d, game version %06d)\n", tape->level_nr, tape->file_version, tape->game_version); printf("-------------------------------------------------------------------------------\n");