/*Mud-wide spellups by Theodryck */
/* You need to add the declarations in merc.h */
/* Add do_spup to the command table in interp.c */
/* Add this to act_wiz.c */
void do_spup( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *rch;
CHAR_DATA *wch;
ROOM_INDEX_DATA *location;
ROOM_INDEX_DATA *original;
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
char *arg2;
rch = get_char( ch );
if ( !authorized( rch, "spup" ) )
return;
one_argument( argument, arg1 );
original = ch->in_room;
if( arg1[0]== '\0' )
{
send_to_char( "Which spell would you like to cast on the mud?", ch );
return;
}
/*
* See if 'ch' still exists before continuing!
* Handles 'at XXXX quit' case.
*/
for ( wch = char_list; wch; wch = wch->next )
{
if ( wch == ch )
continue;
if( wch->deleted )
continue;
if( IS_IMMORTAL( wch ) )
continue;
if (!IS_NPC ( wch ) )
{
arg2 = wch->name;
location = find_location( ch, wch->name );
sprintf( buf, "'%s' %s", arg1, wch->name );
char_from_room( ch );
char_to_room( ch, location );
do_cast( ch, buf );
}
}
char_from_room( ch );
char_to_room( ch, original );
return;
}