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.
60 lines
2.0 KiB
60 lines
2.0 KiB
//========= 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
|
|
|