X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffiles.c;h=9e35c06009c35736d877fc900bd77cdeec02c214;hb=823bddb0d9cc63ddda17a2cd20266aa3b82bde38;hp=e3ad459fb57c59393cf3847fe073add1bcc8bdd6;hpb=34b9fd6b89ffe8fa0637840118b43e4d36bb1798;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index e3ad459f..9e35c060 100644 --- a/src/files.c +++ b/src/files.c @@ -1,13 +1,12 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* ©1995 Artsoft Development * -* Holger Schemel * -* 33659 Bielefeld-Senne * -* Telefon: (0521) 493245 * -* eMail: aeglos@valinor.owl.de * -* aeglos@uni-paderborn.de * -* q99492@pbhrzx.uni-paderborn.de * +* (c) 1995-98 Artsoft Entertainment * +* Holger Schemel * +* Oststrasse 11a * +* 33604 Bielefeld * +* phone: ++49 +521 290471 * +* email: aeglos@valinor.owl.de * *----------------------------------------------------------* * files.h * ***********************************************************/ @@ -220,6 +219,7 @@ void LoadLevelTape(int level_nr) char filename[MAX_FILENAME]; char cookie[MAX_FILENAME]; FILE *file; + BOOL levelrec_10 = FALSE; #ifndef MSDOS sprintf(filename,"%s/%s/%d.tape", @@ -233,7 +233,9 @@ void LoadLevelTape(int level_nr) { fgets(cookie,LEVELREC_COOKIE_LEN,file); fgetc(file); - if (strcmp(cookie,LEVELREC_COOKIE)) /* ungültiges Format? */ + if (!strcmp(cookie,LEVELREC_COOKIE_10)) /* old 1.0 tape format */ + levelrec_10 = TRUE; + else if (strcmp(cookie,LEVELREC_COOKIE)) /* unknown tape format */ { fprintf(stderr,"%s: wrong format of level recording file '%s'!\n", progname,filename); @@ -262,10 +264,23 @@ void LoadLevelTape(int level_nr) for(i=0;i=MAX_TAPELEN) + int j; + + if (i >= MAX_TAPELEN) break; - tape.pos[i].joystickdata = fgetc(file); - tape.pos[i].delay = fgetc(file); + + for(j=0; j0) + { + tape.pos[i].joystickdata[j] = MV_NO_MOVING; + continue; + } + tape.pos[i].joystickdata[j] = fgetc(file); + } + + tape.pos[i].delay = fgetc(file); + if (feof(file)) break; } @@ -571,7 +586,11 @@ void SaveLevelTape(int level_nr) for(i=0;i