function watchns_slot_21() /* entry=273 class_id=0x04C6 slot=0x21 */
{
  entry:
    local_04 = *(arg_06);
    set_info(0x021B, 0);
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    local_06 = Camera.getX();
    local_08 = Camera.getY();
    local_0A = Camera.getZ();
    /* loop_selector local_02 in nearby_items(shape=0x0361, origin=arg_06) */

  block_0487:
    if condition goto block_05AC;

  block_048A:
    if (Item.getQLo(local_02) != Item.getQLo(arg_06)) goto block_05A8;

  block_04A0:
    if (Item.getQLo(arg_06) > 0x00F9) goto block_04CB;

  block_04B0:
    spawn WATCHNS.slot_22(pid, local_02, arg_06);
    suspend;
    goto block_05A5;

  block_04CB:
    local_0C = Item.getX(local_02);
    local_0E = Item.getY(local_02);
    local_10 = Item.getZ(local_02);
    /* global_address global_id=0x1E */
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    /* pop_global global_id=0x5 size=0x1 */
    spawn FREE.slot_3B(1, pid, 60, 0x00000000);
    suspend;
    if (Item.getMapNum(local_02) != 0) goto block_0567;

  block_0551:
    spawn TRIGGER.slot_20(pid, 0, local_02, arg_06);
    suspend;

  block_0567:
    spawn FREE.slot_3B(pid, 120, 0x00000000);
    suspend;

  block_057E:
    if (!Ultima8Engine.moveKeyDownRecently()) goto block_05A1;

  block_0587:
    spawn FREE.slot_3B(pid, 2, 0x00000000);
    suspend;
    goto block_057E;

  block_05A1:

  block_05A5:
    goto block_05AC;

  block_05A8:
    /* loopnext  */
    goto block_0487;

  block_05AC:
    /* global_address global_id=0x1E */
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    /* pop_global global_id=0x5 size=0x1 */
    return;

}
