diff options
author | alex <alex@ASUS> | 2018-09-19 21:41:59 +0200 |
---|---|---|
committer | alex <alex@ASUS> | 2018-09-19 21:41:59 +0200 |
commit | 561ed34d3a1e01bbb51a310755ca7aca330d7165 (patch) | |
tree | 548fbfff5b9da8d2c64a0dc7843ed74723e8455c | |
parent | e12fb24ba57b30e4023efec2b8e8b89ce14af0dc (diff) |
Print scores in GUI window
-rw-r--r-- | modules/menu/src/menu_gui.c | 2 | ||||
-rw-r--r-- | modules/menu/src/menu_tui.c | 8 | ||||
-rw-r--r-- | modules/save/inc/score.h | 2 | ||||
-rw-r--r-- | modules/save/src/score.c | 49 |
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);
|