dawn/notes/
dawn/src/
dawn/src/docs/
/**************************************************************************/
// sk_type.h - header file for skill_type class
/***************************************************************************
 * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt                    *
 * >> A number of people have contributed to the Dawn codebase, with the   *
 *    majority of code written by Michael Garratt - www.dawnoftime.org     *
 * >> To use this source code, you must fully comply with the dawn license *
 *    in licenses.txt... In particular, you may not remove this copyright  *
 *    notice.                                                              *
 **************************************************************************/
#ifndef SK_TYPE_H
#define SK_TYPE_H

class skill_type
{
public:
	// member functions
	int get_maxprac(char_data *ch);
	int get_learnscale(char_data *ch);

public:
    char * name;					// Name of skill/spell
    sh_int skill_level[MAX_CLASS];	// Level needed by class
    sh_int rating[MAX_CLASS];		// How hard it is to learn
    SPELL_FUN *    spell_fun;		// Spell pointer (for spells)
    sh_int target;					// Legal targets
	sh_int minimum_position;	// Position for caster / user
    sh_int * pgsn;			// Pointer to associated gsn
    sh_int slot;			// Slot for #OBJECT loading
    sh_int min_mana;		// Minimum mana used
    sh_int beats;			// Lag time after use (in pulses (sec/4))
    char * noun_damage;		// Damage message
    char * msg_off;			// Wear off message
    char * msg_obj;			// Wear off message for objects

	// all dynamic	
    unsigned char race_restrict_n[(MAX_RACE+7)/8];
	long flags;
	sh_int low_percent_level[MAX_CLASS]; // 1% level

	// all dynamic data below here
	sh_int	maxprac_percent[MAX_CLASS];
    sh_int	learn_scale_percent[MAX_CLASS];  // percent that 100% is for the class
	sh_int	alignrestrict_flags[MAX_CLASS];
	int		category;	// category of spell/skill
	sh_int type;

	sh_int damtype;
	sh_int spell_function_index;

	int realms;				// Mages
    int spheres;			// Clerics
    int elements;			// Druids
	int compositions;		// Bards

	int spellgroup;
	int sect_restrict;
	int sect_enhance;
	int sect_dampen;

	bool component_based;	// if spell needs a component or not
	char *msp_sound;
};

#endif