home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume19 / xblockbuster / part03 / save.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-28  |  1.6 KB  |  71 lines

  1. /*
  2.  * File:       save.c
  3.  * Author:     Eric Van Gestel
  4.  *
  5.  * For:                xblockbuster
  6.  * Updated for X11 by Mark S. Wedel
  7.  *
  8.  */
  9.  
  10. #include "xblockbuster.h"
  11.  
  12. void
  13. start_up(  )
  14. {
  15.     FILE           *fd;
  16.     char            sve[SAVEFILE_LENGTH];
  17.     register int    stage_nb_tmp;
  18.  
  19.     if ((fd = fopen( sprintf( sve, SAVEFILE, playground, login ),"r+" ))) {
  20.         /* restoring save file */
  21.         XDrawImageString(display, win, gc, OFFSET_BALLS,
  22.             font_height, "Restoring...",12);
  23.  
  24.         fscanf( fd, "%d:%d::%d:%d::%d:%lf\n",
  25.             &score, &balls_left,
  26.             &nb_stages, &stage_nb,
  27.             &pallet_modif, &launch_speed );
  28.         for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  29.             fscanf( fd, "%1d", &stages[stage_nb_tmp++] );
  30.         fclose( fd );
  31.         /* remove save file */
  32.         unlink( sve );
  33.         /* restart stage chosen when saved */
  34.         get_stage(  );
  35.     } else {
  36.         /* no save file */
  37.         score = 0;
  38.         balls_left = INIT_BALLS;
  39.         pallet_modif = 0;
  40.         launch_speed = INIT_SPEED;
  41.         nb_stages = 0;
  42.         for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  43.             stages[stage_nb_tmp++] = FALSE;
  44.         /* start some stage */
  45.         new_stage(  );
  46.     }
  47. }
  48.  
  49. void
  50. save(  )
  51. {
  52.     FILE           *fd;
  53.     char            sve[SAVEFILE_LENGTH];
  54.     register int    stage_nb_tmp = 0;
  55.  
  56.     if ( !( fd = fopen( sprintf( sve, SAVEFILE, playground, login ),
  57.                 "w" ) ) ) {
  58.         perror( "Can't open save file" );
  59.         exit( 1 );
  60.     }
  61.     fprintf( fd, "%d:%d::%d:%d::%d:%f\n",
  62.          score, balls_left,
  63.          nb_stages, stage_nb,
  64.          pallet_modif, launch_speed );
  65.     for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  66.         fprintf( fd, "%1d", stages[stage_nb_tmp++] );
  67.     close( fd );
  68.  
  69.     show_score_board(  );    /* BYE !! */
  70. }
  71.