Code:
void visuals::misc::night_mode()
{
static float r;
static float g;
static float b;
if (g_Options.misc_nightmode.get_bool())
{
if (!done)
{
char m_szLevelNameShort[65];
sprintf_s(m_szLevelNameShort, sizeof(m_szLevelNameShort) - 1, "materials_%s.txt", g_ClientState->m_szLevelNameShort);
auto s = std::ofstream(m_szLevelNameShort);
std::ostream& stream = s;
static auto sv_skyname = g_CVar->FindVar("sv_skyname");
static auto r_DrawSpecificStaticProp = g_CVar->FindVar("r_DrawSpecificStaticProp");
r_DrawSpecificStaticProp->SetValue(1);
sv_skyname->SetValue("sky_csgo_night02");
for (MaterialHandle_t i = g_MatSystem->FirstMaterial(); i != g_MatSystem->InvalidMaterial(); i = g_MatSystem->NextMaterial(i))
{
IMaterial *pMaterial = g_MatSystem->GetMaterial(i);
if (!pMaterial)
continue;
const char* group = pMaterial->GetTextureGroupName();
const char* name = pMaterial->GetName();
stream << name << '\n';
if (strstr(group, TEXTURE_GROUP_WORLD))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 0.10, g * 0.10, b * 0.10);
}
if (strstr(group, "StaticProp"))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 0.30, g * 0.30, b * 0.30);
}
if (strstr(name, "models/props/de_dust/palace_bigdome"))
{
pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
}
if (strstr(name, "models/props/de_dust/palace_pillars"))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 0.30, g * 0.30, b * 0.30);
}
if (strstr(group, TEXTURE_GROUP_PARTICLE))
{
pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
}
done = true;
}
}
}
else
{
if (done)
{
for (MaterialHandle_t i = g_MatSystem->FirstMaterial(); i != g_MatSystem->InvalidMaterial(); i = g_MatSystem->NextMaterial(i))
{
IMaterial *pMaterial = g_MatSystem->GetMaterial(i);
if (!pMaterial)
continue;
const char* group = pMaterial->GetTextureGroupName();
const char* name = pMaterial->GetName();
if (strstr(group, TEXTURE_GROUP_WORLD))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 10, g * 10, b * 10);
}
if (strstr(group, "StaticProp"))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 3.33335, g * 3.33335, b * 3.33335);
}
if (strstr(name, "models/props/de_dust/palace_bigdome"))
{
pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, false);
}
if (strstr(name, "models/props/de_dust/palace_pillars"))
{
pMaterial->GetColorModulation(&r, &g, &b);
pMaterial->ColorModulate(r * 3.33335, g * 3.33335, b * 3.33335);
}
if (strstr(group, TEXTURE_GROUP_PARTICLE))
{
pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, false);
}
}
done = false;
}
}
}
and this in visuals.hpp in namespace misc