MCPcopy Create free account
hub / github.com/diasurgical/devilution / multi_init_multi

Function multi_init_multi

Source/multi.cpp:803–840  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

801}
802
803BOOL 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
842BOOL multi_upgrade(BOOL *pfExitProgram)
843{

Callers 1

NetInitFunction · 0.85

Calls 6

UiSelectProviderFunction · 0.85
SErrGetLastErrorFunction · 0.85
multi_upgradeFunction · 0.85
multi_event_handlerFunction · 0.85
UiSelectGameFunction · 0.85

Tested by

no test coverage detected