Add first actual functionality to the sbar ring; Showing the swallowing delay.
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 3 May 2011 17:01:10 +0000 (20:01 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 3 May 2011 17:01:10 +0000 (20:01 +0300)
data/qcsrc/client/sbar.qc
data/qcsrc/server/vore.qc

index ade2c07..6e6fe0a 100644 (file)
@@ -1992,22 +1992,35 @@ void Sbar_Ring()
        ring_alpha = sbar_alpha_fg * 1;\r
        text_size = '10 10 0';\r
 \r
-       ring1_clip = 0.85;\r
-       ring2_clip = 0.95;\r
-       ring1_color = '1 0.25 0.25';\r
-       ring2_color = '0.25 1 0.25';\r
-       text1_msg = "Text 1 ssdfsdfdsfsdf";\r
-       text2_msg = "Text 2 3453rf234f";\r
-\r
-       DrawCircleClippedPic(ring_pos, ring1_size, "gfx/hud/sb_ring.tga", ring1_clip, ring1_color, ring_alpha, DRAWFLAG_ADDITIVE);\r
-       text_pos_x = ring_pos_x - stringwidth(text1_msg, FALSE, text_size) / 2;\r
-       text_pos_y = ring_pos_y - ring1_size / 2;\r
-       drawstring(text_pos, text1_msg, text_size, ring1_color, sbar_alpha_fg, DRAWFLAG_NORMAL);\r
-\r
-       DrawCircleClippedPic(ring_pos, ring2_size, "gfx/hud/sb_ring.tga", ring2_clip, ring2_color, ring_alpha, DRAWFLAG_ADDITIVE);\r
-       text_pos_x = ring_pos_x - stringwidth(text2_msg, FALSE, text_size) / 2;\r
-       text_pos_y = ring_pos_y + ring1_size / 2;\r
-       drawstring(text_pos, text2_msg, text_size, ring2_color, sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+       switch(getstati(STAT_SBRING1_TYPE))\r
+       {\r
+               case 0:\r
+                       break;\r
+               case 1:\r
+                       // ring shows vore system delay\r
+                       ring1_color = '0.5 0.5 1';\r
+                       ring1_clip = getstatf(STAT_SBRING1_CLIP);\r
+                       text1_msg = "vore delay";\r
+                       break;\r
+               default:\r
+                       print(strcat("^1Error:^7 Unknown ring type: ", ftos(getstati(STAT_SBRING1_TYPE)), "\n"));\r
+                       break;\r
+       }\r
+\r
+       if(text1_msg != "")\r
+       {\r
+               DrawCircleClippedPic(ring_pos, ring1_size, "gfx/hud/sb_ring.tga", ring1_clip, ring1_color, ring_alpha, DRAWFLAG_ADDITIVE);\r
+               text_pos_x = ring_pos_x - stringwidth(text1_msg, FALSE, text_size) / 2;\r
+               text_pos_y = ring_pos_y - ring1_size / 2;\r
+               drawstring(text_pos, text1_msg, text_size, ring1_color, sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+       }\r
+       if(text2_msg != "")\r
+       {\r
+               DrawCircleClippedPic(ring_pos, ring2_size, "gfx/hud/sb_ring.tga", ring2_clip, ring2_color, ring_alpha, DRAWFLAG_ADDITIVE);\r
+               text_pos_x = ring_pos_x - stringwidth(text2_msg, FALSE, text_size) / 2;\r
+               text_pos_y = ring_pos_y + ring1_size / 2;\r
+               drawstring(text_pos, text2_msg, text_size, ring2_color, sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+       }\r
 }\r
 \r
 void CSQC_Strength_Timer() {\r
index 32cfb26..4dfe4a3 100644 (file)
@@ -432,6 +432,22 @@ void Vore_AutoTaunt()
        }\r
 }\r
 \r
+void Vore_SetSbarRings()\r
+{\r
+       float min_time;\r
+       if(self.swallow_delay > time)\r
+       {\r
+               self.stat_sbring1_type = 1; // ring shows vore system delay\r
+               min_time = self.swallow_delay - cvar("g_balance_vore_swallow_delay");\r
+               self.stat_sbring1_clip = bound(0, (time / self.swallow_delay - 1) / (min_time / self.swallow_delay - 1), 1);\r
+       }\r
+       else\r
+       {\r
+               self.stat_sbring1_type = 0;\r
+               self.stat_sbring1_clip = 0;\r
+       }\r
+}\r
+\r
 void Vore()\r
 {\r
        // main vore code, this is where it all happens\r
@@ -462,6 +478,7 @@ void Vore()
        }\r
 \r
        // set all vore stats\r
+       Vore_SetSbarRings();\r
        if(self.fakepredator.classname == "player")\r
                self.stat_eaten = num_for_edict(self.fakepredator);\r
        else if(self.predator.classname == "player")\r