From 03daa19ec574dcab59e89566a8062b60b16a8325 Mon Sep 17 00:00:00 2001 From: xHire Date: Sat, 25 Oct 2008 11:58:43 +0200 Subject: Translated all game into Czech + some small fixes Updated scripts Correction: "Height Score" -> "High Score" Set right file permissions --- src/server/highScore.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/server/highScore.c (limited to 'src/server/highScore.c') diff --git a/src/server/highScore.c b/src/server/highScore.c new file mode 100644 index 0000000..1ae7001 --- /dev/null +++ b/src/server/highScore.c @@ -0,0 +1,95 @@ + +#include +#include +#include +#include + +#include "main.h" +#include "list.h" +#include "textFile.h" +#include "highScore.h" + +static textFile_t *textFile; + +void +initHighScore(char *file) +{ + int i; + + textFile = loadTextFile(file); + + if (textFile == NULL) { + fprintf(stderr, _("I am unable to load: \"%s\"!\n"), file); + fprintf(stderr, _("Creating: \"%s\"\n"), file); + textFile = newTextFile(file); + } + else { +#ifdef DEBUG + printf(_("Scorefile: \"%s\"\n"), file); +#endif + return; + } + + if (textFile == NULL) { + fprintf(stderr, _("I was unable to create: \"%s\"!\n"), file); + return; + } + + for (i = 0; i < HIGHSCORE_MAX_PLAYERS; i++) { + addList(textFile->text, strdup("no_name 0")); + } + + saveTextFile(textFile); +} + +int +addPlayerInHighScore(char *name, int score) +{ + int i; + + if (score <= 0) { + return -1; // Ha ha ha + } + + for (i = 0; i < HIGHSCORE_MAX_PLAYERS; i++) { + char *line; + char thisName[STR_NAME_SIZE]; + int thisCore; + + line = (char *) textFile->text->list[i]; + sscanf(line, "%s %d", thisName, &thisCore); + + if (score >= thisCore) { + char new[STR_SIZE]; + + sprintf(new, "%s %d", name, score); + insList(textFile->text, i, strdup(new)); + delListItem(textFile->text, HIGHSCORE_MAX_PLAYERS, free); + //printTextFile(textFile); + saveTextFile(textFile); + + return 0; + } + } + + return -1; +} + +char * +getTableItem(int index) +{ + if (textFile != NULL && index >= 0 && index < textFile->text->count) { + return (char *) textFile->text->list[index]; + } + + return NULL; +} + +void +quitHighScore() +{ + if (textFile != NULL) { + saveTextFile(textFile); + destroyTextFile(textFile); + } +} -- cgit v1.2.3