\r
string str;\r
float f, field, field_number;\r
+ vector hl_color;\r
field_number = 3; // the number of components each row has\r
\r
for(fieldcounter = 1; fieldcounter <= field_number; ++fieldcounter)\r
if(field == ST_HIGHLIGHT)\r
{\r
if(getstati(STAT_VORE_EATEN))\r
- drawfill(pos - '0 0 0', '193 11 0', stov(cvar_string("sbar_stomachboard_color3")), cvar("sbar_stomachboard_highlight_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
- else if(pl.team == myteam)\r
- drawfill(pos - '0 0 0', '193 11 0', stov(cvar_string("sbar_stomachboard_color2")), cvar("sbar_stomachboard_highlight_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ {\r
+ if(teamplay && GetPlayerColor(pl.entnum - 1) == GetPlayerColor(player_localentnum - 1)) // same team\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color2"));\r
+ else\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color3"));\r
+ }\r
else\r
- drawfill(pos - '0 0 0', '193 11 0', stov(cvar_string("sbar_stomachboard_color1")), cvar("sbar_stomachboard_highlight_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color1"));\r
+ drawfill(pos - '0 0 0', '193 11 0', hl_color, cvar("sbar_stomachboard_highlight_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
}\r
\r
if(field == ST_NAME) {\r
} else {\r
minutes = minutesLeft;\r
seconds = secondsLeft;\r
- if (minutes == 0)\r
- bgpos_x = topright_x - (58 + 7 + 12) * scale;\r
- else if (minutes < 10) // nudge the timer background left if more digits are drawn\r
- bgpos_x = topright_x - (66 + 17 + 12) * scale;\r
+ if (minutes < 10) // nudge the timer background left if more digits are drawn\r
+ bgpos_x = topright_x - (54 + 17 + 12) * scale;\r
else if (minutes < 100)\r
- bgpos_x = topright_x - (74 + 17 + 12) * scale;\r
+ bgpos_x = topright_x - (62 + 17 + 12) * scale;\r
else\r
- bgpos_x = topright_x - (82 + 17 + 12) * scale;\r
+ bgpos_x = topright_x - (70 + 17 + 12) * scale;\r
bgpos_y = 0;\r
bgpos_z = 0;\r
}\r
}\r
\r
drawpic(topright - ('19 0 0' + '3 0 0' - '0 2 0'), "gfx/hud/sb_time", '22 22 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
- if(minutesLeft >= 1 || cvar("sbar_increment_maptime") || timelimit == 0 || warmup_stage) {\r
- finaltime = strcat(ftos(minutes), ":");\r
- }\r
+ finaltime = strcat(ftos(minutes), ":");\r
if(seconds < 10)\r
finaltime = strcat(finaltime, "0", ftos(seconds));\r
else\r
drawstring(pos, finaltime, 18 * scale * '1 1 0', timer_color, sbar_alpha_fg, DRAWFLAG_NORMAL);\r
}\r
\r
+void Sbar_Ring()\r
+{\r
+ vector ring_pos, ring1_color, ring2_color;\r
+ vector text_pos, text_size;\r
+ float ring_alpha, ring1_size, ring1_clip, ring2_size, ring2_clip;\r
+ string text1_msg, text2_msg;\r
+\r
+ ring_pos_x = vid_conwidth / 2;\r
+ ring_pos_y = vid_conheight / 1.375;\r
+ ring1_size = 100;\r
+ ring2_size = 60;\r
+ ring_alpha = sbar_alpha_fg * 1;\r
+ text_size = '10 10 0';\r
+\r
+ switch(getstati(STAT_SBRING1_TYPE))\r
+ {\r
+ case 0:\r
+ // ring disabled\r
+ break;\r
+ case 1:\r
+ // ring shows vore system delay, empties with progress\r
+ ring1_color = '0.5 0.5 1';\r
+ text1_msg = "Vore delay";\r
+ break;\r
+ case 2:\r
+ // ring shows stomach kick delay, empties with progress\r
+ ring1_color = '1 1 0.5';\r
+ text1_msg = "Kick delay";\r
+ break;\r
+ default:\r
+ print(strcat("^1Error:^7 Unknown ring type: ", ftos(getstati(STAT_SBRING1_TYPE)), "\n"));\r
+ break;\r
+ }\r
+ switch(getstati(STAT_SBRING2_TYPE))\r
+ {\r
+ case 0:\r
+ // ring disabled\r
+ break;\r
+ case 1:\r
+ // ring shows regurgitation preparing, fills with progress\r
+ ring2_color = '1 0.5 1';\r
+ text2_msg = "Regurgitating...";\r
+ break;\r
+ default:\r
+ print(strcat("^1Error:^7 Unknown ring type: ", ftos(getstati(STAT_SBRING1_TYPE)), "\n"));\r
+ break;\r
+ }\r
+ ring1_clip = getstatf(STAT_SBRING1_CLIP);\r
+ ring2_clip = getstatf(STAT_SBRING2_CLIP);\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
vector pos;\r
vector bottomright;\r
}\r
}\r
\r
+ vector hl_color;\r
+ string hl_string;\r
if(getstati(STAT_VORE_EATEN))\r
{\r
- drawpic(bottomleft - '0 256 0', "gfx/hud/bg_stomach_status", '256 256 0', StomachStatus_ColorFade(stov(cvar_string("sbar_stomachboard_color2"))), cvar("sbar_stomachboard_status_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
- drawstring(bottomleft - '-80 173 0', "predator:", '11 11 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ if(teamplay && GetPlayerColor(getstati(STAT_VORE_EATEN) - 1) == GetPlayerColor(player_localentnum - 1)) // same team\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color2"));\r
+ else\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color3"));\r
+ hl_string = "predator:";\r
}\r
else\r
{\r
- drawpic(bottomleft - '0 256 0', "gfx/hud/bg_stomach_status", '256 256 0', StomachStatus_ColorFade(stov(cvar_string("sbar_stomachboard_color1"))), cvar("sbar_stomachboard_status_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
- drawstring(bottomleft - '-80 173 0', "self:", '11 11 0', ' 1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ hl_color = stov(cvar_string("sbar_stomachboard_color1"));\r
+ hl_string = "self:";\r
}\r
+ drawpic(bottomleft - '0 256 0', "gfx/hud/bg_stomach_status", '256 256 0', StomachStatus_ColorFade(hl_color), cvar("sbar_stomachboard_status_alpha") * sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ drawstring(bottomleft - '-80 173 0', hl_string, '11 11 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
\r
float stomach_load;\r
stomach_load = getstati(STAT_VORE_LOAD); // shows the predator's stomach load when we are eaten, and ours otherwise\r
if (e && e.netname != "" && e.netname != "N/A")\r
drawpic(bottom - '96 96 0', strcat("gfx/hud/bg_status_activeweapon_", e.netname), '192 96 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
\r
- // draw scores and timer\r
+ // draw scores, timer, and ring\r
Sbar_Score();\r
Sbar_Timer();\r
+ Sbar_Ring();\r
\r
// draw strength/invincibility icon and timer\r
CSQC_Strength_Timer();\r