这篇教程C++ CG_DrawStringExt函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CG_DrawStringExt函数的典型用法代码示例。如果您正苦于以下问题:C++ CG_DrawStringExt函数的具体用法?C++ CG_DrawStringExt怎么用?C++ CG_DrawStringExt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CG_DrawStringExt函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CG_demoTimescaleDrawvoid CG_demoTimescaleDraw(void){ if(cg.demoPlayback && cgs.timescaleUpdate > cg.time && demo_drawTimeScale.integer != 0) { char *s = va("^3TimeScale: ^7%.1f", cg_timescale.value); int w = CG_DrawStrlen(s) * SMALLCHAR_WIDTH; CG_FillRect(42 - 2, 400, w + 5, SMALLCHAR_HEIGHT + 3, colorDkGreen); CG_DrawRect(42 - 2, 400, w + 5, SMALLCHAR_HEIGHT + 3, 1, colorMdYellow); CG_DrawStringExt(42, 400, s, colorWhite, qfalse, qtrue, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, 0); }}
开发者ID:rabb,项目名称:eth32nix-rabbmod,代码行数:12,
示例2: CG_demoAviFPSDrawvoid CG_demoAviFPSDraw(void){ qboolean fKeyDown = cgs.fKeyPressed[K_F1] | cgs.fKeyPressed[K_F2] | cgs.fKeyPressed[K_F3] | cgs.fKeyPressed[K_F4] | cgs.fKeyPressed[K_F5]; if (cg.demoPlayback && fKeyDown && cgs.aviDemoRate >= 0) { CG_DrawStringExt(42, 425, ((cgs.aviDemoRate > 0) ? va("^3Record AVI @ ^7%d^2fps", cgs.aviDemoRate) : "^1Stop AVI Recording"), colorWhite, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT - 2, 0); }}
开发者ID:morsik,项目名称:warpig,代码行数:12,
示例3: CG_CenterGiantLine/*================CG_CenterGiantLine================*/static void CG_CenterGiantLine( float y, const char *string ) { float x;/* vec4_t color; color[0] = 1; color[1] = 1; color[2] = 1; color[3] = 1;*/ x = ( SCREEN_WIDTH - GIANT_WIDTH * CG_DrawStrlen(string) )/2; CG_DrawStringExt( x, y, string, colorWhite, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0, SCR_CENTER );}
开发者ID:themuffinator,项目名称:fnq3,代码行数:18,
示例4: CG_CenterGiantLine/*================CG_CenterGiantLine================*/static void CG_CenterGiantLine( gfixed y, const char *string ) { gfixed x; vec4_t color; color[0] = GFIXED_1; color[1] = GFIXED_1; color[2] = GFIXED_1; color[3] = GFIXED_1; x = GFIXED(0,5) * MAKE_GFIXED( 640 - GIANT_WIDTH * CG_DrawStrlen( string ) ); CG_DrawStringExt( FIXED_TO_INT(x), FIXED_TO_INT(y), string, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0 );}
开发者ID:Jsoucek,项目名称:q3ce,代码行数:18,
示例5: CG_CenterGiantLine/*=======================================================================================================================================CG_CenterGiantLine=======================================================================================================================================*/static void CG_CenterGiantLine(float y, const char *string) { float x; vec4_t color; color[0] = 1; color[1] = 1; color[2] = 1; color[3] = 1; x = 0.5 * (640 - GIANT_WIDTH * CG_DrawStrlen(string)); CG_DrawStringExt(x, y, string, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0);}
开发者ID:ioid3-games,项目名称:ioid3-q3,代码行数:18,
示例6: CG_Cutscene2d_Drawvoid CG_Cutscene2d_Draw(void) { int i; CG_Cutscene2d_Init(); // make sure that we are inited for(i=0;i<MAX_CUTSCENE2D_PICTURES;++i) { cutscene2dPicture_t* pic = &cg_cutscene2d.pics[i]; if(pic->isShown) { trap_R_SetColor(pic->color); CG_DrawPic(pic->x,pic->y,pic->w,pic->h,pic->shader); trap_R_SetColor(NULL); if(pic->text[0]) { char* start, *end; int line=0; start = pic->text; do { end = strstr(start,"//n"); if(end) end[0] = '/0'; CG_DrawStringExt(pic->x+pic->text_x,pic->y+pic->text_y +line*pic->text_ch, start,pic->textcolor, qfalse, qfalse, pic->text_cw, pic->text_ch, 0 ); if(end) { end[0] = '//'; start = end+2; } ++line; } while(end); } } }}
开发者ID:PadWorld-Entertainment,项目名称:wop-gamesource,代码行数:36,
示例7: WM_DrawClientScore_Smallstatic void WM_DrawClientScore_Small( int x, int y, score_t *score, float *color, float fade ) { int maxchars, offset; float tempx; vec4_t hcolor; clientInfo_t *ci; if ( y + SMALLCHAR_HEIGHT >= 470 ) return; ci = &cgs.clientinfo[score->client]; if ( score->client == cg.snap->ps.clientNum ) { tempx = x; hcolor[3] = fade * 0.3; VectorSet( hcolor, .5f, .5f, .2f ); // DARK-RED CG_FillRect( tempx, y + 1, INFO_PLAYER_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_PLAYER_WIDTH; if ( ci->team == TEAM_SPECTATOR ) { int width; width = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH; CG_FillRect( tempx, y + 1, width - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += width; } else { CG_FillRect( tempx, y + 1, INFO_CLASS_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_CLASS_WIDTH; if( cg_gameType.integer == GT_WOLF_LMS ) { CG_FillRect( tempx, y + 1, INFO_SCORE_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_SCORE_WIDTH; } else { CG_FillRect( tempx, y + 1, INFO_XP_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_XP_WIDTH; } CG_FillRect( tempx, y + 1, INFO_LATENCY_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_LATENCY_WIDTH; if( cg_gameType.integer != GT_WOLF_LMS ) { CG_FillRect( tempx, y + 1, INFO_LIVES_WIDTH - INFO_BORDER, MINICHAR_HEIGHT - 1, hcolor ); tempx += INFO_LIVES_WIDTH; } } } tempx = x; // DHM - Nerve VectorSet( hcolor, 1, 1, 1 ); hcolor[3] = fade; maxchars = 17; offset = 0; if ( ci->team != TEAM_SPECTATOR ) { if ( ci->powerups & ( (1 << PW_REDFLAG) | (1 << PW_BLUEFLAG) ) ) { CG_DrawPic( tempx-2, y-4, 20, 20, trap_R_RegisterShader( "models/multiplayer/treasure/treasure" ) ); offset += 14; tempx += 14; maxchars -= 2; } // draw the skull icon if out of lives if ( score->respawnsLeft == -2 || ( cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1 ) ) { CG_DrawPic( tempx, y, 12, 12, cgs.media.scoreEliminatedShader ); offset += 14; tempx += 14; maxchars -= 2; } else if( cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0 ) { CG_DrawPic( tempx + 1, y + 1, 10, 10, cgs.media.medicIcon ); offset += 14; tempx += 14; maxchars -= 2; } } // draw name CG_DrawStringExt( tempx, y, ci->name, hcolor, qfalse, qfalse, MINICHAR_WIDTH, MINICHAR_HEIGHT, maxchars ); tempx += INFO_PLAYER_WIDTH - offset; // dhm - nerve if ( ci->team == TEAM_SPECTATOR ) { const char *s; int w, totalwidth; totalwidth = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH - 8; s = CG_TranslateString( "^3SPECTATOR" ); w = CG_DrawStrlen( s ) * MINICHAR_WIDTH; CG_DrawSmallString( tempx + totalwidth - w, y, s, fade ); return; } else if ( cg.snap->ps.persistant[PERS_TEAM] == ci->team ) { CG_DrawStringExt( tempx, y, CG_TranslateString( BG_ShortClassnameForNumber( score->playerClass ) ), hcolor, qfalse, qfalse, MINICHAR_WIDTH, MINICHAR_HEIGHT, 0 );// CG_DrawSmallString( tempx, y, CG_TranslateString( s ), fade ); }//.........这里部分代码省略.........
开发者ID:BackupTheBerlios,项目名称:et-flf-svn,代码行数:101,
示例8: WM_DrawClientScorestatic void WM_DrawClientScore( int x, int y, score_t *score, float *color, float fade ) { int maxchars, offset; int i, j; float tempx; vec4_t hcolor; clientInfo_t *ci; char buf[64]; if ( y + SMALLCHAR_HEIGHT >= 470 ) return; ci = &cgs.clientinfo[score->client]; if ( score->client == cg.snap->ps.clientNum ) { tempx = x; hcolor[3] = fade * 0.3; VectorSet( hcolor, .5f, .5f, .2f ); // DARK-RED CG_FillRect( tempx, y + 1, INFO_PLAYER_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_PLAYER_WIDTH; if ( ci->team == TEAM_SPECTATOR ) { int width; width = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH; CG_FillRect( tempx, y + 1, width - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += width; } else { CG_FillRect( tempx, y + 1, INFO_CLASS_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_CLASS_WIDTH; if( cg_gameType.integer == GT_WOLF_LMS ) { CG_FillRect( tempx, y + 1, INFO_SCORE_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_SCORE_WIDTH; } else { CG_FillRect( tempx, y + 1, INFO_XP_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_XP_WIDTH; } CG_FillRect( tempx, y + 1, INFO_LATENCY_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_LATENCY_WIDTH; if( cg_gameType.integer != GT_WOLF_LMS ) { CG_FillRect( tempx, y + 1, INFO_LIVES_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_LIVES_WIDTH; } } } tempx = x; // DHM - Nerve VectorSet( hcolor, 1, 1, 1 ); hcolor[3] = fade; maxchars = 16; offset = 0; if ( ci->team != TEAM_SPECTATOR ) { if ( ci->powerups & ( (1 << PW_REDFLAG) | (1 << PW_BLUEFLAG) ) ) { CG_DrawPic( tempx-4, y, 16, 16, cgs.media.objectiveShader ); offset += 8; tempx += 12; maxchars -= 2; } // draw the skull icon if out of lives if( score->respawnsLeft == -2 || (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1 ) ) { CG_DrawPic( tempx, y, 18, 18, cgs.media.scoreEliminatedShader ); offset += 18; tempx += 18; maxchars -= 2; } else if( cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0 ) { CG_DrawPic( tempx + 1, y + 1, 16, 16, cgs.media.medicIcon ); offset += 18; tempx += 18; maxchars -= 2; } } // draw name CG_DrawStringExt( tempx, y, ci->name, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars ); maxchars -= CG_DrawStrlen( ci->name ); // draw medals buf[0] = '/0'; for( i = 0; i < SK_NUM_SKILLS; i++ ) { for( j = 0; j < ci->medals[i]; j++ ) Q_strcat( buf, sizeof(buf), va( "^%c%c", COLOR_RED + i, skillNames[i][0] ) ); } maxchars--; CG_DrawStringExt( tempx + (BG_drawStrlen(ci->name) * SMALLCHAR_WIDTH + SMALLCHAR_WIDTH), y, buf, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars ); tempx += INFO_PLAYER_WIDTH - offset; if ( ci->team == TEAM_SPECTATOR ) { const char *s; int w, totalwidth;//.........这里部分代码省略.........
开发者ID:BackupTheBerlios,项目名称:et-flf-svn,代码行数:101,
示例9: CG_DrawSmallStringColorvoid CG_DrawSmallStringColor( int x, int y, const char *s, const vector4 *color ) { CG_DrawStringExt(x, y, s, color, qtrue, qfalse, SMALLCHAR_WIDTH * cgs.widthRatioCoef, SMALLCHAR_HEIGHT, 0);}
开发者ID:Arcadiaprime,项目名称:japp,代码行数:3,
示例10: CG_DrawBigStringColorvoid CG_DrawBigStringColor( int x, int y, const char *s, const vector4 *color ) { CG_DrawStringExt(x, y, s, color, qtrue, qtrue, BIGCHAR_WIDTH * cgs.widthRatioCoef, BIGCHAR_HEIGHT, 0);}
开发者ID:Arcadiaprime,项目名称:japp,代码行数:3,
示例11: CG_DrawTinyStringColorvoid CG_DrawTinyStringColor( int x, int y, const char *s, vec4_t color ) { CG_DrawStringExt( x, y, s, color, qtrue, qfalse, TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 0 );}
开发者ID:chegestar,项目名称:omni-bot,代码行数:3,
示例12: WM_DrawClientScorestatic void WM_DrawClientScore(int x, int y, score_t * score, float *color, float fade){ int maxchars, offset; int i, j; float tempx; vec4_t hcolor; clientInfo_t *ci; char buf[64]; // CHRUKER: b0?? - Was using the wrong char height for this calculation if(y + SMALLCHAR_HEIGHT >= 470) { return; } ci = &cgs.clientinfo[score->client]; if(score->client == cg.snap->ps.clientNum) { hcolor[3] = fade * 0.3; VectorSet(hcolor, .5f, .5f, .2f); // DARK-RED // CHRUKER: b077 - Player highlighting was split into columns CG_FillRect( x-5, y, (INFO_PLAYER_WIDTH + INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH + 5), SMALLCHAR_HEIGHT - 1, hcolor ); } tempx = x; // DHM - Nerve VectorSet(hcolor, 1, 1, 1); hcolor[3] = fade; maxchars = 16; offset = 0; if(ci->team != TEAM_SPECTATOR) { if(ci->powerups & ((1 << PW_REDFLAG) | (1 << PW_BLUEFLAG))) { // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 3, y + 1, 14, 14, cgs.media.objectiveShader ); offset += 14; // CHRUKER: b072 - Need to match tempx or else the other text gets offset tempx += 14; maxchars -= 2; } // draw the skull icon if out of lives if(score->respawnsLeft == -2 || (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1)) { // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 3, y + 1, 14, 14, cgs.media.scoreEliminatedShader ); offset += 14; tempx += 14; maxchars -= 2; } else if(cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0) { // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 3, y + 1, 14, 14, cgs.media.medicIcon ); offset += 14; tempx += 14; maxchars -= 2; } } // draw name CG_DrawStringExt(tempx, y, ci->name, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars); maxchars -= CG_DrawStrlen(ci->name); // draw medals buf[0] = '/0'; for(i = 0; i < SK_NUM_SKILLS; i++) { for(j = 0; j < ci->medals[i]; j++) Q_strcat(buf, sizeof(buf), va("^%c%c", COLOR_RED + i, skillNames[i][0])); } maxchars--; // CHRUKER: b032 - Medals clipped wrong in scoreboard when you're dead, because CG_DrawStringExt will draw // everything if maxchars <= 0 if (maxchars > 0) { CG_DrawStringExt(tempx + (BG_drawStrlen(ci->name) * SMALLCHAR_WIDTH + SMALLCHAR_WIDTH), y, buf, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars); } tempx += INFO_PLAYER_WIDTH - offset; if(ci->team == TEAM_SPECTATOR) { const char *s; int w, totalwidth; totalwidth = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH - 8; // CHRUKER: b031 - Show connecting people as connecting if (score->ping == -1)//.........这里部分代码省略.........
开发者ID:DerSaidin,项目名称:OpenWolf,代码行数:101,
示例13: WM_DrawClientScore_Smallstatic void WM_DrawClientScore_Small(int x, int y, score_t * score, float *color, float fade){ int maxchars, offset; float tempx; vec4_t hcolor; clientInfo_t *ci; // CHRUKER: b033 - Added to draw medals int i, j; char buf[64]; if(y + MINICHAR_HEIGHT >= 470) { return; } ci = &cgs.clientinfo[score->client]; if(score->client == cg.snap->ps.clientNum) { hcolor[3] = fade * 0.3; VectorSet(hcolor, .5f, .5f, .2f); // DARK-RED // CHRUKER: b077 - Player highlighting was split into columns CG_FillRect( x-5, y, (INFO_PLAYER_WIDTH + INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH + 5), MINICHAR_HEIGHT - 1, hcolor ); } tempx = x; // DHM - Nerve VectorSet(hcolor, 1, 1, 1); hcolor[3] = fade; // CHRUKER: b033 - Corrected to draw medals maxchars = 16; offset = 0; if(ci->team != TEAM_SPECTATOR) { if(ci->powerups & ((1 << PW_REDFLAG) | (1 << PW_BLUEFLAG))) { // CHRUKER: b071 - Objective carrier icon missing on compact scoreboard // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 1, y + 1, 10, 10, cgs.media.objectiveShader ); offset += 10; tempx += 10; maxchars -= 2; } // draw the skull icon if out of lives if(score->respawnsLeft == -2 || (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1)) { // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 1, y + 1, 10, 10, cgs.media.scoreEliminatedShader ); offset += 10; tempx += 10; maxchars -= 2; } else if(cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0) { // CHRUKER: b078 - Medic, death and objective icons on the scoreboard are drawn too big CG_DrawPic( tempx - 1, y + 1, 10, 10, cgs.media.medicIcon ); offset += 10; tempx += 10; maxchars -= 2; } } // draw name CG_DrawStringExt(tempx, y, ci->name, hcolor, qfalse, qfalse, MINICHAR_WIDTH, MINICHAR_HEIGHT, maxchars); // CHRUKER: b033 - Added to draw medals maxchars -= CG_DrawStrlen( ci->name ); buf[0] = '/0'; for( i = 0; i < SK_NUM_SKILLS; i++ ) { for( j = 0; j < ci->medals[i]; j++ ) { Q_strcat( buf, sizeof(buf), va( "^%c%c", COLOR_RED + i, skillNames[i][0] ) ); } } maxchars--; if (maxchars > 0) CG_DrawStringExt( tempx + (BG_drawStrlen(ci->name) * MINICHAR_WIDTH + MINICHAR_WIDTH), y, buf, hcolor, qfalse, qfalse, MINICHAR_WIDTH, MINICHAR_HEIGHT, maxchars ); // b033 tempx += INFO_PLAYER_WIDTH - offset; // dhm - nerve if(ci->team == TEAM_SPECTATOR) { const char *s; int w, totalwidth; totalwidth = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH - 8; // CHRUKER: b031 - Show connecting people as connecting//.........这里部分代码省略.........
开发者ID:DerSaidin,项目名称:OpenWolf,代码行数:101,
示例14: WM_DrawClientScorestatic void WM_DrawClientScore( int x, int y, score_t *score, float *color, float fade ) { int maxchars, offset; float tempx; vec4_t hcolor; clientInfo_t *ci; if ( y + SMALLCHAR_HEIGHT >= 470 ) { return; } ci = &cgs.clientinfo[score->client]; if ( score->client == cg.snap->ps.clientNum ) { tempx = x; hcolor[3] = fade * 0.3; VectorSet( hcolor, 0.4452, 0.1172, 0.0782 ); // DARK-RED CG_FillRect( tempx, y + 1, INFO_PLAYER_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_PLAYER_WIDTH; if ( ci->team == TEAM_SPECTATOR ) { int width; width = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH; CG_FillRect( tempx, y + 1, width - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += width; } else { CG_FillRect( tempx, y + 1, INFO_CLASS_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_CLASS_WIDTH; CG_FillRect( tempx, y + 1, INFO_SCORE_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_SCORE_WIDTH; CG_FillRect( tempx, y + 1, INFO_LATENCY_WIDTH - INFO_BORDER, SMALLCHAR_HEIGHT - 1, hcolor ); tempx += INFO_LATENCY_WIDTH; } } tempx = x; // DHM - Nerve VectorSet( hcolor, 1, 1, 1 ); hcolor[3] = fade; maxchars = 17; offset = 0; if ( ci->team != TEAM_SPECTATOR ) { if ( ci->powerups & ( ( 1 << PW_REDFLAG ) | ( 1 << PW_BLUEFLAG ) ) ) { CG_DrawPic( tempx - 4, y - 4, 24, 24, trap_R_RegisterShader( "models/multiplayer/treasure/treasure" ) ); offset += 16; tempx += 16; maxchars -= 2; } // draw the skull icon if out of lives if ( score->respawnsLeft == -2 ) { CG_DrawPic( tempx, y, 18, 18, cgs.media.scoreEliminatedShader ); offset += 18; tempx += 18; maxchars -= 2; } } // draw name CG_DrawStringExt( tempx, y, ci->name, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars ); tempx += INFO_PLAYER_WIDTH - offset; // dhm - nerve if ( ci->team == TEAM_SPECTATOR ) { const char *s; int w, totalwidth; totalwidth = INFO_CLASS_WIDTH + INFO_SCORE_WIDTH + INFO_LATENCY_WIDTH - 8; s = CG_TranslateString( "^3SPECTATOR" ); w = CG_DrawStrlen( s ) * SMALLCHAR_WIDTH; CG_DrawSmallString( tempx + totalwidth - w, y, s, fade ); return; } else if ( cg.snap->ps.persistant[PERS_TEAM] == ci->team ) { int val = score->playerClass; // cg_entities[ ci->clientNum ].currentState.teamNum; const char *s; if ( val == 0 ) { s = "Soldr"; } else if ( val == 1 ) { s = "Medic"; } else if ( val == 2 ) { s = "Engr"; } else if ( val == 3 ) { s = "Lieut"; } else { s = ""; } CG_DrawSmallString( tempx, y, CG_TranslateString( s ), fade ); } tempx += INFO_CLASS_WIDTH;//.........这里部分代码省略.........
开发者ID:chegestar,项目名称:omni-bot,代码行数:101,
示例15: WM_DrawClientScorestatic void WM_DrawClientScore(int x, int y, score_t *score, float *color, float fade){ int maxchars, offset; int i, j; float tempx; vec4_t hcolor; clientInfo_t *ci; char buf[64]; if (y + SMALLCHAR_HEIGHT >= 470) { return; } ci = &cgs.clientinfo[score->client]; if (score->client == cg.snap->ps.clientNum) { hcolor[3] = fade * 0.3; VectorSet(hcolor, .5f, .5f, .2f); // DARK-RED CG_FillRect(x - 5, y, (INFO_TOTAL_WIDTH + 5), SMALLCHAR_HEIGHT - 1, hcolor); } tempx = x; VectorSet(hcolor, 1, 1, 1); hcolor[3] = fade; maxchars = 16; offset = 0; if (ci->team != TEAM_SPECTATOR) { /* FIXME: adjust x,y coordinates ... // draw ready icon if client is ready.. if (score->scoreflags & 1 && cgs.gamestate != GS_PLAYING) { CG_DrawPic(tempx - 3, y + 1, 14, 14, cgs.media.readyIcon); offset += 14; tempx += 14; maxchars -= 2; } */ if (ci->powerups & ((1 << PW_REDFLAG) | (1 << PW_BLUEFLAG))) { CG_DrawPic(tempx - 1, y + 1, 14, 14, cgs.media.objectiveShader); offset += 14; tempx += 14; maxchars -= 2; } if (cgs.gametype == GT_WOLF_GOLDY && ci->team == cgs.clientinfo[cg.clientNum].team && ci->gold > 0 && ci->health != -1) { CG_DrawPic(tempx - 1, y + 1, 14, 14, cgs.media.goldIcon); offset += 14; tempx += 14; maxchars -= 2; } // draw the skull icon if out of lives if (score->respawnsLeft == -2 || (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1)) { CG_DrawPic(tempx - 1, y + 1, 14, 14, cgs.media.scoreEliminatedShader); offset += 14; tempx += 14; maxchars -= 2; } else if (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0) { CG_DrawPic(tempx - 1, y + 1, 14, 14, cgs.media.medicIcon); offset += 14; tempx += 14; maxchars -= 2; } } // GeoIP - draw flag before name if (score->ping != -1 && score->ping != 999 && cg_countryflags.integer) { if (cf_draw(tempx - 11, y - 8, fade, ci->clientNum)) { offset += 14; tempx += 14; maxchars -= 2; } } // draw name CG_DrawStringExt(tempx, y, ci->name, hcolor, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, maxchars); maxchars -= CG_DrawStrlen(ci->name); // draw medals buf[0] = '/0'; for (i = 0; i < SK_NUM_SKILLS; i++) { for (j = 0; j < ci->medals[i]; j++) { Q_strcat(buf, sizeof(buf), va("^%c%c", COLOR_RED + i, skillNames[i][0]));//.........这里部分代码省略.........
开发者ID:MartijnB,项目名称:ETGoldy,代码行数:101,
示例16: WM_DrawClientScore_Smallstatic void WM_DrawClientScore_Small(int x, int y, score_t *score, float *color, float fade){ int maxchars, offset; float tempx; vec4_t hcolor; clientInfo_t *ci; int i, j; // To draw medals char buf[64]; // To draw medals if (y + MINICHAR_HEIGHT >= 470) { return; } ci = &cgs.clientinfo[score->client]; if (score->client == cg.snap->ps.clientNum) { hcolor[3] = fade * 0.3; VectorSet(hcolor, .5f, .5f, .2f); // DARK-RED CG_FillRect(x - 5, y, (INFO_TOTAL_WIDTH + 5), MINICHAR_HEIGHT - 1, hcolor); } tempx = x; VectorSet(hcolor, 1, 1, 1); hcolor[3] = fade; maxchars = 16; offset = 0; if (ci->team != TEAM_SPECTATOR) { /* FIXME adjust x,y coordinates ... // draw ready icon if client is ready.. if ( score->scoreflags & 1 && ( cgs.gamestate == GS_WARMUP || cgs.gamestate == GS_INTERMISSION ) ) { CG_DrawPic( tempx-2 + 1, y + 1, 14, 14, cgs.media.readyIcon ); offset += 14; tempx += 14; maxchars -= 2; } */ if (ci->powerups & ((1 << PW_REDFLAG) | (1 << PW_BLUEFLAG))) { CG_DrawPic(tempx + 1, y + 1, 10, 10, cgs.media.objectiveShader); offset += 14; tempx += 14; maxchars -= 2; } // draw the skull icon if out of lives if (score->respawnsLeft == -2 || (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == -1)) { CG_DrawPic(tempx, y, 12, 12, cgs.media.scoreEliminatedShader); offset += 14; tempx += 14; maxchars -= 2; } else if (cgs.clientinfo[cg.clientNum].team != TEAM_SPECTATOR && ci->team == cgs.clientinfo[cg.clientNum].team && cgs.clientinfo[score->client].health == 0) { CG_DrawPic(tempx + 1, y + 1, 10, 10, cgs.media.medicIcon); offset += 14; tempx += 14; maxchars -= 2; } } // GeoIP - draw flag before name if (score->ping != -1 && score->ping != 999 && cg_countryflags.integer) { if (cf_draw(tempx - 11, y - 10, fade, ci->clientNum)) { offset += 14; tempx += 14; maxchars -= 2; } } // draw name CG_DrawStringExt(tempx, y, ci->name, hcolor, qfalse, qfalse, MINICHAR_WIDTH, MINICHAR_HEIGHT, maxchars); // draw medals maxchars -= CG_DrawStrlen(ci->name); buf[0] = '/0'; for (i = 0; i < SK_NUM_SKILLS; i++) { for (j = 0; j < ci->medals[i]; j++) { Q_strcat(buf, sizeof(buf), va("^%c%c", COLOR_RED + i, skillNames[i][0])); } maxchars--; } if (maxchars > 0) {//.........这里部分代码省略.........
开发者ID:harleking,项目名称:etlegacy,代码行数:101,
示例17: CG_DrawTourneyScoreboard/*=======================================================================================================================================CG_DrawTourneyScoreboardDraw the oversize scoreboard for tournaments.=======================================================================================================================================*/void CG_DrawTourneyScoreboard(void) { const char *s; vec4_t color; int min, tens, ones; clientInfo_t *ci; int y; int i; // request more scores regularly if (cg.scoresRequestTime + 2000 < cg.time) { cg.scoresRequestTime = cg.time; trap_SendClientCommand("score"); } // draw the dialog background color[0] = color[1] = color[2] = 0; color[3] = 1; CG_FillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color); color[0] = 1; color[1] = 1; color[2] = 1; color[3] = 1; // print the message of the day s = CG_ConfigString(CS_MOTD); if (!s[0]) { s = "Scoreboard"; } // print optional title CG_CenterGiantLine(8, s); // print server time ones = cg.time / 1000; min = ones / 60; ones %= 60; tens = ones / 10; ones %= 10; s = va("%i:%i%i", min, tens, ones); CG_CenterGiantLine(64, s); // print the two scores y = 160; if (cgs.gametype >= GT_TEAM) { // teamplay scoreboard CG_DrawStringExt(8, y, "Red Team", color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); s = va("%i", cg.teamScores[0]); CG_DrawStringExt(632 - GIANT_WIDTH * strlen(s), y, s, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); y += 64; CG_DrawStringExt(8, y, "Blue Team", color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); s = va("%i", cg.teamScores[1]); CG_DrawStringExt(632 - GIANT_WIDTH * strlen(s), y, s, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); } else { // free for all scoreboard for (i = 0; i < MAX_CLIENTS; i++) { ci = &cgs.clientinfo[i]; if (!ci->infoValid) { continue; } if (ci->team != TEAM_FREE) { continue; } CG_DrawStringExt(8, y, ci->name, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); s = va("%i", ci->score); CG_DrawStringExt(632 - GIANT_WIDTH * strlen(s), y, s, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0); y += 64; } }}
开发者ID:ioid3-games,项目名称:ioid3-q3,代码行数:81,
示例18: CG_DrawBigStringColorvoid CG_DrawBigStringColor( int x, int y, const char *s, vec4_t color ) { CG_DrawStringExt( x, y, s, color, qtrue, qtrue, BIGCHAR_WIDTH, BIGCHAR_HEIGHT, 0 );}
开发者ID:blaenk,项目名称:jedioutcast,代码行数:3,
示例19: CG_DrawSmallStringvoid CG_DrawSmallString( int x, int y, const char *s, float alpha ) { vector4 color; VectorSet4( &color, 1.0f, 1.0f, 1.0f, alpha ); CG_DrawStringExt( x, y, s, &color, qfalse, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, 0 );}
开发者ID:boyisgood86,项目名称:japp,代码行数:6,
示例20: CG_DrawInformationvoid CG_DrawInformation(void){ const char *s; const char *info; const char *sysInfo; const char *line; int x = 8, y, value, bar = 0; qhandle_t levelshot, shadow, clapper; //qhandle_t detail; qhandle_t percentBox; char buf[1024]; //qboolean skipdetail; vec4_t color1 = { .75, .75, .75, 1 }, color2 = { 1, 1, 1, 1 }; info = CG_ConfigString(CS_SERVERINFO); sysInfo = CG_ConfigString(CS_SYSTEMINFO); /* Makro - no longer used //Makro - settings read from the worldspawn entity s = CG_ConfigString( CS_LOADINGSCREEN ); color1[0] = atof(Info_ValueForKey(s, "r1")); color1[1] = atof(Info_ValueForKey(s, "g1")); color1[2] = atof(Info_ValueForKey(s, "b1")); color2[0] = atof(Info_ValueForKey(s, "r2")); color2[1] = atof(Info_ValueForKey(s, "g2")); color2[2] = atof(Info_ValueForKey(s, "b2")); color1[3] = color2[3] = 1; skipdetail = ( atoi(Info_ValueForKey(s, "nodetail")) != 0 ); */ s = Info_ValueForKey(info, "mapname"); shadow = trap_R_RegisterShaderNoMip("ui/assets/rq3-main-shadow-1.tga"); levelshot = trap_R_RegisterShaderNoMip(va("levelshots/load_%s.tga", s)); percentBox = trap_R_RegisterShaderNoMip("gfx/percent.tga"); //Makro - added if (!levelshot) { levelshot = trap_R_RegisterShaderNoMip(va("levelshots/%s.tga", s)); } if (!levelshot) { //Elder: changed levelshot = trap_R_RegisterShaderNoMip("levelshots/rq3-unknownmap.tga"); //skipdetail = qtrue; } trap_R_SetColor(NULL); CG_DrawPic(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, levelshot); /* Makro - removed // blend a detail texture over it //Elder: changed to RQ3 detail overlay if (!skipdetail) { detail = trap_R_RegisterShader( "rq3-levelShotDetail" ); trap_R_DrawStretchPic( 0, 0, cgs.glconfig.vidWidth, cgs.glconfig.vidHeight, 0, 0, 2.5, 2, detail ); } */ //Elder: "Letterbox" mask //Makro - changed it a bit CG_FillRect(0, 0, SCREEN_WIDTH, LS_TOPMARGIN, colorBlack); CG_FillRect(0, LS_TOPMARGIN, SCREEN_WIDTH, 2, colorMdGrey); CG_FillRect(0, SCREEN_HEIGHT - LS_BOTTOMMARGIN, SCREEN_WIDTH, LS_BOTTOMMARGIN, colorBlack); CG_FillRect(0, SCREEN_HEIGHT - LS_BOTTOMMARGIN - 2, SCREEN_WIDTH, 2, colorMdGrey); //Makro - shadow CG_DrawPic(0, LS_TOPMARGIN + 2, 640, 12, shadow); //Elder: mapname //Makro - removed //UI_DrawProportionalString(x, 26, s, UI_LEFT|UI_DROPSHADOW, colorDkGrey); //CG_DrawBigStringColor(4, 24, s, color_red); //Elder: removed // draw the icons of things as they are loaded //CG_DrawLoadingIcons(); // draw info string information //Elder: Initial y-position y = LS_TOPMARGIN - 8 - LS_CHAR_HEIGHT; // map-specific message (long map name) s = CG_ConfigString(CS_MESSAGE); if (s[0]) { //Makro - allow color-coded text; also changed to use custom color instead of colorLtGrey //CG_DrawSmallStringColor(x, y, s, colorMdGrey); //CG_DrawStringExt(x, y, s, colorWhite, qtrue, qfalse, LS_CHAR_WIDTH, LS_CHAR_HEIGHT, 0); CG_DrawStringExt(x, y, s, color1, qtrue, qfalse, LS_CHAR_WIDTH, LS_CHAR_HEIGHT, 0); y -= (2 * LS_CHAR_HEIGHT); } //y += LS_CHAR_HEIGHT; // game type switch (cgs.gametype) { case GT_FFA: line = "CLASSIC ACTION DEATHMATCH"; break; case GT_SINGLE_PLAYER: line = "SINGLE PLAYER";//.........这里部分代码省略.........
开发者ID:Zekom,项目名称:reaction,代码行数:101,
示例21: CG_DrawBigStringColorvoid CG_DrawBigStringColor( int x, int y, const char *s, vec4_t color ) { CG_DrawStringExt( x, y, s, color, qtrue, qtrue, BIGCHAR_WIDTH, BIGCHAR_HEIGHT, 0, cgs.media.charsetShader );}
开发者ID:NikitaRus,项目名称:JediKnightGalaxies,代码行数:3,
示例22: CG_DrawSmallStringColorvoid CG_DrawSmallStringColor( int x, int y, const char *s, vec4_t color ) { CG_DrawStringExt( x, y, s, color, qtrue, qfalse, SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, 0 );}
开发者ID:AdrienJaguenet,项目名称:Enemy-Territory,代码行数:3,
示例23: CG_DrawBigStringvoid CG_DrawBigString( int x, int y, const char *s, float alpha ) { vector4 color; VectorSet4( &color, 1.0f, 1.0f, 1.0f, alpha ); CG_DrawStringExt(x, y, s, &color, qfalse, qtrue, BIGCHAR_WIDTH * cgs.widthRatioCoef, BIGCHAR_HEIGHT, 0);}
开发者ID:Arcadiaprime,项目名称:japp,代码行数:6,
注:本文中的CG_DrawStringExt函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CG_Error函数代码示例 C++ CG_DrawPic函数代码示例 |