Move multi_endlevel_poll* lookups to menu creation

This commit is contained in:
Kp 2016-01-26 03:45:06 +00:00
parent 124a2ee09c
commit 4e29e2625d
4 changed files with 11 additions and 20 deletions

View file

@ -547,8 +547,9 @@ void multi_send_bounty( void );
void multi_consistency_error(int reset);
int multi_level_sync(void);
int multi_endlevel(int *secret);
int multi_endlevel_poll1(newmenu *menu,const d_event &event, const unused_newmenu_userdata_t *);
int multi_endlevel_poll2( newmenu *menu,const d_event &event, const unused_newmenu_userdata_t *);
using multi_endlevel_poll = int(newmenu *menu,const d_event &event, const unused_newmenu_userdata_t *);
multi_endlevel_poll *get_multi_endlevel_poll1();
multi_endlevel_poll *get_multi_endlevel_poll2();
void multi_send_endlevel_packet();
#ifdef dsx
namespace dsx {

View file

@ -923,7 +923,7 @@ void DoEndLevelScoreGlitz(int network)
Assert(c <= N_GLITZITEMS);
newmenu_do2(nullptr, title, c, m, network && (Game_mode & GM_NETWORK) ? multi_endlevel_poll1 : unused_newmenu_subfunction, unused_newmenu_userdata, 0, GLITZ_BACKGROUND);
newmenu_do2(nullptr, title, c, m, network && (Game_mode & GM_NETWORK) ? get_multi_endlevel_poll1() : unused_newmenu_subfunction, unused_newmenu_userdata, 0, GLITZ_BACKGROUND);
}
#if defined(DXX_BUILD_DESCENT_II)

View file

@ -292,7 +292,7 @@ static window_event_result kmatrix_handler(window *, const d_event &event, kmatr
nm_item_menu(TXT_YES),
nm_item_menu(TXT_NO),
}};
choice = newmenu_do( NULL, TXT_ABORT_GAME, nm_message_items, km->network ? multi_endlevel_poll2 : unused_newmenu_subfunction, unused_newmenu_userdata );
choice = newmenu_do(nullptr, TXT_ABORT_GAME, nm_message_items, km->network ? get_multi_endlevel_poll2() : unused_newmenu_subfunction, unused_newmenu_userdata);
}
if (choice==0)
@ -357,8 +357,6 @@ static window_event_result kmatrix_handler(window *, const d_event &event, kmatr
multi_leave_game();
km->aborted = 1;
return window_event_result::close;
}
}
#endif

View file

@ -1124,38 +1124,30 @@ multi_endlevel(int *secret)
return(result);
}
int multi_endlevel_poll1( newmenu *menu,const d_event &event, const unused_newmenu_userdata_t *userdata)
multi_endlevel_poll *get_multi_endlevel_poll1()
{
switch (multi_protocol)
{
#ifdef USE_UDP
case MULTI_PROTO_UDP:
return net_udp_kmatrix_poll1( menu, event, userdata );
break;
return net_udp_kmatrix_poll1;
#endif
default:
Error("Protocol handling missing in multi_endlevel_poll1\n");
break;
throw std::logic_error("Protocol handling missing in multi_endlevel_poll1");
}
return 0; // kill warning
}
int multi_endlevel_poll2( newmenu *menu,const d_event &event, const unused_newmenu_userdata_t *userdata)
multi_endlevel_poll *get_multi_endlevel_poll2()
{
switch (multi_protocol)
{
#ifdef USE_UDP
case MULTI_PROTO_UDP:
return net_udp_kmatrix_poll2( menu, event, userdata );
break;
return net_udp_kmatrix_poll2;
#endif
default:
Error("Protocol handling missing in multi_endlevel_poll2\n");
break;
throw std::logic_error("Protocol handling missing in multi_endlevel_poll2");
}
return 0;
}
void multi_send_endlevel_packet()