Use helper for setting menu items to type input
This commit is contained in:
parent
c7b9a45f63
commit
bb8b229dc2
|
@ -159,6 +159,13 @@ static inline void nm_set_item_menu(newmenu_item *ni, const char *text)
|
|||
ni->text = (char *)text;
|
||||
}
|
||||
|
||||
static inline void nm_set_item_input(newmenu_item *ni, unsigned len, char *text)
|
||||
{
|
||||
ni->type = NM_TYPE_INPUT;
|
||||
ni->text = text;
|
||||
ni->text_len = len;
|
||||
}
|
||||
|
||||
static inline void nm_set_item_text(newmenu_item *ni, const char *text)
|
||||
{
|
||||
ni->type = NM_TYPE_TEXT;
|
||||
|
@ -230,9 +237,7 @@ static inline void nm_set_item_text(newmenu_item *ni, const char *text)
|
|||
#define DXX_ADD_TEXT(S,OPT) \
|
||||
nm_set_item_text(&((DXX_NEWMENU_VARIABLE)[(OPT)]), (S));
|
||||
#define DXX_ADD_INPUT(S,OPT,MAX_TEXT_LEN) \
|
||||
(DXX_NEWMENU_VARIABLE)[(OPT)].type = NM_TYPE_INPUT; \
|
||||
(DXX_NEWMENU_VARIABLE)[(OPT)].text=(S); \
|
||||
(DXX_NEWMENU_VARIABLE)[(OPT)].text_len=MAX_TEXT_LEN;
|
||||
nm_set_item_input(&((DXX_NEWMENU_VARIABLE)[(OPT)]),MAX_TEXT_LEN,(S));
|
||||
#define DXX_READ_CHECK(S,OPT,V) \
|
||||
V = (DXX_NEWMENU_VARIABLE)[(OPT)].value;
|
||||
#define DXX_READ_SLIDER(S,OPT,V,MIN,MAX) \
|
||||
|
|
|
@ -379,7 +379,7 @@ void change_guidebot_name()
|
|||
|
||||
strcpy(text,PlayerCfg.GuidebotName);
|
||||
|
||||
m.type=NM_TYPE_INPUT; m.text_len = GUIDEBOT_NAME_LEN; m.text = text;
|
||||
nm_set_item_input(&m, GUIDEBOT_NAME_LEN, text);
|
||||
item = newmenu_do( NULL, "Enter Guide-bot name:", 1, &m, NULL, NULL );
|
||||
|
||||
if (item != -1) {
|
||||
|
|
|
@ -3443,11 +3443,11 @@ try_again:
|
|||
|
||||
Newmenu_allowed_chars = demoname_allowed_chars;
|
||||
if (!nd_record_v_no_space) {
|
||||
m[0].type=NM_TYPE_INPUT; m[0].text_len = PATH_MAX - 1; m[0].text = filename;
|
||||
nm_set_item_input(&m[0], PATH_MAX - 1, filename);
|
||||
exit = newmenu_do( NULL, TXT_SAVE_DEMO_AS, 1, &(m[0]), NULL, NULL );
|
||||
} else if (nd_record_v_no_space == 2) {
|
||||
nm_set_item_text(& m[ 0], TXT_DEMO_SAVE_NOSPACE);
|
||||
m[ 1].type = NM_TYPE_INPUT;m[ 1].text_len = PATH_MAX - 1; m[1].text = filename;
|
||||
nm_set_item_input(&m[ 1], PATH_MAX - 1, filename);
|
||||
exit = newmenu_do( NULL, NULL, 2, m, NULL, NULL );
|
||||
}
|
||||
Newmenu_allowed_chars = NULL;
|
||||
|
|
|
@ -566,14 +566,14 @@ int HandleDemoKey(int key)
|
|||
|
||||
filename[0] = '\0';
|
||||
nm_set_item_text(& m[ 0], "output file name");
|
||||
m[ 1].type = NM_TYPE_INPUT;m[ 1].text_len = 8; m[1].text = filename;
|
||||
nm_set_item_input(&m[ 1], 8, filename);
|
||||
c = newmenu_do( NULL, NULL, 2, m, NULL, NULL );
|
||||
if (c == -2)
|
||||
break;
|
||||
strcat(filename, DEMO_EXT);
|
||||
num[0] = '\0';
|
||||
nm_set_item_text(& m[ 0], "strip how many bytes");
|
||||
m[ 1].type = NM_TYPE_INPUT;m[ 1].text_len = 16; m[1].text = num;
|
||||
nm_set_item_input(&m[ 1], 16, num);
|
||||
c = newmenu_do( NULL, NULL, 2, m, NULL, NULL );
|
||||
if (c == -2)
|
||||
break;
|
||||
|
@ -1390,7 +1390,7 @@ int HandleTestKey(int key)
|
|||
newmenu_item m;
|
||||
char text[FILENAME_LEN]="";
|
||||
int item;
|
||||
m.type=NM_TYPE_INPUT; m.text_len = FILENAME_LEN; m.text = text;
|
||||
nm_set_item_input(&m, FILENAME_LEN, text);
|
||||
item = newmenu_do( NULL, "Briefing to play?", 1, &m, NULL, NULL );
|
||||
if (item != -1) {
|
||||
do_briefing_screens(text,1);
|
||||
|
@ -1658,8 +1658,7 @@ int FinalCheats(int key)
|
|||
char text[10]="";
|
||||
int new_level_num;
|
||||
int item;
|
||||
|
||||
m.type=NM_TYPE_INPUT; m.text_len = 10; m.text = text;
|
||||
nm_set_item_input(&m, 10, text);
|
||||
item = newmenu_do( NULL, TXT_WARP_TO_LEVEL, 1, &m, NULL, NULL );
|
||||
if (item != -1) {
|
||||
new_level_num = atoi(m.text);
|
||||
|
@ -1765,7 +1764,7 @@ void do_cheat_menu()
|
|||
mm[3].type=NM_TYPE_NUMBER; mm[3].value=f2i(Players[Player_num].energy); mm[3].text="% Energy"; mm[3].min_value=0; mm[3].max_value=200;
|
||||
mm[4].type=NM_TYPE_NUMBER; mm[4].value=f2i(Players[Player_num].shields); mm[4].text="% Shields"; mm[4].min_value=0; mm[4].max_value=200;
|
||||
nm_set_item_text(& mm[5], "Score:");
|
||||
mm[6].type=NM_TYPE_INPUT; mm[6].text_len = 10; mm[6].text = score_text;
|
||||
nm_set_item_input(&mm[6], 10, score_text);
|
||||
#if defined(DXX_BUILD_DESCENT_I)
|
||||
mm[7].type=NM_TYPE_RADIO; mm[7].value=(Players[Player_num].laser_level==0); mm[7].group=0; mm[7].text="Laser level 1";
|
||||
mm[8].type=NM_TYPE_RADIO; mm[8].value=(Players[Player_num].laser_level==1); mm[8].group=0; mm[8].text="Laser level 2";
|
||||
|
|
|
@ -1635,7 +1635,7 @@ int get_level_name()
|
|||
newmenu_item m[2];
|
||||
|
||||
nm_set_item_text(& m[0], "Please enter a name for this mine:");
|
||||
m[1].type = NM_TYPE_INPUT; m[1].text = Current_level_name; m[1].text_len = LEVEL_NAME_LEN;
|
||||
nm_set_item_input(&m[1], LEVEL_NAME_LEN, Current_level_name);
|
||||
|
||||
return newmenu_do( NULL, "Enter mine name", 2, m, NULL, NULL ) >= 0;
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ int MakeNewPlayerFile(int allow_abort)
|
|||
strncpy(text, Players[Player_num].callsign,CALLSIGN_LEN);
|
||||
|
||||
try_again:
|
||||
m.type=NM_TYPE_INPUT; m.text_len = CALLSIGN_LEN; m.text = text;
|
||||
nm_set_item_input(&m, CALLSIGN_LEN, text);
|
||||
|
||||
Newmenu_allowed_chars = playername_allowed_chars;
|
||||
x = newmenu_do( NULL, TXT_ENTER_PILOT_NAME, 1, &m, NULL, NULL );
|
||||
|
@ -822,7 +822,7 @@ int do_new_game_menu()
|
|||
{
|
||||
|
||||
nm_set_item_text(& m[0], info_text);
|
||||
m[1].type=NM_TYPE_INPUT; m[1].text_len = 10; m[1].text = num_text;
|
||||
nm_set_item_input(&m[1], 10, num_text);
|
||||
n_items = 2;
|
||||
|
||||
strcpy(num_text,"1");
|
||||
|
@ -935,10 +935,10 @@ void change_res()
|
|||
m[mc].type = NM_TYPE_RADIO; m[mc].text = "use custom values"; m[mc].value = (citem == -1); m[mc].group = 0; mc++;
|
||||
nm_set_item_text(& m[mc], "resolution:"); mc++;
|
||||
snprintf(crestext, sizeof(crestext), "%ix%i", SM_W(Game_screen_mode), SM_H(Game_screen_mode));
|
||||
m[mc].type = NM_TYPE_INPUT; m[mc].text = crestext; m[mc].text_len = 11; modes[mc] = 0; mc++;
|
||||
nm_set_item_input(&m[mc], 11, crestext); modes[mc] = 0; mc++;
|
||||
nm_set_item_text(& m[mc], "aspect:"); mc++;
|
||||
snprintf(casptext, sizeof(casptext), "%ix%i", GameCfg.AspectY, GameCfg.AspectX);
|
||||
m[mc].type = NM_TYPE_INPUT; m[mc].text = casptext; m[mc].text_len = 11; modes[mc] = 0; mc++;
|
||||
nm_set_item_input(&m[mc], 11, casptext); modes[mc] = 0; mc++;
|
||||
nm_set_item_text(& m[mc], ""); mc++; // little space for overview
|
||||
// fullscreen
|
||||
opt_fullscr = mc;
|
||||
|
@ -1409,7 +1409,7 @@ int select_file_handler(listbox *menu, d_event *event, browser *b)
|
|||
MALLOC(text, char, 2);
|
||||
MALLOC(m, newmenu_item, 1);
|
||||
snprintf(text, sizeof(char)*PATH_MAX, "c");
|
||||
m->type=NM_TYPE_INPUT; m->text_len = 3; m->text = text;
|
||||
nm_set_item_input(m, 3, text);
|
||||
rval = newmenu_do( NULL, "Enter drive letter", 1, m, NULL, NULL );
|
||||
text[1] = '\0';
|
||||
snprintf(newpath, sizeof(char)*PATH_MAX, "%s:%s", text, sep);
|
||||
|
@ -1850,7 +1850,7 @@ void do_sound_menu()
|
|||
opt_sm_mtype3_lmpath = nitems;
|
||||
nm_set_item_browse(&m[nitems++], "path for level music" BROWSE_TXT);
|
||||
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMLevelMusicPath; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMLevelMusicPath);
|
||||
|
||||
nm_set_item_text(& m[nitems++], "");
|
||||
|
||||
|
@ -1873,31 +1873,31 @@ void do_sound_menu()
|
|||
nm_set_item_browse(&m[nitems++], "main menu" BROWSE_TXT);
|
||||
|
||||
opt_sm_cm_mtype3_file1 = nitems;
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMMiscMusic[SONG_TITLE]; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMMiscMusic[SONG_TITLE]);
|
||||
|
||||
opt_sm_cm_mtype3_file2_b = nitems;
|
||||
nm_set_item_browse(&m[nitems++], "briefing" BROWSE_TXT);
|
||||
|
||||
opt_sm_cm_mtype3_file2 = nitems;
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMMiscMusic[SONG_BRIEFING]; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMMiscMusic[SONG_BRIEFING]);
|
||||
|
||||
opt_sm_cm_mtype3_file3_b = nitems;
|
||||
nm_set_item_browse(&m[nitems++], "credits" BROWSE_TXT);
|
||||
|
||||
opt_sm_cm_mtype3_file3 = nitems;
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMMiscMusic[SONG_CREDITS]; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMMiscMusic[SONG_CREDITS]);
|
||||
|
||||
opt_sm_cm_mtype3_file4_b = nitems;
|
||||
nm_set_item_browse(&m[nitems++], "escape sequence" BROWSE_TXT);
|
||||
|
||||
opt_sm_cm_mtype3_file4 = nitems;
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMMiscMusic[SONG_ENDLEVEL]; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMMiscMusic[SONG_ENDLEVEL]);
|
||||
|
||||
opt_sm_cm_mtype3_file5_b = nitems;
|
||||
nm_set_item_browse(&m[nitems++], "game ending" BROWSE_TXT);
|
||||
|
||||
opt_sm_cm_mtype3_file5 = nitems;
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text = GameCfg.CMMiscMusic[SONG_ENDGAME]; m[nitems++].text_len = NM_MAX_TEXT_LEN-1;
|
||||
nm_set_item_input(&m[nitems++], NM_MAX_TEXT_LEN-1, GameCfg.CMMiscMusic[SONG_ENDGAME]);
|
||||
#endif
|
||||
|
||||
Assert(nitems == SOUND_MENU_NITEMS);
|
||||
|
|
|
@ -1529,7 +1529,7 @@ multi_send_message_dialog(void)
|
|||
|
||||
Network_message[0] = 0; // Get rid of old contents
|
||||
|
||||
m[0].type=NM_TYPE_INPUT; m[0].text = Network_message; m[0].text_len = MAX_MESSAGE_LEN-1;
|
||||
nm_set_item_input(&m[0], MAX_MESSAGE_LEN-1, Network_message);
|
||||
choice = newmenu_do( NULL, TXT_SEND_MESSAGE, 1, m, NULL, NULL );
|
||||
|
||||
if ((choice > -1) && (strlen(Network_message) > 0)) {
|
||||
|
|
|
@ -684,11 +684,11 @@ void net_udp_manual_join_game()
|
|||
|
||||
nitems = 0;
|
||||
nm_set_item_text(& m[nitems++],"GAME ADDRESS OR HOSTNAME:");
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text=dj->addrbuf; m[nitems].text_len=128; nitems++;
|
||||
nm_set_item_input(&m[nitems++],128,dj->addrbuf);
|
||||
nm_set_item_text(& m[nitems++],"GAME PORT:");
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text=dj->portbuf; m[nitems].text_len=5; nitems++;
|
||||
nm_set_item_input(&m[nitems++],5,dj->portbuf);
|
||||
nm_set_item_text(& m[nitems++],"MY PORT:");
|
||||
m[nitems].type = NM_TYPE_INPUT; m[nitems].text=UDP_MyPort; m[nitems].text_len=5; nitems++;
|
||||
nm_set_item_input(&m[nitems++],5,UDP_MyPort);
|
||||
nm_set_item_text(& m[nitems++],"");
|
||||
|
||||
newmenu_do1( NULL, "ENTER GAME ADDRESS", nitems, m, (int (*)(newmenu *, d_event *, void *))manual_join_game_handler, dj, 0 );
|
||||
|
@ -3286,7 +3286,7 @@ int net_udp_setup_game()
|
|||
nm_set_item_text(& m[optnum], TXT_DESCRIPTION); optnum++;
|
||||
|
||||
opt.name = optnum;
|
||||
m[optnum].type = NM_TYPE_INPUT; m[optnum].text = Netgame.game_name; m[optnum].text_len = NETGAME_NAME_LEN; optnum++;
|
||||
nm_set_item_input(&m[optnum], NETGAME_NAME_LEN, Netgame.game_name); optnum++;
|
||||
|
||||
sprintf(level_text, "%s (1-%d)", TXT_LEVEL_, Last_level);
|
||||
#if defined(DXX_BUILD_DESCENT_I)
|
||||
|
@ -3301,7 +3301,7 @@ int net_udp_setup_game()
|
|||
nm_set_item_text(& m[optnum], level_text); optnum++;
|
||||
|
||||
opt.level = optnum;
|
||||
m[optnum].type = NM_TYPE_INPUT; m[optnum].text = slevel; m[optnum].text_len=4; optnum++;
|
||||
nm_set_item_input(&m[optnum],4, slevel); optnum++;
|
||||
nm_set_item_text(& m[optnum], TXT_OPTIONS); optnum++;
|
||||
|
||||
opt.mode = optnum;
|
||||
|
@ -3579,7 +3579,7 @@ net_udp_select_teams(void)
|
|||
|
||||
// Here comes da menu
|
||||
menu:
|
||||
m[0].type = NM_TYPE_INPUT; m[0].text = team_names[0]; m[0].text_len = CALLSIGN_LEN;
|
||||
nm_set_item_input(&m[0], CALLSIGN_LEN, team_names[0]);
|
||||
|
||||
opt = 1;
|
||||
for (i = 0; i < N_players; i++)
|
||||
|
@ -3590,7 +3590,7 @@ menu:
|
|||
}
|
||||
}
|
||||
opt_team_b = opt;
|
||||
m[opt].type = NM_TYPE_INPUT; m[opt].text = team_names[1]; m[opt].text_len = CALLSIGN_LEN; opt++;
|
||||
nm_set_item_input(&m[opt], CALLSIGN_LEN, team_names[1]); opt++;
|
||||
for (i = 0; i < N_players; i++)
|
||||
{
|
||||
if (team_vector & (1 << i))
|
||||
|
|
|
@ -240,7 +240,7 @@ void scores_maybe_add_player(int abort_flag)
|
|||
if ( position==0 ) {
|
||||
strcpy( text1, "" );
|
||||
nm_set_item_text(& m[0], TXT_COOL_SAYING);
|
||||
m[1].type = NM_TYPE_INPUT; m[1].text = text1; m[1].text_len = COOL_MESSAGE_LEN-5;
|
||||
nm_set_item_input(&m[1], COOL_MESSAGE_LEN-5, text1);
|
||||
newmenu_do( TXT_HIGH_SCORE, TXT_YOU_PLACED_1ST, 2, m, NULL, NULL );
|
||||
strncpy( scores.cool_saying, text1, COOL_MESSAGE_LEN );
|
||||
if (strlen(scores.cool_saying)<1)
|
||||
|
|
Loading…
Reference in a new issue