int weapon_t::get_max_tickbase_shift()
{
if (is_knife())
return 1;
if (!can_double_tap())
return m_gamerules()->m_bIsValveDS() ? 6 : 14;
auto idx = m_iItemDefinitionIndex();
auto max_tickbase_shift = 0;
switch (idx)
{
case WEAPON_M249:
case WEAPON_MAC10:
case WEAPON_P90:
case WEAPON_MP5SD:
case WEAPON_NEGEV:
case WEAPON_MP9:
max_tickbase_shift = 6;
break;
case WEAPON_ELITE:
case WEAPON_UMP45:
case WEAPON_BIZON:
case WEAPON_TEC9:
case WEAPON_MP7:
max_tickbase_shift = 6;
break;
case WEAPON_AK47:
case WEAPON_AUG:
case WEAPON_FAMAS:
case WEAPON_GALILAR:
case WEAPON_M4A1:
case WEAPON_M4A1_SILENCER:
case WEAPON_CZ75A:
max_tickbase_shift = 6;
break;
case WEAPON_FIVESEVEN:
case WEAPON_GLOCK:
case WEAPON_P250:
case WEAPON_SG553:
max_tickbase_shift = 6;
break;
case WEAPON_HKP2000:
case WEAPON_USP_SILENCER:
max_tickbase_shift = 2;
break;
case WEAPON_DEAGLE:
max_tickbase_shift = 13;
break;
case WEAPON_G3SG1:
case WEAPON_SCAR20:
{
max_tickbase_shift = 14;
}
break;
}
if (m_gamerules()->m_bIsValveDS())
max_tickbase_shift = min(max_tickbase_shift, 6);
return max_tickbase_shift;
}