Vector IBasePlayer::GetEyePosition()
{
if (csgo->fake_duck && this->EntIndex() == interfaces.engine->GetLocalPlayer()) {
auto origin = GetOrigin();
auto vDuckHullMin = interfaces.game_movement->GetPlayerMins(true);
auto vStandHullMin = interfaces.game_movement->GetPlayerMins(false);
float fMore = (vDuckHullMin.z - vStandHullMin.z);
auto vecDuckViewOffset = interfaces.game_movement->GetPlayerViewOffset(true);
auto vecStandViewOffset = interfaces.game_movement->GetPlayerViewOffset(false);
float duckFraction = GetDuckAmount();
float tempz = ((vecDuckViewOffset.z - fMore) * duckFraction) +
(vecStandViewOffset.z * (1 - duckFraction));
origin.z += tempz;
return origin;
}
return GetOrigin() + GetVecViewOffset();
}