X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fmiscfunctions.qc;h=a653f4bf1e5ca0af486b06dd58d6f61aafd143a1;hp=1af1b971ffe91272af6cfcb915c1de041cbf49a8;hb=7069dc3f41678554d089db582ccf16da1f8874a5;hpb=ebec51e2a451b28980fcd246eb002b6d0c6bae8a diff --git a/qcsrc/client/miscfunctions.qc b/qcsrc/client/miscfunctions.qc index 1af1b971ff..a653f4bf1e 100644 --- a/qcsrc/client/miscfunctions.qc +++ b/qcsrc/client/miscfunctions.qc @@ -1,8 +1,8 @@ #include "miscfunctions.qh" #include "autocvars.qh" -#include "defs.qh" #include "hud/_mod.qh" +#include "main.qh" #include @@ -332,6 +332,23 @@ float stringwidth(string text, float handleColors, vector sz) return r; } +#define SET_POS_AND_SZ_Y_ASPECT(allow_colors) MACRO_BEGIN \ + float textaspect, oldsz; \ + vector dfs = drawfontscale; \ + drawfontscale = '1 1 0'; \ + textaspect = stringwidth(text, allow_colors, '1 1 1' * sz.y) / sz.y; \ + drawfontscale = dfs; \ + if(sz.x/sz.y > textaspect) { \ + oldsz = sz.x; \ + sz.x = sz.y * textaspect; \ + pos.x += (oldsz - sz.x) * 0.5; \ + } else { \ + oldsz = sz.y; \ + sz.y = sz.x / textaspect; \ + pos.y += (oldsz - sz.y) * 0.5; \ + } \ +MACRO_END + // drawstring wrapper to draw a string as large as possible with preserved aspect ratio into a box void drawstring_aspect(vector pos, string text, vector sz, vector color, float theAlpha, float drawflag) { SET_POS_AND_SZ_Y_ASPECT(false);