Skip to content
Snippets Groups Projects
Select Git revision
  • 7bcad024f8a15a42bc75ffceec1d9c7bf2023c8d
  • next default protected
  • next-test
  • classic-netcode-fixes
  • fix-dedi-pthread
  • fix-enemy-target
  • master protected
  • better-distance-math
  • movie
  • softcode-info
  • acs
  • clipmidtex
  • custom-map-names
  • nogravity-trampolines
  • 2214-pre4
  • 2214-pre3
  • just-in-case
  • fix-opengl-parameter-crash
  • 2214-pre2
  • 2214-pre1
  • delfile2
  • SRB2_release_2.2.15
  • SRB2_release_2.2.13
  • SRB2_release_2.2.12
  • SRB2_release_2.2.11
  • SRB2_release_2.2.10
  • SRB2_release_2.2.9
  • SRB2_release_2.2.8
  • SRB2_release_2.2.7
  • SRB2_release_2.2.6
  • SRB2_release_2.2.5
  • SRB2_release_2.2.4
  • SRB2_release_2.2.3
  • SRB2_release_2.2.2
  • SRB2_release_2.2.1
  • SRB2_release_2.2.0
  • SRB2_release_2.1.25
  • SRB2_release_2.1.24
  • SRB2_release_2.1.23
  • SRB2_release_2.1.22
  • SRB2_release_2.1.21
41 results

doomdef.h

Blame
  • i_net.h 3.46 KiB
    // SONIC ROBO BLAST 2
    //-----------------------------------------------------------------------------
    // Copyright (C) 1993-1996 by id Software, Inc.
    // Copyright (C) 1998-2000 by DooM Legacy Team.
    // Copyright (C) 1999-2021 by Sonic Team Junior.
    //
    // This program is free software distributed under the
    // terms of the GNU General Public License, version 2.
    // See the 'LICENSE' file for more details.
    //-----------------------------------------------------------------------------
    /// \file  i_net.h
    /// \brief System specific network interface stuff.
    
    #ifndef __I_NET__
    #define __I_NET__
    
    #ifdef __GNUG__
    #pragma interface
    #endif
    
    #include "doomdef.h"
    #include "command.h"
    
    /// \brief program net id
    #define DOOMCOM_ID (INT32)0x12345678l
    
    /// \def MAXPACKETLENGTH
    /// For use in a LAN
    #define MAXPACKETLENGTH 1450
    /// \def INETPACKETLENGTH
    ///  For use on the internet
    #define INETPACKETLENGTH 1024
    
    extern INT16 hardware_MAXPACKETLENGTH;
    extern INT32 net_bandwidth; // in byte/s
    
    #if defined(_MSC_VER)
    #pragma pack(1)
    #endif
    
    typedef struct
    {
    	/// Supposed to be DOOMCOM_ID
    	INT32 id;
    
    	/// SRB2 executes an INT32 to execute commands.
    	INT16 intnum;
    	/// Communication between SRB2 and the driver.
    	/// Is CMD_SEND or CMD_GET.
    	INT16 command;
    	/// Is dest for send, set by get (-1 = no packet).
    	INT16 remotenode;
    
    	/// Number of bytes in doomdata to be sent
    	INT16 datalength;
    
    	/// Info common to all nodes.
    	/// Console is always node 0.
    	INT16 numnodes;
    	/// Flag: 1 = no duplication, 2-5 = dup for slow nets.
    	INT16 ticdup;
    	/// Flag: 1 = send a backup tic in every packet.
    	INT16 extratics;
    	/// kind of game
    	INT16 gametype;
    	/// Flag: -1 = new game, 0-5 = load savegame
    	INT16 savegame;
    	/// currect map
    	INT16 map;
    
    	/// Info specific to this node.
    	INT16 consoleplayer;
    	/// Number of "slots": the highest player number in use plus one.
    	INT16 numslots;
    
    	/// The packet data to be sent.
    	char data[MAXPACKETLENGTH];
    } ATTRPACK doomcom_t;
    
    #if defined(_MSC_VER)
    #pragma pack()
    #endif
    
    extern doomcom_t *doomcom;
    
    /**	\brief return packet in doomcom struct
    */
    extern boolean (*I_NetGet)(void);
    
    /**	\brief ask to driver if there is data waiting
    */
    extern boolean (*I_NetCanGet)(void);
    
    /**	\brief send packet within doomcom struct
    */
    extern void (*I_NetSend)(void);
    
    /**	\brief ask to driver if all is ok to send data now
    */
    extern boolean (*I_NetCanSend)(void);
    
    /**	\brief	close a connection
    
    	\param	nodenum	node to be closed
    
    	\return	void
    
    
    */
    extern void (*I_NetFreeNodenum)(INT32 nodenum);
    
    /**	\brief	open a connection with specified address
    
    	\param	address	address to connect to
    
    	\return	number of node
    
    
    */
    extern SINT8 I_NetMakeNode(const char *address);
    
    /**	\brief	open a connection with specified address and port
    
    	\param	address	address to connect to
    
    	\param	port	port to connect to
    
    	\return	number of node
    
    
    */
    extern SINT8 (*I_NetMakeNodewPort)(const char *address, const char *port);
    
    /**	\brief open connection
    */
    extern boolean (*I_NetOpenSocket)(void);
    
    /**	\brief close all connections no more allow geting any packet
    */
    extern void (*I_NetCloseSocket)(void);
    
    
    extern boolean (*I_Ban) (INT32 node);
    extern void (*I_ClearBans)(void);
    extern const char *(*I_GetNodeAddress) (INT32 node);
    extern const char *(*I_GetBanAddress) (size_t ban);
    extern const char *(*I_GetBanMask) (size_t ban);
    extern boolean (*I_SetBanAddress) (const char *address,const char *mask);
    extern boolean *bannednode;
    
    /// \brief Called by D_SRB2Main to be defined by extern network driver
    boolean I_InitNetwork(void);
    
    #endif