diff options
Diffstat (limited to 'src/net_defs.h')
-rw-r--r-- | src/net_defs.h | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/src/net_defs.h b/src/net_defs.h index d9e3b920..1fa9a9af 100644 --- a/src/net_defs.h +++ b/src/net_defs.h @@ -26,10 +26,25 @@ #ifndef NET_DEFS_H #define NET_DEFS_H -#include "doomdef.h" +#include <stdio.h> + #include "doomtype.h" #include "d_ticcmd.h" +// Absolute maximum number of "nodes" in the game. This is different to +// MAXPLAYERS, as there may be observers that are not participating +// (eg. left/right monitors) + +#define MAXNETNODES 16 + +// The maximum number of players, multiplayer/networking. + +#define MAXPLAYERS 4 + +// Networking and tick handling related. + +#define BACKUPTICS 128 + typedef struct _net_module_s net_module_t; typedef struct _net_packet_s net_packet_t; typedef struct _net_addr_s net_addr_t; @@ -121,6 +136,22 @@ typedef enum NET_MASTER_PACKET_TYPE_QUERY_RESPONSE } net_master_packet_type_t; +// Settings specified when the client connects to the server. + +typedef struct +{ + int gamemode; + int gamemission; + int lowres_turn; + int drone; + // TODO: is_freedoom in here? WAD/DEH checksums? + // TODO: [Hexen] Requested player class + +} net_connect_data_t; + +// Game settings sent by client to server when initiating game start, +// and received from the server by clients when the game starts. + typedef struct { int ticdup; @@ -137,6 +168,15 @@ typedef struct int new_sync; int timelimit; int loadgame; + + // These fields are only used by the server when sending a game + // start message: + + int num_players; + int consoleplayer; + + // TODO: [Hexen] Array of player classes, one for each player. + } net_gamesettings_t; #define NET_TICDIFF_FORWARD (1 << 0) @@ -145,6 +185,8 @@ typedef struct #define NET_TICDIFF_BUTTONS (1 << 3) #define NET_TICDIFF_CONSISTANCY (1 << 4) #define NET_TICDIFF_CHATCHAR (1 << 5) +#define NET_TICDIFF_LOOKFLY (1 << 6) +#define NET_TICDIFF_ARTIFACT (1 << 7) typedef struct { |