本文整理汇总了C++中KeyValues::SetName方法的典型用法代码示例。如果您正苦于以下问题:C++ KeyValues::SetName方法的具体用法?C++ KeyValues::SetName怎么用?C++ KeyValues::SetName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KeyValues
的用法示例。
在下文中一共展示了KeyValues::SetName方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateWorldVertexTransitionPatchedMaterial
void CreateWorldVertexTransitionPatchedMaterial( const char *pOriginalMaterialName, const char *pPatchedMaterialName )
{
KeyValues *kv = LoadMaterialKeyValues( pOriginalMaterialName, 0 );
if( kv )
{
// change shader to Lightmappedgeneric (from worldvertextransition*)
kv->SetName( "LightmappedGeneric" );
// don't need no stinking $basetexture2 or any other second texture vars
RemoveKey( kv, "$basetexture2" );
RemoveKey( kv, "$bumpmap2" );
RemoveKey( kv, "$bumpframe2" );
RemoveKey( kv, "$basetexture2noenvmap" );
RemoveKey( kv, "$blendmodulatetexture" );
RemoveKey( kv, "$maskedblending" );
RemoveKey( kv, "$surfaceprop2" );
// If we didn't want a basetexture on the first texture in the blend, we don't want an envmap at all.
KeyValues *basetexturenoenvmap = kv->FindKey( "$BASETEXTURENOENVMAP" );
if( basetexturenoenvmap->GetInt() )
{
RemoveKey( kv, "$envmap" );
}
Warning( "Patching WVT material: %s\n", pPatchedMaterialName );
WriteMaterialKeyValuesToPak( pPatchedMaterialName, kv );
}
}
示例2: LoadControlSettings
// Load the control settings
void CBaseModFrame::LoadControlSettings( const char *dialogResourceName, const char *pathID, KeyValues *pPreloadedKeyValues, KeyValues *pConditions )
{
// Use the keyvalues they passed in or load them using special hook for flyouts generation
KeyValues *rDat = pPreloadedKeyValues;
if ( !rDat )
{
// load the resource data from the file
rDat = new KeyValues(dialogResourceName);
// check the skins directory first, if an explicit pathID hasn't been set
bool bSuccess = false;
if ( !IsX360() && !pathID )
{
bSuccess = rDat->LoadFromFile( g_pFullFileSystem, dialogResourceName, "SKIN" );
}
if ( !bSuccess )
{
bSuccess = rDat->LoadFromFile( g_pFullFileSystem, dialogResourceName, pathID );
}
if ( bSuccess )
{
if ( IsX360() )
{
rDat->ProcessResolutionKeys( surface()->GetResolutionKey() );
}
if ( pConditions && pConditions->GetFirstSubKey() )
{
GetBuildGroup()->ProcessConditionalKeys( rDat, pConditions );
}
}
}
// Find the auto-generated-chapter hook
if ( KeyValues *pHook = rDat->FindKey( "FlmChapterXXautogenerated" ) )
{
const int numMaxAutogeneratedFlyouts = 20;
for ( int k = 1; k <= numMaxAutogeneratedFlyouts; ++ k )
{
KeyValues *pFlyoutInfo = pHook->MakeCopy();
CFmtStr strName( "FlmChapter%d", k );
pFlyoutInfo->SetName( strName );
pFlyoutInfo->SetString( "fieldName", strName );
pFlyoutInfo->SetString( "ResourceFile", CFmtStr( "FlmChapterXXautogenerated_%d/%s", k, pHook->GetString( "ResourceFile" ) ) );
rDat->AddSubKey( pFlyoutInfo );
}
rDat->RemoveSubKey( pHook );
pHook->deleteThis();
}
BaseClass::LoadControlSettings( dialogResourceName, pathID, rDat, pConditions );
if ( rDat != pPreloadedKeyValues )
{
rDat->deleteThis();
}
}
示例3: df_SaveDump_File
/*
CUtlVector< SimpleTexture* > hList_Textures;
CUtlVector< SimpleCombo* > hList_Combos;
CUtlVector< SimpleEnvConstant* > hList_EConstants;
*/
void df_SaveDump_File( const char *canvasname, const BasicShaderCfg_t &shader )
{
KeyValues *pKV = new KeyValues( canvasname );
char _path[MAX_PATH];
Q_snprintf( _path, MAX_PATH, "%s/%s.dump", ::GetDumpDirectory(), canvasname );
Q_FixSlashes( _path );
pKV->SetString( "vs_name", shader.ProcVSName );
pKV->SetString( "ps_name", shader.ProcPSName );
pKV->SetString( "shader_filename", shader.Filename );
pKV->SetString( GetDumpVersion_KeyName(), GetDumpVersion_Current() );
pKV->SetInt( "i_sm", shader.iShaderModel );
pKV->SetInt( "i_cull", shader.iCullmode );
pKV->SetInt( "i_ablend", shader.iAlphablendmode );
pKV->SetFloat( "fl_atestref", shader.flAlphaTestRef );
pKV->SetInt( "i_dtest", shader.iDepthtestmode );
pKV->SetInt( "i_dwrite", shader.iDepthwritemode );
pKV->SetInt( "i_srgbw", shader.bsRGBWrite ? 1 : 0 );
pKV->SetInt( "i_vfmt_flags", shader.iVFMT_flags );
pKV->SetInt( "i_vfmt_texcoords", shader.iVFMT_numTexcoords );
pKV->SetInt( "i_vfmt_udata", shader.iVFMT_numUserData );
for ( int i = 0; i < 3; i++ )
{
char tmp[48];
Q_snprintf( tmp, sizeof(tmp), "i_vfmt_texcoordDim_%i", i );
pKV->SetInt( tmp, shader.iVFMT_texDim[i] );
}
pKV->SetInt( "i_vlit", shader.bVertexLighting );
pKV->SetInt( "i_vrefract", shader.bRefractionSupport );
KeyValues *pKVIdentVS = __AllocKV_Identifiers( shader.pVS_Identifiers );
pKVIdentVS->SetName( "identifiers_VS" );
pKV->AddSubKey( pKVIdentVS );
KeyValues *pKVIdentPS = __AllocKV_Identifiers( shader.pPS_Identifiers );
pKVIdentPS->SetName( "identifiers_PS" );
pKV->AddSubKey( pKVIdentPS );
pKV->SaveToFile( g_pFullFileSystem, _path, "MOD" );
pKV->deleteThis();
}
示例4: SetListCellColors
void CBaseMapsPage::SetListCellColors(MapData *pData, KeyValues *pKvInto)
{
KeyValues *pCellColor = new KeyValues("cellcolor");
// KeyValues *pCellBGColor = new KeyValues("cellbgcolor");
KeyValues *pSub = pCellColor->CreateNewKey();
pSub->SetName(CFmtStr("%i", HEADER_MAP_NAME));
pSub->SetColor("color", pData->m_bInLibrary ? COLOR_BLUE : COLOR_WHITE);
// pCellBGColor->AddSubKey(pSub->MakeCopy());
pKvInto->AddSubKey(pCellColor);
// pKvInto->AddSubKey(pCellBGColor);
}
示例5: SetupSession
//---------------------------------------------------------------------
// Purpose: Send all properties and contexts to the matchmaking session
//---------------------------------------------------------------------
void CSessionOptionsDialog::SetupSession( void )
{
KeyValues *pKeys = new KeyValues( "SessionKeys" );
// Send user-selected properties and contexts
for ( int i = 0; i < m_Menu.GetItemCount(); ++i )
{
COptionsItem *pItem = dynamic_cast< COptionsItem* >( m_Menu.GetItem( i ) );
if ( !pItem )
{
continue;
}
const sessionProperty_t &prop = pItem->GetActiveOption();
KeyValues *pProperty = pKeys->CreateNewKey();
pProperty->SetName( prop.szID );
pProperty->SetInt( "type", prop.nType );
pProperty->SetString( "valuestring", prop.szValue );
pProperty->SetString( "valuetype", prop.szValueType );
pProperty->SetInt( "optionindex", pItem->GetActiveOptionIndex() );
}
// Send contexts and properties parsed from the resource file
for ( int i = 0; i < m_SessionProperties.Count(); ++i )
{
const sessionProperty_t &prop = m_SessionProperties[i];
KeyValues *pProperty = pKeys->CreateNewKey();
pProperty->SetName( prop.szID );
pProperty->SetInt( "type", prop.nType );
pProperty->SetString( "valuestring", prop.szValue );
pProperty->SetString( "valuetype", prop.szValueType );
}
// Matchmaking will make a copy of these keys
matchmaking->SetSessionProperties( pKeys );
pKeys->deleteThis();
}
示例6: ProcessResolutionKeys
bool KeyValues::ProcessResolutionKeys(const char *pResString)
{
if (!pResString)
return false;
KeyValues *pSubKey = GetFirstSubKey();
if (!pSubKey)
return false;
for ( ; pSubKey != NULL; pSubKey = pSubKey->GetNextKey())
{
pSubKey->ProcessResolutionKeys(pResString);
if (Q_stristr(pSubKey->GetName(), pResString) != NULL)
{
char normalKeyName[128];
V_strncpy(normalKeyName, pSubKey->GetName(), sizeof(normalKeyName));
char *pString = Q_stristr(normalKeyName, pResString);
if (pString && !Q_stricmp(pString, pResString))
{
*pString = '\0';
KeyValues *pKey = FindKey(normalKeyName);
if (pKey)
{
RemoveSubKey(pKey);
}
pSubKey->SetName(normalKeyName);
}
}
}
return true;
}
示例7: smn_KvSetSectionName
static cell_t smn_KvSetSectionName(IPluginContext *pCtx, const cell_t *params)
{
Handle_t hndl = static_cast<Handle_t>(params[1]);
HandleError herr;
HandleSecurity sec;
char *name;
KeyValueStack *pStk;
sec.pOwner = NULL;
sec.pIdentity = g_pCoreIdent;
if ((herr=handlesys->ReadHandle(hndl, g_KeyValueType, &sec, (void **)&pStk))
!= HandleError_None)
{
return pCtx->ThrowNativeError("Invalid key value handle %x (error %d)", hndl, herr);
}
pCtx->LocalToString(params[2], &name);
KeyValues *pSection = pStk->pCurRoot.front();
pSection->SetName(name);
return 1;
}
示例8: CreateInPlaceFromData
bool CCompiledKeyValuesReader::CreateInPlaceFromData( KeyValues& head, const FileInfo_t& info )
{
int first = info.nFirstIndex;
int num = info.nCount;
KeyValues *root = NULL;
KeyValues *tail = NULL;
CUtlRBTree< CreateHelper_t, int > helper( 0, 0, CreateHelper_t::Less );
for ( int i = 0; i < num; ++i )
{
int offset = first + i;
KVInfo_t& info = m_Data[ offset ];
if ( info.GetParent() != -1 )
{
CreateHelper_t search;
search.index = info.GetParent();
int idx = helper.Find( search );
if ( idx == helper.InvalidIndex() )
{
return false;
}
KeyValues *parent = helper[ idx ].kv;
Assert( parent );
KeyValues *sub = new KeyValues( m_StringTable.Lookup( info.key ) );
if ( !info.IsSubTree() )
{
sub->SetStringValue(m_StringTable.Lookup( info.value ) );
}
if ( !parent->GetFirstSubKey() )
{
parent->AddSubKey( sub );
}
else
{
KeyValues *last = helper[ idx ].tail;
last->SetNextKey( sub );
}
helper[ idx ].tail = sub;
CreateHelper_t insert;
insert.index = offset;
insert.kv = sub;
insert.tail = NULL;
helper.Insert( insert );
}
else
{
if ( !root )
{
root = &head;
root->SetName( m_StringTable.Lookup( info.key ) );
tail = root;
CreateHelper_t insert;
insert.index = offset;
insert.kv = root;
insert.tail = NULL;
helper.Insert( insert );
}
else
{
CreateHelper_t insert;
insert.index = offset;
insert.kv = new KeyValues( m_StringTable.Lookup( info.key ) );
insert.tail = NULL;
helper.Insert( insert );
tail->SetNextKey( insert.kv );
tail = insert.kv;
}
}
}
return true;
}
示例9: ReadAsBinary
bool KeyValues::ReadAsBinary(CUtlBuffer &buffer)
{
if (buffer.IsText())
return false;
if (!buffer.IsValid())
return false;
RemoveEverything();
Init();
char token[KEYVALUES_TOKEN_SIZE];
KeyValues *dat = this;
types_t type = (types_t)buffer.GetUnsignedChar();
while (true)
{
if (type == TYPE_NUMTYPES)
break;
dat->m_iDataType = type;
buffer.GetString(token, KEYVALUES_TOKEN_SIZE - 1);
token[KEYVALUES_TOKEN_SIZE - 1] = 0;
dat->SetName(token);
switch (type)
{
case TYPE_NONE:
{
dat->m_pSub = new KeyValues("");
dat->m_pSub->ReadAsBinary(buffer);
break;
}
case TYPE_STRING:
{
buffer.GetString(token, KEYVALUES_TOKEN_SIZE - 1);
token[KEYVALUES_TOKEN_SIZE - 1] = 0;
int len = Q_strlen(token);
dat->m_sValue = new char[len + 1];
Q_memcpy(dat->m_sValue, token, len + 1);
break;
}
case TYPE_WSTRING:
{
Assert(!"TYPE_WSTRING");
break;
}
case TYPE_INT:
{
dat->m_iValue = buffer.GetInt();
break;
}
case TYPE_UINT64:
{
dat->m_sValue = new char[sizeof(uint64)];
*((double *)dat->m_sValue) = buffer.GetDouble();
}
case TYPE_FLOAT:
{
dat->m_flValue = buffer.GetFloat();
break;
}
case TYPE_COLOR:
{
dat->m_Color[0] = buffer.GetUnsignedChar();
dat->m_Color[1] = buffer.GetUnsignedChar();
dat->m_Color[2] = buffer.GetUnsignedChar();
dat->m_Color[3] = buffer.GetUnsignedChar();
break;
}
case TYPE_PTR:
{
dat->m_pValue = (void *)buffer.GetUnsignedInt();
}
default:
{
break;
}
}
if (!buffer.IsValid())
return false;
type = (types_t)buffer.GetUnsignedChar();
if (type == TYPE_NUMTYPES)
break;
//.........这里部分代码省略.........
示例10: LoadFromBuffer
bool KeyValues::LoadFromBuffer(char const *resourceName, CUtlBuffer &buf, IFileSystem *pFileSystem, const char *pPathID)
{
KeyValues *pPreviousKey = NULL;
KeyValues *pCurrentKey = this;
CUtlVector<KeyValues *> includedKeys;
CUtlVector<KeyValues *> baseKeys;
bool wasQuoted;
g_KeyValuesErrorStack.SetFilename(resourceName);
do
{
const char *s = ReadToken(buf, wasQuoted);
if (!buf.IsValid() || !s || *s == 0)
break;
if (!Q_stricmp(s, "#include"))
{
s = ReadToken(buf, wasQuoted);
if (!s || *s == 0)
{
g_KeyValuesErrorStack.ReportError("#include is NULL ");
}
else
{
ParseIncludedKeys(resourceName, s, pFileSystem, pPathID, includedKeys);
}
continue;
}
else if (!Q_stricmp(s, "#base"))
{
s = ReadToken(buf, wasQuoted);
if (!s || *s == 0)
{
g_KeyValuesErrorStack.ReportError("#base is NULL ");
}
else
{
ParseIncludedKeys(resourceName, s, pFileSystem, pPathID, baseKeys);
}
continue;
}
if (!pCurrentKey)
{
pCurrentKey = new KeyValues(s);
Assert(pCurrentKey);
pCurrentKey->UsesEscapeSequences(m_bHasEscapeSequences != 0);
if (pPreviousKey)
{
pPreviousKey->SetNextKey(pCurrentKey);
}
}
else
{
pCurrentKey->SetName(s);
}
s = ReadToken(buf, wasQuoted);
if (s && *s == '{' && !wasQuoted)
{
pCurrentKey->RecursiveLoadFromBuffer(resourceName, buf);
}
else
{
g_KeyValuesErrorStack.ReportError("LoadFromBuffer: missing {");
}
pPreviousKey = pCurrentKey;
pCurrentKey = NULL;
}
while (buf.IsValid());
AppendIncludedKeys(includedKeys);
{
for (int i = includedKeys.Count() - 1; i > 0; i--)
{
KeyValues *kv = includedKeys[i];
kv->deleteThis();
}
}
MergeBaseKeys(baseKeys);
{
for (int i = baseKeys.Count() - 1; i >= 0; i--)
{
KeyValues *kv = baseKeys[i];
kv->deleteThis();
}
}
//.........这里部分代码省略.........
示例11: ReloadGameShaders
void ReloadGameShaders( GenericShaderData *data, char **pszMaterialList, int iNumMaterials )
{
const bool bIsOverriding = !!data;
char *CanvasName = NULL;
if ( bIsOverriding )
{
const char *ShaderName = data->name;
int SwapIndex = ::gProcShaderCTRL->FindPreloadShader( ShaderName );
if ( SwapIndex < 0 )
{
const char *pszSearch = Q_stristr( data->name, "_" );
if ( pszSearch )
{
const char *ShaderName_Small = pszSearch + 1;
SwapIndex = ::gProcShaderCTRL->FindPreloadShader( ShaderName_Small );
}
}
CanvasName = new char[ Q_strlen( ShaderName ) + 1 ];
Q_strcpy( CanvasName, ShaderName );
BasicShaderCfg_t *SwapData = new BasicShaderCfg_t( *data->shader );
Assert( !SwapData->CanvasName );
SwapData->CanvasName = CanvasName;
// build shader names
static unsigned int _HackyIndexIncrement = 0;
{
int len = Q_strlen( SwapData->ProcPSName ) + 2 + 7;
char *uniquifyShader = new char[len];
Q_snprintf( uniquifyShader, len, "%06X_%s", _HackyIndexIncrement, SwapData->ProcPSName );
delete [] SwapData->ProcPSName;
SwapData->ProcPSName = uniquifyShader;
}
{
int len = Q_strlen( SwapData->ProcVSName ) + 2 + 7;
char *uniquifyShader = new char[len];
Q_snprintf( uniquifyShader, len, "%06X_%s", _HackyIndexIncrement, SwapData->ProcVSName );
delete [] SwapData->ProcVSName;
SwapData->ProcVSName = uniquifyShader;
}
char *OldName = data->name;
char targetname[MAX_PATH];
Q_snprintf( targetname, MAX_PATH, "%06X_%s", _HackyIndexIncrement, OldName );
// copy vcs files
char __path_compiler[MAX_PATH];
char __path_engine[MAX_PATH];
ComposeShaderPath_Compiled( data, false, true, __path_compiler, MAX_PATH );
data->name = targetname;
ComposeShaderPath_CompiledEngine( data, false, true, __path_engine, MAX_PATH );
EngineCopy( __path_compiler, __path_engine );
data->name = OldName;
ComposeShaderPath_Compiled( data, true, true, __path_compiler, MAX_PATH );
data->name = targetname;
ComposeShaderPath_CompiledEngine( data, true, true, __path_engine, MAX_PATH );
EngineCopy( __path_compiler, __path_engine );
data->name = OldName;
_HackyIndexIncrement++;
if ( SwapIndex >= 0 )
{
// swap shader data
BasicShaderCfg_t *trash = (BasicShaderCfg_t*)gProcShaderCTRL->SwapPreloadShader( SwapIndex, SwapData );
delete trash;
}
else
gProcShaderCTRL->AddPreloadShader( SwapData );
}
// reload materials
if ( pszMaterialList && iNumMaterials )
{
for ( int i = 0; i < iNumMaterials; i++ )
{
IMaterial *pMat = materials->FindMaterial( pszMaterialList[i], TEXTURE_GROUP_MODEL );
if ( IsErrorMaterial( pMat ) )
continue;
KeyValues *pKV = new KeyValues( "" );
char tmppath[ MAX_PATH ];
Q_snprintf( tmppath, MAX_PATH, "materials/%s.vmt", pszMaterialList[i] );
if ( !pKV->LoadFromFile( g_pFullFileSystem, tmppath ) )
{
pKV->deleteThis();
continue;
}
if ( bIsOverriding )
{
pKV->SetName( "EDITOR_SHADER" );
pKV->SetString( "$SHADERNAME", CanvasName );
const char *curEnvmap = pKV->GetString( "$envmap" );
//.........这里部分代码省略.........