MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / MultiStartServer

Function MultiStartServer

Descent3/multi_server.cpp:712–823  ·  view source on GitHub ↗

Stars a multiplayer server. If playing is non-zero, then the server is a player in the game Server only

Source from the content-addressed store, hash-verified

710// game
711// Server only
712void MultiStartServer(int playing, char *scriptname, int dedicated_server_num_teams) {
713 // Clear out some stuff
714 for (int i = 0; i < MAX_NET_PLAYERS; i++) {
715 memset(&NetPlayers[i], 0, sizeof(netplayer));
716 Multi_send_size[i] = 0;
717
718 for (int t = 0; t < MAX_NET_PLAYERS; t++)
719 Multi_last_sent_time[i][t] = 0;
720
721 Player_fire_packet[i].fired_on_this_frame = PFP_NO_FIRED;
722
723 Multi_reliable_send_size[i] = 0;
724 Multi_reliable_last_send_time[i] = 0;
725
726 Multi_reliable_urgent[i] = 0;
727 Multi_last_send_visible[i] = 0;
728 Multi_visible_players[i] = 0xFFFFFFFF;
729
730 Num_moved_robots[i] = 0;
731 Num_changed_anim[i] = 0;
732 Num_changed_turret[i] = 0;
733 Num_changed_wb_anim[i] = 0;
734 last_sent_bytes[i] = timer_GetTime();
735 NetPlayers[i].file_xfer_flags = NETFILE_NONE;
736 NetPlayers[i].ship_logo[0] = 0;
737 NetPlayers[i].voice_taunt1[0] = 0;
738 NetPlayers[i].voice_taunt2[0] = 0;
739 NetPlayers[i].voice_taunt3[0] = 0;
740 NetPlayers[i].voice_taunt4[0] = 0;
741 NetPlayers[i].pilot_pic_id = PPIC_INVALID_ID;
742 NetPlayers[i].custom_file_seq = NETFILE_ID_NOFILE;
743 PlayerSetCustomTexture(i, NULL);
744
745 NetPlayers[i].ping_time = 0;
746 NetPlayers[i].last_ping_time = 0;
747 }
748 NetPlayers[Player_num].custom_file_seq = 0xff;
749 Current_pilot.get_multiplayer_data(NetPlayers[Player_num].ship_logo, NetPlayers[Player_num].voice_taunt1,
750 NetPlayers[Player_num].voice_taunt2, NULL, NetPlayers[Player_num].voice_taunt3,
751 NetPlayers[Player_num].voice_taunt4);
752
753 // ship_logo
754 if (NetPlayers[Player_num].ship_logo[0])
755 PlayerSetCustomTexture(Player_num, NetPlayers[Player_num].ship_logo);
756
757 Player_num = 0;
758 NetPlayers[Player_num].flags = NPF_SERVER | NPF_CONNECTED;
759
760 // Strip trailing .d3m if there is one
761 int sl = strlen(scriptname);
762 if (scriptname[sl - 4] == '.' && scriptname[sl - 3] == 'd' && scriptname[sl - 2] == '3' && scriptname[sl - 1] == 'm')
763 scriptname[sl - 4] = 0;
764
765 NetPlayers[Player_num].sequence = NETSEQ_PREGAME;
766
767 Netgame.local_role = LR_SERVER;
768 Netgame.server_sequence = 0;
769 Netgame.server_version = MULTI_VERSION;

Callers 1

RunServerConfigsFunction · 0.85

Calls 13

PlayerSetCustomTextureFunction · 0.85
taunt_SetDelayTimeFunction · 0.85
FindShipNameFunction · 0.85
SetGamemodeScriptFunction · 0.85
dp_StartGameFunction · 0.85
ps_srandFunction · 0.85
ps_randFunction · 0.85
MultiGetShipChecksumFunction · 0.85
get_multiplayer_dataMethod · 0.80
get_shipMethod · 0.80
FindArgFunction · 0.70

Tested by

no test coverage detected