function wallgun_slot_2D() /* entry=471 class_id=0x0A19 slot=0x2D */
{
  local_02 = arg_0A;
  local_04 = Item.getDirFromTo16(Item.getY(local_02), Item.getX(local_02), Item.getY(arg_06), Item.getX(arg_06));
  WALLGUN.slot_2C(arg_06);
  if (retval == local_04) {
    return;
  }
  else {
    WALLGUN.slot_29(arg_06);
    if (!retval) {
      WALLGUN.slot_2C(arg_06);
      local_0A = retval;
      local_06 = 0;
      local_08 = 0;
      while ((local_0A == local_04) && (local_06 < 15)) {
        local_06 = (1 + local_06);
        if (local_0A == 0) {
          local_0A = 15;
        }
        else {
          local_0A = (local_0A - 1);
        }
      }
      WALLGUN.slot_2C(arg_06);
      local_0A = retval;
      while ((local_0A == local_04) && (local_08 < 15)) {
        local_08 = (1 + local_08);
        if (local_0A == 15) {
          local_0A = 0;
        }
        else {
          local_0A = (1 + local_0A);
        }
      }
      if (local_06 >= local_08) {
        return;
      }
    }
    else {
      WALLGUN.slot_2A(arg_06);
      if (((retval == 1) && (local_04 >= 13)) && (local_04 <= 15)) {
        return;
      }
      WALLGUN.slot_2C(arg_06);
      if (retval <= local_04) {
        return;
      }
    }
    return;
  }
  return;
}
