void do_checktype(CHAR_DATA *ch, char *argument)
{
    char arg1[MAX_INPUT_LENGTH], arg2[MAX_INPUT_LENGTH],buf[MAX_INPUT_LENGTH], name[MAX_INPUT_LENGTH];
    BUFFER *buffer;
    OBJ_DATA *obj;
    bool found;
    int level = 0, number = 0, wearloc;

    found = FALSE;
    number = 0;
    name[0] = '\0';

    buffer = new_buf();

    argument = one_argument(argument, arg1);
    argument = one_argument(argument, arg2);

    if ( arg1[0] == '\0' )
    {
        send_to_char("Syntax: checktype <level or type> <level or type>\n\r", ch);
        send_to_char("        Type can be one of the following:\n\r",ch);
        send_to_char("              Light       Finger\n\r",ch);
        send_to_char("              Neck        Body\n\r",ch);
        send_to_char("              Head        Legs\n\r",ch);
        send_to_char("              Feet        Hands\n\r",ch);
        send_to_char("              Arms        Shield\n\r",ch);
        send_to_char("              About       Waist\n\r",ch);
        send_to_char("              Wrist       Hold\n\r",ch);
        send_to_char("              Floating    Wield\n\r",ch);
        return;
    }

    if ( is_number(arg1) )
        level = atoi(arg1);
    else sprintf(name,"%s",arg1);

    if ( arg2[0] != '\0' )
    {
        if ( is_number(arg2) )
        {
            if ( level ) // User entered 2 level values
            {
                send_to_char("Please enter only 1 level value.\n\r",ch);
                return;
            }
            else level = atoi(arg2);
        }
        else if ( name[0] != '\0' ) // User entered 2 name values
        {
            send_to_char("Please enter only 1 name value.\n\r", ch);
            return;
        }
        else sprintf(name,"%s",arg2);
    }
        if ( !str_cmp( name, "light" ))
                wearloc = WEAR_LIGHT;
        else if ( !str_cmp( name, "finger" ))
                wearloc = WEAR_FINGER_L;
        else if ( !str_cmp( name, "neck" ))
                wearloc = WEAR_NECK_1;
        else if ( !str_cmp( name, "body" ))
                wearloc = WEAR_BODY;
        else if ( !str_cmp( name, "head" ))
                wearloc = WEAR_HEAD;
        else if ( !str_cmp( name, "legs" ))
                wearloc = WEAR_LEGS;
        else if ( !str_cmp( name, "feet" ))
                wearloc = WEAR_FEET;
        else if ( !str_cmp( name, "hands" ))
                wearloc = WEAR_HANDS;
        else if ( !str_cmp( name, "arms" ))
                wearloc = WEAR_ARMS;
        else if ( !str_cmp( name, "arms" ))
                wearloc = WEAR_ARMS;
        else if ( !str_cmp( name, "shield" ))
                wearloc = WEAR_SHIELD;
        else if ( !str_cmp( name, "about" ))
                wearloc = WEAR_ABOUT;
        else if ( !str_cmp( name, "waist" ))
                wearloc = WEAR_WAIST;
        else if ( !str_cmp( name, "wrist" ))
                wearloc = WEAR_WRIST_L;
        else if ( !str_cmp( name, "hold" ))
                wearloc = WEAR_HOLD;
        else if ( !str_cmp( name, "float" ))
                wearloc = WEAR_FLOAT;
        else if ( !str_cmp( name, "wield" ))
                wearloc = WEAR_WIELD;
        else
        {
                send_to_char("Syntax: checktype <level or type> <level or type>\n\r", ch);
                send_to_char("        Type can be one of the following:\n\r",ch);
                send_to_char("              Light       Finger\n\r",ch);
                send_to_char("              Neck        Body\n\r",ch);
                send_to_char("              Head        Legs\n\r",ch);
                send_to_char("              Feet        Hands\n\r",ch);
                send_to_char("              Arms        Shield\n\r",ch);
                send_to_char("              About       Waist\n\r",ch);
                send_to_char("              Arms        Shield\n\r",ch);
                send_to_char("              About       Waist\n\r",ch);
                send_to_char("              Wrist       Hold\n\r",ch);
                send_to_char("              Floating    Wield\n\r",ch);
                return;
        }
    // Now just execute 1 loop
    for ( obj = object_list; obj != NULL; obj = obj->next )
    {
                if(obj->wear_loc == wearloc     && (!level || obj->level == level))
                {
                    number++;
                    sprintf(buf," %d ) [ LEVEL: %3d ] %s (%d)\n\r",number,obj->level,obj->short_descr,obj->pIndexData->vnum);
                    add_buf(buffer,buf);
                }
    }

    if ( buf_string(buffer)[0] == '\0' )
        send_to_char("Nothing matching the given criteria found.\n\r", ch);
    else page_to_char(buf_string(buffer),ch);

    free_buf(buffer);
    return;
}