You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
61 lines
2.0 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef MATERIALPATCH_H
|
||
|
#define MATERIALPATCH_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "utilmatlib.h"
|
||
|
|
||
|
struct MaterialPatchInfo_t
|
||
|
{
|
||
|
const char *m_pKey;
|
||
|
const char *m_pRequiredOriginalValue; // NULL if you don't require one.
|
||
|
const char *m_pValue;
|
||
|
MaterialPatchInfo_t()
|
||
|
{
|
||
|
memset( this, 0, sizeof( *this ) );
|
||
|
}
|
||
|
};
|
||
|
|
||
|
enum MaterialPatchType_t
|
||
|
{
|
||
|
PATCH_INSERT = 0, // Add the key no matter what
|
||
|
PATCH_REPLACE, // Add the key only if it exists
|
||
|
};
|
||
|
|
||
|
void CreateMaterialPatch( const char *pOriginalMaterialName, const char *pNewMaterialName,
|
||
|
const char *pNewKey, const char *pNewValue, MaterialPatchType_t nPatchType );
|
||
|
|
||
|
// A version which allows you to use multiple key values
|
||
|
void CreateMaterialPatch( const char *pOriginalMaterialName, const char *pNewMaterialName,
|
||
|
int nKeys, const MaterialPatchInfo_t *pInfo, MaterialPatchType_t nPatchType );
|
||
|
|
||
|
// This gets a keyvalue from the *unpatched* version of the passed-in material
|
||
|
bool GetValueFromMaterial( const char *pMaterialName, const char *pKey, char *pValue, int len );
|
||
|
|
||
|
// Gets a keyvalue from a *patched* material
|
||
|
bool GetValueFromPatchedMaterial( const char *pMaterialName, const char *pKey, char *pValue, int len );
|
||
|
|
||
|
const char *GetOriginalMaterialNameForPatchedMaterial( const char *pPatchMaterialName );
|
||
|
|
||
|
MaterialSystemMaterial_t FindOriginalMaterial( const char *materialName, bool *pFound, bool bComplain = true );
|
||
|
|
||
|
bool DoesMaterialHaveKeyValuePair( const char *pMaterialName, const char *pKeyName, const char *pSearchValue );
|
||
|
bool DoesMaterialHaveKey( const char *pMaterialName, const char *pKeyName );
|
||
|
|
||
|
enum LoadMaterialKeyValuesFlags_t
|
||
|
{
|
||
|
LOAD_MATERIAL_KEY_VALUES_FLAGS_EXPAND_PATCH = 1,
|
||
|
};
|
||
|
|
||
|
KeyValues *LoadMaterialKeyValues( const char *pMaterialName, unsigned int nFlags );
|
||
|
void WriteMaterialKeyValuesToPak( const char *pMaterialName, KeyValues *kv );
|
||
|
|
||
|
#endif // MATERIALPATCH_H
|