mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-14 21:20:26 +01:00
engine: client: Add svc_exec support (#671)
* Add svc_exec support * engine: client: add gamedir check for svc_exec
This commit is contained in:
parent
a5a66f6c3e
commit
8ab97fbbf0
@ -86,6 +86,7 @@ const char *svc_strings[svc_lastmsg+1] =
|
||||
"svc_resourcelocation",
|
||||
"svc_querycvarvalue",
|
||||
"svc_querycvarvalue2",
|
||||
"svc_exec",
|
||||
};
|
||||
|
||||
typedef struct
|
||||
|
@ -1925,6 +1925,53 @@ void CL_ParseCvarValue2( sizebuf_t *msg )
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
CL_ParseExec
|
||||
|
||||
Exec map/class specific configs
|
||||
==============
|
||||
*/
|
||||
void CL_ParseExec( sizebuf_t *msg )
|
||||
{
|
||||
qboolean is_class;
|
||||
int class_idx;
|
||||
string mapname;
|
||||
const char *class_cfgs[] = {
|
||||
"",
|
||||
"exec scout.cfg\n",
|
||||
"exec sniper.cfg\n",
|
||||
"exec soldier.cfg\n",
|
||||
"exec demoman.cfg\n",
|
||||
"exec medic.cfg\n",
|
||||
"exec hwguy.cfg\n",
|
||||
"exec pyro.cfg\n",
|
||||
"exec spy.cfg\n",
|
||||
"exec engineer.cfg\n",
|
||||
"",
|
||||
"exec civilian.cfg\n"
|
||||
};
|
||||
|
||||
is_class = MSG_ReadByte( msg );
|
||||
|
||||
if ( is_class )
|
||||
{
|
||||
class_idx = MSG_ReadByte( msg );
|
||||
|
||||
if ( class_idx >= 0 && class_idx <= 11 && !Q_stricmp( GI->gamefolder, "tfc" ) )
|
||||
Cbuf_AddText( class_cfgs[class_idx] );
|
||||
}
|
||||
else if ( !Q_stricmp( GI->gamefolder, "tfc" ) )
|
||||
{
|
||||
Cbuf_AddText( "exec mapdefault.cfg\n" );
|
||||
|
||||
COM_FileBase( clgame.mapname, mapname );
|
||||
|
||||
if ( COM_CheckString( mapname ) )
|
||||
Cbuf_AddText( va( "exec %s.cfg\n", mapname ) );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
CL_DispatchUserMessage
|
||||
@ -2334,6 +2381,9 @@ void CL_ParseServerMessage( sizebuf_t *msg, qboolean normal_message )
|
||||
case svc_querycvarvalue2:
|
||||
CL_ParseCvarValue2( msg );
|
||||
break;
|
||||
case svc_exec:
|
||||
CL_ParseExec( msg );
|
||||
break;
|
||||
default:
|
||||
CL_ParseUserMessage( msg, cmd );
|
||||
cl.frames[cl.parsecountmod].graphdata.usr += MSG_GetNumBytesRead( msg ) - bufStart;
|
||||
|
@ -80,7 +80,7 @@ const char *svc_strings[256] =
|
||||
"svc_unused56",
|
||||
"svc_querycvarvalue",
|
||||
"svc_querycvarvalue2",
|
||||
"svc_unused59",
|
||||
"svc_exec",
|
||||
"svc_unused60",
|
||||
"svc_unused61",
|
||||
"svc_unused62",
|
||||
|
@ -78,7 +78,8 @@ GNU General Public License for more details.
|
||||
#define svc_resourcelocation 56 // [string]
|
||||
#define svc_querycvarvalue 57 // [string]
|
||||
#define svc_querycvarvalue2 58 // [string][int] (context)
|
||||
#define svc_lastmsg 58 // start user messages at this point
|
||||
#define svc_exec 59 // [byte][...]
|
||||
#define svc_lastmsg 59 // start user messages at this point
|
||||
|
||||
// client to server
|
||||
#define clc_bad 0 // immediately drop client when received
|
||||
|
Loading…
Reference in New Issue
Block a user