mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-15 13:41:33 +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_resourcelocation",
|
||||||
"svc_querycvarvalue",
|
"svc_querycvarvalue",
|
||||||
"svc_querycvarvalue2",
|
"svc_querycvarvalue2",
|
||||||
|
"svc_exec",
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
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
|
CL_DispatchUserMessage
|
||||||
@ -2334,6 +2381,9 @@ void CL_ParseServerMessage( sizebuf_t *msg, qboolean normal_message )
|
|||||||
case svc_querycvarvalue2:
|
case svc_querycvarvalue2:
|
||||||
CL_ParseCvarValue2( msg );
|
CL_ParseCvarValue2( msg );
|
||||||
break;
|
break;
|
||||||
|
case svc_exec:
|
||||||
|
CL_ParseExec( msg );
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
CL_ParseUserMessage( msg, cmd );
|
CL_ParseUserMessage( msg, cmd );
|
||||||
cl.frames[cl.parsecountmod].graphdata.usr += MSG_GetNumBytesRead( msg ) - bufStart;
|
cl.frames[cl.parsecountmod].graphdata.usr += MSG_GetNumBytesRead( msg ) - bufStart;
|
||||||
|
@ -80,7 +80,7 @@ const char *svc_strings[256] =
|
|||||||
"svc_unused56",
|
"svc_unused56",
|
||||||
"svc_querycvarvalue",
|
"svc_querycvarvalue",
|
||||||
"svc_querycvarvalue2",
|
"svc_querycvarvalue2",
|
||||||
"svc_unused59",
|
"svc_exec",
|
||||||
"svc_unused60",
|
"svc_unused60",
|
||||||
"svc_unused61",
|
"svc_unused61",
|
||||||
"svc_unused62",
|
"svc_unused62",
|
||||||
|
@ -78,7 +78,8 @@ GNU General Public License for more details.
|
|||||||
#define svc_resourcelocation 56 // [string]
|
#define svc_resourcelocation 56 // [string]
|
||||||
#define svc_querycvarvalue 57 // [string]
|
#define svc_querycvarvalue 57 // [string]
|
||||||
#define svc_querycvarvalue2 58 // [string][int] (context)
|
#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
|
// client to server
|
||||||
#define clc_bad 0 // immediately drop client when received
|
#define clc_bad 0 // immediately drop client when received
|
||||||
|
Loading…
Reference in New Issue
Block a user