summaryrefslogtreecommitdiff
path: root/src/net_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/net_server.c')
-rw-r--r--src/net_server.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/net_server.c b/src/net_server.c
index 24a50bd0..4d6d96fd 100644
--- a/src/net_server.c
+++ b/src/net_server.c
@@ -106,6 +106,10 @@ typedef struct
unsigned int is_freedoom;
+ // Player class (for Hexen)
+
+ int player_class;
+
} net_client_t;
// structure used for the recv window
@@ -640,6 +644,7 @@ static void NET_SV_ParseSYN(net_packet_t *packet,
client->recording_lowres = data.lowres_turn;
client->drone = data.drone;
+ client->player_class = data.player_class;
}
if (client->connection.state == NET_CONN_STATE_WAITING_ACK)
@@ -704,6 +709,20 @@ static void NET_SV_ParseGameStart(net_packet_t *packet, net_client_t *client)
settings.num_players = NET_SV_NumPlayers();
+ // Copy player classes:
+
+ for (i = 0; i < MAXPLAYERS; ++i)
+ {
+ if (sv_players[i] != NULL)
+ {
+ settings.player_classes[i] = sv_players[i]->player_class;
+ }
+ else
+ {
+ settings.player_classes[i] = 0;
+ }
+ }
+
nowtime = I_GetTimeMS();
// Send start packets to each connected node
@@ -1716,4 +1735,3 @@ void NET_SV_Shutdown(void)
I_Sleep(1);
}
}
-