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

Function NetInit

Source/multi.cpp:623–721  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

621}
622
623BOOL NetInit(BOOL bSinglePlayer, BOOL *pfExitProgram)
624{
625 int i;
626 _SNETPROGRAMDATA ProgramData;
627 _SNETUIDATA UiData;
628 _SNETPLAYERDATA plrdata;
629 unsigned int len;
630
631 while (1) {
632 *pfExitProgram = FALSE;
633 SetRndSeed(0);
634 sgGameInitInfo.dwSeed = time(NULL);
635 sgGameInitInfo.bDiff = gnDifficulty;
636 memset(&ProgramData, 0, sizeof(ProgramData));
637 ProgramData.size = sizeof(ProgramData);
638#ifdef SPAWN
639 ProgramData.programname = "Diablo Shareware";
640#else
641 ProgramData.programname = "Diablo Retail";
642#endif
643 ProgramData.programdescription = gszVersionNumber;
644 ProgramData.programid = 'DRTL';
645 ProgramData.versionid = 42;
646 ProgramData.maxplayers = MAX_PLRS;
647 ProgramData.initdata = &sgGameInitInfo;
648 ProgramData.initdatabytes = sizeof(sgGameInitInfo);
649 ProgramData.optcategorybits = 15;
650 ProgramData.lcid = 1033; /* LANG_ENGLISH */
651 memset(&plrdata, 0, sizeof(plrdata));
652 plrdata.size = sizeof(plrdata);
653 memset(&UiData, 0, sizeof(UiData));
654 UiData.size = sizeof(UiData);
655 UiData.artcallback = (void (*)())UiArtCallback;
656 UiData.createcallback = (void (*)())UiCreateGameCallback;
657 UiData.drawdesccallback = (void (*)())UiDrawDescCallback;
658 UiData.messageboxcallback = (void (*)())UiMessageBoxCallback;
659 UiData.soundcallback = (void (*)())UiSoundCallback;
660 UiData.authcallback = (void (*)())UiAuthCallback;
661 UiData.getdatacallback = (void (*)())UiGetDataCallback;
662 UiData.categorycallback = (void (*)())UiCategoryCallback;
663 UiData.selectnamecallback = mainmenu_select_hero_dialog;
664 UiData.changenamecallback = (void (*)())mainmenu_change_name;
665 UiData.profilebitmapcallback = (void (*)())UiProfileDraw;
666 UiData.profilecallback = (void (*)())UiProfileCallback;
667 UiData.profilefields = UiProfileGetString();
668 memset(sgbPlayerTurnBitTbl, 0, sizeof(sgbPlayerTurnBitTbl));
669 gbGameDestroyed = FALSE;
670 memset(sgbPlayerLeftGameTbl, 0, sizeof(sgbPlayerLeftGameTbl));
671 memset(sgdwPlayerLeftReasonTbl, 0, sizeof(sgdwPlayerLeftReasonTbl));
672 memset(sgbSendDeltaTbl, 0, sizeof(sgbSendDeltaTbl));
673 memset(plr, 0, sizeof(plr));
674 memset(sgwPackPlrOffsetTbl, 0, sizeof(sgwPackPlrOffsetTbl));
675 SNetSetBasePlayer(0);
676 if (bSinglePlayer) {
677 if (!multi_init_single(&ProgramData, &plrdata, &UiData))
678 return FALSE;
679 } else {
680 if (!multi_init_multi(&ProgramData, &plrdata, &UiData, pfExitProgram))

Callers 1

StartGameFunction · 0.85

Calls 15

SetRndSeedFunction · 0.85
UiProfileGetStringFunction · 0.85
SNetSetBasePlayerFunction · 0.85
multi_init_singleFunction · 0.85
multi_init_multiFunction · 0.85
delta_initFunction · 0.85
InitPlrMsgFunction · 0.85
buffer_initFunction · 0.85
sync_initFunction · 0.85
nthread_startFunction · 0.85
dthread_startFunction · 0.85
tmsg_startFunction · 0.85

Tested by

no test coverage detected