This will give you a generic enlist for all for your clans.



** in clans.c **

Change do_enlist to this :


void do_enlist( CHAR_DATA *ch, char *argument )
{

	CLAN_DATA *clan;
        
	if ( IS_NPC(ch) || !ch->pcdata )
	{
	    send_to_char( "You can't do that.\n\r", ch );
	    return;
	}
        
	if ( ch->pcdata->clan )
	{
		ch_printf( ch , "You will have to resign from %s before you can join a new organization.\n\r", ch->pcdata->clan->name );
		return;
	}
        
	if ( ! IS_SET( ch->in_room->room_flags , ROOM_RECRUIT ) )
	{
		send_to_char( "You don't seem to be in a recruitment office.\n\r", ch );
		return;
	}
	
	for ( clan = first_clan; clan; clan = clan->next )
	{
		if ( ch->in_room->vnum == clan->enlistroom )
		{
			SET_BIT( ch->speaks, LANG_CLAN );
			++clan->members;
			STRFREE( ch->pcdata->clan_name );
			ch->pcdata->clan_name = QUICKLINK( clan->name );
			ch->pcdata->clan = clan;
			ch_printf( ch, "Welcome to %s.\n\r", clan->name );
			save_clan ( clan );
			return;
		}
	}

	send_to_char( "They don't seem to be recruiting right now.\n\r", ch );
	return;

}


add to fread_clan :

in CASE 'E'

	KEY( "Enlist",	clan->enlistroom,		fread_number( fp ) );



in to do_setclan :

change :

send_to_char( " leader number1 number2 subclan\n\r", ch ); 

to :

send_to_char( " leader number1 number2 subclan enlistroom\n\r", ch );

Add : 

	if ( !strcmp( arg2, "enlistroom" ) )
	{
		clan->enlistroom = atoi( argument );
		send_to_char( "Done.\n\r", ch );
		save_clan( clan );
		return;
	}

in do_showclan :

Add :

    ch_printf( ch, "Enlist Room: %ld\n\r",
    			clan->enlistroom );

in save_clan

Add :

	fprintf( fp, "Enlist         %d\n", clan->enlistroom );



** in mud.h **

In struct	clan_data  add :

	int         enlistroom;

change :

	#define ROOM_R_RECRUIT          BV27

to :

	#define ROOM_RECRUIT          BV27

ROOM_E_RECRUIT is now a free flag, us it for whatever you like.


** build.c **

change "republic_recruit" to "recruit"