-// drawpic wrapper to draw an image as large as possible with preserved aspect ratio into a box
-var float _drawpic_imgaspect;
-var vector _drawpic_imgsize;
-var vector _drawpic_sz;
-var float _drawpic_oldsz;
-var string _drawpic_picpath;
-#define drawpic_aspect(pos,pic,mySize,color,theAlpha,drawflag)\
- do {\
- _drawpic_imgsize = draw_getimagesize(pic);\
- if(_drawpic_imgsize != '0 0 0') {\
- _drawpic_imgaspect = _drawpic_imgsize_x/_drawpic_imgsize_y;\
- _drawpic_sz = mySize;\
- if(_drawpic_sz_x/_drawpic_sz_y > _drawpic_imgaspect) {\
- _drawpic_oldsz = _drawpic_sz_x;\
- _drawpic_sz_x = _drawpic_sz_y * _drawpic_imgaspect;\
- if(_drawpic_sz_x)\
- drawpic(pos + eX * (_drawpic_oldsz - _drawpic_sz_x) * 0.5, pic, _drawpic_sz, color, theAlpha, drawflag);\
- } else {\
- _drawpic_oldsz = _drawpic_sz_y;\
- _drawpic_sz_y = _drawpic_sz_x / _drawpic_imgaspect;\
- if(_drawpic_sz_y)\
- drawpic(pos + eY * (_drawpic_oldsz - _drawpic_sz_y) * 0.5, pic, _drawpic_sz, color, theAlpha, 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,theAlpha,drawflag)\
- do{\
- _drawpic_picpath = strcat(hud_skin_path, "/", pic);\
- if(precache_pic(_drawpic_picpath) == "") {\
- _drawpic_picpath = strcat("gfx/hud/default/", pic);\
- }\
- drawpic_aspect(pos, _drawpic_picpath, sz, color, theAlpha, 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,theAlpha,drawflag)\
- do{\
- _drawpic_picpath = strcat(hud_skin_path, "/", pic);\
- if(precache_pic(_drawpic_picpath) == "") {\
- _drawpic_picpath = strcat("gfx/hud/default/", pic);\
- }\
- drawpic(pos, _drawpic_picpath, sz, color, theAlpha, drawflag);\
- _drawpic_picpath = string_null;\
- } while(0)
-