rendered paste bodyaimvec* Poopbot::TargetRegion(int ax)
{
vec3_t vecEnd, up, right, forward, EntViewOrg,PredOrg, playerAngles;
PredictTarget(ax,PredOrg);
vector<aimvec>::iterator si, end;
if (vPlayers[ax].getEnt()->curstate.usehull == 0)
{
si = AimVecsS.begin(); end = AimVecsS.end();
} else {
si = AimVecsD.begin(); end = AimVecsD.end();
}
if (vPlayers[ax].getEnt()->curstate.gaitsequence == 6)
{
si = AimVecsJ.begin(); end = AimVecsJ.end();
}
playerAngles[0]=0;
playerAngles[1]=vPlayers[ax].getEnt()->angles[1];
playerAngles[2]=0;
gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
forward[2] = -forward[2];
for (;si!=end;++si)
{
vPlayers[ax].vVecSpot = gEngfuncs.GetEntityByIndex(ax)->origin + forward * si->f + up * si->h + right * si->r;
if(PathFree(me.pmEyePos,vPlayers[ax].vVecSpot)) return &(*si);
else
if(cvar.autohead)
{
vPlayers[ax].vVecSpot = gEngfuncs.GetEntityByIndex(ax)->origin + (up * (si->h * cvar.ah_h)) + (forward * (si->f * cvar.ah_f)) + (right * (si->r * cvar.ah_r));
if(PathFree(me.pmEyePos,vPlayers[ax].vVecSpot )) return &(*si);
else
vPlayers[ax].vVecSpot = gEngfuncs.GetEntityByIndex(ax)->origin + (up * (si->h * cvar.ah_h )) + (forward * (si->f * (cvar.ah_f * -1))) + (right * (si->r * (cvar.ah_r * -1)));
if(PathFree(me.pmEyePos,vPlayers[ax].vVecSpot )) return &(*si);
else
vPlayers[ax].vVecSpot = gEngfuncs.GetEntityByIndex(ax)->origin + (up * (si->h * cvar.ah_h/2)) + (forward * (si->f * cvar.ah_f/2)) + (right * (si->r * cvar.ah_r/2));
if(PathFree(me.pmEyePos,vPlayers[ax].vVecSpot )) return &(*si);
else
vPlayers[ax].vVecSpot = gEngfuncs.GetEntityByIndex(ax)->origin + (up * (si->h * cvar.ah_h/2)) + (forward * (si->f * (cvar.ah_f/2 * -1))) + (right * (si->r * (cvar.ah_r/2 * -1)));
if(PathFree(me.pmEyePos,vPlayers[ax].vVecSpot )) return &(*si);
}
}
return NULL;
}