diff --git a/r5dev/materialsystem/cmaterialsystem.cpp b/r5dev/materialsystem/cmaterialsystem.cpp index eee5e033..1c765375 100644 --- a/r5dev/materialsystem/cmaterialsystem.cpp +++ b/r5dev/materialsystem/cmaterialsystem.cpp @@ -113,6 +113,28 @@ bool IsMaterialInternal(void** pCandidate) return false; } +#ifndef DEDICATED +//----------------------------------------------------------------------------- +// Purpose: finds a material +// Input : *pMatSys - +// *pMaterialName - +// nMaterialType - +// nUnk - +// bComplain - +// Output : pointer to material +//----------------------------------------------------------------------------- +CMaterialGlue* CMaterialSystem::FindMaterialEx(CMaterialSystem* pMatSys, const char* pMaterialName, uint8_t nMaterialType, int nUnk, bool bComplain) +{ + CMaterialGlue* pMaterial = CMaterialSystem__FindMaterialEx(pMatSys, pMaterialName, nMaterialType, nUnk, bComplain); + + if ((bComplain || mat_alwaysComplain->GetBool()) && pMaterial->IsErrorMaterial()) + { + Error(eDLL_T::MS, NO_ERROR, "Material \"%s\" not found; replacing with \"%s\".\n", pMaterialName, pMaterial->GetName()); + } + return pMaterial; +} +#endif // !DEDICATED + /////////////////////////////////////////////////////////////////////////////// void CMaterialSystem_Attach() { diff --git a/r5dev/tier1/IConVar.cpp b/r5dev/tier1/IConVar.cpp index b584090b..f2690710 100644 --- a/r5dev/tier1/IConVar.cpp +++ b/r5dev/tier1/IConVar.cpp @@ -192,7 +192,8 @@ void ConVar::Init(void) const //------------------------------------------------------------------------- // MATERIALSYSTEM | #ifndef DEDICATED - mat_showdxoutput = ConVar::Create("mat_showdxoutput", "0", FCVAR_DEVELOPMENTONLY, "Shows debug output for the DirectX system.", false, 0.f, false, 0.f, nullptr, nullptr); + mat_showdxoutput = ConVar::Create("mat_showdxoutput", "0", FCVAR_DEVELOPMENTONLY | FCVAR_MATERIAL_SYSTEM_THREAD, "Shows debug output for the DirectX system.", false, 0.f, false, 0.f, nullptr, nullptr); + mat_alwaysComplain = ConVar::Create("mat_alwaysComplain", "0", FCVAR_RELEASE | FCVAR_MATERIAL_SYSTEM_THREAD, "Always complain when a material is missing.", false, 0.f, false, 0.f, nullptr, nullptr); #endif // !DEDICATED //------------------------------------------------------------------------- // SQUIRREL | diff --git a/r5dev/tier1/cvar.cpp b/r5dev/tier1/cvar.cpp index 1d4f8258..05490b51 100644 --- a/r5dev/tier1/cvar.cpp +++ b/r5dev/tier1/cvar.cpp @@ -164,6 +164,7 @@ ConVar* fs_packedstore_compression_level = nullptr; // MATERIALSYSTEM | #ifndef DEDICATED ConVar* mat_showdxoutput = nullptr; +ConVar* mat_alwaysComplain = nullptr; #endif // !DEDICATED //----------------------------------------------------------------------------- // SQUIRREL | diff --git a/r5dev/tier1/cvar.h b/r5dev/tier1/cvar.h index 612e8c4f..96434f20 100644 --- a/r5dev/tier1/cvar.h +++ b/r5dev/tier1/cvar.h @@ -160,6 +160,7 @@ extern ConVar* fs_packedstore_compression_level; // MATERIALSYSTEM | #ifndef DEDICATED extern ConVar* mat_showdxoutput; +extern ConVar* mat_alwaysComplain; #endif // !DEDICATED //------------------------------------------------------------------------- // SQUIRREL |