void CG_DrawFlagCarrierName( void ) { int fontHandle = MenuFontToHandle( FONT_Q3PLARGE ); float fontScale = 0.137f; vector4 color = { 1.0f, 1.0f, 1.0f, 1.0f }; vector3 worldPos = { 0.0f, 0.0f, 0.0f }; vector2 screenPos = { 0.0f, 0.0f }; char text[] = "FLAG CARRIER"; if ( (cgs.gametype < GT_FLAGS || !cg_drawFlagCarrier.boolean || cg.q3p.flagCarrierEntityNum == ENTITYNUM_NONE) && !cg_debugHUD->integer ) return; VectorCopy( cg_entities[cg.q3p.flagCarrierEntityNum].lerpOrigin, worldPos ); worldPos[2] += 64.0f; //FIXME: skews position on non 4:3 ratios // fix is in modbase/ja++ CG_WorldCoordToScreenCoordFloat( worldPos, &screenPos[0], &screenPos[1] ); trap->R_Font_DrawString( screenPos[0] - trap->R_Font_StrLenPixels( text, fontHandle, fontScale )/2.0f, screenPos[1], text, color, fontHandle|STYLE_DROPSHADOW, -1, fontScale ); //already drawn it this frame, reset ent num so we can scan again next frame cg.q3p.flagCarrierEntityNum = ENTITYNUM_NONE; trap->R_SetColor( NULL ); }
static int JPLua_Export_WorldCoordToScreenCoord( lua_State *L ) { vector3 *v = JPLua_CheckVector( L, 1 ); float x, y; if ( CG_WorldCoordToScreenCoordFloat( v, &x, &y ) ) { lua_pushnumber( L, x ); lua_pushnumber( L, y ); return 2; } else { lua_pushnil( L ); return 1; } }