123 lines
3.4 KiB
C
Executable File
123 lines
3.4 KiB
C
Executable File
/*
|
|
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
#ifndef _rt_net_private
|
|
#define _rt_net_private
|
|
|
|
#define DEMOBUFFSIZE 50000
|
|
|
|
#define FASTSPEED (0xB000)
|
|
|
|
#define SETUPTIME 15
|
|
|
|
#define PlayerCommand(player,command) \
|
|
(PlayerCmds[(player)]->Commands[(command)])
|
|
|
|
#define ClientCommand(player,command) \
|
|
(ClientCmds[(player)]->Commands[(command)])
|
|
|
|
#define LocalCommand(command) \
|
|
(LocalCmds->Commands[(command)])
|
|
|
|
#define ServerCommand(command) \
|
|
(ServerCmds->Commands[(command)])
|
|
|
|
#define CommandAddress(time) \
|
|
(((time)-controlupdatestartedtime) & (MAXCMDS-1))
|
|
|
|
#define NextLocalCommand() \
|
|
(LocalCommand(CommandAddress(controlupdatetime)))
|
|
|
|
#define NextServerCommand() \
|
|
(ServerCommand(CommandAddress(serverupdatetime)))
|
|
|
|
#define ClientTimeCommand(which,whichtime) \
|
|
(ClientCmds[(which)]->Commands[(CommandAddress((whichtime)))])
|
|
|
|
#define ServerCommandStatus(whichtime) \
|
|
(CommandState[0]->CommandStates[(CommandAddress((whichtime)))])
|
|
|
|
#define ServerCommandNumberStatus(command) \
|
|
(CommandState[0]->CommandStates[(command)])
|
|
|
|
#define ClientCommandStatus(which, whichtime) \
|
|
(CommandState[(which+1)]->CommandStates[(CommandAddress((whichtime)))])
|
|
|
|
#define ClientCommandNumberStatus(which, command) \
|
|
(CommandState[(which+1)]->CommandStates[(command)])
|
|
|
|
/*
|
|
#define PacketAddress(time) \
|
|
((time) & (MAXCMDS-1))
|
|
*/
|
|
|
|
#define PacketAddress(time) \
|
|
(time)
|
|
|
|
|
|
#define NETWORKTIMEOUT (VBLCOUNTER/3)
|
|
#define MODEMTIMEOUT (VBLCOUNTER/2)
|
|
#define SERVERTIMEOUT (VBLCOUNTER<<3)
|
|
|
|
#define MAXPOLLTICS 3
|
|
|
|
|
|
typedef enum {
|
|
scfp_nodata,
|
|
scfp_gameready,
|
|
scfp_data,
|
|
scfp_done
|
|
} setupcheckforpacketstate;
|
|
|
|
typedef enum {
|
|
cs_ready,
|
|
cs_notarrived,
|
|
cs_fixing
|
|
} en_CommandStatus;
|
|
|
|
typedef enum {
|
|
player_ingame,
|
|
player_quitgame,
|
|
player_leftgame
|
|
} en_playerstatus;
|
|
|
|
void PreparePacket (MoveType * pkt);
|
|
int GetPacketSize (void * pkt);
|
|
void SendPacket (void * pkt, int dest);
|
|
void GetRemotePacket (int from, int delay);
|
|
void ResendLocalPackets (int time, int dest, int numpackets);
|
|
void ResendServerPackets (int time, int dest, int numpackets);
|
|
void ResendPacket (void * pkt, int dest);
|
|
void AddClientDelta (void * pkt, int src);
|
|
void FixupPacket (void * pkt, int src);
|
|
void ProcessPacket (void * pkt, int src);
|
|
void AddServerPacket(void * pkt, int src);
|
|
void AddClientPacket (void * pkt, int src);
|
|
void AddPacket (void * pkt, int src);
|
|
void RequestPacket (int time, int dest, int numpackets);
|
|
boolean AllPlayersReady ( void );
|
|
boolean AreClientsReady ( void );
|
|
boolean IsServerCommandReady ( int time );
|
|
void UpdatePlayerObj ( int player );
|
|
void AddServerSubPacket(COM_ServerHeaderType * serverpkt);
|
|
void AddSubPacket (void * pkt, int src);
|
|
|
|
|
|
#endif
|