summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-08-07 17:50:00 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-08-07 17:51:41 (EDT)
commitc039f3e47de09f7653f4666f62fff2d6a1dd8b26 (patch)
tree934b1ad0313d463e8cd0ac42397a2195211b750e
parent9ccd9a3fec9a65b6f58d5a61a7d3ecca9e5d7011 (diff)
downloadmazefight-c039f3e47de09f7653f4666f62fff2d6a1dd8b26.zip
mazefight-c039f3e47de09f7653f4666f62fff2d6a1dd8b26.tar.gz
mazefight-c039f3e47de09f7653f4666f62fff2d6a1dd8b26.tar.bz2
menu: Generate new seed after each game
-rw-r--r--src/menu.c34
1 files changed, 24 insertions, 10 deletions
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,