Strip affects from an area;

Have you ever wanted to remove all room flags of a specific type
well, heres the way.. MY reasoning for this is because frankly
i hate it when i install a new area, and there is weird amounts
of flag-types that shouldn't be there..

Oi, it drives me nuts, so here it is. my answer to said
problem.. Do Enjoy..

This is another piece of code by Dazzle

Do Enjoy.



in interp.c add the following

    { "striparea",      do_strip_area_affect, POS_DEAD, L6, LOG_NORMAL, 1 },


in interp.h add the following
    DECLARE_DO_FUN(do_strip_area_affect);


// *Strip an area of a specified effect.* //
void do_strip_area_affect(CHAR_DATA *ch, char *argument)
{
    int i;
    if ( argument[0] == '\0' )
    {
        send_to_char( "What room flag would you like to strip from this area??\n\r", ch );
        return;
    }
    
    for(i = 0; room_flags[i].name != NULL; i++)
    {
    	if(is_exact_name(argument, room_flags[i].name))
    	{
    		int x;
    		ROOM_INDEX_DATA *pRoom;
    		// Parse through the list.
    		for(x = ch->in_room->area->min_vnum; x != ch->in_room->area->max_vnum; x++)
    		{
    			if((pRoom = get_room_index(x)) != NULL)
    			{
    				// Strip the room flag
    				if(IS_SET(pRoom->room_flags, room_flags[i].bit))
    					REMOVE_BIT(pRoom->room_flags, room_flags[i].bit);
    			}
    		}
	send_to_char("Flags stripped from area!\n\r",ch);
	do_asave(ch, "area");
	return;
    	}
    }	
    send_to_char("That flag does not exist!\n\r",ch);
    return;
}