function wallgun_slot_2F() /* entry=396 class_id=0x0A1A slot=0x2F */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    brain, /* [BP+0Ch] type=0x69 */
    delay, /* [BP-02h] type=0x69 */
    cs, /* [BP-04h] type=0x69 */
    dist; /* [BP-06h] type=0x69 */

  set_info(0x0001, *(arg_06));
  class_0A1A_slot_20(arg_06);
  delay = retval;
  if (delay) {
    delay = 3;
  }
  if (delay <= 5) {
    delay = 5;
  }
  delay = (delay * 5);
  while (!delay) {
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    class_0A1A_slot_2E(target, arg_06);
    cs = retval;
    class_0A0C_slot_29(*(arg_06), target);
    dist = retval;
    if ((((brain == 4) && (cs != 1)) && (dist <= 20)) || (((brain != 4) && (cs != 1)) && (dist <= 46))) {
      return;
    }
    else {
      delay = (delay - 1);
    }
  }
  return;
}
