void CEnvLight::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) { if (FStrEq(pkvd->szKeyName, "_light")) { int r, g, b, v, j; j = Q_sscanf(pkvd->szValue, "%d %d %d %d\n", &r, &g, &b, &v); if (j == 1) g = b = r; else if (j == 4) { r = r * (v / 255.0); g = g * (v / 255.0); b = b * (v / 255.0); } // simulate qrad direct, ambient,and gamma adjustments, as well as engine scaling r = Q_pow(r / 114.0, 0.6) * 264; g = Q_pow(g / 114.0, 0.6) * 264; b = Q_pow(b / 114.0, 0.6) * 264; pkvd->fHandled = TRUE; char szColor[64]; Q_sprintf(szColor, "%d", r); CVAR_SET_STRING("sv_skycolor_r", szColor); Q_sprintf(szColor, "%d", g); CVAR_SET_STRING("sv_skycolor_g", szColor); Q_sprintf(szColor, "%d", b); CVAR_SET_STRING("sv_skycolor_b", szColor); } else CLight::KeyValue(pkvd); }
bool CVoiceGameMgr::ClientCommand(CBasePlayer *pPlayer, const char *cmd) { int playerClientIndex = pPlayer->entindex() - 1; if (playerClientIndex < 0 || playerClientIndex >= m_nMaxPlayers) { VoiceServerDebug("CVoiceGameMgr::ClientCommand: cmd %s from invalid client (%d)\n", cmd, playerClientIndex); return true; } bool bBan = Q_stricmp(cmd, "vban") == 0; if (bBan && CMD_ARGC() >= 2) { for (int i = 1; i < CMD_ARGC(); ++i) { uint32 mask = 0; Q_sscanf(CMD_ARGV(i), "%x", &mask); if (i <= VOICE_MAX_PLAYERS_DW) { VoiceServerDebug("CVoiceGameMgr::ClientCommand: vban (0x%x) from %d\n", mask, playerClientIndex); g_BanMasks[ playerClientIndex ].SetDWord(i - 1, mask); } else VoiceServerDebug("CVoiceGameMgr::ClientCommand: invalid index (%d)\n", i); } // Force it to update the masks now. //UpdateMasks(); return true; } else if (Q_stricmp(cmd, "VModEnable") == 0 && CMD_ARGC() >= 2) { VoiceServerDebug("CVoiceGameMgr::ClientCommand: VModEnable (%d)\n", !!Q_atoi(CMD_ARGV(1))); g_PlayerModEnable[ playerClientIndex ] = !!Q_atoi(CMD_ARGV(1)); g_bWantModEnable[ playerClientIndex ] = false; //UpdateMasks(); return true; } return false; }