/***************************************************************************
* OBLIVION 1.2 is copyright by Wes Wagner August, 1996 *
* by using this code you have agreed to the terms of the Oblivion License*
**************************************************************************/
#if defined(macintosh)
#include <types.h>
#include <time.h>
#else
#include <sys/types.h>
#include <sys/time.h>
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "merc.h"
#include "recycle.h"
#include "tables.h"
#include "lookup.h"
void do_add( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
CHAR_DATA *victim;
argument = one_argument( argument, arg1 );
if(ch->clan==0)
{
send_to_char("You are not in a clan yourself!", ch);
return ;
}
if(!clan_table[ch->clan].can_add[ch->clanrank])
{
send_to_char("You have not the authority to do that.\n\r",ch);
return ;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't playing.\n\r", ch );
return;
}
if(victim->clan>0)
{
send_to_char( "They are already in a clan.\n\r",ch);
return ;
}
if(victim->seeks!=ch->clan)
{
send_to_char("They are not seeking to join your clan.\n\r",ch);
return ;
}
victim->clan=ch->clan;
victim->clanrank=0;
victim->seeks=0;
sprintf(buf,"They are now a %s of your clan.\n\r",
clan_table[ch->clan].clan_rank_title[0]);
send_to_char(buf,ch);
sprintf(buf,"You are now a %s of clan %s.\n\r",
clan_table[ch->clan].clan_rank_title[0],
clan_table[ch->clan].name);
send_to_char(buf,victim);
return ;
}
void do_demote( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
CHAR_DATA *victim;
argument = one_argument( argument, arg1 );
if(ch->clan==0)
{
send_to_char("You are not in a clan yourself!", ch);
return ;
}
if(!clan_table[ch->clan].can_promote[ch->clanrank])
{
send_to_char("You have not the authority to do that.\n\r",ch);
return ;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't playing.\n\r", ch );
return;
}
if(victim->clan!=ch->clan)
{
send_to_char( "They are not in your clan.\n\r",ch);
return ;
}
if(ch->clanrank<victim->clanrank+1)
{
send_to_char("They are too high in rank for your authority.\n\r",ch);
return ;
}
if(victim->clanrank<1)
{
send_to_char("They are already of the lowest rank.\n\r",ch);
return;
}
victim->clanrank-=1;
sprintf(buf,"They are now a %s of your clan.\n\r",
clan_table[ch->clan].clan_rank_title[victim->clanrank]);
send_to_char(buf,ch);
sprintf(buf,"You are now a %s of clan %s.\n\r",
clan_table[ch->clan].clan_rank_title[0],
clan_table[ch->clan].name);
send_to_char(buf,victim);
return ;
}
void do_outcast( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
CHAR_DATA *victim;
argument = one_argument( argument, arg1 );
if(ch->clan==0)
{
send_to_char("You are not in a clan yourself!", ch);
return ;
}
if(!clan_table[ch->clan].can_remove[ch->clanrank])
{
send_to_char("You have not the authority to do that.\n\r",ch);
return ;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't playing.\n\r", ch );
return;
}
if(victim->clan!=ch->clan)
{
send_to_char( "They are not in your clan.\n\r",ch);
return ;
}
if(ch->clanrank<victim->clanrank+1)
{
send_to_char( "You have not the authority to do that.\n\r",ch);
return ;
}
victim->clan=0;
victim->clanrank=0;
sprintf(buf,"They are no longer a %s of your clan.\n\r",
clan_table[ch->clan].clan_rank_title[0]);
send_to_char(buf,ch);
sprintf(buf,"You are no longer a %s of clan %s.\n\r",
clan_table[ch->clan].clan_rank_title[0],
clan_table[ch->clan].name);
send_to_char(buf,victim);
return ;
}
void do_promote( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
CHAR_DATA *victim;
argument = one_argument( argument, arg1 );
if(ch->clan==0)
{
send_to_char("You are not in a clan yourself!", ch);
return ;
}
if(!clan_table[ch->clan].can_promote[ch->clanrank])
{
send_to_char("You have not the authority to do that.\n\r",ch);
return ;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't playing.\n\r", ch );
return;
}
if(victim->clan!=ch->clan)
{
send_to_char( "They are not in your clan.\n\r",ch);
return ;
}
if(ch->clanrank<victim->clanrank+2)
{
send_to_char("They are already too high in rank for your authority.\n\r",ch);
return ;
}
victim->clanrank+=1;
sprintf(buf,"They are now a %s of your clan.\n\r",
clan_table[ch->clan].clan_rank_title[victim->clanrank]);
send_to_char(buf,ch);
sprintf(buf,"You are now a %s of clan %s.\n\r",
clan_table[ch->clan].clan_rank_title[victim->clanrank],
clan_table[ch->clan].name);
send_to_char(buf,victim);
return ;
}
void do_seek( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
int clan;
argument = one_argument( argument, arg1 );
if(ch->clan!=0)
{
send_to_char("You are already in a clan.\n\r", ch);
return ;
}
if ((clan = clan_lookup(arg1)) == 0)
{
send_to_char("No such clan exists.\n\r",ch);
return;
}
ch->seeks=clan;
sprintf(buf, "You are seeking to join %s.\n\r",
clan_table[clan].name);
send_to_char(buf,ch);
return ;
}