emud/area_current/
emud/area_current/castle/
emud/area_current/newareas/
emud/area_current/nwcentral/
emud/area_current/scontinent/
emud/clans/
emud/player/
emud/player/d/e/bak/
emud/player/e/m/
emud/player/e/m/bak/
/***************************************************************************
 * Emud  2.2 by Igor van den Hoven, Michiel Lange, and Martin Bethlehem.   *
 *                                                                         *
 * MrMud 1.4 by David Bills and Dug Michael.                               *
 *                                                                         *
 * Merc  2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael      *
 * Chastain, Michael Quan, and Mitchell Tse.                               *
 *                                                                         *
 * Original Diku Mud copyright (C) 1990 1991 by Sebastian Hammer,          *
 * Michael Seifert, Hans Henrik St{rfeld, Tom Madsen, and Katje Nyboe.     *
 ***************************************************************************/

#include "emud.h"

/*
	race specialties,
	written by Manwe
	08/10/1999

	Changed to requirements :
	rspec_req : race specialty
	cspec_req : class specialty
	sspec_req : spell requirement (does the spell come from a god ?)
*/

bool rspec_req( CHAR_DATA *ch, unsigned long int attr)
{
	push_call("rspec_req(%p,%p)",ch,attr);

	if (ch == NULL)
	{
		pop_call();
		return FALSE;
	}

	if (race_table[ch->race].flags & attr)
	{
		pop_call();
		return TRUE;
	}
	else
	{
		pop_call();
		return FALSE;
	}
}

bool cspec_req( CHAR_DATA *ch, unsigned long int attr)
{
	push_call("cspec_req(%p,%p)",ch,attr);

	if (IS_NPC(ch))
	{
		pop_call();
		return FALSE;
	}

	if ((class_table[ch->class].spec) & attr)
	{
		pop_call();
		return TRUE;
	}
	else
	{
		pop_call();
		return FALSE;
	}

	pop_call();
	return FALSE;
}

int get_age_bonus(CHAR_DATA *ch, int type)
{
	int bonus;

	push_call("get_age_bonus(%p,%p)",ch,type);

	bonus = 0;

	if (IS_SET(race_table[ch->race].flags, type))
	{
		switch (type)
		{
			case RSPEC_AGE_AC:
				bonus -= ch->level/6  + ch->pcdata->reincarnation*3/2;
				break;
			case RSPEC_AGE_HR:
				bonus += ch->level/6  + ch->pcdata->reincarnation*2/1;
				break;
			case RSPEC_AGE_DR:
				bonus += ch->level/18 + ch->pcdata->reincarnation*1/2;
				break;
		}
	}
	pop_call();
	return bonus;
}