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);
void drawpic_aspect_skin_expanding_two(vector position, string pic, vector theScale, vector rgb, float theAlpha, float flag, float fadelerp);
-#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);