drawpic(position, pic, scale, rgb, alpha * fadelerp, flag);\r
}\r
\r
+// drawstring wrapper to draw a string as large as possible with preserved aspect ratio into a box\r
+void drawstring_aspect(vector pos, string text, vector sz, vector color, float alpha, float drawflag) {\r
+ vector textsize;\r
+ textsize = '1 0 0' * stringwidth(text, FALSE, '1 1 1' * sz_y) + '1 0 0' * sz_y;\r
+\r
+ float textaspect;\r
+ textaspect = textsize_x/textsize_y;\r
+\r
+ vector oldsz;\r
+ oldsz = sz;\r
+ float aspect;\r
+ aspect = sz_x/sz_y;\r
+\r
+ if(aspect > textaspect) {\r
+ sz_x = sz_y * textaspect;\r
+ drawstring(pos + '1 0 0' * (oldsz_x - sz_x) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag);\r
+ } else {\r
+ sz_y = sz_x / textaspect; \r
+ drawstring(pos + '0 1 0' * (oldsz_y - sz_y) * 0.5, text, '1 1 0' * sz_y, color, alpha, drawflag);\r
+ }\r
+}\r
+\r
vector drawfontscale;\r
void drawstring_expanding(vector position, string text, vector scale, vector rgb, float alpha, float flag, float fadelerp)\r
{\r
pos_x += lettersize / 2;\r
}\r
\r
- drawstring(pos, str, vsize, rgb, alpha, dflags);\r
+ drawstring_aspect(pos, str, vsize, rgb, alpha, dflags);\r
}\r
\r
void Sbar_DrawXNum_Colored (vector pos, float x, float lettersize, float alpha)\r
}\r
\r
vector health_pos, armor_pos;\r
- health_pos = bottom - '60 58 0';\r
+ health_pos = bottom - '55 58 0';\r
armor_pos = bottom - '52.5 68 0';\r
\r
// armor\r
\r
// health\r
x = health;\r
- drawpic(health_pos + '4.5 16 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
- if(x < 100) health_pos_x += 5; // always center\r
- if(x < 10) health_pos_x += 5; // always center\r
+ drawpic(health_pos + '0 16 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+ health_pos -= '1 0 0' * stringwidth(ftos(x), FALSE, '22 22 0') * 0.5;\r
Sbar_DrawXNum_Colored(health_pos, x, 22, sbar_alpha_fg);\r
\r
// ammo\r