// //////////////////////////////////////////////////////////////////////////// // show text written on its side. static void displayTextAt270(WIDGET *psWidget, UDWORD xOffset, UDWORD yOffset, WZ_DECL_UNUSED PIELIGHT *pColours) { SDWORD fx,fy; W_LABEL *psLab; psLab = (W_LABEL *)psWidget; iV_SetFont(font_large); fx = xOffset + psWidget->x; fy = yOffset + psWidget->y + iV_GetTextWidth(psLab->aText) ; iV_SetTextColour(WZCOL_GREY); iV_DrawTextRotated(psLab->aText, fx+2, fy+2, 270.f); iV_SetTextColour(WZCOL_TEXT_BRIGHT); iV_DrawTextRotated(psLab->aText, fx, fy, 270.f); }
// show a background piccy (currently used for version and mods labels) static void displayTitleBitmap(WZ_DECL_UNUSED WIDGET *psWidget, WZ_DECL_UNUSED UDWORD xOffset, WZ_DECL_UNUSED UDWORD yOffset, WZ_DECL_UNUSED PIELIGHT *pColours) { char modListText[MAX_STR_LENGTH] = ""; iV_SetFont(font_regular); iV_SetTextColour(WZCOL_GREY); iV_DrawTextRotated(version_getFormattedVersionString(), pie_GetVideoBufferWidth() - 9, pie_GetVideoBufferHeight() - 14, 270.f); if (*getModList()) { sstrcat(modListText, _("Mod: ")); sstrcat(modListText, getModList()); iV_DrawText(modListText, 9, 14); } iV_SetTextColour(WZCOL_TEXT_BRIGHT); iV_DrawTextRotated(version_getFormattedVersionString(), pie_GetVideoBufferWidth() - 10, pie_GetVideoBufferHeight() - 15, 270.f); if (*getModList()) { iV_DrawText(modListText, 10, 15); } }
static void iV_DrawTextRotatedFv(float x, float y, float rotation, const char *format, va_list ap) { va_list aq; size_t size; char *str; /* Required because we're using the va_list ap twice otherwise, which * results in undefined behaviour. See stdarg(3) for details. */ va_copy(aq, ap); // Allocate a buffer large enough to hold our string on the stack size = vsnprintf(NULL, 0, format, ap); str = (char *)alloca(size + 1); // Print into our newly created string buffer vsprintf(str, format, aq); va_end(aq); // Draw the produced string to the screen at the given position and rotation iV_DrawTextRotated(str, x, y, rotation); }