auto record = player_record;
if (!csgo.local()->is_alive())
return false;
float angle_diff = math::angle_diff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);
Vector first = ZERO, second = ZERO, third = ZERO;
first = Vector(player->hitbox_position(HITBOX_HEAD).x, player->hitbox_position(HITBOX_HEAD).y + min(angle_diff, 35), player->hitbox_position(HITBOX_HEAD).z);
second = Vector(player->hitbox_position(HITBOX_HEAD).x, player->hitbox_position(HITBOX_HEAD).y, player->hitbox_position(HITBOX_HEAD).z);
third = Vector(player->hitbox_position(HITBOX_HEAD).x, player->hitbox_position(HITBOX_HEAD).y - min(angle_diff, 35), player->hitbox_position(HITBOX_HEAD).z);
Ray_t one, two, three;
trace_t tone, ttwo, ttree;
CTraceFilter fl;
fl.pSkip = player;
one.Init(csgo.local()->get_shoot_position(), first);
two.Init(csgo.local()->get_shoot_position(), second);
three.Init(csgo.local()->get_shoot_position(), third);
m_trace()->TraceRay(one, MASK_PLAYERSOLID, &fl, &tone);
m_trace()->TraceRay(two, MASK_PLAYERSOLID, &fl, &ttwo);
m_trace()->TraceRay(three, MASK_PLAYERSOLID, &fl, &ttree);
if (!tone.allsolid && !ttwo.allsolid && !ttree.allsolid && tone.fraction < 0.97 && ttwo.fraction < 0.97 && ttree.fraction < 0.97)
return true;
float lby = fabs(math::normalize_yaw(player->m_flLowerBodyYawTarget()));
if (lby < 35 && lby > -35)
return true;
return false;