]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
"bf" now optionally takes arguments: red green blue alpha alphafade
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 Jun 2008 17:35:38 +0000 (17:35 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 Jun 2008 17:35:38 +0000 (17:35 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8372 d7cf8633-e32d-0410-b094-e92efae38249

client.h
view.c

index 6e73a042113be1b21d54012b3e9405e900fc8696..412980641c8fc222d9442ac3c31c523dc24aa05f 100644 (file)
--- a/client.h
+++ b/client.h
@@ -397,7 +397,8 @@ typedef struct scoreboard_s
 typedef struct cshift_s
 {
        float   destcolor[3];
-       float   percent;                // 0-256
+       float   percent;                // 0-255
+       float   alphafade;      // (any speed)
 } cshift_t;
 
 #define        CSHIFT_CONTENTS 0
diff --git a/view.c b/view.c
index 0d623eec7cc3124b1b1e2f7511b6824c1a60e91a..6fbf4ed919d84b9563fee6022342a4d96ba3161c 100644 (file)
--- a/view.c
+++ b/view.c
@@ -242,6 +242,7 @@ void V_ParseDamage (void)
        cl.faceanimtime = cl.time + 0.2;                // put sbar face into pain frame
 
        cl.cshifts[CSHIFT_DAMAGE].percent += 3*count;
+       cl.cshifts[CSHIFT_DAMAGE].alphafade = 150;
        if (cl.cshifts[CSHIFT_DAMAGE].percent < 0)
                cl.cshifts[CSHIFT_DAMAGE].percent = 0;
        if (cl.cshifts[CSHIFT_DAMAGE].percent > 150)
@@ -303,10 +304,24 @@ When you run over an item, the server sends this command
 */
 static void V_BonusFlash_f (void)
 {
-       cl.cshifts[CSHIFT_BONUS].destcolor[0] = 215;
-       cl.cshifts[CSHIFT_BONUS].destcolor[1] = 186;
-       cl.cshifts[CSHIFT_BONUS].destcolor[2] = 69;
-       cl.cshifts[CSHIFT_BONUS].percent = 50;
+       if(Cmd_Argc() == 1)
+       {
+               cl.cshifts[CSHIFT_BONUS].destcolor[0] = 215;
+               cl.cshifts[CSHIFT_BONUS].destcolor[1] = 186;
+               cl.cshifts[CSHIFT_BONUS].destcolor[2] = 69;
+               cl.cshifts[CSHIFT_BONUS].percent = 50;
+               cl.cshifts[CSHIFT_BONUS].alphafade = 100;
+       }
+       else if(Cmd_Argc() == 6)
+       {
+               cl.cshifts[CSHIFT_BONUS].destcolor[0] = atof(Cmd_Argv(1)) * 255;
+               cl.cshifts[CSHIFT_BONUS].destcolor[1] = atof(Cmd_Argv(2)) * 255;
+               cl.cshifts[CSHIFT_BONUS].destcolor[2] = atof(Cmd_Argv(3)) * 255;
+               cl.cshifts[CSHIFT_BONUS].percent = atof(Cmd_Argv(4)) * 255; // yes, these are HEXADECIMAL percent ;)
+               cl.cshifts[CSHIFT_BONUS].alphafade = atof(Cmd_Argv(5)) * 255;
+       }
+       else
+               Con_Printf("usage:\nbf, or bf R G B A alphafade\n");
 }
 
 /*
@@ -567,11 +582,11 @@ void V_FadeViewFlashs(void)
        if (cl.time <= cl.oldtime)
                return;
        // drop the damage value
-       cl.cshifts[CSHIFT_DAMAGE].percent -= (cl.time - cl.oldtime)*150;
+       cl.cshifts[CSHIFT_DAMAGE].percent -= (cl.time - cl.oldtime)*cl.cshifts[CSHIFT_DAMAGE].alphafade;
        if (cl.cshifts[CSHIFT_DAMAGE].percent <= 0)
                cl.cshifts[CSHIFT_DAMAGE].percent = 0;
        // drop the bonus value
-       cl.cshifts[CSHIFT_BONUS].percent -= (cl.time - cl.oldtime)*100;
+       cl.cshifts[CSHIFT_BONUS].percent -= (cl.time - cl.oldtime)*cl.cshifts[CSHIFT_BONUS].alphafade;
        if (cl.cshifts[CSHIFT_BONUS].percent <= 0)
                cl.cshifts[CSHIFT_BONUS].percent = 0;
 }
@@ -698,7 +713,7 @@ V_Init
 void V_Init (void)
 {
        Cmd_AddCommand ("v_cshift", V_cshift_f, "sets tint color of view");
-       Cmd_AddCommand ("bf", V_BonusFlash_f, "briefly flashes a bright color tint on view (used when items are picked up)");
+       Cmd_AddCommand ("bf", V_BonusFlash_f, "briefly flashes a bright color tint on view (used when items are picked up); optionally takes R G B A alphafade arguments to specify how the flash looks");
        Cmd_AddCommand ("centerview", V_StartPitchDrift, "gradually recenter view (stop looking up/down)");
 
        Cvar_RegisterVariable (&v_centermove);