From 54cfa6b9b749df251ce09a036e6f49cd4057c444 Mon Sep 17 00:00:00 2001
From: MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Date: Mon, 30 Jan 2012 16:27:39 +0200
Subject: [PATCH] Implement code to fade the portrait in and out, using a
 percentage of the total time

---
 data/defaultVT.cfg       |  1 +
 data/qcsrc/client/hud.qc | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/data/defaultVT.cfg b/data/defaultVT.cfg
index 22d1a635..9246af76 100644
--- a/data/defaultVT.cfg
+++ b/data/defaultVT.cfg
@@ -1234,6 +1234,7 @@ seta sbar_ring2_alpha 0.75 "alpha of the second HUD ring"
 seta sbar_vote_alreadyvoted_alpha 0.75 "alpha of the vote dialog after you have voted"
 seta sbar_portrait 1 "enables portraits"
 seta sbar_portrait_time 5 "how long a portrait lasts on the screen"
+seta sbar_portrait_fade 0.25 "amount of time fading the portrait takes from total time"
 
 // for menu server list (eventually make them have engine support?)
 seta menu_slist_showfull 1 "show servers even if they are full and have no slots to join"
diff --git a/data/qcsrc/client/hud.qc b/data/qcsrc/client/hud.qc
index 1a3b4c20..0ccabe92 100644
--- a/data/qcsrc/client/hud.qc
+++ b/data/qcsrc/client/hud.qc
@@ -1682,6 +1682,24 @@ void Sbar_DrawRaceStatus(vector pos)
 
 void Sbar_Portrait()
 {
+	float fade_time;
+	float fade1_start, fade1_end, fade2_start, fade2_end;
+	float fade_in, fade_out;
+
+	fade_time = cvar("sbar_portrait_time") * bound(0, cvar("sbar_portrait_fade"), 0.5);
+
+	fade1_start = portrait_time + cvar("sbar_portrait_time") - fade_time;
+	fade1_end = portrait_time + cvar("sbar_portrait_time");
+	fade2_start = portrait_time;
+	fade2_end = portrait_time + fade_time;
+
+	fade_in = bound(0, (time / fade1_end - 1) / (fade1_start / fade1_end - 1), 1);
+	fade_out = 1 - bound(0, (time / fade2_end - 1) / (fade2_start / fade2_end - 1), 1);
+
+	dprint(strcat(ftos(fade_in), " IN --------\n"));
+	dprint(strcat(ftos(fade_out), " OUT --------\n"));
+	dprint("________________\n");
+
 	// draws the portrait, using the values set in Ent_ReadPortrait
 
 	vector left;
-- 
2.39.5