Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4564 → Rev 4565

/trunk/uspace/app/tetris/scores.c
196,5 → 196,38
}
}
 
int loadscores(void)
{
FILE *f;
size_t cnt;
int rc;
 
f = fopen("/tetris.sco", "rb");
if (f == NULL)
return ENOENT;
 
cnt = fread(scores, sizeof(struct highscore), NUMSPOTS, f);
rc = fclose(f);
 
if (cnt != NUMSPOTS || rc != 0)
return EIO;
 
return EOK;
}
 
void savescores(void)
{
FILE *f;
size_t cnt;
int rc;
 
f = fopen("/tetris.sco", "wb");
cnt = fwrite(scores, sizeof(struct highscore), NUMSPOTS, f);
rc = fclose(f);
 
if (cnt != NUMSPOTS || rc != 0)
printf("Error saving score table\n");
}
 
/** @}
*/
/trunk/uspace/app/tetris/scores.h
64,6 → 64,8
extern void showscores(int);
extern void initscores(void);
extern void insertscore(int score, int level);
extern int loadscores(void);
extern void savescores(void);
 
/** @}
*/
/trunk/uspace/app/tetris/tetris.c
49,6 → 49,7
#include <sys/time.h>
#include <sys/types.h>
#include <err.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
206,6 → 207,7
printf("off");
break;
case 'h':
loadscores();
showscores(firstgame);
tetris_menu_draw(*level);
break;
297,7 → 299,9
key_write[4], key_write[5]);
scr_init();
initscores();
if (loadscores() != EOK)
initscores();
 
while (tetris_menu(&level)) {
fallrate = 1000000 / level;
415,7 → 419,9
}
scr_clear();
loadscores();
insertscore(score, level);
savescores();
score = 0;
}