From 02d2b7c6fea422d536b734893e079ab7f123c1c9 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Fri, 8 Jul 2011 17:54:26 +0300 Subject: [PATCH] Make saturation depend on the amount of armor the player has (post process effect) --- data/defaultVT.cfg | 2 ++ data/qcsrc/client/Main.qc | 2 ++ data/qcsrc/client/View.qc | 18 ++++++++++++++++++ data/qcsrc/client/main.qh | 1 + data/qcsrc/server/cl_client.qc | 7 +++++++ 5 files changed, 30 insertions(+) diff --git a/data/defaultVT.cfg b/data/defaultVT.cfg index 14c081c9..4655a8af 100644 --- a/data/defaultVT.cfg +++ b/data/defaultVT.cfg @@ -1118,6 +1118,8 @@ seta hud_damage_pain_threshold_pulsating_period 0.8 "one pulse every X seconds" seta hud_powerup 0 "power of the sharpen effect when owning the shield or strength powerups, default is 0.5" +seta hud_saturation 0 "saturation changes based on the amount of armor you have" + seta hud_stomach 0.65 "displays a splash on the screen when inside the stomach, value specifies alpha" seta hud_stomach_color "0.75 1 0" "color of the stomach screen splash" seta hud_stomach_fade_in 0.2 "how quickly the stomach splash appears when you get swallowed" diff --git a/data/qcsrc/client/Main.qc b/data/qcsrc/client/Main.qc index 3f9c7292..e4fadc50 100644 --- a/data/qcsrc/client/Main.qc +++ b/data/qcsrc/client/Main.qc @@ -1035,6 +1035,8 @@ void Ent_Init() g_vore = ReadCoord(); g_balance_vore_swallow_limit = ReadCoord(); + armor_enabled = ReadByte(); + if(!postinit) PostInit(); } diff --git a/data/qcsrc/client/View.qc b/data/qcsrc/client/View.qc index 3daed155..843d0df2 100644 --- a/data/qcsrc/client/View.qc +++ b/data/qcsrc/client/View.qc @@ -808,6 +808,24 @@ void CSQC_UpdateView(float w, float h) cvar_set("r_glsl_postprocess_uservec2_enable", "0"); } + if(cvar("hud_postprocessing") && cvar("hud_saturation")) + { + // change saturation based on the amount of armor we have + // ranges between 0 and 50 armor. 0 armor is saturation 0.5, and 0.5 armor or above is saturation 1 + + if(armor_enabled && spectatee_status != -1 && getstati(STAT_HEALTH) > 0) + { + float saturation; + saturation = 0.5 + (getstati(STAT_ARMOR) * 1 * 0.01); + saturation = bound(0, saturation, 1); + + if(cvar("r_glsl_saturation") != saturation) + cvar_set("r_glsl_saturation", ftos(saturation)); + } + else if(cvar("r_glsl_saturation") != 1) + cvar_set("r_glsl_saturation", "1"); + } + // volume cutting if(cvar("cl_vore_cutvolume_sound") < 1 || cvar("cl_vore_cutvolume_music") < 1) { diff --git a/data/qcsrc/client/main.qh b/data/qcsrc/client/main.qh index db40270f..68bc2300 100644 --- a/data/qcsrc/client/main.qh +++ b/data/qcsrc/client/main.qh @@ -168,6 +168,7 @@ float g_weaponswitchdelay; float g_vore; float g_balance_vore_swallow_limit; +float armor_enabled; //hooks float calledhooks; diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 1fb6ab0a..8f058155 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -1044,6 +1044,13 @@ float ClientInit_SendEntity(entity to, float sf) WriteCoord(MSG_ENTITY, cvar("g_vore")); WriteCoord(MSG_ENTITY, g_balance_vore_swallow_limit); + + // tell the client if this server uses armor + float armor_enabled; + if(cvar("g_balance_armor_start") || (cvar("g_lms") && cvar("g_lms_start_armor")) || (inWarmupStage && cvar("g_warmup_start_armor")) || cvar("g_balance_armor_regen") || cvar("g_balance_armor_regenlinear")) + armor_enabled = TRUE; + WriteByte(MSG_ENTITY, armor_enabled); + return TRUE; } -- 2.39.2