Removed vcr code, made portable.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@630 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2004-12-11 03:48:05 +00:00
parent 2eb8db11d0
commit cc879e5152
3 changed files with 2 additions and 256 deletions

View File

@ -23,7 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../client/quakedef.h"
#ifdef NQPROT
#include "net_vcr.h"
#define Sys_FloatTime Sys_DoubleTime
@ -91,9 +90,6 @@ cvar_t config_modem_hangup = {"_config_modem_hangup", "AT H", CVAR_ARCHIVE};
cvar_t idgods = {"idgods", "0"};
#endif
int vcrFile = -1;
qboolean recording = false;
// these two macros are to make the code more readable
#define sfunc net_drivers[sock->driver]
#define dfunc net_drivers[net_driverlevel]
@ -451,13 +447,6 @@ NET_CheckNewConnections
===================
*/
struct
{
double time;
int op;
long session;
} vcrConnect;
qsocket_t *NET_CheckNewConnections (void)
{
#ifndef CLIENTONLY
@ -474,25 +463,9 @@ qsocket_t *NET_CheckNewConnections (void)
ret = dfunc.CheckNewConnections ();
if (ret)
{
if (recording)
{
vcrConnect.time = sv.time;
vcrConnect.op = VCR_OP_CONNECT;
vcrConnect.session = (long)ret;
Sys_FileWrite (vcrFile, &vcrConnect, sizeof(vcrConnect));
Sys_FileWrite (vcrFile, ret->address, NET_NAMELEN);
}
return ret;
}
}
if (recording)
{
vcrConnect.time = sv.time;
vcrConnect.op = VCR_OP_CONNECT;
vcrConnect.session = 0;
Sys_FileWrite (vcrFile, &vcrConnect, sizeof(vcrConnect));
}
#endif
return NULL;
}
@ -531,15 +504,6 @@ returns -1 if connection is invalid
=================
*/
struct
{
double time;
int op;
long session;
int ret;
int len;
} vcrGetMessage;
extern void PrintStats(qsocket_t *s);
int NET_GetMessage (qsocket_t *sock)
@ -580,28 +544,6 @@ int NET_GetMessage (qsocket_t *sock)
else if (ret == 2)
unreliableMessagesReceived++;
}
if (recording)
{
vcrGetMessage.time = realtime;
vcrGetMessage.op = VCR_OP_GETMESSAGE;
vcrGetMessage.session = (long)sock;
vcrGetMessage.ret = ret;
vcrGetMessage.len = net_message.cursize;
Sys_FileWrite (vcrFile, &vcrGetMessage, 24);
Sys_FileWrite (vcrFile, net_message.data, net_message.cursize);
}
}
else
{
if (recording)
{
vcrGetMessage.time = realtime;
vcrGetMessage.op = VCR_OP_GETMESSAGE;
vcrGetMessage.session = (long)sock;
vcrGetMessage.ret = ret;
Sys_FileWrite (vcrFile, &vcrGetMessage, 20);
}
}
*(int *)net_from.ip = 0;
@ -621,13 +563,6 @@ returns 1 if the message was sent properly
returns -1 if the connection died
==================
*/
struct
{
double time;
int op;
long session;
int r;
} vcrSendMessage;
int NET_SendMessage (qsocket_t *sock, sizebuf_t *data)
{
@ -646,15 +581,6 @@ int NET_SendMessage (qsocket_t *sock, sizebuf_t *data)
r = sfunc.QSendMessage(sock, data);
if (r == 1 && sock->driver)
messagesSent++;
if (recording)
{
vcrSendMessage.time = realtime;
vcrSendMessage.op = VCR_OP_SENDMESSAGE;
vcrSendMessage.session = (long)sock;
vcrSendMessage.r = r;
Sys_FileWrite (vcrFile, &vcrSendMessage, 20);
}
return r;
}
@ -677,15 +603,6 @@ int NET_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data)
r = sfunc.SendUnreliableMessage(sock, data);
if (r == 1 && sock->driver)
unreliableMessagesSent++;
if (recording)
{
vcrSendMessage.time = realtime;
vcrSendMessage.op = VCR_OP_SENDMESSAGE;
vcrSendMessage.session = (long)sock;
vcrSendMessage.r = r;
Sys_FileWrite (vcrFile, &vcrSendMessage, 20);
}
return r;
}
@ -713,15 +630,6 @@ qboolean NET_CanSendMessage (qsocket_t *sock)
r = sfunc.CanSendMessage(sock);
if (recording)
{
vcrSendMessage.time = realtime;
vcrSendMessage.op = VCR_OP_CANSENDMESSAGE;
vcrSendMessage.session = (long)sock;
vcrSendMessage.r = r;
Sys_FileWrite (vcrFile, &vcrSendMessage, 20);
}
return r;
}
@ -818,15 +726,6 @@ void NQ_NET_Init (void)
int controlSocket;
qsocket_t *s;
if (COM_CheckParm("-playback"))
{
net_numdrivers = 1;
net_drivers[0].Init = VCR_Init;
}
if (COM_CheckParm("-record"))
recording = true;
i = COM_CheckParm ("-nqport");
if (!i)
i = COM_CheckParm ("-udpport");
@ -936,12 +835,6 @@ void NQ_NET_Shutdown (void)
net_drivers[net_driverlevel].initialized = false;
}
}
if (vcrFile != -1)
{
Con_Printf ("Closing vcrfile.\n");
Sys_FileClose(vcrFile);
}
}

View File

@ -20,151 +20,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// net_vcr.c
#include "../client/quakedef.h"
#ifdef NQPROT
#include "net_vcr.h"
extern int vcrFile;
// This is the playback portion of the VCR. It reads the file produced
// by the recorder and plays it back to the host. The recording contains
// everything necessary (events, timestamps, and data) to duplicate the game
// from the viewpoint of everything above the network layer.
static struct
{
double time;
int op;
long session;
} next;
int VCR_Init (void)
{
net_drivers[0].Init = VCR_Init;
net_drivers[0].SearchForHosts = VCR_SearchForHosts;
net_drivers[0].Connect = VCR_Connect;
net_drivers[0].CheckNewConnections = VCR_CheckNewConnections;
net_drivers[0].QGetMessage = VCR_GetMessage;
net_drivers[0].QSendMessage = VCR_SendMessage;
net_drivers[0].CanSendMessage = VCR_CanSendMessage;
net_drivers[0].Close = VCR_Close;
net_drivers[0].Shutdown = VCR_Shutdown;
Sys_FileRead(vcrFile, &next, sizeof(next));
return 0;
}
void VCR_ReadNext (void)
{
if (Sys_FileRead(vcrFile, &next, sizeof(next)) == 0)
{
next.op = 255;
Sys_Error ("=== END OF PLAYBACK===\n");
}
if (next.op < 1 || next.op > VCR_MAX_MESSAGE)
Sys_Error ("VCR_ReadNext: bad op");
}
void VCR_Listen (qboolean state)
{
}
void VCR_Shutdown (void)
{
}
int VCR_GetMessage (qsocket_t *sock)
{
int ret;
if (realtime != next.time || next.op != VCR_OP_GETMESSAGE || next.session != *(long *)(&sock->driverdata))
Sys_Error ("VCR missmatch");
Sys_FileRead(vcrFile, &ret, sizeof(int));
if (ret != 1)
{
VCR_ReadNext ();
return ret;
}
Sys_FileRead(vcrFile, &net_message.cursize, sizeof(int));
Sys_FileRead(vcrFile, net_message.data, net_message.cursize);
VCR_ReadNext ();
return 1;
}
int VCR_SendMessage (qsocket_t *sock, sizebuf_t *data)
{
int ret;
if (realtime != next.time || next.op != VCR_OP_SENDMESSAGE || next.session != *(long *)(&sock->driverdata))
Sys_Error ("VCR missmatch");
Sys_FileRead(vcrFile, &ret, sizeof(int));
VCR_ReadNext ();
return ret;
}
qboolean VCR_CanSendMessage (qsocket_t *sock)
{
qboolean ret;
if (realtime != next.time || next.op != VCR_OP_CANSENDMESSAGE || next.session != *(long *)(&sock->driverdata))
Sys_Error ("VCR missmatch");
Sys_FileRead(vcrFile, &ret, sizeof(int));
VCR_ReadNext ();
return ret;
}
void VCR_Close (qsocket_t *sock)
{
}
void VCR_SearchForHosts (qboolean xmit)
{
}
qsocket_t *VCR_Connect (char *host)
{
return NULL;
}
qsocket_t *VCR_CheckNewConnections (void)
{
qsocket_t *sock;
if (realtime != next.time || next.op != VCR_OP_CONNECT)
Sys_Error ("VCR missmatch");
if (!next.session)
{
VCR_ReadNext ();
return NULL;
}
sock = NET_NewQSocket ();
*(long *)(&sock->driverdata) = next.session;
Sys_FileRead (vcrFile, sock->address, NET_NAMELEN);
VCR_ReadNext ();
return sock;
}
#endif

View File

@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// net_wipx.c
#include "quakedef.h"
#ifdef _WIN32
#ifdef NQPROT
#include "../client/winquake.h"
#include <wsipx.h>
@ -438,4 +439,4 @@ int WIPX_SetSocketPort (struct sockaddr_qstorage *addr, int port)
//=============================================================================
#endif
#endif