Wikihack
Advertisement

Below is the full text to spell.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/spell.h#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.
1.    /*	SCCS Id: @(#)spell.h	3.4	1995/06/01	*/
2.    /* Copyright 1986, M. Stephenson				  */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef SPELL_H
6.    #define SPELL_H
7.    
8.    struct spell {
9.        short	sp_id;			/* spell id (== object.otyp) */
10.       xchar	sp_lev;			/* power level */
11.       int		sp_know;		/* knowlege of spell */
12.   };
13.   
14.   /* levels of memory destruction with a scroll of amnesia */
15.   #define ALL_MAP		0x1
16.   #define ALL_SPELLS	0x2
17.   
18.   #define decrnknow(spell)	spl_book[spell].sp_know--
19.   #define spellid(spell)		spl_book[spell].sp_id
20.   #define spellknow(spell)	spl_book[spell].sp_know
21.   
22.   /* Zap types, also used for explosions */
23.   #define ZT_MAGIC_MISSILE        (AD_MAGM-1)
24.   #define ZT_FIRE                 (AD_FIRE-1)
25.   #define ZT_COLD                 (AD_COLD-1)
26.   #define ZT_SLEEP                (AD_SLEE-1)
27.   #define ZT_DEATH                (AD_DISN-1)     /* or disintegration */
28.   #define ZT_LIGHTNING            (AD_ELEC-1)
29.   #define ZT_POISON_GAS           (AD_DRST-1)
30.   #define ZT_ACID                 (AD_ACID-1)
31.   
32.   #define ZT_LAST                 (ZT_ACID) /*For checking of spells of a type*/
33.   #define ZT_FIRST                (ZT_MAGIC_MISSILE)
34.   /* 8 and 9 are currently unassigned */
35.   
36.   #define ZT_WAND(x)              (x)
37.   #define ZT_SPELL(x)             (10+(x))
38.   #define ZT_BREATH(x)    (20+(x))
39.   #define ZT_MEGA(x)      (30+(x))
40.   #define ZT_MONWAND(x)   (-(30+(x)))
41.   
42.   #endif /* SPELL_H */
Advertisement