From 14813cefff1cc036bf217346188c168429b52e81 Mon Sep 17 00:00:00 2001 From: DeaDDooMER Date: Wed, 29 Apr 2020 10:34:52 +0400 Subject: [PATCH] menu: remove data field from menu_t --- src/gl/render.c | 9 +++---- src/menu.c | 59 +++++++++++++++++--------------------------- src/menu.h | 3 +-- src/openal/sound.c | 4 +-- src/sdlmixer/sound.c | 4 +-- src/soft/render.c | 7 ++---- 6 files changed, 30 insertions(+), 56 deletions(-) diff --git a/src/gl/render.c b/src/gl/render.c index 0dc1ac3..22667f7 100644 --- a/src/gl/render.c +++ b/src/gl/render.c @@ -1874,7 +1874,7 @@ void R_set_videomode (int w, int h, int fullscreen) { R_reload_textures(); } -static int video_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int video_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; static int w, h, fullscreen; static char buf[16]; @@ -1935,12 +1935,9 @@ static int video_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t video_menu = { - NULL, &video_menu_handler -}; - const menu_t *R_menu (void) { - return &video_menu; + static const menu_t m = { video_menu_handler }; + return &m; } const cfg_t *R_args (void) { diff --git a/src/menu.c b/src/menu.c index 7286a45..ddbf0b4 100644 --- a/src/menu.c +++ b/src/menu.c @@ -162,7 +162,7 @@ static int start_game (int twoplayers, int dm, int level) { return GM_popall(); } -static int new_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int new_game_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; enum { ONEPLAYER, TWOPLAYERS, DEATHMATCH, __NUM__ }; static const simple_menu_t sm = { @@ -184,11 +184,7 @@ static int new_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t new_game_menu = { - NULL, &new_game_menu_handler -}; - -static int load_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int load_game_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; const int max_slots = 7; assert(i >= 0 && i < max_slots); @@ -206,11 +202,7 @@ static int load_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, return basic_menu_handler(msg, GM_BIG, "Load game", "_OLDGAME", max_slots, &cur); } -static const menu_t load_game_menu = { - NULL, &load_game_menu_handler -}; - -static int save_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int save_game_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; const int max_slots = 7; assert(i >= 0 && i < max_slots); @@ -234,11 +226,7 @@ static int save_game_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, return basic_menu_handler(msg, GM_BIG, "Save game", "_SAVGAME", max_slots, &cur); } -static const menu_t save_game_menu = { - NULL, &save_game_menu_handler -}; - -static int options_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int options_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; const menu_t *mm; enum { VIDEO, SOUND, MUSIC, __NUM__ }; @@ -264,11 +252,7 @@ static int options_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, i return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t options_menu = { - NULL, &options_menu_handler -}; - -static int exit_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { +static int exit_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { static int cur; enum { YES, NO, __NUM__ }; static const simple_menu_t sm = { @@ -296,30 +280,31 @@ static int exit_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t exit_menu = { - NULL, &exit_menu_handler -}; - -static int main_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) { - static int cur; +static int main_menu_handler (menu_msg_t *msg, const menu_t *m, int i) { enum { NEWGAME, OLDGAME, SAVEGAME, OPTIONS, EXIT, __NUM__ }; assert(i >= 0 && i < __NUM__); + static int cur; + static const menu_t hm[__NUM__] = { + { new_game_menu_handler }, + { load_game_menu_handler }, + { save_game_menu_handler }, + { options_menu_handler}, + { exit_menu_handler } + }; static const simple_menu_t sm = { GM_BIG, "Menu", NULL, { - { "New Game", &new_game_menu }, - { "Load Game", &load_game_menu }, - { "Save Game", &save_game_menu }, - { "Options", &options_menu }, - { "Exit", &exit_menu }, + { "New Game", &hm[NEWGAME] }, + { "Load Game", &hm[OLDGAME] }, + { "Save Game", &hm[SAVEGAME] }, + { "Options", &hm[OPTIONS] }, + { "Exit", &hm[EXIT] } } }; return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t main_menu = { - NULL, &main_menu_handler -}; +static const menu_t main_menu = { &main_menu_handler }; int GM_push (const menu_t *m) { assert(m != NULL); @@ -374,7 +359,7 @@ int GM_send_this (const menu_t *m, menu_msg_t *msg) { assert(msg != NULL); if (m->handler != NULL) { GM_normalize_message(msg); - return m->handler(msg, m, m->data, 0); + return m->handler(msg, m, 0); } return 0; } @@ -385,7 +370,7 @@ int GM_send (const menu_t *m, int i, menu_msg_t *msg) { assert(msg != NULL); if (m->handler != NULL) { GM_normalize_message(msg); - return m->handler(msg, m, m->data, i); + return m->handler(msg, m, i); } return 0; } diff --git a/src/menu.h b/src/menu.h index 39f064a..daee0d7 100644 --- a/src/menu.h +++ b/src/menu.h @@ -72,8 +72,7 @@ typedef union menu_msg_t { typedef struct menu_t menu_t; struct menu_t { - void *data; - int (*handler)(menu_msg_t *msg, const menu_t *m, void *data, int i); + int (*handler)(menu_msg_t *msg, const menu_t *m, int i); }; typedef struct simple_menu_t { diff --git a/src/openal/sound.c b/src/openal/sound.c index ef9afda..f4f07b9 100644 --- a/src/openal/sound.c +++ b/src/openal/sound.c @@ -115,9 +115,7 @@ static int sound_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int } const menu_t *S_menu (void) { - static const menu_t m = { - NULL, &sound_menu_handler - }; + static const menu_t m = { sound_menu_handler }; return &m; } diff --git a/src/sdlmixer/sound.c b/src/sdlmixer/sound.c index ddacddf..638ec34 100644 --- a/src/sdlmixer/sound.c +++ b/src/sdlmixer/sound.c @@ -105,9 +105,7 @@ static int sound_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int } const menu_t *S_menu (void) { - static const menu_t m = { - NULL, &sound_menu_handler - }; + static const menu_t m = { sound_menu_handler }; return &m; } diff --git a/src/soft/render.c b/src/soft/render.c index 705de17..bf0ca07 100644 --- a/src/soft/render.c +++ b/src/soft/render.c @@ -1566,12 +1566,9 @@ static int video_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int return simple_menu_handler(msg, i, __NUM__, &sm, &cur); } -static const menu_t video_menu = { - NULL, &video_menu_handler -}; - const menu_t *R_menu (void) { - return &video_menu; + static const menu_t m = { video_menu_handler }; + return &m; } const cfg_t *R_args (void) { -- 2.29.2