wileymud-1.187b/
wileymud-1.187b/attic/
wileymud-1.187b/attic/bin/
wileymud-1.187b/attic/lib/
wileymud-1.187b/attic/lib/adm/
wileymud-1.187b/attic/lib/man/
wileymud-1.187b/attic/lib/new-wld/
wileymud-1.187b/attic/lib/new-wld/default/
wileymud-1.187b/attic/lib/old/
wileymud-1.187b/attic/lib/wld/
wileymud-1.187b/attic/public_html/
wileymud-1.187b/attic/public_html/gfx/
wileymud-1.187b/attic/src/bin/
wileymud-1.187b/attic/src/etc/
wileymud-1.187b/attic/src/libauth-4.0-p5/
wileymud-1.187b/attic/src/sedna/
wileymud-1.187b/backups/
wileymud-1.187b/bin/
wileymud-1.187b/docs/
wileymud-1.187b/etc/
wileymud-1.187b/lib/
wileymud-1.187b/lib/adm/
wileymud-1.187b/lib/boards/
wileymud-1.187b/lib/log/
wileymud-1.187b/lib/man/
wileymud-1.187b/lib/ply/
wileymud-1.187b/lib/ply/a/
wileymud-1.187b/lib/ply/b/
wileymud-1.187b/lib/ply/c/
wileymud-1.187b/lib/ply/d/
wileymud-1.187b/lib/ply/g/
wileymud-1.187b/lib/ply/k/
wileymud-1.187b/lib/ply/m/
wileymud-1.187b/lib/ply/s/
wileymud-1.187b/lib/ply/t/
wileymud-1.187b/public_html/gfx/
wileymud-1.187b/src/bin/
wileymud-1.187b/src/convert/attic/
wileymud-1.187b/src/convert/obj/
wileymud-1.187b/src/convert/perl/
wileymud-1.187b/src/convert/perl/MudConvert/
wileymud-1.187b/src/convert/perl/MudConvert/DUMP/
wileymud-1.187b/src/convert/perl/MudConvert/Report/
wileymud-1.187b/src/convert/perl/MudConvert/WileyMUD/
wileymud-1.187b/src/convert/perl/output/
wileymud-1.187b/src/convert/perl/output/DUMP/
wileymud-1.187b/src/convert/perl/output/Report/
wileymud-1.187b/src/convert/perl/output/WileyMUD/
wileymud-1.187b/src/etc/
wileymud-1.187b/src/etc/init.d/
wileymud-1.187b/src/etc/rc.d/
wileymud-1.187b/src/etc/rc.d/init.d/
wileymud-1.187b/src/lib/
wileymud-1.187b/src/lib/adm/
wileymud-1.187b/src/lib/boards/
wileymud-1.187b/src/lib/log/
wileymud-1.187b/src/lib/man/
wileymud-1.187b/src/lib/ply/
wileymud-1.187b/src/lib/ply/a/
wileymud-1.187b/src/lib/ply/b/
wileymud-1.187b/src/lib/ply/c/
wileymud-1.187b/src/lib/ply/d/
wileymud-1.187b/src/lib/ply/e/
wileymud-1.187b/src/lib/ply/f/
wileymud-1.187b/src/lib/ply/g/
wileymud-1.187b/src/lib/ply/h/
wileymud-1.187b/src/lib/ply/i/
wileymud-1.187b/src/lib/ply/j/
wileymud-1.187b/src/lib/ply/k/
wileymud-1.187b/src/lib/ply/l/
wileymud-1.187b/src/lib/ply/m/
wileymud-1.187b/src/lib/ply/n/
wileymud-1.187b/src/lib/ply/o/
wileymud-1.187b/src/lib/ply/p/
wileymud-1.187b/src/lib/ply/q/
wileymud-1.187b/src/lib/ply/r/
wileymud-1.187b/src/lib/ply/s/
wileymud-1.187b/src/lib/ply/t/
wileymud-1.187b/src/lib/ply/u/
wileymud-1.187b/src/lib/ply/v/
wileymud-1.187b/src/lib/ply/w/
wileymud-1.187b/src/lib/ply/x/
wileymud-1.187b/src/lib/ply/y/
wileymud-1.187b/src/lib/ply/z/
wileymud-1.187b/src/obj/
wileymud-1.187b/src/utils/
wileymud-1.187b/src/utils/mobmaker/
/*
 * file: spells.h , Implementation of magic spells.       Part of DIKUMUD
 * Usage : Spells
 */

#ifndef _SPELLS_H
#define _SPELLS_H

#define MAX_BUF_LENGTH              240
#define STATE(d) ((d)->connected)
#define IS_IMMUNE(ch, bit) (IS_SET((ch)->M_immune, bit))

#define SPELL_TYPE_SPELL   0
#define SPELL_TYPE_POTION  1
#define SPELL_TYPE_WAND    2
#define SPELL_TYPE_STAFF   3
#define SPELL_TYPE_SCROLL  4

#define SAVING_PARA   0
#define SAVING_ROD    1
#define SAVING_PETRI  2
#define SAVING_BREATH 3
#define SAVING_SPELL  4

/* Attacktypes with grammar */

struct attack_hit_type {
  const char                                   *singular;
  const char                                   *plural;
};

#define TAR_IGNORE	 (1<< 0)
#define TAR_CHAR_ROOM	 (1<< 1)
#define TAR_CHAR_WORLD	 (1<< 2)
#define TAR_FIGHT_SELF	 (1<< 3)
#define TAR_FIGHT_VICT	 (1<< 4)
#define TAR_SELF_ONLY	 (1<< 5)			       /* Only a check, use with ei. TAR_CHAR_ROOM */
#define TAR_SELF_NONO	 (1<< 6)			       /* Only a check, use with ei. TAR_CHAR_ROOM */
#define TAR_OBJ_INV	 (1<< 7)
#define TAR_OBJ_ROOM	 (1<< 8)
#define TAR_OBJ_WORLD	 (1<< 9)
#define TAR_OBJ_EQUIP	 (1<<10)
#define TAR_NAME	 (1<<11)
#define TAR_VIOLENT	 (1<<12)
#define TAR_ROOM         (1<<13)			       /* spells which target the room */

struct spell_info_type {
  char                                    castable;	       /* Is it a castable spell? */
  char                                    useable;	       /* Is it a useable skill? */
  const char                             *name;		       /* Text name of spell */
  void                                    (*spell_pointer) (char level, struct char_data * ch,
							    const 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.
 */

/*
 *  just for polymorph spell(s)
 */

struct PolyType {
  char                                    name[20];
  int                                     level;
  int                                     number;
};

#define TYPE_UNDEFINED               -1
#define SPELL_RESERVED_DBC            0			       /* SKILL NUMBER ZERO */
#define SPELL_ARMOR                   1
void                                    spell_armor(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_armor(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_TELEPORT                2
void                                    spell_teleport(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_teleport(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_BLESS                   3
void                                    spell_bless(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_bless(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_BLINDNESS               4
void                                    spell_blindness(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    cast_blindness(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *tar_ch,
						       struct obj_data *tar_obj);

#define SPELL_BURNING_HANDS           5
void                                    spell_burning_hands(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_burning_hands(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *victim,
							   struct obj_data *tar_obj);

#define SPELL_CALL_LIGHTNING          6
void                                    spell_call_lightning(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_call_lightning(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *victim,
							    struct obj_data *tar_obj);

#define SPELL_CHARM_PERSON            7
void                                    spell_charm_person(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_charm_person(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_CHILL_TOUCH             8
void                                    spell_chill_touch(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_chill_touch(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *victim,
							 struct obj_data *tar_obj);

#define SPELL_CLONE                   9
void                                    spell_clone(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_clone(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_COLOUR_SPRAY           10
void                                    spell_colour_spray(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_colour_spray(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *victim,
							  struct obj_data *tar_obj);

#define SPELL_CONTROL_WEATHER        11
void                                    spell_control_weather(char level, struct char_data *ch,
							      struct char_data *victim,
							      struct obj_data *obj);
void                                    cast_control_weather(char level, struct char_data *ch,
							     const char *arg, int type,
							     struct char_data *tar_ch,
							     struct obj_data *tar_obj);

#define SPELL_CREATE_FOOD            12
void                                    spell_create_food(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_create_food(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_CREATE_WATER           13
void                                    spell_create_water(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_create_water(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_CURE_BLIND             14
void                                    spell_cure_blind(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_cure_blind(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_CURE_CRITIC            15
void                                    spell_cure_critic(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_cure_critic(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_CURE_LIGHT             16
void                                    spell_cure_light(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_cure_light(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_CURSE                  17
void                                    spell_curse(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_curse(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_DETECT_EVIL            18
void                                    spell_detect_evil(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_detect_evil(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_DETECT_INVISIBLE       19
void                                    spell_detect_invisibility(char level,
								  struct char_data *ch,
								  struct char_data *victim,
								  struct obj_data *obj);
void                                    cast_detect_invisibility(char level,
								 struct char_data *ch,
								 const char *arg, int type,
								 struct char_data *tar_ch,
								 struct obj_data *tar_obj);

#define SPELL_DETECT_MAGIC           20
void                                    spell_detect_magic(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_detect_magic(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_DETECT_POISON          21
void                                    spell_detect_poison(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_detect_poison(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_DISPEL_EVIL            22
void                                    spell_dispel_evil(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_dispel_evil(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_EARTHQUAKE             23
void                                    spell_earthquake(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_earthquake(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *victim,
							struct obj_data *tar_obj);
void                                    spell_new_earthquake(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_new_earthquake(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *victim,
							    struct obj_data *tar_obj);

#define SPELL_ENCHANT_WEAPON         24
void                                    spell_enchant_weapon(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_enchant_weapon(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *tar_ch,
							    struct obj_data *tar_obj);
void                                    cast_enchant_armor(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_ENERGY_DRAIN           25
void                                    spell_energy_drain(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_energy_drain(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *victim,
							  struct obj_data *tar_obj);

#define SPELL_FIREBALL               26
void                                    spell_fireball(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_fireball(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *victim,
						      struct obj_data *tar_obj);

#define SPELL_HARM                   27
void                                    spell_harm(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_harm(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *victim,
						  struct obj_data *tar_obj);

#define SPELL_HEAL                   28
void                                    spell_heal(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_heal(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *tar_ch,
						  struct obj_data *tar_obj);

#define SPELL_INVISIBLE              29
void                                    spell_invisibility(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_invisibility(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_LIGHTNING_BOLT         30
void                                    spell_lightning_bolt(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_lightning_bolt(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *victim,
							    struct obj_data *tar_obj);

#define SPELL_LOCATE_OBJECT          31
void                                    spell_locate_object(char level, struct char_data *ch,
							    struct char_data *victim,
							    char *obj);
void                                    cast_locate_object(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_MAGIC_MISSILE          32
void                                    spell_magic_missile(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_magic_missile(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *victim,
							   struct obj_data *tar_obj);

#define SPELL_POISON                 33
void                                    spell_poison(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);
void                                    cast_poison(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *tar_ch,
						    struct obj_data *tar_obj);

#define SPELL_PROTECT_FROM_EVIL      34
void                                    spell_protection_from_evil(char level,
								   struct char_data *ch,
								   struct char_data *victim,
								   struct obj_data *obj);
void                                    cast_protection_from_evil(char level,
								  struct char_data *ch,
								  const char *arg, int type,
								  struct char_data *tar_ch,
								  struct obj_data *tar_obj);

#define SPELL_REMOVE_CURSE           35
void                                    spell_remove_curse(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_remove_curse(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_SANCTUARY              36
void                                    spell_sanctuary(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    cast_sanctuary(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *tar_ch,
						       struct obj_data *tar_obj);

#define SPELL_SHOCKING_GRASP         37
void                                    spell_shocking_grasp(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_shocking_grasp(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *victim,
							    struct obj_data *tar_obj);

#define SPELL_SLEEP                  38
void                                    spell_sleep(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_sleep(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_STRENGTH               39
void                                    spell_strength(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_strength(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_SUMMON                 40
void                                    spell_summon(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);
void                                    cast_summon(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *tar_ch,
						    struct obj_data *tar_obj);

#define SPELL_VENTRILOQUATE          41
void                                    spell_ventriloquate(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_ventriloquate(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_WORD_OF_RECALL         42
void                                    spell_word_of_recall(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_word_of_recall(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *tar_ch,
							    struct obj_data *tar_obj);

#define SPELL_REMOVE_POISON          43
void                                    spell_remove_poison(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_remove_poison(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_SENSE_LIFE             44
void                                    spell_sense_life(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_sense_life(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
#define SPELL_IDENTIFY               53
void                                    spell_improved_identify(char level,
								struct char_data *ch,
								struct char_data *victim,
								struct obj_data *obj);
void                                    spell_identify(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_identify(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_INFRAVISION            54
void                                    spell_infravision(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_infravision(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_CAUSE_LIGHT            55
void                                    spell_cause_light(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_cause_light(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *victim,
							 struct obj_data *tar_obj);

#define SPELL_CAUSE_CRITICAL         56
void                                    spell_cause_critical(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_cause_critic(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *victim,
							  struct obj_data *tar_obj);

#define SPELL_FLAMESTRIKE            57
void                                    spell_flamestrike(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_flamestrike(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *victim,
							 struct obj_data *tar_obj);

#define SPELL_DISPEL_GOOD            58
void                                    spell_dispel_good(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_dispel_good(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_WEAKNESS               59
void                                    spell_weakness(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_weakness(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_DISPEL_MAGIC           60
void                                    spell_dispel_magic(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_dispel_magic(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_KNOCK                  61
void                                    cast_knock(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_KNOW_ALIGNMENT         62
void                                    spell_know_alignment(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_know_alignment(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *tar_ch,
							    struct obj_data *tar_obj);

#define SPELL_ANIMATE_DEAD           63
void                                    spell_animate_dead(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *corpse);
void                                    cast_animate_dead(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_PARALYSIS              64
void                                    spell_paralyze(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);
void                                    cast_paralyze(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_REMOVE_PARALYSIS       65
void                                    spell_remove_paralysis(char level, struct char_data *ch,
							       struct char_data *victim,
							       struct obj_data *obj);
void                                    cast_remove_paralysis(char level, struct char_data *ch,
							      const char *arg, int type,
							      struct char_data *tar_ch,
							      struct obj_data *tar_obj);

#define SPELL_FEAR                   66
void                                    spell_fear(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_fear(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *tar_ch,
						  struct obj_data *tar_obj);

#define SPELL_ACID_BLAST             67
void                                    spell_acid_blast(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_acid_blast(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *victim,
							struct obj_data *tar_obj);

#define SPELL_WATER_BREATH           68
void                                    spell_water_breath(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_water_breath(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_FLY                    69
void                                    spell_fly(char level, struct char_data *ch,
						  struct char_data *victim,
						  struct obj_data *obj);
void                                    cast_flying(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *tar_ch,
						    struct obj_data *tar_obj);

#define SPELL_CONE_OF_COLD           70
void                                    spell_cone_of_cold(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_cone_of_cold(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *victim,
							  struct obj_data *tar_obj);

#define SPELL_METEOR_SWARM           71
void                                    spell_meteor_swarm(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_meteor_swarm(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *victim,
							  struct obj_data *tar_obj);

#define SPELL_ICE_STORM              72
void                                    spell_ice_storm(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    cast_ice_storm(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *victim,
						       struct obj_data *tar_obj);

#define SPELL_SHIELD                 73
void                                    spell_shield(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);
void                                    cast_shield(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *tar_ch,
						    struct obj_data *tar_obj);

#define SPELL_MON_SUM_1              74
void                                    spell_Create_Monster(char level, struct char_data *ch,
							     struct char_data *victim,
							     struct obj_data *obj);
void                                    cast_mon_sum1(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_2              75
void                                    cast_mon_sum2(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_3              76
void                                    cast_mon_sum3(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_4              77
void                                    cast_mon_sum4(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_5              78
void                                    cast_mon_sum5(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_6              79
void                                    cast_mon_sum6(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_MON_SUM_7              80
void                                    cast_mon_sum7(char level, struct char_data *ch,
						      const char *arg, int type,
						      struct char_data *tar_ch,
						      struct obj_data *tar_obj);

#define SPELL_FIRESHIELD             81
void                                    spell_fireshield(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_fireshield(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_CHARM_MONSTER          82
void                                    spell_charm_monster(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_charm_monster(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *tar_obj);

#define SPELL_CURE_SERIOUS           83
void                                    spell_cure_serious(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_cure_serious(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_CAUSE_SERIOUS          84
void                                    spell_cause_serious(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);
void                                    cast_cause_serious(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *victim,
							   struct obj_data *tar_obj);

#define SPELL_REFRESH                85
void                                    spell_refresh(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);
void                                    cast_refresh(char level, struct char_data *ch,
						     const char *arg, int type,
						     struct char_data *tar_ch,
						     struct obj_data *tar_obj);

#define SPELL_SECOND_WIND            86
void                                    spell_second_wind(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_second_wind(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_TURN                   87
void                                    spell_turn(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_turn(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *tar_ch,
						  struct obj_data *tar_obj);

#define SPELL_SUCCOR                 88
void                                    spell_succor(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);
void                                    cast_succor(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *tar_ch,
						    struct obj_data *tar_obj);

#define SPELL_LIGHT                  89
void                                    spell_light(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);
void                                    cast_light(char level, struct char_data *ch, const char *arg,
						   int type, struct char_data *tar_ch,
						   struct obj_data *tar_obj);

#define SPELL_CONT_LIGHT             90
void                                    spell_cont_light(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_cont_light(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_CALM                   91
void                                    spell_calm(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_calm(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *tar_ch,
						  struct obj_data *tar_obj);

#define SPELL_STONE_SKIN             92
void                                    spell_stone_skin(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_stone_skin(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_CONJURE_ELEMENTAL      93
void                                    spell_conjure_elemental(char level,
								struct char_data *ch,
								struct char_data *victim,
								struct obj_data *obj);
void                                    cast_conjure_elemental(char level, struct char_data *ch,
							       const char *arg, int type,
							       struct char_data *tar_ch,
							       struct obj_data *tar_obj);

#define SPELL_TRUE_SIGHT             94
void                                    spell_true_seeing(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_true_seeing(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_MINOR_CREATE           95
void                                    spell_minor_create(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_minor_creation(char level, struct char_data *ch,
							    const char *arg, int type,
							    struct char_data *tar_ch,
							    struct obj_data *tar_obj);

#define SPELL_FAERIE_FIRE            96
void                                    spell_faerie_fire(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_faerie_fire(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_FAERIE_FOG             97
void                                    spell_faerie_fog(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_faerie_fog(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *victim,
							struct obj_data *tar_obj);

#define SPELL_CACAODEMON             98
void                                    spell_cacaodemon(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_cacaodemon(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_POLY_SELF              99
void                                    spell_poly_self(char level, struct char_data *ch,
							struct char_data *mob,
							struct obj_data *obj);
void                                    cast_poly_self(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *tar_ch,
						       struct obj_data *tar_obj);

#define SPELL_MANA                  100
void                                    spell_mana(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);
void                                    cast_mana(char level, struct char_data *ch, const char *arg,
						  int type, struct char_data *tar_ch,
						  struct obj_data *tar_obj);

#define SPELL_ASTRAL_WALK           101
void                                    spell_astral_walk(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_astral_walk(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_FLY_GROUP             102
void                                    spell_fly_group(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    cast_fly_group(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *tar_ch,
						       struct obj_data *tar_obj);

#define SPELL_AID                   103
void                                    spell_aid(char level, struct char_data *ch,
						  struct char_data *victim,
						  struct obj_data *obj);
void                                    cast_aid(char level, struct char_data *ch, const char *arg,
						 int type, struct char_data *tar_ch,
						 struct obj_data *tar_obj);

#define SPELL_SHELTER               104
void                                    spell_shelter(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);
void                                    cast_shelter(char level, struct char_data *ch,
						     const char *arg, int type,
						     struct char_data *tar_ch,
						     struct obj_data *tar_obj);

#define SPELL_DRAGON_BREATH         105
void                                    cast_dragon_breath(char level, struct char_data *ch,
							   const char *arg, int type,
							   struct char_data *tar_ch,
							   struct obj_data *potion);

#define SPELL_GOODBERRY             106
void                                    spell_goodberry(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    cast_goodberry(char level, struct char_data *ch,
						       const char *arg, int type,
						       struct char_data *tar_ch,
						       struct obj_data *tar_obj);

#define SPELL_VISIONS               107
void                                    spell_visions(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);
void                                    cast_visions(char level, struct char_data *ch,
						     const char *arg, int type,
						     struct char_data *tar_ch,
						     struct obj_data *tar_obj);

#define MAX_EXIST_SPELL             107			       /* move this and change it */

#define SPELL_H_FEAST               103
#define SPELL_WEB                   106
#define SPELL_MINOR_TRACK           107
#define SPELL_MAJOR_TRACK           108
#define SPELL_GOLEM                 109
void                                    spell_golem(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);

#define SPELL_FAMILIAR              110
void                                    spell_familiar(char level, struct char_data *ch,
						       struct char_data **victim,
						       struct obj_data *obj);

#define SPELL_CHANGESTAFF           111
void                                    spell_changestaff(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_HOLY_WORD             112
void                                    spell_holy_word(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);
void                                    spell_holyword(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);

#define SPELL_UNHOLY_WORD           113
void                                    spell_unholy_word(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_PWORD_KILL            114
void                                    spell_pword_kill(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_PWORD_BLIND           115
void                                    spell_pword_blind(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_CHAIN_LIGHTNING       116
void                                    spell_chain_lightning(char level, struct char_data *ch,
							      struct char_data *victim,
							      struct obj_data *obj);

#define SPELL_SCARE                 117
void                                    spell_scare(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);

#define SPELL_COMMAND               119
#define SPELL_CHANGE_FORM           120			       /* druid... */
#define SPELL_FEEBLEMIND            121
void                                    spell_feeblemind(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_SHILLELAGH            122
void                                    spell_shillelagh(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_FLAME_BLADE           124
void                                    spell_flame_blade(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_ANIMAL_GROWTH         125
void                                    spell_animal_growth(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);

#define SPELL_INSECT_GROWTH         126
void                                    spell_insect_growth(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);

#define SPELL_CREEPING_DEATH        127
void                                    spell_creeping_death(char level, struct char_data *ch,
							     struct char_data *victim, int dir);

#define SPELL_COMMUNE               128			       /* whatzone */
void                                    spell_commune(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);

#define SPELL_ANIMAL_SUM_1          129
void                                    spell_animal_summon(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);

#define SPELL_ANIMAL_SUM_2          130
#define SPELL_ANIMAL_SUM_3          131
#define SPELL_FIRE_SERVANT          132
void                                    spell_elemental_summoning(char level,
								  struct char_data *ch,
								  struct char_data *victim,
								  int spell);

#define SPELL_EARTH_SERVANT         133
#define SPELL_WATER_SERVANT         134
#define SPELL_WIND_SERVANT          135
#define SPELL_REINCARNATE           136
void                                    spell_reincarnate(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    spell_resurrection(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_resurrection(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_CHARM_VEGGIE          137
void                                    spell_charm_veggie(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);

#define SPELL_VEGGIE_GROWTH         138
void                                    spell_veggie_growth(char level, struct char_data *ch,
							    struct char_data *victim,
							    struct obj_data *obj);

#define SPELL_TREE                  139
void                                    spell_tree(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);

#define SPELL_ANIMATE_ROCK          140
void                                    spell_animate_rock(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);

#define SPELL_TREE_TRAVEL           141
void                                    spell_tree_travel(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_TRAVELLING            142			       /* faster move outdoors */
void                                    spell_travelling(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_ANIMAL_FRIENDSHIP     143
void                                    spell_animal_friendship(char level,
								struct char_data *ch,
								struct char_data *victim,
								struct obj_data *obj);

#define SPELL_INVIS_TO_ANIMALS      144
void                                    spell_invis_to_animals(char level, struct char_data *ch,
							       struct char_data *victim,
							       struct obj_data *obj);

#define SPELL_SLOW_POISON           145
void                                    spell_slow_poison(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_ENTANGLE              146
void                                    spell_entangle(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);

#define SPELL_SNARE                 147
void                                    spell_snare(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);

#define SPELL_GUST_OF_WIND          148
void                                    spell_gust_of_wind(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);

#define SPELL_BARKSKIN              149
void                                    spell_barkskin(char level, struct char_data *ch,
						       struct char_data *victim,
						       struct obj_data *obj);

#define SPELL_SUNRAY                150
void                                    spell_sunray(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);

#define SPELL_WARP_WEAPON           151
void                                    spell_warp_weapon(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_HEAT_STUFF            152
void                                    spell_heat_stuff(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_FIND_TRAPS            153
void                                    spell_find_traps(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_FIRESTORM             154
void                                    spell_firestorm(char level, struct char_data *ch,
							struct char_data *victim,
							struct obj_data *obj);

#define SPELL_HASTE                 155			       /* other */
void                                    spell_haste(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);

#define SPELL_SLOW                  156
void                                    spell_slow(char level, struct char_data *ch,
						   struct char_data *victim,
						   struct obj_data *obj);

#define SPELL_DUST_DEVIL            157
void                                    spell_dust_devil(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_KNOW_MONSTER          158
void                                    spell_know_monster(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);

#define SPELL_TRANSPORT_VIA_PLANT   159
void                                    spell_transport_via_plant(char level,
								  struct char_data *ch,
								  struct char_data *victim,
								  struct obj_data *obj);

#define SPELL_SPEAK_WITH_PLANT      160
void                                    spell_speak_with_plants(char level,
								struct char_data *ch,
								struct char_data *victim,
								struct obj_data *obj);

#define SPELL_SILENCE               161
void                                    spell_silence(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);

#define SPELL_SENDING               162
void                                    spell_sending(char level, struct char_data *ch,
						      struct char_data *victim,
						      struct obj_data *obj);

#define SPELL_TELEPORT_WO_ERROR     163
void                                    spell_teleport_wo_error(char level,
								struct char_data *ch,
								struct char_data *victim,
								struct obj_data *obj);

#define SPELL_PORTAL                164
void                                    spell_portal(char level, struct char_data *ch,
						     struct char_data *tmp_ch,
						     struct obj_data *obj);

#define SPELL_DRAGON_RIDE           165
void                                    spell_dragon_ride(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);

#define SPELL_MOUNT                 166
void                                    spell_mount(char level, struct char_data *ch,
						    struct char_data *victim,
						    struct obj_data *obj);

#define SPELL_BLADE_BARRIER				       /* room spell like deal */
#define SPELL_SUMMON_OBJ				       /* maybe */
void                                    spell_summon_obj(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);

#define SPELL_GREEN_SLIME            199
void                                    spell_green_slime(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_green_slime(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *victim,
							 struct obj_data *tar_obj);

#define SPELL_GEYSER                 200
void                                    spell_geyser(char level, struct char_data *ch,
						     struct char_data *victim,
						     struct obj_data *obj);
void                                    cast_geyser(char level, struct char_data *ch, const char *arg,
						    int type, struct char_data *victim,
						    struct obj_data *tar_obj);

#define SPELL_FIRE_BREATH            201
void                                    spell_fire_breath(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_fire_breath(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_GAS_BREATH             202
void                                    spell_gas_breath(char level, struct char_data *ch,
							 struct char_data *victim,
							 struct obj_data *obj);
void                                    cast_gas_breath(char level, struct char_data *ch,
							const char *arg, int type,
							struct char_data *tar_ch,
							struct obj_data *tar_obj);

#define SPELL_FROST_BREATH           203
void                                    spell_frost_breath(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    cast_frost_breath(char level, struct char_data *ch,
							  const char *arg, int type,
							  struct char_data *tar_ch,
							  struct obj_data *tar_obj);

#define SPELL_ACID_BREATH            204
void                                    spell_acid_breath(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    cast_acid_breath(char level, struct char_data *ch,
							 const char *arg, int type,
							 struct char_data *tar_ch,
							 struct obj_data *tar_obj);

#define SPELL_LIGHTNING_BREATH       205
void                                    spell_lightning_breath(char level, struct char_data *ch,
							       struct char_data *victim,
							       struct obj_data *obj);
void                                    cast_lightning_breath(char level, struct char_data *ch,
							      const char *arg, int type,
							      struct char_data *tar_ch,
							      struct obj_data *tar_obj);

#define FIRST_BREATH_WEAPON	     200
#define LAST_BREATH_WEAPON	     205

/* no defines for these? */
void                                    spell_chain_lightn(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    spell_detect_charm(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    spell_invis_group(char level, struct char_data *ch,
							  struct char_data *victim,
							  struct obj_data *obj);
void                                    spell_major_create(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    spell_poison_cloud(char level, struct char_data *ch,
							   struct char_data *victim,
							   struct obj_data *obj);
void                                    spell_prot_align_group(char level, struct char_data *ch,
							       struct char_data *victim,
							       struct obj_data *obj);

/* MAX_SKILL is 200!  */

#define SKILL_SNEAK             45			       /* r,t */
#define SKILL_HIDE              46			       /* r,t */
#define SKILL_STEAL             47			       /* t */
#define SKILL_BACKSTAB          48			       /* t */
#define SKILL_PICK_LOCK         49			       /* t */
#define SKILL_KICK              50			       /* f */
#define SKILL_BASH              51			       /* f */
#define SKILL_RESCUE            52			       /* f,r */
#define SKILL_DOOR_BASH	 	149			       /* f,r */
#define SKILL_READ_MAGIC 	150			       /* f,m,c,t,r */
#define SKILL_SCRIBE		151			       /* m,c */
#define SKILL_BREW		152			       /* m,c */
#define SKILL_PUNCH		153			       /* f,c,r */
#define SKILL_TWO_HANDED	154			       /* f,m,c,t,r */
#define SKILL_TWO_WEAPON	155			       /* NONE */
#define SKILL_BANDAGE		156			       /* f,m,c,t,r */
#define SKILL_SEARCH		157			       /* t,r */
#define SKILL_SWIMMING		158			       /* f,m,c,t,r */
#define SKILL_ENDURANCE		159			       /* f,m,c,r,t */
#define SKILL_BARE_HAND		160			       /* f,m,c,t,r */
#define SKILL_BLIND_FIGHTING	161			       /* f,c,m,r,t */
#define SKILL_PARRY		162			       /* f,r,t NOT PUT IN */
#define SKILL_APRAISE		163			       /* f,m,c,t,r */
#define SKILL_SPEC_SMITE	164			       /* f */
#define SKILL_SPEC_STAB		165
#define SKILL_SPEC_WHIP		166
#define SKILL_SPEC_SLASH	167
#define SKILL_SPEC_SMASH	168
#define SKILL_SPEC_CLEAVE	169
#define SKILL_SPEC_CRUSH	170
#define SKILL_SPEC_BLUDGE	171
#define SKILL_SPEC_PIERCE	172			       /* f */
#define SKILL_PEER		173			       /* t,r */
#define SKILL_DETECT_NOISE	174			       /* t,r */
#define SKILL_DODGE		175			       /* m,c,t,r NOT PUT IN */
#define SKILL_BARTER		176			       /* m,c,t */
#define SKILL_KNOCK_OUT		177			       /* m,c,t NOT PUT IN */
#define SKILL_SPELLCRAFT	178			       /* m,c */
#define SKILL_MEDITATION	179			       /* m,c */
#define SKILL_TRACK             180			       /* r,t */
#define SKILL_FIND_TRAP         181			       /* t */
#define SKILL_DISARM_TRAP       182			       /* t */
#define SKILL_DISARM            183			       /* f,r */
#define SKILL_BASH_W_SHIELD     184			       /* not a useable skill, but included with bash */
#define SKILL_RIDE		185
/*
 * #define SKILL_SIGN                   171
 * #define SKILL_DODGE                  174
 * #define SKILL_RETREAT                176
 * #define SKILL_FEIGN_DEATH            179
 * #define SKILL_SPRING_LEAP            182
 * #define SKILL_EVALUATE               185
 * #define SKILL_SPY                    186
 * #define SKILL_SWIM                   188
 */

#define TYPE_HIT                     206
#define TYPE_BLUDGEON                207
#define TYPE_PIERCE                  208
#define TYPE_SLASH                   209
#define TYPE_WHIP                    210		       /* EXAMPLE */
#define TYPE_CLAW                    211		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_BITE                    212		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_STING                   213		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_CRUSH                   214		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_CLEAVE                  215
#define TYPE_STAB                    216
#define TYPE_SMASH                   217
#define TYPE_SMITE                   218
#define TYPE_SUFFERING               220
#define TYPE_HUNGER                  221

/* More anything but spells and weapontypes can be insterted here! */

#define MAX_TYPES 70

#endif