本文整理汇总了C++中ConVar::IsFlagSet方法的典型用法代码示例。如果您正苦于以下问题:C++ ConVar::IsFlagSet方法的具体用法?C++ ConVar::IsFlagSet怎么用?C++ ConVar::IsFlagSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConVar
的用法示例。
在下文中一共展示了ConVar::IsFlagSet方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RebuildCompletionList
//-----------------------------------------------------------------------------
// Purpose: rebuilds the list of possible completions from the current entered text
//-----------------------------------------------------------------------------
void CConsolePanel::RebuildCompletionList(const char *text)
{
ClearCompletionList();
// we need the length of the text for the partial string compares
int len = Q_strlen(text);
if ( len < 1 )
{
// Fill the completion list with history instead
for ( int i = 0 ; i < m_CommandHistory.Count(); i++ )
{
CHistoryItem *item = &m_CommandHistory[ i ];
CompletionItem *comp = new CompletionItem();
m_CompletionList.AddToTail( comp );
comp->m_bIsCommand = false;
comp->m_pCommand = NULL;
comp->m_pText = new CHistoryItem( *item );
}
return;
}
bool bNormalBuild = true;
// if there is a space in the text, and the command isn't of the type to know how to autocomplet, then command completion is over
const char *space = strstr( text, " " );
if ( space )
{
ConCommand *pCommand = FindAutoCompleteCommmandFromPartial( text );
if ( !pCommand )
return;
bNormalBuild = false;
CUtlVector< CUtlString > commands;
int count = pCommand->AutoCompleteSuggest( text, commands );
Assert( count <= COMMAND_COMPLETION_MAXITEMS );
int i;
for ( i = 0; i < count; i++ )
{
// match found, add to list
CompletionItem *item = new CompletionItem();
m_CompletionList.AddToTail( item );
item->m_bIsCommand = false;
item->m_pCommand = NULL;
item->m_pText = new CHistoryItem( commands[ i ].String() );
}
}
if ( bNormalBuild )
{
// look through the command list for all matches
ConCommandBase const *cmd = (ConCommandBase const *)cvar->GetCommands();
while (cmd)
{
if ( cmd->IsFlagSet( FCVAR_DEVELOPMENTONLY ) || cmd->IsFlagSet( FCVAR_HIDDEN ) )
{
cmd = cmd->GetNext();
continue;
}
if ( !strnicmp(text, cmd->GetName(), len))
{
// match found, add to list
CompletionItem *item = new CompletionItem();
m_CompletionList.AddToTail( item );
item->m_pCommand = (ConCommandBase *)cmd;
const char *tst = cmd->GetName();
if ( !cmd->IsCommand() )
{
item->m_bIsCommand = false;
ConVar *var = ( ConVar * )cmd;
ConVar_ServerBounded *pBounded = dynamic_cast<ConVar_ServerBounded*>( var );
if ( pBounded || var->IsFlagSet( FCVAR_NEVER_AS_STRING ) )
{
char strValue[512];
int intVal = pBounded ? pBounded->GetInt() : var->GetInt();
float floatVal = pBounded ? pBounded->GetFloat() : var->GetFloat();
if ( floatVal == intVal )
Q_snprintf( strValue, sizeof( strValue ), "%d", intVal );
else
Q_snprintf( strValue, sizeof( strValue ), "%f", floatVal );
item->m_pText = new CHistoryItem( var->GetName(), strValue );
}
else
{
item->m_pText = new CHistoryItem( var->GetName(), var->GetString() );
}
}
else
{
item->m_bIsCommand = true;
item->m_pText = new CHistoryItem( tst );
}
//.........这里部分代码省略.........
示例2: ConVar_PrintDescription
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void ConVar_PrintDescription( const ConCommandBase *pVar )
{
bool bMin, bMax;
float fMin, fMax;
const char *pStr;
assert( pVar );
Color clr;
clr.SetColor( 255, 100, 100, 255 );
if ( !pVar->IsCommand() )
{
ConVar *var = ( ConVar * )pVar;
const ConVar_ServerBounded *pBounded = dynamic_cast<const ConVar_ServerBounded*>( var );
bMin = var->GetMin( fMin );
bMax = var->GetMax( fMax );
const char *value = NULL;
char tempVal[ 32 ];
if ( pBounded || var->IsFlagSet( FCVAR_NEVER_AS_STRING ) )
{
value = tempVal;
int intVal = pBounded ? pBounded->GetInt() : var->GetInt();
float floatVal = pBounded ? pBounded->GetFloat() : var->GetFloat();
if ( fabs( (float)intVal - floatVal ) < 0.000001 )
{
Q_snprintf( tempVal, sizeof( tempVal ), "%d", intVal );
}
else
{
Q_snprintf( tempVal, sizeof( tempVal ), "%f", floatVal );
}
}
else
{
value = var->GetString();
}
if ( value )
{
ConColorMsg( clr, "\"%s\" = \"%s\"", var->GetName(), value );
if ( stricmp( value, var->GetDefault() ) )
{
ConMsg( " ( def. \"%s\" )", var->GetDefault() );
}
}
if ( bMin )
{
ConMsg( " min. %f", fMin );
}
if ( bMax )
{
ConMsg( " max. %f", fMax );
}
ConMsg( "\n" );
// Handled virtualized cvars.
if ( pBounded && fabs( pBounded->GetFloat() - var->GetFloat() ) > 0.0001f )
{
ConColorMsg( clr, "** NOTE: The real value is %.3f but the server has temporarily restricted it to %.3f **\n",
var->GetFloat(), pBounded->GetFloat() );
}
}
else
{
ConCommand *var = ( ConCommand * )pVar;
ConColorMsg( clr, "\"%s\"\n", var->GetName() );
}
ConVar_PrintFlags( pVar );
pStr = pVar->GetHelpText();
if ( pStr && pStr[0] )
{
ConMsg( " - %s\n", pStr );
}
}
示例3: ApplyGameSettings
void CServerGameDLL::ApplyGameSettings( KeyValues *pKV )
{
if ( !pKV )
return;
// Fix the game settings request when a generic request for
// map launch comes in (it might be nested under reservation
// processing)
bool bAlreadyLoadingMap = false;
char const *szBspName = NULL;
const char *pGameDir = COM_GetModDirectory();
if ( !Q_stricmp( pKV->GetName(), "::ExecGameTypeCfg" ) )
{
if ( !engine )
return;
char const *szNewMap = pKV->GetString( "map/mapname", "" );
if ( !szNewMap || !*szNewMap )
return;
KeyValues *pLaunchOptions = engine->GetLaunchOptions();
if ( !pLaunchOptions )
return;
if ( FindLaunchOptionByValue( pLaunchOptions, "changelevel" ) ||
FindLaunchOptionByValue( pLaunchOptions, "changelevel2" ) )
return;
if ( FindLaunchOptionByValue( pLaunchOptions, "map_background" ) )
{
return;
}
bAlreadyLoadingMap = true;
if ( FindLaunchOptionByValue( pLaunchOptions, "reserved" ) )
{
// We are already reserved, but we still need to let the engine
// baseserver know how many human slots to allocate
pKV->SetInt( "members/numSlots", g_bOfflineGame ? 1 : 8 );
return;
}
pKV->SetName( pGameDir );
}
if ( Q_stricmp( pKV->GetName(), pGameDir ) || bAlreadyLoadingMap )
return;
//g_bOfflineGame = pKV->GetString( "map/offline", NULL ) != NULL;
g_bOfflineGame = !Q_stricmp( pKV->GetString( "system/network", "LIVE" ), "offline" );
//Msg( "GameInterface reservation payload:\n" );
//KeyValuesDumpAsDevMsg( pKV );
// Vitaliy: Disable cheats as part of reservation in case they were enabled (unless we are on Steam Beta)
if ( sv_force_transmit_ents.IsFlagSet( FCVAR_DEVELOPMENTONLY ) && // any convar with FCVAR_DEVELOPMENTONLY flag will be sufficient here
sv_cheats && sv_cheats->GetBool() )
{
sv_cheats->SetValue( 1 );
}
// Between here and the last part: apply settings...
char const *szMapCommand = pKV->GetString( "map/mapcommand", "map" );
const char *szMode = pKV->GetString( "game/mode", "sdk" );
#if 0
char const *szGameMode = pKV->GetString( "game/mode", "" );
if ( szGameMode && *szGameMode )
{
extern ConVar mp_gamemode;
mp_gamemode.SetValue( szGameMode );
}
#endif // 0
// LAUNCH GAME
if ( !Q_stricmp( szMode, "sdk" ) )
{
szBspName = pKV->GetString( "game/mission", NULL );
if ( !szBspName )
return;
engine->ServerCommand( CFmtStr( "%s %s reserved\n",
szMapCommand,
szBspName ) );
}
else
{
bool bSuccess = false;
#ifndef DISABLE_PYTHON
try {
bSuccess = bp::extract<bool>(gamemgr.attr("_ApplyGameSettings")( PyKeyValuesToDict( pKV ) ));
} catch( boost::python::error_already_set & ) {
Warning("ApplyGameSettings: Error occurred while letting Python apply game settings\n");
PyErr_Print();
}
#endif // DISABLE_PYTHON
//.........这里部分代码省略.........