/* Removes anything thats causing invis/sneak/hide and sends a message if it wasnt innate.*/

void do_visible( CHAR_DATA *ch, char *argument )
{
    AFFECT_DATA *paf;
    AFFECT_DATA *paf_next;
    bool found=FALSE;
 
    for ( paf = ch->first_affect; paf; paf = paf_next )
    {
	paf_next = paf->next;
	if ( xIS_SET(paf->bitvector, AFF_SNEAK)
        || xIS_SET(paf->bitvector, AFF_INVISIBLE)
        || xIS_SET(paf->bitvector, AFF_HIDE))
        {
	    affect_remove( ch, paf );
	    found = TRUE;
        }
    }
    xREMOVE_BIT  ( ch->affected_by, AFF_HIDE		);
    xREMOVE_BIT  ( ch->affected_by, AFF_INVISIBLE	);
    xREMOVE_BIT  ( ch->affected_by, AFF_SNEAK		);
    send_to_char( "Ok.\n\r", ch );
    if (found)
    {
     act( AT_PLAIN, "You become visible.", ch, NULL, NULL, TO_CHAR );
     act( AT_PLAIN, "$n becomes visible.", ch, NULL, NULL, TO_ROOM );
    }
    return;
}

