summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralex <alex@ASUS>2018-09-19 21:41:59 +0200
committeralex <alex@ASUS>2018-09-19 21:41:59 +0200
commit561ed34d3a1e01bbb51a310755ca7aca330d7165 (patch)
tree548fbfff5b9da8d2c64a0dc7843ed74723e8455c
parente12fb24ba57b30e4023efec2b8e8b89ce14af0dc (diff)
Print scores in GUI window
-rw-r--r--modules/menu/src/menu_gui.c2
-rw-r--r--modules/menu/src/menu_tui.c8
-rw-r--r--modules/save/inc/score.h2
-rw-r--r--modules/save/src/score.c49
4 files changed, 43 insertions, 18 deletions
diff --git a/modules/menu/src/menu_gui.c b/modules/menu/src/menu_gui.c
index 5466e1d..427534a 100644
--- a/modules/menu/src/menu_gui.c
+++ b/modules/menu/src/menu_gui.c
@@ -369,7 +369,7 @@ static void menu_gui_hiscores (void)
/* Text */
snprintf(label.text, LINE_SIZE, "Hi scores");
-// snprint_scores(label_file_txt, BUFF_SIZE_TEXT, SHARE_LICENSE);
+ snprint_scores(label_file_txt, BUFF_SIZE_TEXT);
snprintf(button[0].text, LINE_SIZE, "[_0] Back");
/* Data */
diff --git a/modules/menu/src/menu_tui.c b/modules/menu/src/menu_tui.c
index 436ef6c..c59a094 100644
--- a/modules/menu/src/menu_tui.c
+++ b/modules/menu/src/menu_tui.c
@@ -45,6 +45,8 @@
# error "cols max (tui)"
#endif
+ # define BUFF_SIZE_TEXT (1048576)
+
/******************************************************************************
******* static functions *****************************************************
@@ -121,6 +123,9 @@ void menu_tui (void)
******************************************************************************/
static void menu_tui_continue (void)
{
+ /* Hi scores tmp string */
+ char str [BUFF_SIZE_TEXT];
+
/* Menu dimensions & options */
WINDOW *win;
int h;
@@ -196,7 +201,8 @@ static void menu_tui_continue (void)
case 5:
alx_win_del(win);
alx_pause_curses();
- read_scores();
+ snprint_scores(str, BUFF_SIZE_TEXT);
+ printf("%s", str);
getchar();
alx_resume_curses();
break;
diff --git a/modules/save/inc/score.h b/modules/save/inc/score.h
index 3680abe..e81c6d1 100644
--- a/modules/save/inc/score.h
+++ b/modules/save/inc/score.h
@@ -56,7 +56,7 @@ extern char var_hiscores_expert_name [FILENAME_MAX];
******************************************************************************/
void score_init (void);
void save_score (const struct Game_Iface_Score *game_iface_score);
-void read_scores (void);
+void snprint_scores (char *dest, int destsize);
/******************************************************************************
diff --git a/modules/save/src/score.c b/modules/save/src/score.c
index 31ee474..8aa837e 100644
--- a/modules/save/src/score.c
+++ b/modules/save/src/score.c
@@ -35,6 +35,7 @@
******* macros ***************************************************************
******************************************************************************/
# define BUFF_SIZE (1024)
+ # define BUFF_SIZE_TEXT (1048576)
/******************************************************************************
@@ -55,7 +56,7 @@ char var_hiscores_expert_name [FILENAME_MAX];
/******************************************************************************
******* static functions *****************************************************
******************************************************************************/
-static void read_scores_file (char *file_name);
+static void snprint_scores_file (char *dest, int destsize, char *file_name);
/******************************************************************************
@@ -142,37 +143,48 @@ void save_score (const struct Game_Iface_Score *game_iface_score)
}
}
-void read_scores (void)
+void snprint_scores (char *dest, int destsize)
{
/* File */
char file_name [FILENAME_MAX];
+ /* Tmp strings */
+ char tmp1 [BUFF_SIZE_TEXT];
+ char tmp2 [BUFF_SIZE_TEXT];
+
/* Beginner */
snprintf(file_name, FILENAME_MAX, "%s/%s",
var_hiscores_path, var_hiscores_beginner_name);
- read_scores_file(file_name);
+ snprint_scores_file(dest, destsize, file_name);
/* Intermediate */
snprintf(file_name, FILENAME_MAX, "%s/%s",
var_hiscores_path, var_hiscores_intermediate_name);
- read_scores_file(file_name);
+ snprint_scores_file(tmp1, destsize, file_name);
+ snprintf(tmp2, destsize, "%s%s", dest, tmp1);
+ snprintf(dest, destsize, "%s", tmp2);
/* Expert */
snprintf(file_name, FILENAME_MAX, "%s/%s",
var_hiscores_path, var_hiscores_expert_name);
- read_scores_file(file_name);
+ snprint_scores_file(tmp1, destsize, file_name);
+ snprintf(tmp2, destsize, "%s%s", dest, tmp1);
+ snprintf(dest, destsize, "%s", tmp2);
}
/******************************************************************************
******* static functions *****************************************************
******************************************************************************/
-static void read_scores_file (char *file_name)
+static void snprint_scores_file (char *dest, int destsize, char *file_name)
{
/* File */
FILE *fp;
int c;
+ /* Tmp string */
+ char tmp [BUFF_SIZE_TEXT];
+
/* Score variables */
char title [BUFF_SIZE];
char name [BUFF_SIZE];
@@ -195,9 +207,11 @@ static void read_scores_file (char *file_name)
fscanf(fp, " ");
/* Print */
- printf("_______________________________________________________\n");
- printf("%s\n\n", title);
- printf("name date clicks time file\n\n");
+ snprintf(dest, destsize,
+ "_______________________________________________________\n"
+ "%s\n\n"
+ "name date clicks time file\n\n",
+ title);
while ((c = getc(fp)) != EOF){
ungetc(c, fp);
@@ -227,12 +241,17 @@ static void read_scores_file (char *file_name)
secs = (time % 60);
/* Print */
- printf("%s\n\t", name);
- printf("%4i/%2i/%2i %i %i:%02i:%02i \t%s\n\n",
- year, 1 + mon, day,
- clicks,
- hours, mins, secs,
- file);
+ snprintf(tmp, BUFF_SIZE_TEXT,
+ "%s"
+ "%s\n"
+ " %4i/%2i/%2i %i %i:%02i:%02i \t%s\n\n",
+ dest,
+ name,
+ year, 1 + mon, day,
+ clicks,
+ hours, mins, secs,
+ file);
+ snprintf(dest, BUFF_SIZE_TEXT, "%s", tmp);
}
fclose(fp);