/* ============== CG_DrawWeapStability draw a bar showing current stability level (0-255), max at current weapon/ability, and 'perfect' reference mark probably only drawn for scoped weapons ============== */ void CG_DrawWeapStability( rectDef_t *rect ) { vec4_t goodColor = {0, 1, 0, 0.5f}, badColor = {1, 0, 0, 0.5f}; if(!cg_drawSpreadScale.integer) return; if( cg_drawSpreadScale.integer == 1 && !BG_IsScopedWeapon( cg.predictedPlayerState.weapon ) ) { // cg_drawSpreadScale of '1' means only draw for scoped weapons, '2' means draw all the time (for debugging) return; } if( cg.predictedPlayerState.weaponstate != WEAPON_READY ) { return; } //if(!(cg.snap->ps.aimSpreadScale)) { // forty - use the predicted values for the bar... if(!(cg.predictedPlayerState.aimSpreadScale)) { return; } if( cg.renderingThirdPerson ) { return; } //CG_FilledBar(rect->x, rect->y, rect->w, rect->h, goodColor, badColor, NULL, (float)cg.snap->ps.aimSpreadScale / 255.0f, 2|4|256); // flags (BAR_CENTER|BAR_VERT|BAR_LERP_COLOR) // forty - use the predicted values for the bar... CG_FilledBar(rect->x, rect->y, rect->w, rect->h, goodColor, badColor, NULL, (float)cg.predictedPlayerState.aimSpreadScale / 255.0f, 2|4|256); // flags (BAR_CENTER|BAR_VERT|BAR_LERP_COLOR) }
qboolean G_EmplacedGunIsMountable( gentity_t* ent, gentity_t* other ) { if ( Q_stricmp( ent->classname, "misc_mg42" ) ) { return qfalse; } if ( !other->client ) { return qfalse; } if ( BG_IsScopedWeapon( other->client->ps.weapon ) ) { return qfalse; } if ( other->client->ps.pm_flags & PMF_DUCKED ) { return qfalse; } if ( other->client->ps.persistant[PERS_HWEAPON_USE] ) { return qfalse; } if ( ent->r.currentOrigin[2] - other->r.currentOrigin[2] >= 40 ) { return qfalse; } if ( ent->r.currentOrigin[2] - other->r.currentOrigin[2] < 0 ) { return qfalse; } if ( ent->s.frame != 0 ) { return qfalse; } if ( ent->active ) { return qfalse; } if ( other->client->ps.grenadeTimeLeft ) { return qfalse; } if ( infront( ent, other ) ) { return qfalse; } return qtrue; }
qboolean G_EmplacedGunIsRepairable( gentity_t* ent, gentity_t* other ) { if ( Q_stricmp( ent->classname, "misc_mg42" ) ) { return qfalse; } if ( !other->client ) { return qfalse; } if ( BG_IsScopedWeapon( other->client->ps.weapon ) ) { return qfalse; } if ( other->client->ps.persistant[PERS_HWEAPON_USE] ) { return qfalse; } if ( ent->s.frame == 0 ) { return qfalse; } return qtrue; }