summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-08-07 17:43:17 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-08-07 17:51:37 (EDT)
commit9ccd9a3fec9a65b6f58d5a61a7d3ecca9e5d7011 (patch)
treea142cae316447da97bc8c22f9f5f095009208cc2 /src
parent3bfc960bce1f9b81a6d43601165de38a6b4e2ad3 (diff)
downloadmazefight-9ccd9a3fec9a65b6f58d5a61a7d3ecca9e5d7011.zip
mazefight-9ccd9a3fec9a65b6f58d5a61a7d3ecca9e5d7011.tar.gz
mazefight-9ccd9a3fec9a65b6f58d5a61a7d3ecca9e5d7011.tar.bz2
menu: Save seed buffer
Diffstat (limited to 'src')
-rw-r--r--src/menu.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/menu.c b/src/menu.c
index 64f6c4e..91a4aa9 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -35,6 +35,7 @@
const int MF_MENU_SIZES_[] = {15, 20, 30};
struct _mf_menu {
+ char *seed_buf;
long seed;
int size;
int fow;
@@ -105,7 +106,6 @@ _mf_menu_form(SDL_Renderer *renderer, TTF_Font *text_font,
SDL_Color chkb_color;
SDL_Color chkm_color;
double rand_max_len;
- char *seed_buf;
struct mftk_widget *grid;
butn_color.r = MF_COLOR_BUTN_R, butn_color.g = MF_COLOR_BUTN_G;
@@ -116,8 +116,9 @@ _mf_menu_form(SDL_Renderer *renderer, TTF_Font *text_font,
chkm_color.b = MF_COLOR_CHKM_B, chkm_color.a = MF_COLOR_CHKM_A;
rand_max_len = ceil(log10(RAND_MAX));
- seed_buf = calloc(rand_max_len + 1, sizeof(*seed_buf));
- if (seed_buf == NULL || sprintf(seed_buf, "%ld", menu->seed) < 0) {
+ menu->seed_buf = calloc(rand_max_len + 1, sizeof(*menu->seed_buf));
+ if (menu->seed_buf == NULL || sprintf(menu->seed_buf, "%ld", menu->seed)
+ < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"Couldn't allocate string: %s",
strerror(errno));
@@ -127,7 +128,7 @@ _mf_menu_form(SDL_Renderer *renderer, TTF_Font *text_font,
grid = mftk_grid_new(5, 2, MF_ROW_M, MF_COL_M,
mftk_label_new(text_font, "Seed", text_color, renderer),
MFTK_GRID_HALIGN_R|MFTK_GRID_VALIGN_T,
- mftk_text_new('0', '9', rand_max_len, seed_buf,
+ mftk_text_new('0', '9', rand_max_len, menu->seed_buf,
text_font, text_color, &_mf_menu_seed,
&_mf_menu_play, menu),
MFTK_GRID_HALIGN_L|MFTK_GRID_VALIGN_T,
@@ -169,8 +170,6 @@ _mf_menu_form(SDL_Renderer *renderer, TTF_Font *text_font,
MFTK_GRID_HALIGN_L|MFTK_GRID_VALIGN_T
);
- free(seed_buf);
-
return grid;
}
@@ -281,6 +280,7 @@ mf_menu(SDL_Renderer *renderer)
quit:
mftk_window_destroy(&win);
+ free(menu.seed_buf);
TTF_CloseFont(text_font);
text_font = NULL;
mf_maze_destroy(&maze);
@@ -298,6 +298,9 @@ mf_menu(SDL_Renderer *renderer)
TTF_CloseFont(text_font);
}
mftk_window_destroy(&win);
+ if (menu.seed_buf != NULL) {
+ free(menu.seed_buf);
+ }
mf_maze_destroy(&maze);
return -1;
}