X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=c3cb4b8ddaf769b0566f1f8a38da72a6aa7b7cea;hb=82b1f76754f039e4ee151c7da7c49819c7310546;hp=17bc45e5986691d8b773e6ad12dad24c7a29df79;hpb=c4b26cf489dcc65a00bfcc05f7898700d2f0c9e4;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 17bc45e5..c3cb4b8d 100644 --- a/src/files.c +++ b/src/files.c @@ -19,68 +19,6 @@ #include "tape.h" #include "joystick.h" -boolean CreateNewScoreFile() -{ - int i,j,k; - char filename[MAX_FILENAME_LEN]; - char empty_alias[MAX_NAMELEN]; - FILE *file; - - sprintf(filename,"%s/%s/%s", - level_directory,leveldir[leveldir_nr].filename,SCORE_FILENAME); - - if (!(file=fopen(filename,"w"))) - return(FALSE); - - for(i=0;ileveldir_nr < num_leveldirs) - leveldir_nr = local_player->leveldir_nr; - else - leveldir_nr = 0; - } - else - { - local_player->handicap = new_player.handicap; - local_player->level_nr = new_player.level_nr; - } - - level_nr = local_player->level_nr; - - if (file) - fclose(file); -} - -#endif - - - -void SaveLevel(int level_nr) -{ - int i,x,y; - char filename[MAX_FILENAME_LEN]; - FILE *file; - - sprintf(filename,"%s/%s/%d", - level_directory,leveldir[leveldir_nr].filename,level_nr); - - if (!(file=fopen(filename,"w"))) - { - Error(ERR_WARN, "cannot save level file '%s'", filename); - return; - } - - fputs(LEVEL_COOKIE,file); /* Formatkennung */ - fputc(0x0a,file); - - fputc(level.fieldx,file); - fputc(level.fieldy,file); - fputc(level.time / 256,file); - fputc(level.time % 256,file); - fputc(level.edelsteine / 256,file); - fputc(level.edelsteine % 256,file); - - for(i=0;ilogin_name, MAX_NAMELEN-1)) - { - fseek(file,-(2*MAX_NAMELEN+1+2+1+(version_10_file ? 0 : 11)),SEEK_CUR); - break; - } } +} - local_player->level_nr = level_nr; +void SaveScore(int level_nr) +{ + int i,j; + char filename[MAX_FILENAME_LEN]; + FILE *file; - for(i=0;ilogin_name[i],file); - for(i=0;ialias_name[i],file); - fputc(local_player->handicap,file); - fputc(local_player->setup / 256,file); - fputc(local_player->setup % 256,file); - fputc(local_player->leveldir_nr,file); - if (!version_10_file) + sprintf(filename,"%s/%s/%s", + level_directory,leveldir[leveldir_nr].filename,SCORE_FILENAME); + + if (!(file=fopen(filename,"r+"))) { - fputc(local_player->level_nr,file); - for(i=0;i<10;i++) /* currently unused bytes */ - fputc(0,file); + Error(ERR_WARN, "cannot save score for level %d", level_nr); + return; } + fseek(file, + SCORE_COOKIE_LEN-1+level_nr*(MAX_SCORE_ENTRIES*(MAX_NAMELEN+2)), + SEEK_SET); + for(i=0;i