diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leaderboard.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/leaderboard.c b/src/leaderboard.c index b198d9f..850fdf0 100644 --- a/src/leaderboard.c +++ b/src/leaderboard.c @@ -53,14 +53,22 @@ leaderboard_t read_leaderboard(char* path, unsigned int capacity) { return lb; } void save_leaderboard(leaderboard_t leaderboard, char* path) { - FILE* file = fopen(path, "w"); + FILE* file = fopen(path, "a"); /* a appends to file */ int res = flock(fileno(file), LOCK_EX); + int i; + leaderscore_t cur; if (res != 0) { fclose(file); return; } /* got lock */ /* TODO: actually write the leaderboard */ + for (i = 0; i < leaderboard.count; i ++) { + cur = leaderboard.scores[i]; + /* TODO: realloc again and then append int in string form to str */ + /* append to file: name,score\n */ + fprintf(file, "%s,%ld\n", cur.name, cur.score); /* prints to file stream */ + } flock(fileno(file), LOCK_UN); fclose(file); } |
