AwakeMUD-0.6Beta/doc/
AwakeMUD-0.6Beta/lib/
AwakeMUD-0.6Beta/lib/etc/
AwakeMUD-0.6Beta/lib/etc/pfiles/
AwakeMUD-0.6Beta/lib/fixer_data/
AwakeMUD-0.6Beta/lib/misc/
AwakeMUD-0.6Beta/lib/plrobjs/
AwakeMUD-0.6Beta/lib/plrobjs/A-E/
AwakeMUD-0.6Beta/lib/plrobjs/F-J/
AwakeMUD-0.6Beta/lib/plrobjs/K-O/
AwakeMUD-0.6Beta/lib/plrobjs/U-Z/
AwakeMUD-0.6Beta/lib/plrspells/A-E/
AwakeMUD-0.6Beta/lib/plrspells/F-J/
AwakeMUD-0.6Beta/lib/plrtext/A-E/
AwakeMUD-0.6Beta/lib/world/
AwakeMUD-0.6Beta/lib/world/mob/
AwakeMUD-0.6Beta/lib/world/obj/
AwakeMUD-0.6Beta/lib/world/qst/
AwakeMUD-0.6Beta/lib/world/shp/
AwakeMUD-0.6Beta/lib/world/wld/
AwakeMUD-0.6Beta/lib/world/zon/
// newmagic.h  -- header for newmagic.cc
//                                           -Chris 12/95
#ifndef _newmagic_h_
#define _newmagic_h_

#define COMBAT 0
#define DETECT 1
#define HEALTH 2
#define ILLUSI 3
#define MANIPU 4

#define CASTER 0
#define TOUCH  1
#define RANGED 2
#define AREA   3

#define LIGHT 1
#define MODERATE 2
#define SERIOUS 3
#define DEADLY 4

#define SPELL_TARGET_CASTER     0
#define SPELL_TARGET_TOUCH      1
#define SPELL_TARGET_RANGE      2
#define SPELL_TARGET_AREA       3

#define SPELL_CATEGORY_COMBAT           0
#define SPELL_CATEGORY_DETECTION        1
#define SPELL_CATEGORY_HEALTH           2
#define SPELL_CATEGORY_ILLUSION         3
#define SPELL_CATEGORY_MANIPULATION     4

#define SPELL_ELEMENT_NONE                      0
#define SPELL_ELEMENT_ACID                      1
#define SPELL_ELEMENT_AIR                       2
#define SPELL_ELEMENT_EARTH             3
#define SPELL_ELEMENT_FIRE                      4
#define SPELL_ELEMENT_ICE                       5
#define SPELL_ELEMENT_LIGHTNING         6
#define SPELL_ELEMENT_WATER             7

// for door/obj damaging
#define DAMOBJ_NONE                     0
#define DAMOBJ_ACID                     1
#define DAMOBJ_AIR                      2
#define DAMOBJ_EARTH            3
#define DAMOBJ_FIRE                     4
#define DAMOBJ_ICE                      5
#define DAMOBJ_LIGHTNING        6
#define DAMOBJ_WATER            7
#define DAMOBJ_EXPLODE          8
#define DAMOBJ_PROJECTILE       9
#define DAMOBJ_CRUSH            10
#define DAMOBJ_SLASH            11
#define DAMOBJ_PIERCE           12
#define DAMOBJ_MANIPULATION     32

// typedefs
typedef struct char_data char_t;
typedef struct obj_data obj_t;
typedef unsigned char u_char;

typedef struct spell_struct
{
   u_char physical;
   u_char category;
   u_char target;
   sh_int drain;
   sh_int damage;    // damage code for combat spells
} spell_a;

#ifndef _newmagic_cc_
// function prototypes
extern spell_t *find_spell(char_t *ch, char *name);
extern void write_spells(char_t *ch);
extern void read_spells(char_t *ch);
extern int spell_bonus(char_t *ch, spell_t *spell);
void	check_spell_drain( struct char_data *ch, struct spell_data *spell );
#else
bool process_combat_target(char_t *, spell_t *, char *, int);
void process_combat_spell(char_t *, char_t *, obj_t *, spell_t *, int);
bool process_detection_target(char_t *, spell_t *, char *, int);
void process_detection_spell(char_t *, char_t *, obj_t *, spell_t *, int);
int process_health_target(char_t *, spell_t *, char *, int);
void process_health_spell(char_t *, char_t *, int level, spell_t *, int);
bool process_illusion_target(char_t *, spell_t *, char *, int);
void process_illusion_spell(char_t *, char_t *, obj_t *, spell_t *, int);
bool process_manipulation_target(char_t *, spell_t *, char *, int);
void process_manipulation_spell(char_t *, char_t *, obj_t *, spell_t *, int);
void elemental_damage(char_t *ch, char_t *vict, spell_t *spell, int force, int success);
spell_t *find_spell(char_t *ch, char *name);
void write_spells(char_t *ch);
void read_spells(char_t *ch);
int spell_bonus(char_t *ch, spell_t *spell);
void affect_update(void);
int mag_can_see(struct char_data *ch, int id);
void sustain_spell(int force, struct char_data * ch, struct char_data *
victim, spell_t *spell, int level);
void mob_cast(struct char_data * ch, struct char_data * tch, struct
obj_data * tobj, int spellnum, int level);
int	totem_bonus(struct char_data *ch, struct spell_data *spell);
int	foci_bonus(struct char_data *ch, struct spell_data *spell,
		   int force, bool fCast);
int	magic_pool_bonus(struct char_data *ch, struct spell_data *spell,
			 int force, bool fCast);
#endif

#endif