本文整理汇总了C++中Q_strrchr函数的典型用法代码示例。如果您正苦于以下问题:C++ Q_strrchr函数的具体用法?C++ Q_strrchr怎么用?C++ Q_strrchr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Q_strrchr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CG_LoadViewWeapon
//=========================================================
// Description:
// Loads a view weapon.
//=========================================================
static void CG_LoadViewWeapon ( weaponInfo_t *weapon, const char *modelPath )
{
char file[MAX_QPATH];
char *slash;
//int root;
//int model;
Q_strncpyz (file, modelPath, sizeof (file));
slash = Q_strrchr (file, '/');
Q_strncpyz (slash, "/model_default.skin", sizeof (file) - (slash - file));
weapon->viewModelSkin = trap->R_RegisterSkin (file);
trap->G2API_InitGhoul2Model (&weapon->g2ViewModel, modelPath, 0, weapon->viewModelSkin, 0, 0, 0);
if ( !trap->G2_HaveWeGhoul2Models (weapon->g2ViewModel) )
{
return;
}
/*root = trap->G2API_AddBolt (weapon->g2ViewModel, 0, "model_root");
model = trap->G2API_InitGhoul2Model (&weapon->g2ViewModel, "models/weapons2/test3_r_hand/model.glm", 1, 0, trap->R_RegisterSkin ("models/weapons2/test3_r_hand/model_default.skin"), 0, 0);
if ( !trap->G2API_HasGhoul2ModelOnIndex (&weapon->g2ViewModel, 1) )
{
trap->Print (S_COLOR_YELLOW "WARNING: Failed to load right hand model.\n");
}
trap->G2API_SetBoltInfo (weapon->g2ViewModel, 0, root);
trap->G2API_InitGhoul2Model (&weapon->g2ViewModel, "models/weapons2/test3_l_hand/model.glm", 2, 0, trap->R_RegisterSkin ("models/weapons2/test3_l_hand/model_default.skin"), 0, 0);
if ( !trap->G2API_HasGhoul2ModelOnIndex (&weapon->g2ViewModel, 2) )
{
trap->Print (S_COLOR_YELLOW "WARNING: Failed to load left hand model.\n");
}
trap->G2API_SetBoltInfo (weapon->g2ViewModel, 0, root);*/
memset (weapon->viewModelAnims, 0, sizeof (weapon->viewModelAnims));
trap->G2API_GetGLAName (weapon->g2ViewModel, 0, file);
if ( !file[0] )
{
return;
}
slash = Q_strrchr (file, '/');
Q_strncpyz (slash, "/animation.cfg", sizeof (file) - (slash - file));
CG_LoadViewWeaponAnimations (weapon, file);
}
示例2: Q_strrchr
//-----------------------------------------------------------------------------
// The SDK launches the game with the full path to gameinfo.txt, so we need
// to strip off the path.
//-----------------------------------------------------------------------------
const char *GetModDirFromPath( const char *pszPath )
{
char *pszSlash = Q_strrchr( pszPath, '\\' );
if ( pszSlash )
{
return pszSlash + 1;
}
else if ( ( pszSlash = Q_strrchr( pszPath, '/' ) ) != NULL )
{
return pszSlash + 1;
}
// Must just be a mod directory already.
return pszPath;
}
示例3: S_Play_f
void S_Play_f( void )
{
int i;
sfxHandle_t h;
char name[256];
i = 1;
while ( i<Cmd_Argc() )
{
if ( !Q_strrchr(Cmd_Argv(i), '.') )
{
Com_sprintf( name, sizeof(name), "%s.wav", Cmd_Argv(1) );
}
else
{
Q_strncpyz( name, Cmd_Argv(i), sizeof(name) );
}
h = S_RegisterSound( name, qfalse );
if( h )
{
S_StartLocalSound( h, CHAN_LOCAL_SOUND );
}
i++;
}
}
示例4: Q_strrchr
//============
// UTIL_FileExtension
// returns file extension
//============
const char *UTIL_FileExtension( const char *in )
{
const char *separator, *backslash, *colon, *dot;
separator = Q_strrchr( in, '/' );
backslash = Q_strrchr( in, '\\' );
if( !separator || separator < backslash )
separator = backslash;
colon = Q_strrchr( in, ':' );
if( !separator || separator < colon )
separator = colon;
dot = Q_strrchr( in, '.' );
if( dot == NULL || (separator && ( dot < separator )))
return "";
return dot + 1;
}
示例5: CG_LoadG2ModelWithSkin
static void CG_LoadG2ModelWithSkin ( const char *modelPath, void **g2ModelPtr )
{
void *g2Model = NULL;
trap->G2API_InitGhoul2Model (g2ModelPtr, modelPath, 0, 0, 0, 0, 0);
g2Model = *g2ModelPtr;
if ( trap->G2_HaveWeGhoul2Models (g2Model) && trap->G2API_SkinlessModel (g2Model, 0) )
{
char skinName[MAX_QPATH];
char *slash = NULL;
int skinLen = 0;
qhandle_t skin;
Q_strncpyz (skinName, modelPath, sizeof (skinName));
skinLen = strlen (skinName);
slash = Q_strrchr (skinName, '/');
Q_strncpyz (slash, "/model_default.skin", sizeof (skinName) - (slash - skinName));
skin = trap->R_RegisterSkin (skinName);
trap->G2API_SetSkin (g2Model, 0, skin, skin);
}
}
示例6: main
int main ( int argc, char* argv[] )
#endif // IPHONE
{
// int oldtime, newtime; // bk001204 - unused
int len, i;
char *cmdline;
char *cdpath, *sep;
void Sys_SetDefaultCDPath(const char *path);
// go back to real user for config loads
saved_euid = geteuid();
seteuid(getuid());
Sys_ParseArgs( argc, argv ); // bk010104 - added this for support
// Can't use CopyString() or Z_Free() yet:
cdpath = strdup(argv[0]);
if ((sep = Q_strrchr(cdpath, '/')))
*sep = '\0';
Sys_SetDefaultCDPath(cdpath);
free(cdpath);
// merge the command line, this is kinda silly
for (len = 1, i = 1; i < argc; i++)
len += strlen(argv[i]) + 1;
cmdline = malloc(len);
*cmdline = 0;
for (i = 1; i < argc; i++)
{
if (i > 1)
strcat(cmdline, " ");
strcat(cmdline, argv[i]);
}
// bk000306 - clear queues
memset( &eventQue[0], 0, MAX_QUED_EVENTS*sizeof(sysEvent_t) );
memset( &sys_packetReceived[0], 0, MAX_MSGLEN*sizeof(qbyte) );
Com_Init(cmdline);
NET_Init();
Sys_ConsoleInputInit();
fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY);
#ifdef DEDICATED
// init here for dedicated, as we don't have GLimp_Init
InitSig();
#endif
#ifndef IPHONE
while (1)
{
#ifdef __linux__
Sys_ConfigureFPU();
#endif
Com_Frame ();
}
#endif // !IPHONE
}
示例7: CG_LoadingClient
/*
===================
CG_LoadingClient
===================
*/
void CG_LoadingClient( int clientNum ) {
const char *info;
char *skin;
char personality[MAX_QPATH];
char model[MAX_QPATH];
char iconName[MAX_QPATH];
info = CG_ConfigString( CS_PLAYERS + clientNum );
if ( loadingPlayerIconCount < MAX_LOADING_PLAYER_ICONS ) {
Q_strncpyz( model, Info_ValueForKey( info, "model" ), sizeof( model ) );
skin = Q_strrchr( model, '/' );
if ( skin ) {
*skin++ = '\0';
} else {
skin = "default";
}
Com_sprintf( iconName, MAX_QPATH, "models/aw_players/%s/icon_%s.tga", model, skin );
loadingPlayerIcons[loadingPlayerIconCount] = trap_R_RegisterShaderNoMip( iconName );
if ( !loadingPlayerIcons[loadingPlayerIconCount] ) {
Com_sprintf( iconName, MAX_QPATH, "models/aw_players/%s/icon_%s.tga", DEFAULT_MODEL, "default" );
loadingPlayerIcons[loadingPlayerIconCount] = trap_R_RegisterShaderNoMip( iconName );
}
if ( loadingPlayerIcons[loadingPlayerIconCount] ) {
loadingPlayerIconCount++;
}
}
Q_strncpyz( personality, Info_ValueForKey( info, "n" ), sizeof(personality) );
Q_CleanStr( personality );
CG_LoadingString( personality );
}
示例8: skin
/*
===========
ForceClientSkin
Forces a client's skin (for teamplay)
===========
*/
static void ForceClientSkin( gclient_t *client, char *model, const char *skin ) {
char *p;
if ((p = Q_strrchr(model, '/')) != 0) {
*p = 0;
}
Q_strcat(model, MAX_QPATH, "/");
Q_strcat(model, MAX_QPATH, skin);
}
示例9: __MsgFunc_PyNetworkCls
// Message handler for PyNetworkCls
void __MsgFunc_PyNetworkCls( bf_read &msg )
{
char clientClass[PYNETCLS_BUFSIZE];
char networkName[PYNETCLS_BUFSIZE];
int iType = msg.ReadByte();
msg.ReadString(clientClass, PYNETCLS_BUFSIZE);
msg.ReadString(networkName, PYNETCLS_BUFSIZE);
DbgStrPyMsg( "__MsgFunc_PyNetworkCls: Registering Python network class message %d %s %s\n", iType, clientClass, networkName );
// Get module path
const char *pch = Q_strrchr( networkName, '.' );
if( !pch )
{
Warning( "Invalid python class name %s\n", networkName );
return;
}
int n = pch - networkName + 1;
char modulePath[PYNETCLS_BUFSIZE];
Q_strncpy( modulePath, networkName, n );
// Make sure the client class is imported
SrcPySystem()->Import( modulePath );
// Read which client class we are modifying
PyClientClassBase *p = FindPyClientClass( clientClass );
if( !p )
{
Warning( "__MsgFunc_PyNetworkCls: Invalid networked class %s\n", clientClass );
return;
}
// Set type
p->SetType( iType );
SetupClientClassRecv( p, iType );
// Read network class name
Q_strncpy( p->m_strPyNetworkedClassName, networkName, PYNETCLS_BUFSIZE );
// Attach if a network class exists
unsigned short lookup = m_NetworkClassDatabase.Find( networkName );
if ( lookup != m_NetworkClassDatabase.InvalidIndex() )
{
m_NetworkClassDatabase.Element(lookup)->AttachClientClass( p );
}
else
{
Warning( "__MsgFunc_PyNetworkCls: Invalid networked class %s\n", networkName );
}
}
示例10: PlayerIntroSound
/*
=================
PlayerIntroSound
=================
*/
static void PlayerIntroSound( const char *modelAndSkin ) {
char model[MAX_QPATH];
char *skin;
Q_strncpyz( model, modelAndSkin, sizeof( model ) );
skin = Q_strrchr( model, '/' );
if ( skin ) {
*skin++ = '\0';
} else {
skin = model;
}
if ( Q_stricmp( skin, "default" ) == 0 ) {
skin = model;
}
trap_SendConsoleCommand( EXEC_APPEND, va( "play sound/player/announce/%s.wav\n", skin ) );
}
示例11: PlayerIcon
/*
=================
PlayerIcon
=================
*/
static void PlayerIcon( const char *modelAndSkin, char *iconName, int iconNameMaxSize ) {
char *skin;
char model[MAX_QPATH];
Q_strncpyz( model, modelAndSkin, sizeof(model));
skin = Q_strrchr( model, '/' );
if ( skin ) {
*skin++ = '\0';
}
else {
skin = "default";
}
Com_sprintf(iconName, iconNameMaxSize, "models/players/%s/icon_%s.tga", model, skin );
if( !trap_R_RegisterShaderNoMip( iconName ) && Q_stricmp( skin, "default" ) != 0 ) {
Com_sprintf(iconName, iconNameMaxSize, "models/players/%s/icon_default.tga", model );
}
}
示例12: UDP_Init
int
UDP_Init ( void )
{
struct hostent *local;
char buff[MAXHOSTNAMELEN];
struct qsockaddr addr;
char *colon;
if (COM_CheckParm ("-noudp"))
return -1;
// determine my name & address
gethostname(buff, MAXHOSTNAMELEN);
if ((local = gethostbyname(buff)) == NULL)
myAddr = INADDR_LOOPBACK;
else
myAddr = *(int *)local->h_addr_list[0];
// if the quake hostname isn't set, set it to the machine name
if (Q_strcmp(hostname->string, "UNNAMED") == 0)
{
buff[15] = 0;
Cvar_Set (hostname, buff);
}
if ((net_controlsocket = UDP_OpenSocket (0)) == -1)
Sys_Error("UDP_Init: Unable to open control socket\n");
((struct sockaddr_in *)&broadcastaddr)->sin_family = AF_INET;
((struct sockaddr_in *)&broadcastaddr)->sin_addr.s_addr = INADDR_BROADCAST;
((struct sockaddr_in *)&broadcastaddr)->sin_port = htons(net_hostport);
UDP_GetSocketAddr (net_controlsocket, &addr);
Q_strcpy(my_tcpip_address, UDP_AddrToString (&addr));
colon = Q_strrchr (my_tcpip_address, ':');
if (colon)
*colon = 0;
Con_Printf("UDP Initialized\n");
tcpipAvailable = true;
return net_controlsocket;
}
示例13: Q_snprintf
//-----------------------------------------------------------------------------
// Finds all .VMT files in a particular directory
//-----------------------------------------------------------------------------
bool CMaterial::LoadMaterialsInDirectory( char const* pDirectoryName, int nDirectoryNameLen,
IMaterialEnumerator *pEnum, int nContext, int nFlags )
{
//Assert( Q_strnicmp( pDirectoryName, "materials", 9 ) == 0 );
char *pWildCard;
pWildCard = ( char * )stackalloc( nDirectoryNameLen + 7 );
Q_snprintf( pWildCard, nDirectoryNameLen + 7, "%s/*.vmt", pDirectoryName );
if ( !g_pFileSystem )
{
return false;
}
FileFindHandle_t findHandle;
const char *pFileName = g_pFullFileSystem->FindFirstEx( pWildCard, "GAME", &findHandle );
while( pFileName )
{
if( !g_pFullFileSystem->FindIsDirectory( findHandle ) )
{
// Strip off the 'materials/' part of the material name.
char *pFileNameWithPath;
int nAllocSize = nDirectoryNameLen + Q_strlen(pFileName) + 2;
pFileNameWithPath = (char *)stackalloc( nAllocSize );
Q_snprintf( pFileNameWithPath, nAllocSize, "%s/%s", &pDirectoryName[MATERIAL_PREFIX_LEN], pFileName );
Q_strnlwr( pFileNameWithPath, nAllocSize );
// Strip off the extension...
char *pExt = Q_strrchr( pFileNameWithPath, '.');
if (pExt)
*pExt = 0;
if (!pEnum->EnumMaterial( pFileNameWithPath, nContext ))
{
return false;
}
}
pFileName = g_pFullFileSystem->FindNext( findHandle );
}
g_pFullFileSystem->FindClose( findHandle );
return true;
}
示例14: S_Play
static void S_Play (void)
{
static int hash = 345;
int i;
char name[256];
sfx_t *sfx;
i = 1;
while (i < Cmd_Argc())
{
q_strlcpy(name, Cmd_Argv(i), sizeof(name));
if (!Q_strrchr(Cmd_Argv(i), '.'))
{
q_strlcat(name, ".wav", sizeof(name));
}
sfx = S_PrecacheSound(name);
S_StartSound(hash++, 0, sfx, listener_origin, 1.0, 1.0);
i++;
}
}
示例15: q_strlcpy
// recognize ip:port (based on ProQuake)
static const char *Strip_Port (const char *host)
{
static char noport[MAX_QPATH];
/* array size as in Host_Connect_f() */
char *p;
int port;
if (!host || !*host)
return host;
q_strlcpy (noport, host, sizeof(noport));
if ((p = Q_strrchr(noport, ':')) == NULL)
return host;
*p++ = '\0';
port = Q_atoi (p);
if (port > 0 && port < 65536 && port != net_hostport)
{
net_hostport = port;
Con_Printf("Port set to %d\n", net_hostport);
}
return noport;
}