bool Plr::update_physic(float dt, uint update_idx) {
  if (flags & EF_NO_OFFSET)
    return check_hit(update_idx);
  cnauto check_dist = (p_info ? p_info->check_dist : 4.0f);
  // игрок смещается глобально и чекмувается обратно на 0
  phys.pos += g_offset.dir * g_offset.spd * dt;
  if ( !checkmove( -g_offset.dir, g_offset.spd, check_dist, dt,
  update_idx))
    return false;
  // доп функции движения:
  if (pf0 and !(this->*pf0)(dt)) return false;
  if (pf1 and !(this->*pf1)(dt)) return false;
  if (flags & EF_NO_MOVE) // без самостоятельного движения
    return check_hit(update_idx);
  phys.update_speed(dt); // обновление скорости
  // движение:
  return checkmove(phys.dir, phys.spd, check_dist, dt, update_idx);
} // update_physic