void HUD_Weapons(void)
{
- float f;
+ float f, screen_ar;
+ vector center;
if(!autocvar_hud_panel_weapons && !autocvar__hud_configure)
return;
if (cvar("hud_panel_weapons_timeout_effect") == 1)
{
f *= f; // for a cooler movement
- vector center;
center_x = panel_pos_x + panel_size_x/2;
center_y = panel_pos_y + panel_size_y/2;
- float screen_ar = vid_conwidth/vid_conheight;
+ screen_ar = vid_conwidth/vid_conheight;
if (center_x/center_y < screen_ar) //bottom left
{
if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
{
f *= f; // for a cooler movement
f = 1 - f;
- vector center;
center_x = panel_pos_x + panel_size_x/2;
center_y = panel_pos_y + panel_size_y/2;
- float screen_ar = vid_conwidth/vid_conheight;
+ screen_ar = vid_conwidth/vid_conheight;
if (center_x/center_y < screen_ar) //bottom left
{
if ((vid_conwidth - center_x)/center_y < screen_ar) //bottom
// drawpic wrapper to draw an image as large as possible with preserved aspect ratio into a box
var float _drawpic_imgaspect;
var float _drawpic_aspect;
+var vector _drawpic_imgsize;
+var vector _drawpic_sz;
+var vector _drawpic_oldsz;
+var string _drawpic_picpath;
#define drawpic_aspect(pos,pic,mySize,color,alpha,drawflag)\
do {\
- vector imgsize;\
- imgsize = drawgetimagesize(pic);\
- _drawpic_imgaspect = imgsize_x/imgsize_y;\
- vector oldsz, sz;\
- oldsz = sz = mySize;\
- _drawpic_aspect = sz_x/sz_y;\
+ _drawpic_imgsize = drawgetimagesize(pic);\
+ _drawpic_imgaspect = _drawpic_imgsize_x/_drawpic_imgsize_y;\
+ _drawpic_oldsz = _drawpic_sz = mySize;\
+ _drawpic_aspect = _drawpic_sz_x/_drawpic_sz_y;\
if(_drawpic_aspect > _drawpic_imgaspect) {\
- sz_x = sz_y * _drawpic_imgaspect;\
- drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag);\
+ _drawpic_sz_x = _drawpic_sz_y * _drawpic_imgaspect;\
+ drawpic(pos + eX * (_drawpic_oldsz_x - _drawpic_sz_x) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
} else {\
- sz_y = sz_x / _drawpic_imgaspect;\
- drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag);\
+ _drawpic_sz_y = _drawpic_sz_x / _drawpic_imgaspect;\
+ drawpic(pos + eY * (_drawpic_oldsz_y - _drawpic_sz_y) * 0.5, pic, _drawpic_sz, color, alpha, drawflag);\
}\
} while(0)
// draw HUD element with image from gfx/hud/hud_skin/foo.tga if it exists, otherwise gfx/hud/default/foo.tga
#define drawpic_aspect_skin(pos,pic,sz,color,alpha,drawflag)\
do{\
- picpath = strcat(hud_skin_path, "/", pic);\
- if(precache_pic(picpath) == "") {\
- picpath = strcat("gfx/hud/default/", pic);\
+ _drawpic_picpath = strcat(hud_skin_path, "/", pic);\
+ if(precache_pic(_drawpic_picpath) == "") {\
+ _drawpic_picpath = strcat("gfx/hud/default/", pic);\
}\
- drawpic_aspect(pos, picpath, sz, color, alpha, drawflag);\
+ drawpic_aspect(pos, _drawpic_picpath, sz, color, alpha, drawflag);\
+ _drawpic_picpath = string_null;\
} while(0)
// draw HUD element with image from gfx/hud/hud_skin/foo.tga if it exists, otherwise gfx/hud/default/foo.tga
#define drawpic_skin(pos,pic,sz,color,alpha,drawflag)\
do{\
- picpath = strcat(hud_skin_path, "/", pic);\
- if(precache_pic(picpath) == "") {\
- picpath = strcat("gfx/hud/default/", pic);\
+ _drawpic_picpath = strcat(hud_skin_path, "/", pic);\
+ if(precache_pic(_drawpic_picpath) == "") {\
+ _drawpic_picpath = strcat("gfx/hud/default/", pic);\
}\
- drawpic(pos, picpath, sz, color, alpha, drawflag);\
+ drawpic(pos, _drawpic_picpath, sz, color, alpha, drawflag);\
+ _drawpic_picpath = string_null;\
} while(0)
void drawpic_aspect_skin_expanding(vector position, string pic, vector scale, vector rgb, float alpha, float flag, float fadelerp)