ackfuss-4.4.0/board/
ackfuss-4.4.0/help/e/
ackfuss-4.4.0/help/f/
ackfuss-4.4.0/help/h/
ackfuss-4.4.0/help/l/
ackfuss-4.4.0/help/n/
ackfuss-4.4.0/help/q/
ackfuss-4.4.0/help/s/
ackfuss-4.4.0/help/u/
ackfuss-4.4.0/help/v/
ackfuss-4.4.0/help/y/
ackfuss-4.4.0/help/z/
ackfuss-4.4.0/player/c/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  Ack 2.2 improvements copyright (C) 1994 by Stephen Dooley              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *       _/          _/_/_/     _/    _/     _/    ACK! MUD is modified    *
 *      _/_/        _/          _/  _/       _/    Merc2.0/2.1/2.2 code    *
 *     _/  _/      _/           _/_/         _/    (c)Stephen Zepp 1998    *
 *    _/_/_/_/      _/          _/  _/             Version #: 4.3          *
 *   _/      _/      _/_/_/     _/    _/     _/                            *
 *                                                                         *
 *                        http://ackmud.nuc.net/                           *
 *                        zenithar@ackmud.nuc.net                          *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/
/***************************************************************************
 * _/_/_/_/  _/    _/  _/_/_/_/ _/_/_/_/ AckFUSS is modified ACK!MUD 4.3.1 *
 * _/        _/    _/  _/       _/       copyright Matt Goff (Kline) 2008  *
 * _/_/      _/    _/  _/_/_/_/ _/_/_/_/                                   *
 * _/        _/    _/        _/       _/ Support for this code is provided *
 * _/        _/_/_/_/  _/_/_/_/ _/_/_/_/ at www.ackmud.net -- check it out!*
 ***************************************************************************/

#define DEC_MAGIC_H

#if __STDC__ || defined(__cplusplus)
#define P_(s) s
#else
#define P_(s) ()
#endif

/* magic.c */
int mana_cost P_((CHAR_DATA *ch, int sn));
int skill_lookup P_((const char *name));
int slot_lookup P_((int slot));
void say_spell P_((CHAR_DATA *ch, int sn));
bool saves_spell P_((int level, CHAR_DATA *victim));
void do_cast P_((CHAR_DATA *ch, char *argument));
void obj_cast_spell P_((int sn, int level, CHAR_DATA *ch, CHAR_DATA *victim, OBJ_DATA *obj));
bool spell_acid_blast P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_armor P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_badbreath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_bark_skin P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_bless P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_blindness P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_burning_hands P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_call_lightning P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cause_light P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cause_critical P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cause_serious P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_change_sex P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_charm_person P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_chill_touch P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_color_spray P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_continual_light P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_control_weather P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_create_food P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_create_spring P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_create_water P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cure_blindness P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cure_critical P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cure_light P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cure_poison P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cure_serious P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_curse P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_evil P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_hidden P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_invis P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_magic P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_undead P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detect_poison P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_dispel_magic P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_dispel_evil P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_earthquake P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_enchant_weapon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_encumber P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_energy_drain P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fireball P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_flamestrike P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_faerie_fire P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_faerie_fog P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fly P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_gate P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_general_purpose P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_giant_strength P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_harm P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_heal P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_influx P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_high_explosive P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_laserbolt P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_identify P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_infravision P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_invis P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_know_alignment P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_lightning_bolt P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_locate_object P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_magic_missile P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mass_invis P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_null P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_pass_door P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_poison P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_protection P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_refresh P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_remove_curse P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_sanctuary P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_sense_evil P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_shield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_shocking_grasp P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_sleep P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_stone_skin P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_teleport P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_ventriloquate P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_weaken P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_word_of_recall P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_acid_breath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fire_breath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_frost_breath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_gas_breath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_lightning_breath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_hellspawn P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_planergy P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_visit P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_barrier P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_static P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_phobia P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mindflame P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_chain_lightning P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_suffocate P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_enhance_weapon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_bloody_tears P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mind_bolt P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_nerve_fire P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fighting_trance P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_phase P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_dimension_blade P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_produce_food P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_animate P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_see_magic P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_detection P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fire_blade P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_know_weakness P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_know_critical P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_calm P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_hypnosis P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mind_flail P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_know_item P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_physic_thrust P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_physic_crush P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_ego_whip P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_night_vision P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_stalker P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mystic_armor P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_flare P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_travel P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_window P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_portal P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_beacon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_seal_room P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_deflect_weapon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_black_hand P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_throw_needle P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_morale P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_leadership P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_ice_bolt P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_waterelem P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_skeleton P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_poison_weapon P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fireshield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_iceshield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_shockshield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_shadowshield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_thoughtshield P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_ethereal P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fireelem P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_rune_fire P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_rune_poison P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_rune_shock P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_healing_light P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_wither_shadow P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mana_flare P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mana_drain P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cage P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_flaming P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_reflect P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_absorb P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_adept P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_regen P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_room_dispel P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_throw_star P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_soul_net P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_condense_soul P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_restoration P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_infuse P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_holy_light P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_holy_armor P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_divine_intervention P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_earthelem P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_iron_golem P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_soul_thief P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_holy_avenger P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_diamond_golem P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon_pegasus P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon_nightmare P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon_beast P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon_devourer P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_summon_shadow P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_lava_burst P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_heat_armor P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_retri_strike P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_creature_bond P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_corrupt_bond P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_fireblast P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_shockstorm P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cone_cold P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_holy_wrath P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_wraith_touch P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_thought_vise P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_black_curse P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_cloak_misery P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_poison_quinine P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_poison_arsenic P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_sonic_blast P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_mystical_focus P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));
bool spell_redemption P_((int sn, int level, CHAR_DATA *ch, void *vo, OBJ_DATA *obj));

#undef P_

#define REALM_NONE    	  BIT_0
#define REALM_FIRE		    BIT_1
#define REALM_SHOCK		    BIT_2
#define REALM_LIGHT		    BIT_3
#define REALM_GAS		      BIT_4
#define REALM_POISON	    BIT_5
#define REALM_COLD		    BIT_6
#define REALM_SOUND		    BIT_7
#define REALM_ACID		    BIT_8
#define REALM_DRAIN       BIT_9
#define REALM_IMPACT      BIT_10
#define REALM_MIND        BIT_11
#define REALM_HOLY        BIT_12
#define NO_REFLECT        BIT_30
#define NO_ABSORB          BIT_31

#define RE_NONE    	  0
#define RE_FIRE		    1
#define RE_SHOCK		    2
#define RE_LIGHT		    3
#define RE_GAS		      4
#define RE_POISON	    5
#define RE_COLD		    6
#define RE_SOUND		    7
#define RE_ACID		    8
#define RE_DRAIN       9
#define RE_IMPACT      10
#define RE_MIND        11
#define RE_HOLY        12

struct sp_dam_str_type
{
   int realm;
   char *basecol;
   char *invertcol;
   char *stresscol;
   char *backcol;
   char *formatter;
   char *vs;
   char *vs_stress;
   char *vp;
   char *vp_stress;
};

extern struct sp_dam_str_type sp_dam_str[];
extern bool deathmatch;
#define MAX_REALM 13