diff options
author | Tim Angus <tim@ngus.net> | 2002-12-01 03:17:55 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2002-12-01 03:17:55 +0000 |
commit | 571cc865a2b4a07c7667bd8a49ffe62ac72fc193 (patch) | |
tree | 0bdb782f1aa45bbd61ddb6535d8ed919d4bcf390 /src | |
parent | b2fbc3d57230c38014d44fbda8a8e8f22609a994 (diff) |
* New ownerdraws for the alien hud
Diffstat (limited to 'src')
-rw-r--r-- | src/cgame/cg_draw.c | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/cgame/cg_draw.c b/src/cgame/cg_draw.c index 3da8583a..e95a60cf 100644 --- a/src/cgame/cg_draw.c +++ b/src/cgame/cg_draw.c @@ -727,6 +727,90 @@ static void CG_DrawPlayerClipsRing( rectDef_t *rect, vec4_t color, qhandle_t sha trap_R_SetColor( NULL ); } +/* +============== +CG_DrawPlayerBoosted +============== +*/ +static void CG_DrawPlayerBoosted( rectDef_t *rect, vec4_t color, qhandle_t shader ) +{ + playerState_t *ps = &cg.snap->ps; + qboolean boosted = ps->stats[ STAT_STATE ] & SS_BOOSTED; + + if( !boosted ) + return; + + if( color[ 3 ] != 0.0 ) + trap_R_SetColor( color ); + + CG_DrawPic( rect->x, rect->y, rect->w, rect->h, shader ); + trap_R_SetColor( NULL ); +} + +/* +============== +CG_DrawPlayerPoisonBarbs +============== +*/ +static void CG_DrawPlayerPoisonBarbs( rectDef_t *rect, vec4_t color, qhandle_t shader ) +{ + playerState_t *ps = &cg.snap->ps; + int x = rect->x; + int y = rect->y; + int width = rect->w; + int height = rect->h; + qboolean vertical; + int iconsize, numBarbs, i; + + BG_unpackAmmoArray( ps->weapon, ps->ammo, ps->powerups, &numBarbs, NULL, NULL ); + + if( height > width ) + { + vertical = qtrue; + iconsize = width; + } + else if( height <= width ) + { + vertical = qfalse; + iconsize = height; + } + + if( color[ 3 ] != 0.0 ) + trap_R_SetColor( color ); + + for( i = 0; i < numBarbs; i ++ ) + { + if( vertical ) + y += iconsize; + else + x += iconsize; + + CG_DrawPic( x, y, iconsize, iconsize, shader ); + } + + trap_R_SetColor( NULL ); +} + +/* +============== +CG_DrawPlayerWallclimbing +============== +*/ +static void CG_DrawPlayerWallclimbing( rectDef_t *rect, vec4_t color, qhandle_t shader ) +{ + playerState_t *ps = &cg.snap->ps; + qboolean ww = ps->stats[ STAT_STATE ] & SS_WALLCLIMBING; + + if( !ww ) + return; + + if( color[ 3 ] != 0.0 ) + trap_R_SetColor( color ); + + CG_DrawPic( rect->x, rect->y, rect->w, rect->h, shader ); + trap_R_SetColor( NULL ); +} + static void CG_DrawPlayerStamina( rectDef_t *rect, vec4_t color, float scale, int align, int textStyle, int special ) { @@ -1914,6 +1998,15 @@ void CG_OwnerDraw( float x, float y, float w, float h, float text_x, case CG_PLAYER_CLIPS_RING: CG_DrawPlayerClipsRing( &rect, color, shader ); break; + case CG_PLAYER_WALLCLIMBING: + CG_DrawPlayerWallclimbing( &rect, color, shader ); + break; + case CG_PLAYER_BOOSTED: + CG_DrawPlayerBoosted( &rect, color, shader ); + break; + case CG_PLAYER_POISON_BARBS: + CG_DrawPlayerPoisonBarbs( &rect, color, shader ); + break; case CG_AREA_SYSTEMCHAT: CG_DrawAreaSystemChat( &rect, scale, color, shader ); break; |