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

Function NetInit

Source/multi.cpp:757–820  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

755}
756
757bool NetInit(bool bSinglePlayer)
758{
759 while (true) {
760 SetRndSeed(0);
761 InitGameInfo();
762 memset(sgbPlayerTurnBitTbl, 0, sizeof(sgbPlayerTurnBitTbl));
763 gbGameDestroyed = false;
764 memset(sgbPlayerLeftGameTbl, 0, sizeof(sgbPlayerLeftGameTbl));
765 memset(sgdwPlayerLeftReasonTbl, 0, sizeof(sgdwPlayerLeftReasonTbl));
766 memset(sgbSendDeltaTbl, 0, sizeof(sgbSendDeltaTbl));
767 Players.clear();
768 MyPlayer = nullptr;
769 memset(sgwPackPlrOffsetTbl, 0, sizeof(sgwPackPlrOffsetTbl));
770 SNetSetBasePlayer(0);
771 if (bSinglePlayer) {
772 if (!InitSingle(&sgGameInitInfo))
773 return false;
774 } else {
775 if (!InitMulti(&sgGameInitInfo))
776 return false;
777 }
778 sgbNetInited = true;
779 sgbTimeout = false;
780 delta_init();
781 InitPlrMsg();
782 BufferInit(&highPriorityBuffer);
783 BufferInit(&lowPriorityBuffer);
784 shareNextHighPriorityMessage = true;
785 sync_init();
786 nthread_start(sgbPlayerTurnBitTbl[MyPlayerId]);
787 tmsg_start();
788 sgdwGameLoops = 0;
789 sgbSentThisCycle = 0;
790 gbDeltaSender = MyPlayerId;
791 gbSomebodyWonGameKludge = false;
792 nthread_send_and_recv_turn(0, 0);
793 SetupLocalPositions();
794 SendPlayerInfo(SNPLAYER_OTHERS, CMD_SEND_PLRINFO);
795
796 Player &myPlayer = *MyPlayer;
797 ResetPlayerGFX(myPlayer);
798 myPlayer.plractive = true;
799 gbActivePlayers = 1;
800
801 if (!sgbPlayerTurnBitTbl[MyPlayerId] || msg_wait_resync())
802 break;
803 NetClose();
804 gbSelectProvider = false;
805 }
806 SetRndSeed(sgGameInitInfo.dwSeed);
807 gnTickDelay = 1000 / sgGameInitInfo.nTickRate;
808
809 for (int i = 0; i < NUMLEVELS; i++) {
810 glSeedTbl[i] = AdvanceRndSeed();
811 }
812 PublicGame = DvlNet_IsPublicGame();
813
814 Player &myPlayer = *MyPlayer;

Callers 1

StartGameFunction · 0.85

Calls 15

SetRndSeedFunction · 0.85
InitGameInfoFunction · 0.85
SNetSetBasePlayerFunction · 0.85
InitSingleFunction · 0.85
InitMultiFunction · 0.85
delta_initFunction · 0.85
InitPlrMsgFunction · 0.85
BufferInitFunction · 0.85
sync_initFunction · 0.85
nthread_startFunction · 0.85
tmsg_startFunction · 0.85

Tested by

no test coverage detected