diff --git a/src/client/hud.qc b/src/client/hud.qc index c9c7fc8..52b1705 100644 --- a/src/client/hud.qc +++ b/src/client/hud.qc @@ -70,6 +70,10 @@ float spr_flash2[4] = { 32 / 128 // size y }; +string g_hud_icninvin; +string g_hud_icninvis; +string g_hud_icnquad; + /* precaches */ void HUD_Init(void) @@ -101,6 +105,11 @@ HUD_Init(void) g_hudsngammo = spriteframe("sprites/hudsngammo.spr", 0, 0.0f); g_hudssgammo = spriteframe("sprites/hudssgammo.spr", 0, 0.0f); + g_hud_icninvin = spriteframe("sprites/icninvin.spr", 0, 0.0f); + g_hud_icninvis = spriteframe("sprites/icninvis.spr", 0, 0.0f); + g_hud_icnquad = spriteframe("sprites/icnquad.spr", 0, 0.0f); + + HUD_AmmoNotify_Init(); HUD_DamageNotify_Init(); HUD_ItemNotify_Init(); @@ -473,6 +482,66 @@ HUD_DrawQuakeCrosshair(void) Font_DrawText(crossPos, quakeCross, FONT_20); } +void +HUD_DrawPowerupIcons(void) +{ + player pl = (player)pSeat->m_ePlayer; + vector pickupPos; + pickupPos = g_hudmins + [16, (g_hudres[1] / 2) - 32]; + + if (pl.g_items & ITEM_QUAD) { + drawsubpic( + pickupPos, + [32, 32], + g_hud_icnquad, + [0, 0], + [1.0, 1.0], + [1,1,1], + 1.0f, + 0 + ); + pickupPos[1] += 32; + } + if (pl.g_items & ITEM_INVIS) { + drawsubpic( + pickupPos, + [32, 32], + g_hud_icninvis, + [0, 0], + [1.0, 1.0], + [1,1,1], + 1.0f, + 0 + ); + pickupPos[1] += 32; + } + if (pl.g_items & ITEM_INVULN) { + drawsubpic( + pickupPos, + [32, 32], + g_hud_icninvin, + [0, 0], + [1.0, 1.0], + [1,1,1], + 1.0f, + 0 + ); + pickupPos[1] += 32; + } + if (pl.g_items & ITEM_ENVIROSUIT) { + drawsubpic( + pickupPos, + [32, 32], + g_hud_icninvis, + [0, 0], + [1.0, 1.0], + [0,1,0], + 1.0f, + 0 + ); + } +} + /* main entry */ void HUD_Draw(void) @@ -499,6 +568,7 @@ HUD_Draw(void) HUD_DrawArmor(); HUD_DrawFlashlight(); HUD_DrawNotify(); + HUD_DrawPowerupIcons(); Damage_Draw(); }