| 801 | } |
| 802 | |
| 803 | BOOL multi_init_multi(_SNETPROGRAMDATA *client_info, _SNETPLAYERDATA *user_info, _SNETUIDATA *ui_info, BOOL *pfExitProgram) |
| 804 | { |
| 805 | BOOL first; |
| 806 | int playerId; |
| 807 | int type; |
| 808 | |
| 809 | for (first = TRUE;; first = FALSE) { |
| 810 | type = 0x00; |
| 811 | if (gbSelectProvider) { |
| 812 | if (!UiSelectProvider(0, client_info, user_info, ui_info, &fileinfo, &type) |
| 813 | && (!first || SErrGetLastError() != STORM_ERROR_REQUIRES_UPGRADE || !multi_upgrade(pfExitProgram))) { |
| 814 | return FALSE; |
| 815 | } |
| 816 | if (type == 'BNET') |
| 817 | plr[0].pBattleNet = 1; |
| 818 | } |
| 819 | |
| 820 | multi_event_handler(TRUE); |
| 821 | if (UiSelectGame(1, client_info, user_info, ui_info, &fileinfo, &playerId)) |
| 822 | break; |
| 823 | |
| 824 | gbSelectProvider = TRUE; |
| 825 | } |
| 826 | |
| 827 | if ((DWORD)playerId >= MAX_PLRS) { |
| 828 | return FALSE; |
| 829 | } else { |
| 830 | myplr = playerId; |
| 831 | gbMaxPlayers = MAX_PLRS; |
| 832 | |
| 833 | pfile_read_player_from_save(); |
| 834 | |
| 835 | if (type == 'BNET') |
| 836 | plr[myplr].pBattleNet = 1; |
| 837 | |
| 838 | return TRUE; |
| 839 | } |
| 840 | } |
| 841 | |
| 842 | BOOL multi_upgrade(BOOL *pfExitProgram) |
| 843 | { |
no test coverage detected