struct spell_info_type {
char castable; /* Is it a castable spell? */
char useable; /* Is it a useable skill? */
char *name; /* Text name of spell */
void (*spell_pointer) (char level, struct char_data * ch,
char *arg, int type,
struct char_data * tar_ch,
struct obj_data * tar_obj);
char delay; /* Heartbeats until ready for next */
unsigned char min_mana; /* Amount of mana used by a spell */
unsigned char max_mana;
char minimum_position; /* Position for caster */
short int targets; /* See below for use with TAR_XXX */
char generic_level; /* Level for generic teachings */
int generic_classes; /* Classes allowed to learn generic skills */
char min_level[ABS_MAX_LVL]; /* Level required for the various classes */
};
/* Possible Targets:
*
* bit 0 : IGNORE TARGET
* bit 1 : PC/NPC in room
* bit 2 : PC/NPC in world
* bit 3 : Object held
* bit 4 : Object in inventory
* bit 5 : Object in room
* bit 6 : Object in world
* bit 7 : If fighting, and no argument, select tar_char as self
* bit 8 : If fighting, and no argument, select tar_char as victim (fighting)
* bit 9 : If no argument, select self, if argument check that it IS self.
*/
Any good suggestions of one way to do this vs another?