summaryrefslogtreecommitdiff
path: root/src/idget_image.h widget_picture.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/idget_image.h widget_picture.h')
-rw-r--r--src/idget_image.h widget_picture.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/idget_image.h widget_picture.h b/src/idget_image.h widget_picture.h
new file mode 100644
index 0000000..89476ff
--- /dev/null
+++ b/src/idget_image.h widget_picture.h
@@ -0,0 +1,89 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#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 {
+
+ DEBUG_MSG(_("Scorefile: \"%s\"\n"), file);
+ 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);
+ }
+}