static void SearchLocalGamesFunc( void *self ) { SearchLocalGames(); }
void JoinServer_MenuInit( void ) { int32_t i; int32_t y = 0; static const char *compatibility_names[] = { "version 56 (KMQuake2)", // was 35 "version 34 (stock Quake2)", 0 }; JoinserverSetMenuItemValues(); // init item values s_joinserver_menu.x = SCREEN_WIDTH*0.5 - 120; s_joinserver_menu.y = SCREEN_HEIGHT*0.5 - 80; s_joinserver_menu.nitems = 0; // init client compatibility menu option s_joinserver_compat_title.generic.type = MTYPE_SEPARATOR; s_joinserver_compat_title.generic.name = "client protocol compatibility"; s_joinserver_compat_title.generic.x = 200; s_joinserver_compat_title.generic.y = y; s_joinserver_compatibility_box.generic.type = MTYPE_SPINCONTROL; s_joinserver_compatibility_box.generic.name = ""; s_joinserver_compatibility_box.generic.x = -32; s_joinserver_compatibility_box.generic.y = y += MENU_LINE_SIZE; s_joinserver_compatibility_box.generic.cursor_offset = -24; s_joinserver_compatibility_box.generic.callback = ClientCompatibilityFunc; s_joinserver_compatibility_box.generic.statusbar = "set to version 34 to ping non-KMQuake2 servers"; s_joinserver_compatibility_box.itemnames = compatibility_names; s_joinserver_address_book_action.generic.type = MTYPE_ACTION; s_joinserver_address_book_action.generic.name = "address book"; s_joinserver_address_book_action.generic.flags = QMF_LEFT_JUSTIFY; s_joinserver_address_book_action.generic.x = 0; s_joinserver_address_book_action.generic.y = y += 2*MENU_LINE_SIZE; s_joinserver_address_book_action.generic.callback = AddressBookFunc; s_joinserver_search_action.generic.type = MTYPE_ACTION; s_joinserver_search_action.generic.name = "refresh server list"; s_joinserver_search_action.generic.flags = QMF_LEFT_JUSTIFY; s_joinserver_search_action.generic.x = 0; s_joinserver_search_action.generic.y = y += MENU_LINE_SIZE; s_joinserver_search_action.generic.callback = SearchLocalGamesFunc; s_joinserver_search_action.generic.statusbar = "search for servers"; s_joinserver_server_title.generic.type = MTYPE_SEPARATOR; s_joinserver_server_title.generic.name = "connect to..."; s_joinserver_server_title.generic.x = 80; s_joinserver_server_title.generic.y = y += 2*MENU_LINE_SIZE; y += MENU_LINE_SIZE; for ( i = 0; i < MAX_LOCAL_SERVERS; i++ ) { s_joinserver_server_actions[i].generic.type = MTYPE_ACTION; strcpy (local_server_names[i], NO_SERVER_STRING); s_joinserver_server_actions[i].generic.name = local_server_names[i]; s_joinserver_server_actions[i].generic.flags = QMF_LEFT_JUSTIFY; s_joinserver_server_actions[i].generic.x = 0; s_joinserver_server_actions[i].generic.y = y + i*MENU_LINE_SIZE; s_joinserver_server_actions[i].generic.callback = JoinServerFunc; s_joinserver_server_actions[i].generic.statusbar = "press ENTER to connect"; } s_joinserver_back_action.generic.type = MTYPE_ACTION; s_joinserver_back_action.generic.name = "back to multiplayer"; s_joinserver_back_action.generic.flags = QMF_LEFT_JUSTIFY; s_joinserver_back_action.generic.x = 0; s_joinserver_back_action.generic.y = y += (MAX_LOCAL_SERVERS+2)*MENU_LINE_SIZE; s_joinserver_back_action.generic.callback = UI_BackMenu; Menu_AddItem( &s_joinserver_menu, &s_joinserver_compat_title ); Menu_AddItem( &s_joinserver_menu, &s_joinserver_compatibility_box ); Menu_AddItem( &s_joinserver_menu, &s_joinserver_address_book_action ); Menu_AddItem( &s_joinserver_menu, &s_joinserver_server_title ); Menu_AddItem( &s_joinserver_menu, &s_joinserver_search_action ); for ( i = 0; i < MAX_LOCAL_SERVERS; i++ ) Menu_AddItem( &s_joinserver_menu, &s_joinserver_server_actions[i] ); Menu_AddItem( &s_joinserver_menu, &s_joinserver_back_action ); // Menu_Center( &s_joinserver_menu ); // skip over compatibility title if (s_joinserver_menu.cursor == 0) s_joinserver_menu.cursor = 1; SearchLocalGames(); }