mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 00:42:08 +00:00
- hooked up ZDoom's i_net.cpp to compile within the project.
Note about the license: This file was available from GZDoom 2.4.x under the Doom source license which is compatible with Build. This isn't used yet.
This commit is contained in:
parent
fab561d757
commit
15adf1f6e5
3 changed files with 1155 additions and 0 deletions
|
@ -18,6 +18,7 @@ struct SystemCallbacks
|
|||
IntRect(*GetSceneRect)();
|
||||
FString(*GetLocationDescription)();
|
||||
void (*MenuDim)();
|
||||
FString(*GetPlayerName)(int i);
|
||||
};
|
||||
|
||||
extern SystemCallbacks *sysCallbacks;
|
||||
|
|
1070
source/common/engine/i_net.cpp
Normal file
1070
source/common/engine/i_net.cpp
Normal file
File diff suppressed because it is too large
Load diff
84
source/common/engine/i_net.h
Normal file
84
source/common/engine/i_net.h
Normal file
|
@ -0,0 +1,84 @@
|
|||
#ifndef __I_NET_H__
|
||||
#define __I_NET_H__
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// Called by D_DoomMain.
|
||||
int I_InitNetwork (void);
|
||||
void I_NetCmd (void);
|
||||
|
||||
enum ENetConstants
|
||||
{
|
||||
MAXNETNODES = 8, // max computers in a game
|
||||
DOOMCOM_ID = 0x12345678,
|
||||
BACKUPTICS = 36, // number of tics to remember
|
||||
MAXTICDUP = 5,
|
||||
LOCALCMDTICS =(BACKUPTICS*MAXTICDUP),
|
||||
MAX_MSGLEN = 14000,
|
||||
|
||||
CMD_SEND = 1,
|
||||
CMD_GET = 2,
|
||||
};
|
||||
|
||||
// [RH]
|
||||
// New generic packet structure:
|
||||
//
|
||||
// Header:
|
||||
// One byte with following flags.
|
||||
// One byte with starttic
|
||||
// One byte with master's maketic (master -> slave only!)
|
||||
// If NCMD_RETRANSMIT set, one byte with retransmitfrom
|
||||
// If NCMD_XTICS set, one byte with number of tics (minus 3, so theoretically up to 258 tics in one packet)
|
||||
// If NCMD_QUITTERS, one byte with number of players followed by one byte with each player's consolenum
|
||||
// If NCMD_MULTI, one byte with number of players followed by one byte with each player's consolenum
|
||||
// - The first player's consolenum is not included in this list, because it always matches the sender
|
||||
//
|
||||
// For each tic:
|
||||
// Two bytes with consistancy check, followed by tic data
|
||||
//
|
||||
// Setup packets are different, and are described just before D_ArbitrateNetStart().
|
||||
|
||||
enum ENCMD
|
||||
{
|
||||
NCMD_EXIT = 0x80,
|
||||
NCMD_RETRANSMIT = 0x40,
|
||||
NCMD_SETUP = 0x20,
|
||||
NCMD_MULTI = 0x10, // multiple players in this packet
|
||||
NCMD_QUITTERS = 0x08, // one or more players just quit (packet server only)
|
||||
NCMD_COMPRESSED = 0x04, // remainder of packet is compressed
|
||||
|
||||
NCMD_XTICS = 0x03, // packet contains >2 tics
|
||||
NCMD_2TICS = 0x02, // packet contains 2 tics
|
||||
NCMD_1TICS = 0x01, // packet contains 1 tic
|
||||
NCMD_0TICS = 0x00, // packet contains 0 tics
|
||||
};
|
||||
|
||||
//
|
||||
// Network packet data.
|
||||
//
|
||||
struct doomcom_t
|
||||
{
|
||||
uint32_t id; // should be DOOMCOM_ID
|
||||
int16_t intnum; // DOOM executes an int to execute commands
|
||||
|
||||
// communication between DOOM and the driver
|
||||
int16_t command; // CMD_SEND or CMD_GET
|
||||
int16_t remotenode; // dest for send, set by get (-1 = no packet).
|
||||
int16_t datalength; // bytes in data to be sent
|
||||
|
||||
// info common to all nodes
|
||||
int16_t numnodes; // console is always node 0.
|
||||
int16_t ticdup; // 1 = no duplication, 2-5 = dup for slow nets
|
||||
|
||||
// info specific to this node
|
||||
int16_t consoleplayer;
|
||||
int16_t numplayers;
|
||||
|
||||
// packet data to be sent
|
||||
uint8_t data[MAX_MSGLEN];
|
||||
|
||||
};
|
||||
|
||||
extern doomcom_t doomcom;
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue