Index: cg_weapons.c =================================================================== --- cg_weapons.c (revision 802) +++ cg_weapons.c (working copy) @@ -1136,7 +1136,7 @@ if( !BG_InventoryContainsUpgrade( upgrade, cg.snap->ps.stats ) ) return qfalse; - return qtrue; + return BG_FindUsableForUpgrade( upgrade ); } @@ -1162,6 +1162,8 @@ qboolean vertical; centity_t *cent; playerState_t *ps; + + int colinfo[ 64 ]; cent = &cg_entities[ cg.snap->ps.clientNum ]; ps = &cg.snap->ps; @@ -1201,6 +1203,18 @@ { if( !BG_InventoryContainsWeapon( i, cg.snap->ps.stats ) ) continue; + + { + int ammo, clips; + + BG_UnpackAmmoArray( i, cg.snap->ps.ammo, cg.snap->ps.powerups, &ammo, &clips ); + + if( !ammo && !clips && !BG_FindInfinteAmmoForWeapon( i ) ) + colinfo[ numItems ] = 1; + else + colinfo[ numItems ] = 0; + + } if( i == cg.weaponSelect ) selectedItem = numItems; @@ -1214,6 +1228,10 @@ { if( !BG_InventoryContainsUpgrade( i, cg.snap->ps.stats ) ) continue; + colinfo[ numItems ] = 0; + if( !BG_FindUsableForUpgrade ( i ) ) + colinfo[ numItems ] = 2; + if( i == cg.weaponSelect - 32 ) selectedItem = numItems; @@ -1230,6 +1248,20 @@ if( ( item >= 0 ) && ( item < numItems ) ) { + switch( colinfo[ item ] ) + { + case 0: + color = colorCyan; + break; + case 1: + color = colorRed; + break; + case 2: + color = colorMdGrey; + break; + } + color[3] = 0.5; + trap_R_SetColor( color ); if( items[ item ] <= 32 )