nvs_server.c
来自「quake1 dos源代码最新版本」· C语言 代码 · 共 863 行 · 第 1/2 页
C
863 行
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteChar (&svs.clients[i].datagram, c);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteChar (sb, c);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteChar (&svs.clients[i].message, c);
}
}
}
break;
default:
Host_Error ("NVS_WriteChar: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteByte
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteByte (int dest, int c, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteByte (sb, c);
}
else
{
MSG_WriteByte (&sv.signon, c);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteByte (&svs.clients[i].datagram, c);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteByte (sb, c);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteByte (&svs.clients[i].message, c);
}
}
}
break;
default:
Host_Error ("NVS_WriteByte: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteShort
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteShort (int dest, int c, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteShort (sb, c);
}
else
{
MSG_WriteShort (&sv.signon, c);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteShort (&svs.clients[i].datagram, c);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteShort (sb, c);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteShort (&svs.clients[i].message, c);
}
}
}
break;
default:
Host_Error ("NVS_WriteShort: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteLong
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteLong (int dest, int c, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteLong (sb, c);
}
else
{
MSG_WriteLong (&sv.signon, c);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteLong (&svs.clients[i].datagram, c);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteLong (sb, c);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteLong (&svs.clients[i].message, c);
}
}
}
break;
default:
Host_Error ("NVS_WriteLong: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteFloat
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteFloat (int dest, float f, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteFloat(sb, f);
}
else
{
MSG_WriteFloat (&sv.signon, f);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteFloat (&svs.clients[i].datagram, f);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteFloat (sb, f);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteFloat (&svs.clients[i].message, f);
}
}
}
break;
default:
Host_Error ("NVS_WriteFloat: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteString
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteString (int dest, char *s, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteString(sb, s);
}
else
{
MSG_WriteString (&sv.signon, s);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteString (&svs.clients[i].datagram, s);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteString (sb, s);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteString (&svs.clients[i].message, s);
}
}
}
break;
default:
Host_Error ("NVS_WriteString: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteCoord
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteCoord (int dest, float f, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteCoord(sb, f);
}
else
{
MSG_WriteCoord (&sv.signon, f);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteCoord (&svs.clients[i].datagram, f);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteCoord (sb, f);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteCoord (&svs.clients[i].message, f);
}
}
}
break;
default:
Host_Error ("NVS_WriteCoord: bad destination");
break;
}
NVS_CheckCounter();
}
/*
=====================
NVS_WriteAngle
=====================
*/
// 2000-05-02 NVS SVC by Maddes
void NVS_WriteAngle (int dest, float f, sizebuf_t *sb)
{
int i;
switch (dest)
{
case MSG_INIT:
if (sv.nvs_msgsignon->conversion_tab[sv.nvs_msgserver->numwrites-sv.nvs_msgwrites])
{
if (sb) // special signon
{
MSG_WriteAngle(sb, f);
}
else
{
MSG_WriteAngle (&sv.signon, f);
}
}
break;
case MSG_ONE:
case MSG_ALL:
case MSG_BROADCAST:
for (i=0 ; i<svs.maxclients ; i++)
{
if (NVS_CheckClient(&svs.clients[i]))
{
if (dest == MSG_BROADCAST) // unreliable
{
MSG_WriteAngle (&svs.clients[i].datagram, f);
}
else if (dest == MSG_ONE && sb) // special reliable MSG_ONE
{
MSG_WriteAngle (sb, f);
}
else // reliable MSG_ONE, MSG_ALL
{
MSG_WriteAngle (&svs.clients[i].message, f);
}
}
}
break;
default:
Host_Error ("NVS_WriteAngle: bad destination");
break;
}
NVS_CheckCounter();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?