dbt/cnf/
dbt/lib/
dbt/lib/house/
dbt/lib/text/help/
dbt/lib/world/
dbt/lib/world/qst/
dbt/src/
dbt/src/copyover/
ACMD(do_compare)
{
    char arg1[MAX_INPUT_LENGTH];
    char arg2[MAX_INPUT_LENGTH];
    struct obj_data *obj1, *obj2;    
    int value1;
    int value2, dotmode;
    char *msg;

    two_arguments(argument, arg1, arg2);

    if ( arg1[0] == '\0' )
    {
	send_to_char( "Compare what to what?\n\r", ch );
	return;
    }


    if (!(obj1 = get_obj_in_list_vis(ch, arg1, ch->carrying)))
    {
	send_to_char( "You do not have that item.\n\r", ch );
	return;
    }

    if (arg2[0] == '\0')
    {
	for (obj2 = ch->carrying; obj2 != NULL; obj2 = obj2->next_content)
	{
	    if (obj2->worn_on != NOWHERE
	    &&  CAN_SEE_OBJ(ch,obj2)
            &&  GET_OBJ_TYPE(obj1) == GET_OBJ_TYPE(obj2)
            &&  CAN_WEAR(obj1 ,ITEM_WEAR_TAKE) 
            &&  CAN_WEAR(obj2 ,ITEM_WEAR_TAKE) != 0)
		break;
	}

	if (obj2 == NULL)
	{
	    send_to_char("You aren't wearing anything comparable.\n\r",ch);
	    return;
	}
    } 

    else if (!(obj2 = get_obj_in_list_vis(ch, arg2, ch->carrying)))
    {
	send_to_char("You do not have that item.\n\r",ch);
	return;
    }

    msg		= NULL;
    value1	= 0;
    value2	= 0;

    if ( obj1 == obj2 )
    {
	msg = "You compare $p to itself.  It looks about the same.";
    }
    else if (GET_OBJ_TYPE(obj1) != GET_OBJ_TYPE(obj2))
    {
	msg = "You can't compare $p and $P.";
    }
    else
    {
	switch ( GET_OBJ_TYPE(obj1) )
	{
	default:
	    msg = "You can't compare $p and $P.";
	    break;

	case ITEM_ARMOR:
	    value1 = GET_OBJ_VAL(obj1, 0);
	    value2 = GET_OBJ_VAL(obj2, 0);;
	    break;

	case ITEM_WEAPON:
		value1 = (1 + GET_OBJ_VAL(obj1, 2)) * GET_OBJ_VAL(obj1, 1);
		value2 = (1 + GET_OBJ_VAL(obj2, 2)) * GET_OBJ_VAL(obj2, 1);
	    break;
	}
    }

    if ( msg == NULL )
    {
	     if ( value1 == value2 ) msg = "$p and $P look about the same.";
	else if ( value1  > value2 ) msg = "$p looks better than $P.";
	else                         msg = "$p looks worse than $P.";
    }

    act( msg, FALSE, ch, obj1, obj2, TO_CHAR );
    return;
}