예제 #1
0
파일: cg_newdraw.c 프로젝트: Razish/QtZ
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 );
}
예제 #2
0
파일: bg_lua.cpp 프로젝트: Stoiss/japp
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;
	}
}