/* =============== areaZapFire =============== */ void areaZapFire( gentity_t *ent ) { trace_t tr; vec3_t end; gentity_t *traceEnt; vec3_t mins, maxs; VectorSet( mins, -LEVEL2_AREAZAP_WIDTH, -LEVEL2_AREAZAP_WIDTH, -LEVEL2_AREAZAP_WIDTH ); VectorSet( maxs, LEVEL2_AREAZAP_WIDTH, LEVEL2_AREAZAP_WIDTH, LEVEL2_AREAZAP_WIDTH ); // set aiming directions AngleVectors( ent->client->ps.viewangles, forward, right, up ); CalcMuzzlePoint( ent, forward, right, up, muzzle ); VectorMA( muzzle, LEVEL2_AREAZAP_RANGE, forward, end ); trap_Trace( &tr, muzzle, mins, maxs, end, ent->s.number, MASK_SHOT ); if( tr.surfaceFlags & SURF_NOIMPACT ) return; traceEnt = &g_entities[ tr.entityNum ]; if( ( ( traceEnt->client && traceEnt->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS ) || ( traceEnt->s.eType == ET_BUILDABLE && BG_FindTeamForBuildable( traceEnt->s.modelindex ) == BIT_HUMANS ) ) && traceEnt->health > 0 ) { G_CreateNewZap( ent, traceEnt ); } }
/* =============== areaZapFire =============== */ void areaZapFire( gentity_t *ent ) { trace_t tr; gentity_t *traceEnt; G_WideTrace( &tr, ent, LEVEL2_AREAZAP_RANGE, LEVEL2_AREAZAP_WIDTH, LEVEL2_AREAZAP_WIDTH, &traceEnt ); if ( traceEnt == NULL ) { return; } if ( ( traceEnt->client && traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) || ( traceEnt->s.eType == ET_BUILDABLE && BG_Buildable( traceEnt->s.modelindex )->team == TEAM_HUMANS ) ) { G_CreateNewZap( ent, traceEnt ); } }
/* =============== areaZapFire =============== */ void areaZapFire( gentity_t *ent ) { trace_t tr; gentity_t *traceEnt; G_CombatStats_Fire( ent, CSW_LEVEL2_ALT, LEVEL2_AREAZAP_DMG ); G_WideTrace( &tr, ent, LEVEL2_AREAZAP_RANGE, LEVEL2_AREAZAP_WIDTH, LEVEL2_AREAZAP_WIDTH, &traceEnt ); if( traceEnt == NULL ) return; if( ( traceEnt->client && traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) || ( traceEnt->s.eType == ET_BUILDABLE && BG_Buildable( traceEnt->s.modelindex )->team == TEAM_HUMANS ) || ( traceEnt->client && traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS && traceEnt->client->ps.stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL2_UPG ) ) { G_CreateNewZap( ent, traceEnt ); } }