From c039f3e47de09f7653f4666f62fff2d6a1dd8b26 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 07 Aug 2021 17:50:00 -0400 Subject: menu: Generate new seed after each game --- (limited to 'src') diff --git a/src/menu.c b/src/menu.c index 91a4aa9..8308ba4 100644 --- a/src/menu.c +++ b/src/menu.c @@ -35,12 +35,13 @@ const int MF_MENU_SIZES_[] = {15, 20, 30}; struct _mf_menu { - char *seed_buf; - long seed; - int size; - int fow; - int reveal; - SDL_Renderer *renderer; + char *seed_buf; + long seed; + int size; + int fow; + int reveal; + struct mftk_widget *text; + SDL_Renderer *renderer; }; static int @@ -93,9 +94,21 @@ static int _mf_menu_play(void *user_data) { struct _mf_menu *menu = (struct _mf_menu *) user_data; + int e; - return mf_game(menu->seed, menu->size, menu->fow, menu->reveal, + e = mf_game(menu->seed, menu->size, menu->fow, menu->reveal, menu->renderer); + + menu->seed = rand(); + if (sprintf(menu->seed_buf, "%ld", menu->seed) < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Couldn't allocate string: %s", + strerror(errno)); + return -1; + } + mftk_text_set_value(menu->text, menu->seed_buf); + + return e; } static struct mftk_widget * @@ -125,12 +138,13 @@ _mf_menu_form(SDL_Renderer *renderer, TTF_Font *text_font, return NULL; } + menu->text = mftk_text_new('0', '9', rand_max_len, menu->seed_buf, + text_font, text_color, &_mf_menu_seed, &_mf_menu_play, + menu); 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, menu->seed_buf, - text_font, text_color, &_mf_menu_seed, - &_mf_menu_play, menu), + menu->text, MFTK_GRID_HALIGN_L|MFTK_GRID_VALIGN_T, mftk_label_new(text_font, "Size", text_color, renderer), MFTK_GRID_HALIGN_R|MFTK_GRID_VALIGN_T, -- cgit v0.9.1