From 010ac80344aafeb13d298cc283a8a6c4a7cc6406 Mon Sep 17 00:00:00 2001 From: zicodxx <> Date: Sun, 22 Aug 2010 09:25:24 +0000 Subject: [PATCH] Moved levelnum-sanity-check in game_param_handler so it will be checked when screen is changed to allow entry of secret levels (which does not work in D2X-Rebirth - it's only done for code similarity); added menu item START GAME for consistency and added proper subtitle for game setup page --- CHANGELOG.txt | 4 ++++ main/net_ipx.c | 32 ++++++++++++++++++++++---------- main/net_udp.c | 34 +++++++++++++++++++++++----------- 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 3ae42bc22..feef86d3d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D1X-Rebirth Changelog +20100822 +-------- +main/net_ipx.c, main/net_udp.c: Moved levelnum-sanity-check in game_param_handler so it will be checked when screen is changed to allow entry of secret levels; added menu item START GAME for consistency and added proper subtitle for game setup page + 20100821 -------- d1x-rebirth.ico, d1x-rebirth.xpm, arch/sdl/gr.c, arch/ogl/gr.c: Bind WM-Icon to application diff --git a/main/net_ipx.c b/main/net_ipx.c index 957e2168e..614daddee 100644 --- a/main/net_ipx.c +++ b/main/net_ipx.c @@ -2333,7 +2333,7 @@ static int opt_show_on_map, opt_difficulty, opt_socket; typedef struct param_opt { - int name, level, mode, moreopts; + int start_game, name, level, mode, moreopts; int closed, refuse, maxnet, coop, team_anarchy; } param_opt; @@ -2397,12 +2397,12 @@ int net_ipx_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) else Netgame.levelnum = atoi(slevel); - if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) - { - nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); - sprintf(slevel, "1"); - return 0; - } +// if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) +// { +// nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); +// sprintf(slevel, "1"); +// return 0; +// } } if (citem == opt->refuse) @@ -2447,6 +2447,14 @@ int net_ipx_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) break; case EVENT_NEWMENU_SELECTED: + if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) + { + char *slevel = menus[opt->level].text; + nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); + sprintf(slevel, "1"); + return 1; + } + if (citem==opt->moreopts) { if ( menus[opt->mode+3].value ) @@ -2468,7 +2476,9 @@ int net_ipx_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) } - return !net_ipx_start_game(); + if (citem==opt->start_game) + return !net_ipx_start_game(); + return 1; default: break; @@ -2482,7 +2492,7 @@ int net_ipx_setup_game() int i; int optnum; param_opt opt; - newmenu_item m[20]; + newmenu_item m[21]; char slevel[5]; char level_text[32]; char srmaxnet[50]; @@ -2509,6 +2519,8 @@ int net_ipx_setup_game() sprintf( slevel, "1" ); Netgame.levelnum = 1; optnum = 0; + opt.start_game=optnum; + m[optnum].type = NM_TYPE_MENU; m[optnum].text = "Start Game"; optnum++; m[optnum].type = NM_TYPE_TEXT; m[optnum].text = TXT_DESCRIPTION; optnum++; opt.name = optnum; @@ -2552,7 +2564,7 @@ int net_ipx_setup_game() Assert(optnum <= 20); - i = newmenu_do1( NULL, NULL, optnum, m, (int (*)( newmenu *, d_event *, void * ))net_ipx_game_param_handler, &opt, 1 ); + i = newmenu_do1( NULL, TXT_NETGAME_SETUP, optnum, m, (int (*)( newmenu *, d_event *, void * ))net_ipx_game_param_handler, &opt, 1 ); if (i < 0) ipxdrv_close(); diff --git a/main/net_udp.c b/main/net_udp.c index f2d82b52d..19d3a86f9 100644 --- a/main/net_udp.c +++ b/main/net_udp.c @@ -2803,7 +2803,7 @@ int net_udp_more_options_handler( newmenu *menu, d_event *event, void *userdata typedef struct param_opt { - int name, level, mode, moreopts; + int start_game, name, level, mode, moreopts; int closed, refuse, maxnet, coop, team_anarchy; } param_opt; @@ -2867,12 +2867,12 @@ int net_udp_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) else Netgame.levelnum = atoi(slevel); - if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) - { - nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); - sprintf(slevel, "1"); - return 0; - } +// if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) +// { +// nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); +// sprintf(slevel, "1"); +// return 0; +// } } if (citem == opt->refuse) @@ -2917,6 +2917,14 @@ int net_udp_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) break; case EVENT_NEWMENU_SELECTED: + if ((Netgame.levelnum < Last_secret_level) || (Netgame.levelnum > Last_level) || (Netgame.levelnum == 0)) + { + char *slevel = menus[opt->level].text; + nm_messagebox(TXT_ERROR, 1, TXT_OK, TXT_LEVEL_OUT_RANGE ); + sprintf(slevel, "1"); + return 1; + } + if (citem==opt->moreopts) { if ( menus[opt->mode+3].value ) @@ -2925,8 +2933,10 @@ int net_udp_game_param_handler( newmenu *menu, d_event *event, param_opt *opt ) Game_mode=0; return 1; } - - return !net_udp_start_game(); + + if (citem==opt->start_game) + return !net_udp_start_game(); + return 1; default: break; @@ -2940,7 +2950,7 @@ int net_udp_setup_game() int i; int optnum; param_opt opt; - newmenu_item m[20]; + newmenu_item m[21]; char slevel[5]; char level_text[32]; char srmaxnet[50]; @@ -2973,6 +2983,8 @@ int net_udp_setup_game() sprintf( slevel, "1" ); Netgame.levelnum = 1; optnum = 0; + opt.start_game=optnum; + m[optnum].type = NM_TYPE_MENU; m[optnum].text = "Start Game"; optnum++; m[optnum].type = NM_TYPE_TEXT; m[optnum].text = TXT_DESCRIPTION; optnum++; opt.name = optnum; @@ -3016,7 +3028,7 @@ int net_udp_setup_game() Assert(optnum <= 20); - i = newmenu_do1( NULL, NULL, optnum, m, (int (*)( newmenu *, d_event *, void * ))net_udp_game_param_handler, &opt, 1 ); + i = newmenu_do1( NULL, TXT_NETGAME_SETUP, optnum, m, (int (*)( newmenu *, d_event *, void * ))net_udp_game_param_handler, &opt, 1 ); if (i < 0) net_udp_close();