function trigger_slot_29() /* entry=469 class_id=0x0A17 slot=0x29 */
{
  set_info(0x021B, 0);
  local_0E = arg_0A;
  local_04 = (arg_10 & 3);
  if (local_04 == 0) {
    for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
      if (Intrinsic000D(local_10) == arg_12) {
        local_06 = (arg_0C / 16);
        local_08 = (arg_0C & 15);
        if (local_06 == 0) {
          local_12 = Actor.getNPCDataField0x4(local_10);
          suspend;
          spawn FREE.slot_3B(pid, 2, 0x00000000);
          suspend;
          local_14 = Actor.getNPCDataField0x4(local_10);
        }
        else {
          local_16 = Actor.getNPCDataField0x4(local_10);
          suspend;
          spawn FREE.slot_3B(pid, 2, 0x00000000);
          suspend;
          if (Actor.isDead(local_10) == 1) {
            return;
          }
          local_18 = 1;
          while (local_18 > local_06) {
            if (Actor.isDead(local_10) == 0) {
              suspend;
            }
            spawn FREE.slot_3B(pid, 1, 0x00000000);
            suspend;
            local_18 = (1 + local_18);
          }
          local_1A = Actor.getNPCDataField0x4(local_10);
          local_1C = Actor.getCurrentActivityNo(local_10);
        }
      }
      /* loopnext  */
    }
    return;
  }
  else if (local_04 == 1) {
    for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
      /* loopnext  */
    }
    return;
  }
  else if (local_04 == 2) {
    for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
      /* loopnext  */
    }
    return;
  }
  else if (local_04 == 3) {
    local_02 = (arg_0C & 7);
    local_06 = (arg_0C / 8);
    if (local_02 == 0) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          if (local_06 == 1) {
          }
          else if (local_06 == 2) {
          }
          else if (local_06 == 3) {
          }
          else if (local_06 == 4) {
          }
        }
        /* loopnext  */
      }
    }
    else if (local_02 == 1) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          spawn FREE.slot_3B(pid, 1, 0x00000000);
          suspend;
        }
        /* loopnext  */
      }
    }
    else if (local_02 == 2) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          spawn FREE.slot_3B(pid, 1, 0x00000000);
          suspend;
        }
        /* loopnext  */
      }
    }
    else if (local_02 == 3) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          spawn FREE.slot_3B(pid, 1, 0x00000000);
          suspend;
        }
        /* loopnext  */
      }
    }
    else if (local_02 == 4) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          local_1E = local_06;
        }
        /* loopnext  */
      }
    }
    else if (local_02 == 5) {
      for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
        if (Intrinsic000D(local_10) == arg_12) {
          spawn NPC.equip(local_06, local_10);
        }
        /* loopnext  */
      }
    }
    return;
  }
  return;
}
