10 Feb 2012
This commit is contained in:
parent
a52eddecc3
commit
1666190c51
20
change.log
20
change.log
|
@ -3,6 +3,26 @@ build ????
|
|||
Physic: add check for liquid brushes that has only hull0
|
||||
Render: draw decals without culling on the transparent surfaces
|
||||
Engine: fix decal transition bug on global entities
|
||||
Client: fix "r_drawentities 5" debug code in client.dll
|
||||
Render: rewrited detail texture code for using detail scale for each diffuse texture instead of each detail texture
|
||||
Render: custom render interface is changed to version 26
|
||||
Engine: added custom studio decals serializtaion
|
||||
Server: fixed check for russian letters in the commands "say" and "say_team"
|
||||
Server: physics interface is changed to version 6
|
||||
Client: allow console in multiplayer even while dev-mode is disabled
|
||||
Engine: added new message SVC_STUDIODECAL that passed through engine and call function in extended rendered interface
|
||||
Engine: hook PrintScreen and manually writing screenshot into clipboard
|
||||
Render: fix decals drawing when rendermode is TransColor
|
||||
Render: add support for cubemaps, 1D and 3D textures
|
||||
Render: added some new internal textures that using by Xash-Mod 0.5
|
||||
Render: fix reflection for Glow-Sprites and follow beams
|
||||
Studio: fix poly-counter for studio models
|
||||
Engine: add support for userconfig
|
||||
Engine: allow letter '¸' in console and chat-mode
|
||||
Engine: fix REG_USER_MSG for messages that registering in-game
|
||||
Server: clear savedir when new game is started
|
||||
GameUI: loading maps.lst from basedir while mod doesn't contain multiplayer maps
|
||||
Network: implemented QueryCvarValue and QueryCvarValue2
|
||||
|
||||
build 1770
|
||||
|
||||
|
|
|
@ -2949,11 +2949,11 @@ void NetAPI_Status( net_status_t *status )
|
|||
ASSERT( status != NULL );
|
||||
|
||||
status->connected = NET_IsLocalAddress( cls.netchan.remote_address ) ? false : true;
|
||||
status->local_address = cls.netchan.remote_address; // FIXME: get local address
|
||||
status->connection_time = host.realtime - cls.netchan.connect_time;
|
||||
status->remote_address = cls.netchan.remote_address;
|
||||
status->packet_loss = cls.packet_loss / 100; // percent
|
||||
status->latency = cl.frame.latency;
|
||||
status->connection_time = cl.time; // FIXME: replace with cl.time - netchan.first_received
|
||||
status->local_address = net_local;
|
||||
status->rate = cls.netchan.rate;
|
||||
}
|
||||
|
||||
|
|
|
@ -1130,6 +1130,45 @@ void CL_ParseScreenFade( sizebuf_t *msg )
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
CL_ParseCvarValue
|
||||
|
||||
Find the client cvar value
|
||||
and sent it back to the server
|
||||
==============
|
||||
*/
|
||||
void CL_ParseCvarValue( sizebuf_t *msg )
|
||||
{
|
||||
const char *cvarName = BF_ReadString( msg );
|
||||
convar_t *cvar = Cvar_FindVar( cvarName );
|
||||
|
||||
// build the answer
|
||||
BF_WriteByte( &cls.netchan.message, clc_requestcvarvalue );
|
||||
BF_WriteString( &cls.netchan.message, cvar ? cvar->string : "Not Found" );
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
CL_ParseCvarValue2
|
||||
|
||||
Find the client cvar value
|
||||
and sent it back to the server
|
||||
==============
|
||||
*/
|
||||
void CL_ParseCvarValue2( sizebuf_t *msg )
|
||||
{
|
||||
int requestID = BF_ReadLong( msg );
|
||||
const char *cvarName = BF_ReadString( msg );
|
||||
convar_t *cvar = Cvar_FindVar( cvarName );
|
||||
|
||||
// build the answer
|
||||
BF_WriteByte( &cls.netchan.message, clc_requestcvarvalue2 );
|
||||
BF_WriteLong( &cls.netchan.message, requestID );
|
||||
BF_WriteString( &cls.netchan.message, cvarName );
|
||||
BF_WriteString( &cls.netchan.message, cvar ? cvar->string : "Not Found" );
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
CL_DispatchUserMessage
|
||||
|
@ -1460,6 +1499,12 @@ void CL_ParseServerMessage( sizebuf_t *msg )
|
|||
case svc_studiodecal:
|
||||
CL_ParseStudioDecal( msg );
|
||||
break;
|
||||
case svc_querycvarvalue:
|
||||
CL_ParseCvarValue( msg );
|
||||
break;
|
||||
case svc_querycvarvalue2:
|
||||
CL_ParseCvarValue2( msg );
|
||||
break;
|
||||
default:
|
||||
CL_ParseUserMessage( msg, cmd );
|
||||
break;
|
||||
|
|
|
@ -648,10 +648,17 @@ qboolean Cmd_CheckMapsList_R( qboolean fRefresh, qboolean onlyingamedir )
|
|||
file_t *f;
|
||||
|
||||
if( FS_FileSize( "maps.lst", onlyingamedir ) > 0 && !fRefresh )
|
||||
{
|
||||
Msg( "maps.lst is exist: %s\n", onlyingamedir ? "basedir" : "gamedir" );
|
||||
return true; // exist
|
||||
}
|
||||
|
||||
t = FS_Search( "maps/*.bsp", false, onlyingamedir );
|
||||
if( !t ) return false;
|
||||
if( !t && onlyingamedir )
|
||||
{
|
||||
// mod doesn't contain any maps (probably this is a bot)
|
||||
return Cmd_CheckMapsList_R( fRefresh, false );
|
||||
}
|
||||
|
||||
buffer = Mem_Alloc( host.mempool, t->numfilenames * 2 * sizeof( result ));
|
||||
for( i = 0; i < t->numfilenames; i++ )
|
||||
|
@ -744,19 +751,17 @@ qboolean Cmd_CheckMapsList_R( qboolean fRefresh, qboolean onlyingamedir )
|
|||
}
|
||||
}
|
||||
}
|
||||
if( t ) Mem_Free( t ); // free search result
|
||||
|
||||
if( t ) Mem_Free( t ); // free search result
|
||||
size = Q_strlen( buffer );
|
||||
if( !size && onlyingamedir )
|
||||
{
|
||||
if( buffer ) Mem_Free( buffer );
|
||||
return Cmd_CheckMapsList_R( fRefresh, false );
|
||||
}
|
||||
|
||||
if( !size )
|
||||
{
|
||||
if( buffer ) Mem_Free( buffer );
|
||||
return false;
|
||||
|
||||
if( onlyingamedir )
|
||||
return Cmd_CheckMapsList_R( fRefresh, false );
|
||||
return false;
|
||||
}
|
||||
|
||||
// write generated maps.lst
|
||||
|
|
|
@ -94,6 +94,7 @@ convar_t *net_qport;
|
|||
|
||||
int net_drop;
|
||||
netadr_t net_from;
|
||||
netadr_t net_local;
|
||||
sizebuf_t net_message;
|
||||
byte *net_mempool;
|
||||
byte net_message_buffer[NET_MAX_PAYLOAD];
|
||||
|
@ -158,6 +159,7 @@ void Netchan_Setup( netsrc_t sock, netchan_t *chan, netadr_t adr, int qport )
|
|||
chan->sock = sock;
|
||||
chan->remote_address = adr;
|
||||
chan->last_received = host.realtime;
|
||||
chan->connect_time = host.realtime;
|
||||
chan->incoming_sequence = 0;
|
||||
chan->outgoing_sequence = 1;
|
||||
chan->rate = DEFAULT_RATE;
|
||||
|
|
|
@ -137,7 +137,8 @@ typedef struct netchan_s
|
|||
double last_sent; // for retransmits
|
||||
|
||||
double rate; // bandwidth choke. bytes per second
|
||||
long cleartime; // if realtime > cleartime, free to send next packet
|
||||
double cleartime; // if realtime > cleartime, free to send next packet
|
||||
double connect_time; // Usage: host.realtime - netchan.connect_time
|
||||
|
||||
int drop_count; // dropped packets, cleared each level
|
||||
int good_count; // cleared each level
|
||||
|
@ -191,6 +192,7 @@ typedef struct netchan_s
|
|||
} netchan_t;
|
||||
|
||||
extern netadr_t net_from;
|
||||
extern netadr_t net_local;
|
||||
extern sizebuf_t net_message;
|
||||
extern byte net_message_buffer[NET_MAX_PAYLOAD];
|
||||
extern convar_t *net_speeds;
|
||||
|
|
|
@ -40,6 +40,7 @@ static int (_stdcall *pRecvFrom)( SOCKET s, char* buf, int len, int flags, struc
|
|||
static int (_stdcall *pSendTo)( SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen );
|
||||
static int (_stdcall *pSelect)( int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, const struct timeval* timeout );
|
||||
static int (_stdcall *pConnect)( SOCKET s, const struct sockaddr *name, int namelen );
|
||||
static int (_stdcall *pGetSockName)( SOCKET s, struct sockaddr *name, int *namelen );
|
||||
static int (_stdcall *pSend)( SOCKET s, const char *buf, int len, int flags );
|
||||
static int (_stdcall *pRecv)( SOCKET s, char *buf, int len, int flags );
|
||||
static int (_stdcall *pGetHostName)( char *name, int namelen );
|
||||
|
@ -66,6 +67,7 @@ static dllfunc_t winsock_funcs[] =
|
|||
{ "ioctlsocket", (void **) &pIoctlSocket },
|
||||
{ "closesocket", (void **) &pCloseSocket },
|
||||
{ "gethostname", (void **) &pGetHostName },
|
||||
{ "getsockname", (void **) &pGetSockName },
|
||||
{ "gethostbyname", (void **) &pGetHostByName },
|
||||
{ "WSAGetLastError", (void **) &pWSAGetLastError },
|
||||
{ NULL, NULL }
|
||||
|
@ -92,6 +94,8 @@ static int ipx_sockets[2];
|
|||
static WSADATA winsockdata;
|
||||
static qboolean winsockInitialized = false;
|
||||
static const char *net_src[2] = { "client", "server" };
|
||||
static qboolean noip = false;
|
||||
static qboolean noipx = false;
|
||||
static convar_t *net_ip;
|
||||
static convar_t *net_hostport;
|
||||
static convar_t *net_clientport;
|
||||
|
@ -758,6 +762,57 @@ void NET_OpenIPX( void )
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
NET_GetLocalAddress
|
||||
|
||||
Returns the servers' ip address as a string.
|
||||
================
|
||||
*/
|
||||
void NET_GetLocalAddress( void )
|
||||
{
|
||||
char buff[512];
|
||||
struct sockaddr_in address;
|
||||
int namelen;
|
||||
int net_error = 0;
|
||||
|
||||
Q_memset( &net_local, 0, sizeof( netadr_t ));
|
||||
|
||||
if( noip )
|
||||
{
|
||||
MsgDev( D_INFO, "TCP/IP Disabled.\n" );
|
||||
}
|
||||
else
|
||||
{
|
||||
// If we have changed the ip var from the command line, use that instead.
|
||||
if( Q_strcmp( net_ip->string, "localhost" ))
|
||||
{
|
||||
Q_strcpy( buff, net_ip->string );
|
||||
}
|
||||
else
|
||||
{
|
||||
pGetHostName( buff, 512 );
|
||||
}
|
||||
|
||||
// ensure that it doesn't overrun the buffer
|
||||
buff[512-1] = 0;
|
||||
|
||||
NET_StringToAdr( buff, &net_local );
|
||||
namelen = sizeof( address );
|
||||
|
||||
if( pGetSockName( ip_sockets[NS_SERVER], (struct sockaddr *)&address, &namelen ) != 0 )
|
||||
{
|
||||
MsgDev( D_ERROR, "Could not get TCP/IP address, TCP/IP disabled\nReason: %s\n", NET_ErrorString( ));
|
||||
noip = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
net_local.port = address.sin_port;
|
||||
Msg( "Server IP address %s\n", NET_AdrToString( net_local ));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
====================
|
||||
NET_Config
|
||||
|
@ -767,8 +822,8 @@ A single player game will only use the loopback code
|
|||
*/
|
||||
void NET_Config( qboolean multiplayer )
|
||||
{
|
||||
int i;
|
||||
static qboolean old_config;
|
||||
static qboolean old_config;
|
||||
static qboolean bFirst = true;
|
||||
|
||||
if( old_config == multiplayer )
|
||||
return;
|
||||
|
@ -777,6 +832,8 @@ void NET_Config( qboolean multiplayer )
|
|||
|
||||
if( !multiplayer )
|
||||
{
|
||||
int i;
|
||||
|
||||
// shut down any existing sockets
|
||||
for( i = 0; i < 2; i++ )
|
||||
{
|
||||
|
@ -796,8 +853,15 @@ void NET_Config( qboolean multiplayer )
|
|||
else
|
||||
{
|
||||
// open sockets
|
||||
if( !Sys_CheckParm( "-noip" )) NET_OpenIP();
|
||||
if( !Sys_CheckParm( "-noipx" )) NET_OpenIPX();
|
||||
if( !noip ) NET_OpenIP();
|
||||
if( !noipx ) NET_OpenIPX();
|
||||
|
||||
// Get our local address, if possible
|
||||
if( bFirst )
|
||||
{
|
||||
bFirst = false;
|
||||
NET_GetLocalAddress();
|
||||
}
|
||||
}
|
||||
|
||||
NET_ClearLoopback ();
|
||||
|
@ -886,6 +950,9 @@ void NET_Init( void )
|
|||
Cmd_AddCommand( "net_showip", NET_ShowIP_f, "show hostname and ip's" );
|
||||
Cmd_AddCommand( "net_restart", NET_Restart_f, "restart the network subsystem" );
|
||||
|
||||
if( Sys_CheckParm( "-noip" )) noip = true;
|
||||
if( Sys_CheckParm( "-noipx" )) noipx = true;
|
||||
|
||||
winsockInitialized = true;
|
||||
MsgDev( D_NOTE, "NET_Init()\n" );
|
||||
}
|
||||
|
|
|
@ -70,6 +70,9 @@ GNU General Public License for more details.
|
|||
|
||||
#define svc_director 51 // <variable sized>
|
||||
#define svc_studiodecal 52 // [float*3][float*3][short][short][byte]
|
||||
|
||||
#define svc_querycvarvalue 57 // [string]
|
||||
#define svc_querycvarvalue2 58 // [string][long] (context)
|
||||
#define svc_lastmsg 64 // start user messages at this point
|
||||
|
||||
// client to server
|
||||
|
@ -82,6 +85,8 @@ GNU General Public License for more details.
|
|||
#define clc_userinfo 6 // [[userinfo string]
|
||||
#define clc_fileconsistency 7
|
||||
#define clc_voicedata 8
|
||||
#define clc_requestcvarvalue 9
|
||||
#define clc_requestcvarvalue2 10
|
||||
|
||||
#define MAX_VISIBLE_PACKET 512 // 512 visible entities per frame (hl1 has 256)
|
||||
|
||||
|
|
|
@ -1,282 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: engine - Win32 Release--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CA.tmp" with contents
|
||||
[
|
||||
/nologo /MD /W3 /GX /O2 /I "./" /I "common" /I "common/imagelib" /I "common/soundlib" /I "server" /I "client" /I "client/vgui" /I "../common" /I "../game_shared" /I "../pm_shared" /I "../utils/vgui/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fo"..\temp\engine\!release/" /Fd"..\temp\engine\!release/" /FD /c
|
||||
"D:\Xash3D\src_main\engine\common\avikit.c"
|
||||
"D:\Xash3D\src_main\engine\common\build.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_cmds.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_demo.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_events.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_frame.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_game.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_main.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_menu.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_parse.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_pmove.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_remap.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_scrn.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_tent.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_video.c"
|
||||
"D:\Xash3D\src_main\engine\client\cl_view.c"
|
||||
"D:\Xash3D\src_main\engine\common\cmd.c"
|
||||
"D:\Xash3D\src_main\engine\common\common.c"
|
||||
"D:\Xash3D\src_main\engine\common\con_utils.c"
|
||||
"D:\Xash3D\src_main\engine\common\console.c"
|
||||
"D:\Xash3D\src_main\engine\common\crclib.c"
|
||||
"D:\Xash3D\src_main\engine\common\crtlib.c"
|
||||
"D:\Xash3D\src_main\engine\common\cvar.c"
|
||||
"D:\Xash3D\src_main\engine\common\filesystem.c"
|
||||
"D:\Xash3D\src_main\engine\common\gamma.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_backend.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_beams.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_cull.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_decals.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_draw.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_image.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_mirror.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_refrag.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rlight.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rmain.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rmath.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rmisc.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rpart.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_rsurf.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_sprite.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_studio.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_vidnt.c"
|
||||
"D:\Xash3D\src_main\engine\client\gl_warp.c"
|
||||
"D:\Xash3D\src_main\engine\common\host.c"
|
||||
"D:\Xash3D\src_main\engine\common\hpak.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_bmp.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_jpg.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_main.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_quant.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_tga.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_utils.c"
|
||||
"D:\Xash3D\src_main\engine\common\imagelib\img_wad.c"
|
||||
"D:\Xash3D\src_main\engine\common\infostring.c"
|
||||
"D:\Xash3D\src_main\engine\common\input.c"
|
||||
"D:\Xash3D\src_main\engine\common\keys.c"
|
||||
"D:\Xash3D\src_main\engine\common\library.c"
|
||||
"D:\Xash3D\src_main\engine\common\mathlib.c"
|
||||
"D:\Xash3D\src_main\engine\common\matrixlib.c"
|
||||
"D:\Xash3D\src_main\engine\common\model.c"
|
||||
"D:\Xash3D\src_main\engine\common\net_buffer.c"
|
||||
"D:\Xash3D\src_main\engine\common\net_chan.c"
|
||||
"D:\Xash3D\src_main\engine\common\net_encode.c"
|
||||
"D:\Xash3D\src_main\engine\common\net_huff.c"
|
||||
"D:\Xash3D\src_main\engine\common\network.c"
|
||||
"D:\Xash3D\src_main\engine\common\pm_studio.c"
|
||||
"D:\Xash3D\src_main\engine\common\pm_surface.c"
|
||||
"D:\Xash3D\src_main\engine\common\pm_trace.c"
|
||||
"D:\Xash3D\src_main\engine\common\random.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_backend.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_dsp.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_load.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_main.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_mix.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_mouth.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_stream.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_utils.c"
|
||||
"D:\Xash3D\src_main\engine\client\s_vox.c"
|
||||
"D:\Xash3D\src_main\engine\common\soundlib\snd_main.c"
|
||||
"D:\Xash3D\src_main\engine\common\soundlib\snd_mp3.c"
|
||||
"D:\Xash3D\src_main\engine\common\soundlib\snd_utils.c"
|
||||
"D:\Xash3D\src_main\engine\common\soundlib\snd_wav.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_client.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_cmds.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_custom.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_frame.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_game.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_init.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_main.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_move.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_phys.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_pmove.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_save.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_studio.c"
|
||||
"D:\Xash3D\src_main\engine\server\sv_world.c"
|
||||
"D:\Xash3D\src_main\engine\common\sys_con.c"
|
||||
"D:\Xash3D\src_main\engine\common\sys_win.c"
|
||||
"D:\Xash3D\src_main\engine\common\titles.c"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_clip.cpp"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_draw.c"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_font.cpp"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_input.cpp"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_int.cpp"
|
||||
"D:\Xash3D\src_main\engine\client\vgui\vgui_surf.cpp"
|
||||
"D:\Xash3D\src_main\engine\common\world.c"
|
||||
"D:\Xash3D\src_main\engine\common\zone.c"
|
||||
]
|
||||
Creating command line "cl.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CA.tmp""
|
||||
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CB.tmp" with contents
|
||||
[
|
||||
msvcrt.lib user32.lib gdi32.lib shell32.lib advapi32.lib winmm.lib mpeg.lib ../utils/vgui/lib/win32_vc6/vgui.lib /nologo /subsystem:windows /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\engine\!release/xash.dll" /implib:"..\temp\engine\!release/xash.lib" /libpath:"./common/soundlib" /opt:nowin98
|
||||
"\Xash3D\src_main\temp\engine\!release\avikit.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\build.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_cmds.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_demo.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_events.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_frame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_game.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_menu.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_parse.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_pmove.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_remap.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_scrn.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_tent.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_video.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cl_view.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cmd.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\common.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\con_utils.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\console.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\crclib.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\crtlib.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\cvar.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\filesystem.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gamma.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_backend.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_beams.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_cull.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_decals.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_draw.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_image.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_mirror.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_refrag.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rlight.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rmain.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rmath.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rmisc.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rpart.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_rsurf.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_sprite.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_studio.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_vidnt.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\gl_warp.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\host.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\hpak.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_bmp.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_jpg.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_quant.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_tga.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_utils.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\img_wad.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\infostring.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\input.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\keys.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\library.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\mathlib.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\matrixlib.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\model.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\net_buffer.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\net_chan.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\net_encode.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\net_huff.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\network.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\pm_studio.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\pm_surface.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\pm_trace.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\random.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_backend.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_dsp.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_load.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_mix.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_mouth.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_stream.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_utils.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\s_vox.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\snd_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\snd_mp3.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\snd_utils.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\snd_wav.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_client.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_cmds.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_custom.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_frame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_game.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_init.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_move.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_phys.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_pmove.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_save.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_studio.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sv_world.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sys_con.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\sys_win.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\titles.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_clip.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_draw.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_font.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_input.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_int.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\vgui_surf.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\world.obj"
|
||||
"\Xash3D\src_main\temp\engine\!release\zone.obj"
|
||||
]
|
||||
Creating command line "link.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CB.tmp""
|
||||
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CC.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\engine\!release\xash.dll "D:\Xash3D\xash.dll"
|
||||
]
|
||||
Creating command line ""C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CC.bat""
|
||||
Compiling...
|
||||
avikit.c
|
||||
build.c
|
||||
cl_cmds.c
|
||||
cl_demo.c
|
||||
cl_events.c
|
||||
cl_frame.c
|
||||
cl_game.c
|
||||
cl_main.c
|
||||
cl_menu.c
|
||||
cl_parse.c
|
||||
cl_pmove.c
|
||||
cl_remap.c
|
||||
cl_scrn.c
|
||||
cl_tent.c
|
||||
cl_video.c
|
||||
cl_view.c
|
||||
cmd.c
|
||||
common.c
|
||||
con_utils.c
|
||||
console.c
|
||||
Generating Code...
|
||||
Compiling...
|
||||
crclib.c
|
||||
crtlib.c
|
||||
cvar.c
|
||||
filesystem.c
|
||||
gamma.c
|
||||
gl_backend.c
|
||||
gl_beams.c
|
||||
gl_cull.c
|
||||
gl_decals.c
|
||||
gl_draw.c
|
||||
gl_image.c
|
||||
gl_mirror.c
|
||||
gl_refrag.c
|
||||
gl_rlight.c
|
||||
gl_rmain.c
|
||||
gl_rmath.c
|
||||
gl_rmisc.c
|
||||
gl_rpart.c
|
||||
gl_rsurf.c
|
||||
gl_sprite.c
|
||||
Generating Code...
|
||||
Compiling...
|
||||
gl_studio.c
|
||||
gl_vidnt.c
|
||||
gl_warp.
|
|
@ -2114,6 +2114,41 @@ void SV_ParseResourceList( sv_client_t *cl, sizebuf_t *msg )
|
|||
Netchan_FragSend( &cl->netchan );
|
||||
}
|
||||
|
||||
/*
|
||||
===================
|
||||
SV_ParseCvarValue
|
||||
|
||||
Parse a requested value from client cvar
|
||||
===================
|
||||
*/
|
||||
void SV_ParseCvarValue( sv_client_t *cl, sizebuf_t *msg )
|
||||
{
|
||||
const char *value = BF_ReadString( msg );
|
||||
|
||||
if( svgame.dllFuncs2.pfnCvarValue )
|
||||
svgame.dllFuncs2.pfnCvarValue( cl->edict, value );
|
||||
MsgDev( D_AICONSOLE, "Cvar query response: name:%s, value:%s\n", cl->name, value );
|
||||
}
|
||||
|
||||
/*
|
||||
===================
|
||||
SV_ParseCvarValue2
|
||||
|
||||
Parse a requested value from client cvar
|
||||
===================
|
||||
*/
|
||||
void SV_ParseCvarValue2( sv_client_t *cl, sizebuf_t *msg )
|
||||
{
|
||||
string name, value;
|
||||
int requestID = BF_ReadLong( msg );
|
||||
Q_strcpy( name, BF_ReadString( msg ));
|
||||
Q_strcpy( value, BF_ReadString( msg ));
|
||||
|
||||
if( svgame.dllFuncs2.pfnCvarValue2 )
|
||||
svgame.dllFuncs2.pfnCvarValue2( cl->edict, requestID, name, value );
|
||||
MsgDev( D_AICONSOLE, "Cvar query response: name:%s, request ID %d, cvar:%s, value:%s\n", cl->name, requestID, name, value );
|
||||
}
|
||||
|
||||
/*
|
||||
===================
|
||||
SV_ExecuteClientMessage
|
||||
|
@ -2194,6 +2229,12 @@ void SV_ExecuteClientMessage( sv_client_t *cl, sizebuf_t *msg )
|
|||
case clc_resourcelist:
|
||||
SV_ParseResourceList( cl, msg );
|
||||
break;
|
||||
case clc_requestcvarvalue:
|
||||
SV_ParseCvarValue( cl, msg );
|
||||
break;
|
||||
case clc_requestcvarvalue2:
|
||||
SV_ParseCvarValue2( cl, msg );
|
||||
break;
|
||||
default:
|
||||
MsgDev( D_ERROR, "SV_ReadClientMessage: clc_bad\n" );
|
||||
SV_DropClient( cl );
|
||||
|
|
|
@ -4183,6 +4183,25 @@ request client cvar value
|
|||
*/
|
||||
void pfnQueryClientCvarValue( const edict_t *player, const char *cvarName )
|
||||
{
|
||||
sv_client_t *cl;
|
||||
|
||||
if( !cvarName || !*cvarName )
|
||||
{
|
||||
MsgDev( D_ERROR, "QueryClientCvarValue: NULL cvar name!\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
if(( cl = SV_ClientFromEdict( player, true )) != NULL )
|
||||
{
|
||||
BF_WriteByte( &cl->netchan.message, svc_querycvarvalue );
|
||||
BF_WriteString( &cl->netchan.message, cvarName );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( svgame.dllFuncs2.pfnCvarValue )
|
||||
svgame.dllFuncs2.pfnCvarValue( player, "Bad Player" );
|
||||
MsgDev( D_ERROR, "QueryClientCvarValue: tried to send to a non-client!\n" );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -4194,6 +4213,26 @@ request client cvar value (bugfixed)
|
|||
*/
|
||||
void pfnQueryClientCvarValue2( const edict_t *player, const char *cvarName, int requestID )
|
||||
{
|
||||
sv_client_t *cl;
|
||||
|
||||
if( !cvarName || !*cvarName )
|
||||
{
|
||||
MsgDev( D_ERROR, "QueryClientCvarValue: NULL cvar name!\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
if(( cl = SV_ClientFromEdict( player, true )) != NULL )
|
||||
{
|
||||
BF_WriteByte( &cl->netchan.message, svc_querycvarvalue2 );
|
||||
BF_WriteLong( &cl->netchan.message, requestID );
|
||||
BF_WriteString( &cl->netchan.message, cvarName );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( svgame.dllFuncs2.pfnCvarValue2 )
|
||||
svgame.dllFuncs2.pfnCvarValue2( player, requestID, cvarName, "Bad Player" );
|
||||
MsgDev( D_ERROR, "QueryClientCvarValue: tried to send to a non-client!\n" );
|
||||
}
|
||||
}
|
||||
|
||||
// engine callbacks
|
||||
|
|
|
@ -183,7 +183,7 @@ static void UI_CreateGame_GetMapsList( void )
|
|||
{
|
||||
char *afile;
|
||||
|
||||
if( !CHECK_MAP_LIST( FALSE ) && (afile = (char *)LOAD_FILE( "maps.lst", NULL )) == NULL )
|
||||
if( !CHECK_MAP_LIST( FALSE ) || (afile = (char *)LOAD_FILE( "maps.lst", NULL )) == NULL )
|
||||
{
|
||||
uiCreateGame.done.generic.flags |= QMF_GRAYED;
|
||||
uiCreateGame.mapsList.itemNames = (const char **)uiCreateGame.mapsDescriptionPtr;
|
||||
|
|
Reference in New Issue