diff options
author | Simon Howard | 2013-04-05 19:42:26 +0000 |
---|---|---|
committer | Simon Howard | 2013-04-05 19:42:26 +0000 |
commit | 6617f41db080196a0e0844c2fcf6e4f982e161b3 (patch) | |
tree | d184d55a3cb93848ab7022562ec7416a3fe252de /src/strife | |
parent | 2840213616978c2d806c35b586ff1c4beff0f187 (diff) | |
download | chocolate-doom-6617f41db080196a0e0844c2fcf6e4f982e161b3.tar.gz chocolate-doom-6617f41db080196a0e0844c2fcf6e4f982e161b3.tar.bz2 chocolate-doom-6617f41db080196a0e0844c2fcf6e4f982e161b3.zip |
Split D_InitNetGame() into two separate functions for startup.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2582
Diffstat (limited to 'src/strife')
-rw-r--r-- | src/strife/d_net.c | 70 |
1 files changed, 26 insertions, 44 deletions
diff --git a/src/strife/d_net.c b/src/strife/d_net.c index a3f5513c..355dde56 100644 --- a/src/strife/d_net.c +++ b/src/strife/d_net.c @@ -117,8 +117,7 @@ static loop_interface_t strife_loop_interface = { // Load game settings from the specified structure and // set global variables. -static void LoadGameSettings(net_gamesettings_t *settings, - net_connect_data_t *connect_data) +static void LoadGameSettings(net_gamesettings_t *settings) { unsigned int i; @@ -133,6 +132,7 @@ static void LoadGameSettings(net_gamesettings_t *settings, fastparm = settings->fast_monsters; respawnparm = settings->respawn_monsters; timelimit = settings->timelimit; + consoleplayer = settings->consoleplayer; if (lowres_turn) { @@ -140,16 +140,7 @@ static void LoadGameSettings(net_gamesettings_t *settings, "because there is a client recording a Vanilla demo.\n"); } - if (!connect_data->drone) - { - consoleplayer = settings->consoleplayer; - } - else - { - consoleplayer = 0; - } - - for (i=0; i<MAXPLAYERS; ++i) + for (i = 0; i < MAXPLAYERS; ++i) { playeringame[i] = i < settings->num_players; } @@ -158,8 +149,7 @@ static void LoadGameSettings(net_gamesettings_t *settings, // Save the game settings from global variables to the specified // game settings structure. -static void SaveGameSettings(net_gamesettings_t *settings, - net_connect_data_t *connect_data) +static void SaveGameSettings(net_gamesettings_t *settings) { // Fill in game settings structure with appropriate parameters // for the new game @@ -177,7 +167,10 @@ static void SaveGameSettings(net_gamesettings_t *settings, settings->lowres_turn = M_CheckParm("-record") > 0 && M_CheckParm("-longtics") == 0; +} +static void InitConnectData(net_connect_data_t *connect_data) +{ connect_data->drone = false; connect_data->max_players = MAXPLAYERS; @@ -216,7 +209,8 @@ static void SaveGameSettings(net_gamesettings_t *settings, // Are we recording a demo? Possibly set lowres turn mode - connect_data->lowres_turn = settings->lowres_turn; + connect_data->lowres_turn = M_CheckParm("-record") > 0 + && M_CheckParm("-longtics") == 0; // Read checksums of our WAD directory and dehacked information @@ -226,29 +220,6 @@ static void SaveGameSettings(net_gamesettings_t *settings, connect_data->is_freedoom = 0; } -void D_InitSinglePlayerGame(net_gamesettings_t *settings) -{ - // default values for single player - - settings->consoleplayer = 0; - settings->num_players = 1; - - netgame = false; - - //! - // @category net - // - // Start the game playing as though in a netgame with a single - // player. This can also be used to play back single player netgame - // demos. - // - - if (M_CheckParm("-solo-net") > 0) - { - netgame = true; - } -} - // // D_CheckNetGame // Works out player numbers among the net participants @@ -264,19 +235,30 @@ void D_CheckNetGame (void) I_AtExit(D_QuitNetGame, true); - SaveGameSettings(&settings, &connect_data); + InitConnectData(&connect_data); + netgame = D_InitNetGame(&connect_data); + + //! + // @category net + // + // Start the game playing as though in a netgame with a single + // player. This can also be used to play back single player netgame + // demos. + // - if (D_InitNetGame(&connect_data, &settings)) + if (M_CheckParm("-solo-net") > 0) { netgame = true; - autostart = true; } - else + + if (netgame) { - D_InitSinglePlayerGame(&settings); + autostart = true; } - LoadGameSettings(&settings, &connect_data); + SaveGameSettings(&settings); + D_StartNetGame(&settings); + LoadGameSettings(&settings); // Strife games are always deathmatch, though -altdeath is // supported for respawning items. |