void MinWalk(CUserCmd* get_cmd, float get_speed)
{
if (get_speed <= 0.f)
return;
float min_speed = (float)(FastSqrt(square(get_cmd->forwardmove) + square(get_cmd->sidemove) + square(get_cmd->upmove)));
if (min_speed <= 0.f)
return;
if (get_cmd->buttons & IN_DUCK)
get_speed *= 2.94117647f;
if (min_speed <= get_speed)
return;
float kys = get_speed / min_speed;
get_cmd->forwardmove *= kys;
get_cmd->sidemove *= kys;
get_cmd->upmove *= kys;
}
auto weapon_auto = *m_local->GetWeapon()->GetItemDefinitionIndex() == WEAPON_G3SG1 && WEAPON_SCAR20;
auto weapon_awp = *m_local->GetWeapon()->GetItemDefinitionIndex() == WEAPON_AWP;
auto weapon_ssg = *m_local->GetWeapon()->GetItemDefinitionIndex() == WEAPON_SSG08;
if (weapon_auto) {
if ( m_local->GetFlags() & FL_ONGROUND) {
MinWalk(game::globals.UserCmd, 40);
}
}
if (weapon_awp) {
if (m_local->GetFlags() & FL_ONGROUND) {
MinWalk(game::globals.UserCmd, 33);
}
}
if (weapon_ssg) {
if (m_local->GetFlags() & FL_ONGROUND) {
MinWalk(game::globals.UserCmd, 70);
}
}
if (!weapon_awp && !weapon_auto && !weapon_ssg) { //for every weapon btw
if (m_local->GetFlags() & FL_ONGROUND) {
MinWalk(game::globals.UserCmd, 34);
}
}